オープンソースAIは、単一の製品が数十のリポジトリからコードをプルし、複数のソースからの学習データに依存し、少数のチームしか完全に文書化していない特殊なハードウェア構成上で動作するという、広大なエコシステムへと成長しました。これらの依存関係を追跡することは困難です。そのスタックのどの部分がインターネットに公開されているかを理解することは、さらに困難です。Current AIがリリースした「Open Source AI Gap Map v0.1」は、その混沌に秩序をもたらそうとする試みであり、セキュリティチームはこれを必読書として扱うべきです。

このインデックスは421のオープンソースAI製品をカタログ化しています。それらは、AIモデル、データセット、ソフトウェアツール、ハードウェアの4つのカテゴリに分類されています。その仕組みとして、プロジェクト全体は1,184のYAMLファイルで構成されており、16,000を超えるGitHubリポジトリを追跡しています。421の製品と16,000のリポジトリというこの差こそが、それ自体で物語を語っています。ほとんどのAIアプリケーションは、自己完結したモノリスではありません。それらは、推論エンジン、ファインチューニング用スクリプト、データローダー、評価ベンチマーク、およびドライバーレイヤーの集合体であり、それぞれが独自のメンテナー、コミット履歴、および脆弱性プロファイルを持つ独自の、リポジトリ内に存在しています。

Current AIはこのデータセットをMITライセンスの下で公開し、完全にパブリックなものとしました。その開放性こそが目的です。誰でもダウンロードし、YAMLを解析し、その上にツールを構築できます。防御側にとって、そのアクセシビリティはチャンスです。攻撃側にとっても、同様に都合が良いものです。

このマップが実際に追跡しているもの

AIを使用している組織の多くは、自身が何をデプロイしているのかについて明確なインベントリ(目録)を持っていません。あるチームは、人気のハブから言語モデルをダウンロードし、それを実行するためにいくつかのPythonパッケージをインストールして、作業完了とするかもしれません。しかし、その単純なワークフローの下には、入れ子状になった依存関係のセットが存在します。モデルの重みは一つのリポジトリから来ています。トークナイザーの設定は別のものから来ています。推論フレームワークは第三のプロジェクトのフォークかもしれません。CUDAドライバーやコンテナイメージは、さらに多くのソースから取得されます。

Gap Mapは、1,184のYAMLファイルを421の明確なAI製品を中心に整理することで、これを捉えています。ここにマッピングされている16,000以上のGitHubリポジトリは、それらの製品を機能させる実際のコード、構成、およびアーティファクトを表しています。エントリをモデル、データセット、ソフトウェアツール、ハードウェアに分けることで、このインデックスは基本的な問いを突きつけます。「あなたのシステムが実際に触れているのは、これら4つのレイヤーのうちどれかを知っていますか?」

もし本番環境でオープンソースの大規模言語モデル(LLM)を実行しているなら、おそらく4つすべてに触れています。モデルの重みとアーキテクチャに依存しています。たとえ直接ダウンロードしていなくても、事前学習やファインチューニングに使用されたデータセットに依存しています。モデルの変換、量子化、またはサービングを行うためのソフトウェアツールに依存しています。そして、GPUや特殊なアクセラレータ上で実行している場合は、ハードウェアカテゴリに分類されるファームウェアやドライバーのスタックに依存しています。

セキュリティにおける諸刃の剣

このデータセットは二つの側面を持っており、セキュリティリーダーはその両方を理解する必要があります。

防御側の側面では、Gap MapはAIサプライチェーンの電話帳のように機能します。組織が依存しているリポジトリやツールをこのインデックスと比較することで、可視性のギャップを見つけることができます。もし、マップに重要なリポジトリが表示されているのに、自社のソフトウェア部品表(SBOM)に含まれていない場合、シャドーAIインフラストラクチャを見つけた可能性があります。それは、攻撃者に先を越される前に知っておく価値のあることです。

攻撃側の側面では、このデータセットは偵察のための「宝の山」です。攻撃者は、公開されているAIインフラストラクチャ、モデルサービングのエンドポイント、および一般的なMLパイプラインにおける脆弱な依存関係を常にスキャンしています。Gap Mapは、彼らが関心を持つカテゴリごとに整理された、マシンリーダブルで構造化されたターゲットリストを提供します。単一のYAMLパーサーで数千のリポジトリURLを抽出でき、そこから攻撃者は既知の脆弱性をクロスリファレンスしたり、設定ミスのあるパブリックインスタンスを探したり、dependency confusion attacks(依存関係の混乱攻撃)の価値の高いターゲットを特定したりすることができます。

データはMITライセンスで公開されているため、参入障壁はありません。サブスクリプションも承認プロセスも不要です。この設計上の選択は、研究者や防御側にとっての有用性を最大化しますが、同時に脅威アクターにとっても有用性を最大化します。スタックの要塞化を助けるのと同じファイルが、他の誰かがターゲットリストを作成するのを助けることになるのです。

この情報をどう活用すべきか

このデータセットを、スレットインテリジェンス・フィードと全く同じように扱ってください。ブックマークして忘れてしまうのではなく、自身の環境に対して能動的なチェックを実行してください。

まず、チームが現在使用しているすべてのオープンソースAIコンポーネントのリストを抽出することから始めてください。当たり前のものだけでなく、その先まで目を向けてください。トークナイザー、評価スクリプト、量子化ライブラリ、コンテナのベースイメージをどのリポジトリが提供しているかを確認します。次に、それらのリポジトリをGap Mapで追跡されている16,000件と比較してください。もし一致するものがあれば、あなたの依存関係がオープンソースAIの世界で最も目立つ形でインデックスされている領域に存在していることが確認されたことになります。その目立ちやすさは諸刃の剣です。通常、それは活発なメンテナンスとコミュニティによる精査を意味しますが、同時に攻撃者もこれらのリポジトリの存在を知っているということも意味します。

次に、YAML構造そのものに注目してください。1,184個の各ファイルは、製品とその基盤となるリポジトリを標準化された形式で紐付けています。依存関係のマニフェスト、パッケージリスト、またはSBOMのエクスポートを、これらのマッピングと比較するためのシンプルなスクリプトを作成できます。もし、プロダクションスタックが聞いたこともないようなリポジトリに依存していることが判明した場合は、さらに深く掘り下げてください。未知の依存関係こそが、サプライチェーン攻撃が潜む場所なのです。

ハードウェアレイヤーには特に注意を払ってください。セキュリティチームは、ソフトウェアやモデルに焦点を当てる一方で、ドライバーやファームウェアを背景ノイズとして扱いがちです。Gap Mapはハードウェア関連のリポジトリを明示的にインデックスしています。これは、GPUドライバースタック、コンパイラツールチェーン、アクセラレータのファームウェアもまたコードであることを思い出させてくれるはずです。これらにもバグがあり、アップデートが行われます。そして、それらが古くなっている場合、パイプラインにおける最も脆弱な標的になり得ます。

最後に、