Google – Bardに脆弱性診断をやらせてみた。

例えばadversarial attacksは学習精度を上げるためのGAN:敵対的生成ネットワークの延長線上にあるものです。近い将来にAIが人間よりも早くゼロデイを発見し、AIが防御する時代が来ると思います。

今回はGoogleより日本にもBardがリリースされましたので、ChatGPTと比較しながら未来のAIを少し垣間見ようと思います。
なお、2023/4/19時点のBardは日本語が利用できません。参考としてブラウザ翻訳したものを添付いたしました。
なお、 Bard のコンテキストを保持する能力は、現時点では意図的に制限されています。Bardが学習を続けるにつれて、より長い会話のコンテキストを保持する能力が向上します。
Bard FAQ : Why doesn’t Bard know what I said earlier in a conversation?

CTFを解く

BardはChatGPTと比較して日本語が使えないため不便だと思います。ただし、ブラウザの翻訳機能を用いることで、ある程度解消できると思います。またChatGPTと遜色ない品質の回答が得られるようです。

Bardの場合

参考:ブラウザ翻訳

ChatGPTの場合

脆弱性診断-ソースコード静的解析

なお、「ソースコード検査」は、一般的に「ソースコード静的解析」とも表記されますが、大きく分けて 2 つに分類できます。

  • 規約違反の検出等を行う技術
    コーディング規約違反の検出等を確認する技術である。ソースコードの信頼性、保守性、移行性、効率性といった品質を確保するための検査である。
  • 脆弱性を検出する技術
    ソフトウェア開発において、脆弱性が作りこまれていないかを確認する技術である。ソースコード安全性に関わる品質を確保するためのセキュリティ検査である(ソースコードセキュリティ検査)。
出典元:IPA テクニカルウォッチ
「ソースコードセキュリティ検査」に関するレポート
~出荷前のソフトウェアの脆弱(ぜいじゃく)性を低減するために~https://www.ipa.go.jp/files/000024762.pdf

では、完成したソースコードやソースコード群を検査ツールに入力することで、検査する「ソースコード入力型」の脆弱性診断を行なってみたいと思います。

SQLインジェクション脆弱性

※コードはphp言語を用いております。

脆弱性を診断すると共に、ChatGPTと同じく具体的な攻撃方法と被害、更に修正方法についてのアドバイスも含まれておりました。またBingと同様にソースを示すこともあるようです。

  1. https://github.com/bchazalet/web-app-security-examples
参考:ブラウザ翻訳

CHATGPTの場合

脆弱性を診断すると共に、具体的な攻撃方法と被害についてアドバイスも含まれておりました。

ソースコードレビュー

つまり、脆弱性診断から導かれるソースコードレビューも行える模様です。

ZIPスリップの脆弱性

※コードはpython言語を用いております。

Bardの場合

ディレクトリとラバーサルの脆弱性についてアドバイスがありました。一方で、ソースにはZIPスリップの脆弱性が掲載されております。

  1. https://github.com/snyk/zip-slip-vulnerability
  2. https://github.com/facebook/mariana-trench/issues/93
参考:ブラウザ翻訳

ChatGPTの場合

リモートファイルインクルードの脆弱性

※コードはPHP言語を用いております。

Bardの場合

参考:ブラウザ翻訳

ChatGPTの場合

エクスプロイトコードの作成と防御

ソースコードレビューの中で、具体的な攻撃方法が例示されており、もしかしたらセキュリティホールを検査するために作成する検証用のエクスプロイトコードを作成することができるかもしれません。試してみましょう。

Pythonの pikeleモジュール脆弱性

※コードはpython言語を用いております。

Bardの場合

まずは、通常通り脆弱性を診断してもらいます。

具体的な攻撃方法と被害、更に修正方法についてのアドバイスも含まれておりました。

参考:ブラウザ翻訳

更に続けて、Bardに悪意のあるコードについて確認してみます。

Bardでは、質問をリフレーミングして悪意のあるコードではなく、悪意のあるコードの例について回答しております。

参考:ブラウザ翻訳

CHATGPTの場合

まずは、通常通り脆弱性を診断してもらいます。

更に続けて、ChatGPTに悪意のあるコードについて確認してみます。

検証用のエクスプロイトコードとして、そのまま利用できるものは作成はできませんでした。但し、悪意のあるコードを部分的に例示してくれています。では、悪意のあるコードを防ぐ方法について確認してみましょう。

プレビュー版のChatGPTに脆弱性診断をやらせてみたところ、予想以上に広い範囲でキャッチアップできることがわかりました。

AIがもらたらす脆弱性診断の未来について

