ハッカーはWindowsイベントログにファイルレスマルウェアを感染させる方法を見つけたことが、セキュリティ研究者によって明らかになった。
Kasperskyの研究者は5月4日、明らかにした。それは「ファイルレスマルウェアの新たな隠し場所」だった。「非常に標的を絞った」攻撃キャンペーンで、ハッカーはWindowsイベントログを使ってシェルコードペイロードを注入し、密かに活動していた。
この新たな手法は非常に高度だが、悪意のあるDLLの注入や検知の回避にかなり有効とみられるため、今後広く使われる可能性がある。Kasperskyの研究者は、攻撃者がカスタムツールやCobalt Strikeなどの商用ソリューション、さらにハッカーが使った新しいツールセットなど、さまざまなツールを利用していたことを発見した。
研究者は、明らかに高度な脅威アクターによるものだと述べたが、既知のAPTグループにキャンペーンを帰属させることはできなかった。ハッカーが使ったツールセットの名前にちなみ、このキャンペーンは今のところ「SilentBreak」と呼ばれている。
関連記事:Cobalt Strikeがハッカーのお気に入りツールになった理由
SilentBreakの攻撃手法
研究者は「キャンペーンで使われた手法とモジュールの多様さ」に驚き、モジュールを1つずつ分析するため、次のように分類した。
これらすべての段階が可能になったのは、ハッカーが標的をだまして、正規サイトであるfile.ioから感染済みの.rarファイルをダウンロードさせたためだ。その後、デジタル署名されたCobalt Strikeモジュールを拡散し、機密データを持ち出すことができた。
攻撃者はWindowsログにどのようにコードを注入したのか
研究者は、Key Management Services(KMS)のWindowsイベントログ内に悪意のあるペイロードが存在することを発見した。
キャンペーンの第1段階を実行するため、ハッカーはカスタムマルウェアドロッパーを使い、正規のWindows Error Reporting実行ファイル(WerFault.exe)をC:\Windows\Tasksにコピーし、同じディレクトリに悪意のあるバイナリをドロップした。

この手法はDLLハイジャックと呼ばれ、必要なDLLファイルを悪意のあるファイルに置き換え、標的アプリケーションと同じディレクトリに配置するものだ。システムはDLL(Dynamic Link Library)ファイルにアプリケーションが必要とする一部のリソースを保存し、自動的に読み込む。
新しいWerFault.exeはその後自動起動に設定され、「WindowsシステムレジストリのSoftware\Microsoft\Windows\CurrentVersion\RunブランチにWindows Problem Reportingの値」を作成する。
次にドロッパーは、特定のカテゴリー(0x4142)で、ソースがKMSになっているログを探す。該当するログが見つからない場合、暗号化されたシェルコードを8KB単位でイベントログに書き込む。
Kasperskyの研究者はコードを調査し、正規の元ライブラリへのすべての呼び出しを傍受するプロキシとして動作し、次の段階を準備していることを発見した。これは反復的な手順であることを示している。
ハッカーは検知の回避に注力
この作戦で最優先されたのは、当然ながら検知されないことだった。そのため攻撃者は、次のようなさまざまなアンチ検知技術を用いた。
- 悪意のあるファイルへの署名に正規のデジタル証明書を使用
- 正規の実行ファイル(Werfault.exe)のコピーを自動起動
- GoやC++など、さまざまな言語でコンパイルされたアンチ検知ラッパー
- コード内の関数名を難読化
- 悪意のある命令をWindowsイベントログ内のシェルコードのチャンクに分割
Kasperskyによるマルウェア分析は非常に注目すべきもので、詳細に及んでいる。研究者は、隠された領域をすべて復号するためにカスタムスクリプトを書く必要があった。
研究者によると、SilentBreakキャンペーンで最も異例かつ革新的な点は、「暗号化されたシェルコードを8KBのブロックに分割し、イベントログのバイナリ部分に保存していた」ことだ。
第2段階では、ハッカーはCobalt Strike用のカスタム復号ランチャーを使い、シェルコードを復号してメモリにマッピングし、最終的に悪意のある命令を実行してマルウェアを展開した。
関連記事:ハッカーが検知を回避する方法
キャンペーンはトロイの木馬に依存
攻撃者は2種類のトロイの木馬を使った。
- C2(コマンド&コントロール)を用いるHTTPベースのトロイの木馬
- 名前付きパイプベースのトロイの木馬
イベントログ内の暗号化されたシェルコードには、次の段階のトロイの木馬のアドレスや、トロイの木馬内部で使われる関数名のハッシュなど、非常に具体的な引数が含まれていた。
「dave」のような未使用の文字列や、定数「4」も存在した。研究者は、ランチャーが追加パラメーターを必要とする他のモジュールをサポートしている可能性があり、それがこのような痕跡の説明になると考えた。
HTTPトロイの木馬は、コンピューター名、ローカルIPアドレス、OSのバージョン、アーキテクチャ(x86またはx64)、MachineGUIDの値など、フィンガープリント情報を含む情報を生成するようだ。
この情報はその後、不正な通信チャネル(C2)を通じて標的を絞った命令を送信するために使われる。
研究者によると、名前付きパイプ型のトロイの木馬には、権限昇格、スクリーンショットの撮影、非アクティブ時間の計測などを含む「より高度なコマンドシステム」がある。
イベントログ攻撃から身を守る方法
これほど入念な準備を行い、カスタムモジュールや復号ツールの作成に時間を費やしていることから、執筆時点では正体が分かっていない高度なハッキンググループの仕業だと考えられる。
このような注目度の高い攻撃を予測するためにできることはあまりなく、ウイルス対策ソフトや組み込みのファイアウォールでは検知できない可能性が高い。しかし、EDRなどのエンドポイントセキュリティソリューションを使うなど、特にそのソリューションに振る舞い検知機能があれば、異常かつ疑わしい活動を検知できる可能性を高める具体的な対策を取ることはできる。
ゼロトラストアーキテクチャも感染の封じ込めに役立つ可能性がある。今回の例では、ハッカーがマルウェアを拡散し、感染サイクルを反復させる戦略を取っていた。
セキュリティベンダーや、MITRE ATT&CKなどのナレッジベースは、今後数カ月以内にこの新たな手法をカタログに追加するとみられる。いずれにせよ、脅威インテリジェンスの目的でセキュリティチームがこの手法をマッピングするうえで役立つため、追加するのはよい考えだろう。
次の記事:





