Dukesが研究開発によって新たな分析回避手法を発見

By and

Category: Unit 42

Tags: , ,

This post is also available in: English (英語)

概要

攻撃の成功率を上げると共に、侵害したシステムにアクセスできる期間を延ばすため、攻撃者は絶えず検出回避と分析回避の手法を探しています。場合によっては、脅威グループは、インターネットで話題になっている手法を攻撃活動に用いることもあります。たとえばSofacyグループは、2014年に公開されたブログでOffice Test持続手法を見つけています。2016年8月10日に発生した最近の攻撃を分析中に、私たちはDukes脅威グループ(別名APT29、CozyBear、Office Monkeys)が前例のない興味深い分析回避手法を使っていることを確認しました。このブログで解説する分析回避手法を使っていることから、この脅威グループが新しい分析回避手法を継続的に調査していることは確実です。

悪意のあるマクロ

2016年8月10日に発生した攻撃において、Dukesグループは悪意のあるOLEファイル(SHA256: 23a8a6962851b4adb44e3c243a5b55cff70e26cb65642cc30700a3e62ef180ef)を使っていました。具体的には、悪意のあるペイロードをドロップして実行するマクロが含まれたExcelスプレッドシート(.xls)です。悪意のあるペイロードは、このマクロが次の場所に保存するダイナミック リンク ライブラリ(DLL)です。

%APPDATA%\Adobe\qpbqrx.dat

このDLLがシステムに保存されると、マクロは次のコマンドラインを使ってペイロードを実行します。

rundll32.exe %APPDATA%\Adobe\qpbqrx.dat,#2

上のコマンドの"#2"は、rundll32アプリケーションがDLLのエントリ ポイントとして扱う、DLL内のエクスポート関数を示しています。この場合、rundll32アプリケーションは、エクスポート関数の名前を使うのではなく、序数2でエクスポート関数を呼び出します。

分析回避トリック

エクスポート関数を序数で呼び出す手法は、目新しい手法でも独自の手法でもありませんが、話が面白くなるのはここからです。序数でエクスポート関数を使うということは、エクスポート関数名は不要であり、このDLLの開発者は、図1のオレンジ色のボックスに示すようにエクスポート関数名を空白のままにできることを意味します。

図1 関数名が空白であることを示す、Dukes ペイロードのエクスポート アドレス テーブル
図1 関数名が空白であることを示す、Dukes ペイロードのエクスポート アドレス テーブル

これらのエクスポート関数名を空白のままにすることには、どのような意味があるのでしょうか。最初に挙げられる明白な理由は、マルウェアのアナリストが関数名を使用して関連サンプルを相関付けできない点です。また、そこまで明白ではないにせよ、人気のあるIDA逆アセンブラのバグを利用できるという理由もあります(このバグは先日、最新バージョンのIDAで修正されました)。図2は、最新バージョンではありませんが最近のバージョン(具体的にはバージョン6.9.160222)のIDAでDLLを開いた状態を示しています。[Exports]タブを見るとエクスポート関数はDllEntryPointだけであり、空白の名前を持つ他の関数は一切表示されていません。

図2 DukeペイロードをIDAバージョン6.9.160222で開き、エクスポート関数が1つだけ表示された状態
図2 DukeペイロードをIDAバージョン6.9.160222で開き、エクスポート関数が1つだけ表示された状態

図3は、IDAの最新バージョン、特に、すべてのエクスポートされた関数、それらの空白の名前、それぞれの序数を表示するバージョン6.95.160808で開かれたDLLを示しています。

図3 すべてのエクスポートされた関数を表示するIDA 6.95.160808で開かれたDucksペイロード
図3 すべてのエクスポートされた関数を表示するIDA 6.95.160808で開かれたDucksペイロード

迅速さを伴う

分析時に、2つのバージョンのIDA間でエクスポートされた関数の表示に相違がある背後の理由を探ろうとしました。IDAバージョン6.95のリリース ノートによれば、図4のオレンジ色のボックスで示すように、IDA逆アセンブラは、名前が空の場合、DLLのエクスポートされた関数は検出せず、表示しません。この空白のエクスポート名手法は、IDAの最新バージョンを所有していないマルウェア アナリストを対象に分析の難度を高めることができる分析回避手段です。

図4 DLLエクスポート問題を示すIDAバグ修正
図4 DLLエクスポート問題を示すIDAバグ修正

このバージョンのIDAのリリース ノートは2016年8月8日に投稿されました。それは、攻撃でその手法を活用してペイロードを配信した2日前です。この脅威グループは、IDAでバグ修正の原因となったこのバグを見つけたか、または分析を困難にする方法を見出すためにIDAリリース ノートのバグ修正を監視しているかのいずれかであると確信しています。正確にはわかりませんが、IDAリリース ノートの順番と攻撃日から、後者がもっともらしい説明だと考えています。また、後者は、グループがすばやく分析回避の機会を見つけ、ツールセット内にその手法を導入できることも示唆しています。

結論

脅威グループは、検出を回避し、ペイロードの分析に必ず伴う困難さを高めるための新たな手法を探求しています。グループがインターネット上のオープン ソースから手法を取り入れたと思われる今回のインシデントからわかるとおり、すべての探求が脅威グループ内部の労力に基づいているわけではありません。この場合、Dukes脅威グループは、ツールのリバース エンジニアリングが課せられるマルウェア分析では、通常、IDA逆アセンブラを使用することを知っています。このグループは、特にこの場合は、彼ら独自の対抗手段を導入するために既知のマルウェア分析ツールを監視することで、分析ツールを回避する方法を探しているようです。脅威グループの分析回避手法に追随するために、これをリマインダーとして、古いバージョンのIDAを実行しているツールを更新する必要があります。

標的とされた組織および個人での共通点の所見、既知のDukesツールHAMMERTOSSに共通する手法(特に、セカンダリ ペイロードをダウンロードするための画像とステガノグラフィの使用)、C2をホストするための侵害されたサーバの使用方法を含め、このインシデントとDukes脅威グループの関与については、引き続き必要に応じて詳細を提供していきます。