LotL攻撃がWindowsネイティブAIスタックにマルウェアを隠す

ニューラルネットワーク構造の3Dレンダリング

出典:Eugene Sergeev(Alamy Stock Photoより)

研究者が、Windowsのネイティブ人工知能(AI)スタックがマルウェア配布の経路となり得ることを実証しました。

巧妙かつ複雑なプロンプトインジェクション手法が次々と登場する今年、セキュリティ研究者のhxr1氏は、より伝統的なAIの悪用方法を特定しました。Dark Readingに独占提供された概念実証(PoC)で、彼はLiving-off-the-land攻撃(LotL)を、Open Neural Network Exchange(ONNX)の信頼されたファイルを使い、セキュリティエンジンを回避して実行する方法を説明しました。

「私たちがよく知っているさまざまなLiving-off-the-landバイナリは、もう何年も前から存在しています」とhxr1氏は言います。「それらは古く、よく知られていて、ほとんどのエンドポイント検出&対応システム(EDR)やアンチウイルスフィルタは、それらを使った攻撃を検知できるほど十分に優秀です。だから攻撃者は、これら既存の防御を回避し、ターゲットシステムにペイロードを送り込むために、常に新しいLiving-off-the-landバイナリを探しています。そこでこのONNXモデルが登場するのです。」

Windows AIの基礎知識

サイバーセキュリティプログラムの有効性は、サイバーセキュリティ開発者の設計次第です。ネットワークから過剰なデータが流出したり、見知らぬ.exeファイルが実行された場合など、これらは疑わしい挙動の既知の指標のため検知できます。しかし、これまでに見たことのない形でマルウェアがシステムに届いた場合は、検知できないかもしれません。

これがAIが頭痛の種となる理由です。新しいシステムやソフトウェア、ワークフローがAI機能を追加することで、サイバー攻撃が伝播する新たな未知の経路が開かれます。

例えば、2018年以降、Windowsオペレーティングシステムは、アプリケーションがクラウドサービスに接続せずにローカルでAI推論を実行できる機能を着実に追加してきました。Windows Hello、Photos、Officeアプリケーションはそれぞれ、組み込みAIを使って顔認証、物体検出、生産性機能を実現しています。これらはWindows Machine Learning(ML)アプリケーションプログラミングインターフェース(API)を呼び出し、MLモデルをONNXファイル形式で読み込みます。

Windowsやセキュリティプログラムは本質的にONNXファイルを信頼します。なぜなら、マルウェアはEXEやPDFなどの形式で現れるものであり、これまで野生の脅威アクターがニューラルネットワークを悪用する意図や能力を示した例はありません。しかし、さまざまな手段でそれは十分に可能です。

AIモデルへのマルウェア埋め込み

ニューラルネットワークを汚染する簡単な方法は、そのメタデータに悪意のあるペイロードを仕込むことです。ただし、その場合マルウェアは平文で存在するため、セキュリティプログラムに偶然検知されやすくなります。

より難易度は高いですが、モデルのノード、入力、出力など名前付きコンポーネントに分割してマルウェアを埋め込む方法もあります。または、高度なステガノグラフィを使い、ニューラルネットワークを構成する重みにペイロードを隠すことも可能です。

これら3つの方法はいずれも、近くにローダーがあり、関連するWindows APIを呼び出してペイロードを展開し、メモリ上で再構築して実行できれば機能します。そして、どちらの方法も極めてステルス性が高いです。ニューラルネットワークから断片化されたペイロードを再構築するのは、干し草の山に散らばった針の断片から針を再構築するようなものです。

仮に攻撃者がONNXファイルにマルウェアを忍ばせることに成功したとしましょう。その後、被害者に届ける方法はさまざまです。ONNXファイルとローダーを添付したフィッシングメールでもよいでしょう。または、ユーザーがAIソフトウェアを広く信頼していることを利用し、Hugging FaceのようなOSSプラットフォームに悪意あるモデルを公開することもできます。

しかし、フィッシングメールに添付されたPDFとONNX、あるいはHugging FaceとGitHubからのソフトウェアダウンロードには決定的な違いがあります。

検知ツールの回避

「GitHubリポジトリをダウンロードすると、たいていPythonスクリプトや.NETコードなどが含まれています。そして、EDRエンジンはそういったファイルをスキャンするのに十分優秀です」とhxr1氏は指摘します。

一方で、セキュリティプログラムがONNXファイルを読み込むプロセスを検知した場合、それは無害なAI推論として認識されます。しかも、これほど複雑でバイナリ形式のファイル内からペイロードを見つけるのは非常に困難です。

さらに、ONNXファイルは単なるデータを含むだけなので「これらのモデルは署名付きバイナリである必要がありません。どんなモデルでもダウンロードでき、ネイティブライブラリで抽出でき、検証や署名チェックも行われません」とhxr1氏は指摘します。これにより、実行ファイルの挙動に注目した解析ツールを簡単にすり抜けてしまいます。

さらに、ファイルの読み込みと実行方法にも理由があります。「ペイロードはどんなファイル形式にも隠せます。たとえば音声ファイルにも入れられます。しかし、どうやって抽出しますか?どのAPIを使いますか?使おうとしているAPIは、システムに組み込まれているEDRが、ファイルを取得・読み取り・データ抽出する不審なAPIを監視できるほど優秀ですか」とhxr1氏は言います。彼のPoCが非常にうまくいった理由は、ONNXファイルを操作するダイナミックリンクライブラリ(DLL)がMicrosoftによって署名され、Windowsに組み込まれているからです。つまり、ターゲットのシステムで悪意あるONNXが読み込まれても、セキュリティプログラムが見るのは、AIタスクを実行するためにモデルデータを読み込む信頼されたWindows DLLだけなのです。

hxr1氏の見解では、Windows AIの動作自体に問題があるわけではありません。むしろ、サイバーセキュリティ業界全体が対応を変える必要があります。セキュリティツールはAIファイルに潜む脅威を検知できるよう再設計する必要があります。

「EDRは、誰がファイルを読み込んだか、何が抽出されたか、抽出データがどこに渡されたかを監視すべきです」と彼は提案します。「さらに、YARAルールのような静的解析ツールを使ってデータ内の不審な文字列を監視できます。また、AppLockerのようなアプリケーション制御も活用できます。これらはすべて、緩和策や検知戦略の一部として実施可能です。」

少なくとも、「ここでの主な目的は、これらのモデルが信頼できないことを証明することです。インターネット上にあるモデルを盲目的に信頼しないでください」と彼は言います。

翻訳元: https://www.darkreading.com/vulnerabilities-threats/lotl-attack-malware-windows-native-ai-stack

ソース: darkreading.com