GitHub Copilot のような次世代コード補完ツールを強化する機械学習モデルは、ソフトウェア開発者がセキュリティを低下させることなく、より機能的なコードを作成するのに役立ちます。
これは、ニューヨーク大学のコンピューター科学者のグループが 58 人を対象に実施した小規模ではあるものの調査の暫定的な結果です。
ArXiv で配布された論文の中で、Gustavo Sandoval、Hammond Pearce、Teo Nys、Ramesh Karri、Brendan Dolan-Gavitt、および Siddharth Garg は、大規模言語モデル (LLM) の助けを借りて作成されたソースコードのセキュリティをどのようにテストしたかを説明しています。
OpenAI GPTファミリーのようなLLMは、膨大な量の公開テキストデータ、あるいはOpenAIのCodex(GPTの後継であり、GitHubのCopilotの基盤となっている)の場合は公開ソースコードで学習されています。そのため、人間のプログラマーが過去に犯したエラーを再現してしまう可能性があり、「ガベージイン、ガベージアウト」の格言を体現しています。これらのツールが不適切なコードを逆抽出し、開発者に提案し、開発者がそれをプロジェクトに組み込んでしまうのではないかという懸念がありました。
さらに、コードのセキュリティは状況によって異なります。単独では安全なコードでも、他のソフトウェアと特定の順序で実行すると安全ではなくなる可能性があります。そのため、これらのオートコンプリートツールは、それ自体では問題のないコード候補を提示するかもしれませんが、他のコードと組み合わせると攻撃に対して脆弱になったり、単に壊れてしまったりする可能性があります。とはいえ、これらのツールは実際には人間のプログラミング能力を低下させるわけではないようです。
Google社員が、開発者が暗号コードをキースラーピングサイドチャネル攻撃から保護するのに役立つAIを披露
続きを読む
ある意味、研究者たちは自ら火を消していたと言えるでしょう。約1年前、同じコンピュータ科学者2人が「キーボードで寝ている?GitHub Copilotのコード貢献のセキュリティ評価」と題した論文を発表しました。この論文では、Copilotの出力の約40%に潜在的に悪用可能な脆弱性(CWE)が含まれていることが判明しました。
「2つの論文の違いは、『Asleep at the Keyboard』は完全に自動化されたコード生成(人間が関与しない)を研究していたのに対し、今回は比較対象となる人間のユーザーがいなかったため、コパイロットのセキュリティが人間が書いたコードのセキュリティとどう比較されるかについては何も言えなかった点だ」と、両論文の共著者でニューヨーク大学タンドン校のコンピュータサイエンスおよびエンジニアリング学部の助教授であるブレンダン・ドラン・ガビット氏はThe Registerへの電子メールで述べた。
ユーザー調査論文では、ユーザーの半数にCodex(Copilotの基盤となるモデル)の支援を受けさせ、残りの半数に自らコードを書いてもらうことで、これらの不足している部分に直接取り組もうとしています。ただし、この論文は『Asleep at the Keyboard』よりも対象範囲が狭く、1つのタスクと1つの言語(C言語でリンクリストを書く)のみを対象としています。
最新のレポート「大規模言語モデル コード アシスタントのセキュリティへの影響: ユーザー調査」では、NYU の研究者の若干異なるグループが、これまでの研究では Copilot のような LLM ベースのツールの使用法を現実的にモデル化できていないことを認めています。
「まず、これらの研究では、コード全体がLLMによって自動的に生成されると想定しています(これをオートパイロットモードと呼びます)」と研究者らは論文で説明しています。
実際には、コード補完LLMは開発者に提案を提示し、開発者が承認、編集、または拒否を選択できるように支援します。つまり、自動化バイアスに陥りやすいプログラマーはバグのある補完を素朴に受け入れてしまう可能性がある一方で、他の開発者は節約した時間をバグ修正に充てることで、バグの少ないコードを作成する可能性があります。
第二に、LLMはバグのあるコードを生成することが示されている一方で、人間も同様にバグを生成することが研究で明らかになった。LLMの学習データに含まれていたバグは、人間に由来するものだった。
そこで研究者たちは、LLM が生成したコード自体のバグを評価するのではなく、機械学習モデルの支援を受けた人間の開発者が生成したコードと、プログラミング言語が独自に作業して生成したコードとの違いを比較することにしました。
- GitHubのAIコードアシスタント「Copilot」がついに始動。月額10ドルでご利用いただけます。
- AmazonがAIプログラミングアシスタントを発表 – CodeWhisperer
- FauxPilot: GitHub Copilot に似ていますが、Microsoft に電話をかけません
- GitHub Copilotはコンピューターサイエンスのプログラミング演習のカンニングに最適かもしれない
NYUのコンピューター科学者たちは、ソフトウェア開発コースの学部生と大学院生58名を調査対象者として募集し、提案なしで作業するコントロールグループと、OpenAI Codex APIを用いて構築されたカスタム提案システムにアクセスする支援グループに分けました。また、比較対象として、Codexモデルを用いて、与えられたプログラミング問題に対する30個の解答を作成しました。このオートパイロットグループは、主に第2のコントロールグループとして機能しました。
支援グループとコントロールグループの両方に、GoogleやStack Overflowなどのウェブリソースを参照することは許可されていましたが、他者に助けを求めることは許可されていませんでした。作業は、オープンソースのAnubisで構築されたウェブベースのコンテナ内でVisual Studio Codeを使用して行われました。
参加者は、C プログラミング言語を使用して買い物リスト プログラムを完成させるように求められましたが、これは、「開発者がうっかりして C で脆弱な設計パターンを表現することが容易」であり、また、使用される C コンパイラ ツールチェーンが、Go や Rust などの最近の言語のツールチェーンと同じ程度にはエラーをチェックしないためです。
研究者らがコントロール グループとアシスタント グループによって生成されたコードを手動で分析したところ、以前の研究とは反対に、AI によるコード提案によって全体的に状況が悪化することはなかったことがわかった。
はっきり見えるが、細かい点がある
「Codexの支援がセキュリティバグの発生率を増加させるという証拠は見つかりませんでした」と論文は述べているが、調査のサンプル数が少ないため、さらなる調査が必要であると指摘している。「それどころか、Codexの支援によってCWE/LoC(コード行数)が減少することを示唆する証拠がいくつかある」
「統計的に確信を持ってこれを結論付けるのは難しい」と、ニューヨーク大学タンドン校の工学部のサイバーセキュリティ研究者で准教授のシッダールト・ガーグ氏は、ザ・レジスター紙との電話インタビューで語った。
これを統計的に確信を持って結論付けるのは難しい
それでも同氏は、「データは、コパイロットのユーザーがそれほど悪い状況ではなかったことを示している」と述べた。
ドラン・ガビット氏もこの研究結果に対して同様に慎重な姿勢を示している。
「ユーザー調査の結果の現在の分析では、統計的に有意な差は見つかっていない。定性的な面も含め、まだ分析中なので、特に小規模な調査(ユーザー総数58人)であり、ユーザーがプロの開発者ではなく全員学生だったこともあり、このことから強い結論を導き出すことはできないだろう」と氏は述べた。
「それでも、これらのユーザーにとって、このタスクにおいてAI支援によるセキュリティへの影響はおそらく大きくなかったと言えるでしょう。もし影響が非常に大きかったとしたら、2つのグループ間でより大きな差が見られたはずです。現在、その正確な値を確認するために、さらに統計分析を行っています。」
さらに、いくつかの知見も明らかになりました。一つは、アシスタントグループの参加者は生産性が高く、より多くのコード行を生成し、課題に含まれる機能の大部分を完了したことです。
「支援グループのユーザーは、より多くの機能テストに合格し、より多くの機能的なコードを生成しました」とガーグ氏は述べ、この種の結果は支援コーディングツールを検討している企業がそれを導入するかどうかを決定するのに役立つかもしれないと付け加えた。
もう 1 つは、研究者がコントロール グループ、アシスト グループ、オートパイロット グループによって生成された出力を区別できたことです。これにより、教育現場での AI による不正行為に対する懸念が和らぐ可能性があります。
研究者たちは、AIツールはユーザーエラーという文脈でも考慮する必要があることも発見した。「ユーザーはバグを含む可能性のあるプロンプトを提供し、バグのあるプロンプトを受け入れて最終的に『完成した』プログラムに取り込まれる一方で、後に修正されるバグも受け入れる」と論文は述べている。「場合によっては、モデルが示唆したよりも多くのバグがユーザーに存在することもあるのだ!」
今後、この方向でさらなる取り組みが期待されます。®