メインコンテンツへスキップ
スーツ姿の経営陣が、砂漠の砂に頭を突っ込んでいる写真です。
Q&A

GenAIの脆弱なコードを、本当に「無視」してよいのでしょうか? あるセキュリティの専門家は「はい」と答えています(まあ、ある意味では)

Focal Pointは、サイバーセキュリティの先駆者であるクリス・ワイソパル氏に独占インタビューを行い、ジェネレーティブAIがソフトウェアのセキュリティをどのように変革しつつあるかについて、同氏がBlack Hat USA 2024 で行うブリーフィングの内容を先行して紹介しました。 彼は、現在浮上している課題に伴うリスクと、その解決策について解説しています。 そして明日の分も。

率直に言って、ソフトウェア開発者は必ずしも最も充実した研修を受けているわけではありません。 そのため、人間以上のスピードで仕事をしなければならないというプレッシャーを感じながら、時に安全性の低いコードを書いてしまうことがあるのです。 さて、AIの時代となった今、彼らはコードスニペットをより迅速に生成できるツールにますます頼るようになっており、彼ら――いや、実際には私たち全員が――人間が作成したコードよりも、そうしたコードを信頼する傾向にあります。

そのスピードと信頼性は、アプリのセキュリティにとって必ずしも良い組み合わせとは言えません。

の大型言語モデル(LLM) およびの生成AI(GenAI) によって実現されたコード開発の高速化は、脆弱性の発生速度の加速につながっており、これが現在、セキュリティテスト、是正措置、のスマートAIガバナンスに対して、数多くの新たな課題を生み出しています。

Black Hat USA 2024の開催が近づく中、最も注目されているセッションの一つが、「HALからHALTへ:GenAIコーディング時代におけるスカイネットの兄弟たちを阻止する"」です。このセッションは、アプリケーションセキュリティ分野で高い評価を受けているリーダーであり、Veracodeの共同創業者でもある のChris Wysopal氏()が登壇します。

Black Hat USA 2024の開催直前に開催された独占ブリーフィングで、 のフォーカルポイントである 氏は、Wysopal氏と対談し、同氏がセッションで取り上げる重要なトピックについて話し合いました。 ここでは、私たちの対談から得られた重要な知見をいくつかご紹介します。これらは、生成AIとサイバーセキュリティの交差点について、参加者の皆様がどのようなことを学べるか、その一端を垣間見ることができる内容となっています。

このインタビューは、分量と読みやすさを考慮して、若干の編集を加えております。

あなたのブラックハット・セッションでは、 (『HAL』)、 (『Skynet』)、(『 』)といった、AIが登場するハリウッド映画の中でも特に悪名高いシーンが取り上げられています。 アーノルド・シュワルツェネッガーが私たちのオフィスに乱入してくるようなことがなければ、実際にどれほどの変化が私たちにもたらされると思いますか?

このセッションでは、LLMによって生成されたコードが、おそらく今日のLLMの最大の活用例の一つであるという点についてお話しします。 成長を続けており、驚くほど大きな可能性を秘めています。 これは、ソフトウェアの開発方法を一変させることになるでしょう。

「」 LLMによって生成されたコードは、おそらく今日のLLMの最大の活用例の一つでしょう。 この分野は成長を続けており、驚くほど大きな可能性を秘めています。”

のアプリケーションセキュリティ の分野に 25 年以上携わってきた私にとって、これはソフトウェア開発における大きな変化です。 通常、ソフトウェア開発に変更が生じると、アプリケーションのセキュリティにも変更が生じます。 さて、今回の講演では、生成AIや生成コードが、アプリケーションのセキュリティをどのように変えていくかについてお話しします。

[関連記事:先延ばし癖のある人のための「Black Hat USA 2024 」ガイド ― そして、後から視聴する方法]

LLMによって生成されたコードは、人間が作成したコードと同じくらいセキュリティ上のリスクが高い可能性があるとおっしゃっていましたね。 ChatGPTやMicrosoft Copilotといったツールに依存している企業にとって、これはどのような意味を持つのでしょうか?

