LLM:セキュアコーディングへの(イム)完璧な人間的アプローチ?

2024年2月1日発行
ピーテル・ダンヒョウ著
ケーススタディ

LLM:セキュアコーディングへの(イム)完璧な人間的アプローチ?

2024年2月1日発行
ピーテル・ダンヒョウ著
リソースを見る
リソースを見る
暗闇の中のノートパソコン、画面からは光の筋。
暗闇の中のノートパソコン、画面からは光の筋。

この記事の一版は ダークリーディング.この記事はDark Readingに掲載されたものを更新し、ここにシンジケートされています。

文化を揺るがすような最新のAIツールの宣伝が鳴り響いた当初から、開発者やコーディングに関心のある人たちは、ボタンを押すだけでコードを生成できるAIツールを利用してきた。セキュリティの専門家たちはすぐに、多くの場合、生成されるコードは質が低く脆弱であり、セキュリティ意識の低い人たちの手にかかると、安全でないアプリやウェブ開発が無防備な消費者を雪崩のように襲う可能性があると指摘した。

そして、セキュリティに関する十分な知識を持ちながら、それを悪用する者もいる。AIが驚異的な偉業を成し遂げるたびに、同じ技術が悪意のある目的に使われるというカウンターパンチがあるようだ。フィッシング、深い偽の詐欺ビデオ、マルウェアの作成、一般的なスクリプトの悪ふざけ......これらの破壊的な活動は、参入障壁が低く、はるかに速く達成可能である。

確かに、このツールは革命的だ、あるいは少なくとも「平均的な」人間のスキルとマッチさせれば優位に立てる、と宣伝するクリックベイトがたくさんある。LLMスタイルのAI技術が、ソフトウェア開発だけでなく、仕事の様々な側面へのアプローチ方法を変えることは避けられないように見えるが、我々は一歩引いて、見出しを超えたリスクを考慮しなければならない。 

そしてコーディングの仲間として、その欠点はおそらく最も "人間的 "な特性だろう。

貧弱なコーディング・パターンがソリューションの大半を占める

ChatGPTは、何十年にもわたる既存のコードと知識ベースに基づいて訓練されているため、その驚異と謎のために、コードをナビゲートするときに人々が直面するのと同じ一般的な落とし穴に悩まされることは驚くことではありません。セキュリティ意識の高いドライバが、適切な質問と適切なプロンプトエンジニアリングを提供することで、安全なコーディング例を生成します。 

Mike Shema氏が発見したように、このテクノロジーは幻覚を起こしやすく、特定のJSON操作の実行を要求されると、存在しないライブラリをでっち上げることさえある。このため、ChatGPTが自信を持って推奨する偽装ライブラリを装ったマルウェアを喜んで作成するような、脅威アクターによる「幻覚スクワッティング」が発生する可能性があります。

結局のところ、私たちは、一般的に、開発者が十分にセキュリティを意識することを期待しておらず、業界として、デフォルトの状態として安全なコードを書くように十分に準備してこなかったという現実に直面しなければなりません。このことは、ChatGPTに投入される膨大な量のトレーニング・データを見れば明らかであり、少なくとも当初は、ChatGPTの出力からセキュリティに関する同様の結果が得られることは期待できない。開発者は、セキュリティのバグを特定し、自分自身で修正するか、より堅牢な結果を得るためにより良いプロンプトを設計しなければならないだろう。

スタンフォード大学の研究者が実施した、ユーザーがAIコーディングアシスタントとどのように対話し、様々なセキュリティ関連機能を解決するかを調査した初の大規模ユーザー研究は、この考えを裏付けるものであり、ある観察結果は次のように結論づけている:

"AIアシスタントにアクセスできる参加者は、コントロールグループの参加者に比べて、プログラミングタスクの大半でセキュリティの脆弱性を導入する可能性が高く、しかも安全でない回答を安全であると評価する可能性が高いことが観察された。"

これは、AIコーディングツールの出力が、実際にはそうでないにもかかわらず、常に本質的に安全なコードを生成するものとして、デフォルトで信頼されていることを物語っている。


このような脅威と、今後私たちの未来に浸透するであろう避けられないAIを媒介とする脅威の間で、開発者はこれまで以上にセキュリティのスキルを磨き、その起源を問わずコードの品質に対するハードルを上げなければならない。

データ流出事故への道は善意で舗装されている

特に、開発者が責任の増大や厳しい納期に直面し、企業のイノベーションという野望を肩に担わなければならなくなる中で、AIコーディングコンパニオンが人気を博しているのは当然のことだろう。しかし、たとえ最善の意図があったとしても、AIをコーディングに使用する際にセキュリティに対する認識が不十分であれば、目に余るセキュリティ上の問題が発生することは避けられません。AI/MLツールを使用するすべての開発者は、より多くのコードを生成することになり、そのセキュリティ・リスクのレベルは開発者のスキル・レベルに依存することになる。組織は、訓練を受けていない人がコードを生成するスピードは確かに速くなるが、技術的なセキュリティ上の負債を抱えるスピードも速くなることを痛感する必要がある。

