AI コードのセキュリティに関するレポート 2023 年版

現代の開発環境における AI コード、セキュリティ、信頼性

回答者の 56.4% が、AI の提案は安全でないことがよくあるとしていますが、AI のセキュリティを改善するためにプロセスを変更したという回答はほとんど見られません。こうしたシステムが安全でない提案を繰り返し行っているという明確な根拠があるにもかかわらず、セキュリティ対策は AI コードの普及に追いついていません。

エグゼクティブサマリー

短期間で、AI コード補完ツールは市場に大きく浸透しました。ソフトウェアエンジニアリングとセキュリティチームのメンバーおよびリーダー 537 名を対象とした本調査では、チームの 96% が AI コーディングツールを使用しており、ソフトウェアサプライチェーンの一部となっています。AI コーディングツールは、その導入率の高さにもかかわらず、安全でないコードを繰り返し生成しています。本調査では、半数以上が、AI コーディングツールは安全でないコードをよく生成していると回答しています。その一方で、セキュリティスキャンの大半を自動化している企業は、全体の 10% にも達していません。その上、開発者の 80% が AI コードのセキュリティポリシーを回避しています。AI コーディングツールや AI への過度の依存から生じるリスクを軽減するために、テクノロジーチームは、コード開発のペースアップに対応するセキュリティ対策を講じ、セキュリティプロセスの完全自動化を進め、AI の提案を安全に使用するための教育をチームに施す必要がある。

パート 1

コードセキュリティを AI に委ねるリスク

アンケートの回答によると、AI によるコード補完は、開発プロセスに常にセキュリティリスクをもたらしています。さらに、開発者はコーディング時に AI 使用ポリシーを積極的に回避しています。上記はすべて、自動コードスキャンなどの適切なガードレールを設置せずに行われています。オープンソースコードは、AI コーディングツールを高速化し、オープンソースモジュールを提案しますが、チームは提案されたオープンソースコンポーネントが安全であることをプログラムで検証していないため、特にリスクが高まります。

AI コーディングツールは安全でないコードを生成するが、開発者はこの点を無視している

2022 年 12 月、StackOverflow は同社のコーディング Q&A サイトに対する ChatGPT が作成した投稿をすべて禁止しました。「ChatGPTからの平均正解率は低すぎる」ことが理由です。 同社の主張は、ニューヨーク大学スタンフォード大学が行った、AI コーディング補完ツールが安全でない提案を繰り返し行い、ツールを多用するプログラマーが記述したコードは安全性が低下するという、複数の著名な学術研究の結果を裏付けるものでした。 

本調査では、回答者の 75.8% が AI が生成したコードは人間が作成したコードよりも安全だとしています。この大きな齟齬は、AI コーディングツールに対する開発プロセスの安全確保や、コード生成における AI の既知のリスクに関する技術チームの教育方法について、組織が大きな問題を抱えていることを示しています。

コーディングに関する質問に対して安全な回答を提出したプログラマーの割合 (AI を使用した場合と使用しなかった場合)

AI を利用している

AI を利用していない

80%

60%

40%

20%

0%

0%

20%

40%

60%

80%

暗号化と復号化

メッセージへの署名

ディレクトリのサンドボックス化

SQL

出典:スタンフォード大学「Do Users Write More Insecure Code with AI Assistants?」

回答者の 56.4% が AI のコード提案に従ったことでセキュリティ問題に遭遇

回答者は、AI コード補完ツールに対する強い信頼や、ツールの積極的な導入を示しているにもかかわらず、AI がセキュリティ問題を引き起こしていることを認識しています。回答者の 56.4% は、AI がコーディングの問題を時折あるいは頻繁に引き起こしていると認識しています。 

これは、潜在的に欠陥のあるコードが生成される割合が高いため、AI ツールにはすべての提案に対して検証と監査が必要であることを示しています。回答者の 75.4% は、コード提案によってセキュリティ問題がよく生じていると回答しているにもかかわらず、AI によるコード修正案のセキュリティは良好である、または優れていると評価しています。これは、アプリケーションセキュリティにとって非常に危険な強い認知バイアスを示しています。

AI ツールの提案したコードが原因で、セキュリティ上の問題に遭遇する頻度はどの程度ですか?

頻繁にある

20.5%

時折ある

35.9%

ほとんどない

34.6%

一度もない

5.8%

わからない

3.2%

AI によるコード修正案のセキュリティをどのように評価しますか?

60%

50%

40%

30%

20%

