機械学習の技術が誕生したのはもう半世紀近く前のことですが、実用化されたのはごく最近のことです。コンピューターは、そのコンピューティング能力の進化とともに、まず画像内の物体を識別できるようになり、人間よりもうまく碁が打てるようになり、さらには文章の指示に従って絵を描けるようになり、精度の高い会話までできるようになりました。2021年から2022年にかけて、このような画期的な科学の進歩がすべての人にも利用されるようになりました。例えば、MidJourneyに登録すれば、AIが自動的に絵を作成してくれます。それを自分が書いた本に挿絵として使うことも可能です。
ChatGPTとは、OpenAIが一般に公開した大型のGPT-3(Generative Pretrained Transformer 3)言語モデルです。chat.openai.comにアクセスすれば、誰でもこのボットを利用することができます。自然な会話ができ、また物理や科学の概念など複雑なトピックに関しても、一般の教師よりも上手に説明してくれると話題にもなっています。また、他言語への翻訳も芸術的にこなしてくれます。
ChatGPTは、オンライン上の大量のテキストからなるコーパスで学習させた言語モデルです。ChatGPTはこのコーパスから、同時に出現することが多い単語や単文、文章、そしてそれらの相互関係を「記憶」します。さまざまな技術的な調整が行われ、人とのやり取りの中でさらに学習が進み、対話に最適化されたモデルを実現しています。「インターネットではあらゆるものが見つかる」ため、ChatGPTは、ファッションや美術史からプログラミングや量子物理学まで、事実上ありとあらゆるトピックに関する対話に対応することができます。
科学者やジャーナリストだけでなく、興味を持った一般の人たちも、ChatGPTのさまざまな使い方を見出しています。Awesome ChatGPT Promptsのウェブサイトにはさまざまなプロンプト(ボットと会話を始めるためにフレーズ)が掲載されています。これらのプロンプトを使うとChatGPTの「切り替え」ができ、『指輪物語』のガンダルフなどのさまざまな作品のキャラクターになりきって返事をさせることや、Pythonのコードの記述、ビジネスレターやレジュメの作成、さらにはLinuxのターミナルのように動作させるなど、ありとあらゆる使い方が可能です。とは言え、ChatGPTは言語モデルに過ぎません。これらのプロンプトで出力される結果はすべて、一般的な言葉を組み合わせてつなげただけのもので、それ自体に合理的な判断や論理性はありません。人間でも説得力のある虚言を並べる人がいますが、ChatGPTも存在しない科学研究に言及するなど、それらしい無意味な答えを返すことがあります。ChatGPTから返される内容は扱いに注意が必要です。ですが、ChatGPTは現時点でもさまざまな業界で、さまざまな用途に役立てることができます。ここでは、サイバーセキュリティ分野の例をいくつか紹介しましょう。
マルウェアの作成
ハッカーが集うアンダーグラウンドのフォーラムでは、新米のサイバー犯罪者がChatGPTを使って新しいトロイの木馬を作る方法を報告しています。ChatGPTのボットは、コードの記述ができるので、欲しい機能を簡潔に説明できれば(「すべてのパスワードをファイルXに保存して、HTTP POSTでサーバーYに送信する」など)、プログラミングのスキルを持っていなくても、シンプルな、情報を盗み出すプログラムを作成することができます。ただし、これは一般のユーザーが怖れる必要があるようなものではありません。ボットで生成されたコードが実際に使われても、セキュリティソリューションが迅速かつ有効に働いて、コードが検知され、無効化されるでしょう。これまでに人間が作ったあらゆる種類のマルウェアと同じです。しかも、ノウハウを持ったプログラマがコードをチェックしていなければ、何かしらのエラーや処理ロジックの不備などが含まれ、マルウェアとして機能する可能性は極めて低いでしょう。
少なくとも現段階では、ボットの能力は、せいぜい新米のウイルス作成者と同じ程度です。
マルウェアの分析
情報セキュリティアナリストが、疑わしいアプリケーションを発見し、調査する場合、その動作を明らかにするために、疑似コードやマシンコードの リバースエンジニアリングを行います。この作業を丸ごとChatGPTに任せることはできませんが、現在のチャットボットはすでに、ある一連のコードの実行内容を簡単に説明することができるようになっています。カスペルスキーのリサーチャーであるイワン・クフィアトコフスキは、まさにその機能を実現したIDA Pro用のプラグインを開発しました。ここで使われている言語モデルはChatGPTではなく、そのいとこに当たるようなdavinci-003ですが、これは単に技術的な違いに過ぎません。このプラグインは、時にうまく機能しなかったり、無関係な内容が出力されることもありますが、関数に妥当な名前が付けられ、コード内の暗号化アルゴリズムとそのパラメーターの特定が自動的に行われるので、よく使うツールの1つに加えておくとよいでしょう。SOCでは、アナリストの負荷が常に重く、インシデント1件ずつにあまり時間をかけられないため、少しでも処理時間を短縮できるツールは歓迎すべきです。そのような場面では、このプラグインが本領を発揮します。
脆弱性検索
また少し異なるアプローチとして、脆弱性のあるコードの検索の自動化が挙げられます。アプリケーションを逆コンパイルした疑似コードをチャットボットが読み取り、脆弱である可能性のある箇所を特定します。さらに、脆弱性を実証するためのPythonコード(PoC)を生成することもできます。もちろん、脆弱性の検索でもPoCコードの作成でも、ボットはさまざまなミスをする可能性があります。しかし、このボットは現状すでに、攻撃側にも防御側にも役に立つものとなっています。
セキュリティに関するコンサルティング
ChatGPTはサイバーセキュリティに関するインターネット上の人々の発言を抽出できるので、このテーマに関してそれらしいアドバイスが得られます。ただし、チャットボットの発言はすべてそうですが、その出典が不明であるため、役立つヒントが並べられても、そのうちの10件に1件程度は役に立たない可能性があります。それでも、たとえば次のスクリーンショットにある内容はいずれも適切なものです。
フィッシングとビジネスメール詐欺(BEC)
自然で説得力のあるテキストを出力できるのが、GPT-3およびChatGPTの強みです。チャットボットを利用して自動化したスピアフィッシングは、おそらくすでに行われているでしょう。一斉送信のフィッシングメールの大きな問題は、どこか不自然で、あまりに一般的な内容で、受信者に宛てたメールには見えない点です。スピアフィッシングでは、人間のサイバー犯罪者が一人一人ターゲットに向けてメールを書くのでコストがかかります。そのため、標的型攻撃でのみ用いられる手法です。ただChatGPTの誕生で、状況は激変します。ChatGPTによって、相手に応じたもっともらしいメールを工業製品並みの規模で生産できるようになるからです。ただし、必要な要素をすべて盛り込んだメールを作成するには、チャットボットに非常に細かな指示をする必要があります。
とはいえ、一般的なフィッシング攻撃は通常、メールのやり取りを重ねて、徐々に対象者の信用を得ていくものです。2通目、3通目、n通目とやり取りを重ねるほど、サイバー攻撃者は、ChatGPTによって大幅に時間を節約できることになります。チャットボットは会話の流れを記憶できるので、後続のメールは、シンプルな短いプロンプトでうまく作れるようになります。
しかも、対象者からの返信を簡単にモデルに取り込むことができるので、もっともらしい返信を瞬時に作成できます。
攻撃者が使用する手段の一つに、定型的な文章によるやり取りがありますが、特定の形式のサンプルを少し与えれば、それだけで、チャットボットはそれ以降のメッセージにその形式を適用できます。これによって、従業員同士のやり取りに見えるようなもっともらしい偽のメールを作成することが可能になります。残念ながら、将来的にフィッシング攻撃が成功する確率は上がっていくでしょう。そして、チャットボットは電子メールだけでなくSNSやメッセンジャー用にも説得力のあるメッセージを作成することもできるようになるでしょう。
この状況に、私たちはどのように対抗すべきでしょうか。コンテンツ分析の専門家たちは、チャットボットのテキストを検出するためのツールを開発しています。ただ、そのようなフィルターにどの程度の効果があるかが明らかになるには時間がかかるでしょう。現時点でお勧めできるのは、基本的な二つの方法(警戒を怠らないこととサイバーセキュリティ意識向上トレーニングを受けること)です。さらにもう一つの新たな方法は、ボットで生成されたテキストを見抜くスキルを身に着けることです。数学的特徴を目で見て認識するのは困難ですが、ちょっとした文体の不自然さや違和感によってロボットを見分けることができます。こちらのゲームでは、人間の書いたテキストと機械の書いたテキストを見分けられるかどうかを試してみることができます。