ChatGPTの予備テスト(2023年4月)でさえ、壊滅的な結果をもたらす可能性のある非常に基本的なミスを生成することが明らかになりました。PHPでMySQLデータベースを使用したログインルーチンを構築するよう依頼したところ、機能的なコードはすぐに生成されました。しかし、デフォルトではパスワードを平文でデータベースに保存し、データベース接続認証情報をコードに保存し、SQLインジェクションを引き起こす可能性のあるコーディングパターンを使用しました(ただし、入力パラメータにある程度のフィルタリングを行い、データベースエラーを吐き出しました)。どのような手段を使っても、すべて新人のエラーである。

ChatGPTの推奨は必ずしも安全ではなく、場合によっては危険なこともあります。


さらに注意を促すことでミスは修正されたが、軌道修正にはかなりのセキュリティ知識が必要だ。もしこのコードが機密性の高いインフラを構築したり、個人データを処理したりするのであれば、時限爆弾を見るようなものだ。

もちろん、ジュニア開発者が時間とともに間違いなくスキルを向上させるように、AI/MLの能力も向上していくことが予想される。年後、AIはこのような明白で単純なセキュリティミスを犯さなくなるかもしれない。しかし、そのことは、より深刻で、隠れた、自明でないセキュリティ・エラーを追跡するために必要なセキュリティ・スキルを劇的に向上させる効果がある。

セキュリティの脆弱性を発見し、修正する準備が整っていない。



現状では、私たちが遭遇し慣れているセキュリティ・バグに対する準備はできていません。ましてや、プロンプト・インジェクションや幻覚スクワッティングのようなAIに起因する新たな問題は、野火のように燃え広がるまったく新しい攻撃ベクトルです。AIコーディング・ツールは、開発者のコーディング兵器の未来を象徴しているが、これらの生産性の武器を安全に使いこなすための教育は、今すぐにでも必要だ。

もっと知りたいですか?最新のホワイトペーパーをダウンロードしてください。
リソースを見る
リソースを見る

著者

ピーテル・ダンヒユー

Pieter Danhieuxは、セキュリティコンサルタントとして12年以上の経験を持ち、SANSの主席講師として8年間、組織、システム、個人をターゲットにしてセキュリティの弱点を評価する方法に関する攻撃的なテクニックを教えている、世界的に有名なセキュリティエキスパートです。2016年には、オーストラリアで最もクールな技術者の一人として認められ(Business Insider)、Cyber Security Professional of the Yearを受賞(AISA - Australian Information Security Association)、GSE、CISSP、GCIH、GCFA、GSEC、GPEN、GWAPT、GCIA認定を保有している。

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

LLM:セキュアコーディングへの(イム)完璧な人間的アプローチ?

2024年2月1日発行
Pieter Danhieux著

この記事の一版は ダークリーディング.この記事はDark Readingに掲載されたものを更新し、ここにシンジケートされています。

文化を揺るがすような最新のAIツールの宣伝が鳴り響いた当初から、開発者やコーディングに関心のある人たちは、ボタンを押すだけでコードを生成できるAIツールを利用してきた。セキュリティの専門家たちはすぐに、多くの場合、生成されるコードは質が低く脆弱であり、セキュリティ意識の低い人たちの手にかかると、安全でないアプリやウェブ開発が無防備な消費者を雪崩のように襲う可能性があると指摘した。

そして、セキュリティに関する十分な知識を持ちながら、それを悪用する者もいる。AIが驚異的な偉業を成し遂げるたびに、同じ技術が悪意のある目的に使われるというカウンターパンチがあるようだ。フィッシング、深い偽の詐欺ビデオ、マルウェアの作成、一般的なスクリプトの悪ふざけ......これらの破壊的な活動は、参入障壁が低く、はるかに速く達成可能である。

確かに、このツールは革命的だ、あるいは少なくとも「平均的な」人間のスキルとマッチさせれば優位に立てる、と宣伝するクリックベイトがたくさんある。LLMスタイルのAI技術が、ソフトウェア開発だけでなく、仕事の様々な側面へのアプローチ方法を変えることは避けられないように見えるが、我々は一歩引いて、見出しを超えたリスクを考慮しなければならない。 

そしてコーディングの仲間として、その欠点はおそらく最も "人間的 "な特性だろう。

貧弱なコーディング・パターンがソリューションの大半を占める