最後にAIが人間に代わり脆弱性診断をすることのメリットについて確認してみます。

Bardの場合

参考:ブラウザ翻訳
参考:ブラウザ翻訳

Bardによればゼロデイ脆弱性についても有効な診断が行える模様です。それでは、人間が他に何をすべきか確認します。

参考:ブラウザ翻訳

ChatGPTの場合

ChatGPTによればゼロデイ脆弱性についても有効な診断が行える模様です。それでは、人間が他に何をすべきか確認します。

番外編:アドバイザリーサービス

AIによるアドバイザリーサービスを試してみました。

Bardの場合

参考:ブラウザ翻訳
参考:ブラウザ翻訳
参考:ブラウザ翻訳

脆弱性診断と同様に、Bardが人間に代わりアドバイザリーをすることのメリットについて確認してみました。

参考:ブラウザ翻訳

ChatGPTの場合

脆弱性診断と同様に、ChatGPTが人間に代わりアドバイザリーをすることのメリットについて確認してみました。

私たちの原則

ChatGPTと異なる点として、Googleのレギュレーションが適用されます。よってBardは、Googleの「私たちの原則」に基づいて運用されます。

Google は、困難な問題を解決し、人々の日常生活に役立つ技術を創造することを目指しています。私たちは、AI やその他の先進的な技術が、現在および将来の世代に恩恵をもたらすという素晴らしい可能性を前向きに捉えています。また、先進的な技術は、私たちが明確かつ慎重に、そして積極的に取り組むべき重要な課題を提起していることも認識しています。私たちのAI原則は、責任を持って技術を開発するというコミットメントを示し、私たちが求めない特定のアプリケーション領域を定めています。

Google Our Principles

Google利用規約

https://policies.google.com/terms

GENERATIVE AI 追加利用規約

https://policies.google.com/terms/generative-ai

Bard FAQ

どのようなデータが収集されますか? どのように使用されますか?

お客様がBardと対話する際、Googleはお客様の会話、IPアドレスに基づくお客様の一般的な位置情報(詳細はこちら)、お客様のフィードバック、および使用状況を収集します。そのデータは、Googleプライバシーポリシーで説明されているように、Googleの製品、サービス、機械学習技術を提供、改善、開発するのに役立ちます。たとえば、私たちは、Bardのセーフティーポリシーの有効性を高め、大規模な言語モデルの特有の課題を最小限に抑えるために、お客様のフィードバックを使用しています。また、Bardは、お客様の過去のやり取りとお客様の一般的な位置情報を使用して、回答を生成しています。

Googleは、Bardを改善するための標準化された厳格なレビュープロセスを持っており、これには低品質であると報告された会話のレビューも含まれます。これにより、問題のある回答の一般的な種類を特定し、Bard をどのように改善することができるかを確認することができます。

Google のプライバシーとセキュリティに関する原則をお読みいただくと、Google がユーザーのデータをプライベート、安全、セキュアに保つ方法についてより深くご理解いただけます。

誰がBardの会話にアクセスできるのですか?

私たちはあなたのプライバシーを大切に考えており、あなたの個人情報を誰かに売ることはありません。お客様のプライバシーを保護しながらBardの改善に役立てるため、会話の一部を選択し、自動化ツールを使用して個人を特定できる情報を削除しています。これらの会話サンプルは、訓練を受けたレビュアーがレビューすることが可能で、お客様のGoogleアカウントとは別に最大3年間保存されます。

Bardの会話には、あなたや他の人を特定するために使用できる情報を含めないでください。

Googleアカウントからデータを削除することはできますか?

はい、Bardでデータを管理するためのリンクがあります。Bardのアクティビティを管理&削除する方法。Bardアクティビティの保存はいつでもオフにでき、myactivity.google.com/product/bardでアカウントからBardアクティビティをいつでも削除することができます。Bardアクティビティがオフの場合でも、サービスを提供し、フィードバックを処理するために、お客様の会話は短期間、お客様のアカウントに保存されます。このアクティビティは、お客様のBardアクティビティに表示されることはありません。

私のBardの会話は広告目的に使用されていますか?

Bardの会話は広告目的で使用されていません。今後、この方法に変更があった場合は明確にお伝えします。

Google がユーザーのデータを非公開、安全、セキュアに保つ方法については、Google のプライバシーおよびセキュリティに関する原則をご覧ください。Google アカウントにアクセスして、データを保護し、プライバシーを保護するための設定やツールにアクセスします。

投稿者: 二本松 哲也

SPbD:Security&Privacy by Design Founder ー OWASP Member ー ITは人々の生活をあらゆる面でより良い方向に変化させること ー 競争原理から共創原理へ