この生成AI時代において、ソフトウェアリスク管理に対する企業のアプローチには目覚ましい転換が見られます。ソフトウェアエンジニアリングチームはAIコーディングアシスタントの導入を急速に進めています。その一方で、法務およびリスク管理チームは自社開発コードにオープンソースライブラリの断片が埋め込まれるのを懸念しています。企業はどのように法的コンプライアンスとデベロッパーエクスペリエンス(開発者体験:DevEX)のバランスを取ることができるでしょうか?
オープンソースソフトウェア(OSS)のスニペット検出機能を備えたソフトウェア構成解析ソリューションがその答えとなります。しかし、検出方法やワークフローはソリューションによって大きく異なり、最適なソリューションを探し出して選択するのを困難にしています。
はじめに
前回の記事で説明したように、企業のソフトウェアチームでAIコーディングアシスタントの導入が進み、開発を加速させていることが、新しい課題、つまり生成AIがもたらすセキュリティ、法令、運用に関するリスク管理の問題につながっています。AIと連携したIDEのオートコンプリートおよび外部のAIプロンプトによって、自社開発コードベースにコードスニペットが入りこむようになったため、ライセンス義務やセキュリティリスク、あるいは出所に関する疑問を伴う可能性があるオープンソースソフトウェア(OSS)の断片を識別する必要があります。そこでOSSのスニペット検出機能を備えたソフトウェア構成解析(SCA)ツールが安全装置として重要になります。
ただし、すべてのスニペット検出技術が同等というわけではありません。ベンダーによって正確性、効率、洞察力には大きな差があります。この記事では、スニペット検出の技術的基礎を解説し、精度とスケールの問題に対するFossIDのアプローチを紹介し、この複雑な技術領域で迷わず進むのに役立つガイドを提供します。
OSSスニペット検出とは何か
OSSスニペット検出とは、自社開発またはサードパーティ製のコードベースに埋め込まれたオープンソースコードの小さな断片を識別するプロセスです。スニペットは数行の小さなものから、ファイルのすべてのセグメントという大きなものまであります。ファイル全体または宣言された依存関係の検出とは異なり、スニペット検出はより細かい粒度で処理するため、AIによって生成またはコピーペーストされた、ライセンス義務を維持している可能性があるOSSの断片を発見するのに欠かせません。
有効なスニペット検出には、単純なテキスト比較以上のものが必要です。フォーマットの変更やコードのリストラクチャリング、部分的な書き換えなど、人間または機械がオープンソースソフトウェアを改造したときに通常発生するような変化があっても、依然として検出可能でなければなりません。

FossIDが高い精度でコードスニペットを識別できる理由
FossIDのスニペット検出は、デジタルフィンガープリントエンジン(一方向ハッシュ)を基に構築され、2億以上のソフトウェアプロジェクトを収集したナレッジベースにコード断片との一致がないかを解析します。主な技術的強みとして以下が挙げられます。
- 粒度の細かい検出しきい値:FossIDはたった6行の小さなスニペットから検出が可能で、検出のしきい値が高かったり、スニペットの識別を関数全体との一致だけに限定したりするツールよりも優れています。
- コード変更に強い:フィンガープリントエンジンはフォーマットや名前の変更、ささいなロジックの改変を許容するため、コードの断片が変更されていても正確に検出できます。
- 自動識別:FossIDはID Assistという独自機能を利用し、メタデータやコンテキスト的パターンを基に、最も可能性が高いマッチを自動で提案します。この機能は、ヒットした結果そのままではなく、可能性が高いマッチを優先して提示するため、エンジニアの負担を大幅に減らします。
- 強力なライセンスおよびコピーライトマッピング:検出されたスニペットには、ただちにライセンス識別、リスクカテゴリ、コピーライト情報の要約が付加され、チームが情報に基づいてすばやくアクションを取れるようにします。
A) 粒度の細かいスニペット比較のためのデジタルフィンガープリント、B) マッチを検索するためのしっかりとしたナレッジベース、C) 手作業を減らすためのID Assistによるスマートな自動化技術、を組み合わせることでFossIDはより高い精度をより高い効率で実現し、信頼できるリスク識別を可能にします…
AI生成コードシリーズ Tips集のご案内
続きは こちらから 資料のダウンロードをお願いします。
このシリーズ記事では、AI生成コードの活用とその課題からトピックスを読み解いて、開発チームの邪魔をすることなく法務およびコンプライアンスチームを満足させるソリューションを選択するためのガイドを提供します。