脆弱性の発見と優先順位付けにLLMを使うのは簡単ではない

現行の脆弱性優先順位付け手法はうまく機能していません。誤検知が多すぎるうえ、優先順位付けの精度も低く、到達可能性を考慮できていないのが実情です。

これまでのところ、大規模言語モデル(LLM)もこの問題の解決にはあまり役立っていません。

AI主導のアプリケーションセキュリティ(AppSec)スタートアップPixeeの最高技術責任者(CTO)兼共同創業者であるArshan Dabirsiaghi氏によれば、12種類以上のアプリケーションスキャンツールを対象にテストを行ったところ、検出された脆弱性の60%以上が依然として誤検知であるか、到達不能なコード内に存在するか、深刻度が低いものだったといいます。Dabirsiaghi氏は8月のBlack Hat USAでの講演で、これらのテスト結果を詳しく説明し、既製のモデルには文脈情報が欠けているためAIモデルだけでは解決策にならないことを示す予定です。

同氏によると、この状況は問題をトリアージしようとするセキュリティチームにとって悩みの種になっています。

「企業は狂気じみた選択を迫られています。Dependabotを導入してすべての依存関係を絶えず更新させ、ビルド時間のすべてを費やして毎日ひっきりなしにプルリクエスト(PR)の山に埋もれるか、あるいは人間がすべての脆弱性を確認し、実際に脆弱なのはそのうちの8%のどれかを見極めようとするか、いずれかです」とDabirsiaghi氏は述べています。「企業には、それを大規模に行えるだけの人手はとても足りません」

基盤となるAIモデルは、AppSecチームにとって大きな問題を生み出しています。有効な脆弱性の件数は急増しており、インシデント対応・セキュリティチームフォーラム(FIRST)は、共通脆弱性識別子(CVE)が付与される問題の件数が今年は50%増加すると予測しており、Microsoftも月例パッチ(Patch Tuesday)の件数で記録を更新し続けています。それと同時に、このテクノロジーが脆弱性の発見においてこれまでより大幅に優れているとは証明されておらず、既存のツールより処理が遅く、コストもかさむケースが多いのが実情です。Anthropic Mythosのような最新モデルは脆弱性の発見自体は非常に優れているものの、依然として人間による大量の確認と監督が必要です

「LLMは愚かだ」

問題は、大規模言語モデルやより高度なAIツールが、脆弱性を正しく分析する方法をまだ学習している最中にあるという点です。開発者向けに最も特化したモデルでさえ、タスク特化型のスキャンツールと比べればまだ汎用モデルの域を出ていません。そして最終的に本当に役立つツールにするには、企業側がソフトウェアやデプロイ環境について豊富な文脈情報をモデルに提供するとともに、AIモデルを取り巻く適切なツール群、いわゆる「ハーネス」を構築する必要がある、とDabirsiaghi氏は指摘します。

「LLMは愚かなものです。X行目に脆弱性があると言い出したら、それが実在するものでなくても、そのまま修正しにかかってしまいます」と同氏は言います。「それを許してしまうと、アプリケーションの品質、パフォーマンス、セキュリティを損なうことになります。過剰な修正によってセキュリティを自ら台無しにしてしまい、結果としてマージ率の低下や信頼の低下を招くのです」

Dabirsiaghi氏によれば、真の脆弱性を見つけ出す優れたトリアージには、組織的な文脈、技術的な文脈、そしてより広範なコードの文脈という3種類の文脈情報が必要だといいます。たとえば、アプリケーション内でのMD5ハッシュの使用は、多くの場合デフォルトで「中」程度の深刻度に設定されていますが、実際には「低」か「高」のいずれかであるべきだと同氏は述べています。

「パスワードや何らかの秘密情報をハッシュ化するために使っているのであれば、それはMD5の使い方として最悪の部類であり『高』になります。逆に、セキュリティとは無関係な文脈で衝突耐性を目的として使っているのであれば、実際には『低』か、あるいは誤検知に過ぎません」と同氏は説明します。

脆弱性トリアージの改善に向けて

脆弱性を検証し深刻度を割り当てることに加えて、アプリケーションセキュリティチームが修正すべき弱点の数を絞り込むうえで鍵となる手法が到達可能性(リーチャビリティ)です。到達可能性の測定方法にはさまざまな手法がありますが、その結果として、スキャン対象となるコード量はほぼ例外なく大幅に減少します。ある調査ではオープンソースライブラリの62%が実行時に一度も使用されていないことが判明しており、また別の調査では、Javaコードの71%を占めるオープンソース部分のうち、実際に使われているのはわずか12%に過ぎないことが分かっています。

最後に、AppSecの専門家には、一連の補助機能と、スキャン結果の再現性を高めるハーネスが必要です。そうでなければ、LLMは実行するたびに異なる脆弱性の組み合わせを検出してしまうことが多いと、Dabirsiaghi氏は指摘します。

「あるツールを実行して誤検知だと判定されたのに、もう一度実行すると今度は真陽性だと判定される、というのは人にとって非常に困惑させられるものです」と同氏は言います。「LLMは同じ事実の集合から、異なる結論を導き出すことがあり得るのです」

Dabirsiaghi氏は、テスト結果とコードスキャン・分類を改善するための提言を、セッション「Beyond Detection: What We Learned Testing Every AI Approach to Vulnerability Classification」の中で発表する予定です。

翻訳元: https://www.darkreading.com/application-security/finding-and-prioritizing-vulnerabilities-no-easy-task

ソース: darkreading.com