AutoTriageとセキュリティノイズ削減のスイスチーズモデル
あるいは、従来のスキャナーが報告しすぎる理由
「スイスチーズモデル」は、リスクを考察する古典的な方法です。安全性が重視される業界では、複数の不完全な防御層に存在する「穴」が一直線に並んだときにインシデントが発生すると仮定されています。これらのリスクを軽減するためには、防御層を追加して穴を縮小または除去し、悪い結果がすり抜けるのを防ぎます。
アプリケーションセキュリティにおいて、インシデントはコードや設定のエクスプロイトだけでなく、誤検知や遅い修正によって引き起こされるエンジニアリングの焦点の希薄化によっても発生します。脆弱性管理は、エンジニアリングとプロセスの両方の問題であり、Aikidoはノイズを減らし、重要な修正を加速するための戦略的なアプローチを取ります。
多層防御の重要性
最新のAppSecワークフローは、積み重ねられた「スライス」のセットを含むものとして視覚化できます。各スライスは、異なる種類の問題を捕捉し、全体的なリスクサーフェスを縮小するように設計されています。これらには以下が含まれます:
- コードスキャンと到達可能性
- エクスプロイト可能性、優先度、および影響を評価するための課題トリアージ
- エクスプロイトの可能性と環境コンテキスト
- ヒューマン・イン・ザ・ループ制御(ローカルIDE、CIシステム、PR承認フロー)
- 人間とLLMを使用したコードの実際の修正
上記のそれぞれは、悪用可能な弱点と修正のボトルネックの両方を表す可能性があります。したがって、Aikidoのワークフローは、摩擦を絶え間なく減らすことに特化しており、実際の脆弱性が最も悪用されやすい場所で修正されるように設計されています。
到達可能性による穴の縮小
従来のコードスキャンの弱点は、「成功」が、できるだけ多くの問題を発見することだと誤解される可能性がある点です。これには、脆弱なコードパスやパッケージがユーザー制御の入力から到達できない場合でも、脆弱性として報告される発見が含まれます。Aikidoの到達可能性エンジンは、プログラムフロー分析を追加し、このようなケースを事前に自動的に無視します。これだけで、かなりのノイズが削減されます。
例えば、従来のSCAスキャナーは、古いバージョンの~を検出する可能性があります。 pyyaml 深刻な脆弱性を含んでいます。しかし、到達可能性分析により、実際にそのパッケージを使用しているコードがないことが示されています。したがって、文書化された深刻度にもかかわらず、この問題は安全に自動無視できます。

推論ゲートとしてのAutoTriage
到達可能性によって検出された問題が名目上エクスプロイト可能であると判断された場合、Aikido AutoTriageは以下を尋ねます。
- エクスプロイトの可能性を排除できるか?つまり、エクスプロイトを軽減する効果的なバリデーション、サニタイズ、またはキャスティングがあるか。
- 除外できない場合、どのように優先順位を付けるべきでしょうか? 発生可能性と深刻度を推定し、それに応じてランク付けします。
推論モデルがここでどのように役立つかについて、以前に公開しました。多くの場合、「経験則」で十分であり(そして安価です)。より複雑なケース(例えばパストラバーサル)では、推論モデルは問題を分解することで誤検知をさらに削減します。
これらすべてを支えているのは、あまりにも多くの価値の低いアラートが信頼と対応を低下させるクライ・ウルフ効果に対する鋭い認識です。それを削減することがAutoTriageの主要な目標です。
エクスプロイトの可能性と環境コンテキスト
実世界のエクスプロイトの可能性が重要です。AikidoはEPSSを使用して、低リスクの問題を自動的に無視またはダウングレードし、実際に攻撃が発生している箇所にチームを集中させます。EPSSは毎日更新されるため、この層は過去のCVSSスコアではなく、現在の脅威の現実とスタックを一致させます。
その上、インターネットへの露出、開発環境と本番環境の比較、および周辺制御などのコンテキストに基づいて、深刻度をアップグレードまたはダウングレードします。ここでコンテキスト収集が重要になります。コンテキストが間違っていれば、深刻度の決定も間違っています。だからこそ、LLMのプロンプトチューニングに投資し、AutoTriageを実行するモデルに適切なコードと環境の詳細をパイプ処理しているのです。

到達可能性により、このエクスプロイトがコード内で到達可能であることが示されています。しかし、AI分析では、ホストドメインがハードコードされており、攻撃者によって変更できないため、このコンテキストではこのリクエスト偽造の脆弱性は影響がないと判断されています。
重要な場所でのヒューマン・イン・ザ・ループ
生成AIには、よく知られたフィードバックループの問題があります。出力の最終確認を行い、最終的にリリースするかどうかを決定するには、依然として人間が必要です。Aikidoは、チームがすでに作業している場所に意図的に推奨事項を表示します。
- 共有リポジトリにプッシュしてCIパイプラインを実行する前に迅速な修正を行えるように、IDEで。
- コードが変更された直後にレビュアーがトリアージコンテキストとAutoFixの提案を確認できるように、PRで。
- 既存の自動化されたビルド、テスト、デプロイパイプラインのコンテキストでセキュリティを配置できるように、CIで。
目標は、人間の時間、労力、判断を真に必要とされる場所に確保することです。
修正を即座に適用するためのAutoFix
検出された問題がエクスプロイト可能で影響が大きい場合、Aikidoによって既にまとめられたコンテキストと文書化された修正を含むアラートが最適です。Aikido AI AutoFixは、修正に必要な変更のプレビューを提供し、リポジトリのプルリクエストを生成し、コード変更と解決される脆弱性に関する詳細なコメントを提供します。

AutoFixは現在、SAST、IaCスキャン、SCA、およびコンテナイメージで利用可能です。コードがAI技術によって永続的に保存されたり、AIモデルのトレーニングに使用されたりすることはありません(詳細については、Aikidoのトラストセンターをご覧ください)。
Aikidoを活用する
オリジナルのスイスチーズモデルは、インシデントが複数の弱点が重なることで発生すると教えています。アプリケーションセキュリティにおいては、ノイズと遅延がその弱点の2つです。Aikidoを初めてご利用になる方は、予想よりも少ないセキュリティ問題が表面化していることに最初は驚かれるかもしれません。これは意図的なものです!Aikidoは、数百もの問題のうち、ごく一部しか意味のある影響を持たないような問題のトリアージに費やす管理作業を、意図的かつ積極的に最小限に抑えるように機能します。
到達可能性、推論駆動型トリアージ、必要に応じた人間による検証、およびワンクリック修正を重ね合わせることで、それらの穴が揃うのをはるかに困難にし、チームが重要な作業に進むのをはるかに容易にします。

