cURLプロジェクト、AIが作ったニセのバグ報告の被害にあう

Linux
この記事は約6分で読めます。

昨今の AI (LLM : Large Language Model、大規模言語モデル)は目覚ましく進化している。コーディングの補助をしてくれたり、調べものをする時間を圧倒的に短縮してくれる便利で今後が楽しみな技術ではある。

しかし、まだまだ現在の LLM には限界があり、簡単な間違いを犯すことも多い。

cURL プロジェクトに送られた偽のバグ報告

先々週、 cURLプロジェクトもその被害にあった。Hacker One の利用者の一人が「[緊急] Curl CVE-2023-38545 脆弱性コードが公開状態になっている」という報告を投稿した。

CVE-2023-38545 は非公開でバグフィックスが行われていた本物の脆弱性だ。cURLのような重要なプロジェクトではオープンソース・プロジェクトとは言え非公開でバグフィックスが行われ、修正されてから公開されることもある。悪意を持った第三者にセキュリティホールとして利用されることを防ぐためだ。

修正が公開される前にこの報告者が脆弱性のID番号を Google Bard に入力してインターネットにリークされていないか調べたようだ。

しかし、 Bard が出力した内容が完全なデタラメだった。

To replicate the issue, I have searched in the Bard about this vulnerability. It disclosed what this vulnerability is about, code changes made for this fix, who made these changes, commit details etc even though this information is not released yet on the internet. In addition to it, I was able to easily craft the exploit based on the information available. Remove this information from the internet ASAP!!!!

この問題を再現するために、私はこの脆弱性についてBardで検索しました。この脆弱性が何なのか、この修正のために行われたコード変更、誰がこの変更を行ったのか、コミットの詳細などが開示されていました。それに加えて、私は入手可能な情報に基づいて簡単にエクスプロイト(攻撃プログラム)を作成することができた。早急にこの情報をインターネットから削除してください!!!!

https://hackerone.com/reports/2199174

この報告内容にはコードの変更を行った人、 cURL の制作者である Daniel Stenberg 氏を一部伏せ字にしているにも関わらず、人物の詳細な解説まで載せていた。このことから明らかに AI が出力したものを検証もせずにコピペしたものと思われる。

curl のスタッフがすぐさま返答し、3年前に報告された虚偽の”重大”脆弱性 CVE-2020-19909 とテキストが酷似していることや、このコードではコンパイルすらできないこと、 AIハルシネーションの被害にあったのではないかと指摘。またこの偽のコードのどこをどうやって脆弱性を突いたのかと質問した。

あなたは LLM の幻覚の犠牲者だと思う。この文章は(偽の)CVE-2020-19909や他の報告書と類似点がある。curl_easy_setopt “のコード・スニペットが関数の実際のシグネチャと一致しない(コンパイルすらできない)、現実と一致しない変更履歴、そしてこれが完全にインチキであることを示す兆候など、Bard がインチキ情報を捏造したことを示す手がかりはたくさんある。でっち上げの脆弱性に対して、あなたの exploit がどのような動作したのか聞いてみたい。共有してくれるかな?

https://hackerone.com/reports/2199174

報告者は自身の否を最後まで認めず、アカウントがどういった理由か現在は削除されている。

件の本物の脆弱性 CVE-2023-38545 は10月11日には修正され、現在は公開状態になっている。

LLM(AI)の使用上の注意

Google Bard は ChatGPT のような LLM (大規模言語モデル:Large Language Model)であって検索エンジンではない。ライセンス、著作権を無視してインターネットから可能な限りかき集めた情報を食わせて学習させたカオス。問題がおきるたびに調教されているとはいえ開発者らすらその内部構造を完全には把握できていない。いくら ChatGPT よりも新しいデータを学習させているとはいえ、最新の脆弱性を把握できるまでには至っていないし、今後も至らないだろう。

LLM は入力された質問に対し、この学習データをもとに予測・辻褄を合わせようとする。 このため超高度な予測変換だと言う人もいる。完璧ではないがこれでうまくいくことが多い。料理のレシピや簡単な UNIX コマンドの入力方法、コードのスニペットなど、正しい情報が多く出回っているジャンルほど正確に答えてくれる。

しかし、情報の少ない事柄ほど LLM は少ないデータの中から無理やり辻褄を合わせようと嘘をつくことがある。過去のデータを改ざんして作ったデータシートや偽のURLを生成したりする。このことを人工知能の幻覚(AI hallucination:AI ハルシネーション)と呼ばれている。

LLM は物知りで口がうまいが、プライドがあまりに高いため、「知らない」ということを認められず、質問に当てはめて脳内で思いついたことをもっともらしくぺらぺらと喋ってしまう。それもポーカーフェイスで一瞬で複雑な嘘を組み上げてしまうサイコパスだ。事の専門家でもなければ嘘を嘘と見抜けないときもある。が、真の意味で物事を識ることができないプログラムだ。このことから LLM を AI と呼ぶことに抵抗する人は多い。

Google や Microsoft Bing が LLM を検索エンジンの結果よりも優先して表示しようと推し進めているがこの動きが加速するほど問題が大きくなると容易に予想できる。

AI が出力した内容を確認もせずにコピー&ペーストする行為が SNS 問わず、最近はカジュアルに行われてしまっている。これらがコーディングの場にも侵食してきている。コーディングができないにも関わらず、AIが正しい結果を出力していると信じ切ってそのままペタペタ貼り付けているようなAIプロンプターをたまに見かける。

今後 LLM の開発者らによって少しずつこういった問題も修正されていくかもしれないが、ユーザは事の重大さをよく認識してから書き込みを行ったほうが良いだろう。虚偽のバグ報告はサイバー犯罪に片足突っ込んだ行為だと私的には考えている。

優秀なプログラマーがニセの報告を指摘するために、1時間、いや10分でも時間を浪費することは世界にとって損失だ。よく調べてから投稿したり、自分が説明できないものを騒ぎ立てて報告しないことを心がけたい。

おわり

Image created by Bing DALL E 3

コメント

タイトルとURLをコピーしました