ChatGPTは、何十年にもわたる既存のコードと知識ベースに基づいて訓練されているため、その驚異と謎のために、コードをナビゲートするときに人々が直面するのと同じ一般的な落とし穴に悩まされることは驚くことではありません。セキュリティ意識の高いドライバが、適切な質問と適切なプロンプトエンジニアリングを提供することで、安全なコーディング例を生成します。 

Mike Shema氏が発見したように、このテクノロジーは幻覚を起こしやすく、特定のJSON操作の実行を要求されると、存在しないライブラリをでっち上げることさえある。このため、ChatGPTが自信を持って推奨する偽装ライブラリを装ったマルウェアを喜んで作成するような、脅威アクターによる「幻覚スクワッティング」が発生する可能性があります。

結局のところ、私たちは、一般的に、開発者が十分にセキュリティを意識することを期待しておらず、業界として、デフォルトの状態として安全なコードを書くように十分に準備してこなかったという現実に直面しなければなりません。このことは、ChatGPTに投入される膨大な量のトレーニング・データを見れば明らかであり、少なくとも当初は、ChatGPTの出力からセキュリティに関する同様の結果が得られることは期待できない。開発者は、セキュリティのバグを特定し、自分自身で修正するか、より堅牢な結果を得るためにより良いプロンプトを設計しなければならないだろう。

スタンフォード大学の研究者が実施した、ユーザーがAIコーディングアシスタントとどのように対話し、様々なセキュリティ関連機能を解決するかを調査した初の大規模ユーザー研究は、この考えを裏付けるものであり、ある観察結果は次のように結論づけている:

"AIアシスタントにアクセスできる参加者は、コントロールグループの参加者に比べて、プログラミングタスクの大半でセキュリティの脆弱性を導入する可能性が高く、しかも安全でない回答を安全であると評価する可能性が高いことが観察された。"

これは、AIコーディングツールの出力が、実際にはそうでないにもかかわらず、常に本質的に安全なコードを生成するものとして、デフォルトで信頼されていることを物語っている。


このような脅威と、今後私たちの未来に浸透するであろう避けられないAIを媒介とする脅威の間で、開発者はこれまで以上にセキュリティのスキルを磨き、その起源を問わずコードの品質に対するハードルを上げなければならない。

データ流出事故への道は善意で舗装されている

特に、開発者が責任の増大や厳しい納期に直面し、企業のイノベーションという野望を肩に担わなければならなくなる中で、AIコーディングコンパニオンが人気を博しているのは当然のことだろう。しかし、たとえ最善の意図があったとしても、AIをコーディングに使用する際にセキュリティに対する認識が不十分であれば、目に余るセキュリティ上の問題が発生することは避けられません。AI/MLツールを使用するすべての開発者は、より多くのコードを生成することになり、そのセキュリティ・リスクのレベルは開発者のスキル・レベルに依存することになる。組織は、訓練を受けていない人がコードを生成するスピードは確かに速くなるが、技術的なセキュリティ上の負債を抱えるスピードも速くなることを痛感する必要がある。

ChatGPTの予備テスト(2023年4月)でさえ、壊滅的な結果をもたらす可能性のある非常に基本的なミスを生成することが明らかになりました。PHPでMySQLデータベースを使用したログインルーチンを構築するよう依頼したところ、機能的なコードはすぐに生成されました。しかし、デフォルトではパスワードを平文でデータベースに保存し、データベース接続認証情報をコードに保存し、SQLインジェクションを引き起こす可能性のあるコーディングパターンを使用しました(ただし、入力パラメータにある程度のフィルタリングを行い、データベースエラーを吐き出しました)。どのような手段を使っても、すべて新人のエラーである。

ChatGPTの推奨は必ずしも安全ではなく、場合によっては危険なこともあります。


さらに注意を促すことでミスは修正されたが、軌道修正にはかなりのセキュリティ知識が必要だ。もしこのコードが機密性の高いインフラを構築したり、個人データを処理したりするのであれば、時限爆弾を見るようなものだ。

もちろん、ジュニア開発者が時間とともに間違いなくスキルを向上させるように、AI/MLの能力も向上していくことが予想される。年後、AIはこのような明白で単純なセキュリティミスを犯さなくなるかもしれない。しかし、そのことは、より深刻で、隠れた、自明でないセキュリティ・エラーを追跡するために必要なセキュリティ・スキルを劇的に向上させる効果がある。

セキュリティの脆弱性を発見し、修正する準備が整っていない。



現状では、私たちが遭遇し慣れているセキュリティ・バグに対する準備はできていません。ましてや、プロンプト・インジェクションや幻覚スクワッティングのようなAIに起因する新たな問題は、野火のように燃え広がるまったく新しい攻撃ベクトルです。AIコーディング・ツールは、開発者のコーディング兵器の未来を象徴しているが、これらの生産性の武器を安全に使いこなすための教育は、今すぐにでも必要だ。

もっと知りたいですか?最新のホワイトペーパーをダウンロードしてください。

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。