DatabricksがLLMの弱点を指摘、npmのバイナリファイルに隠れたマルウェアを見逃す
Databricks Threat Researchによると、LLMはコンパイル済みバイナリに隠されたnpmマルウェアをしばしば検知できないが、構造化された脅威証拠をプロンプトに注入することで、見逃していた検知の大半を回復できるという。
ひとことで言うと
npmパッケージのバイナリに隠されたマルウェアの検知について、Databricksの研究チームは何を発見したのか。
Databricks Threat Researchによると、npmパッケージの選別に使われるLLMは、コンパイル済みバイナリに隠されたマルウェアをしばしば見逃し、予算帯モデルのテストでは半数が検知に失敗したという。同社は、モデルが推論する前に構造化された「能力プロファイル」の証拠をプロンプトに注入することで、テスト対象モデル全体でこうした失敗の91%を回復できたとしている。
要点
- Databricks Threat Researchによると、コンパイル済みバイナリを同梱するnpmパッケージは、可視的なソースコードに悪意あるコードを隠すパッケージに比べ、決定的なマルウェア判定を免れる割合が2倍以上高いという(同社の集計では14.4%対6.2%)。
- Databricksは7社の9つのLLMをテストし、追加の手がかりがない場合、7モデルの予算帯ティアは70件のマルウェア検知テストのうち35件に失敗し、そのうち20件のパッケージを完全に無害と判定したことが分かった。
- 同社の「能力プロファイル」システムは、モデルが判定を下す前に、約1,800トークンの構造化された静的解析証拠をプロンプトに注入する仕組みで、Databricksによれば、これにより予算帯ティアの当初35件の失敗のうち32件が解消されたという。
- Databricksが紹介するある具体的なテストでは、Qwen3-Next 80Bが難読化された認証情報窃取パッケージを、追加証拠がない状態では98%の確信度で「無害」と判定したが、能力プロファイルを適用した後は同一パッケージを98%の確信度で「悪意あり」と判定した。
- Databricksによれば、能力プロファイルを追加した後でも、GPT-5.4-nanoは最も成績が低いモデルであり続け、10件のテストペイロードのうち3件で悪意ありの判定に届かなかった。
Databricksの発見
Databricks Threat Researchは、2025年11月からnpmパッケージレジストリからマルウェアのサンプルを収集していると述べている。OSVのnpmマルウェア勧告と照合してスキャンした11,413件のパッケージバージョンのうち、96.2%は悪意のあるペイロードをソースコードに直接隠すか、外部サーバーから取得していたと同社は説明する。残りの3.8%、すなわち432件のパッケージバージョンは、代わりにコンパイル済みバイナリを同梱していた。
Databricksによれば、バイナリを含むパッケージは件数こそ少ないものの、選別がより困難だという。同社の説明では、OSVで確認されたnpmマルウェアのうち、バイナリを同梱するパッケージが決定的な悪意判定に至らなかった割合は、ソースコードのみのパッケージの2倍以上に達し、14.4%対6.2%だったとしている。
テストの構築方法
Databricksは、npmレジストリをリアルタイムで監視するスキャナーを構築し、パッケージのコードとメタデータに対してYARAとSemgrepを実行するとともに、バイナリ解析モジュールを組み合わせ、集約した証拠をLLMに渡して判定させる仕組みにした。
バイナリベースの検知を特に検証するため、研究チームはネイティブなNode.jsアドオンとして構築した5種類の敵対的パッケージを作成した。認証情報を窃取するsysmon-native、ドロッパー兼バックドアのbuildchain-native、リバースシェルのnetpulse-native、クリプトマイナーのスタブであるhashworker-native、そして常駐化機構のtaskd-nativeである。いずれも、本物らしく見えるpackage.json、README、JavaScriptバインディングとともにパッケージ化された。
Databricksは7社の9モデルをテストした。実運用で大規模に導入されることが現実的に想定される7モデルの「予算帯」ティアに加え、行動基準として用いた上位モデルのClaude Sonnet 4.6とKimi K3、そしてコスト比較用の参考としてのみ含めたClaude Opus 4.6である。
結果
| モデル | プロファイルなし | プロファイルあり |
|---|---|---|
| GPT-5.4-nano | 0/10 | 7/10 |
| Qwen3-Next 80B | 1/10 | 10/10 |
| Llama 3.1 8B | 4/10 | 10/10 |
| Gemma 3 12B | 5/10 | 10/10 |
| Claude Haiku 4.5 | 6/10 | 10/10 |
| GLM 5.3 Flash | 9/10 | 10/10 |
| Gemini 3.5 Flash | 10/10 | 10/10 |
追加の手がかりがない場合、予算帯ティアは70件の検知テストのうち35件(50%)で失敗し、そのうち20件はマルウェアを完全に無害と判定していたとDatabricksは述べる。また、70件のうち51件(73%)で「悪意あり」判定に届かなかったという。一方、基準として用いた2つの上位モデルは検知の閾値で失敗することはなく、悪意判定に届かなかったのも1件のみだったと同社は述べている。
Databricksはこの問題に対し、「能力プロファイル」と呼ぶ仕組みで対応したと説明する。これは、静的スキャンの証拠を、認証情報窃取や常駐化といった特定の悪意ある手法に紐づいた閾値に照らして採点する宣言型プレイブックである。閾値に達すると、モデルが推論を行う前に、約1,800トークンの構造化された要約をプロンプトに注入する仕組みだが、モデルはそれでもプロファイルの判定を覆すことができるという。
プロファイルを追加した結果、当初の35件の失敗のうち32件(91%)が正しい検知に転じ、テストしたいずれのペイロードについても無害判定を返したモデルはなかったとDatabricksは述べる。予算帯ティア全体での検知閾値の失敗率は50%から4%(70件中3件)に低下し、悪意判定の基準に届かなかった割合も73%から34%に下がった。GPT-5.4-nanoで残った3件の失敗は、無害ではなく「疑わしい」という判定にとどまったという。
同社は特に1件の事例を詳しく紹介している。Qwen3-Next 80Bは、難読化されたsysmon-nativeの認証情報窃取パッケージについて、プロファイルが適用されない状態では98%の確信度で無害と判定し、許可リストへの登録を推奨した。同一のパッケージに対し、4つの能力プロファイルが作動した後は、同じモデルが98%の確信度で悪意ありと判定し、ブロックを推奨したという。
よくある質問
- Databricksの研究はどのような問題を扱ったのか。
- Databricks Threat Researchは、悪意の可能性があるnpmパッケージの選別に使われるLLMが、可視的なソースコードではなくコンパイル済みバイナリファイルに隠されたマルウェアをしばしば検知できない理由を調査した。
- Databricksはいくつのモデルをテストし、追加の手がかりがない場合に何が起こったのか。
- Databricksは7社の9モデルをテストした。同社によると、追加の手がかりがない場合、7モデルの予算帯ティアは70件の検知テストのうち35件に失敗し、そのうち20件は完全に無害と判定された。
- Databricksが言う「能力プロファイル」とは何か。
- Databricksはこれを、静的スキャンの証拠を特定の悪意ある手法に紐づいた閾値に照らして採点する宣言型プレイブックだと説明している。閾値に達すると、約1,800トークンの構造化された要約がモデルのプロンプトに注入される。
- 能力プロファイルは、Databricksが発見した検知の失敗をすべて解消したのか。
- いいえ。Databricksによると、プロファイルは予算帯ティアの35件の失敗のうち32件を解消したが、GPT-5.4-nanoは10件のテストペイロードのうち3件で、依然として悪意ありではなく疑わしいという判定を返した。