ブログ

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

February 1, 2024
Pieter Danhieux
暗い環境の中で、緑と紫のコードが縦に並び、光を放つノートパソコンの画面。

本記事の一部は Dark Reading に掲載されたものです。内容を更新し、転載しています。

‍

最新のAIツールが社会に衝撃を与え、大きな話題となって以来、開発者やプログラミングに関心を持つ人々は、ボタン一つでコードを生成できるこの技術を活用してきました。しかし、セキュリティ専門家はすぐに指摘しました。生成されるコードの多くは 品質が低く、脆弱性を抱えている ことが多いのです。セキュリティ意識の低いユーザーがこれを使えば、脆弱なアプリやWebサイトが大量に生み出され、無防備な消費者に被害が及ぶ恐れがあります。

さらに、悪用しようとする知識を持つ者も存在します。AIが驚異的な成果を上げるたびに、同じ技術が 悪意ある目的 に転用されるという「カウンターパンチ」が繰り返されています。フィッシング詐欺、ディープフェイク動画、マルウェア作成、スクリプトキディによる悪戯……こうした破壊的な活動が、これまでよりもはるかに短時間で、低いハードルで実行可能になっているのです。

このツールを「革命的」と謳ったり、少なくとも「平均的」な人間のスキルを上回ると主張するクリックベイト記事は後を絶ちません。LLMベースのAI技術が、ソフトウェア開発のみならず、あらゆる業務のあり方を根本から変えていくことは避けられないでしょう。しかし、私たちは一度立ち止まり、見出しを飾る華々しい話題の裏に潜むリスクを考慮しなければなりません。

コーディングの相棒としてのAIにおいて、その欠陥こそが、最も「人間らしい」特性と言えるのかもしれません。

AIが提示する解決策には、不適切なコーディングパターンが蔓延している

ChatGPTは数十年にわたる既存のコードや知識ベースを学習しているため、その驚異的な能力の裏側で、人間がコードを扱う際に陥りがちな共通の落とし穴に、AI自身もはまってしまうのは当然のことです。不適切なコーディングパターンがデフォルトで提示されてしまうため、セキュリティを意識した「ドライバー」が、適切な質問とプロンプトエンジニアリングによって、安全なコーディング例を引き出す必要があります。

たとえそうしたとしても、提示されたコードスニペットがセキュリティの観点から正確で機能的であるという保証はありません。この技術は「ハルシネーション(幻覚)」を起こしやすく、Mike Shema氏が発見したように、特定のJSON操作を求めると 存在しないライブラリをでっち上げる ことさえあります。これは脅威アクターによる「ハルシネーション・スクワッティング」につながる恐れがあります。ChatGPTが自信満々に推奨した架空のライブラリを悪用し、マルウェアを仕込むことは、彼らにとって容易なことだからです。

結局のところ、私たちは現実を直視しなければなりません。一般的に、開発者に十分なセキュリティ意識を求めてきたわけではなく、業界としても安全なコードをデフォルトで書けるよう適切に準備させてきたとは言えないのです。これはChatGPTに投入された膨大な学習データを見れば明らかであり、少なくとも初期段階においては、その出力から同様にセキュリティ面での不十分な結果が予想されます。開発者自身がセキュリティ上のバグを特定し、自ら修正するか、より堅牢な結果を得るために優れたプロンプトを設計する能力が求められます。

スタンフォード大学の研究者が実施した、AIコーディングアシスタントとユーザーの対話がセキュリティ関連のタスクにどう影響するかを調査した初の 大規模ユーザー調査 も、この見解を裏付けています。調査結果の一つには、次のような指摘があります。

「AIアシスタントを利用した参加者は、多くのプログラミングタスクにおいてセキュリティ脆弱性を混入させる可能性が高かったにもかかわらず、対照群と比較して、自身の回答を『安全である』と評価する傾向が強かった。」

これは、AIコーディングツールが出力するコードは常に本質的に安全であるという、デフォルトの信頼が働いていることを示していますが、実際にはそうではありません。


これに加え、今後AIに起因する脅威が浸透していくことを考えると、開発者はこれまで以上にセキュリティスキルを磨き、コードの出自に関わらず、コード品質の基準を引き上げなければなりません。

データ侵害という破滅への道は、善意で舗装されている

AIコーディングの相棒が人気を集めているのは驚くことではありません。開発者は責任の増大、厳しい納期、そして企業のイノベーションという重圧にさらされているからです。しかし、どれほど善意があっても、AIをコーディングに利用する際に実践的なセキュリティ意識が欠けていれば、必然的に深刻なセキュリティ問題を引き起こします。AI/MLツールを使うすべての開発者はより多くのコードを生成するようになりますが、そのセキュリティリスクのレベルは、開発者自身のスキルに依存します。組織は、訓練を受けていない人間がコードを生成すれば、確かにスピードは上がるものの、同時に技術的セキュリティ負債の蓄積も加速させるという事実を、強く認識する必要があります。

2023年4月に行ったChatGPTの予備テストでも、壊滅的な結果を招きかねない非常に基本的なミスが生成されることが明らかになりました。MySQLデータベースを使用したPHPのログインルーチンを作成するよう求めたところ、機能するコードはすぐに生成されました。しかし、デフォルトでパスワードを平文でデータベースに保存し、データベース接続情報をコード内に記述し、SQLインジェクションを招きかねないコーディングパターン(入力パラメータのフィルタリングやデータベースエラーの出力は一部行われていましたが)を採用していました。いずれも、初心者レベルのミスと言わざるを得ません。
‍

ChatGPTの推奨事項は必ずしも安全ではなく、場合によっては危険を伴う可能性があります。

‍
追加のプロンプトによってミスを修正することはできましたが、それには高度なセキュリティ知識が必要です。こうしたツールをチェックなしに広く利用することは、未熟な開発者をプロジェクトに野放しにするのと変わりません。もしそのコードが機密性の高いインフラを構築したり、個人データを処理したりするものであれば、時限爆弾を抱えているようなものです。

もちろん、未熟な開発者が経験を積んでスキルを向上させるように、AI/MLの能力も向上していくでしょう。1年後には、このような明白で単純なセキュリティミスは減っているかもしれません。しかし、そうなれば、AIが生成するより深刻で隠れた、一見しては分からないセキュリティエラーを見つけ出すために、さらに高度なセキュリティスキルが求められるようになるでしょう。

私たちは依然としてセキュリティ脆弱性の発見と修正に十分対応できておらず、AIはその格差をさらに広げています

長年「シフトレフト」が叫ばれてきましたが、多くの組織において開発現場のセキュリティに関する実践的な知識は依然として不足しており、適切なツールと教育を提供するための取り組みを強化しなければなりません。

現状では、従来からあるセキュリティバグへの対応すら不十分なまま、プロンプトインジェクションやハルシネーション・スクワッティングといった、AI特有の新たな攻撃手法が急速に広まろうとしています。AIコーディングツールは開発者の武器として未来を切り拓くものですが、それらを安全に使いこなすための教育を今すぐ導入する必要があります。

‍

Advertisement urging developers to download for security skills in AI development tools by Secure Code Warrior.
詳細はこちらをご覧ください。ホワイトペーパーをダウンロードいただけます。
タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。