10%

0%

0%

10%

20%

30%

40%

50%

60%

優れている

良好である

妥当である

悪い

該当なし

優れている

良好である

妥当である

悪い

該当なし

回答者の 80% がセキュリティポリシーを回避して AI を利用し、コードの大部分をスキャンするのはわずか 10%

大半の組織では、AI ツールの使用をある程度まで許可するポリシーが存在する一方で、圧倒的多数が、開発者はそれらのポリシーを回避していると回答しています。言い換えれば、コードや提案を提供する AI への信頼は、AI に関する会社のポリシーへの信頼よりも大きいということです。

これは、非常に大きなリスクを生み出しています。企業が急速に AI を導入しているにもかかわらず、コードを保護するセキュリティプロセスを自動化していないためです。AI ツールを使用している開発者は、コードの生成がより高速化しているにもかかわらず、チームがセキュリティスキャンの 75% 以上を自動化していると回答したのはわずか 9.7% でした。こうしたポリシー遵守の不徹底に加え、コードの生成速度が増しているため、セキュリティスキャンの自動化がこれまで以上に重要になっています。

所属組織の開発者は、AI コード補完ツールを利用するために、どのくらいの頻度でセキュリティポリシーを回避していますか?

常時

23.1%

大抵の場合

31.8%

時折ある

25%

ほとんどない

12.7%

一度もない

7.4%

セキュリティスキャンの自動化率をお答えください。

50%

40%

30%

20%

10%

0%

0%

10%

20%

30%

40%

50%

1~25%

26~50%

51~75%

76~100%

1~25%

26~50%

51~75%

76~100%

Snyk Code の AI 静的解析とその最新イノベーションである DeepCode AI の修正を適用することで、当社の開発チームとセキュリティチームは、より高いセキュリティを備えたソフトウェアを短期間で出荷できるようになりました」

ICE/NYSE

Steve Pugh

CISO, ICE/NYSE

AI がオープンソースのサプライチェーンセキュリティをさらに高リスク化

本調査では、回答者の 73.2% がオープンソースプロジェクトにコードを提供しているとしています。つまり、平均的な調査回答者はオープンソースに関する知識があるということです。こうした理解にもかかわらず、AI コーディングツールから提案されたコードが安全であることを検証するために、さらに高度で信頼性の高いセキュリティ対策を実施している回答者はほとんどいません。AI ツールから提案されたコードの安全性を検証するために、ソフトウェアコンポジション解析 (SCA) を使用している回答者はわずか 24.6% でした。開発が急ピッチになれば、安全でないオープンソースコンポーネントがコードに組み込まれる速度も早まることが予想されます。 

AI コーディングシステムは、強化学習アルゴリズムを使用して結果を改善および調整するため、ユーザーが安全でないオープンソースのコンポーネントを提案に組み込んだ場合、AI システムは、たとえ実際には安全でなくても、それらのコンポーネントを安全であるとラベル付けする可能性が高くなります。これが危険なフィードバックループを生み出し、さらに安全でない提案につながりかねません。

オープンソースプロジェクトで AI コード補完ツールを利用していますか?

はい

83.2%

いいえ

16.8%

AI が生成したコード提案に含まれるオープンソースのパッケージやライブラリのセキュリティをどのように検証していますか?

60%

40%

20%

0%

0%

20%

40%

60%

レジストリやパッケージマネージャーの情報をチェックする

リポジトリの評価

コミュニティ活動

責任ある開示ポリシー (SECURITY.md など) を確認する

セキュリティスコアカード

SCA ツール

コードレビュー

AI ツールが提案するオープンソースパッケージの安全性を確認しない

レジストリやパッケージマネージャーの情報をチェックする

リポジトリの評価

コミュニティ活動

責任ある開示ポリシー (SECURITY.md など) を確認する

セキュリティスコアカード

SCA ツール

コードレビュー

AI ツールが提案するオープンソースパッケージの安全性を確認しない

AI はソフトウェアサプライチェーンの一部と考えられているが、対策を変更するケースは少ない

回答者の 55.1% は、AI によるコード補完をソフトウェアサプライチェーンの一部だと考えています。しかし、こうした見解があっても、AI を活用したアプリケーションセキュリティプロセスに大きな変化は見られません。回答者の大多数が、AI コード補完ツールの導入により、自社チームがソフトウェアセキュリティ対策に少なくとも 1 つの変更を加えたと回答していますが、この多肢選択式項目における全体的な回答の割合は低くなりました。

