AI 生成コードとオープンソース ライセンスおよびセキュリティ リスクのバランスをとる方法

オープンソースソフトウェア

はじめに

生成 AI テクノロジーはソフトウェア開発に革命をもたらし、開発者がコードをより効率的かつ効果的に作成できるようにする自動化された支援を提供します。生成 AI テクノロジーはソフトウェアエンジニアにとって不可欠なツールとなり、生産性とイノベーションを向上させます。これらのシステムは、既存のコードリポジトリを分析することによって、必要な機能に合わせたコードスニペットを生成します。これらは、反復的なタスクを自動化し、開発サイクルを加速し、より革新的なコーディングアプローチの探求を促進します。生成AI は、膨大な量のオープンソースコードを活用して貴重な見識を提供し、開発者が高品質のソフトウェアを効率的に作成できるように支援します。

ただし、これらのシステムは一般に公開されているオープンソースコードで学習されているため、オープンソースライセンスへの準拠と、コードをそのままコピーすることによるセキュリティへの影響に関して懸念が生じます。このブログ記事では、オープンソースライセンスを遵守し、AI システムによってオープンソースコードからコピーされた可能性のある脆弱なソースコードを特定するためのスニペット検出の重要性について説明します。

オープンソースの学習データ

生成 AI モデルは通常、公開されているオープンソースコードで学習されます。この学習データにより、AI システムはコーディングパターン、構造、スタイルを学習できるようになります。ただし、生成されたコードには、オープンソースリポジトリからコピーされたそのままのコードが含まれる可能性があることに注意することが重要です。これにより、オープンソースライセンスのコンプライアンスと、AI が生成した出力に脆弱なコードを組み込むことによるセキュリティへの影響に関する懸念が生じます。このブログ投稿では、次の 3 つの具体的な使用例について説明します。

使用例 1: 100% AI 生成コード

AI によって生成されたコードが既存のオープンソースコードと一致しないシナリオでは、オープンソースライセンスを遵守する義務はありません。コードはAIシステムによって作成された完全なオリジナルであるため、企業はオープンソースライセンスによる制限を受けることなく自由に使用および配布できます。このシナリオでは、広範なライセンスコンプライアンスやセキュリティ脆弱性分析を必要とせずに、AI によって生成されたコードをさまざまな目的で利用できる柔軟性と自由が提供されます。

使用例 2: オープンソースコードと AI 生成コードの混合

AI によって生成されたコードの出力にオープンソーススニペットが含まれる場合、企業は関連するオープンソースライセンスの遵守を保証する必要があります。ただし、重要な問題は、AI システムがその出力の一部としてコピーされたオープンソースコードを提供したかどうかをどうすれば知ることができるかということです。このシナリオには、生成されたコード内の特定のオープンソースコードスニペットを特定し、関連するライセンスの条項を理解し、それに応じて義務を果たすことが含まれます。企業は、適切な帰属、ライセンスの互換性、対応するオープンソースコードと変更の可用性の確保などの要素を考慮する必要があります。さらに、企業は、オープンソースのオリジナルからコピーされたソースコードに脆弱なコードが含まれていないことを確認する必要があります。したがって、ソースコードスニペットを識別するには ソフトウェア構成分析ツール(Software Composition Analysis、以後SCA ツール)が必要です。

使用例 3: 100% オープンソース コード

このシナリオでは、AI システムは、オープンソースリポジトリから 100% コピーされたコードのスニペットを提供しただけです。この明確なケースは、オープンソースコード、その出所、および適用可能なライセンスを識別するために、SCA ツールでスニペットサポートが必要であることを示しています。

オープンソースライセンスの遵守

AI が生成したコードにオープンソーススニペットが含まれている場合、企業はそれらのスニペットに関連付けられたライセンス義務を果たす必要があります。これには、使用されているオープンソースコードの特定、ライセンス条項の理解、ソースコードの配布の帰属などの義務の遵守、他のソースコードとのライセンス互換性の問題がないことの確認などが含まれます。コンプライアンスにより、オープンソースの貢献者の権利が確実に尊重され、健全で協調的なソフトウェアエコシステムに貢献します。ただし、課題は、そのような AI システムが提供するソースコードが既存のオープンソースプロジェクトからのものかどうかを示さないことです。この場合、オープンソースコードを特定するのは、AI システムからソースコードを受け取るユーザーの責任になります。

セキュリティへの影響とスニペットの検出

ライセンスの遵守に加えて、スニペットの検出はセキュリティの観点からも非常に重要です。AI システムがオープンソースプロジェクトから脆弱なコードをそのままコピーすると、生成されたコードにセキュリティリスクが生じる可能性があります。スニペット検出はそのような脆弱性を特定するのに役立ち、開発者はそれらを修復または軽減するための適切な措置を講じることができます。スニペットの検出中にソフトウェアセキュリティ分析ツールを活用することで、企業はセキュリティの弱点を積極的に特定して対処し、最終的なソフトウェア製品への潜在的な影響を最小限に抑えることができます。

ソフトウェア構成分析ツールの役割

SCA ツールは、ライセンスのコンプライアンスとセキュリティのためのスニペットの検出に不可欠です。これらのツールは、AI によって生成されたコードベースを分析し、既知のオープンソースリポジトリや脆弱性データベースと比較します。SCA ツールを使用すると、コードの逐語的な一致を特定し、それらを脆弱性データと相互参照することで、開発者はコピーされたコードに由来する潜在的なセキュリティ脆弱性を特定できます。これにより、開発者はこれらの脆弱性に対処し、ソフトウェア全体のセキュリティを確保できるようになります。

結論

生成 AI テクノロジーは開発者のコ​​ード生成を支援するため、スニペットの検出はライセンスコンプライアンスとセキュリティの観点から非常に重要です。企業は、オープンソースライセンスコンプライアンスの課題に対処し、脆弱なコードの逐語的なコピーによるセキュリティリスクを軽減する必要があります。スニペットの検出および識別機能を提供する SCA ツールを利用することで、開発者は AI が生成したコード内のオープンソースコードスニペットを正確に検出し、ライセンス義務を履行し、セキュリティの脆弱性を先見的に特定して対処することができます。このアプローチは、責任あるオープンソースの利用文化を促進し、ソフトウェア製品がコンプライアンスを遵守し、安全であることを保証します。

FossID では、創業以来、ソースコードベース内のオープンソーススニペットを検出し、元のコンポーネントを特定し、見つかったセキュリティ脆弱性をライセンスして報告する機能をクライアントに提供してきたことを誇りに思っています。貴社の組織に、当社のツールをテストして、使用している他のツールと比較するための期間限定ライセンスを喜んで提供(延長)します。私たちが提供するものに必ずご満足いただけるものと確信しております。

■ FOSSID 製品詳細