生成AIによるソフトウェア開発の懸念
生成AIコーディングアシスタントの活用は、コーディングの時間を削減し、ソフトウェア開発を劇的に効率化してくれる可能性を秘めています。しかし、生成AIが提案するソースコードは、オープンソースソフトウェア(OSS)を学習のひな型として使うケースが多いため、学習元のひな型のOSSライセンスについては注意を払う必要があります。
もし、生成AIが学習のひな型として使ったソースコードがGPL(GNU General Public License)のようなCopyleft型のOSSライセンスを採用している場合は、ひな型のソフトウェアそのものは、ソースコード開示が必要となります。生成AIが、このGPLライセンスのひな型コードを提案し、それをプログラマがアクセプトした場合、新たに作られたソフトウェアは、ひな型の引用にあたると解釈される可能性があります。
AIが生成するソースコードには、OSSの断片が含まれる可能性があり、ライセンス違反や著作権侵害のリスクが存在します。
オープンソースのスニペットを組み込んだ生成AIコードは、OSSライセンスの準拠が必要
以下、3つの異なる使用例があります。ライセンスの準拠に注意する必要がある例はどれでしょうか。
- 100%生成AIコード: 生成AIが完全に独自のコードを生成する場合
→オープンソース ライセンスの義務はなく、企業はコードを自由に使用および配布できます。 - オープンソースと生成AIのハイブリットコード: 出力が生成AIコードとオープンソース コードの組み合わせである場合
→それぞれのライセンスに準拠するオープン ソース コンポーネントを識別することが不可欠です。 - 100%オープンソース コード: 生成AIがオープンソース リポジトリから完全にコピーされたスニペットを提供する場合
→企業は特定のオープンソース ライセンスに準拠する必要があります。
生成AIコードにオープンソースのスニペットが含まれている場合、企業はそれらのスニペットに関連するライセンス義務を履行する必要があります。
生成AIによる自動生成コードは、OSSが含まれているかもしれないと言う意識を持ち、コードスニペット検出の徹底的な調査が必要です。このプロセスは、OSSライセンスの遵守を保証し、複製された可能性のある脆弱なコードを特定するために不可欠です。
FossID を使用すると、セキュリティやライセンス コンプライアンスのリスクを増やすことなく、開発者が生成AIコーディングアシスタントのメリットを享受できます。
FossIDは、生成AIアシスタントがもたらすライセンスリスクを制御
FossIDは、ユーザーのソースコードに含まれているOSSをコンポーネント、ファイル、コードスニペットのレベルで検出し、そのライセンス情報とセキュリティ脆弱性情報を提供するSCAツール(※)です。
※SCAツール(Software Composition Analysisの略で、ソフトウェア構成分析、コンポジション解析と呼ばれています。)
- コードスニペット検出:
OSSから部分的にコピー&ペーストしたソースのライセンス情報が確認できるコードスニペット検出にも対応しているため、より正確で広範囲な情報を可視化します。 - セキュリティ対策:
NIST(アメリカ国立標準技術研究所)で公開されるCVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)情報に基づく、OSSの脆弱性情報を表示し、早期にOSSのセキュリティ対策が行えます。 - セキュリティ脆弱性の原因となるコード検出(VulnSnippet Finder):
コード行(スニペット)単位でFossIDナレッジベースと照合し、セキュリティ脆弱性の原因になりうるコード行(スニペット)を検出します。 ※ VulnSnippet Finderは、オプション機能です。 - SBOM作成:
FossIDはSBOMを作成し、SPDX/SPDX Lite、CycloneDX、Excelレポートなど用途に合わせたレポートを出力できます。SPDX, CycloneDXをインポートすることも可能です。 - FossIDのしくみ:
Wordbenchサーバーにソースコードをアップロードし、ハッシュ値を作成するため、クラウドベースのスキャン実行時に、FossIDサーバーにソースコード(ファイル名を含む)が送信されることはありません。ナレッジベースの照会には、ソースコードから生成されたハッシュ値だけが使用されます。
FossIDのしくみのイメージ
FossIDは、生成AIコーディングアシスタントにおけるリスクを低減できます。それにより、コーディングの時間と手間を削減、問題解決とコラボレーションに注力できるようになります。
詳しくは動画をご確認ください。
生成AIの関連記事
生成AIに関連する記事をご紹介します。併せてご確認ください。
- コードスニペットはどこまで検出すれば十分か?AIコーディングツールとのバランスをとるには
コードスニペットが流用されたり、気づかないうちに自社開発プロジェクトに入り込んでくる場合、オープンソースライセンスのコンプライアンスを確保するにはどうすればよいか?について、説明をしています。 - 生成AIが抱えるOSSコンプライアンスリスク
生成AIが抱えるOSSコンプライアンスリスクについて、懸念からリスクのケースなどを含めてご紹介しています。
FossIDのご紹介
FossIDは、最新鋭のスキャニング エンジンと、膨大なオープンソース情報ナレッジベースに支えられた新しいOSSライセンス&セキュリティ管理ツールです。
さまざまなプログラミング言語のファイルに対し、独自のコード検索アルゴリズムで高速にスキャンを行い、コードの派生元であるオープンソースを特定します。また、NIST(アメリカ国立標準技術研究所)で公開されるCVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)情報に基づくOSSの脆弱性情報も表示し、OSSのセキュリティ対策が行えます。 部分的にコピーペーストしたOSSの情報が確認できるコードスニペット検出にも対応しているため、より正確で広範囲な情報を可視化します。
また、正確なSBOM(Software Bill of Materials:ソフトウェア部品表)を作成し、SPDX/SPDX Lite、CycloneDX、Excelレポートなど用途に合わせたレポートを出力できます。