「GitHub Copilot」のAIが自動生成するコードはどのくらい安全か? 研究者らが脆弱性を検証:Innovative Tech
米New York UniversityとカナダのUniversity of Calgaryの研究チームは、コードを自動生成する「GitHub Copilot」において、生成したコードがセキュリティ面でどれくらい安全かを調査した研究報告を発表した。
Innovative Tech:
このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。
米New York UniversityとカナダのUniversity of Calgaryの研究チームが発表した論文「Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions」は、コードを自動生成する「GitHub Copilot」において、生成したコードがセキュリティ面でどれくらい安全かを調査した研究報告だ。結果、実験で生成したコードの約40%に脆弱性が発見された。
ソフトウェア開発者は、コードを迅速に作成することが求められるため、生産性を向上させる新しいツールや技術を常にフォローしておかなければならない。この分野の最も新しい技術の1つは、もともと自然言語処理(NLP)用に設計された大規模なモデルを膨大な量のコードで学習させ、プログラマーがコードを書く際に支援する、コードの自動生成モデルである。
2021年6月、GitHubはコメントや関数、ドキュメント文字列などから文脈を読み取りコードを自動生成する「Copilot」をリリースした。Copilotは、入力をもとにプログラマーが書きたいであろうコードを予測し提示してくれ、それをもとにユーザーが手を加えて完成させる、ペアプログラミングが実現する。
Copilotは、文章からプログラムを自動生成するOpenAI CodexとGPT-3を基盤システムとしており、GitHubで公開されている膨大な量のオープンソースコードを学習している。
他方で、学習時に用いるソースコードには未検証なためバグが含まれるものも多く、必然的に生成されるコードにも脆弱なものが含まれる。そこでこの研究では、Copilotが生成したコードがどれほど安全であるかを調査する。
実験では、MITREが危険度の高い脆弱性タイプをランキングした「2021 CWE Top 25 Most Dangerous Software Weaknesses」(CWE Top 25)にあるような、リスクの高いセキュリティの脆弱性に関連するシナリオでCopilotにコードを生成してもらった。
評価には、脆弱性を検出するCodeQLと手動検査を用い、返された提案がそのCWEに対して脆弱であるかどうかを調査し、コード生成のパフォーマンスを検証する。
合計で89種類のシナリオを作成し、1689個のプログラムをCopilotに実行させた結果、40.73%に脆弱性があることが分かった。言語別では、C言語のシナリオが25件、513個のプログラムが生成され、258個(50.29%)が脆弱であった。Pythonのシナリオは29件で、合計571個のプログラムが生成され、219個(38.35%)が脆弱であった。
Source and Image Credits: Hammond Pearce, Baleegh Ahmad, Benjamin Tan, Brendan Dolan-Gavitt, and Ramesh Karri. Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions
関連記事
- GitHub、AIプログラミング機能「Copilot」の一般提供開始 月額10ドル
Microsoft傘下のGitHubは、AIプログラミング機能「GitHub Copilot」の一般提供を開始した。月額10ドルあるいは年額100ドルのサブスク制。学生と一部のメンテナーは引き続き無料で利用できる。 - AWS、プログラミングを機械学習で支援する「Amazon CodeWhisperer」プレビュー公開 コメントを書くとコードを提案
AWSが、機械学習を用いてプログラミングを支援する「Amazon CodeWhisperer」をプレビュー公開した、オープンソースリポジトリなどから数十億行のコードを基にした機械学習により、プログラマーが書き始めたコードの続きを提案してくれるサービスという。 - 文章からプログラムを自動生成する「OpenAI Codex」β版APIが公開 「GitHub Copilot」のエンジン
米AI研究機関のOpenAIが、自然言語からソースコードを自動生成するAIシステム「Codex」のプライベートβ版APIの提供を始めた。PythonやJavaScript、Rubyなど10以上の言語に対応している。 - 指先の熱からパスワードを盗む攻撃 入力後のキーボードから押した場所を特定 6文字なら検出精度100%
スコットランドのUniversity of GlasgowとサウジアラビアのTaif Universityによる研究チームは、キーボードから人の指先の熱を検出し、熱画像を解析してユーザーの入力を推定、パスワードなどを取得する深層学習システムを提案した研究報告を発表した。 - カメラに「存在しないもの」を見せるサイバー攻撃 離れた場所から電波を送信 成功率は99%
英オックスフォード大学の研究チームは、電波を使い、画像認識システムをだまして存在しないものを見せる手法を提案した研究報告を発表した。例えば真っ黒であるカメラフレームに文字を浮かび上がらせることなどができる。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.