(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-04
(45)【発行日】2024-09-12
(54)【発明の名称】推定無罪(IUPG)、敵対的耐性および偽陽性耐性のあるディープラーニングモデル
(51)【国際特許分類】
G06F 21/56 20130101AFI20240905BHJP
【FI】
G06F21/56 320
(21)【出願番号】P 2022574364
(86)(22)【出願日】2021-06-03
(86)【国際出願番号】 US2021035699
(87)【国際公開番号】W WO2021247860
(87)【国際公開日】2021-12-09
【審査請求日】2023-02-01
(32)【優先日】2020-06-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-26
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】517392861
【氏名又は名称】パロ アルト ネットワークス,インコーポレイテッド
【氏名又は名称原語表記】Palo Alto Networks,Inc.
【住所又は居所原語表記】3000 Tannery Way,Santa Clara,California 95054,United States of America
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】クット,ブロディー ジェイムズ
(72)【発明者】
【氏名】スタロフ,オレクシー
(72)【発明者】
【氏名】ゾウ,ユチャン
(72)【発明者】
【氏名】ヒューレット,ウィリアム,レディントン,セカンド
【審査官】平井 誠
(56)【参考文献】
【文献】米国特許出願公開第2019/0213325(US,A1)
【文献】特開2017-162244(JP,A)
【文献】特開2016-091549(JP,A)
【文献】特開2018-160172(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
プロセッサおよびメモリを含む、システムであって、
前記プロセッサは、
サンプルの静的分析のために1つ以上の推定無罪(IUPG)モデルを含むセットを、ネットワーク接続されたデバイスに保管し、
前記サンプルに関連付けられたコンテンツの静的分析を実行し、前記コンテンツの前記静的分析の実行は、少なくとも1つの保管されたIUPGモデルの使用を含んでおり、
少なくとも部分的に前記サンプルに関連付けられた前記コンテンツの前記静的分析に基づいて、前記サンプルが悪意あるものであると判断し、かつ、前記サンプルが悪意あるものであるとの判断に応答して、セキュリティポリシに基づいてアクションを実行する、
ように構成されており、
前記IUPGモデルは、敵対的耐性および偽陽性耐性のあるディープラーニングモデルであり、
前記メモリは、
前記プロセッサに結合され、かつ、前記プロセッサに命令を提供するように構成されている、
システム。
【請求項2】
前記プロセッサは、さらに、前記サンプルに関連付けられたファイルタイプを決定するように構成されている、
請求項1に記載のシステム。
【請求項3】
前記プロセッサは、前記サンプルに関連付けられたファイルタイプを決定し、かつ、前記決定された前記サンプルに関連付けられたファイルタイプに基づいて、1つ以上のIUPGモデルの前記セットから選択する、ように構成されている、
請求項
2に記載のシステム。
【請求項4】
前記プロセッサは、さらに、少なくとも1つの更新された分類モデルを受信するように構成されている、
請求項1に記載のシステム。
【請求項5】
前記プロセッサは、さらに、別のプログラミング言語について別のIUPGモデルを受信するように構成されている、
請求項1に記載のシステム。
【請求項6】
前記プロセッサは、さらに、前記IUPGモデルおよび別のタイプのCNNベースの分類器を使用して、前記サンプルの静的分析を実行するように構成されている、
請求項1に記載のシステム。
【請求項7】
データ装置によって実施される方法であって、
前記データ装置により、サンプルの静的分析のために1つ以上の推定無罪(IUPG)モデルを含むセットを保管するステップと、
前記データ装置により、前記サンプルに関連付けられたコンテンツの静的分析を実行するステップであり、
前記コンテンツの前記静的分析の実行は、少なくとも1つの保管されたIUPGモデルの使用を含んでいる、
ステップと、
前記データ装置により、少なくとも部分的に前記サンプルに関連付けられた前記コンテンツの前記静的分析に基づいて、前記サンプルが悪意あるものであると判断するステップと、
前記データ装置により、前記サンプルが悪意あるものであるとの判断に応答して、セキュリティポリシに基づいてアクションを実行するステップと、
を含み、
前記IUPGモデルは、敵対的耐性および偽陽性耐性のあるディープラーニングモデルである、
方法。
【請求項8】
前記方法は、さらに、
前記データ装置により、前記サンプルに関連付けられたファイルタイプを決定するステップ、
を含む、請求項
7に記載の方法。
【請求項9】
前記方法は、さらに、
前記データ装置により、前記サンプルに関連付けられたファイルタイプを決定するステップと、
前記データ装置により、前記決定された前記サンプルに関連付けられたファイルタイプに基づいて、1つ以上のIUPGモデルの前記セットから選択するステップと、
を含む、請求項
8に記載の方法。
【請求項10】
前記方法は、さらに、
前記データ装置により、少なくとも1つの更新されたIUPGモデルを受信するステップ、
を含む、請求項
7に記載の方法。
【請求項11】
前記方法は、さらに、
前記データ装置により、別のプログラミング言語について別のIUPGモデルを受信するステップ、
を含む、請求項
7に記載の方法。
【請求項12】
前記方法は、さらに、
前記データ装置により、前記IUPGモデルおよび別のタイプのCNNベースの分類器を使用して、前記サンプルの静的分析を実行するステップ、
を含む、請求項
7に記載の方法。
【請求項13】
有形のコンピュータ可読記憶媒体に保管されており、コンピュータ命令を含むコンピュータプログラムであって、前記命令が実行されると、
サンプルの静的分析のために1つ以上の推定無罪(IUPG)モデルを含むセットを保管するステップと、
前記サンプルに関連付けられたコンテンツの静的分析を実行するステップであり、
前記コンテンツの前記静的分析の実行は、少なくとも1つの保管されたIUPGモデルの使用を含んでいる、
ステップと、
少なくとも部分的に前記サンプルに関連付けられた前記コンテンツの前記静的分析に基づいて、前記サンプルが悪意あるものであると判断するステップと、
前記サンプルが悪意あるものであるとの判断に応答して、セキュリティポリシに基づいてアクションを実行するステップと、
を実施し、
前記IUPGモデルは、敵対的耐性および偽陽性耐性のあるディープラーニングモデルである、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、敵対的耐性(adversary resistant)および偽陽性耐性(false positive resistant)あるのディープラーニングモデルに関する。
【0002】
本出願は、2020年6月4日に出願された、タイトルが“INNOCENT UNTIL PROVEN GUILTY (IUPG):BUILDING FALSE POSITIVE RESISTANT DEEP LEARNING MODELS”である米国仮特許出願第63/034,843号について優先権を主張するものであり、それは、全ての目的において、参照により本明細書に組み込まれている。
【背景技術】
【0003】
マルウェア(malware)は、一般的に、悪意あるソフトウェア(例えば、敵対的、侵入的、かつ/あるいは、その他の望ましくない様々なソフトウェアを含む)を参照するために使用される総称である。マルウェアには、コード、スクリプト、アクティブコンテンツ、その他のソフトウェアの形態であり得る。マルウェアの実施例は、コンピュータやネットワークの動作を妨害すること、及び/又は、プロプライエタリ(proprietary)な情報(例えば、個人情報、財務情報、及び/又は、知的財産関連情報といった、機密情報)を盗むこと、及び/又は、プライベート/プロプライエタリなコンピュータシステム及び/又はコンピュータネットワークにアクセスすること、を含む。残念ながら、マルウェアの検出と軽減に役立つ技術が開発されると、悪意ある作者は、そうした努力を回避する方法を見つける。従って、マルウェアを特定して軽減するための技術の改善が継続的に必要とされている。
【図面の簡単な説明】
【0004】
本発明の様々な実施形態は、以下の詳細な説明および添付図面に開示されている。
【
図1】
図1は、悪意あるアプリケーション(「マルウェア」)が検出され、かつ、害を及ぼすことが防止される環境の例を示している。
【
図2A】
図2Aは、データ装置(data appliance)の一実施例を示している。
【
図2B】
図2Bは、データ装置の一実施形態の論理コンポーネントに係る機能図である。
【
図3】
図3は、サンプルを分析するためのシステムに含めることができる論理コンポーネントの一例を示している。
【
図4】
図4は、脅威エンジン(thread engine)の一実施例の部分を示している。
【
図5A】
図5Aは、いくつかの実施例に従って、抽象ネットワークNにおける拡張されたIUPGコンポーネントのブロック図である。
【
図5B】
図5Bは、いくつかの実施例に従って、IUPGネットワークを使用する一例を示している。
【
図5C】
図5Cは、オンターゲットおよびオフターゲットのサンプルについて望ましい力(force)を示している。
【
図6】
図6は、いくつかの実施例に従って、(A)MNISTとファッションMNIST、(B)JS、および、(C)URLに使用される関数Nを示している。
【
図7A】
図7Aは、全ての非良性クラスにわたり、悪意あるJS分類テストセットμ±SEM FNRを含む、表1を示している。
【
図7B】
図7Bは、画像(image)分類の非ノイズテストセットμ±SEMのエラー割合を含む、表2を示している。
【
図7C】
図7Cは、テストセットがガウスノイズ画像を含み、かつ、モデルがノイズなしでトレーニングされる場合に、画像分類のテストセットμ±SEMのエラー割合を含む、表3を示している。
【
図7D】
図7Dは、悪意あるURL分類のテストセットFNRを含む、表4を示している。
【
図7E】
図7Eは、VTSによって編成された、0.005%のテストセットFPR設定された閾値を用いた検出を含む、表5を示している。
【
図8】
図8は、OOD攻撃シミュレーションの結果を示している。
【
図9】
図9は、アペンド攻撃シミュレーションの結果を含む、表6を示している。
【
図10A】
図10Aは、正しく分類されたテスト画像における精度と、それに対するFGSM摂動(perturbations)のスケーリング係数を示している。
【
図10B】
図10Bは、正しく分類されたテスト画像における精度と、それに対するFGSM摂動のスケーリング係数を示している。
【
図11】
図11は、いくつかの実施例に従って、Uベクトル空間のt-SNE可視化の一例である。
【
図12A】
図12Aは、既存のマルウェア検出ソリューションによる検出を回避することができるアペンド攻撃の様々な例を示している。
【
図12B】
図12Bは、既存のマルウェア検出ソリューションによる検出を回避することができるアペンド攻撃の様々な例を示している。
【
図12C】
図12Cは、既存のマルウェア検出ソリューションによる検出を回避することができるアペンド攻撃の様々な例を示している。
【
図13】
図13は、いくつかの実施形態に従って、マルウェアJavaScript分類のためのIPUGフレームワークを示している。
【
図14】
図14は、いくつかの実施形態に従って、マルウェア分類について推定無罪(IUPG)モデルを使用してサンプルの静的分析を実行するプロセスの一例である。
【
図15】
図15は、いくつかの実施形態に従って、マルウェア分類について推定無罪(IUPG)モデルを生成するプロセスの一例である。
【発明を実施するための形態】
【0005】
本発明は、装置、システム、物事の組成、コンピュータ可読記憶媒体において具現化されたコンピュータプログラム製品、及び/又は、プロセッサに結合されたメモリに保管され、かつ/あるいは、メモリによって提供される命令を実行するように構成されたプロセッサといった、プロセッサを含む、様々な方法で実施することができる。この仕様書において、これらの実装、または本発明がとり得る他の形式は、技法(techniques)として称される。一般的に、開示されるプロセスのステップの順序は、本発明の範囲内で変更することができる。特に断りのない限り、タスクを実行するように構成されていると説明されるプロセッサまたはやメモリといったコンポーネントは、ある時点でタスクを実行するように一時的に構成されている一般的なコンポーネント、または、タスクを実行するように製造された特定のコンポーネントとして実装され得る。ここにおいて使用されるように、「プロセッサ(“processor”)」という用語は、コンピュータプログラム命令といった、データを処理するように構成された1つ以上のデバイス、回路、及び/又は、処理コアを参照する。
【0006】
本発明の1つ以上の実施形態の詳細な説明が、以下に、本発明の原理を説明する添付の図と共に提供される。本発明は、そうした実施形態に関連して説明されるが、本発明は、任意の実施形態についても限定されるものではない。本発明の範囲は、請求項によってのみ限定されるものであり、そして、本発明は、多数の代替、修正、および均等物を包含する。本発明について完全な理解を提供するために、以下の説明において、多数の具体的な詳細が記載されている。これらの詳細は、例示の目的で提供されるものであり、そして、本発明は、これらの具体的な詳細の一部または全部を用いることなく、請求項に従って実施され得る。明確にするために、本発明に関連する技術分野で知られている技術資料は、本発明が不必要に不明瞭にならないように、詳細には説明されていない。
【0007】
ファイアウォール技術の概要
【0008】
ファイアウォールは、一般的に、不正アクセス(unauthorized access)からネットワークを保護し、一方で、承認された(authorized)通信がファイアウォールを通過するのを許可している。ファイアウォールは、典型的には、デバイスまたは一式のデバイス、または、ネットワークアクセスのためのファイアウォール機能を提供する、デバイス上で実行されソフトウェアである。例えば、ファイアウォールは、デバイス(例えば、コンピュータ、スマートフォン、または、他のタイプのネットワーク通信可能デバイス)のオペレーティングシステムの中へ統合することができる。ファイアウォールは、また、コンピュータサーバ、ゲートウェイ、ネットワーク/ルーティングデバイス(例えば、ネットワークルータ)、および、データ装置(例えば、セキュリティ装置または他のタイプの特殊目的のデバイス)上のソフトウェアとして、統合され、もしくは、実行することもできる。
【0009】
ファイアウォールは、典型的に、一式のルールに基づいてネットワーク送信を拒否または許可する。これら一式のルールは、しばしば、ポリシ(policy)として参照される。例えば、ファイアウォールは、望まれない(unwanted)外部トラフィックが保護されるデバイスに到達するのを妨げるために、一式のルールまたはポリシを適用することによって、インバウンドトラフィックをフィルタリングすることができる。ファイアウォールは、また、一式のルールまたはポリシ(例えば、許可、ブロック、モニタリング、通知またはログ、及び/又は、他のアクションは、ここにおいて説明されような、様々なクライテリアに基づいて、トリガされ得る、ファイアウォールルールまたはファイアウォールポリシにおいて指定することができる)を適用して、アウトバウンドトラフィック(outbound traffic)をフィルタリングすることもできる。ファイアウォールは、また、一式のルールまたはポリシを同様に適用することによって、ローカルネットワーク(例えば、イントラネット)トラフィックをフィルタリングすることもできる。
【0010】
セキュリティデバイス(例えば、セキュリティ装置、セキュリティゲートウェイ、セキュリティサービス、他のセキュリティデバイス)は、様々なセキュリティ機能(例えば、ファイアウォール、マルウェア対策、侵入防止/検出、データ損失防止(DLP)、及び/又は、他のセキュリティ機能)、ネットワーク機能(例えば、ルーティング、クオリティ・オブ・サービス(QoS)、ネットワーク関連リソースのワークロードバランス、他のネットワーク機能)、及び/又は、他の機能を含むことができる。例えば、ルーティング機能は、送信元情報(例えば、IPアドレスとポート)、宛先情報(例えば、IPアドレスとポート)、および、プロトコル情報に基づくことができる。
【0011】
基本的パケットフィルタリングファイアウォールは、ネットワーク(例えば、ステートレスパケットフィルタリングファイアウォールである、パケットフィルタリングファイアウォールまたは第一世代ファイアウォール)を介して送信される個々のパケットを検査することによって、ネットワーク通信トラフィックをフィルタリングする。ステートレスパケットフィルタリングファイアウォールは、典型的に、個々のパケット自体を検査し、そして、検査されたパケットに基づいて、ルールを適用する(例えば、パケットの送信元と宛先のアドレス情報、プロトコル情報、および、ポート番号の組み合わせを使用する)。
【0012】
アプリケーションファイアウォールは、また、アプリケーション層フィルタリング(例えば、TCP/IPスタックのアプリケーションレベルで動作する、アプリケーション層フィルタリングファイアウォールまたは第二世代ファイアウォール)を実行することもできる。アプリケーション層フィルタリングファイアウォールまたはアプリケーションファイアウォールは、一般的に、所定のアプリケーションおよびプロトコル(例えば、ハイパーテキスト転送プロトコル(HTTP)を使用したWebブラウジング、ドメインネームシステム(DNS)要求、ファイル転送プロトコル(FTP)を使用したファイル転送、および、Telnet、DHCP、TCP、UDP、およびTFTP(GSS)などの他の様々なタイプのアプリケーションや他のプロトコル)を識別することができる。例えば、アプリケーションファイアウォールは、標準ポートを介して通信しようとする不正なプロトコルをブロックできる(例えば、そのプロトコルの非標準ポートを使用して忍び込もうとしている無許可/ポリシ外のプロトコルは、一般的に、アプリケーションファイアウォールを使用して識別することができる)。
【0013】
ステートフルファイアウォールは、また、状態ベースのパケット検査を実行することもでき、この検査では、各パケットが、そのネットワーク伝送のパケットフローに関連付けられた一式のパケットのコンテキスト内で検査される。このファイアウォール技法は、ファイアウォールを通過する全ての接続の記録を保持し、かつ、パケットが新しい接続の開始であるか、既存の接続の一部であるか、または、無効なパケットであるかを判断できるため、一般的に、ステートフルパケット検査と称される。例えば、接続の状態自体が、ポリシ内のルールをトリガするクライテリアの1つになり得る。
【0014】
先進または次世代ファイアウォールは、上述のように、ステートレスおよびステートフルパケットフィルタリングおよびアプリケーション層フィルタリングを実行することができる。次世代ファイアウォールは、追加的なファイアウォール技法を実行することもできる。例えば、先進ファイアウォールまたは次世代ファイアウォールとして、ときどき、称される所定の新しいファイアウォールは、ユーザおよびコンテンツ(例えば、次世代ファイアウォール)を識別することもできる。特に、所定の次世代ファイアウォールは、これらのファイアウォールが自動的に識別できるアプリケーションのリストを数千のアプリケーションに拡大している。そうした次世代ファイアウォールの例は、パルアルトネットワークス社から市販されている(例えば、パルアルトネットワークス社のPAシリーズファイアウォール)。例えば、パルアルトネットワークス社の次世代ファイアウォールは、企業が、様々な識別テクノロジーを使用して、-ポート、IPアドレス、およびパケットだけでなく-アプリケーション、ユーザ、およびコンテンツを識別および制御するのを可能にする。正確なアプリケーション識別のためのAPP-ID、ユーザ識別(例えば、ユーザまたはユーザグループ)のためのUser-ID、リアルタイムコンテンツスキャン(例えば、ウェブサーフィンの制御およびデータやファイル転送の制限)のためのContent-ID、といったものである。これらの識別テクノロジーにより、企業は、従来のポートブロックファイアウォールによって提供される従来のアプローチに従う代わりに、ビジネスに関連する概念を使用してアプリケーションの使用をセキュアに可能にする。また、次世代ファイアウォール用の特殊目的ハードウェア(専用装置などとして実装されているもの)は、一般的に、アプリケーション検査について、汎用ハードウェアにおいて実行されるソフトウェアよりも高いパフォーマンスレベルを提供する(例えば、パルアルトネットワークス社が提供するセキュリティ装置といったものであり、シングルパスソフトウェアエンジンと緊密に統合された専用の、機能固有の処理を使用し、ネットワークスループットを最大化し、一方で、レイテンシを最小限に抑えている)。
【0015】
高度または次世代のファイアウォールは、また、仮想化ファイアウォールを使用して実装することもできる。そうした次世代ファイアウォールの例は、パルアルトネットワークス社から市販されている(例えば、パルアルトネットワークス社のVMシリーズファイアウォールであり、例として、VMware(R)ESXiTMとNSXTM、Citrix(R)Netscaler SDXTM、KVM/OpenStack(Centos/RHEL、Ubuntu(R))、Amazon Web Services(AWS)を含む、様々な商用仮想化環境をサポートしている)。例えば、仮想化ファイアウォールは、類似または全く同じ次世代ファイアウォール、および、物理的なフォームファクタの装置で利用可能な高度な脅威防止機能をサポートすることができ、企業は、自身のプライベート、パブリック、およびハイブリッドのクラウドコンピューティング環境の中へ、または、環境にわたり、アプリケーションの実行をセキュアに可能にする。VMモニタリング、ダイナミックアドレスグループ、およびRESTベースのAPIといった自動化機能により、企業は、VMの変更を積極的に(proactively)モニタリングすることができ、そのコンテキストを動的に(dynamically)セキュリティポリシの中へ取り込に、それによって、VMの変更時に発生し得るポリシの遅延(policy lag)を排除している。
【0016】
例示的な環境
【0017】
図1は、悪意あるアプリケーション(「マルウェア」)が検出され、かつ、害を及ぼすことが防止される環境の例を示している。以下に詳しく説明されるように、マルウェアの分類(例えば、セキュリティプラットフォーム122によって作られるように)は、
図1に示される環境に含まれる様々なエンティティ間で、様々に共有され、かつ/あるいは、洗練され得る。そして、ここで説明される技法(techniques)を使用して、エンドポイントクライアントデバイス104-110といった、デバイスを、そうしたマルウェアから保護できる。
【0018】
「アプリケーション(“application”)」という用語は、形式/プラットフォームに関係なく、プログラム、プログラムのバンドル、マニフェスト、パッケージ、等を総称するために本明細書の全体を通じて使用されている。「アプリケーション」(ここでは「サンプル」としても称される)は、スタンドアロンファイル(例えば、ファイル名「calculator.apk」または「calculator.exe」を有する電卓アプリケーション)であってよく、そして、また、別のアプリケーションの独立したコンポーネント(例えば、電卓アプリ内に埋め込まれたモバイル広告SDKまたはライブラリ)であってもよい。
【0019】
ここにおいて使用される「マルウェア」とは、秘密にしているか否か(および、違法であるか否か)にかかわらず、十分に情報提供された場合、ユーザが承認しない/承認しないであろう動作を行うアプリケーションを指す。マルウェアの例は、トロイの木馬、ウイルス、ルートキット、スパイウェア、ハッキングツール、キーロガーな、等を含んでいる。マルウェアの一例は、エンドユーザの場所を収集して、リモートサーバに報告する、デスクトップアプリケーションである(しかし、マッピングサービスといった、ロケーションベースのサービスはユーザに提供しない)。別のマルウェアの例は、悪意あるアンドロイド(登録商標)アプリパッケージ(Android Application Package.apk、APK)ファイルであり、これは、エンドユーザに対して無料ゲームであるように見えるが、密かにSMSプレミアムメッセージを送信し(例えば、それぞれ10ドルの費用がかかる)、エンドユーザの電話代を使い果たす。別のマルウェアの例は、Apple iOSの懐中電灯アプリケーションであり、これは、ユーザの連絡先(contacts)を密かに収集して、それらの連絡先をスパム発信者(spammer)に送信する。他の形態のマルウェアも(例えば、ランサムウェア)、また、ここで説明される技法を使用して、検出/阻止することができる。さらに、悪意あるJavaScriptソースコードを検出するために生成されるものとして、ここでは、特徴ベクトル(feature vectors)が説明されているが、ここで説明される技法は、また、他のタイプのソースコード(例えば、HTML及び/又は他のプログラミング/スクリプト言語)の特徴ベクトルを生成するために、様々な実施形態においても使用することができる。
【0020】
ここで説明される技法は、様々なプラットフォーム(例えば、デスクトップ、モバイルデバイス、ゲームプラットフォーム、組み込みシステム、等)、及び/又は、様々なタイプのアプリケーション(例えば、Android.apkファイル、iOSアプリケーション、Windows PEファイル、Adobe Acrobat PDFファイル、等)と組み合わせて使用することができる。
図1に示される例示的な環境において、クライアントデバイス104-108は、エンタープライズネットワーク140内に存在するラップトップコンピュータ、デスクトップコンピュータ、およびタブレット(それぞれ)である。クライアントデバイス110は、エンタープライズネットワーク140の外部に存在するラップトップコンピュータである。
【0021】
データ装置102は、クライアントデバイス104および106といった、クライアントデバイスと、(例えば、外部ネットワーク118を介して到達可能な)エンタープライズネットワーク140の外部のノードとの間の通信に関するポリシを適用するように設定されている。そうしたポリシの例は、トラフィックシェーピング、サービス品質(quality of service)、および、トラフィックのルーティングを制御するポリシを含んでいる。他のポリシの例は、着信(及び/又は、発信)電子メールの添付ファイル、Webサイトのコンテンツ、インスタントメッセージングプログラムを介して交換されたファイル、および、他のファイル転送における脅威についてスキャンを必要とするものといったセキュリティポリシを含んでいる。いくつかの実施形態において、データ装置102は、また、エンタープライズネットワーク140内に留まるトラフィックに関して、ポリシを実施するようにも設定されている。
【0022】
データ装置の一実施例が
図2Aに示されている。示される例は、様々な実施例において、データ装置102に含まれる物理的コンポーネントの表現である。具体的に、データ装置102は、高パフォーマンスマルチコア中央処理装置(CPU)202およびランダムアクセスメモリ(RAM)204を含んでいる。データ装置102は、また、ストレージ210も含んでいる(1つ以上のハードディスクユニットまたはソリッドステートストレージユニットといったもの)。様々な実施形態において、データ装置102は、エンタープライズネットワーク110をモニタリングし、そして、開示される技法を実装する際に使用される情報を(RAM204、ストレージ210、及び/又は、他の適切な場所のいずれかに)保管する。そうした情報の例は、アプリケーション識別子、コンテンツ識別子、ユーザ識別子、要求されたURL、IPアドレスマッピング、ポリシ、および、他のコンフィグレーション情報、署名、ホスト名/URLカテゴリ化情報、マルウェアプロファイル、機械学習モデル、IoTデバイス分類情報、等を含んでいる。データ装置102は、また、1つ以上の任意的なハードウェアアクセラレータを含むこともできる。例えば、データ装置102は、暗号化および復号操作を実行するように構成された暗号化エンジン206、および、マッチングを実行し、ネットワークプロセッサとして機能し、かつ/あるいは、他のタスクを実行するように構成された1つ以上のフィールドプログラマブルゲートアレイ(FPGA)208を含むことができる。
【0023】
データ装置102によって実行されるものとして、ここにおいて説明される機能は、様々な方法で提供/実装することができる。例えば、データ装置102は、専用デバイスまたは一式のデバイスであってよい。データ装置102によって提供される機能は、また、汎用コンピュータ、コンピュータサーバ、ゲートウェイ、及び/又は、ネットワーク/ルーティングデバイス上のソフトウェアとして統合され、または、実行することもできる。いくつかの実施形態において、データ装置102によって提供されるものとして説明される少なくともいくつかの機能性は、代わりに(または、追加的に)クライアントデバイス上で実行されるソフトウェアによってクライアントデバイス(例えば、クライアントデバイス104またはクライアントデバイス106)に提供される。
【0024】
タスクを実行しているとしてデータ装置102が説明されているときはいつでも、データ装置102の単一コンポーネント、コンポーネントのサブセット、または全てのコンポーネントは協働してタスクを実行することができる。同様に、タスクを実行しているとしてデータ装置102のコンポーネントが説明されているときはいつでも、サブコンポーネントはタスクを実行し、かつ/あるいは、コンポーネントは他のコンポーネントと協働してタスクを実行することができる。様々な実施形態において、データ装置102の部分は、1人以上の第三者によって提供される。データ装置102が利用できるコンピューティングリソースの量といった要因に応じて、データ装置102の様々な論理コンポーネント及び/又は機能は省略され、そして、ここで説明される技法が適宜適応され得る。同様に、該当する場合、追加的な論理コンポーネント/機能が、データ装置102の実施形態に含まれ得る。様々な実施形態においてデータ装置102に含まれるコンポーネントの一例は、アプリケーションを識別するように構成されたアプリケーション識別エンジンである(例えば、パケットフロー分析に基づいてアプリケーションを識別するために様々なアプリケーション署名を使用する)。例えば、アプリケーション識別エンジンは、何のタイプのトラフィックをセッションが含むかを判断することができる。Webブラウジング-ソーシャルネットワーキング、Webブラウジング-ニュース、SSH、等といったものである。
【0025】
図2Bは、データ装置の一実施形態の論理コンポーネントに係る機能図である。示されている例は、様々な実施例においてデータ装置102に含めることができる、論理コンポーネントの表現である。特に明記されていない限り、データ装置102の様々な論理コンポーネントは、一般的に、様々な方法で実装できる。1つ以上のスクリプトのセット(例えば、該当する場合、Java、Python、等で記述されている)としてのものを含んでいる。
【0026】
示されるように、データ装置102は、ファイアウォールを構成し、そして、管理プレーン232およびデータプレーン234を含んでいる。管理プレーンは、ユーザインタラクションを管理する役割を担う。ポリシを設定すること及びログデータを表示するためのユーザインターフェイスを提供することによる、といったものである。データプレーンは、データを管理する役割を担う。パケット処理およびセッション処理を実行することによる、といったものである。
【0027】
ネットワークプロセッサ236は、クライアントデバイス108といった、クライアントデバイスからパケットを受信し、そして、それらを処理のためにデータプレーン234に提供するように構成されている。フローモジュール238は、新しいセッションの一部であるものとしてパケットを識別するときはいつでも、新しいセッションフローを作成する。後続のパケットは、フロールックアップに基づいて、セッションに属するものとして識別される。該当する場合、SSL復号が、SSL復号エンジン240によって適用される。そうでなければ、SSL復号エンジン240による処理は省略される。復号エンジン240は、データ装置102がSSL/TLSおよびSSHで暗号化されたトラフィックを検査および制御するのを助けることができ、そして、従って、そうでなければ暗号化されたトラフィックに隠れて留まっている可能性のある脅威を阻止するのに役立つ。復号エンジン240は、また、機密性の高いコンテンツがエンタープライズネットワーク110から流出するのを防ぐのにも役立つ。復号は、URLカテゴリ、トラフィック送信元、トラフィック宛先、ユーザ、ユーザグループ、および、ポートといった、パラメータに基づいて選択的に制御できる(例えば、イネーブルまたはディセーブル)。復号ポリシ(例えば、復号するセッションを指定する)に加えて、ポリシによって制御されるセッションについて様々なオプションを制御するように、復号プロファイルを割り当てることができる。例えば、特定の暗号スイートおよび暗号化プロトコルバージョンの使用を要求することができる。
【0028】
アプリケーション識別(APP-ID)エンジン242は、何のタイプのトラフィックをセッションが含むかを判断するように構成されている。一例として、アプリケーション識別エンジン242は、受信したデータ内のGET要求を認識し、そして、セッションがHTTPデコーダを必要とすると結論付けることができる。場合によって、例えば、Webブラウジングセッションでは、識別されたアプリケーションが変更されることがあり、そして、そうした変更はデータ装置102によって記録される。例えば、ユーザは最初に企業のWikiを参照し(「Webブラウジング-生産性」として訪問したURLに基づいて分類される)、そして、次いで、それに続いて、ソーシャルネットワーキングサイトを参照することができる(「Webブラウジング-ソーシャルネットワーキング」として訪問したURLに基づいて分類される)。異なるタイプのプロトコルは、対応するデコーダを有している。
【0029】
アプリケーション識別エンジン242によって行われた判断に基づいて、パケットは、脅威エンジン244によって、パケット(順不同で受信され得るもの)を正しい順序に組み立て、トークン化を実行し、そして、情報を抽出するように構成されている、適切なデコーダに対して送信される。脅威エンジン244は、また、パケットに何が起こるかを判断するために、署名マッチングも実行する。必要に応じて、SSL暗号化エンジン246は、復号されたデータを再暗号化することができる。パケットは、(例えば、宛先への)送信のために、転送モジュール248を使用して転送される。
【0030】
また、
図2Bにも示されるように、ポリシ252は、受信され、そして、管理プレーン232に保管される。ポリシは、ドメイン及び/又はホスト/サーバ名を使用して指定できる、1つ以上のルールを含むことができ、そして、ルールは1つ以上の署名、もしくは、他のマッチングクライテリアまたはヒューリスティック(heuristics)を適用することができる。モニタリングされるセッショントラフィックフローから抽出された様々なパラメータ/情報に基づいて、加入者/IPフローについてセキュリティポリシを実施するため、といったものである。インターフェイス(I/F)コミュニケータ250が、(例えば、(REST)API、メッセージ、もしくは、ネットワークプロトコル通信または他の通信メカニズムを介する)通信の管理のために提供される。
【0031】
例示的なセキュリティプラットフォーム
【0032】
図1に戻り、悪意ある個人(システム120を使用している)がマルウェア130を作成したと仮定する。悪意ある個人は、クライアントデバイス104といったもの、がマルウェア130のコピーを実行し、クライアントデバイスを危険にさらすこと、例えば、クライアントデバイスをボットネットのボットにさせることを望んでいる。その後、侵害されたクライアントデバイスは、必要に応じて、C&Cサーバ150から指示を受けるのと同様に、タスク(例えば、仮想通貨のマイニング、または、サービス拒否(denial of service)攻撃への参加)を実行し、そして、コマンドアンドコントロール(C&C)サーバ150といった、外部エンティティに対して情報を報告するように指示され得る。
【0033】
データ装置102が、クライアントデバイス104を操作する、ユーザ「アリス(“Alice”)」に対して(例えば、システム120によって)送信された電子メールを傍受(intercepted)したと仮定する。マルウェア130のコピーが、システム120によってメッセージに添付されている。代替的に、しかし同様のシナリオとして、データ装置102は、クライアントデバイス104による(例えば、ウェブサイトから)のマルウェア130のダウンロードの試みを傍受することができるだろう。どちらのシナリオにおいて、データ装置102は、ファイル(例えば、マルウェア130の電子メール添付ファイルまたはウェブサイトのダウンロード)の署名がデータ装置102に存在するか否かを判断する。署名は、存在する場合に、ファイルが安全であると知られていること(例えば、ホワイトリストに登録されていること)を示すことができ、そして、また、ファイルが悪意あるものであると知られていること(例えば、ブラックリストに登録されていること)を示すこともできる。
【0034】
様々な実施形態において、データ装置102は、セキュリティプラットフォーム122と連携して動作するように設定されている。一例として、セキュリティプラットフォーム122は、既知の悪意あるファイル(例えば、サブスクリプションの一部として)の署名のセットをデータ装置102に提供することができる。マルウェア130の署名がセットに含まれている場合(例えば、マルウェア130のMD5ハッシュ)、データ装置102は、それに応じて、クライアントデバイス104に対するマルウェア130の送信を防ぐことができる(例えば、クライアントデバイス104に送信された電子メール添付ファイルのMD5ハッシュが、マルウェア130のMD5ハッシュと一致することを検出することによる)。セキュリティプラットフォーム122は、また、既知の悪意あるドメイン及び/又はIPアドレスのリストをデータ装置102に提供することもでき、これにより、データ装置102は、エンタープライズネットワーク140とC&Cサーバ150との間のトラフィックをブロックできる(ここで、C&Cサーバ150は、悪意があると知られている)。悪意あるドメイン(及び/又は、IPアドレス)のリストは、また、データ装置102が、ノードのうち1つが侵害されたときを判断するのにも役立つ。例えば、クライアントデバイス104がC&Cサーバ150に接続しようとした場合、そうした試みは、クライアント104がマルウェアによって侵害されたことを示す強力な指標である(そして、クライアントデバイス104がエンタープライズネットワーク140内の他のノードと通信しないように隔離するといった、改善措置がとられるべきである)。以下に、より詳細に説明されるように、セキュリティプラットフォーム122は、また、他の種類の情報を(例えば、サブスクリプションの一部として)データ装置102に提供することもできる。ファイルのインライン分析を実行するためにデータ装置102によって利用可能な機械学習モデルのセットといったものである。
【0035】
様々な実施形態において、添付ファイルの署名が見つからない場合、データ装置102は、様々なアクションをとることがきる。第1実施例として、データ装置102は、良性としてホワイトリストに登録されていない(例えば、既知の良好なファイルの署名と一致しない)任意の添付ファイルの送信をブロックすることによって、フェールセーフ(fail-safe)であり得る。この方法の欠点は、それらが実際には良性である場合も、潜在的なマルウェアとして不必要にブロックされる多くの正当な添付ファイルが存在し得ることである。第2実施として、データ装置102は、悪意あるものとしてブラックリストに登録されていない(例えば、既知の悪いファイルの署名と一致しない)添付ファイルの送信を許可することによって、フェールデンジャー(fail-danger)であり得る。このアプローチの欠点は、新しく作成されたマルウェア(以前は、プラットフォーム122によって認識されなかったもの)が害を及ぼすのを防ぐことができないことである。
【0036】
第3実施例として、データ装置102は、静的/動的分析のためにセキュリティプラットフォーム122に対してファイル(例えば、マルウェア130)を提供するように設定することができ、悪意があるか否かを判断し、かつ/あるいは、それ以外の方法で分類する。セキュリティプラットフォーム122による添付ファイル(署名が未だ存在していない)の分析が実行されている間、データ装置102は、様々なアクションをとることができる。第1の例として、データ装置102は、セキュリティプラットフォーム122からの応答(response)を受信するまで、電子メール(および、添付ファイル)がアリスに配信されるのを防ぐことができる。プラットフォーム122がサンプルを徹底的に分析するのに約15分かかると仮定すると、これは、アリスへの着信メッセージが15分遅れることを意味する。この例では、添付ファイルが悪意あるものであるため、そうした遅延がアリスに悪い影響を与えることはない。別の例では、誰かが、署名も存在しない良性の添付ファイルを伴う時間的制約のある(time sensitive)メッセージをアリスに送信したと仮定する。アリスに対するメッセージの配信を15分遅らせることは、受け入れられないと(例えば、アリスによって)見なされる可能性がある。以下に、より詳細に説明されるように、代替的なアプローチは、(例えば、プラットフォーム122からの評決(verdict)を待っている間に)データ装置102で添付ファイルに対して少なくとも一部のリアルタイム分析を実行することである。データ装置102が、添付ファイルが悪意あるものか又は良性であるかを独立して判断できる場合は、初期のアクション(例えば、アリスへの配送をブロックまたは許可すること)をとることができ、そして、必要に応じて、一旦、セキュリティプラットフォーム122から評決を受け取ると、追加のアクションを調整/実行することができる。
【0037】
セキュリティプラットフォーム122は、受信したサンプルのコピーをストレージ142に保管し、そして、分析を開始する(または、必要に応じて、スケジュールされる)。ストレージ142の一例は、Apache Hadoop Cluster(HDFS)である。分析結果(および、アプリケーションに関する追加情報)は、データベース146に保管される。アプリケーションが悪意あるものと判断された場合、データ装置は、分析結果に基づいてファイルのダウンロードを自動的にブロックするように設定することができる。さらに、マルウェアについて署名を生成し、かつ、(例えば、データ装置102、136、148といったデータ装置に対して)配布することができ、悪意あるものと判断されたファイルをダウンロードする将来のファイル転送要求を自動的にブロックする。
【0038】
様々な実施形態において、セキュリティプラットフォーム122は、典型的なサーバクラスのオペレーティングシステム(例えば、Linux(登録商標))を実行している、1つ以上の専用の市販ハードウェアサーバ(例えば、マルチコアプロセッサ、32G+のRAM、ギガビットネットワークインターフェイスアダプタ、およびハードドライブを有するもの)を含んでいる。セキュリティプラットフォーム122は、複数のそうしたサーバ、ソリッドステートドライブ、及び/又は、他の適用可能な高パフォーマンスハードウェアを含むスケーラブルなインフラストラクチャ全体にわたり実装することができる。セキュリティプラットフォーム112は、1つ以上の第三者によって提供されるコンポーネントを含む、いくつかの分布コンポーネントを含み得る。例えば、セキュリティプラットフォーム122の一部または全ては、Amazon Elastic Compute Cloud(EC2)及び/又はAmazon Simple Storage Service(S3)を使用して、実装することができる。さらに、データ装置102と同様に、セキュリティプラットフォーム122が、データの保管またはデータの処理といった、タスクを実行するものとして参照される場合は、いつでも、セキュリティプラットフォーム122のサブコンポーネントまたは複数のサブコンポーネントは(個別に、または、第三者のコンポーネントと協力して)連携してそのタスクを実行できることが理解されるべきである。一例として、セキュリティプラットフォーム122は、任意的に、VMサーバ124といった、1つ以上の仮想マシン(VM)サーバと連携して静的/動的分析を実行することができる。
【0039】
仮想マシンサーバの一例は、VMware ESXi、Citrix XenServer、Microsoft Hyper-Vといった、市販の仮想化ソフトウェアを実行する、市販のサーバクラスのハードウェア(例えば、マルチコアプロセッサ、32+ギガバイトのRAM、および、1つ以上のギガビットネットワークインターフェイスアダプタ)を含む物理マシンである。いくつかの実施形態において、仮想マシンサーバは省略される。さらに、仮想マシンサーバは、セキュリティプラットフォーム122を管理する同じエンティティの管理下にあってよいが、また、第三者によって提供されてもよい。一例として、仮想マシンサーバは、EC2に依存することができ、セキュリティプラットフォーム122の残りの部分は、セキュリティプラットフォーム122のオペレータによって所有され、かつ、その管理下にある専用ハードウェアによって提供されている。VMサーバ124は、クライアントデバイスをエミュレートするために、1つ以上の仮想マシン126-128を提供するように設定されている。仮想マシンは、様々なオペレーティングシステム及び/又はそのバージョンを実行することができる。仮想マシンでアプリケーションを実行した結果として観察された動作は、ログに記録され、そして、分析される(例えば、アプリケーションが悪意あるものであることを示すため)。いくつかの実施形態において、ログ分析は、VMサーバ(例えば、VMサーバ124)によって実行される。他の実施形態において、分析は、コーディネータ144といった、セキュリティプラットフォーム122の他のコンポーネントによって少なくとも部分的に実行される。
【0040】
様々な実施形態において、セキュリティプラットフォーム122は、署名(及び/又は、他の識別子)のリストを介して、サンプルの分析結果をサブスクリプションの一部としてデータ装置102に提供する。例えば、セキュリティプラットフォーム122は、マルウェアアプリを識別するコンテンツパッケージを定期的に送信することができる(例えば、毎日、毎時、または、いくつかの他の間隔で、及び/又は、1つ以上のポリシによって設定されたイベントに基づいて)。コンテンツパッケージの一例は、識別されたマルウェアアプリのリストを含んでおり、パッケージ名、アプリを一意に識別するためのハッシュ値、および、識別された各マルウェアアプリのマルウェア名(及び/又は、マルウェアファミリー名)といった情報を含んでいる。本サブスクリプションは、データ装置102によって傍受され、そして、データ装置102によってセキュリティプラットフォーム122に送信されたファイルだけの分析をカバーすることができ、そして、また、セキュリティプラットフォーム122(または、そのサブセットであり、単なるモバイルマルウェアであり、他の形態のマルウェア(例えば、PDFマルウェア)ではない、といったもの)に知られている全てのマルウェアの署名もカバーすることができる。以下に、より詳細に説明されるように、プラットフォーム122は、また、他のタイプの情報も利用可能にすることができる。データ装置102が(例えば、ハッシュベースの署名マッチング以外の技法を通じて)マルウェアを検出するのに役立つ、機械学習モデル(例えば、特徴ベクトルに基づくもの)といったものである。
【0041】
様々な実施形態において、セキュリティプラットフォーム122は、データ装置102のオペレータに加えて(または、必要に応じて、その代わりに)、様々なエンティティに対してセキュリティサービスを提供するように構成されている。例えば、独自のそれぞれのエンタープライズネットワーク114と116、および、独自のそれぞれのデータ装置136と148を有している、他の企業は、セキュリティプラットフォーム122のオペレータと契約することができる。他のタイプのエンティティも、また、セキュリティプラットフォーム122のサービスを利用することができる。例えば、クライアントデバイス110にインターネットサービスを提供しているインターネットサービスプロバイダ(ISP)は、セキュリティプラットフォーム122と契約することができ、クライアントデバイス110がダウンロードしようと試みるアプリケーションを分析する。別の例として、クライアントデバイス110の所有者は、セキュリティプラットフォーム122と通信する、クライアントデバイス110においてソフトウェアをインストールすることができる(例えば、セキュリティプラットフォーム122からコンテンツパッケージを受信し、ここにおいて説明される技法に従って添付ファイルを確認するために受信したコンテンツパッケージを使用し、そして、分析のためにセキュリティプラットフォーム122にアプリケーションを送信する)。
【0042】
静的/動的分析を使用したサンプルの分析
【0043】
図3は、サンプルを分析するためのシステムに含めることができる論理コンポーネントの一例を示している。分析システム300は、単一のデバイスを使用して実装することができる。例えば、分析システム300の機能は、データ装置102に組み込まれたマルウェア分析モジュール112に実装できる。分析システム300は、また、複数の異なるデバイスにまとめて実装することもできる。例えば、分析システム300の機能は、セキュリティプラットフォーム122によって提供することができる。
【0044】
様々な実施形態において、分析システム300は、既知の安全なコンテンツ及び/又は既知の不良コンテンツのリスト、データベース、または他のコレクションを利用する(コレクション314として
図3にまとめて示されている)。コレクション314は、様々な方法で取得できる。サブスクリプションサービスを介して(例えば、第三者から提供される)、かつ/あるいは、他の処理の結果として(例えば、データ装置102及び/又はセキュリティプラットフォーム122によって実行される)を含んでいる。コレクション314に含まれる情報の例は、既知の悪意あるサーバのURL、ドメイン名、及び/又はIPアドレスであり、既知の安全なサーバのURL、ドメイン名、及び/又はIPアドレスであり、既知のコマンドおよびコントロール(C&C)ドメインのURL、ドメイン名、及び/又はIPアドレスであり、既知の悪意あるアプリケーションの署名、ハッシュ、及び/又は他の識別子であり、既知の安全なアプリケーションの署名、ハッシュ、及び/又は他の識別子であり、既知の悪意あるファイルの署名、ハッシュ、及び/又は他の識別子(例えば、Androidのエクスプロイトファイル)であり、既知の安全なライブラリの署名、ハッシュ、及び/又は他の識別子であり、そして、既知の悪意あるライブラリの署名、ハッシュ、及び/又は他の識別子である。
【0045】
取り込み(ingestion)
【0046】
様々な実施形態において、分析のために新しいサンプルを受け取る場合(例えば、サンプルに関連付けられた既存の署名が分析システム300に存在しない)、それは、キュー302に追加される。
図3に示されるように、マルウェア130は、システム300によって受信され、そして、キュー302に追加される。
【0047】
静的分析
【0048】
コーディネータ304は、キュー302をモニタリングし、そして、リソース(例えば、静的分析ワーカー)が利用可能になると、コーディネータ304は、処理のためにキュー302からサンプルを取得(fetch)する(例えば、マルウェア130のコピーを取得する)。特に、コーディネータ304は、静的分析のために、静的分析エンジン306に対してサンプルを最初に提供する。いくつかの実施形態においては、1つ以上の静的分析エンジンが分析システム300内に含まれており、ここで、分析システム300は単一のデバイスである。他の実施形態において、静的分析は、複数のワーカー(workers)(すなわち、静的分析エンジン306の複数のインスタンス)を含む別の静的分析サーバによって実行される。
【0049】
静的分析エンジンは、サンプルに関する一般情報を取得し、そして、静的分析レポート308に(必要に応じて、ヒューリスティックおよびその他の情報と共に)それを含める。レポートは、静的分析エンジンによって、または、静的分析エンジン306から情報を受信するように設定できるコーディネータ304によって(または、別の適切なコンポーネントにより)作成され得る。いくつかの実施形態において、収集された情報は、作成される個別の静的分析レポート308の代わりに、または、それに加えて、サンプル(例えば、データベース316)のデータベースレコードに保管される(すなわち、データベースレコードの一部がレポート308を形成する)。いくつかの実施形態において、静的分析エンジンは、また、アプリケーションに関して評決も形成する(例えば、「安全(“safe”)」、「疑わしい(“suspicious”)」、「悪意ある(“malicious”)」)。一例として、アプリケーションに1つでも「悪意ある」静的な機能が存在する場合(例えば、アプリケーションが既知の悪意あるドメインへのハードリンクを含んでいる)、その評決は「悪意ある」可能性がある。別の例として、各機能にポイントを割り当てることができ(例えば、見つかった場合の重大度に基づき、悪意を予測するために機能がどれだけ信頼性があるかに基づいて、等)、そして、評決は、静的分析結果に関連付けられたポイントの数に基づいて、静的分析エンジン306(または、該当する場合、コーディネータ304)によって割り当てることができる。
【0050】
動的分析
【0051】
一旦、静的分析が完了すると、コーディネータ304は、利用可能な動的分析エンジン310を見つけて、アプリケーションについて動的分析を実行する。静的分析エンジン306と同様に、分析システム300は、1つ以上の動的分析エンジンを直接的に含むことができる。他の実施形態において、動的分析は、複数のワーカー(すなわち、動的分析エンジン310の複数のインスタンス)を含む、別の動的分析サーバによって実行される。
【0052】
各動的分析ワーカーは、仮想マシンインスタンスを管理する。いくつかの実施形態において、静的分析の結果(例えば、静的分析エンジン306によって実行されるもの)は、レポート形式(308)であるか、及び/又は、データベース316に保管されているか、または、他の方法で保管されているかにかかわらず、動的分析エンジン310に対する入力として提供される。例えば、静的レポート情報を使用して、動的分析エンジン310 (例えば、Microsoft Windows 7 SP 2 vs. Microsoft Windows 10 Enterprise、または、iOS 11.0 vs. iOS 12.0)で使用される仮想マシンインスタンスの選択/カスタマイズに役立てることができる。複数の仮想マシンインスタンスが同時に実行される場合、必要に応じて、単一の動的分析エンジンが全てのインスタンスを管理することができ、または、複数の動的分析エンジンが使用され得る(例えば、それぞれが独自の仮想マシンインスタンスを管理している場合)。以下に、より詳細に説明されるように、分析の動的部分の最中は、アプリケーションによって実行されたアクション(ネットワークアクティビティを含む)が分析される。
【0053】
様々な実施形態においては、必要に応じて、サンプルの静的分析は省略され、または、別のエンティティによって実行される。一例として、従来の静的及び/又は動的分析は、第1エンティティによってファイルに対して実行され得る。一旦、所与のファイルが悪意あるものであると判断されると(例えば、第1エンティティによって)、そのファイルは、特に、(例えば、動的分析エンジン310による)ネットワークアクティビティのマルウェアの使用に関する追加的な分析のために、第2エンティティ(例えば、セキュリティプラットフォーム122のオペレータ)に対して提供され得る。
【0054】
分析システム300によって使用される環境は、アプリケーションが実行している間に観察された行為(behavior)が発生の際に記録されるように、備えられ/フック(hooked)される(例えば、フックとlogcatをサポートする、カスタマイズされたカーネルを使用する)。エミュレータに関連付けられたネットワークトラフィックも、また、キャプチャされる(例えば、pcapを使用する)。ログ/ネットワークデータは、一時ファイルとして分析システム300に保管することができ、そして、また、より永続的に保管することもできる(例えば、HDFS、または他の適切なストレージ技術、もしくは、MongoDBといった、技術の組み合わせを使用する)。動的分析エンジン(または、別の適切なコンポーネント)は、サンプルによって行われた接続をドメイン、IPアドレス、等のリスト(314)と比較し、そして、サンプルが悪意あるエンティティと通信したか(または、通信を試みたか)否かを判断することができる。
【0055】
静的分析エンジンと同様に、動的分析エンジンは、分析の結果を、テストされているアプリケーションに関連付けられたレコードにおけるデータベース316に保管する(かつ/あるいは、必要に応じて、レポート312に結果を含める)。いくつかの実施形態において、動的分析エンジンは、また、アプリケーションに関して評決も形成する(例えば、「安全」、「疑わしい」、「悪意ある」)。一例として、アプリケーションによって1つでも「悪意ある」アクションが実行された場合、その評決は、「悪意ある」ものであり得る(例えば、既知の悪意あるドメインに接続する試みがなされ、または、機密情報を密かに抽出する試みが観察される)。別の例として、実行されたアクションにポイントを割り当てることができ(例えば、見つかった場合の重大度に基づき、悪意を予測するために機能がどれだけ信頼性があるかに基づいて、等)、そして、評決は、動的分析結果に関連付けられたポイントの数に基づいて、動的分析エンジン310(または、該当する場合、コーディネータ304)によって割り当てることができる。いくつかの実施形態においては、レポート308とレポート312の組み合わせに基づいて(例えばコーディネータ304によって)、サンプルに関連付けられた最終的な評決が行われる。
【0056】
脅威エンジンに対する追加的な詳細
【0057】
様々な実施形態において、データ装置102は、脅威エンジン244を含んでいる。脅威エンジンは、それぞれのデコーダ段階(stage)およびパターンマッチング段階の最中に、プロトコルデコーディングおよび脅威署名マッチングの両方を組み込んでいる。2つの段階の結果は、検出器段階によってマージされる。
【0058】
データ装置102がパケットを受信すると、データ装置102は、セッションマッチング(session match)を実行して、パケットがどのセッションに属するかを判断する(データ装置102は同時セッションをサポートできるようになる)。各セッションは、特定のプロトコルデコーダ(例えば、Web閲覧デコーダ、FTPデコーダ、またはSMTPデコーダ)を暗示すセッション状態を有する。ファイルがセッションの一部として送信される場合、適用可能なプロトコルデコーダは、適切なファイル固有(file-specific)デコーダ(例えば、PEファイルデコーダ、JavaScriptデコーダ、または、PDFデコーダ)を利用することができる。
【0059】
脅威エンジン244の一実施例の部分が
図4に示されている。一実施形態において、所与のセッションに対して、デコーダ402は、対応するプロトコルおよびマーキングコンテキストに従って、トラフィックバイトストリームをウォーク(walk)する。コンテキストの一例は、エンドオブファイル(end-of-file)コンテキストである(例えば、JavaScriptファイルの処理の間に</script>に出会う)。デコーダ402は、パケット内のエンドオブファイルコンテキストをマーク付けすることができ、次いで、ファイルの観測された機能を使用して適切なモデルの実行をトリガするために、これを使用することができる。場合によっては(例えば、FTPトラフィック)、デコーダ402がコンテキストを識別/マーク付けするための明示的なプロトコルレベルのタグが存在しないことがある。別の実施形態において、デコーダコンポーネント402は、サンプル404内のファイルそれぞれに関連付けられたファイルタイプを決定するように構成され(例えば、マルウェアのサンプルは、様々なソースコードコンテンツ、及び/又は、JSコード、HTMLコードといった、マルウェア分析のための他のタイプのコンテンツ、及び/又は、他のプログラミング/スクリプト言語、並びに、URLといった他の構造化テキストまたは画像といった非構造化コンテンツ、等を含むことができる)、そして、以下でさらに説明されるように、IUPGモデルを使用して静的分析を実行するためにファイルをデコーディングすることができる。また、以下に、より詳細に説明されるように、様々な実施形態において、デコーダ402は、他の情報(例えば、ヘッダで報告されるファイルサイズ)を使用して、ファイルの特徴抽出を終了すべきときを決定し(例えば、オーバーレイセクションが始まる)、そして、適切なモデルを使用した実行が開始されるべきときを決定する(例えば、以下に、さらに説明されるように、デコーダ402はサンプル404に関連付けられたファイルタイプを決定し、そして、次いで、そのファイルタイプに関連付けられたソースコードのタイプに適したIUPGモデル、JSファイルのJS IUPGモデル、HTMLファイルのHTML IUPGモデル、等といったもの、を選択することができ、かつ、アナライザ406は、適切なIUPGモデルを使用してサンプルの静的分析を実行することができる)。
【0060】
脅威エンジン244は、また、以下に、さらに説明されるように、選択されたIUPGモデルを使用してサンプル404の静的分析を実行するためのアナライザコンポーネント406も含んでいる。アナライザコンポーネント408は(例えば、選択されたIUPGモデルのターゲット特徴ベクトルを使用して)、以下に、さらに説明されるように、(例えば、閾値スコアに基づいて)分析されたサンプル404それぞれを悪意あるもの又は良性のもののいずれに分類するかを決定する。一例として、アナライザ406および検出器408は、ソースコードサンプルの静的分析に基づいてマルウェア分類に対して適用されるIUPGモデルの開示された技法を使用して、データ装置102により、かつ/あるいは、クライアント110で実行されるセキュリティエージェント/ソフトウェアによって(例えば、そして、また、
図1にも同様に示されるように、セキュリティプラットフォーム122のアナライザおよび検出器154によって)、実装することができる。検出器408は、デコーダ402およびアナライザ406によって提供される出力を処理して、(例えば、セキュリティポリシ/ルールに基づいて)様々な応答アクションを実行する。
【0061】
推定無罪(IUPG)の導入:敵対的耐性および偽陽性耐性のあるディープラーニングモデルの構築
【0062】
カテゴリ交差エントロピー(Categorical Cross-Entropy、CCE)損失は、様々なディープニューラルネットワーク(DNN)分類子(classifiers)をトレーニングするために使用される標準の教師あり(supervised)損失関数である。CCEは、分布外(out-of-distribution、OOD)コンテンツを推論し、または、一意に識別可能な構造を持たないクラスを効果的に利用するための組み込まれた手段を有さない、純粋に識別可能なモデルを生成する。推定無罪(Innocent Until Proven Guilty、IUPG)フレームワークを提供するために開示される技術は、相互に排他的なクラスを分類するようにDNNをトレーニングするための、代替的なアーキテクチャコンポーネント、および、ハイブリッドな識別および生成損失関数を提供する。IUPGは、ネットワークと一緒に、入力空間の一意に識別可能なサブセットをプロトタイプする、元の入力空間内の入力のライブラリ学習することを含む。ネットワークは、入力空間を出力ベクトル空間にマップすることを学習し、そこで、関連する入力サブセットのプロトタイプおよびメンバーは、出力ベクトル空間内の共通ポイントに対して排他的にマッピングされる。出力ベクトル空間における、ノイズ(または、プロトタイプの記述を欠いているデータの任意のクラス)と、全てのプロトタイプとの間の距離は、トレーニングで最大化される。そうしたクラスを「オフターゲット(“off-target”)」と呼び、一方で、ターゲットクラスには1つ以上のプロトタイプが割り当てられている。オフターゲットデータは、ターゲットクラスの抽出された特徴を、偶然とは対照的に、真にクラス排他的である、特徴に切り詰める(chisel down)のに役立つ。
【0063】
例えば、コンピュータ/ネットワークセキュリティに適用される機械学習技術(MLT)は著しい課題を有している、-すなわち、それは一般に間違いを犯してはならない。一方向の間違いは、危険なマルウェアの侵入につながる可能性がある(例えば、マルウェアがエンタープライズネットワークへの侵入を許可され、または、コンピューティングエンティティ(サーバ、コンピューティングエンドポイント、等といったもの)において実行される)。他の方向の間違いは、セキュリティソリューションが、例えば、コンピューティングエンティティ上の無害なトラフィックや実行可能ファイルをブロックする原因となるが、これも、また、サイバーセキュリティ企業にとっては高価であり、そして、ユーザにとっては大きな頭痛の種である。一般に、良好な(良性の)トラフィックの量は、悪意あるトラフィックの量よりもはるかに多く、従って、悪意ある(例えば、一般的に偽陽性(false positive、FP)と称されるもの)と呼ばれる良好なトラフィックの量を最小限に抑えることが、効果的かつ効率的なセキュリティソリューションにとっては典型的に望まれている。マルウェアの作成者はこれを理解しており、そして、悪意あるコードをより良性なコードのように見せかけようとする。これを達成する最も簡単な方法は、一般的に、アペンド攻撃として知られているもので(例えば、インジェクション(injection)、バンドリング(bundling)、等としても知られている)、そこで、攻撃者は、(例えば、典型的には大きい)量の良性コンテンツを取得し、そして、以下に、さらに説明されるように、マルウェアの機能を損なうことなく、悪意あるコンテンツをそこにインジェクションする。標準的な技法を用いて構築された機械学習(ML)分類子はその存在に敏感であるため、良性コンテンツのかなりの部分は、肯定的なマルウェアの判定から分類の判定を混乱させ、ときどき、分類子がそれを完全に見逃すようにさせ得る。
【0064】
IUPG技法を使用したマルウェア分類のコンテキストでは、これは、良性コンテンツを無視しながら、その悪意性を定義するマルウェアクラスタの分離できない特徴を学習することに相当する。一実装例では、推論の最中に、各サンプルは、クラス外の全ての構造を無視しながら、これらの分離できない品質についてスキャンされ、そのため、本技法では、各サンプルが「推定無罪」であると仮定される。学習した特徴の特異性(sepcificity)を直感的に高めることは、任意のOODコンテンツ(例えば、以下でさらに説明されるノイズ耐性)に対するネットワークの耐性を高める。開示されるIUPG技術の中心的な仮説として、任意のOODコンテンツに対するこの高められた耐性が、以下でさらに説明されるように、我々が探究する望ましい効果について主に責任を負うことが提案される。
【0065】
開示されるIUPG技術は、データの元の表現内で抽象化された入力のライブラリを学習することによってこれを達成し、-ネットワークのレイヤ操作と共に-入力空間のプロトタイプサブセットを学習する。ネットワークは、入力空間を出力ベクトル空間にマップすることを学習し、そこでは、プロトタイプおよび関連する入力サブセットのメンバーが排他的に共通ポイントにマッピングされる。出力ベクトル空間におけるノイズ(または、一般的に「オフターゲット(“off-target”)」と呼ばれる、プロトタイプ記述を欠いているデータのクラス)と、全てのプロトタイプ入力との間の距離は、トレーニングで最大化される。オフターゲットのサンプルは、従って、ターゲットクラスの抽出された特徴を、偶然とは対照的に、真にクラス排他的である、特徴へと切り詰めるのに役立つ。
【0066】
クラスの学習された表現の特異性を高めることは(一方では、なおも損失の一般化可能性とのバランスをとりながら)、入力ノイズに対するネットワークの耐性を自然に高める。それは、主に、この研究で探究される望ましい品質に責任を負う、IUPGネットワークに組み込まれているノイズ耐性の特性であると我々は仮定する。我々は、ベースラインパフォーマンスを測定するために、CCE損失でトレーニングされた同等のネットワークトポロジを使用する。我々は、この制御ネットワーク設定を、IUPGネットワークのCCE対応(counterpart)として参照する。評価において、我々は、(1)ノイズの異なる使用法を含む、様々なサイバーセキュリティおよびコンピュータビジョンの実験的な設定にわたり、IUPG及びそのCCE対応のテストセット分類パフォーマンスを探究し、(2)OOD入力に対して偽陽性(FP)応答を生成する両方のフレームワークの傾向を測定し、(3)標準トレーニングと我々が導入したカスタムの敵対者トレーニングプロシージャの両方を用いて、ブラックボックスアペンド攻撃に対する両方のフレームワークの耐性を測定し、そして、(4)IUPGに対する既存の敵対者学習技法の適用性を実証する。
【0067】
様々な実施形態に関して、以下で、説明されるように、プロトタイプベースの学習および構造化されていない(structureless)クラスの独自の処理(handling)を通じて、構造化されたクラスモデルの特異性を高めることによって、IUPGでトレーニングされた(IUPG-trained)ネットワークは、コンピュータ/ネットワークのセキュリティコンテキストにおける所定のノイズベースの敵対的攻撃、分布シフトの処理、および、分布外の分類といった、一般的な現実世界の問題設定において著しい利点を提供することができる。IUPGは、カテゴリ交差エントロピー(CCE)が使用され得る、任意のアーキテクチャに適用されるほど十分に一般的であるため、IUPGと既存の敵対的学習/OOD検出器との組み合わせの様々な機会は、それ自身で存在し、以下に、さらに説明されるように、分離して使用されるいずれの技法よりも良好なパフォーマンスを発揮する。
【0068】
我々は、IUPGの独自の利点がマルウェア分類の取り組みに特に有用であることを示す。マルウェア分類のコンテキストにおいて、アペンド攻撃は、リスクの高い偽陰性を導くことがあり、一方で、OODの失敗はコストのかかる偽陽性を導くことがある。要約すると、ここで開示される様々な新しい態様は、制限なく、以下を含んでいる。(1)IUPGフレームワークを提示すること、(2)CCE損失にわたりIUPGを使用することの上述のいくつかの利点を実証すること、(3)アペンド攻撃耐性DNNマルウェア分類器を構築するための新規なアーキテクチャおよびトレーニングプロシージャを示すこと、および(4)様々な形態のマルウェアを効果的かつ効率的に検出するためのIUPGフレームワークを適用すること(例えば、JavaScript関連のマルウェア、URL関連のマルウェア、及び/又は、他の形態のマルウェアは、以下でさらに説明されるように、開示されたIUPG技術およびIUPGフレームワークを使用して同様に分類および検出することができる)。
【0069】
以下でさらに説明されるように、実験結果は、アペンド攻撃が非常に正確な分類子に対しても大幅に成功し得ることを明らかにしている。一例として、カテゴリ交差エントロピー(CCE)損失を使用して構築されたディープラーニングJavaScript(JS)マルウェア分類子について、分類子がテストセットで99%以上の精度を達成しているにもかかわらず、悪意あるサンプルに追加されたランダムな良性コンテンツのわずか1万文字で、50%以上の確率で評決をひっくり返すことに成功した。この攻撃を活用するコストが非常に低いことを考えると、これは特に懸念される。敵対者は、被害者の分類子に関する詳細を知る必要はないが、一方で、同時に、無害なコンテンツは非常に豊富であり、そして、作成するのは簡単である。もし、敵対者が、損失関数といった、被害者モデルに関する機密情報にアクセスできる場合に、追加されたコンテンツは、一般的に成功率をさらに高めるモデル固有の技法で設計できる。
【0070】
この技術的に困難な問題を解決するには、マルウェアを一意に示すものではないコンテンツは、一般的に、判定が良性に反転しないように、分類メカニズムに十分に小さな影響を与える必要がある。高いレベルで、我々がとるアプローチは、他の全てのコンテンツに対して明示的に堅牢でありながら、悪意あるクラスの一意に識別可能なパターンを排他的に学習して認識するようにネットワークを奨励する。重要な観察は、マルウェアパターンが高度に構造化されており、そして、データで遭遇する可能性のある無限の良性パターンと比較して一意に認識できることである。かくして、開示されるIUPG技術の革新の例は、学習のための使用法において、一意に識別可能な構造(例えば、パターン)を持つクラスと持たないクラスを区別することである。マルウェア分類のコンテキストでは、一般的に、マルウェアクラスは一意に識別可能な構造を持ち(例えば、ここではターゲットクラスと称される)、そして、良性クラスは本質的にランダムである(例えば、ここではオフターゲットクラスと称される)。以下でさらに説明されるように、開示されるIUPG技術は、ターゲットクラス内で一意に識別可能な構造を学習するように特別に設計されており、一方で、ターゲットクラスの表現を真に分離不可能なものに切り詰めるためだけにオフターゲットクラスを活用している。このことは、ニューラルネットワークの全体的な受容フィールド、つまり、正しい肯定的な評決の明確な指標である悪意あるパターンに対してのみ、ニューラルネットワークが敏感なデータのパターンを減らすことを促進する。そうした悪意あるパターンが見つからない場合にのみ、良性の評決が生成される。つまり、未知のファイルは、推定無罪である(IUPG)。このことは、損失を最小限に抑えるのに役立ち得るが、最終的にはファイル全体の安全性に関する情報を与えない、従来の、制約のない学習とは対照的である。さらに、我々は、分類器によって学習された任意の良性のパターンは、状況トレーニングデータのファセットに対してオーバーフィッティングされた特徴である可能性が高いと仮定する。ほぼ無限の可能性がある兆候(manifestation)のせいで、良性のパターンをキャプチャしようとすることは、せいぜい非効率的である。最悪の場合、攻撃の感受性を追加するために分類子をオープンする、オーバーフィッティングされた特徴を導く。さらに悪いことに、トレーニング、検証、およびテスト分割が同じ分布から取得された場合(例えば、これは一般的な慣行である)、分類子の良性の特徴が、なおもテストセットで良好なパフォーマンスをもたらし得るので、標準のテストセット分類メトリックは問題を明らかにしない可能性が高い。一度だけ分類子がトレーニング分布の外のデータでの現実世界に配置されると(例えば、それが重要な場合)、厄介な分類エラーおよび攻撃の脆弱性が発生する。
【0071】
以下に、より詳細に説明されるように、評価において、我々は、CCE損失でトレーニングされた同等のネットワークを使用してベースラインパフォーマンス-ここではIUPGネットワークのCCE対応と呼ばれるもの、を測定する。我々は、(1)ノイズの様々な使用法を含む様々なサイバーセキュリティとコンピュータビジョンの設定にわたり、IUPG及びそのCCE対応のテストセット分類パフォーマンスを調査し、(2)OOD入力で偽陽性(FP)応答を生成する傾向を比較し、(3)最近性バイアス(例えば、分布シフトによるパフォーマンス低下)が分類精度に与える影響を比較し、(4)ブラックボックスアペンド攻撃に対する両方のフレームワークの耐性を比較し、そして、(5)既存の敵対者トレーニング技法のIUPGへの適用性を示す。
【0072】
関連する研究の背景
【0073】
我々は、以下を含む、関連する研究の研究について3つの主要テーマをまとめる。(1)プロトタイプベースの学習、(2)アペンド攻撃、および(3)分布外(out-of-distribution、OOD)攻撃、である。
【0074】
プロトタイプベースの学習プロトタイプベースの学習に関する最も初期の研究には、学習ベクトル量子化(LVQ)がある (例えば、T.Kohonen, The self-organizing map. Neurocomputing, 21(1):1-6,1998,ISSN 0925-2312,doi:https://doi.org/10.1016/S0925-2312(98)00030-7を参照のこと)、これは、プロトタイプベースのk最近接アルゴリズムと考えることができる。D.NovaおよびP.A.Est´evez. A review of learning vector quantization classifiers. Neural Comput. Appl.c25(3-4):511-524, Sep. 2014. ISSN 0941-0643. doi:10.1007/s00521-013-1535-3で提示されたLVQ変異体の分類学(taxonomy of LVQ variants)において、この研究はGLVQに相当し(例えば、A.SatoおよびK.Yamada, Generalized learning vector quantization. In Proceedings of the 8th International Conference on Neural Information Processing Systems, NIPS’95, page423-429, Cambridge, MA, USA, 1995, MIT Pressを参照のこと)それは、ユークリッド距離を用いたデータ空間のマージン最大化の下にある。IUPGは、しかしながら、プロトタイプ学習をDNNと組み合わせ、そして、オフターゲットのサンプルを独自に使用する。DNNにおけるプロトタイプベースの学習の一般的な目標は、ローショット(low-shot)学習(例えば、X.Liuら. Meta-learning based prototype-relation network for few-shot classification, Neurocomputing, 383:224-234, 2020, ISSN 0925-2312, doi:https://doi.org/10.1016/j.neucom.2019.12.034を参照のこと)、および、判定の解釈可能性(例えば、O.Li, H.Liu, C.Chen, およびC.Rudin, Deep learning for case-based reasoning through prototypes: A neural network that explains its predictions, 2018を参照のこと)を含む。H.-M.Yang, X.-Y.Zhang, F.Yin, およびC.-L.Liu, Robust classification with convolutional prototype learning, 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 2018, doi:10.1109/cvpr.2018. 00366(Yangら)は、IUPGといくつかの類似点がある。しかしながら、Yangらのプロトタイプは、モデルの出力ベクトル空間で定義されている。これらのプロトタイプは人間が解釈できるものではなく、かつ、直感的な初期化を有さない。重要なことに、プロトタイプがこのように定義されると、我々は、複数のプロトタイプが共通ポイントにマージされるソリューションへの頻繁な収束を観察した。このことは、クラスごとに複数のプロトタイプで同様またはより悪いパフォーマンスを報告する、Yangらの結果によってサポートさられている。我々は、また、IUPGがするように、オフターゲットのサンプルを利用する同様の研究を見つけることができなかった。この能力により、特に、我々は、1つのクラスだけが一意に識別可能な構造を持つマルウェア分類といった問題に対して、かなりの利点を発見することができる。
【0075】
アペンド攻撃:アペンド攻撃は、分類結果を混乱させる目的で、敵対的なコンテンツを入力に連結したものである(例えば、R.R.Wiyatno, A.Xu,O.Dia, およびA.de Berker, Adversarial examples in modern machine learning: A review, 2019(Wiyatnoら)を参照のこと)。これは、悪意あるアクティビティがそのまま残っているにもかかわらず、良性のノイズをマルウェアに付加して分類子を欺くことができる、マルウェア分類に特に関連している。逆に、検出を回避するために、悪意あるコンテンツを大きな良性ファイルに挿入することができる(例えば、良性のライブラリ注入、または、より多くのホワイトスペースを追加することは、様々なjQueryプラグイン、および、Webサイトの依存性を有するカスタムバンドルファイルを使用するといった、一般的な形式のアペンド攻撃であり、そうしたファイルへの良性のライブラリ/他のコンテンツの注入などによって分類結果が混乱させられ得るので、多くの分類子による誤った良性の分類を生じさせ得る)。ホワイトボックス攻撃(例えば、Wiyatnoら参照のこと)として知られるものでは、モデルの詳細を悪用しながら、追加されたノイズを細工することができる。一般的に、ブラックボックス敵対攻撃は、モデルの知識が無いことを仮定しており、そして、しばしば、専有防御に対して可能な唯一の攻撃である。この研究は、最も単純なアペンド攻撃の種類でさえ、非常に正確なモデルに対して深刻な脅威をもたらし得るという証拠を提供している。我々の知る限り、ディープラーニングにおける以前の研究には、マルウェアに対するアペンド攻撃について一般的なソリューションを欠いている。
【0076】
分布外(OOD)分類:CCEでトレーニングされたDNN(RBFネットワークといった、いくつかの特化した高度に非線形なオプションをセーブする)は、OOD入力に対して非常に自信過剰な事後分布を生成しやすいことがよく理解されている(例えば、V.Sehwagら, Analyzing the robustness of open world machine learning, pages105-116, Nov.2019, ISBN 978-1-4503-6833-9, doi:10.1145/3338501.3357372を参照のこと)。OODコンテンツを確実に処理することは、実際のシステムにとって重要な要件である。我々の研究と直交して、オープンワールドフレームワークは、しばしば、OOD入力を識別して、破棄することを目的とした外部検出器をモデルに装備する(例えば、J.Chen, Y.Li, X.Wu, Y.Liang, およびS.Jha, Robust out-of-distribution detection for nueralnetworks, 2020を参照のこと)。他の作業は、分類ネットワークのトレーニングと同時に、または、後で、外部拒否機能を学習することに依存している(例えば、Y.GeifmanおよびR.El-Yaniv, Selective classification for deep neural networks,であり、I.Guyon, U.V.Luxburg, S.Bengio, H.Wallach, R.Fergus, S.Vishwanathan, およびR.Garnett, editors, Advances in Neural Information Processing Systems 30, pages4878-4887, Curran Associates, Inc., 2017におけるもの、を参照のこと)。この研究は、IUPGのみから生じるOODコンテンツを処理するための組み込みの適応性を示している。
【0077】
長所の組み合わせ:一般的に、敵対者トレーニングの多くの種類(例えば、Wiyatnoら、を参照のこと)といった、近年ホワイトボックス攻撃を克服するためにCCEトレーニングされたDNNについて開発された技術のいずれも、IUPGトレーニングされたネットワークに対して同等に適用できる。IUPG損失は、これらの特別なトレーニングプロシージャの中でCCEのドロップイン代替として使用できる。一貫して高いIUPGの成功率を我々が観察する、一例が以下に提供される。同様に、我々は、IUPGと外部OOD検出器の組み合わせは、これから様々な実施形態に関して後述されるように、分離したいずれよりもパフォーマンスが優れている可能性が高いことを示唆する。
【0078】
推定無罪(IUPG)のための技術の概要:敵対的耐性および偽陽性耐性のあるディープラーニングモデルの構築と使用
【0079】
敵対的耐性および偽陽性耐性のあるディープラーニングモデルの構築と使用のための推定無罪(IUPG)技術が開示される。いくつかの実施形態において、システム、プロセス、及び/又は、コンピュータプログラム製品は、サンプルの静的分析のために、推定無罪(IUPG)モデルを1つ以上含むセットを保管すること、サンプルに関連付けられたコンテンツの静的分析を実行することであり、静的分析の実行は、少なくとも1つの保管されたIUPGモデルを使用することを含むこと、および、サンプルに関連付けられたコンテンツの静的分析に少なくとも部分的に基づいてサンプルが悪意あるものであると判断すること、および、サンプルが悪意あるものであると判断したことに応答して、セキュリティポリシに基づいてアクションを実行すること、を含んでいる。
【0080】
従来のカテゴリ交差エントロピー損失でトレーニングされたディープニューラルネットワーク分類子は、分布外入力で非常に信頼度の高い事後分布を生成する傾向、敵対ノイズに対する感度、および、分布シフトによるパフォーマンス損失といった、現実世界の環境における問題に直面する。我々は、中心的な欠点-入力の中の分布外コンテンツを効果的に処理できないこと-が、これらの障害のそれぞれを悪化させることを仮定している。これに応答して、我々は、ノイズに強く、モデル化されたクラスの一意に識別可能な特徴を発見するために、ノイズおよび本質的にランダムなクラスを一意に活用しながら、入力空間の中のトレーニングデータクラスタまたはクラスをプロトタイプ化する、推定無罪(Innocent Until Proven Guilty)と呼ばれる新規な学習フレームワークを提案する。評価において、我々は、学術的なコンピュータビジョンデータセット、および、マルウェア分類のための現実世界のJavaScripとURLデータセットの両方を活用する。
【0081】
これらの学際的な設定にわたり、我々は、カテゴリ交差エントロピーでトレーニングされた同等(equal)トポロジのベースラインネットワークと比較した場合に、テストデータでの好ましい分類パフォーマンス、最近性(recency)バイアスによるパフォーマンスの損失の減少、ノイズサンプルにおける偽陽性応答の減少、および、いくつかのノイズベースの攻撃シミュレーションでの脆弱性の減少を観察する。
【0082】
公開されるIUPGフレームワークは、マルウェアにおけるブラックボックスアペンド攻撃に対する脆弱性の著しい減少を示している。例えば、よく知られている高速勾配符号法(Fast-Gradient Sign Method)を適用することにより、我々のフレームワークを既存の敵対的学習技術と組み合わせ、そして、著しいマージンで好ましいパフォーマンスを発見する可能性を示した。我々のフレームワークは、そうでなければ、カテゴリ交差エントロピー(CCE)でトレーニングすることができた、任意のネットワークトポロジで使用するのに十分に一般的である。
【0083】
IUPGフレームワークの例示的なシステムの実施形態
【0084】
図5Aは、いくつかの実施例に従って抽象ネットワークNにおける拡張されたIUPGコンポーネントのブロック図である。一般的に、IUPGネットワークは、共通の入力空間からの入力およびプロトタイプを出力ベクトル空間にマップするエンコーダである。
【0085】
IUPGフレームワークおよびIUPG技術の簡単な概要として、入力サンプルおよびプロトタイプのライブラリが、転送パスごとにシャム方式(Siamese fashion)でネットワークによって処理される。これらのプロトタイプは、通常のデータポイントと同じ入力空間に存在する。例えば、28×28の画像を分類する場合、各プロトタイプは学習可能な重み付けの28×28マトリックスとして存在する。一実装例では、プロトタイプを定義する2つの方法を、(1)入力空間の学習可能なメンバーとして直接的に、または、(2)トレーニングデータポイントのバイアスセットの線形組み合わせの重み付けとして、より一般的に、実行することができる。後者は、入力空間が非常に大きい場合に特に便利である。サンプルおよびプロトタイプは、特別に学習された距離メトリックとペアになった最終出力ベクトル空間にマッピングされる。IUPGは、出力ベクトル空間が全ての入力を方向付けるように、プロトタイプ、ネットワークの重み付け、および、距離メトリックを学習する。
図5Aに関して後述するIUPGネットワーク500を使用して
図5Bに示されるように、といったものである。
【0086】
理想的なマッピングにおいて、構造化クラスメンバー及びその割り当てられたプロトタイプは、構造化クラスのメンバーではない可能な入力がどこか別の場所にマッピングされるように、スペースの余裕を持って共通ポイントに一意にマッピングされる。ここで、この出力ベクトル空間内のマッピングされた全てのプロトタイプに対するマッピングされた入力の距離を測定することによって、評決が引き出されることは明らかである。マッピングされたサンプルがプロトタイプに十分近いことが測定された場合、のプロトタイプが割り当てられたクラスのメンバーであると予測される。530でのスペースに示されように、ここで、ノイズの背景、オフターゲットデータとも呼ばれるものは、
図5Bに示されるように、クラス1プロトタイプ532およびクラス2プロトタイプ534といった、ターゲットクラスに関して真に分離できないものを照らし出す(そして、プロトタイプでキャプチャする)のに役に立つ。IUPGネットワーク500は、オフターゲットのデータまたはクラスがなくても、なお、問題なくトレーニングできることに注意すること。我々は、この種類のいくつかの公開データセットを用いて、分類パフォーマンスが安定または向上したことを報告する。しかしながら、マルウェア分類といった、特定の問題は、このキャパシティ(capacity)を利用してオフターゲットデータを認識するのに自然に適している。
【0087】
IUPG損失は、出力ベクトル空間内のサンプルと全てのプロトタイプとの間のプッシュ力とプル力(pushing and pulling forces)を調整することによって、この理想的なマッピングを促進する。各アンカーサンプルに適用される力は、そのラベルに基づいて決定される。
図5Cは、オンターゲットおよびオフターゲットのサンプルについて必要な力を示している。オフターゲットのサンプル550については、
図5Cに示されるように、ターゲット1プロトタイプ552、ターゲット2プロトタイプ554、およびターゲット3プロトタイプ556を含む全てのプロトタイプからプッシュされている(push away)ことに注意すること。このことは、その1つのホットラベルベクトルにゼロ(zero)ベクトルを使用することによって達成される。
【0088】
バイナリマルウェアの分類に戻ると、上述のように、我々は、悪意あるクラスに対していくつかのプロトタイプを指定し、一方で、オフターゲットとして良性クラスを定義している。このことが、良性コンテンツに対する堅牢性をエンコーディングしながら、マルウェアの一意に識別されるパターンを学習する必要がある理由が、今や、明確であることに期待する。理想的なケースにおいて、プロトタイプおよびネットワークのマッピングは、マルウェアファミリの分離不可能な機能を排他的にキャプチャし、その結果、それらのアクティベーション(activation)がマルウェアの可能な限り強力な指標であり、そして、他の機能は大幅なアクティベーションにつながらない。このことは、悪意あるプロトタイプへのマッピングを破壊する唯一のパス(path)が、悪意ある何かを実際に行うマルウェアのピースを歪曲または削除することである状況において、敵対者をトラップする。直接的に悪意を与えないパターンではほとんどアクティベーションがなく、余分の(extra)良性コンテンツを活用することが、敵対者がマルウェア分類子をバイパスするのに役に立たない。重要なこととして、出力ベクトル空間においてプロトタイプの周りにマルウェアファミリの緊密で堅牢なクラスタを形成することは、例えば、孤立したマルウェア(orphan malware)を確実にキャッチできるように、損失の一般化可能性と同時にバランスが取れていることに注意すること。我々の実験において、プロトタイプは、一般的に、モデルが単純なパターンマッチングに縮小されたかのように、単一のマルウェアファミリまたは悪意あるパターンにマッピングされない。代わりに、ネットワークおよびプロトタイプは、マルウェアファミリ全体に一般化されているが、なおも、良性のアクティベーションに対する堅牢性を保持している、パターンの複雑で高度な組み合わせを認識するように学習する。
【0089】
ここで、
図5Aを参照すると、IUPGフレームワーク500の新規なコンポーネントは、
図5Aに関して以下に説明されるように、DNNの入力層と出力層、並びに、特別な損失関数を含んでいる。全ての非表示層の詳細-任意のトポロジの中へ編成された異なる機能タイプの層の数を含むもの-は、問題の関連性に基づいて、必要に応じて変更できる。ネットワーク
【数1】
を考えると、それは、ベクトル化された入力のセット
【数2】
を
【数3】
におけるベクトルにマッピングする。Nの従来のCCEトレーニングは、
【数4】
を
【数5】
におけるベクトルにマッピングすることを含む(ここで、cはクラスの数)。これから、以下に
図5Aに関して説明されるように、我々は、IUPGフレームワークのこれらの例示的な新規なコンポーネントを、例示的な抽象ネットワークアーキテクチャに拡張することによって説明する。
【0090】
データに関するガイドライン
【0091】
cクラスを用いたCCEトレーニングでは、一般的に、全てのcクラスのラベル付きの例を取得することが、必要があり、かつ、十分である。IUPGは、これらのデータセットを使用してトレーニングできるが、我々は、ターゲット外のサンプルを含めることが便利であることを、しばしば、見い出す。ターゲット外のサンプル
【数6】
について、我々は、
【数7】
を定義する。どのデータまたはクラスが「ターゲット外(“off-target”)」であるかを決定する方法は、問題依存のものであるが、直感的である。「猫(“cat”)」または「非猫(not-cat)」分類子をトレーニングする場合、一意に識別可能な構造を持つクラスは1つだけである。「非猫」は、プロトタイプ的な記述を持たない。「非猫」の学習された任意の指標は、状況に応じた単なるトレーニングデータにすぎない可能性が高い。「非猫」は、オフターゲットのクラスとして定義されるべきであり、一方で、「猫」には1つ以上のプロトタイプが割り当てられる。代替的に、「猫」または「犬(“dog”)」の分類子をトレーニングする場合、どちらのクラスも一意に識別可能な構造を持っており、そして、オフターゲットのクラスをこれらのクラスに拡張する必要がある。統計的ノイズは、しばしば、オフターゲットのデータに対して簡単に合成できる。
【0092】
プロトタイプ
【0093】
IUPGネットワークは、シャムのやり方(Saiams fashion)で、ρプロトタイプの入力およびライブラリ
【数8】
プロトタイプ504を処理する(例えば、J.Bromleyら、 Signature verification using a “siamese” time delay neural network, International Journal of Pattern Recognition and Artificial Intelligence, 7:25, Aug.1993, doi:10.1142/S 0218001493000339を参照のこと)。Pは、
図5Aにおいて
【数9】
に隣接するN 506への入力として描かれている。それぞれ
【数10】
は、ネットワークの学習可能な重み付けを構成する。それぞれ
【数11】
は、トレーニングデータのサブセットに関するプロトタイプ的な情報を学習し、その結果、Nを用いて処理した後で、全てのメンバーが、
【数12】
に近く排他的にマッピングする。サブセットは、自動的に学習することができ、または、クラスラベルで指定され、その両方でもよい。
それぞれの
【数13】
を定義する一つの方法は、502に示されるように、
【数14】
それ自体の要素としてのものである。
【数15】
の要素(element)が法外に大きい、または、大きいρが望まれる場合、
【数16】
のメモリ効率の良い定義は、トレーニング入力の線形組み合わせの重み付けベクトルとしてのものである。具体的に、我々は、バイアスセットBを形成する静的トレーニングサンプルを指定する。Bの要素は、トレーニング分布に広がるようにクラスタリング技法によって選択される。我々は、次に、それぞれ
【数17】
を定義する。Nを用いて処理する前に、我々は、ドット積(dot product)
【数18】
を計算する。両方のプロトタイプ定義の種類の下で、ρに対する選択は、ドメインの知識によって導かれ、または、ハイパーパラメータ最適化技法によって発見される。ドメインの知識は、それぞれ
【数19】
の初期化を導くことができる。例えば、意味的にクラスの意味のある分割に対応し得る初期化として、クラスタの中心点を確立したい場合がある。我々は、クラスタベースの初期化は、収束までに必要とされるトレーニング時間を著しく短縮することを見い出した。
【0094】
距離関数(Distance Function)
【0095】
【数20】
におけるベクトル508は、512および514で示されるように、完全に接続されたレイヤを介して出力ベクトル空間
【数21】
510にマッピングされている。kは、クラスの数と等しい必要はない。
図5の510に示されるように、
【数22】
における
【数23】
の中間表現は
【数24】
で表され、一方で、Pの表現は
【数25】
で表される。
【数26】
と、それぞれ
【数27】
との間の距離を測定することは非常に重要である。距離Pを定義するために利用可能な多くのオプションがある(例えば、S.Ontanon, An overview of distance and similarity functions for structured data, Artificial Intelligence Review, Feb 2020, ISSN 1573-7462, doi:10.1007/s 10462-020-09821-wを参照のこと)。我々は、関数
【数28】
を定義する。これは、重み付けの学習ベクトル、
【数29】
、516によるL1距離であり、負でないこと(non-negativity)を保証するために
【数30】
を用いてスケール化した後で、各ディメンションに適用される。この関数は、満足のいく結果を提供し、その結果、我々は、より多くのオプションを検討する必要性を感じなかった。我々は、518で示されるように、調整されたシグモイド関数、
【数31】
を使用して、全ての距離が、0以上(≧)であり[0,1]間であるようにバインドする。双曲線正接関数も、また、これを実現できることに注意すること。入力
【数32】
について、距離の最終ベクトルは、520で示されるように、
【数33】
で定義される。判定は、
【数34】
における値に閾値を設定することによって行われる。
【0096】
損失関数(Loss Function)
【0097】
IUPG損失は、サンプルと、
【数35】
において指定されたプロトタイプとの間の距離を最小化し、一方で、サンプルと、全ての指定されていないプロトタイプとの間の距離を同時に最大化しようとする。提案される式1での損失関数は、各ターゲットクラスのラベル分布と、
【数36】
における最小距離のプロトタイプからクラス(prototype-to-class)への分布との間のクロスエントロピー計算の合計を最小化している。我々は、単一のサンプル
【数37】
について、損失を定義する。ここで、
【数38】
は、cターゲットクラス上で1ホット(one-hot)エンコーディングされている。1以上(≧)のターゲットクラスであり、それぞれが1以上(≧)の指定されたプロトタイプであることを仮定すると、
【数39】
について一般化損失関数は、
図5Aにおいて526で示される式1に示されている。
【0098】
【0099】
y
i=1の場合、我々は、
【数41】
522を使用して、iクラスに指定されたプロトタイプまでの距離の相対的な影響をスケール化する。ターゲット外(off-target)のサンプルについて
【数42】
をリコールする。それは、y
i=0の項(term)を必要とし、そうでなければ、損失は常に0であろう。概念的には、y
i=1の場合、我々は、
【数43】
と、クラスiの最も近いプロトタイプとの間の距離にペナルティを与える。y
i=0の場合、我々は、逆距離(inverted distance)を用いて同じことを行う。我々は、log(0)を計算するのを避けるために、Dに対して定数ε<<1を追加する。
【0100】
cターゲットクラスへのρプロトタイプの割り当ては、
【数44】
ベクトル内で指定されている。プロトタイプ
【数45】
が指定されているターゲットクラス[1,2,…,c]を
【数46】
として表示する。我々は、524で示されるように、それぞれ
【数47】
を
【数48】
である場合は、
【数49】
かつ、そうでなければ、
【数50】
で定義する。従って、
【数51】
は、
クラスiについて
【数52】
の値を線形にシフトし、その結果、指定されたプロトタイプまでの距離は、厳密に、1未満(<)であり、一方で、他の全てのプロトタイプまでの距離は、1以上(≧)である。
【数53】
を計算することは、次いで、クラスiについて設計されたプロトタイプ間の最小距離を我々に与える。
【0101】
トレーニングと推論の複雑さ
【0102】
全ての重み付けが変更されない場合、
【数54】
は、1回だけ計算されることを要し、そして、次いで、再利用することができる。
【数55】
からのマッピングの時間の複雑性は、
【数56】
であり、それは、k=cである場合に、対応するCCEと等しい。
【数57】
の進行計算は、ドット積、
【数58】
の適用、および、
【数59】
の適用で構成されており、それに応じて、
【数60】
をスケール化する。U
pが事前に計算されていると仮定すると、前の2つの演算は、推論の最中に、IUPG及びそのCCE対応に係る異なる演算を包含する。どちらも高度に並列化可能であり、そして、
【数61】
の計算と比較して通常は重要ではないことに注意すること。トレーニング中に、我々は、追加的にトレーニングバッチごとに1回、U
pを新たに計算する。このことは、各バッチに対してサンプルρを追加することと同等である。IUPGは、また、
【数62】
で学習可能な重み付けの数も増加させる。
【0103】
実験
【0104】
実験では、悪意あるJavaScript(JS)とURLの分類、だけでなく、MNIST(例えば、Yann LeCunおよびCorinna Cortes, MNIST handwritten digit database, 2010を参照のこと)、および、ファッションMNIST(例えば、Han Xiao, Kashif Rasul, およびRoland Vollgraf, Fashion-MNIST:a novel image dataset for benchmarking machine learning algorithms, 2017を参照のこと)の分類も考慮している。JSの場合、バイナリ汎用マルウェア分類問題およびマルチクラスマルウェアファミリのタグ付け問題の両方を検討している。全てのモデルは、TensorFlow(例えば、M.Abadiら, TensorFlow:Large-scale machine learning on heterogeneous distributed systems, 2015を参照のこと。そして、TensorFlowオープンソースソフトウェアはtensorflow.orgから入手可能である。)で実装され、そして、Adamオプティマイザ(例えば、Diederik P.Kingma およびJimmy Ba, Adam:A method for stochastic optimization, 2014を参照のこと)でトレーニングされる。トレーニングバッチサイズは32、学習率(learning rate)は5×10
-5が全体で使用される。全ての畳み込み層および完全に接続された層にわたり、我々は、それぞれに、ReLUとシグモイド活性化を使用する。これらのハイパーパラメータにより、IUPGとCCEでトレーニングされたネットワークの両方が、ほぼ同じ数のバッチ後に収束できる。この作業で使用された共有ハイパーパラメータは、CCE損失を使用している間に調整され、-従って、CCE対応(counterpart)にバイアスされている。IUPGの場合、我々は、全体を通じてk=32を設定する。全ての
【数63】
を定義する場合、我々は、プロトタイプの初期化を計算するためにトレーニングデータでK-means++を使用した(例えば、David ArthurおよびSergei Vassilvitskii, K-means ++: The advantages of careful seeding, In Proceedings of Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2007, pages 1027-1035, USA, 2007, Society for Industrial and Applied Mathematics, ISBN 9780898716245を参照のこと)。バイアスセットを使用して全ての
【数64】
を定義する場合、我々は、代わりにK-means++を使用してBのメンバーを決定した。我々の実験では、Nの代わりに3個の異なるネットワークを使用している。全ての設定におけるのトポロジが、後述のように、
図6で示されている。
【0105】
図6は、いくつかの実施形態に従って、(A)MNISTおよびファッションMNIST、(B)JS、および、(C)URLに使用される関数Nを示している。(A)の場合、モデルは、並列畳み込み層を含んでいる。C:128@5×5は、128個の5×5フィルタの畳み込み層である。maxP@2×2は、2×2の最大プーリングである。FCCは、完全に接続された畳み込み層である。FC:512は、512ユニットを持つ完全に接続された層である。(B)の場合、charレベルおよびトークンレベルの入力表現は、独立して処理される。EVLは、埋め込みベクトル(embedded vector)ルックアップ操作を指す。seqCompは、シーケンス圧縮操作を指す。globalmaxPは、グローバルな最大プーリング操作を指す。(C)の場合、C:128@11,3×30は、フィルタバンクで使用される2個の異なる高さを示す。文字レベル入力の場合は11、そして、トークンレベル入力の場合は3である。
【0106】
画像の分類
【0107】
簡潔にするため、MNIST(例えば、Yann LeCunおよびCorinna Cortes, MNIST handwritten digit database, 2010を参照のこと)、および、ファッションMNIST(例えばHan Xiao, Kashif Rasul,およびRoland Vollgraf, Fashion-MNIST: a novel image dataset for benchmarking machine learning algorithms, 2017を参照のこと)は、ほぼ同じように扱われる。両方のデータセットもランダムな50k-10k-10kのTrain-Test-Val(TTV)スプリットへと分割される。必要に応じて、偶然の真陽性(true positives)をファイルターアウトするために、我々は、ランダムフォレスト分類器を用いてガウス雑音画像並びにランダムなストロークの画像を生成する。画像は、最大-最小(max-min)スケーリングおよび平均減算を用いて前処理される。IUPGを使用する場合、それぞれの
【数65】
および、ターゲットクラスごとに1つのプロトタイプを指定する。
【0108】
悪意あるJSおよび静的URL分類
【0109】
悪意あるJSおよび静的URLの分類は、Webセキュリティにおいて困難なタスクである(例えば、Aurore Fass, Michael Backes,および Ben Stock, Jstap: A static pre-filter for malicious javascript detection, In Proceedings of the35thAnnual Computer Security Applications Conference, ACSAC 2019, pages 257-269, New York, NY, USA, 2019, Association for Computing Machinery;Yann LeCunおよび Corinna Cortes, MNIST handwritten digit database, 2010;Doyen Sahoo, Chenghao Liu, およびSteven C.H.Hoi, Malicious URL detection using machine learning:A survey, 2017を参照のこと)。アペンド攻撃は、無害なスクリプトに対する悪意ある注入といった、JSマルウェアの間で特に人気がある。マルウェア分類の単純ではあるが批判的な観察は、良性は、悪意のない範囲でのみ定義可能であるということである。IUPGについて、我々は、オフターゲットクラスとして良性データを定義する。つまり、モデル化のためにプロトタイプは使用されない。
【0110】
良性のJSは、Trancoリストから上位の1Mドメインをクロール(crawling)することによって収集された(例えば、Victor Le Pochat, Tom van Goethem,および Wouter Joosen, Rigging research results by manipulating top websites rankings, CorRR, abs/1806.01156, 2018を参照のこと)。Trancoのフィルタリングに加えて、我々は、最先端の商用URLフィルタリングサービスによってフラグが立てられたサンプルを無視した。我々は、悪意あるJSサンプルの主なソースとしてVirusTotal(VT)を利用した(例えば、Gaurav Sood, virustotal:R Client for the virustotal API, 2017, R package version 0.2.1を参照のこと)。我々は、経験的に合理的に正確であることが示されている少なくとも3個のVTスコア(VTS)を必要とし。悪意ある良性のURLデータは、インターネットトラフィック並びに外部データソース(例えば、VT)を介して、業界のサイバーセキュリティ企業から静的および動的なURLフィルタおよびアナライザを使用して収集された。バイナリJSマルウェアの分類に対して、我々は、良性と悪意の比率70:30、96:4、96:4ついて、それぞれに、450k-600k-600k TTVスプリットを使用した。厳密な偽陽性率(FPR)要件の下でパフォーマンスを正確に測定するために、実質的に良性のサンプルが含まれている。FPの法外なコストのために、0.1%以下(≦)のFPRが、産業サイバーセキュリティの設定において一般的である(例えば、Byte Productionsによって制作されたこのサイト、および、管理されているwww.byte-productions.com、The cost of malware containment, January 2015を参照のこと)。マルチクラスのマルウェアファミリのタグ付け分類子(tagging classifiers)を構築するために、ファミリごとに10k-1k-1kのTTVサンプルを用いて9個の異なるマルウェアファミリを分離した。マルチクラスのトレーニングデータセットを形成するために、同じ部分の良性データが追加された。OODサンプルを生成するために、我々は、良性スクリプトのトークンの順序を均等にスクランブルした。URLについて、我々は、50:50のクラス比を持つ14M-2M-2MのTTVスプリットを使用した。我々は、また、最近性バイアスをテストするために、最初の収集の1年後に別の2M、50:50のテストセットも収集した。
【0111】
図6の(B)および(C)に示されているJSとURLの分類子アーキテクチャは、NLPにおける様々な先行研究に基づいて構築されている(例えば、Xiang Zhang, Junbo Zhao,およびd Yann LeCun, In Proceedings of the 28th International Conference on Neural Information Processing Systems-Volume 1, NIPS 2015, pages649-657, Cambridge, MA, USA, 2015, MIT Press;Yoon Kim, Convolutional neural networks for sentence classification, In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, EMNLP 2014, October 25-29, Doha, Qatar, A meeting of SIGDAT, the Special Interest Group of the ACL, pages1746-1751, 2014;Michele Tufano、Cody Watson、Gabriele Bavota、Massimiliano Di Penta、Martin White、および Denys Poshyvanyk、Deep learning similarities from different representations of source code, In Proceedings of the 15
th International Conference on Mining Software Repositories, MSR 2018, pages542-553, New York,NY, USA, 2018, Association for Computing Machinery;Jack W.Stokes, Rakshit Agrawal, Geoff McDonald,および Matthew J.Hausknecht, Scriptnet:Neural static analysis for malicious javascript detection, In 2019 IEEE Military Communications Conference, MILCOM 2019, Norfolk, VA, USA, November 12-14,pages1-8, IEEE, 2019;Rie JohnsonおよびTong Zhang,Semi-supervised convolutional neural networks for text categorization via region embedding, In C.Cortes, N.D.Lawrence, D.D.Lee, M.Sugiyama,および R.Garnett, editors, Advances in Neural Information Processing Systems 28, pages919-927, Curran Associates, Inc., 2015;Rie JohnsonおよびTong Zhang, Effective use of word order for text categorization with convolutional neural networks, In Proceedings of the 2015 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pages 103-112, Denver, Colorado, May-June 2015,Association for Computational Linguistics;Yao Wang、Wan-dong Cai、および Peng-cheng Wei, A deep learning approach for detecting malicious javascript code, Sec. and Commun. Netw., 9(11):1520-1534, July 2016;そして、Hung Le, Quang Pham, Doyen Sahoo,および Steven C.H.Hoi, Urlnet:Learning URL representation with deep learning for malicious URL detection, 2018を参照のこと)。全ての入力は、2つの抽象レベルで表される。文字(chars)のストリームおよびトークンである。全てのURLは、固定の最大サイズにパディングされるが、JSファイルは、バッチごとに動的にパディングされる。トークンレベル表現の場合、(B)は、頻度に基づいて選択された学習済みトークン埋め込みベクトルの単一チャネルボキャブラリを使用する。(C)の場合、我々は、Hung Le、Quang Pham、Doyen Sahoo、Steven C.H.Hoi, Urlnet:Learning a URL representation with deep learning for malicious URL detection, 2018と同様なchar-by-wordチャンネルを含んでいる。我々は、追加的に、独立してトレーニングされた隠れマルコフモデル(Hidden Markov Model)を使用して、学習された埋め込みベクトルをスケーリングして第3ランダム性チャネルを生成する各トークンのランダム性スコアを生成する。IUPGを使用する場合、JSについて、
【数66】
は、それぞれが固定サイズである。マルチクラスモデルについて、我々は、ファミリごとに1つのプロトタイプを指定し、一方で、バイナリモデルは、経験的に選択された、悪意あるJSクラスのために指定された4個のプロトタイプを有している。URLの場合、我々は、両方
【数67】
のメンバーとして定義されている全ての
【数68】
を用いて、および、100個の悪意あるURLのバイアスセットを用いて実験する。経験的に選択されて、悪意あるURLクラスについて、それぞれに、4個および100個のプロトタイプが指定されている。
【0112】
分類(classification)パフォーマンス
【0113】
我々は、ノイズを用いたトレーニングおよびテストの異なる組み合わせで、様々なデータセットでの分類パフォーマンスを調査する。合成ノイズを用いてCCE対応をトレーニングする場合、我々は、専用のノイズクラスを拡張する。マルチクラスモデルについて、我々は、任意のターゲットクラスとして分類されるオフターゲットサンプルとしてFPを定義する。我々は、全てのターゲットクラスについて単一の信頼閾値(confidence threshold)を使用した。これを超える場合、最大信頼ターゲットクラスが予測される。表2におけるノイズなしでテストする場合、最大信頼ターゲットクラスは、常に予測される。また、
図7Bの表2を除く全ての表で、決定閾値は最大FPRに従うように設定されていることにも注意すること。結果は、適用可能な場合、様々なランダムシードを用いた5回のトライアルにわたり示されている。以下でさらに説明されるように、我々は、表1、2、3、および4にわたり、確実に安定し、または、減少した偽陰性率(FNR)、エラー割合および変動を見い出す。
【0114】
図7Aは、全ての非良性クラスにわたり、悪意あるJS分類テストセットμ±SEM FNRを含む、表1を示している。マルチクラスモデルの場合、ローショットトレーニングデータセットは、非良性クラスごとにランダムに選択された10個のサンプルで構成されている。バイナリモデルの場合には、ランダムに選択された1000個のマルウェアサンプルである。
【0115】
図7Bは、画像分類の非ノイズテストセットμ±SEMのエラー割合を含む、表2を示している。
【0116】
図7Cは、テストセットがガウスノイズ画像を含み、かつ、モデルがノイズなしでトレーニングされる場合に、画像分類のテストセットμ±SEMのエラー割合を含む、表3を示している。決定閾値は、最大FPRに従うように設定されている。
【0117】
図7Dは、悪意あるURL分類のテストセットFNRを含む、表4を示している。
【数69】
は、全ての
【数70】
を定義するためにバイアスセットが使用されたことを示している。決定閾値は、最大FPRに従うように設定されている。
【0118】
図7Eは、VTSによって編成された、0.005%のテストセットFPR設定された閾値を用いた検出を含む、表5を示している。
【0119】
表3は、また、モデルがノイズなしでトレーニングされ、そして、次いで、ノイズを含むテストセットを分類する作業が行われることを仮定すると、OOD攻撃の感受性を調査していると解釈することもできることに注意すること。表4において、我々は、IUPGが、CCEと比較して、1年間にわたって分布シフトが存在する場合のパフォーマンスをより多く保持していることが分かる。IUPGの中心的な仮説に当てはめると、IUPGネットワークのノイズ耐性機能は、良性クラスの分布シフトに対して、自然に、より堅牢である。プロトタイプ定義ストラテジは、パフォーマンスに影響を与えるように見える。悪意あるURLのクラスタは、多数であり、そして、多様である。直感的に、我々は、バイアスセットを用いて多数のプロトタイプを定義することに利益を見い出すだろう。
【0120】
中心的な仮説の追加調査として、我々は、単一IUPGモデル(例えば、
図6(B))およびJS分類用のCCEネットワークのより大きなスタック型アンサンブルをトレーニングし、そして、アンサンブルのテストセットFNRが同じFPRでIUPGモデルよりも低くなるようにした。トップランクの人気ウェブサイトから採取した5Mより大きい(>)JSサンプルの新しいコレクションを集めま。0.005%以下(≦)FPR閾値テストセットFPRを用いて、我々は、このデータセットの両方のモデルからの全ての検出をVTと相互参照した(例えば、Gaurav Sood, virustotal:R Client for the virustotal API, 2017, R package version 0.2.1を参照のこと)。高いVTSは、多数の業界サイバーセキュリティサービスプロバイダ間の悪意ある強いコンセンサスを示している。両モデルの検出のVTSが、表5に示されている。重要なことに、我々は、テストスプリットの逆のパフォーマンスギャップにもかかわらず、IUPG検出に関するVTコンセンサスがより高い方向に大きくシフトしていることが分かる。このことは、同様の分布からTTVスプリットを構築しても、より複雑な環境にモデルを展開することが多いため、強調することが重要である。
【0121】
分布外(OOD)攻撃シミュレーション
【0122】
表3における探究に加えて、我々は、IUPG及びそのCCE対応が、分布内データの信頼レベルを表す、決定閾値でOOD入力に対して偽陽性(FP)応答を生成する傾向を探究した。このように、我々は、OODサンプルに対して同様の信頼レベルを分布内(in-distribution)サンプルとして出力するモデルの異なる傾向を詳しく見ている。我々の分析結果が、
図8に示されている。
【0123】
図8は、OOD攻撃シミュレーションの結果を示している。FPRが、ターゲットクラスのテストデータで生成された全ての信頼性スコアの75-95次パーセンタイルに基づいて設定された決定閾値を持つOODテストセットにわたり測定された。(A)は、ガウス(Gaussian)OODテストセットにわたりノイズなしでトレーニングされた画像分類モデル。(B)は、ランダムストロークOODテストセットにわたりノイズなしでトレーニングされた画像分類モデル。(C)は、ランダムストロークOODテストセットにわたりガウスノイズを用いてトレーニングされた画像分類モデル。(D)は、ランダム化良性JSのOODテストセットにわたるバイナリJS分類器、である。
【0124】
ターゲットクラスのテストデータに典型的な信頼レベルを表す決定閾値を課す場合、我々は、大きなマージンで、IUPGを用いるより小さな偽陽性率(FPR)を見い出す。OODコンテンツでFPを生成する傾向が低いことにより、現実世界のシステムにおいてより緩い決定閾値を使用することができ、より高いリコールにつながる。この結果は、上述のように、より厳しいFPR要件での分類パフォーマンスギャップの拡大を裏付けるのに役立つ。
【0125】
アペンド攻撃シミュレーション
【0126】
我々は、JSマルウェア分類器のアペンド攻撃に対する脆弱性を探究した。シミュレーションの結果が、さらに以下で説明されるように、表6に示されている。エポックごとに、我々は、また、全ての良性クラスを動的に変更することも試み、その結果、全てのメンバーの33%が同じTTV分割でランダムな良性フラグメントを付加される。フラグメントには、1000文字と5000文字との間のランダムなサイズが与えられる。
【0127】
図12A-12Cは、既存のマルウェア検出ソリューションによる検出を回避することができるアペンド攻撃の様々な例を示している。
図12Aおよび
図12Bは、なぜ署名またはハッシュマッチングが一般に効果的なマルウェア検出に十分でないか、および、「耐性ゼロ(“patient zero”)」マルウェア(例えば、これらの実施例における悪意あるスクリプト)に対して、なぜ高度なMLおよびDLモデルも、また、展開されるべきか、を示している。両方は、同じ悪意あるキャンペーンの例であり、それは、多くの一意のスクリプトを生成し、そして、注入されたピースに対して異なる難読化技法を使用するので、捕捉するのは困難である。実際には、
図12B(つまり、cf9ac8b038e4a6df1c827dc31420818ad5809fceb7b41ef96cedd956a761afcd)に示されている例のハッシュ/SHA 256は、この記述の時点でVirtusTotalに既に知られてたが、一方、
図12A(つまり、a248259f353533b31c791f79580f5a98a763fee585657b15013d1bb459734ba8)に示されている例のハッシュ/SHA 256は、新しく、すなわち、以前は検出されてない。同様の例は、既存のML分類子を欺こう(fool)と試みる、ホワイトスペースおよびパディングを追加したマルウェア注入について、示すことができる。
【0128】
リダイレクタ(redirector)およびドロッパー(dropper)に加えて、公開されているIUPGフレームワークは、また、フィッシング(phishing)キット、クリックジャック(clickjacking)キャンペーン、マルバタイジング(malvertising)ライブラリ、並びに、まだ残っているエクスプロイトキットといった、JavaScript(JS)マルウェアの検出にも効果的かつ効率的である。例えば、
図12Cの同様のスクリプトは(例えば、偽のFacebookログインページを生成する、HTML内の難読化されたフィッシングJavaScriptのマルウェアスクリプトのサンプルを表示している)、regalosycconcurso 2021.blogspotといった、60を超えるウェブサイトで発見された。{al、am、bg、jp、... com、co.uk}。スクリプトは強度の難読化技法を使用しているが、それにもかかわらず、ここにおいて説明されるように、開示された技法を使用してIUPGでトレーニングされたモデルによって正確に検出できることに注意すること。
【0129】
図9は、アペンド攻撃のシミュレーション結果を含む、表6を示している。各セルは、マルウェアの割合であり、そこで、モデルは、所与のサイズの良性データの断片を文字で(in chars)で追加すると、オリジナルであるが良性の判定について悪意ある判定を生成する。マルウェアごとに20個のランダムなフラグメントがテストされる。決定閾値は、テストセットについて最大0.1%のFPRに従うように設定されている。敵対的トレーニングは、
【数71】
によって示されている。
【0130】
我々は、敵対的トレーニングの有無にかかわらず、IUPGの脆弱性とCCE対応の脆弱性との間に著しいマージンを見い出した。決定的に、トレーニングの最中に使用されるフラグメントサイズを超えるアペンド攻撃に対して保護するためのバイナリ
【数72】
モデルの失敗に注意すること。バイナリデータセットは、1つの汎用ラベルを持つ数百のマルウェアファミリを含んでおり、従って、マルチクラス分類と比較して著しく難しい問題を表していることに注意すること。我々のマルチクラスのクラスは変数がはるかに少なく、そして、従って、抽出された特徴は、より具体的であるように自由になり、-ノイズの多い良性の入力においてアクティブ化(activation)に対して影響を受けにくくしている。加えて、ブラックボックスアペンド攻撃は、大きな良性ファイルへの悪意ある注入という形を取ることができることに注意すること。現実世界の悪意あるJSインジェクションのデータセットについて、我々は、上記の「分類パフォーマンス」セクションで説明したように、上述のより大きなアンサンブルにわたり、検出数を76から2259に増やす(boost)IUPGネットワークを発見した。この実用的な結果は、表6に結果で裏付けられている。
【0131】
高速勾配符号法(Fast-Gradient Sign Method、FGSM)攻撃
【0132】
IUPGを既存の敵対者トレーニング技法と組み合わせる可能性を示すために、我々は、画像分類器を高速勾配符号法(FGSM)トレーニングプロシージャと組み合わせた(例えば、Ian J.Goodfellow, Jonathon Shlens,および Christian Szegedy, Explaining and Harnessing Adversarial Examples, arXiv e-prints, page arXiv:1412.6572, December 2014を参照のこと)。我々は、IUPGが、FGSM敵対者トレーニングの有無にかかわらず、そのCCE対応と比較して、FGSM攻撃に対して著しく高い耐性をもたらすことを発見した。これのことは、
図10A-
図10Bにおいて可視化されている。
【0133】
図10A-
図10Bは、正しく分類されたテスト画像における精度と、それに対するFGSM摂動のスケーリング係数を示している。
図10Aは、標準トレーニングを使用した結果を示している。
図10Bは、これらのモデルを上述のFGSMトレーニングプロシージャでトレーニングした場合の結果を示している。
【0134】
具体的には、
図10Bに示されるように、我々は、MNISTにおいてα=0.9、ε=0.25、および、ファッションMNISTにおいてα=0.5、ε=0.05の一般的なFGSMトレーニングパラメータを使用している。中核となる仮説に当てはめると、IUPGネットワークは、設計によって低レベルの摂動にあまり敏感ではない。このことは、特に、データのサブセット間で共有される高レベルの情報に対する排他的な感度を奨励する、IUPGのプロトタイピングのメカニズムによるものである。従って、
図10Bおよび表6の両方は、どちらか一方を単独で使用することに比べて、特別な敵対者トレーニングと組み合わせてIUPGを使用する方が優れていることを示している。かくして、マルウェアの分類および開示されているIUPG技術の同様のアプリケーションといった、様々な現実世界の環境で最大の成功を収めるためには、一般的に、強度を組み合わせることが推奨される。
【0135】
従って、我々は、IUPG学習フレームワークを提示し、そして、CCEと比較して分類ネットワークに与える影響を実証した。中核となる仮説は、IUPG固有のノイズ耐性および特徴特異性の向上によって提供される、OODコンテンツを適切に処理するためのブーストされたキャパシティ(capacity)である。この機能は、この研究で示された全ての支持的な結果を論理的に結合するものである。(1)分類パフォーマンスの向上または安定、(2)最近性バイアスによるパフォーマンス損失の減少、(3)OODノイズにおけるFPの減少、および、(4)いくつかのノイズベース攻撃に対する脆弱性の減少、である。OODコンテンツを適切に処理することは、一般的に、現実世界環境のモデルにとって重要である。有限のサンプルを用いて良性が合理的にキャプチャできない、マルウェア分類といったものである。
【0136】
上述のように、IUPGのユニークな利点は、マルウェア分類の取り組みに特に役立つ。そうしたコンテキストにおいて、アペンド攻撃は、リスクの高い偽陰性につながる可能性があり、一方で、OOD失敗は、上述のIUPG技術を使用して処理または緩和され得る、コストの高い偽陽性につながる可能性がある。例えば、IUPGは、いくつかの攻撃の種類に対する耐性を高めるように示されており、並びに、上述のように、OOD入力に対するFP応答を減らす。かくして、IUPGは、ここにおいて説明されるように、セキュリティプラットフォームを使用したマルウェアの分類と検出といった、そうしたMLシステムに使用される機械学習(ML)システムの効率とセキュリティを向上させることができる。ブラックボックス攻撃防御は、特に、プロプライエタリなシステムで利用される攻撃に関連し、ここで、攻撃者は、良性のデータを取得できるが、モデルの詳細は取得できない。ディープラーニングおよびML全般のセキュリティは、特に安全性が重要な環境における採用および有効性にとって一般的に重要である。特に関連性が高いのは、IUPGの採用から直接的に利益を得る可能性のあるサイバーセキュリティサービスプロバイダである。マルウェアの検出成功率の向上、敵対者に対する堅牢性の向上、顧客の信頼性の向上、および、デジタル世界の安全を確保するという共通の倫理的使命の促進、といったものである。
【0137】
実験に使用される例示的なJavaScript(JS)データ収集
【0138】
良性JSは、フィルタを用いて人気ウェブサイトから収集された。特に、我々は、Trancoリスト(例えば、https://tranco-list.eu/で公共的に利用可能である)から上位1Mドメインを使用した。それは、いくつかの人気リストを集計して、クリーンにし、そして、かくして、研究者によって、より正確で、かつ、クリーンなオプションであることが示された(例えば、V.L.Pochat, T.van Goethem,および W.Joosen, Rigging research results by manipulating top websites rankings, CorRR, abs/1806.01156, 2018, http://arxiv.org/abs/1806.01156で利用可能、を参照のこと)。Trancoのフィルタリングに加えて、我々は、最新の商用URLフィルタリングサービスによってフラグが立てられた5個のサンプルを無視した。我々は、悪意あるJSサンプルの主なソースとしてVirusTotal(VT)を利用した(例えば、G.Sood, virustotal:R Client for the virustotal API, 2017, URL https://www.virustotal.com, R package version 0.2.1を参照のこと)。問題は、VTの悪意あるファイルフィードは、JSスクリプトではなく、大部分が、むしろHTMLファイルを含んでいることである。HTMLファイル内の悪意あるスクリプトを正確に特定するために、我々は、VTのフィードからインラインのスニペットおよび外部から参照されるスクリプトを抽出し、そして、VTによって再び確認されるように、それらを再送信した。我々は、合理的に正確であることが経験的に示された、少なくとも3個のVTベンダーヒットを必要とした。データ収集は2014-2020年の間に実施された。タグの中で最も人気のあるトークンは、“ExpKit”、“Trojan”、“Virus”、“JS.Agent”、および“HTML/Phishing”であった。このマルウェアデータを補完するために、我々は、大手ネットワークおよび企業セキュリティ会社から親切にも提供された悪意あるエクスプロイトキット(exploit kit)を追加した。マルウェアファミリのタグ付け問題のためのマルチクラスデータを調達するために、我々は、悪意あるデータの9個のサブセットを分離した。これらのサブセットは、後述のIUPGのためのK-Means++の使用法セクションで説明される方法を用いてマルウェアデータをクラスタリングすることを通じて決定された。これらのクラスタは、一般的に、マルウェアファミリ、および、出力が視覚的に高度な類似性を持つ、いくつかの難読化技法を含んでいる。これから、各マルウェアクラスタについて以下で説明される。
【0139】
1.Angler Exploit Kitのサンプルは、被害者からのインタラクションなしにウェブブラウザ経由で悪意あるペイロードを配信することを目的としている(例えばI. Nikolaev, M. Grill,および V. Valeros. Exploit kit website detection using http proxy logs, In Proceedings of the Fifth International Conference on Network, Communication and Computing, ICNCC 2016, page 120-125, New York, NY, USA, 2016, Association for Computing Machinery, ISBN 9781450347938, doi: 10.1145/3033288.3033354. https://doi.org/10.1145/1323033288.3033354で利用可能なもの; B. Duncan. Understanding angler exploit kit - part 1: Exploit kit fundamentals, June 2016, URL https://unit42.paloaltonetworks.com/unit42-understanding-anglerexploit-kit-part-1-exploit-kit-fundamentals/; F. Howard. A closer look at the angler-exploit kit, July 2019, https://news.sophos.com/en-us/2015/07/21/a-closer-look-at-the-angler-exploit-kit/で利用可能なもの; A. Zaharia. The ultimate guide to angler exploit kit for non-technical people [updated], February 2017, URL https://heimdalsecurity.com/blog/ultimate-guide-angler-exploit kit-non-technical-people/を参照のこと)。高いトークンレベルおよび文字(char)レベルの両方のランダム性を有する。
【0140】
2.“Hea2p”スタイルの難読化は、しばしば、フィッシングキットと関連付けられる(例えば、O.Starov, Y.Zhou,およびd J.Wang, Detecting malicious campaigns in obfuscated javascript with scalable behavioral analysis, pages218-223, May 2019, doi:10.1109/SPW.2019.00048を参照のこと)。トークンレベルの類似性が高いが、文字レベルのランダム性が高い。
【0141】
3.クリックジャッカー(Clickjackers)は、ソーシャルメディアウェブサイト(idを参照のこと)において人工的な「いいね(“like”)」ボタン押しの生成に焦点を当てている。トークンレベルの類似性が高いが、文字レベルのランダム性が高い。トークンレベルおよび文字レベルの両方のランダム性が高い。
【0142】
4.“Lololo”スタイルの難読化は、トークン構造の類似性が低いが、認識可能な文字レベルのパターンを含む、出力を生成する。
【0143】
5.Nemucodは、デバイスに他のマルウェアをダウンロードして、インストールしようとする脅威のファミリであり、ランサムウェアを含んでいる(例えば、Microsoft. Js/nemucod, Mar 2015. URL https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=JS%2FNemucodを参照のこと)。高いトークンレベルおよび文字レベルの両方のランダム性を有する。
【0144】
6.様々な名前のないJSパッカーは、パックされたコードが元のスクリプトの任意の場所に存在できると仮定すると、高いトークンレベルおよび文字レベルの両方のランダム性を持つ出力を生成する。
【0145】
7.様々な名前のないJSトロイの木馬は、トークンレベルの類似性が高いが、文字レベルのランダム性が高い、(例えば、C.E.Landwehr, A.R.Bull, J.P.McDermott,および W.S.Choi, A taxonomy of computer program security flaws, ACM Comput. Surv., 26(3) :211-254, September 1994, ISSN 0360-0300.doi:10.1145/185403.185412, URL https://doi.org/10.1145/185403.185412を参照のこと)。
【0146】
8.別の様々な名前のないJSトロイの木馬は、トークンレベルの類似性が高いが、文字レベルのランダム性が高い(idを参照のこと)。
【0147】
9.様々な名前のない暗号化技術は、トークンレベルの類似性は高いが、文字レベルのランダム性が高い出力を生成する。
【0148】
図11は、いくつかの実施例に従って、Uベクトル空間のt-SNE可視化の一例である。具体的には、
図11に示されている可視化は、マルチクラスJSマルウェアファミリ分類器のトレーニング後の出力ベクトル空間の現実世界の例である。ネットワークは、ターゲット外の良性クラスを持つ凡例にリストされている9個の異なるJSマルウェアファミリを認識するようにトレーニングされた。9個のターゲットマルウェアファミリクラスそれぞれは、割り当てられた1つのプロトタイプを中心に緊密にグループ化されており、一方で、良性データはセンターに向かって、より任意にマッピングされている。この可視化は、検証データのマッピングされた表現および出力ベクトル空間のプロトタイプにt-SNEを使用して作成されたものである(例えば、van der Maaten&Hinton, G.E. (2008), Visualizing High-Dimensional Data Using t-SNE, Journal of Machine Learning Research, 9 (November)、 pages2579-2605を参照のこと)。
【0149】
IUPGに対するK-Means++の使用法
【0150】
K-means++が、我々のIUPG実験について活用された(例えば、D.Arthur およびS.Vassilvitskii, K-means ++: The advantages of careful seeding, In Proceedings of Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2007, pages1027-1035, USA, 2007, Society for Industrial and Applied Mathematics, ISBN 9780898716245を参照のこと)。クラスタリングは、インテリジェントなIUPGプロトタイプ初期化を発見するために使用されることを思い出すこと。我々は、この研究の中でMNIST (例えば、Y.LeCun およびC.Cortes, MNIST database of handwritten digits, 2010, URL http://yann.lecun.com/exdb/mnist/を参照のこと)および悪意あるJSデータセットの両方をクラスタリングするために、K-means++(idを参照のこと)を使用した。
【0151】
MNISTクラスタリング
【0152】
我々は、まず、各桁(digit)クラスをトレーニングデータ内で一緒にグループ化し、そして、各サブグループを個別にクラスタ化した。各桁サブグループで、我々は、主成分分析(PCA)を使用して、各イメージを上位75個の主成分ベクトルに投影した(例えば、I.Jolliffe およびSpringer-Verlag, Principal Component Analysis, Springer Series in Statistics, Springer, 2002, ISBN 9780387954424, URL https://books.google.com/books?id=_olByCrhjwICを参照のこと)。我々は、これらの圧縮表現にわたり、K=1でK-means++クラスタリングを実行した。我々は、クラスタリングについてユークリッド距離を使用した。我々は、次いで、結果として得られるクラスタの中心から桁サブグループ内の全ての画像までのユークリッド距離(Euclidean distance)を計算した。クラスタの中心に最も近いトレーニング画像が、プロトタイプの初期化として選択される。選択された画像ピクセルは、潜在的なオーバーフィッティングを避けるために、ガウスノイズでわずかに摂動された。
【0153】
悪意あるJSクラスタリング
【0154】
全ての良性データにオフターゲットラベルが割り当てられているので、我々は、最初に、54個の悪意あるサンプルを一緒にグループ化した。マルチクラスモデルについて、我々は、マルウェアファミリを一緒にグループ化し、そして、それぞれ1つを個別にクラスタ化した。バイナリモデルについて、我々は、全てのマルウェアサンプルを同時にクラスタ化した。我々は、さらに、各悪意あるサンプルのトークンシーケンス表現のみを分離し、
【数73】
そして、文字シーケンス表現
【数74】
を破棄した。我々は、トークン語彙(vocabulary)v
t上のTerm Frequency Inverse Document Frequency(TF-IDF)ベクトルを計算することによって、トークンインデックスの各シーケンスをベクトル化した(例えば、C.Sammut およびG.I.Webb, editors, TF-IDF, pages986-987, Springer US, Boston, MA, 2010, ISBN 978-0-387-30164-8, doi:10.1007/978-0-387-30164-8_832, available at https://doi.org/10.1007/978-0-387-30164-8_832を参照のこと)。我々は、バイナリモデルについてはK=ρ、および、マルチクラスモデルについてはK=1を用いて、各悪意あるサンプルのTF-IDFベクトル表現に対してK-means++を実行した。我々は、クラスタリングについてユークリッド距離を使用た。我々は、次いで、結果として得られるクラスタの中心から桁サブグループ内の全ての画像までのユークリッド距離を計算した。クラスタの中心に最も近いトレーニングマルウェアサンプルがプロトタイプ初期化として選択されている。全ての埋め込みベクトルの初期化後、各プロトタイプ(Pc,Pt)は、選択されたマルウェアサンプルからの対応する(X^
c;X^
t)として初期化される。各(Pc,Pt)は、過剰適合の可能性を避けるためにガウスノイズによってわずかに摂動された。
【0155】
マルウェアJavaScript分類のための例示的なIUPGフレームワーク
【0156】
図13は、いくつかの具体例に従って、マルウェアJavaScript分類のためのIPUGフレームワークを示している。JavaScriptドキュメント1302は、OpenNMTトークナイザ(Tokenizer)1304(例えば、https://github.com/OpenNMT/Tokenizerで利用可能なオープンソースのトークナイザ)を使用してトークン化され、文字エンコーディング(Char Encoding)1310としてエンコーディングされた文字(Chars)(文字トークン)1306およびトークンエンコーディング(Token Encoding)1312としてエンコーディングされたトークン1308を生成する。トークン化の後には、CCE CNN特徴抽出器1314およびIUPG CNN特徴抽出器1316(例えば、JSマルウェア分類コンテキストに対して適用できる、開示されたIUPG技法を使用して、上記と同様に実装されるもの)を含むCNN特徴抽出器のアンサンブルが続き、XGB分類器1318が続き、より効果的かつ効率的なJSマルウェア検出ソリューション(例えば、上記と同様なアペンド攻撃といった、潜在的な敵対的回避技法に対してより堅牢である)を促進するために、上記のCCE CNNおよびIUPG CNN分類技法の組み合わせを使用して、CNN特徴抽出器のアンサンブルに基づいて、1320で示されるようなJSマルウェア分類判定を生成する。
【0157】
開示されるIUPGフレームワークおよび技法は、同様に、URLフィルタリングセキュリティソリューションといった、URL分類、及び/又は、今では当業者にとって明らかであるような様々なセキュリティソリューションのための他のコンピュータ/ネットワークのセキュリティ分類/検出に適用することができる。
【0158】
開示されたIUPG技法を実行するための例示的なプロセスの実施形態が、以下で、さらに、説明される。
【0159】
マルウェア分類について推定無罪モデルを使用するための例示的なプロセスの実施形態
【0160】
図14は、いくつかの実施例に従って、マルウェア分類について推定無罪(IUPG)モデルを使用してサンプルの静的分析を実行するプロセスの一例である。いくつかの実施形態において、プロセス1400は、セキュリティプラットフォーム122によって、そして、特には、アナライザおよび検出器154によって実行される。例えば、アナライザおよび検出器154は、適切なスクリプト言語(例えば、Python)で作成されたスクリプト(または、スクリプトのセット)を使用して実装することができる。いくつかの実施形態において、プロセス1400は、データ装置102によって、そして、特には、脅威エンジン244によって実行される。例えば、脅威エンジン244は、適切なスクリプト言語(例えば、Python)で作成されたスクリプト(または、スクリプトのセット)を使用して実装することができる。いくつかの実施形態において、プロセス1400は、また、クライアントデバイス110といった、エンドポイントでも実行することができる(例えば、クライアントデバイス110上で実行されるエンドポイント保護アプリケーションによる)。いくつかの実施形態において、プロセス1400は、また、以下でさらに説明されるように、セキュリティプラットフォーム122を使用するといった、クラウドベースのセキュリティサービスによっても実行することができる。
【0161】
プロセス1400は、セキュリティ分析のための1つ以上のIUPGモデルを含むセットがネットワークデバイスに保管される、1402で開始する。例えば、JSコード、HTMLコード、及び/又は、他のプログラミング/スクリプト言語といった、IUPGモデル、並びに、URLといった他の構造化テキストまたは画像といった非構造化コンテンツは、上記の技法を使用してトレーニングおよび検証データに基づいて、生成することができる(例えば、かつ/あるいは、定期的に更新され/交換される)。
【0162】
1404では、少なくとも1つの保管されたIUPG分類モデルを使用して、ネットワークデバイスで受信されたサンプルに関連付けられたコンテンツの静的分析が実行される。データ装置102及び/又はクライアントデバイス110といった、1404で実行される処理の一例として、所与のセッションについて、関連付けられたプロトコルデコーダは、プロトコルデコーダによってファイルの開始が検出されたときに、適切なファイル固有のデコーダを呼び出し(call)、または、そうでなければ利用することができる。上述のように、ファイルタイプが決定され(例えば、デコーダ402によって)、そして、セッションに関連付けられる。別の例示的な実装において、ファイルは、クラウドベースのセキュリティサービスに送信することができる(例えば、Palo Alto Networks社によって提供される市販のクラウドセキュリティサービスである、WildFireTMクラウドベースのマルウェア分析環境といった、市販のクラウドベースのセキュリティサービスは、マルウェアのサンプルの自動セキュリティ分析、並びに、セキュリティ専門家の分析を含んでおり、または、他のベンダーによって提供される同様のソリューションを利用することができる)。
【0163】
1406では、受信したサンプルに関連付けられたコンテンツの静的分析に少なくとも部分的に基づいて、サンプルが悪意あるものであるか否かが判断される。一実装例では、適切なIUPGモデルを使用して(例えば、JSサンプルのJSコードにIUPGモデルを適用する、HTMLサンプルのHTMLコードにIUPGモデルを適用する、等)、ファイルについてクラス判定を悪意または良性として決定する(すなわち、IUPGモデルを使用して得られた最終値を、上記と同様な、適切なコンテンツについてトレーニングされたCCE CNNモデルといった1つまたは他の分類モデルと組み合わせて、比較する)。
【0164】
1408では、サンプルが悪意あるものだとの判断に応答して、セキュリティポリシに基づいてアクションが実行される。具体的には、1406での判断に応答してアクションが実行される。応答アクションの一例は、データ装置102及び/又はクライアントデバイス110の場合は、セッションを終了することである。応答アクションの別の例は、データ装置102及び/又はクライアントデバイス110の場合は、セッションの継続を許可するが、ファイルがアクセスされ、かつ/あるいは、送信されっることを防ぐことである(そして、代わりに、検疫エリアに置かれている)。さらに別の応答アクションの例は、セキュリティプラットフォーム122の場合は、サンプルが悪意あるものであるという判断を、分析のためにサンプルを送信した加入者(例えば、データ装置102及び/又はクライアントデバイス110)に送信することであり、その加入者にサンプルが悪意あるものと判断されたことを通知して、その結果、加入者がローカルに設定されたセキュリティポリシに基づいて応答を実行することができる。様々な実施形態において、セキュリティプラットフォーム122、装置102、及び/又は、クライアントデバイス110は、その評決(良性の評決か、悪意ある評決か、または、その両方か)を1つ以上の他のデバイス/プラットフォーム(例えば、セキュリティプラットフォーム122、装置102、及び/又は、クライアントデバイス110、等)と共有するように設定されている。一例として、セキュリティプラットフォーム122がサンプルの独立した分析を完了すると、装置102によって報告された評決を、評決を形成したモデルのパフォーマンスの評価(assessing)を含む、様々な目的に使用することができる。
【0165】
一つの例示的な実施形態において、セキュリティプラットフォーム122は、データ装置102といった装置による使用のためのモデルを生成するときに、特定の偽陽性率(例えば、0.01%)をターゲットにするように設定されている。従って、場合によって(例えば、1000ファイル毎に1の割合)、ここで説明する技法に従ってモデルを使用してインライン分析を実行する場合、データ装置102は、良性ファイルを悪意あるものであると誤って判断する可能性がある。そうしたシナリオでは、セキュリティプラットフォーム122が、その後に、ファイルが実際には良性であると判断した場合、それをホワイトリストに追加することができ、その結果、その後に悪意あるファイルとして(例えば、別の装置によって)フラグが立てられない。
【0166】
セキュリティソリューションのための敵対的耐性および偽陽性耐性のあるディープラーニングモデルを構築するための例示的なプロセスの実施形態
【0167】
図15は、いくつかの実施例に従って、マルウェア分類について推定無罪(IUPG)モデルを生成するためのプロセスの一例である。具体的には、マルウェア分類について推定無罪(IUPG)モデルを生成するための一つの例示的なプロセスが
図15に示されている。様々な実施形態において、プロセス15はセキュリティプラットフォーム122によって実行される(例えば、モデルビルダ152を使用する)。
【0168】
プロセス1500は、静的分析に基づいて悪意あるコンテンツおよび良性コンテンツを分類するための推定無罪(IUPG)モデルをトレーニングするためのトレーニングデータを受信したとき、1502で開始される(例えば、トレーニングデータは、JSファイル、HTMLファイル、URL、等といった、適切なトレーニングコンテキストのファイルのセットを含んでいる)。
【0169】
1504では、入力ファイルのセットからトークンのセットを抽出し、文字エンコーディングとトークンエンコーディングを生成する。上記のように、JSファイルといった、入力ファイルのセットから抽出された文字および他のトークンのセットに基づいてコンテンツをトークン化するための様々な技法が公開されている。
【0170】
1506では、IUPG CNN特徴抽出器が生成される。上記と同様に、異なる抽象レベル/レイヤに基づく追加の特徴ベクトルは、また、入力ファイルのセットから抽出される異なる表現に基づいて生成することもできる。
【0171】
1508では、サンプルの静的分析に基づいて悪意あるコンテンツと良性コンテンツを分類するために、IUPG CNN特徴抽出器を、1つ以上の他のCNNベースの特徴抽出器(例えば、CCE CNN特徴抽出器またはCNNベースの特徴抽出器の別の形態)とアンサンブルすることが実行される。一実施形態において、IUPGベースのCNN特徴抽出器およびCCEベースのCNN特徴抽出器のアンサンブルに続いて、XGB分類器が生成される。同様に説明されるように、サンプルの静的分析に基づいて、悪意あるJSコンテンツおよび良性JSコンテンツを分類するため、などである。
【0172】
上記と同様に、また、1つ以上のプログラミング/スクリプト言語または他のコンテンツのための様々なIUPGモデルは、オープンソースまたは他のツールを使用して構築することができ、そして、必要に応じて、上記のようなハイパーパラメータチューニングを実行することができる。これは、例えば、異なるコンピューティングリソース(例えば、これらのIUPGモデルを処理するために利用可能な、メモリリソース、プロセッサ/CPUリソース、等)を有し得る、様々なコンピューティング環境で実行/実施されるサンプルの静的分析ベースの分類のために、これらのIUPGモデルを効率的に実行するようにチューニングすることができる。また、IUPGモデル(例えば、プロセス1500を使用してモデルビルダ152によって生成されたもの)は、データ装置102、クライアントデバイス110、及び/又は、他の該当する受信者(例えば、データ装置136および148、等)に対して送信することができる(例えば、サブスクリプションサービスの一環として)。
【0173】
様々な実施形態において、モデルビルダ152は、IUPGモデル(例えば、1つ以上のタイプのソースコード、つまり、上記のような異なるプログラミング/スクリプト言語、及び/又は、他のコンテンツのためのIUPGモデル)を毎日または他の適用可能/定期的ベースで生成する。プロセス1500を実行すること、または、そうでなければ、定期的にモデルを生成することにより、セキュリティプラットフォーム122及び/又はクラウドベースのセキュリティサービスは、様々なセキュリティ分類モデルが最新の種類のマルウェア脅威(例えば、極悪な個人によって最近に展開されたもの)を検出することを確実にするのに役立つ。
【0174】
上記の実施形態は、理解を明確にする目的のため、ある程度詳細に説明されているが、本発明は、提供される詳細に限定されるものではない。本発明を実施する多くの代替的な方法が存在している。開示された実施形態は例示的なものであり、かつ、制限的なものではない。