AIツールによってオープンソースソフトウェアに潜在する脆弱性を発見することは容易になった。しかし、想定上の問題を見つけやすくなったからといって、それが実際に悪用可能な脆弱性であるとは限らない。その結果、プロジェクトのメンテナーは、冗長、不正確、または重複した報告の流入に直面している。これにより、欠陥の修正やソフトウェアの開発に振り向けられたはずの時間が消費されている。
6月にLinux Foundationが発表したAkritesは、共同のセキュリティインシデント対応チーム(SIRT)を通じて、このギャップへの対処を試みている。その任務は、脆弱性報告を集約・検証し、元のプロジェクトのメンテナーと修正を調整することだ。プラハで開催されたOpen Source Summit Europeの期間中にThe New Stackの取材に応じ、Akritesのテクニカルディレクターであり、Open Source Security Foundation(OpenSSF)のチーフセキュリティアーキテクトであるChristopher Robinsonと、Linux FoundationでAIおよびエージェントシステムのセキュリティアーキテクトを務めるLaura Guazzelliが、問題の性質と取り組みの仕組みを説明した。
「気ままな調査」から運用上の負担へ
Robinsonによると、現在では20ドルの有料アカウントがあれば脆弱性の調査を始めるのに十分だという。これは、専門家でない人々にとって参入障壁が下がったことを示している。OpenSSFのチーフスタッフであるAdrianne Marcumは、コードをスキャンして結果を送信するためにAIツールを使う一方、それを検証するために必要なセキュリティ上のコンテキストや専門知識を持たないこのパターンを、皮肉を込めて「vibe researching」と表現した。
Robinsonは、1件のセキュリティ報告をレビューするのに、エンジニアが最大8時間を要する可能性があると見積もっている。彼の説明によれば、自動化された報告は非常に詳細である一方、しばしば不正確で、問題の深刻度を過大評価し、修正の作成や悪用方法の理解に必要なデータを常に提供するわけではない。
なぜ不審なコードを検出するだけでは不十分なのか
主な制約の一つは、モデルがプロジェクト全体のセキュリティ構造を理解せずに、不審なコード片を見つける可能性があることだ。別の場所に追加の制御が存在して欠陥の悪用を防いでいる場合もあり、その場合、報告は誤検知となるか、実際の危険性が低下する。また、類似したモデルは同じ欠陥を発見する傾向があるため、メンテナーには同一の問題について複数の報告が届く。
それでもAkritesは、AIが生成した報告を無視することが現実的な選択肢だとは考えていない。Robinsonによると、特に高価な有料モデルでは、この1年で結果の品質が向上した。また、ツールは低危険度の問題を結び付け、より大きなエクスプロイトチェーンに変換できる場合がある。これは人間の研究者なら数か月、あるいは1年かかる可能性のある作業だ。
報告がプロジェクトに届く前の人間によるレビュー
AkritesはAIを使って受信した報告を評価し、重複を検出する。その後、派遣されたエンジニアがメンテナーに転送する前にレビューする。彼らの役割は脆弱性の有無を判断するだけではない。報告を簡潔にまとめ、テストケース、概念実証、修正を追加し、プロジェクトがより迅速かつ証拠に基づいて判断できるようにすることも含まれる。
この取り組みには、Anthropic、OpenAI、Google、Microsoft、AWS、NVIDIA、Cisco、IBM、Red Hat、Citi、JPMorganChaseなどの創設メンバーが参加している。Robinsonによると、メンバーには資金提供に加えてエンジニアリングリソースの提供が求められ、1メンバーあたりフルタイムのエンジニア10人に達する場合もある。彼によると、派遣されているエンジニアは約200人で、その多くはすでにオープンソースプロジェクトのコントリビューターまたはメンテナーでもある。
実際には何が変わるのか
Akritesは、脆弱性検出ツールとプロジェクトのメンテナーの間に、選別と検証のレイヤーを設ける。自動化されたすべての結果をコードの所有者に直接転送するのではない。これによりノイズが減り、報告の実行可能性が向上する可能性がある。しかし、人間の専門知識や継続的な資金提供が不要になるわけではない。インフラストラクチャーや大規模言語モデルの利用には、多くのリソースが必要だからだ。
Linux Foundationに関連する別の取り組みであるopen source Cyber Reasoning System(OSS-CRS)は、プロジェクト自身による脆弱性の調査や修正案の提案を支援するツールの開発に取り組んでいる。Akritesがプロジェクト間の報告サイクルの調整に重点を置く一方、OSS-CRSはメンテナーがより多くの作業を自ら実行できるようにすることに注力している。提案された修正の有効性については、依然として未解決の問題が残る。修正が根本原因に対処し、新たな脆弱性を追加したり、既存の機能を壊したりしないことを検証する必要があるためだ。
ニュースの出典
The New Stack - Software Development
原文を開く ↗