サービスに関するお問い合わせ

緊急対応 専用窓口

セキュリティの緊急事態が発生したらご遠慮なくお問い合わせください。ご相談は無料です。

セキュリティの
学び場

SHIFT SECURITY セキュリティの学び場 ニュース解説 高性能がゆえに欠点も、AIペアプログラマーの活用とセキュリティ

高性能がゆえに欠点も、AIペアプログラマーの活用とセキュリティ

高性能がゆえに欠点も、AIペアプログラマーの活用とセキュリティ
目次
  • 今回の解説ニュース
  • AIツール、GitHub Copilot とは一体どういったものなのか
  • 提案したコードに脆弱性、AIがセキュリティを考慮したコードを生成するのは難しい?

こちらの記事は、セキュリティ専門家の松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」の放送内容を文字に起こしご紹介しています。

今回の解説ニュース

GitHub Copilot 提案コードに含まれていた脆弱性調査結果一覧

2022年8月、Blackhat USAで、GitHubのAIペアプログラマーであるCopilotは本当に安全なコードを生成してくれるのか? を検証した研究が発表された。(記事はこちら)

【お届けするニュースはサイバーセキュリティ専門ニュースサイト「ScanNetSecurity」の提供でお送りしています。】

AIが提案したコードに脆弱性が含まれていたということです。GitHub Copilotの概要と、AIを活用してソフトウェア開発をする際にセキュリティの観点で気を付けるべきポイントについて説明します。

今回の講演は、AIペアプログラマーであるCopilotがリリースされた直後に、その機能を試したところ、SQLインジェクションの脆弱性があるコードが提案されたことについて発表されています。

会場では、CopilotがSQLインジェクションを許すコードを提案してくる過程の動画が流されていたということです。

AIツール、GitHub Copilot とは一体どういったものなのか

GitHub Copilot は、人間の指示やコメントに対して、サンプルやテンプレートとなるコードを出力してくれるAIツールです。GitHub上に展開されているソースコードを学習しており、自然言語で書かれたコメントを解釈して、必要なコードブロックを生成・提案してくれます。

例えば、Aさんが一人でコードを書くためには、開発言語やプログラミングの知識が必要とされます。何も知らないところから勉強しようとすると、決して短くはない時間がかかってしまうことが考えられます。仮に、Aさんがどれだけ良いアイデアを持っていたとしても、一人でソフトウェアを開発するにはそれ相応の時間がかかってしまうかもしれないし、もしかしたら途中であきらめてしまうかもしれません。

そのような問題を解決する方法として、一つのコードを指示役とコーディング担当に別れて開発を行うペアプログラミングという手法が挙げられます。Copilot はAIペアプログラマーとも呼ばれており、Aさんの指示を受けて、Copilotがコーディング担当となり、Aさんの代わりにコードを書いてくれます。

Copilot は、OpenAI が開発している自然言語処理エンジンGPT3をベースに作られています。また、新しく発表された Copilot X は、GPT4をベースとしており、音声で対話しながらのプログラミングができる機能も提供されるということです。

提案したコードに脆弱性、AIがセキュリティを考慮したコードを生成するのは難しい?

Copilot が提案したコードには、SQLインジェクションやMD5のハッシュが使われる脆弱性が含まれていたということです。AIがセキュリティまで考慮したプログラムを生成することは不可能ではありませんが、現状のAIとは別の仕組みが求められます。

例えば、Bさんが資料を作る際に、過去の資料をコピペすることもあるのではないでしょうか。仮に、Bさんが参考にしていた資料に誤字脱字があった場合、Bさん何も考えずにコピペをしてしまうと、その間違いを含めて複写してしまうことになります。

AIでも同様に、学習したデータに間違いが含まれていれば、その間違い通りに学習してしまう可能性があります。Copilot が学習する GitHub 上に展開されているソースコードに脆弱性が含まれていることは否定できないため、提案されるコードにも脆弱性が含まれる可能性が考えられます。

AIがセキュリティを考慮したプログラムを生成するためには、別の仕組みとしてセキュリティチェックをする機能を実装する方法が考えられます。AIペアプログラマーは人間の指示により、論理・確率・統計で「機能する」コードを提案するものです。このコードを提案する仕組みの外側に、そのコードがセキュリティの観点から「正しい」かをチェックする仕組みが求められます。もちろん、このセキュリティ的に正しいかをチェックする仕組み自体がAIであってもいいわけです。

今回は、GitHub Copilot の概要と、AIを活用してソフトウェア開発をする際にセキュリティの観点で気を付けるべきポイントについてお届けしました。

Voicyでニュース解説ラジオ配信中!

今日の10分セキュリティラジオにて毎週月・水・金にセキュリティの最新ニュースを取り上げ解説を行っています。隙間の時間の情報収集にぜひお役立てください!

著者 セキュラジチーム

話題になっているセキュリティニュースやセキュリティに関する疑問を専門家の解説と個性豊かなパーソナリティたちがお送りしています。1日10分で、気軽にセキュリティの知識を深めることができます。放送は月曜・水曜・金曜の朝7時15分。

\ 記事をシェアする /

サービスに関するお問い合わせ