AuKillは防御回避機構を搭載した攻撃ツールです。
AuKillは攻撃者が用意した脆弱なドライバを持ち込んで攻撃に利用する手法を使用します。
Bring Your Own Vulnerable Driver(BYOVD)攻撃です。
- ドライバに目をつける
ドライバは通常のアプリケーションソフトウェアとは異なります。
ドライバは動作時にカーネルに追加したい機構が実装されたソフトウェアです。
通常、個別のハードウェアを制御する機構などの特定環境でのみ必要となるような部分をドライバとして分離できる状態で実装します。
これにより新しいハードウェアに対応することが簡単になりますし、対象の部品の無い環境ではそのドライバを読み込む必要がありませんので、必要なものだけを使用することができる状態が実現できます。
ドライバとカーネルを分離した実装は設計として妥当な構造といえます。 - 脆弱なドライバを用意する
ドライバはカーネルとは分離されたソフトウェアですが、動作時はカーネル空間に読み込まれて動作します。
通常のアプリケーションのコードはカーネル空間を直接参照したりすることはできませんが、ドライバは動作開始後にはすでにカーネル空間に存在しています。
脆弱性の無いドライバが正しく利用される限りにおいては問題ありませんが、そうでない場合どうなるでしょう。
通常はカーネルしか触れることのできないメモリ空間を操作することができてしまうようになります。 - ドライバを用意する作戦
脆弱なドライバを使うという場合、作戦にはいくつかの方向性が考えられます。
元から侵入先環境に存在する脆弱なドライバをそのまま悪用する、脆弱なドライバを自分で作って持ち込む、正規のドライバなのだけれども古くて脆弱なドライバを持ち込む、などです。
BYOVDはこの3番目のパターンです。 - AuKillの作戦
AukillはProcess ExplorerというMicrosoftが提供するインストール不要のソフトウェアを悪用します。
Process ExplorerはいわばWindowsのタスクマネージャーの機能強化版です。
名前の通りプロセスを操作する機能が実装されています。
プロセスの関連性を把握する機能がありますし、把握するだけでなく、必要に応じて特定のプロセスを停止させることもできます。
通常はこれを使って見覚えのない不審な実行ファイルを探し出して動作を停止させたりすることに使用するツールです。
残念なことにいろいろなソフトウェアにはバグがあります。
そしてこのProcess Explorerの過去のバージョンにも脆弱性がありました。
Process Explorerは自分で選択してインストールする類のものではありませんので、たとえばWindows Updateをきっちり実施していれば新しいものに置き換えられていきます。
この意味では通常は安全な状態に保つことは難しくありません。
しかし、環境にあるものが安全なものでも、脆弱なバージョンのものを攻撃者に持ち込まれてしまったら脆弱なものを使うことを許してしまいます。
AuKillはこれを実行しました。
そして自身の悪意ある活動の前に、侵入先環境で動作するEDR機構を停止させることに使用しました。
システムを更新して正しい状態に保つことはとても重要です。
タイムリーに実施することによって脆弱なソフトウェアが自身の環境に存在しない状態を維持することができます。
しかしそれだけでは十分ではありません。
攻撃者に脆弱なものを持ち込まれて使われるというパターンもあるのです。
XXXXXだけきっちりやっていれば大丈夫、というのは幻想なのかもしれません。
システムを適切に更新する運用を継続し、それに加えて、不用意に出自の不明なファイルに関わらないなどの通常実施しているべき事柄も適切に行動していくことにしようと思います。
参考記事(外部リンク):‘AuKill’ EDR killer malware abuses Process Explorer driver
news.sophos.com/en-us/2023/04/19/aukill-edr-killer-malware-abuses-process-explorer-driver/
この記事をシェア |
---|