耐解析機能の分類
Gabriel N. BarbosaとRodrigo R. Brancoは,マルウェアの耐解析機能をAnti-Debugging, Anti-Disassembly, Obfuscation, Anti-VMの四種類に分類した.彼らはIntelのセキュリティ研究者であり,マルウェアに備わった耐解析機能の統計を過去二回に渡って発信してきた.
気になるのは,サンドボックスの実装にあたって問題となるAnti-VMだ.8,103,167もの検体を用いた調査によると,その内訳は以下のようになっている.
これらはいずれもVMware社製品を検出するための手法である.残念ながら他の仮想マシンモニタについての情報は掲載されていない.
仮想マシンモニタの分類
以前にも少しばかり述べた,サンドボックスの透明性(transparency)に関する話を蒸し返そう.
サンドボックスにOut-of-the-boxなVMIを採用すれば,少なくともAnti-Debuggingについては無視できる.
では,サンドボックスにXenを用いれば,QEMUより検出されにくくなるだろうか.あるいは,その逆はどうだろうか.
多くの研究者が好き勝手なことを言っているが,仮想マシンモニタの実現手法をもってサンドボックスの透明性を語るのは些か性急だろう.なぜなら,サンドボックスの透明性はその設計ではなくマルウェアの実装によって左右されるからだ.Out-of-the-box VMIは設計の話だが,Anti-VMは実装の話だ(と思う).
ところで私は,仮想マシンモニタの実現手法を「プロセッサ拡張によるもの」と「バイナリ変換によるもの」に分類していたが,別の分類方法を見つけた.
命令セットアーキテクチャを基準に分類することで,より分かりやすくなっている.今後はこの図に準拠したい.
話を戻そう.
何が言いたいのかというと,in-the-wildなマルウェアに備わったAnti-VMの内訳が分からないことには,サンドボックスの透明性について云々することはできないということだ.
検体
誰もやっていないようなので,調べてみることにした.
やや恣意的(誤用?)な選択だが,今回はVirusShare.comからCitadelのバリアント479検体や,MandiantのAPT1レポートにて,中国軍総参謀部第三部第二局こと61398部隊と思しきグループによって開発された874検体を含む総計33,260検体を用いた.
Anti-VMの実態
YARAを用いてAnti-VMの実態を調べた.
ルールには公式のantidebug.yarを用いた.なお,このルールにはAnti-VMのみならずAnti-Debuggerについても記載されている.
|
|
マルウェアの開発者がよりgenericな手法を好むことは,RDTSC
命令を用いる検体が61.15%, CPUID
命令を用いる検体が57.02%含まれていることからも明らかだ.
一方でvmdetectとして計上された検体は全体の1.18%に過ぎない.これはVMware, Virtual PC, Xen, Virtual Boxに関する文字列が含まれる検体を抽出するルールであり,コードは以下のようになっている.
|
|
見ての通りQEMUに関する記述が存在しない.
そこで,vmdetectに下記のコードを追加し,再度スキャンしてみた.
|
|
結果は608検体.QEMUを検出するのは4検体だけという結果になった.
自分がマルウェアを開発する立場だったらこうした文字列をそのまま埋め込むことはしないし,まず第一にfalse negativeが気になる.
このルールは表層的なものでしかなく,例えばQEMUの動的バイナリ変換のスケジューリングに着目したAnti-VMを検出することはできない.
とはいえ,おかげで現状を大雑把に把握することはできた.
パッカーの実態
ついでに,PEiDを用いてパッカーの利用状況を調べた.
UserDBにはBob / Team PEiD signaturesを用いた.
|
|
ほとんど検出できていないのが残念.ひときわ面倒なThemidaは11検体だった.
サンドボックスの実態
サンドボックスの透明性が研究されている一方で,実際のマルウェアはあまり凝ったAnti-VMを備えていなかった.
一方で,現実のサンドボックスはどうだろうか.いくら論文で優れた手法が編み出されようが,役立てられていなければ意味がない.
そこで,一般に公開されているサンドボックスに対してシステム情報を取得するプログラムを挿入し,仮想マシンモニタの種類を判別できるかどうか試してみたのだが,実態はあまりにも残念だった.systeminfoコマンドとNtQuerySystemInformationだけで露見する代物ばかりだった.
マルウェアの解析ではなく検出を目的としたサービス,言ってしまえばVirusTotalをサンドボックスのフロントエンドとしたことが,この一因として挙げられる.
だが,凝ったAnti-VMを備えたマルウェアがあまり多くないことも考えると,現状のサンドボックスで十分だということなのだろうか.
感想
研究をしているうちに袋小路に突入してしまい,サンドボックスの透明性やAnti Anti-VMあくまでマルウェア解析の一側面に過ぎないことを私は忘れかけていた.
本質は別のところにある.
TEQUILABOOMBOOM
公開されているサンドボックスの中にTEQUILABOOMBOOMというユーザー名のものがあった.
Trojan.Win32.Inject.uljvやBackdoor.Win32.Agent.dkbpなど一部のマルウェアは,このユーザー名に基づいてサンドボックスを検出することが知られている.調べてみると,Question about keylogged PC - Printable Versionや[FUD][FREE] Agent Tesla [Keylogger] [ClipboardLogger] [On-Screen Keyboard Logger] - Page 16など,2013年の時点で情報が攻撃者の間で共有されている.
So I managed to crypt a keylogger and have my victim download it through dropbox (I think). I haven’t received any logs yet but it shows that I’m connected to a computer from france which is janettedoe@TEQUILABOOMBOOM. I’m not sure how this is possible, or if it’s some sort of error. Does anybody know what this is? My keylogger hasn’t been sent anywhere other than to my targets email.
どうやらこれはGoogleが動かしているCuckoo Sandboxが用いるユーザー名らしく,攻撃者によるサンドボックスの実態調査が進んでいることを伺わせる.
サンドボックスの透明性について拘りすぎる必要はないにせよ,その情報が攻撃者の手に渡ることを前提としたサービスについては検討の余地がある.
参考文献
- Gabriel Negreira Barbosa, Rodrigo Rubira Branco,
“Prevalent Characteristics in Modern Malware[PDF],”
Black Hat USA 2014. - Gábor Pék, Levente Buttyán, Boldizsár Bencsáth,
“A Survey of Security Issues in Hardware Virtualization[PDF],”
ACM Computing Surveys, vol. 45, issue. 3, 2013. - “VirusShare.com,” http://virusshare.com/
- http://intelreport.mandiant.com/Mandiant_APT1_Report.pdf[PDF]
- “YARA - The pattern matching swiss knife for malware researchers,” http://plusvic.github.io/yara/
- “PEiD Download - Softpedia,” http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml
- “Win32/Kasidet.AA | ESET Virusradar,” http://www.virusradar.com/en/Win32 Kasidet.AA/description
- “VM Checking and Detecting Adventures in Security,” http://securitykitten.github.io/vm-checking-and-detecting/
- “Question about keylogged PC - Printable Version,” http://webcache.googleusercontent.com/search?q=cache:hackforums.net/printthread.php?tid=3733605
- “[FUD][FREE] Agent Tesla [Keylogger] [ClipboardLogger] [On-Screen Keyboard Logger] - Page 16],” http://webcache.googleusercontent.com/search?q=cache:wrb-hdtEFFkJ:www.hackforums.net/showthread.php%3Ftid%3D4522377%26page%3D16+&cd=9&hl=ja&ct=clnk&gl=jp
- Katsunari Yoshioka, Yoshihiko Hosobuchi, Tatsunori Orii, Tsutomu Matsumoto,
“Vulnerability in Public Malware Sandbox Analysis Systems,”
IEEE/IPSJ 12th International Symposium on Applications and the Internet, pp. 265-268, 2010.