「Code Insight」「Crowdsourced AI」とは
VirusTotalの「Code Insight」とは、RSA Conference 2023 において発表された新機能で、AIによりプログラムやスクリプトの挙動を分析し、潜在的に悪意のあるコードか、具体的にどのような挙動をするのかに関する説明を提供する機能です。「Code Insight」はGoogleのAIモデルを用いてファイルを分析しますが、「Code Insight」実装後まもなくして、サードパーティの各種AIモデルによる分析機能も追加され、これらAIによる分析機能が「Crowdsourced AI」として再定義されました。つまり、「Code Insight」は「Crowdsourced AI」の一部と言えます。
VT Intelligence の DETECTタブ で確認出来るセキュリティベンダーの解析ではマルウェア名や悪性か否かの判定が確認出来ましたが、具体的にどのような危険性があるかについての説明がありません。また BEHAVIOIRタブ で確認出来る分析結果は、内容を理解するには専門的な知見が必要となります。
「Crowdsourced AI」による分析は、記事執筆の2024年4月時点ではまだ一部のファイル種別にしか対応していません(注:2024年5月、RSA Conference 2024にて、Gemini 1.5 Proが発表され、対象ファイルが拡大されるものと考えられます。[参考] 弊社ブログ Google Threat Intelligence のリリースについて )が、「Crowdsourced AI」はDETECTタブやBEHAVIOURタブの内容を補完するものとして、「具体的にどのような処理を行い、どのような危険性があるか」について分かりやすい自然文で説明します。そのため、セキュリティに関する専門的な知見がない一般ユーザーであっても比較的理解しやすいものとなっています。
また、「Crowdsourced AI」で使用されるAIモデルには複数あり、PowerShellなどのスクリプトに特化したもの、Microsoft Office文書のマクロを詳しく分析できるものなど、それぞれ特徴があります。
AIモデル(機能名) | 提供元 | 概要 |
---|---|---|
Code Insight | スクリプトやマクロ、一部の実行形式バイナリがどのように動作するか分析し、自然言語で説明を行う。
このAIモデルに関するメーカーブログの記事: |
|
Hispasec | Hispasec(ヒスパセック) スペインのサイバーセキュリティ関連企業 |
マクロを含むMicrosoft Office文書の分析に非常に強い。
このAIモデルに関するメーカーブログの記事: |
NICS Lab | NICS Lab(ニックスラボ) スペインにあるマラガ大学のセキュリティ研究グループ |
PowerShellのコードと挙動、潜在的な脅威を分析、判定することができる。
このAIモデルに関するメーカーブログの記事: |
ByteDefend Cyber Lab | ByteDefend Cyber Lab(バイトディフェンド サイバーラボ) イスラエルにあるアリエル大学の「サイバーイノベーションセンター」に属する研究室 |
マクロを含むMicrosoft Office文書の分析に特化している。
このAIモデルに関するメーカーブログの記事: |
現在提供されているAIモデルは上記の表になりますが、他のAIモデルも今後追加されていくものと思われます。
この記事では、各AIモデルについて実際のサンプルの結果を示しつつ、これらを利用することによって得られるメリットをご紹介します。
なおAIによるコード解析は、VirusTotal Enterprise と Mandiant Advantage Threat Intelligence を統合してさらに各種機能を追加・強化した Google Threat Intelligence で大きく強化されています。本製品の概要は以下のページで確認可能です。
各AIモデルについての紹介
ここでは、前述の各AIモデル(Code Insight、Hispasec、NICS Lab、ByteDefend Cyber Lab)を紹介していきます。
なお、各AIモデルの紹介の中で VT Intelligence の Intelligence Search から利用できる検索クエリを記載していますが、VirusTotal無償版では下図のように検索結果が出力されません。
こちらの記事で紹介する検索クエリによる検索結果を閲覧するためには、有償契約が必要になります。
(詳細はお問い合わせください)
Code Insight
「Code Insight」はGemini(旧 Duet AI)を基にしています。
Gemini はGoogleドキュメントやGmailなど、Googleの各種サービスと組合せて支援ツールとして提供される生成AIです。VirusTotal Code Insightにおいては、スクリプトなどで潜在的に悪意ある動作を行うコードについて分析・説明を行います。サイバーセキュリティに特化したセキュリティ大規模言語モデル(LLM)である「Sec-PaLM」により、コードがどのように動作するかを自然言語で説明することができます。
また、他のAIモデルがマクロやスクリプトに特化しているのに対し、Code Insightはマクロやスクリプト、バッチファイルなど様々なファイル種別に対応しています。
本記事執筆時点(2024年4月)においては実行形式バイナリについてはファイルサイズの小さいごく一部にのみ対応しておりますが、今後はよりサイズの大きなバイナリやより多くの種類のファイルに対応していくものとみられます。
例えば下記は、情報窃取系マルウェアの分析結果です。
「Code Insight」の見出しの後に、このマルウェアに関する具体的な説明が自然言語で解説されています。上記の説明文を翻訳したものが下記になります。
このコードは、様々なアプリケーションとシステム情報を狙う情報窃取ツールです。まず管理者権限があるかどうかを確認し、なければプログラムを再度管理者権限で実行するよう求めます。一度管理者権限を得ると、以下の情報を収集します。
- IPアドレス
- インストールされたプログラムのリスト
- システム情報(ハードドライブの空き容量、サービスタグ、CPU情報など)
- 感染マシンのデスクトップのスクリーンショット
- ユーザー名、IPアドレス、現在の時刻と日付
- Discordトークン
- プロダクトキー
- Chrome、Opera、Braveブラウザのクッキー、履歴、ショートカット、ブックマーク、ログインデータ
次にコードは収集した全ての情報をDiscordのWebhookに送信します。最後に、作成した一時ファイルをすべて削除します。
このように、「どのような情報が窃取されるのか」「窃取された情報がどこに送信されるか」など非常に分かりやすく説明がされています。
Code Insight によって分析された説明文は VT Intelligence の Intelligence Search からも検索クエリ「codeinsight:“keyword”」で検索可能です。
例えば下記は検索クエリ「codeinsight:“emotet”」を指定して、「Emotet」に関する言及があるものを検索しています。
Hispasec
「Hispasec」(ヒスパセック)はスペインのサイバーセキュリティ企業です。
この「Hispasec」から提供されているAIモデルはマクロを含むMicrosoft Office文書の分析に特化しており、マクロの具体的な処理を説明したり、悪意あるものであるか判定したりと、マクロの分析に非常に強いものとなっています。
例えば下記は、不審なPowerPoint文書のVBAマクロに含まれるPowerShellスクリプトについて説明したものです。
先ほどの Code Insight の説明文と比較すると分かりますが、最初に判定結果として「悪性(Malicious)」とし、それに続いて分析結果の説明が行われています。
上記の説明文を翻訳したものが下記になります。
提供されたマクロコードには、「悪性」と分類される可能性の高い、いくつかの悪意のある動作の兆候が示されています。主な懸念点は以下の通りです。
- 外部リソースへのアクセスにPowerShellを使用:このマクロには、VBA(Visual Basic for Applications)サブルーティン内にPowerShellコマンドが埋め込まれています。具体的には、Invoke-WebRequest -Uri http://example.comコマンドが使用されています。このコマンドは、Webサーバーに HTTP または HTTPS リクエストを送信してコンテンツを取得できることで知られています。マクロのコンテキストでは、この機能を悪用して追加のペイロードをダウンロードしたり、コマンド&コントロールサーバーと通信したりすることができます。これらは両方ともマルウェアの一般的な動作です。
- ユーザー入力によってトリガーされる実行:PowerShellコマンドは、TextBoxコントロールに入力されたテキストの長さが4文字に達したときに実行されます。この動作は、ユーザーの操作をシミュレートしない簡単な自動解析ツールを回避しようとしていることを示唆しています。有害な行為を実行する前に特定のユーザー入力を必要とすることで、マクロは予備的なセキュリティスクリーニング中の検出の可能性を低くしています。
- ステルス実行:PowerShellスクリプトを実行するための Shell str, vbHideの使用は、スクリプトの実行をユーザーから隠そうとする意図を示しています。vbHideパラメーターはウィンドウを非表示にするため、疑惑を最小限に抑え、感染システム上の悪意のあるコードの存在を長引かせる可能性があります。
- 正当な機能の正当化の欠如:このマクロは、ドキュメントの予想される機能に関連する正当な目的を持っていないようです。代わりに、非常に特定のユーザー操作時にPowerShellコマンドを実行するように設計されているだけで、これは悪意のあるマクロの一般的な特徴です。
- さらなる悪意のある行為のリスク:マクロの直接的な行為はWebリクエストを行うことですが、このようなマクロで構築されたインフラストラクチャは簡単に悪質な目的で拡張される可能性があります。例えば、http://example.com URLはマルウェアをホストするURLに置き換えられ、ユーザーの知らないうちにマルウェアのダウンロードと実行につながる可能性があります。
このような点から、このマクロは高い疑念を持って扱われるべきです。ステルス実行、有害な行為を引き起こす可能性のあるユーザー操作への依存、外部リソースとやり取りするためのPowerShellの使用を組み合わせた点は、すべて悪意を示唆しています。組織は、このような脅威を検出して緩和するための、セキュリティソリューションが十分に備わっていることを確認する必要があります。これには、疑わしいマクロ活動を特定してブロックできるような挙動ベースの検出メカニズムを含めるべきです。
Code Insight と同様に、 Hispasec によって分析された説明文は VT Intelligence の Intelligence Search から検索可能です。
例えば下記は検索クエリ「hispasec_ai_analysis:“malicious command”」を指定して、「悪意あるコマンド(malicious command)」に関する言及があるものを検索しています。
また、検索クエリ「hispasec_ai_verdict:“malicious”」で検索することで、Hispasec が「悪性」と判定したものを検索します。
なお「malicious」の他に、「suspicious(疑わしい)」や「benign(無害)」も指定可能です。
NICS Lab
「NICS Lab」(ニックスラボ)はスペインにあるマラガ大学のセキュリティ研究グループです。この「NICS Lab」から提供されているAIモデルは、PowerShellのコードと挙動を分析し、具体的な処理内容の説明や潜在的脅威の判定をすることが出来ます。
例えば下記は、暗号資産やシステム情報、ウェブカメラの画像を収集し、Discordに送信する悪意あるPowerShellスクリプトについて説明したものです。
先ほどの Hispasec と同様に最初に判定結果として「悪性(Malicious)」とし、それに続いて分析結果の説明が行われています。
上記の説明文を翻訳したものが下記になります。
このコードはさまざまな悪意のある活動を実行するPowerShellスクリプトのようです。管理者権限をチェックし、コンソールウィンドウを非表示にし、ハードウェアの詳細、ネットワーク情報、インストールされているアンチウイルスソフトウェアなど、システムに関する情報を取得する機能が含まれています。このスクリプトには、Telegram、Steam、Minecraftなどの人気のあるメッセージングアプリやゲームアプリに関連するファイルやディレクトリを検索する機能もあり、それらのアプリの設定ファイルやデータベースなど機密データをコピーして盗もうとします。さらに、Armory、Electrum、Bitcoin Coreなどの暗号資産ウォレットのデータを盗む機能も含まれており、ウォレットファイルや関連データを指定のフォルダにコピーします。このスクリプトは、特定のフォルダを圧縮し、Discord webhookに送信することでデータ漏洩も試みます。IPアドレス、言語、ユーザー名、ホスト名、アンチウイルスソフトウェア、ハードウェアの詳細情報、ディスク情報などのシステム情報を収集し、スクリーンショットやウェブカメラの画像も取得します。加えて、特定のセキュリティツールに関連するプロセスを終了させ、関連ファイルを削除する機能も備えています。全体的に、このスクリプトはデータ窃取、プロセス終了、窃取データの漏洩など、多数の悪意あるふるまいを示しており、影響を受けるシステムのセキュリティとプライバシーに深刻なリスクをもたらします。
Hispasec と同様に、NICS Lab によって分析された説明文は VT Intelligence の Intelligence Search から検索可能です。
例えば検索クエリ「nics_ai_analysis:“keylogger”」を指定して、キー入力を窃取する「キーロガー」に関する言及があるものを検索できます。
また、Hispasec と同様に検索クエリ「nics_ai_verdict:“malicious”」で検索することで、「malicious(悪性)」や「suspicious(疑わしい)」、「benign(無害)」と NICS Lab の判定フラグを指定した検索も可能です。
ByteDefend Cyber Lab
「ByteDefend Cyber Lab」(バイトディフェンド サイバーラボ)は、イスラエルのアリエル大学内にある「Cyber Innovation Center」に属する研究室です。
このAIモデルは、同大学コンピューターサイエンス学部のRan Dubin博士と「ByteDefend Cyber Lab」によって開発され、マクロを含むMicrosoft Office文書の分析に特化し具体的な処理を説明したり、悪意あるものであるか判定することができます。
例えば下記は、不審なExcel文書のVBAマクロについて説明したものです。
最初に判定結果として「悪性(Malicious)」とし、それに続いて分析結果の説明が行われています。
上記の説明文を翻訳したものが下記になります。
この VBA マクロコードは、悪意のある行為をいくつか実行しています。明確に悪意のある行為は次のとおりです。
- ユーザー指定の文字列とハードコーディングされた URL を連結して構築された URL に対して HTTP GET リクエストを行っています。これにより、攻撃者が被害者のマシン上で任意のコードを実行できる可能性があります。
- CreateObject 関数を使用して WScript.Network オブジェクトを作成しています。これにより、コードはユーザーのコンピューター名、ドメイン、ユーザー名にアクセスできます。この情報は、ユーザーとそのシステムを特定するために悪用される可能性があります。
- CustomDocumentProperties 関数を使用して、ドキュメントの “adcUuid” という名前のカスタムプロパティにアクセスしています。これは、ユーザーの活動を追跡し、機密情報を収集するために悪用される可能性があります。
- GetMyMACAddress 関数を使用して、ユーザーのネットワークアダプターの MAC アドレスを取得しています。これは、ユーザーの活動を追跡し、機密情報を収集するために悪用される可能性があります。
- GetIPAddress 関数を使用して、ユーザーのネットワークアダプターの IP アドレスを取得しています。これは、ユーザーの活動を追跡し、機密情報を収集するために悪用される可能性があります。
全体として、このコードはユーザーとそのシステムに関する機密情報を収集しようとしており、悪意のある目的で使用される可能性があります。Microsoft Office 文書の VBA マクロを使用する際は注意が必要であり、システムやデータを潜在的な攻撃から保護するための対策を講じることが重要です。
このVBAマクロに関して言えば、Hispasec よりも ByteDefend Cyber Lab の方がより潜在的な悪用の可能性を危険視している事になります。 このように複数のAIモデルによって判定が異なるのは、それぞれのAIモデルが想定する状況が異なる為と思われます。
単一のAIモデルの分析結果では不十分な場合でも、複数のAIモデルによる異なる結果を比較することで、人間のアナリストが最終的な判断を下す上で十分な情報が得られることになります。
ByteDefend Cyber Labも他のAIモデルと同様、VT Intelligence の Intelligence Search から検索可能です。
例えば検索クエリ「bytedefend_ai_analysis:“malicious command”」を指定して、「悪意あるコマンド(malicious command)」に関する言及があるものを検索したり、検索クエリ「bytedefend_ai_verdict:“malicious”」で検索することで、ByteDefend Cyber Lab が「悪性」と判定したものを検索します。
なお「malicious」の他に、「suspicious(疑わしい)」や「benign(無害)」も指定可能です。
Crowdsource AI 関連の検索演算子(search modifier)一覧
VT Intelligence の Intelligence Search から検索する際に使うことができる検索演算子(search modifier)の例を下記にまとめます。
なお、「crowdsourced_ai_analysis:」および「crowdsourced_ai_verdict:」を使用すると、複数のAI(Code Insight、Hispasec AI、NICS Lab AI)の分析結果から検索が出来ます。
検索演算子 | 説明 | 使用例 |
---|---|---|
codeinsight:“keyword” | 指定したワードが「Code Insight」の分析結果による説明文に含まれるものを検索する。 | codeinsight:“emotet” |
hispasec_ai_analysis:“keyword” | 指定したワードが「Hispasec」による分析結果の説明文に含まれるものを検索する。 | hispasec_ai_analysis:“malicious command” |
hispasec_ai_verdict:“flag” | 「Hispasec」が判定した下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
hispasec_ai_verdict:malicious |
nics_ai_analysis:“keyword” | 指定したワードが「NICS Lab」による分析結果の説明文に含まれるものを検索する。 | nics_ai_analysis:“malicious command” |
nics_ai_verdict:“flag” | 「NICS Lab」が判定した下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
nics_ai_verdict:malicious |
bytedefend_ai_analysis:“keyword” | 指定したワードが「ByteDefend Cyber Lab」による分析結果の説明文に含まれるものを検索する。 | bytedefend_ai_analysis:“malicious command” |
bytedefend_ai_verdict:“flag” | 「ByteDefend Cyber Lab」が判定した下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
bytedefend_ai_verdict:malicious |
crowdsourced_ai_analysis:“keyword” | 指定したワードが、複数のAIによる分析結果の説明文に含まれるものを検索する。 | crowdsourced_ai_analysis:“malicious command” |
crowdsourced_ai_verdict:“flag” | 複数のAIの判定により、下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
crowdsourced_ai_verdict:malicious |
Crowdsourced AI の活用方法例
近年、マルウェアのセキュリティ検知回避技術の向上により、既存のセキュリティベンダーによる判定をすり抜け、「無害」(「悪性」検知の件巣が「0件」)となる「検知漏れ(False Negative)」が少なくない頻度で発生します。
「Crowdsourced AI」の複数AIによる分析は、既存のセキュリティベンダーで発見できなかった「悪性」のマルウェアを発見できるなど、「検知漏れ」を回避する事が出来ます。
例えば下記は、セキュリティベンダーがすべて「無害」と判定したものの、「Crowdsourced AI」が「悪性」と判定したものの例です。
複数のセキュリティベンダーが「No security vendors and no sandboxes flagged this file as malicious(このファイルをセキュリティベンダーやサンドボックスで悪性と判定したものはありません)」としているものを、「Crowdsourced AI」で「悪性」として判定できています。
このように「Crowdsourced AI」を活用することで、マルウェアによる被害の内容や対策方法について詳しく知ることが出来、また既存のセキュリティベンダーでの検知漏れも回避する事が出来ますので、是非活用してみてください。
「Intelligence Search」におけるCrowdsource AI関連の検索クエリまとめ
VT Intelligence の Intelligence Search から検索する際の検索クエリを下記にまとめます。
なお、「crowdsourced_ai_analysis:」および「crowdsourced_ai_verdict:」を使用すると、複数のAI(Code Insight、Hispasec AI、NICS Lab AI)の分析結果から検索が出来ます。
検索クエリ | 説明 | 使用例 |
---|---|---|
codeinsight:”keyword” | 指定したワードが「Code Insight」の分析結果による説明文に含まれるものを検索する。 | codeinsight:”emotet” |
hispasec_ai_analysis:”keyword” | 指定したワードが「Hispasec」による分析結果の説明文に含まれるものを検索する。 | hispasec_ai_analysis:”malicious command” |
hispasec_ai_verdict:”flag” |
「Hispasec」が判定した下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
hispasec_ai_verdict:malicious |
nics_ai_analysis:”keyword” | 指定したワードが「NICS Lab」による分析結果の説明文に含まれるものを検索する。 | nics_ai_analysis:”malicious command” |
nics_ai_verdict:”flag” |
「NICS Lab」が判定した下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
nics_ai_verdict:malicious |
bytedefend_ai_analysis:”keyword” | 指定したワードが「ByteDefend Cyber Lab」による分析結果の説明文に含まれるものを検索する。 | bytedefend_ai_analysis:”malicious command” |
bytedefend_ai_verdict:”flag” |
「ByteDefend Cyber Lab」が判定した下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
bytedefend_ai_verdict:malicious |
crowdsourced_ai_analysis:”keyword” | 指定したワードが、複数のAIによる分析結果の説明文に含まれるものを検索する。 | crowdsourced_ai_analysis:”malicious command” |
crowdsourced_ai_verdict:”flag” |
複数のAIの判定により、下記フラグが付いているものを検索する。 ・malicious(悪性) ・suspicious(疑わしい) ・benign(無害) |
crowdsourced_ai_verdict:malicious |