** 本記事は、It’ll be back: Attackers still abusing Terminator tool and variants の翻訳です。最新の情報は英語記事をご覧ください。**
BYOVD (脆弱なドライバーの持ち込み) とは、侵害されたマシンに攻撃者が既知の脆弱なドライバーをインストールし、その脆弱性を悪用してカーネルレベルの特権を獲得する攻撃の一種です。カーネルレベルのアクセス権を得た攻撃者は、マルウェアを隠したり、認証情報をダンプしたり、さらには EDR ソリューションの無効化を試みたりと、多くの攻撃を実行できます。
本記事執筆時点で、脆弱なドライバーと対応するシグネチャおよびハッシュのオープンソースリポジトリである loldrivers.io のリストでは、364 件のエントリが「脆弱なドライバー」とタグ付けされています。そのためか、以前は高度な攻撃者にしか扱えなかった BYOVD 攻撃が、近年ランサムウェアのオペレーターや技術力の低い攻撃者にも用いられるようになってきました。
たとえば、2020 年 2 月にソフォスは RobbinHood ランサムウェア攻撃 (リンク先: 英語) についての記事を公開しましたが、この攻撃キャンペーンでは、攻撃者がマザーボードメーカーによって署名された正規ドライバーを悪用し、EDR 製品を無効化していました。それ以降も、グラフィックカードのドライバーを悪用した BlackByte ランサムウェアキャンペーン、攻撃者が Windows ドライバーを悪用した; BYOVD キャンペーン、攻撃者がいくつかのランサムウェアインシデントで使用していることが確認されている、古い Process Explorer ドライバーを悪用するツール AuKill に関連する複数のインシデントなどについて報告しています。
BYOVD が技術力の低い攻撃者にも用いられるようになったもう一つの理由として、既製のキットやツールが犯罪フォーラムで売買されるようになったことが考えられます。特に 2023 年 5 月、spyboy として知られる攻撃者がロシア語のランサムウェアフォーラム「RAMP」で「Terminator」と呼ばれるツールを宣伝し、大きな注目を集めました。Terminator の販売者は、300 ドルから 3,000 ドルでこのツールを販売しており、24 件のセキュリティ製品を無効化できると主張していました。
Terminator ツール
CrowdStrike による 2023 年の分析によると、Terminator は BYOVD ツールであり、悪用される脆弱なドライバーは Zemana によって公開・署名された zam64.sys (Zemana アンチロガー) または zamguard64.sys (Zemana アンチマルウェア、略称 ZAM) のようです。両ドライバーには、ほぼ同一のコードベースが用いられています。
図 1: 2 件の Zemana ドライバーの逆アセンブリコードを比較すると、ほぼ同一のコードベースであることがわかる
どちらのドライバーにも同じ脆弱性があり、IOCTL コードを送信してさまざまな機能を要求できるプロセスの検証が不十分です。これらのドライバーは、正規の信頼できるプロセスの「許可リスト」を保持しています。しかし、IOCTL コード 0x80002010 を送信し、実行中のプロセスのプロセス ID をパラメーターとして渡すことで、攻撃者は自身のプロセスを許可リストに追加し、このセキュリティ対策を回避できます。一旦追加されると、攻撃者はコード 0x80002048 の IOCTL リクエストを送信することで、標的プロセスの終了を試みるなど、多くの機能をドライバーに要求できます。要求できる機能の一覧は、こちらの記事をご覧ください。
図 2: 脆弱性の悪用に必要な IOCTL コードリクエスト
しかし、この方法でドライバーを悪用するには、管理者権限およびユーザーアカウント制御 (UAC) バイパスが必要となります (または、ソーシャルエンジニアリングによってユーザーにドライバーをインストールさせる必要があります) 。そのため、確かに攻撃者は脆弱な正規ドライバーを活用することで AV や EDR のプロセスを終了させられますが、必ずしも簡単ではありません。権限を昇格させることで他のセキュリティ保護が発動する可能性もあります。
複数の亜種
ソフォスを含め、spyboy のリストに掲載されたベンダーの多くは、ドライバーの亜種を調査し、保護を開発するため迅速に動きました。Terminator の最初のリリース以降、ソフォスは、spyboy の攻撃手法を再現したオープンソース版の Terminator、以前のプロジェクトの C# 移植版である SharpTerminator、Nim で書かれたバージョンである Ternimator など、このツールの複数の亜種も追跡してきました。(Rust と同様、Nim は比較的新しい言語であり、静的検出または静的ベースのヒューリスティックモデルを回避する可能性が高いため、レッドチーム用ツールやマルウェアを記述するのに人気の言語です。さらに、クロスプラットフォームにも対応しています。)
最初の発見から数か月経った今でも、ドライバーは犯罪フォーラムで人気のトピックです。たとえば、2023 年 11 月にロシア語の犯罪フォーラムで次のような投稿が確認されました。
図 3: 犯罪フォーラムで BYOVD ツールの販売を知らせる攻撃者
このスレッドをさらに調査した結果、おそらく異なるリリースバージョンの Zemana ドライバーか、(本記事執筆時点では) loldrivers.io で報告されていないハッシュを指しているものと思われます。この攻撃者は、別のユーザーからの「ZAM のことでしょう。すでにブラックリストに載り、検出されているため、わざわざ注目するものではありません」という指摘に、次のように回答しています。「データベースにはまだ記録されていません。データベースにあるのはドライバーの別のバージョンであり、このドライバーではありません。」
フォーラムで議論が続いた結果、攻撃者は脆弱な Zemana ドライバーが広く知られていることを認識していることが明らかになりました。やりとりの最後では、別の攻撃者が、悪意のあるドライバーを一から開発し、有効な証明書 (盗まれたものであろうと、リークされたものであろうと、あるいは他の方法で入手したものであろうと) を使用して署名する方が、既知の脆弱なドライバーを使用するよりも成功率の高い戦略だと主張していました。
このスレッドからはそれ以上有益な情報を得られませんでしたが、Zemana ドライバーの悪用範囲を特定し、攻撃者がオリジナルの Terminator ツールにさらなる調整や変更を加えているかどうかを確認するために、調査と分析を行いました。
実際の攻撃
過去 6 か月間のソフォスの動作検知テレメトリを確認したところ、攻撃者が Zemana アンチロガーまたはアンチマルウェアドライバーを悪用したインシデントをいくつか発見しました。いくつかの事例では、攻撃者は検出を回避するため、上述のオープンソースプロジェクトを異なる言語に移植したり、パッカーを通して難読化したりしていました。より広範なエビデンスベースで確認された特徴的な攻撃として、複数のインシデントを以下で取り上げます。
Citrix から Ter へ
2023 年 9 月 13 日と 2023 年 10 月 10 日に、ソフォスは非常に類似した手法の攻撃を阻止しました。どちらの事例でも、初期アクセスは脆弱な Citrix アプリケーションを悪用して行われました。の後、攻撃者は Windows のエラー報告プロセス wermgr.exe にペイロードを注入しました。次に、攻撃者は次のコマンドを発行してソフォス製品の無効化を試みました。
wmic service where \"PathName like '%sophos%'\" call delete /nointeractive wmic service where \"PathName like '%sophos%'\" call stopservice /nointeractive
標的デバイスでは改ざん防止機能が有効になっていたため、ソフォスのサービスを無効化して削除しようとする試みは失敗しました。最終的に、攻撃者は ter.exe という名前の実行ファイルを展開する方針に切り替えました。このバイナリを解凍すると、わずかに改変されたバージョンの Terminator が出現します。ドライバー自体は、実行可能ファイルの配信より前に別途配信されました。
実行されると、バイナリは「BINARY」リソースをロードします。コンテンツは AES-256 で復号されていました。鍵はバイナリにハードコードされています。最後に、バイナリは復号されたコンテンツを新たに割り当てられたセクションに書き込み、実行します。このドライバーをロードしようとする試みは、動作検知ルールの 1 つによってブロックされました。
図 4: ter.exe の解凍ルーチン
解凍された ter.exe バイナリの逆アセンブリを調査した結果、元のプロジェクト名 「Terminator-master」の PDB パス文字列が見つかり、攻撃者が Terminator GitHub リポジトリのコードを改変していることが判明しました。
図 5: 解凍された ter.exe 内の PDB ファイルへのパス
医療機関への攻撃
2023 年 12 月 15 日、ソフォスは医療機関を標的とした攻撃をブロックしました。初期アクセスの直後、攻撃者は PowerShell コマンドを実行し、C2 サーバーからテキストファイルをダウンロードしようとしました。
このテキストファイルは、XMRig クリプトマイナーを標的システムにインストールするための PowerShell スクリプトです。ここの試みは、ソフォスの動作検知ルールの 1 つによってブロックされました。
その後、攻撃者は感染したマシンの 1 台で Terminator の Nim 版である ternimator を実行し、EDR クライアントの無効化を試みました。ドライバーをロードしようとする試みも、動作検知ルールによってブロックされました。
図 6: 医療機関への攻撃の概要
ZAM から AuKill へ
最初の攻撃手法は不明ですが、2023 年のクリスマスに発生したある攻撃で、攻撃者は 1 台のマシンにアクセスしました。まず試みたのは、updatedrv.sys を装った Zemana アンチロガードライバーを以下の異なる場所からロードすることです。
%sysdir%\drivers\updatedrv.sys <d>\programdata\usoshared\updatedrv.sys
これらの試みが失敗した後、攻撃者はもう 1 つの既知の EDR キラーである AuKill の使用に切り替えました。Process Explorer ドライバーは temp フォルダに ped.sys という名前で配置されていました。ソフォスはこの活動をお客様に報告し、それ以降検出はありませんでした。そのため、攻撃が阻止されたと確信しています。
緩和と保護
脆弱なドライバーの悪用を検知することは、セキュリティ業界が対処すべき課題です。loldrivers.io のような既知の脆弱性ドライバーのリポジトリをコンパイルするのも確かに有効ですが、これらのドライバーは正規のものであり、OS やミッションクリティカルなサービス/アプリケーションにとっては極めて重要である可能性があります。慎重な検証を経ずにこれらのドライバーを全面的にブロックすることは、時間がかかる上に逆効果であり、組織にとって予期せぬ問題を引き起こす可能性があります。したがって、この問題を解決するには、リアクティブなアプローチだけでは不十分です。特に、既知の脆弱なドライバーは非常に多く、ゼロデイ脆弱性を含むものも潜在的に多く存在するためです。
しかし、ゼロデイ脆弱性を含む正規ドライバーを攻撃者が配信することは比較的稀です。ほとんどの場合、ドライバーとその脆弱性は既知であり、今回の事例のように文書化されています (ただし、静的検出を避けるために、圧縮されたり、難読化されたり、改変されていたりすることはあります) 。そのため、脆弱性のあるドライバーを常に最新の状態に保ち、まだインストールしていないドライバーをブロックリストに入れるのは有効です。
また、以下のようなプロアクティブな対策も推奨されます。
- エンドポイントセキュリティ製品に改ざん防止機能が実装されているかどうかを確認します。(ソフォス製品の改ざん防止機能に関するアドバイスはこちらを参照してください。)
- Windows セキュリティロールを適切に管理してください。BYOVD 攻撃には通常、権限の昇格と UAC のバイパスが必要です。
- OS と個々のアプリケーション/ツールの両方を常に最新の状態に保ち、使わなくなったり不要になったりした古いソフトウェアは削除します。
- まだの場合は、脆弱性管理プログラムに脆弱なドライバーを追加することを検討してください。攻撃者は、侵害されたシステム上にすでに存在する脆弱な正規ドライバーを悪用しようとする可能性があります。
本記事で紹介した Zemana コンポーネントの静的検出に加え、ソフォスの動作検知ルールと Adaptive Attack Protection (適応型防御) は、お客様の環境に防御層を追加します。さらに、BYOVD 攻撃は単独で発生するものではなく、最初の攻撃手法の悪用、ラテラルムーブメント、常駐化、権の昇格などの活動を伴うため、これらの活動は進行中の攻撃を検出しブロックする機会となります。
結論
BYOVD 攻撃は、カーネルレベルで AV や EDR ソリューションを無効にする手段を提供できるため、攻撃者にとって魅力的です。既知の脆弱なドライバーの数は非常に多いため、攻撃者は豊富な選択肢から選ぶことができます。Zemana ドライバーの悪用に関するソフォスの調査から、攻撃者は公に知られ、署名されたコンポーネントであっても使い続けることがわかります。これらのコンポーネントは広く動作し、多くの場合既製のキットやツールにバンドルされているためです。しかし、このフォーラムでソフォスが発見した一部の攻撃者は、盗用または流出した証明書で署名された、専用の不正ドライバーの使用を推奨しているという事実も注目に値します。
AuKill やその他のキャンペーンに関する以前の報道でもお伝えした通り、セキュリティコミュニティの他のメンバーと同様、ソフォスも常に脅威の状況を調査・評価し、脆弱なドライバーとカスタムビルドのドライバーの両方を追跡しています。また、悪意を持って使用されるドライバーを積極的にブロックするための新しい方法も考案し、テストし続けています。
本記事で詳述した攻撃の IoC (セキュリティ侵害の痕跡) は、ソフォスの GitHub リポジトリで入手できます。
保護機能
ツール | 保護機能 |
CSharpTerminator | ATK/SharpTerm-A |
Terminator | ATK/KillAV-JV、CXmal/KillAV-ZA |
Ternimator | Evade_*、Priv_* |
Zemana アンチロガー/アンチマルウェアドライバーの悪用 | Evade_*、Priv_* |
XMRig クリプトマイナー | XMRig クリプトマイナー (PUA) |