Unit42 調査:進化し続ける DLL ハイジャッキング

Warning: DLL Hijacking in Modern Malware Campaigns

2024/02/25 SecurityOnline — サイバー・セキュリティの脅威において、DLL (Dynamic-link library) ハイジャッキングは、依然として脅威アクターたちの定番の手口となっている。この手法は、古くから存在しているにもかかわらず、マルウェアを展開するためのステルス的な通路を、いまだに脅威アクターたちに提供し続けている。それが浮き彫りにするのは、サイバー・セキュリティにおける、防衛者と攻撃者の間の軍拡競争である。Unit42 の最新レポートは、DLL ハイジャッキングの進化にスポットを当て、この永続的な脅威の複雑さを明らかにし、この攻撃範囲を軽減するための指針を提示している。


DLL ハイジャッキングを使用する攻撃者は、オペレーティング・システムを欺き、正規の DLL の代わりに悪意のバイナリを実行できる。この手法は、攻撃者にアクセスを許可するだけでなく、攻撃者の存在をカモフラージュするため、その検知も困難になる。DLL ハイジャッキングのポイントは、Microsoft Windows が DLL をロードする際に、プログラムがチェックする場所のシーケンスである、DLL 検索順序メカニズムの悪用にある。

諸刃の剣となる DLL の検索順序

DLL ハイジャッキングの核心は、Windows の DLL 検索順序である。この順序には、DLL リダイレクトから既知の DLL やパッケージ依存グラフに至るまでの、標準的な検索場所よりも優先される、特別な検索場所が含まれている。しかし、アプリのディレクトリと PATH 環境変数にリストされた、標準的な検索場所としてのディレクトリは、攻撃者に最も頻繁に悪用される場所である。

DLL ハイジャッキングの進化

DLL ハイジャッキングは、防御メカニズムに対して先回りし、新たな手法を導入することで、長い年月をかけて進化してきた。最も一般的な手法として挙げられるのは、DLL サイドローディング/DLL 検索順ハイジャッキング/ファントム DLL ローディングなどである。それぞれの手法には、微妙な違いがあるが、永続性の獲得から C&C (Command and Control) 通信の実行まで、悪意の目的のために DLL ロード・プロセスを活用するという共通の目標がある。

攻撃者は、柔軟性が高い DLL ハイジャッキングを利用することで、以下のようなアクションが可能になる:

  • DLL サイド・ローディング:最も一般的なのは、悪意の DLL を、ほとんど使われていないが正当なプログラムと同じフォルダにドロップする方法だ。このフォルダは気づかれにくいため、悪意の活動を隠すのに最な場所である。
  • 検索パスの操作:攻撃者は PATH 環境変数を変更することで、自分のコントロール下にあるフォルダを追加できるようになる。そうすることで、偽の DLL が確実に優先されるようになる。
  • 存在しない DLL の悪用:プログラムの中には、存在しない DLL を誤ってロードしようとするものがある。攻撃者は、この欠陥を悪用して、存在しないファイル名の悪意の DLL を適切な場所に仕込むことができる。
  • 永続性の向上:DLL ハイジャッキングは、最初のコード実行だけでなく、一見正当なプログラムを起動するたびにマルウェアをロードさせて、システム内での長期的な足場の確保に使用することができる。
侵入の実例

Unit 42 のレポートは、実例を通じて、サイバー犯罪と国家 APT グループの、双方の戦術を紹介している。ToneShell バックドアにトリプル DLL サイドローディングを採用した Stately Taurus の洗練された作戦から、CatB ランサムウェアを展開するサイバー犯罪者によるファントム DLL ローディングの狡猾な使用にいたるまで、それらの多岐に渡る事例が強調するのは、脅威アクターたちの適応性と持続性である。

DLL ハイジャッキングは、ステルス性の高さと、実施が容易なことから、脅威の世界において多用されている:

  • 国家によるスパイ活動:中国に関連するような政府の支援を受けたグループは、長期的な監視やデータ窃盗のために 、DLL ハイジャッキングを使用して ToneShell のようなバックドアをインストールしている。
  • 多目的マルウェア:様々な脅威アクターたちが使用する、悪名高い PlugX RAT は、検出を回避するために、DLL のサイドローディングを頻繁に利用している。これは、この手法が多様な犯罪目的に適応可能であることを示している。
  • ランサムウェアのペイロード:攻撃者は Windows MSDTC サービスの脆弱性を悪用して、偽の DLL の形で CatB のようなランサムウェアを配信している。これは、破壊的な攻撃での利用を強調している。
脅威を軽減するための戦略とベストプラクティス

DLL ハイジャッキング攻撃の検出と軽減は、この手口のステルス性を考えると、複雑な問題である。Unit42 は、悪意の DLL/脆弱なアプリケーション/ロードイベントの異常などに焦点を当て、効果的に検知するための、いくつかの原則を提示している。さらに Unit42 は、攻撃対象の領域を縮小するための積極的な対策を支持し、DLL のロードに対する完全修飾パスの指定や、DLL のリダイレクトやマニフェストの活用のためのベスト・プラクティスを採用などを、開発者たちに促している。