AIによって書かれたコードは「手書きのコード」よりもはるかに安全性が低い

AIによって書かれたコードは「手書きのコード」よりもはるかに安全性が低い

Github Copilot のような人工知能コードアシスタントは、開発者の開発効率と生産性を大幅に向上させ、開発の技術的ハードルを下げることができます (言語や概念に精通していないプログラマーの参入)。しかし、経験の浅い開発者は AI アシスタントの出力を安易に信頼してしまい、セキュリティ上の脆弱性が生じるリスクがあります。

最近、スタンフォード大学の研究により、人工知能アシスタントを使用して書かれたコードは「手動でコード化された」コードよりもはるかに安全性が低いことが判明しました。また、人工知能ツールは、ユーザーがコードのセキュリティについて過信する原因にもなります。

また、調査では、AIアシスタントが出力するコードは「正確性」を満たしていることが多いものの、パスワードが持つべきセキュリティ特性を理解することはほとんどなく、場合によってはユーザーをうっかり混乱させるコードを作成することもあることが判明した。

この調査では、47 人の参加者が 3 つの異なるプログラミング言語 (Python、JavaScript、C) を使用して 5 つのセキュリティ関連のプログラミング タスクを実行する包括的なユーザー調査プロジェクトを設計しました。 3 つの中心的な研究質問は次のとおりです。

  • AI プログラミング アシスタントを使用すると、ユーザーは安全でないコードをより多く記述するのでしょうか?
  • ユーザーは AI アシスタントが安全なコードを書くことを信頼していますか?
  • AI アシスタントと対話する際のユーザーの言語と動作は、そのコードのセキュリティ脆弱性のレベルにどのように影響しますか?

複数の国の開発者が調査に参加しましたが、その大部分は次の 3 か国から来ています。

  • アメリカ 57%
  • 中国 15%
  • インド 13%

調査の主な結果は次のとおりです。

AIコードは5つのテストで一般的に人間のコードよりもパフォーマンスが悪い

5 種類のセキュリティ エラー テストすべて (以下を参照) において、AI アシスタントは手動コーディングよりも多くのコーディング エラーを起こし、AI アシスタントを使用する開発者の 67% が正しい解決策を提供したのに対し、「手動コーディング」コントロール グループでは 79% でした。これは、AI 支援開発への依存がセキュリティ上のミスの増加につながる可能性があることを示唆しています。

AI実験グループ(青)と手動制御グループ(黄)の5つのテストにおけるコードセキュリティエラーの割合

たとえば、SQL インジェクション脆弱性テストでは、AI アシスタントを使用した参加者は、安全性が大幅に低いソリューションを提供しました (36% 対 50%)。 AI アシスタントを使用した参加者の 36% が SQL インジェクション攻撃に対して脆弱なソリューションを作成しましたが、AI アシスタントを使用しなかったコントロール グループではわずか 7% でした。

開発者が最もよく使うプロンプトワード

開発者は通常、さまざまな戦略を使用して AI アシスタントにプロンプ​​トを出すことを選択します。開発者の 64% は直接タスク指定を試みます。開発者の 21% は AI アシスタントに関数宣言の指示を提供することを選択します (「関数を記述してください...」など)。開発者の 49% はプログラミング言語を指定します。開発者の 61% は以前のモデルによって生成されたプロンプト ワードを使用してコード アシスタントにプロンプ​​トを出します (これにより、モデルによって提供される脆弱性が強化される可能性があります)。開発者の 53% は特定の API 呼び出しに特定のライブラリを指定します。Python 開発者が関数宣言を提供することはより一般的ですが、参加者は SQL および C の質問に対してプログラミング言語を指定する可能性が高くなります。

修正提案

1. プロンプトワードを最適化します。調査では、AI を使用する開発者ユーザーの間で、言語とプロンプト パラメータの選択に大きな違いがあることがわかりました。将来のシステムでは、全体的なパフォーマンスを最適化するために、ユーザーのヒントをシステムへの入力として使用する前に、ユーザーのヒントの改善(タイプミスの修正、設計者が実装しやすいセキュリティに関する言語の組み込みなど)を検討することをお勧めします。