対策の変更について最も回答率が高かったのは、セキュリティスキャンの増加で、回答者の 18.4% を占めました。これほど変更が行われていないという実態は、AI のコード提案は人間が作成したコードよりも安全だという誤った認識が原因となっている可能性があります。通常は、仕事の進め方が大きく変われば、新しい方法がもたらす新たなリスクやリスクの増加に対処するために、リスク管理の見直しとそれに応じた変更が必要になります。

所属組織では、AI によるコード補完をソフトウェアサプライチェーンの一部と考えていますか?

はい

55.1%

いいえ

22.7%

わからない

19.4%

該当なし

2.8%

AI によるコード補完の結果、所属組織ではソフトウェアセキュリティ対策をどのように変更しましたか?

20%

15%

10%

5%

0%

0%

5%

10%

15%

20%

コード監査の頻度を増加した

コード監査を厳密化した

セキュリティスキャンの頻度を増加した

新しいツールを追加した

セキュリティの自動化を導入した

新しいセキュリティプロセスを追加した (例:SBOM、SALSA)

以前とまったく変更がない

コード監査の頻度を増加した

コード監査を厳密化した

セキュリティスキャンの頻度を増加した

新しいツールを追加した

セキュリティの自動化を導入した

新しいセキュリティプロセスを追加した (例:SBOM、SALSA)

以前とまったく変更がない

パート 2

開発者は AI の盲点と依存のリスクを認識

開発者は AI が記述したコードを安全だと認識しているにもかかわらず、AI コード補完ツールによって安全性が大きく低下することや、ツールに過度に依存するようになることを強く懸念しています。AI の利用を制限している組織では、コード品質とセキュリティの問題が制限の主な理由となっています。回答者は、アプリケーションセキュリティチームがかなりの割合でコード開発の高速化への対応に苦慮していると認識しています。以上の点から、開発チームが AI コード提案がもたらす真のリスクに対する認識を高められるよう、開発チームの継続的な教育とともに、セキュリティスキャンの自動化促進など、プロセスや技術の活用方法の変更を優先すべきであることがわかります。

回答者の 86% が AI のセキュリティに懸念、認識に齟齬

回答者の大多数は、AI コード補完ツールの使用によるセキュリティへの影響について、懸念を示しています。これは、AI コーディングツールが安全なコードを生成し、セキュリティを向上させるコード提案を行える機能に強い信頼を寄せているという回答とは対照的です。

こうした認識の齟齬は、群集心理が引き起こした可能性もあります。開発者は、他の開発者も AI コーディングツールを使用しているのだから信頼できるに違いないと考えており、それが行動の動機になっているのです。しかし、冷静な観点からは、開発者はリスクを理解し、包括的なセキュリティ対策を講じなければ、自分たちが認識している以上に、あるいは実際に確認できる以上に、AI が安全でないコードを注入する可能性があることを認識しています。

AI コード補完ツールの使用による、セキュリティへの影響の広がりについて、どの程度懸念していますか?

非常に懸念している

37.1%

ある程度懸念している

49.9%

懸念していない

13%

セキュリティ、データプライバシーへの懸念が AI コードを制限する主な理由

AI コーディングツールの一部または全部を制限している少数の企業では、制限の背景にある最も多い懸念は「コードセキュリティ」(57%) で、次いで「データプライバシー」(53.8%)、「コード品質」(46.4%) でした。AI を制限する主な懸念はすべてセキュリティに関するものでした。これは、AI によるコード補完が潜在的にもたらす軽視できない悪影響に対する経営陣の懸念を反映しています。 

所属組織が AI コーディングツールの使用を制限している場合、その理由は何ですか?*

60%

40%

20%

0%

0%

20%

40%

60%

セキュリティ上の懸念

データプライバシー上の懸念

品質保障上の懸念

コスト上の懸念

経営陣の賛同不足

上記以外

セキュリティ上の懸念

データプライバシー上の懸念

品質保障上の懸念

コスト上の懸念

経営陣の賛同不足

上記以外

開発者は過度の AI 依存を懸念

一般的に挙げられる懸念事項は、AI を使用する開発者がコーディングツールに過度に依存するようになり、自分自身でコードを記述する能力や、AI を常用している基本的なコーディング作業を行う能力が失われることです。ある研究では、強力な AI に過度に依存する知識労働者は、適切な解決策が典型的なものでない場合や、パターンから外れている場合には認識しにくくなることが指摘されています。本調査では、この調査項目に対して、45% が「やや懸念している」、40% が「非常に懸念している」と回答しています。つまり、回答者は AI に仕事を任せすぎることにはリスクがあると認識しているのです。