スタンフォード大学、武漢大学、カーネギーメロン大学によるいくつかの研究で、この問題が検討され、基本的に、これらのLLMが生成するコードは、人間が作成したコードとほぼ同程度のセキュリティ上の脆弱性があることが判明しました。 「ゴミを入れれば、ゴミが出る」。 あることをある方法でやる方法を覚えたら、おそらくその方法でやるようになるでしょう。 つまり、それがいわば基本的な出発点といったところですね。 そこで、さて、これについてはどうすればいいのでしょうか?

企業は、安全なソフトウェア開発を確保しつつ、GenAIをどのように活用すればよいのでしょうか?

[コードの書き方を] 基礎モデルに学習させる代わりに、そのモデルを微調整し、質の悪いコードの例を提示することができます。 もし、このような質の悪いコードを目にして、「質の良いコードを書いてください」と言われたとしたら、質の良いコードとはこういうものになるでしょう。

「[基礎モデルに] コードの書き方を学習させる代わりに、微調整を行い、質の悪いコードの例を示すことができます。」

私たちが解決策の一つだと考えているのは、 のChatGPT()、Code Llama、 のCopilot()を活用することです。なぜなら、これらはさまざまなプログラミング言語やコーディング上の課題に対して、さまざまな種類のコードを記述する方法について、最も優れた知識を持っているからです。 そして、それが脆弱性のあるコードを書いているという事実を無視してください。まるで、御社の開発者が脆弱性のあるコードを書いているという事実を無視しているのと同じように。 率直に申し上げて、あなたが彼らを、常に優れたセキュアなコードを書けるようになるほど徹底したセキュアコーディングの研修に送り込んでいるわけではないからです。 要するに、「うちの開発者たちがセキュリティ上の問題があるコードを書いていることは承知しています」とおっしゃっているわけですね。

ですから、依然として セキュリティ上の問題の検査 を行う必要があり、セキュリティ上の問題を修正する必要もあります。

AIが主導するコーディングの時代において、人間の専門知識の役割はどのように変化していくとお考えですか? 手動によるコードレビューやセキュリティテストには、今でも役割があるのでしょうか?

人間が開発したコードでは、修正しきれないほど多くの問題が見つかってしまうという問題に、すでに直面していますよね? つまり、セキュリティ債務がますます膨らんでいるわけですね。 の自動化機能()によって検出されたすべての問題を修正するために、すでに十分なリソースを割いていないのではないでしょうか。

つまり、それが私たちが最初に直面している問題といったところですね。 そして今、私たちは、実質的に同じセキュリティ品質のまま、より多くのコードをより速く書くことで、その問題をさらに深刻化させてしまうことになります。 たとえ品質が2倍だったとしても、脆弱性の密度が半分だったとしても、開発者1人あたりのコード量が3倍になれば、結局はより大きな問題に直面することになるでしょう。 つまり、開発においてLLMを使用することで、より多くの脆弱性を生み出していることになります。

そうですね、 のCI/CDパイプライン( )では、問題を発見するための高速なツールが必要ですが、同時に、問題を修正するための高速なツールも必要です()。

[関連記事:AIを活用したサイバーセキュリティの完全ガイド ― メリット、リスク、そして成果]

AIモデルにおける再帰的学習の可能性や、知識の退化についてお話しになりましたね。 この問題と、それがサイバーセキュリティに及ぼす影響について、詳しくご説明いただけますか?

ええ、これはだんだん、人々が懸念し始めている問題になりつつあります。 AIが生成したコンテンツから学習する場合、知識に悪影響が生じます。なぜなら、 そうした「幻覚」 を学習することになってしまうからです。 つまり、現在書かれているコードの大部分がLLMによって生成されているとしたらどうなるでしょうか。そして、ご存じの通り、それらのLLMには間違いがあるのです。 それは、次世代のコードがそこから学習する際に、問題となるのでしょうか?

