GitHub Copilot のような AI アシスタントがコード セキュリティに与える影響を調査する

スタンフォード大学の研究者グループは、コードを記述する際にインテリジェント アシスタントを使用することが、コード内の脆弱性の出現に及ぼす影響を研究しました。 私たちは、GitHub Copilot などの OpenAI Codex 機械学習プラットフォームに基づくソリューションを検討しました。これにより、既製の関数に至るまでかなり複雑なコード ブロックを生成できます。 この懸念は、脆弱性を含むパブリック GitHub リポジトリからの実際のコードが機械学習モデルのトレーニングに使用されたため、合成されたコードがエラーを繰り返し、脆弱性を含むコードを示唆する可能性があり、また考慮されていないという事実に関連しています。外部データを処理するときに追加のチェックを実行する必要がある。

この研究には、学生から 47 年の経験を持つ専門家まで、プログラミングに関してさまざまな経験を持つ 33 人のボランティアが参加しました。 参加者は、実験グループ (14 人) と対照グループ (XNUMX 人) の XNUMX つのグループに分けられました。 どちらのグループも、Stack Overflow の既製のサンプルの使用を含め、あらゆるライブラリとインターネット リソースにアクセスできました。 実験グループにはAIアシスタントを使用する機会が与えられました。

各参加者には、脆弱性につながる間違いを犯しやすいコードの作成に関連する 5 つのタスクが与えられました。 たとえば、暗号化および復号化関数の作成、デジタル署名の使用、ファイル パスまたは SQL クエリの形成に関連するデータの処理、C コードでの大量の数値の操作、Web ページに表示される入力の処理などのタスクがありました。 AI アシスタントを使用するときに取得されるコードのセキュリティに対するプログラミング言語の影響を検討するために、課題には Python、C、および JavaScript が含まれました。

その結果、codex-davinci-002 モデルに基づくインテリジェント AI アシスタントを使用した参加者は、AI アシスタントを使用しなかった参加者よりも安全性の低いコードを生成することが判明しました。 一般に、AI アシスタントを使用しているグループの参加者のうち、正しく安全なコードを提供できたのは 67% のみでしたが、他のグループではこの数字は 79% でした。

同時に、自尊心の指標は逆転しました。AI アシスタントを使用した参加者は、自分のコードが他のグループの参加者のコードよりも安全であると信じていました。 さらに、AI アシスタントをあまり信頼せず、発行されたヒントの解析と変更に多くの時間を費やした参加者は、コードの脆弱性が少ないことも指摘されました。

たとえば、暗号ライブラリからコピーされたコードには、AI アシスタントによって提案されたコードよりも安全なデフォルトのパラメーター値が含まれていました。 また、AI アシスタントを使用する場合、信頼性の低い暗号化アルゴリズムの選択と戻り値の認証の欠如が修正されました。 C の数値操作タスクでは、AI アシスタントを使用して記述されたコードに整数オーバーフローを引き起こすエラーが多く発生しました。

さらに、ニューヨーク大学のグループが58月に10人の学生の参加を得て実施した同様の研究で、買い物リストを処理するための構造をC言語で実装するよう依頼されたことも注目に値する。 その結果、コード セキュリティに対する AI アシスタントの影響はごくわずかであることがわかりました。AI アシスタントを使用したユーザーは、セキュリティ関連のエラーを平均して約 XNUMX% 多く犯しました。

GitHub Copilot のような AI アシスタントがコード セキュリティに与える影響を調査する


出所: オープンネット.ru

コメントを追加します