開発者が AI コード補完ツールに過度に依存していることを、どの程度懸念していますか?

非常に懸念している

40%

ある程度懸念している

46%

懸念していない

14%

アプリケーションセキュリティチームの 58.7% は対応に苦慮

AI コーディングツールは生産性を向上させ、作成するコードの行数で測るわけではないにせよ、コード生産を高速化していると考えられます。このため、これがアプリケーションセキュリティチームにさらにプレッシャーをかけているかを尋ねました。その結果、アプリケーションセキュリティチームの半数以上がある程度対応に苦慮しており、そのうち 1/5 は AIによるコード補完がもたらすスピードに対応できず、かなり苦慮していると回答しています。AI コード補完ツールによる生産性向上が有益であれば、これはある程度予想されることです。また、AI の導入以前でさえ多くの場合はソフトウェア開発の高速化に対応しきれていなかったプロセスに、さらにプレッシャーが加わることで生じる課題も明らかになりました。

所属組織のアプリケーションセキュリティやセキュリティチームは、AI コード補完を利用した開発の高速化への対応に苦慮していますか?

かなり苦慮している

20.5%

ある程度苦慮している

38.2%

適切に対応している

35%

影響を受けていない

6.3%

結論

AI の無謬性バイアスを修正するには、セキュリティの教育と自動化が必須

AI によるコーディング提案は安全だという開発者の認識と、そうではない場合が多いという数多くの調査結果との間には、明らかな齟齬が生じています。この点は、本調査で得られた一見矛盾した回答によって明確化されています。セキュリティ実務者を含む回答者のほとんどは、AI によるコード提案は安全だと考えていますが、同時に、AI によるコード提案が安全でない場合がよくあることも認識しています。 


これは認識と教育の問題です。社会的証明の原理と、人が一見権威あるシステムを信頼しがちであるという性質によって引き起こされる、集団思考が原因となっています。AI コーディングツールは人間よりも精度が高く、間違いが少ないという根拠のない通説が広まっていることから、それが事実として多くの人に受け入れられてしまっています。この危険な誤解を解くには、企業が採用するテクノロジーについてチームへの教育を強化する一方で、セキュリティ分野で実績のある業界承認のセキュリティツールを使用して、AI が生成するコードを保護することです。

本レポートについて

本調査では、AI コード補完ツールや生成コーディングについて、組織の認識と、利用方法について 30 の調査項目を設置し、技術職者 537 人から回答を得ました。内訳は、米国 45.3%、英国 30.9%、カナダ 23.6% でした。回答者は、自己申告で該当する役職名をすべて選択しています。開発者管理職 (42.1%)、開発者 (37.6%)、IT管理職 (30.9%)、セキュリティ管理職 (30.7%) の割合が高く、回答者には管理職が多数含まれています。また、回答者の所属先は幅広く、「SaaS/技術」は最大の回答者数 (21%) を占め、20% 以上の回答を得た唯一の部門となっています。回答者の 10% 以上を占めたのは、「ビジネスサービス」(17.1%) と「金融サービス/フィンテック」(11.2%) の 2 業種のみでした。回答者の 48.6% が従業員 500 名以下の企業に勤務しており、従業員 5,000 名以上の企業に勤務している人はわずか 12.8% でした。また、回答者が利用しているコーディングツールは多岐にわたり、最多は「ChatGPT」(70.3%) であり、「Amazon CodeWhisperer」(47.4%)、「GitHub Copilot」(43.7%)、「Microsoft VisualStudio Intellicode」(35.8%)、「Tabnine」(19.9%) が続きました。これは多肢選択式項目 (複数選択可) だったため、複数の選択肢で回答率が高いことから、回答者が業務で複数の AI コーディングツールを使用している可能性が高く、利用する目的やタスクに応じて使い分けている可能性があることを示しています。

Snyk (スニーク) は、デベロッパーセキュリティプラットフォームです。Snyk は、コードやオープンソースとその依存関係、コンテナや IaC (Infrastructure as a Code) における脆弱性を見つけるだけでなく、優先順位をつけて修正するためのツールです。世界最高峰の脆弱性データベースを基盤に、Snyk の脆弱性に関する専門家としての知見が提供されます。

無料で始める資料請求

© 2024 Snyk Limited
Registered in England and Wales

logo-devseccon