「 どうぞ、ChatGPTやCode Llama、Copilotなどを存分にご利用ください……。ただ、それらが脆弱性のあるコードを生成しているという事実は無視してください。[なぜなら]、セキュリティ上の問題については依然としてテストを行う必要があり、修正も必要だからです。」

そういえば、次世代のLLMについてですが――3年後、それが学習を行う段階になったとき、おそらくLLMによって書かれている世界中のコードの 10%を学習することになるのでしょうか? そして、その数は増え始めるのでしょうか? もしかすると、いつの日か、私たちはほぼ常にLLMを使ってコードを書くようになり、人間とのやり取りはほとんどなくなるかもしれません。 LLMが他者から学習しているとしたら、つまり私たちは単に他のLLMの出力から学習しているだけということになるのでしょうか?

これが知識にどのような悪影響を及ぼすのか、私たちはようやく理解し始めたばかりですが、将来のLLMがそのようなコードを使って学習しないように、LLMによって生成されたコードに何らかのマークを付ける必要があるかもしれません。 まあ、そんな感じでしょうか。

これは、『 』や『ニューヨーク・タイムズ』の記事( )、あるいはサラ・シルバーマンの著書の場合と同じ問題です。彼女は、これまでどこでも披露したことのないジョークを本に書いたという理由で訴訟を起こしているのです。 その本に書かれていた内容なのですが、ChatGPTの回答にも、例えば「これについてジョークを書いて」といったリクエストに対して、彼女のジョークが使われているんです。

つまり、単に私のコンテンツや著作権で保護されたコンテンツを使用しているだけであることは明らかです。 つまり、コードに関しては間違いなくそうなのです。

[関連記事:CISO(およびAIに全面的に注力している企業の経営者)を悩ませているもう一つの法的難題――そしてそれを回避する方法]

学習に使用されたコードの大部分は、 のGPL(一般公衆利用許諾契約書) に基づくコードです。 したがって、出典の明記が必要となります。また、一部のライセンスについては、 の「GPL 3」( )に基づき、そのライセンスのコードをソフトウェアに組み込む場合、そのコードを公開することが義務付けられます。 ええ、確かに、これについてはまだ判例が見当たりませんが、弁護士たちはこの問題を非常に懸念していることはお伝えできます。彼らは現在、コードスニペット分析を用いてコードを解析し、オープンソースのコードと一致するかどうかを確認しています。もし十分な規模のコードブロックが一致した場合、それは著作権侵害にあたることになります。 例えば、絶対に侵害してはいけないコードが1行あるようなものです。 しかし、もしそれが一連のルーティンであるなら……もし授業全体であるなら、それは間違いなく著作権侵害になります。

最後に、Black Hatで最も楽しみにしていることは何ですか?また、参加者の皆様にセッションを通じてどのようなことを持ち帰っていただきたいとお考えですか?

私が本当に言いたいのは、生成AIがコーディングに多大な影響を与えているということです。 がクラウドに移行した件( )などと同様に、これはアプリケーションにとって根本的な変化であり、今後、これがソフトウェアのセキュリティにどのような影響を与えるのかについて検討する必要があります。

事態をさらに悪化させないよう、適切な手順を整えておく必要があります。 自動修正のようなものですね――それは良いアイデアだと思います。 私たちの仕事は、例えば の銀行( )であれ、のソフトウェア会社()であれ、私たちが提供するソフトウェアが安全であることを確実にし、生成AIによってその安全性が損なわれている場合は、適切な対応を講じることです。 それが私の主なメッセージです。

BLACK HAT USA 2024で詳細をご覧ください

サイバーセキュリティ分野をリードする有識者の一人の講演を聞くこの機会をお見逃しなく。また、「Black Hat USA 2024」にて、AIとアプリケーションセキュリティの未来について議論に参加しましょう。 で開催されたBlack Hat USA 2024におけるクリス・ワイソパル氏のセッション「 」は、すべてのITプロフェッショナル、そしてAIセキュリティにおける大きな課題についてより深い洞察を得たいと考えている企業のリーダーの方々にとって、必見のセッションです。