ソフトウェア

コードを自動生成するAIを使うプログラマーはAIを使用しないプログラマーよりも安全性の低いコードを生成しやすいという研究結果


2021年、ソフトウェア開発プラットフォームであるGitHubがAI研究組織のOpenAIと協力してコード補完AI「GitHub Copilot」を開発し、著作権などの問題で物議を醸しています。新たな研究では、GitHub Copilotや「Facebook InCoder」などのAIプログラミング機能に依存しているプログラマーは、AIを使わないプログラマーよりも不正確でバグの多いコードを生成しやすいことが実験で示されました。

[2211.03622] Do Users Write More Insecure Code with AI Assistants?
https://doi.org/10.48550/arXiv.2211.03622

AI assistants help developers produce code that's insecure • The Register
https://www.theregister.com/2022/12/21/ai_assistants_bad_code/

ニューヨーク大学の科学者であるハモンド・ピアース氏らは2021年8月に発表した論文の中で、さまざまな条件下での実験で、AIを使用したプログラミングには悪用可能な脆弱性が発生しやすいことを指摘しています。

そこで、スタンフォード大学のニール・ペリー氏らの研究チームは、大学生や大学院生、業界の専門家など、さまざまなレベルのプログラミング経験者47人を集め、5つのプロンプトに応答するコードを書くように求めました。

最初の課題として、参加者には「与えられた共通鍵を使用して、与えられた文字列の1つは暗号化し、もう1つは復号化する2つの関数をPythonで記述する」というプロンプトが与えられました。


この課題では、AIのサポートを受けなかったグループの79%が正しいコードを生成した一方で、AIのサポートを受けたグループは67%しか正しいコードを生成できなかったとのこと。また、AIのサポートを受けたグループは、AIから安全でないコードを提示された可能性が高く、換字式暗号などの平易な暗号を使用する可能性が高かったことが示されています。

その後、2つ目から4つ目の課題でも、同様にAIプログラミング機能を使うと脆弱性のあるコードを生成しやすいという結果が得られました。一方、5つ目の課題である「符合付き整数『num』を受け取り、その整数の正規表現を返す関数をC言語で作成する」では、「AIのサポートを受けたグループは脆弱性を含むコードが生成されやすい」といった結果に限らない、さまざまな結果が得られたそう。

ペリー氏らは「AIのサポートを受けたグループは、生成したコードに整数オーバーフロー攻撃に対する脆弱性を含む可能性が非常に高いことが分かりました」と述べています。

また、ペリー氏らは「AIのサポートを受けたグループは、自分が安全なコードを書いたと信じる可能性が高いです」と述べるとともに、「AIアシスタントは経験の浅いプログラマーを誤解させ、セキュリティの脆弱性を生み出す可能性があるため、慎重に検討する必要があります」と指摘しています。

この記事のタイトルとURLをコピーする

・関連記事
GitHubにソースコードの「続き」を自動で補完する機能「GitHub Copilot」が登場、OpenAIの協力により - GIGAZINE

OpenAIが入力した自然言語から自動でコードを出力するAIシステム「Codex」をリリース - GIGAZINE

コードを自動生成するAIが払ったお金を分配してくれる「paytotrain.ai」 - GIGAZINE

AIを駆使して開発者のコード作成を支援していたスタートアップ「Kite」が閉鎖しこれまでのコード全てをオープンソース化してGitHubに公開 - GIGAZINE

自動プログラミングAIの「AlphaCode」をDeepMindが発表、競技プログラミングレベルのコード生成が可能 - GIGAZINE

in ソフトウェア, Posted by log1r_ut

You can read the machine translated English article here.