別のアプローチとしては、機械学習ベースの方法を検討して、ユーザープロンプトの意図(またはタスクによって生成される可能性のある特定のクラスのセキュリティ問題)を予測し、プロンプトを変更して既知の脆弱性や AI 出力から保護することが考えられます。

2. AIの主体性を減らす。安全でないコードを提供する開発者が AI アシスタントの出力を積極的に変更したり、パラメータを調整したりする可能性は低いため、AI アシスタントに過度の権限 (自動パラメータ選択など) を与えるべきではありません。そうしないと、セキュリティの脆弱性に対するユーザーの警戒が弱まる可能性があります。 AI コード アシスタントが一般的になるにつれて、これらは検討すべき重要なソリューションになります。たとえば、GitHub Copilot と統合された VS Code などの IDE では、AI アシスタントが提案したライブラリに基づいて、デフォルトの動作を調整して、ライブラリのドキュメントや使用上の警告をリアルタイムで明確に表示できます。

3. トレーニングデータを精製します。多くの AI プログラミング アシスタントは、モデルのトレーニングに GitHub 上のセキュリティ保護されていないコードを使用します。開発者は、これらの入力 (オープンソース コード) に対して静的分析ツールを実行し、トレーニングにはセキュリティ チェックに合格した入力 (コード) のみを使用し、ライブラリ ドキュメントと「エキスパート」コード例を使用してトレーニング前にデータセット全体の重み付けを再調整するよりスマートな方法を設計する必要があります。これにより、データのセキュリティが大幅に向上します。

結論は

AI アシスタントを使用してコードを作成する開発者は、ほとんどのプログラミング タスクでセキュリティ上の脆弱性を導入する可能性が高くなります。さらに、AI アシスタントに問い合わせる際に使用するクエリワードが具体的であればあるほど (ヘルプ機能の提供やパラメータの調整など)、生成されるコードはより安全になります。


<<:  AIが労働力に与える影響について考えられる3つのシナリオ

>>:  清華大学系のスタートアップが、実際のシーンからアニメーションへのワンクリック変換、パーソナライズされたキャラクターも生成できる世界初の4Dスケルトンアニメーションフレームワークを発表

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

運輸・物流業界におけるAIと自動化のユースケース

現在、世界の一部の国や地域の運輸・物流業界は、流行病によって深刻な影響を受けています。コロナウイルス...

機械学習の一般的なパラダイム

ここでは、機械学習の問題を 2 種類の統計学習に簡略化します。 教師なし学習には明確な定義がないと思...

...

ボルチモア、これまでで最も厳しい顔認識禁止法を制定する可能性

米国のボルチモア市で検討されている条例は、民間人だけでなく法執行機関や政府機関による顔認識技術の購入...

「理解する」シナリオ + 「理解する」テクノロジー: スマート交通で旅行が予測可能になる

【51CTO.comオリジナル記事】 [[337243]]よくよく数えてみると、一般的に誰もが悩まさ...

大学を解雇され、Facebookも拒否した大物音声エンジニアのダニエル・ポーヴィー氏が、中国のXiaomiに入社する

昨日、小米集団の創業者、雷軍氏は微博で、音声認識とAIの国際的専門家であり、音声認識オープンソースツ...

...

人工知能に関する6つの誤解を解く

「人工知能はすべての仕事を自動化し、人間を失業させるだろう。」 「人工知能は単なる架空の技術だ。」 ...

数百万人の乗客を「迅速に配達」する人工知能の応用

ほとんどの人がテイクアウトを注文しており、今ではテイクアウトは中国人にとってもう一つの食事方法となっ...

人間支援型人工知能の6つの利点

人工知能は最近話題になっていますが、現実には人間のように考えることができるコンピューターの実現にはま...

50歳の男性がAIの博士号を取得するためにケンブリッジに戻り、AIを使ってレタスを収穫するロボットを開発した。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

DragGANはオープンソース化から3日間で23,000のスターを獲得し、DragDiffusionが登場しました。

AIGC の魔法の世界では、画像を「ドラッグ」することで、必要な画像を変更したり合成したりできます...

賈強淮: Ant大規模知識グラフの構築とその応用

1. アトラスの概要まず、ナレッジグラフの基本的な概念をいくつか紹介します。 1. ナレッジグラフと...

ReSimAD: 実データなしで知覚モデルの一般化パフォーマンスを向上させる方法

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...