(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-19
(54)【発明の名称】既知及び/又は未知のサイバーセキュリティ脅威の形態素解析によりデータ異常を検出するシステム及び方法
(51)【国際特許分類】
G06F 21/56 20130101AFI20220412BHJP
G06F 21/64 20130101ALI20220412BHJP
【FI】
G06F21/56
G06F21/64
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021505691
(86)(22)【出願日】2020-07-30
(85)【翻訳文提出日】2021-03-23
(86)【国際出願番号】 SG2020050441
(87)【国際公開番号】W WO2021183043
(87)【国際公開日】2021-09-16
(31)【優先権主張番号】10202002125Q
(32)【優先日】2020-03-09
(33)【優先権主張国・地域又は機関】SG
(32)【優先日】2020-06-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521039954
【氏名又は名称】フレクソン ピーティーイー. リミテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】チャン,メイ リン
(72)【発明者】
【氏名】ボウグエッラ,ニザール
(57)【要約】
本明細書は、異常なデータファイルを検出すると共に、検出された異常なデータファイルがデータストレージに保存されるのを防止するシステム及び方法を記載する。特に、本システム及び方法は、各データファイルをデータのブロックに分割することにより異常なデータファイルを検出することにより、各データブロックにエントロピー値が得られ、当該情報を照合し、その後機械学習モデルで使用してデータファイルのセキュリティレベルを確認する。
【特許請求の範囲】
【請求項1】
受信したデータオブジェクト内のデータ異常を検出するシステムであって、
処理部と、
前記処理部により可読な非一時的な媒体とを含み、前記媒体が命令を保存し、前記命令が前記処理部により実行された場合、前記処理部に、
前記データオブジェクトのデジタル署名及びファイル種類に基づいて前記データオブジェクトのセキュリティ体制を判定させ、
前記セキュリティ体制及び前記セキュリティ体制に関連付けられた前記データオブジェクトの特徴に基づいてタイプセキュリティプラットフォーム(TSP)参照表を生成させると共に、前記TSP参照表に基づいて前記受信したデータオブジェクトに対して難読化値及びフォレンジック値を生成させ、
前記データオブジェクトの分解値又は解釈値を生成させ、
前記受信したデータオブジェクトの各ブロックに結果値を計算させることにより、前記各ブロックに前記受信したデータオブジェクトの前記ブロックに関連付けられた前記分解値又は解釈値、難読化値及びフォレンジック値に基づいて前記結果値を生成させ、
前記データオブジェクトの全ての前記結果値に基づいてデータモデルを構築させ、
人工知能(AI)アルゴリズムを用いて前記データモデルを処理させて前記データオブジェクトがデータ異常を含むか否かを判定させる、システム。
【請求項2】
前記受信したデータオブジェクトに対して難読化値を生成する前記命令が前記処理部に、
前記データオブジェクトを複数のデータブロックに分割させ、
各データブロックにシャノンエントロピー値を計算させる命令を含んでいる、請求項1に記載のシステム。
【請求項3】
前記受信したデータオブジェクトに対してフォレンジック値を生成する前記命令が前記処理部に、
前記データオブジェクトを複数のデータブロックに分割させ、
頻度に基づく類似度ハッシングスキームを用いて各データブロックに類似度スコアを計算させる命令を含んでいる、請求項1又は2に記載のシステム。
【請求項4】
前記受信したデータオブジェクトの各ブロックに前記結果値を生成する前記命令が前記処理部に、
受信したデータの各ブロックに3バイトを含む結果値を生成させる命令を含み、これにより各ブロックに前記命令が前記処理部に、
前記データオブジェクトの前記分解又は解釈値に基づいて、前記結果値の第1バイトの最上位ビット(MSB)及び第2位のMSBを設定させ、
前記第1バイトの残りのビットを前記結果値の第2バイトと照合して構文解析させると共に、前記ブロックに関連付けられた前記難読化値に基づいて前記構文解析の結果を設定させ、
前記ブロックに関連付けられた前記フォレンジック値に基づいて第3バイトの値を設定させる、請求項1に記載のシステム。
【請求項5】
前記データオブジェクトの全ての前記結果値に基づいてデータモデルを構築する前記命令が前記処理部に、
データ画像モデルを生成させる命令を含み、これにより前記データ画像モデル内の各ピクセルが一意な結果値に関連付けられ、各々の一意な結果値が前記データ画像モデル内で一意な画像により表される、請求項1に記載のシステム。
【請求項6】
前記データモデルの処理に用いる前記AIアルゴリズムが、
畳み込みニューラルネットワーク(CNN)モデル、ディープニューラルネットワーク(DNN)モデル又は再帰的ニューラルネットワーク(RNN)モデルを含んでいる、請求項5に記載のシステム。
【請求項7】
前記人工知能(AI)アルゴリズムを用いて前記データモデルを処理する前記命令が前記処理部に、
前記データモデルをデータベース内に含まれるデータモデルと比較させる命令を含み、前記比較が機械学習アルゴリズムを用いて実行される、請求項1に記載のシステム。
【請求項8】
前記媒体が、前記処理部に、
前記データオブジェクトを受信及び保存すべく構成された仮想ファイルシステムを提供させる命令を更に含み、これにより前記仮想ファイルシステムが前記処理部に前記仮想ファイルシステム内の全てのステップを実行させる、請求項1に記載のシステム。
【請求項9】
前記デジタル署名が前記データオブジェクトに関連付けられたマジックナンバーを含んでいる、請求項1に記載のシステム。
【請求項10】
前記セキュリティ体制に関連付けられた前記データオブジェクトの前記特徴が、前記データオブジェクトのプラットフォーム種類及びファイル種類を含んでいる、請求項1に記載のシステム。
【請求項11】
人工知能(AI)モジュールを用いて受信したデータオブジェクト内のデータ異常を検出する方法であって、
前記AIモジュール内に設けられた解析器モジュールを用いて、前記データオブジェクトのデジタル署名及びファイル種類に基づいて前記データオブジェクトのセキュリティ体制を判定することと、
前記AIモジュール内に設けられた前記解析器モジュール及び検出器モジュールを用いて、前記セキュリティ体制及び前記セキュリティ体制に関連付けられた前記データオブジェクトの特徴に基づいてタイプセキュリティプラットフォーム(TSP)参照表を生成すると共に、前記TSP参照表に基づいて前記受信したデータオブジェクトに対して難読化値及びフォレンジック値を生成することと、
前記AIモジュール内に設けられた分解及び解釈モジュールを用いて、前記データオブジェクトの分解値又は解釈値を生成することと、
前記AIモジュール内に設けられたブロック構築モジュールを用いて、前記受信したデータオブジェクトの各ブロックの結果値を計算することにより、前記各ブロックの前記結果値を前記分解又は解釈値、前記受信したデータオブジェクトの前記ブロックに関連付けられた難読化値及びフォレンジック値に基づいて生成することと、
前記AIモジュール内に設けられたモデル生成器モジュールを用いて、前記データオブジェクトの全ての前記結果値に基づいてデータモデルを構築することと、
前記AIモジュール内に設けられたAI脅威モジュールを用いて、人工知能(AI)アルゴリズムを用いて前記データモデルを処理して、前記データオブジェクトがデータ異常を含むか否かを判定することと、を含む方法。
【請求項12】
前記受信したデータオブジェクトに対して前記難読化値を生成するステップが、
前記データオブジェクトを複数のデータブロックに分割するステップと、
各データブロックにシャノンエントロピー値を計算するステップと、を含む、請求項11に記載の方法。
【請求項13】
前記受信したデータオブジェクトに対してフォレンジック値を生成するステップが、
前記データオブジェクトを複数のデータブロックに分割するステップと、
頻度に基づく類似度ハッシングスキームを用いて各データブロックに類似度スコアを計算するステップと、を含む、請求項11又は12に記載の方法。
【請求項14】
前記受信したデータオブジェクトの各ブロックに前記結果値を生成するステップが、
受信したデータの各ブロックに3バイトを含む結果値を生成するステップを含み、これにより各ブロックに対して、前記方法が、
前記データオブジェクトの前記分解又は解釈値に基づいて前記結果値の第1バイトの最上位ビット(MSB)及び第2MSBを設定し、
前記第1バイトの残りのビットを前記結果値の第2バイトと照合して構文解析し、前記ブロックに関連付けられた前記難読化値に基づいて前記構文解析の結果を設定して、
前記ブロックに関連付けられた前記フォレンジック値に基づいて第3バイトの値を設定する、請求項11に記載の方法。
【請求項15】
前記データオブジェクトの全ての前記結果値に基づいてデータモデルを構築するステップが、
データ画像モデルを生成することにより、前記データ画像モデルの各ピクセルが一意な結果値に関連付けられ、各々の一意な結果値が前記データ画像モデル内で一意な画像により表されるステップを含む、請求項11に記載の方法。
【請求項16】
前記データモデルの処理に用いる前記AIアルゴリズムが、
畳み込みニューラルネットワーク(CNN)モデル、ディープニューラルネットワーク(DNN)モデル、又は再帰的ニューラルネットワーク(RNN)モデルを含む、請求項15に記載の方法。
【請求項17】
前記人工知能(AI)アルゴリズムを用いて前記データモデルを処理するステップが、
前記データモデルをデータベース内に含まれる複数のデータモデルと比較するステップを含み、前記比較が機械学習アルゴリズムを用いて実行される、請求項11に記載の方法。
【請求項18】
前記データオブジェクトの前記デジタル署名及び前記ファイル種類に基づいて前記データオブジェクトの前記セキュリティ体制を判定するステップの前に、
前記解析器モジュールを用いて、前記データオブジェクトを受信及び保存する仮想ファイルシステムを提供することにより、前記仮想ファイルシステムが前記仮想ファイルシステム内で前記方法の全てのステップを実行させるステップを更に含む、請求項11に記載の方法。
【請求項19】
前記デジタル署名が前記データオブジェクトに関連付けられたマジックナンバーを含む、請求項11に記載の方法。
【請求項20】
前記セキュリティ体制に関連付けられた前記データオブジェクトの前記特徴が、前記データオブジェクトのプラットフォーム種類及びファイル種類を含む、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、異常なデータファイルを検出すると共に、検出された異常なデータファイルがデータストレージに保存されるのを防止するシステム及び方法に関する。特に、本システム及び方法は、各データファイルをデータのブロックに分割して異常なデータファイルを検出することにより各データブロックにエントロピー値が得られ、当該情報を照合し、その後機械学習モデルで使用してデータファイルのセキュリティレベルを確認する。
【背景技術】
【0002】
先行技術の要約
今日のデジタル時代において、コンピュータシステムが様々な形式及び種類の悪意あるサイバー攻撃に晒される機会が増えている。これらの攻撃の目的はコンピュータシステムに違法にアクセスすることであり、典型的にはシステム管理者の知らない間にコンピュータシステムにインストールされた悪意あるソフトウェア(「マルウェア」としても知られる)を介して実行される。マルウェアは、システムのネットワーク(例:電子メール又はウェブサイト)から、システムに挿入されたCD-ROM、又はシステムに接続された外部記憶装置を介して様々な仕方でコンピュータシステムにインストールされ得る。マルウェアがシステムへのアクセスに成功した場合、(例えばバックドアを設けることにより)システムのセキュリティを破り、機微情報にアクセスして、最も重要なファイルを削除することによりシステムを誤動作させて壊滅的損害を与える恐れがある。
【0003】
一旦マルウェアがインストールされてしまえば、益々検出が極めて困難になるため攻撃者によりコンピュータシステムが容易に乗っ取られることが一般に認識されている。
【0004】
上述の問題に対処すべく、当業者は、このようなマルウェア又はデータがコンピュータシステムに侵入できる前に識別すべきであると提案している。これによりマルウェアが識別されたならば分類されて、当該マルウェアにより生じ得る損害の程度をよく把握して、再びマルウェアが生じても損害を防止することができる。マルウェアを識別すべく提案されてきた各種の技術には、時間的解析及びライブ更新アプローチが含まれ、これらを用いてデータベースを更新し、当該データベースを用いて既知の悪意ある主体をフィルタリングして、保護対象のコンピュータシステムに悪影響を及ぼし得ないようにする。
【0005】
最初に、最も分かり易い方法は、プログラムが動作中に疑わしいプログラムをシステム管理者が手動で解析することであろう。管理者は次いで結果を見て、当該プログラムをマルウェア又は信頼できるソフトウェアのどちらとして扱うべきかを判定する。管理者は、プログラムを解析する間にプログラムを逆コンパイルして、コードの特定の行を調査するか又はコンピュータシステム及び/又は外部機器と対話するアプリケーションプログラムインターフェース(API)呼び出しに特別な注意を払って、これらの呼び出しが悪意ある挙動を示すか否かを判定し得る。このようなアプローチは徹底的且つ詳細であるが、極めて長い時間を要し非効率的である。従って当業者は代替的な自動化された方法を提案してきた。
【0006】
時間的解析アプローチでは、影響を受けたシステム内でのあらゆる動作をソートし、時系列的に確認することにより特定期間内に生じた疑わしいイベントを精査することができる。このようなイベントとして、アクセス/インストール/削除/変更されたファイル、ユーザー入力のログ、開始又は終了した処理(バックグラウンド処理を含む)、当該期間中にリモートアクセスされたネットワークポート等が含まれていてよい。マルウェアのインストールを許したイベントが検出されたならば、コンピュータシステムの脅威分類システムは適宜更新され、そのようなイベントの再発生を防止することができる。
【0007】
ファイル及びイベントログ等の静的履歴データの確認の代替案として、プログラムの動作中にライブプログラムやシステムメモリの内容を確認し、コンピュータシステムの使用中に、攻撃者がどのように内容を変更したかを識別すべく現在のネットワークポートの動作、及び他の種類のメタデータを確認するライブ更新法である。次いで当該方法から得られた情報を用いて当該システムの脅威分類システムを更新してもよい。
【0008】
更新された脅威分類システムは次いで、システムに導入する新規ファイルの確認に用いてもよい。これは新規ファイルの特性を以前に遭遇した既知のファイルのデータベースと比較することにより行われる。このような比較は典型的に、比較するデータを暗号的にハッシュすることにより、すなわち数学的関数を適用してデータをコンパクトな数値表現に変換することにより行われる。従って同一アルゴリズムを用いて生成された2個のハッシュが異なる場合、新規ファイルが汚染された可能性があることを示唆するものと仮定する。
【0009】
上で提案したアプローチの短所は、ゼロデイ型のマルウェアがコンピュータシステムに影響を及ぼすのを防止できず、以前に検出されたものと同じマルウェアの再発生の防止に役立つのに過ぎない点である。換言すれば、これらのマルウェアに僅かでも修正がなされていれば、当該マルウェアがシステムの防御をすり抜けてコンピュータシステムに影響を及ぼす可能性が高い。
【0010】
潜在的に乗っ取られたコンピュータシステム上での疑わしい活動を識別すべく提案されてきた他の技術は多くの場合大量のデータを生成し、脅威分類システムの更新に使用し得る前にこれら全てを確認及び解釈しれなければならない。更に厄介なのは、マルウェア自体が常に進化しており、自身の存在をカモフラージュすべく各種の方法を用いることにより既存の検出方法を迂回する新たな手口を発展させているため、コンピュータセキュリティシステムの役割を果たすことが更に困難になっている。これらの技術のいくつかは、システムのログファイルエントリ、ファイル変更/アクセス日付、及びシステム処理等、システムへの侵入の証拠の削除を含んでいる。上記に加え、名前又は実行プロファイルをあたかも無害なものに見せかけるように変更することによりマルウェア自体の素性を難読化してマルウェアを効果的にカモフラージュすることができる。
【0011】
しかし、データが暗号化、圧縮、又は難読化(難読化の方法に依存)されている場合、そのエントロピー値、すなわち乱雑性の程度は「組織化された」データよりも高い傾向がある。換言すれば、ユーザーが生成したドキュメント及びコンピュータプログラムは一般に、デバッグが容易なように構造化及び組織化されている傾向がある一方、暗号化されたデータはエントロピーの測定値が高い傾向がある。
【0012】
エントロピーの測定値がマルウェア又は攻撃者の隠されたデータ保存場所を確実に識別する方法ではないことが認識されている。正当なプログラムは、暗号化された、又はより一般的には圧縮された情報、をコンピュータシステムに保存することができる。しかし、極めて基本的なレベルにおいて、エントロピーの検査は潜在的に問題を含むプログラムの識別に優れた初期フィルタを提供する。これにより、極めて詳細な解析を要するデータの量が大幅に減る。
【0013】
しかし、データブロック毎にエントロピー値を生成する仕方に起因して、あるデータブロックが、当該データブロックの特定の区画が実際に少数の難読化されたマルウェアのブロックを含んでいる恐れがある場合に、低いエントロピー値を返す可能性がある。そのようなシナリオが起こり得るのは、攻撃者が比較的低いエントロピーを有するデータブロックに暗号化されたマルウェアを配置することによりマルウェアの存在を効果的にマスキングした場合である。
【0014】
上記に鑑みて、コンピュータシステム内におけるマルウェアの存在を検出すべくエントロピーの確固たる測定値を導出すると共に、検出処理中に生成された偽陽性の個数を減らす技術が最も望ましい。
【0015】
上述の理由により、当業者は常に、データファイルに適したエントロピー値を生成し、これらのエントロピー値及びデータファイルに関する他の情報を教師付き機械学習モデルに提供して、そのようなファイルがコンピュータシステムの記憶装置に保存される前に異常なデータファイルを検出及び識別可能なシステム及び方法に想到すべく努めている。
【発明の概要】
【課題を解決するための手段】
【0016】
発明の概要
本発明による複数の実施形態で提供するシステム及び方法により上記及び他の課題が解決され且つ当技術分野が発展する。
【0017】
本発明によるシステム及び方法の複数の実施形態の第1の利点は、ゼロデイ型の異常なファイルを効果的且つ効率的に識別できることである。
【0018】
本発明によるシステム及び方法の複数の実施形態の第2の利点は、未だ脅威として指定又は認識されていない異常なファイルを遮断し、当該情報を用いてシステムの脅威識別器を訓練して同様のマルウェアの進化を防止することである。
【0019】
本発明によるシステム及び方法の複数の実施形態の第3の利点は、システムに導入されたファイル種類に依らず、当該ファイルを解析してその脅威値を判定することである。
【0020】
本発明によるシステム及び方法の複数の実施形態の第4の利点は、データフラッシュコントローラのフロントエンドマネージャがファイルにより実行されるコマンドを常時サンプリングすべく構成されているため、システムに導入された(且つデータファイルを一切含み得ない)ファイルの種類及び/又はサイズに依らず、ファイルにより起動された任意の読み出し/書き込み/上書きコマンドが解析されることである。サンプリング周期は数百ミリ秒~数十秒の範囲で可変であり得、またこうすることによりランサムウェア攻撃からシステムを守る。
【0021】
上述の利点は、以下のように動作する本発明による方法の複数の実施形態によりもたらされる。
【0022】
本発明の第1の態様によれば、受信したデータオブジェクト内のデータ異常を検出するシステムを開示し、本システムは、処理部と、当該処理部により可読な非一時的な媒体とを含み、当該媒体は複数の命令を保存し、当該命令が処理部により実行された場合、処理部に、データオブジェクトのデジタル署名及びファイル種類に基づいてデータオブジェクトのセキュリティ体制を判定させ、セキュリティ体制及びセキュリティ体制に関連付けられたデータオブジェクトの特徴に基づいてタイプセキュリティプラットフォーム(TSP)参照表を生成させると共に、TSP参照表に基づいて受信したデータオブジェクトに対して難読化値及びフォレンジック値を生成させ、データオブジェクトの分解値又は解釈値を生成させ、受信したデータオブジェクトの各ブロックに結果値を計算させることにより各ブロックに受信したデータオブジェクトのブロックに関連付けられた分解又は解釈値、難読化値及びフォレンジック値に基づいて結果値を生成させ、データオブジェクトの全ての結果値に基づいてデータモデルを構築させ、人工知能(AI)アルゴリズムを用いてデータモデルを処理させてデータオブジェクトがデータ異常を含むか否かを判定させる。
【0023】
第1の態様を参照するに、受信したデータオブジェクトに対して難読化値を生成する命令は処理部に、データオブジェクトを複数のデータブロックに分割させ、各データブロックにシャノンエントロピー値を計算させる命令を含んでいる。
【0024】
第1の態様を参照するに、受信したデータオブジェクトに対してフォレンジック値を生成する命令は処理部に、データオブジェクトを複数のデータブロックに分割させ、頻度に基づく類似度ハッシングスキームを用いて各データブロックに類似度スコアを計算させる命令を含んでいる。
【0025】
第1の態様を参照するに、受信したデータオブジェクトの各ブロックに結果値を生成する命令は処理部に、受信したデータの各ブロックに3バイトを含む結果値を生成させる命令を含み、これにより各ブロックに命令は処理部に、データオブジェクトの分解又は解釈値に基づいて、結果値の第1バイトの最上位ビット(MSB)及び第2位のMSBを設定させ、第1バイトの残りのビットを結果値の第2バイトと照合して構文解析させ、ブロックに関連付けられた難読化値に基づいて構文解析の結果を設定させ、ブロックに関連付けられたフォレンジック値に基づいて第3バイトの値を設定させる。
【0026】
第1の態様を参照するに、データオブジェクトの全ての結果値に基づいてデータモデルを構築する命令は処理部に、データ画像モデルを生成させる命令を含み、これによりデータ画像モデル内の各ピクセルが一意な結果値に関連付けられ、各々の一意な結果値がデータ画像モデル内で一意な画像により表される。
【0027】
第1の態様を参照するに、データモデルの処理に用いるAIアルゴリズムは、畳み込みニューラルネットワーク(CNN)モデル、ディープニューラルネットワーク(DNN)モデル又は再帰的ニューラルネットワーク(RNN)モデルを含んでいる。
【0028】
第1の態様を参照するに、人工知能(AI)アルゴリズムを用いてデータモデルを処理する命令は処理部に、データモデルをデータベース内に含まれるデータモデルと比較させる命令を含み、比較は機械学習アルゴリズムを用いて実行される。
【0029】
第1の態様を参照するに、媒体は、処理部に、データオブジェクトを受信及び保存すべく構成された仮想ファイルシステムを提供させる命令を更に含み、これにより仮想ファイルシステムは処理部に仮想ファイルシステム内の全てのステップを実行させる。
【0030】
第1の態様を参照するに、デジタル署名はデータオブジェクトに関連付けられたマジックナンバーを含んでいる。
【0031】
第1の態様を参照するに、セキュリティ体制に関連付けられたデータオブジェクトの特徴は、当該データオブジェクトのプラットフォーム種類及びファイル種類を含んでいる。
【0032】
本発明の第2の態様によれば、人工知能(AI)モジュールを用いて受信したデータオブジェクト内のデータ異常を検出する方法を開示し、本方法は以下のステップ、すなわち、AIモジュール内に設けられた解析器モジュールを用いて、データオブジェクトのデジタル署名及びファイル種類に基づいてデータオブジェクトのセキュリティ体制を判定するステップと、AIモジュール内に設けられた解析器モジュール及び検出器モジュールを用いて、セキュリティ体制及びセキュリティ体制に関連付けられたデータオブジェクトの特徴に基づいてタイプセキュリティプラットフォーム(TSP)参照表を生成すると共に、TSP参照表に基づいて受信したデータオブジェクトに対して難読化値及びフォレンジック値を生成するステップと、AIモジュール内に設けられた分解及び解釈モジュールを用いて、データオブジェクトの分解又は解釈値を生成するステップと、AIモジュール内に設けられたブロック構築モジュールを用いて、受信したデータオブジェクトの各ブロック毎の結果値を計算することにより各ブロック毎の結果値を分解又は解釈値、受信したデータオブジェクトのブロックに関連付けられた難読化値及びフォレンジック値に基づいて生成するステップと、AIモジュール内に設けられたモデル生成器モジュールを用いて、データオブジェクトの全ての結果値に基づいてデータモデルを構築するステップと、AIモジュール内に設けられたAI脅威モジュールを用いて、人工知能(AI)アルゴリズムを用いてデータモデルを処理してデータオブジェクトがデータ異常を含むか否かを判定するステップとを含んでいる。
【0033】
第2の態様を参照するに、受信したデータオブジェクトに対して難読化値を生成するステップは、データオブジェクトを複数のデータブロックに分割するステップと、各データブロックにシャノンエントロピー値を計算するステップとを含んでいる。
【0034】
第2の態様を参照するに、受信したデータオブジェクトに対してフォレンジック値を生成するステップは、データオブジェクトを複数のデータブロックに分割するステップと、頻度に基づく類似度ハッシングスキームを用いて各データブロックに類似度スコアを計算するステップとを含んでいる。
【0035】
第2の態様を参照するに、受信したデータオブジェクトの各ブロックに結果値を生成するステップは、受信したデータの各ブロックに3バイトを含む結果値を生成するステップを含み、これにより各ブロックに、本方法は、データオブジェクトの分解又は解釈値に基づいて結果値の第1バイトの最上位ビット(MSB)及び第2MSBを設定し、第1バイトの残りのビットを結果値の第2バイトと照合して構文解析して、当該ブロックに関連付けられた難読化値に基づいて構文解析の結果を設定し、当該ブロックに関連付けられたフォレンジック値に基づいて第3バイトの値を設定する。
【0036】
第2の態様を参照するに、データオブジェクトの全ての結果値に基づいてデータモデルを構築するステップは、データ画像モデルを生成することによりデータ画像モデルの各ピクセルが一意な結果値に関連付けられ、各々の一意な結果値はデータ画像モデル内で一意な画像により表されるステップを含んでいる。
【0037】
第2の態様を参照するに、データモデルの処理に用いるAIアルゴリズムは、畳み込みニューラルネットワーク(CNN)モデル、ディープニューラルネットワーク(DNN)モデル、又は再帰的ニューラルネットワーク(RNN)モデルを含んでいる。
【0038】
第2の態様を参照するに、人工知能(AI)アルゴリズムを用いてデータモデルを処理するステップは、当該データモデルをデータベース内に含まれる複数のデータモデルと比較するステップを含み、当該比較は機械学習アルゴリズムを用いて実行される。
【0039】
第2の態様を参照するに、データオブジェクトのデジタル署名及びファイル種類に基づいてデータオブジェクトのセキュリティ体制を判定するステップの前に、本方法は、解析器モジュールを用いて、データオブジェクトを受信及び保存する仮想ファイルシステムを提供することにより仮想ファイルシステムは仮想ファイルシステム内で本方法の全てのステップを実行させるステップを更に含んでいる。
【0040】
第2の態様を参照するに、デジタル署名はデータオブジェクトに関連付けられたマジックナンバーを含んでいる。
【0041】
第2の態様を参照するに、セキュリティ体制に関連付けられたデータオブジェクトの特徴は、当該データオブジェクトのプラットフォーム種類及びファイル種類を含んでいる。
【0042】
図面の簡単な説明
上記及び他の問題は、詳細な説明に記述すると共に以下の図面に示す本発明によるシステム及び方法の特徴及び利点により解決される。
【図面の簡単な説明】
【0043】
【
図1】本発明の複数の実施形態による、異常を検出及び解析する方法の実装に用いてよいモジュールのブロック図を示す。
【
図2】本発明の複数の実施形態による、複数の実施形態を提供する処理システムを表すブロック図を示す。
【
図3】本発明の複数の実施形態による、異常なデータファイルを検出する処理又は方法。
【
図4】本発明の複数の実施形態による、32ビットセキュリティ参照表を利用してデータモデルを構築する処理又は方法を示す。
【
図5】本発明の複数の実施形態による、例示的データオブジェクトについて得られたサンプリングレートに対してプロットされたエントロピー値を示すグラフを示す。
【
図6】x軸がある種類の動作の頻度を表し、y軸がデータオブジェクトの分解後のある種類の動作を表すプロットを示す。
【
図7A】本発明の複数の実施形態による、データモデルの画像を生成するための512×512ピクセルのプロットを示す。
【
図7B】本発明の複数の実施形態による、データモデルの生成された画像を示す。
【
図7C】本発明の複数の実施形態による、生成されたデータ画像モデルと、以前は事前訓練済みデータセットモデル用であった画像との比較を示す。
【
図8】本発明の複数の実施形態による、
図4に示す処理により生成されたデータセットモデルを機械学習モデルを用いて当該データセットモデルの特徴に基づいてスコアリングすることにより、当該スコアを用いてデータファイルの正確度を判定する処理又は方法を示す。
【発明を実施するための形態】
【0044】
詳細な説明
本発明は、異常なデータファイルを検出し、検出された異常なデータファイルがデータストレージに保存されるのを防止するシステム及び方法に関する。特に、本システム及び方法は、各データファイルを複数のデータブロックに分割することにより、各データブロックにエントロピー値が得られ、当該情報が照合され、次いで機械学習モデルで用いてデータファイルのセキュリティレベルを確認する。異常であることが分かったファイルは次いで検疫される一方、問題無いとみなされたファイルは次のステップに進むことができるため、(たとえ当該ファイルがデータセクションを一切含まない場合であっても)バックグラウンドで動作し得るマルウェア及び/又はランサムウェアコマンドに関して解析される。
【0045】
本発明については、添付図面に示すいくつかの実施形態を参照しながら以下に詳述する。以下の記述において、本発明の複数の実施形態に対する理解を深めるべく多くの具体的な特徴を開示する。しかし当業者には、これら具体的な特徴の一部又は全部が無くても複数の実施形態が実現可能であることは明らかであろう。このような実施形態もまた本発明の範囲内に含めるべきである。更に、不必要に本発明を煩雑にしないよう、以下の特定の処理ステップ及び/又は構造の詳細な記述を割愛して対応する引用文献の参照を読者に委ねる場合がある。
【0046】
更に、当業者は、以下の記述において多くの機能単位が本明細書全体を通じてモジュールと称されることを認識されよう。当業者はまた、1個のモジュールが複数の回路、論理チップ又は任意の種類の別個の要素として実現可能であることも認識されよう。また更に、当業者は1個のモジュールがソフトウェアに実装され、次いで様々なプロセッサアーキテクチャにより実行可能であることも認識されよう。本発明の複数の実施形態において、1個のモジュールはまた、受信した命令に基づいてコンピュータプロセッサに一連のイベントを実行するよう命令できるコンピュータ命令又は実行コードを含んでいてよい。モジュールの実装方式の選択は当業者の設計上の選択に委ねられており、本発明の範囲を一切限定するものではない。
【実施例】
【0047】
AIコアプロセッサにより異常なデータファイルを検出、解析、及び識別する本発明の複数の実施形態による例示的な処理又は方法を以下のステップで示す。本処理又は方法のステップは以下の通りである。
【0048】
ステップ1:データオブジェクトのデジタル署名及びファイル種類に基づいてデータオブジェクトのセキュリティ体制を判定する。
【0049】
ステップ2:セキュリティ体制及びセキュリティ体制に関連付けられたデータオブジェクトの特徴に基づいてタイプセキュリティプラットフォーム(TSP)参照表を生成し、受信したデータオブジェクトに対して難読化値及びフォレンジック値を生成する。
【0050】
ステップ3:データオブジェクトの分解値又は解釈値を生成する。
【0051】
ステップ4:受信したデータオブジェクトの各ブロックに結果値を計算することにより受信したデータオブジェクトのブロックに関連付けられた分解又は解釈値、難読化値及びフォレンジック値に基づいて各ブロックに結果値を生成する。
【0052】
ステップ5:データオブジェクトの全ての結果値に基づいてデータモデルを構築する。
【0053】
ステップ6:人工知能(AI)アルゴリズムを用いてデータモデルを処理してデータオブジェクトがデータ異常を含むか否かを判定する。
【0054】
本発明の複数の実施形態によれば、上で開示したステップは、
図1に示すように人工知能(AI)コアモジュール105内に含まれる複数のモジュールにより実行できるため、AIコアモジュール105は、合成モジュール110、AI高性能解析器モジュール106、AI脅威モジュール107、検証モジュール140及びストレージ150を含んでいる。
【0055】
次に、合成モジュール110は、解析器111、プラットフォーム検出器112、分解/解釈113、及びブロック構築114のサブモジュールを含み、一方AI高性能解析器モジュール106は出力構造ブロック120、特徴抽出器121、及びモデル生成器122のサブモジュールを含んでいる。AI脅威モジュール107に関して、当該モジュールは、AI検索130、データベース131、及び訓練済みデータベース132のサブモジュールを含んでいる。
【0056】
本発明の複数の実施形態において、データ101はあらゆる種類及び形式のデータオブジェクトを含み、これらのデータの内容はビデオファイル、文書、画像、スプレッドシート、アプリケーションプログラミングインターフェース、実行可能ファイル及び各種のファイル拡張子/又は読出/書込(消去)コマンド等のダミーコマンドバイトを有する他のあらゆる種類のファイルを含んでいてよいが、これらに限定されない。一般に、データ101は複数の部分オブジェクト102に分割されていてよく、これらが組み合わされて全体としてデータ101を構成する。本発明の複数の実施形態において、データ101はより小さい部分オブジェクト102に分類されているため、AIコアモジュール105はこれらのより小さい部分オブジェクトの各々を効率的且つ効果的に処理することが容易になろう。
【0057】
データ101又はオブジェクト102(再分割データ101)は次いで合成モジュール110により受信される。以下、データ101に言及するものの、当業者は、以下に議論するステップ及び処理が各種のデータオブジェクト及び部分オブジェクト102に適用されても本発明から逸脱しないことを認識されよう。データ101を受信した場合、解析器モジュール111はデータ101のデータ構造を解析してデータ101の構造及び構成に関する更なる詳細事項及び情報を取得する。本発明の一実施形態において、解析器モジュール111は、デジタル署名参照表、ファイル参照表又はマジックナンバー参照表を介して、データ101が異常なファイルであるか否かを判定すべく構成されている。本発明の複数の実施形態において、解析器モジュール111は、サンドボックス環境でファイルを読むべく構成された任意選択的仮想ファイルシステムを構築する。解析器モジュール111は次いで、データ101に対する適当なセキュリティフラグを生成し、当該フラグは次いでデータ101に関連付けられた一意なタイプセキュリティプラットフォーム(TSP)参照表の生成に用いられる。当該TSP参照表は次いでデータ101をより詳細に解析すべく合成モジュール110内の他のモジュールにより用いられる。
【0058】
次いでプラットフォーム検出器モジュール112は、データ101及びそのセキュリティ体制により影響及び/又は変更され得るファイル種類、動作プラットフォーム及びコンピュータアーキテクチャ等の、但しこれらに限定されないデータ101に関する特定の主要特徴に基づいて、受信したTSP参照表の残りの部分を追補すべく構成されている。検出器モジュール112により実行された解析の結果は次いでGVモジュール112aに保存され、分解/解釈モジュール113にも与えられる。
【0059】
分解/解釈モジュール113において、検出器モジュール112が生成した結果は次いで分解されて分解データセット又は値を生成するか、又は逆スクリプティングソースに送られて認識可能なアスキー項目として解釈され、解釈されたデータオブジェクト及びその対応値は次いでモジュール113に戻されて更に処理される。データセットモデルは次いでGVモジュール113aに保存され、次のモジュール、すなわちブロック構築モジュール114に渡される。
【0060】
ブロック構築モジュール114において、縮小されたデータセットから難読化データ及び/又は他の関連特徴を抽出することができる。本発明の複数の実施形態において、構築モジュール114は、入出力ポートと通信する関数、外部呼び出し関数、オブジェクトを識別し、次いで当該情報をデータセットモデルに追加する。当該データセットモデルはAI高性能解析器モジュール106に、バイトの複雑な表、すなわち出力構造ブロック120として提示することができる。本発明の複数の実施形態において、当該データセットモデルはブロック構築モジュール114によりモジュール111、112及び113の出力に基づいて生成される。モジュール114は、エントロピー/フォレンジック/分解処理から得られた全ての結果を構文解析して、全ての結果を統合するのに適当なデータ構造を有するデータセットモデルにする。本発明の複数の実施形態において、当該構造内に含まれる構文解析の結果には接頭辞付きの名前が与えられ、当該接頭辞を用いて結果のデータ又は関数の名前を示し、例えばフォレンジック表の結果は「Prefix.Forensic.typeofForensic.table.result1.result2.result3」と呼ばれる。
【0061】
この情報がモジュール106に渡されたならば、特徴抽出器モジュール121は、出力構造ブロック120内に含まれる情報を、GVモジュール111a、112a及び113aからGVコールバックモジュール117に跨って保存されている出力と共にデータ101と照合し、照合された情報をモデル生成器モジュール122に提供する。
【0062】
モデル生成器モジュール122は次いで受信した情報を用いて適当なモデルを生成する。当該モデルは次いでデータベース131に渡されて保存され、AI検索モジュール130がこれを訓練済みデータベース132と組み合わせて用いて当該モデルの脅威スコアを判定する。
【0063】
本発明の複数の実施形態において、抽出器モジュール121から得られた特徴をモデル生成器モジュール122が用いて512×512ピクセルを含むマトリクスを有するデータ画像モデルを生成できるため、各ピクセルはデータ101のブロックを表し、且つ3バイトのデータから構成されている。生成されたデータ画像モデル及び/又はデータセットモデルは次いでデータベース131内に一時的に保存される。AI検索モジュール130は次いで、データベース131に保存されたモデルを訓練済みデータベース132に保存されたデータセットとマッチングするマッチングアルゴリズムを実行する。次いでマッチング結果が100で正規化され、正規化されたスコアは次いで検証モジュール140に渡される。当該モジュール内において、システムのユーザーにより各種のスコアリング設定を以下のように定義できるが、これらに限定されない。
・0~50の範囲のスコアは「脅威でない」ことを意味し得る
・51~85の範囲のスコアはファイル種類が「良性である」ことを意味し得る
・86~99の範囲のスコアは「脅威」が存在することを示唆し得る。
【0064】
本発明の複数の実施形態において、AI検索モジュール130は、教師付き機械学習アルゴリズムを利用して脅威スコアをデータセットモデルに割り当てる。本発明の複数の実施形態において、線形回帰、ランダムフォレス及び/又は支持ベクトル機械等の、但しこれらに限定されない教師付き機械学習技術を用いてもよい。
【0065】
脅威スコアが割り当てられたならば、これらのスコアは次いでデータ101と共に検証モジュール140に渡される。検証モデル140がスコアに基づいてデータ101が脅威であると確認した場合、データ101はストレージ150への格納から排除され、代わりに出力160に渡されることにより、データ101は検疫されるか又は更に解析される。
【0066】
逆に、データ101が脅威を伴わないと判定された場合、ストレージ150への格納が許される。完全を期すため、ストレージ150は、コンピュータシステムの主記憶装置(例:RAM、ソリッドステート及び/又は磁気ハードディスク)又はシステムの二次記憶装置(例:リムーバブルドライブ)等、任意の種類又は形式のデータストレージを含んでいてよいが、これらに限定されない。
【0067】
本発明の複数の実施形態によれば、本発明の複数の実施形態による実施形態を実行する(
図1に示すような)AIコア105内に設けられてよい要素のブロック図表現を
図2に示す。当業者はAIコア105の厳密な構成は固定されておらず、異なっていても変化してもよく、
図2は例示目的で示すものに過ぎないことが認識されよう。
【0068】
本明細書において用語「プロセッサ」はそのような命令を処理可能な任意の装置又は要素を一般に指し、マイクロプロセッサ、マイクロコントローラ、プログラム可能論理素子又は他の計算装置を含んでいてよい。すなわち、プロセッサ205は、入力を受信し、メモリに保存された命令に従い当該入力を処理して出力を生成する(すなわちメモリ要素、セキュリティ管理モジュール280、AIコプロセッサ285、センサ290及び/又はPCIeバス等へ)任意の適当な論理回路により提供することができる。本実施形態における、プロセッサ205はメモリアドレス指定可能な空間を有するシングルコア又はマルチコアプロセッサであってよい。一例において、プロセッサ205は例えば8コアCPUを含むマルチコアであってよい。
【0069】
本発明の複数の実施形態において、プロセッサ205は、電気的に消去及びプログラム可能な任意の種類の不揮発メモリ記憶媒体を制御すべく構成されたフラッシュコントローラ252を含んでいてよい。このような不揮発メモリ記憶の一例としてNAND若しくはNOR型フラッシュメモリ又は非フラッシュEEPROMフラッシュメモリが挙げられる。
図2において、フラッシュコントローラ252は、安全なブート、ファームウェア、AI訓練済みデータ、署名データ、ハッシュテーブル、閾値テーブル、予約領域及びユーザー域を保存するNANDフラッシュ245を制御すべく配置されているが、当業者には本発明から逸脱することなく他の種類のデータ及び情報をNANDフラッシュ245に保存できることが認識されよう。
【0070】
プロセッサ205はまた、スタティックランダムアクセスメモリ(SRAM)又はダイナミックランダムアクセスメモリ(DRAM)等、任意の種類の揮発性ランダムアクセスメモリRAM 223を制御すべく構成されたDDRコントローラ268を含んでいる。読出し専用メモリ(ROM)モジュールROM 270もまた、I-D 254、A-D 256、アーキテクチャコア258、AXI4 262及びNVMEコア276と共にプロセッサ205内に設けられている。特に、I-D 254はプロセッサ205に対する命令を復号化すべく構成された命令デコーダを含み、A-D 256は、全てのアドレスバスがプロセッサ205内で管理されるチップセット内で用いられる各物理周辺機器のアドレスを復号化すべく構成されたアドレスデコーダを含み、アーキテクチャコア258は、ARMアーキテクチャ、MIPSアーキテクチャ、RISC-VARCHアーキテクチャ等の、但しこれらに限定されないプロセッサ205のアーキテクチャコアを含み、これによりアーキテクチャ種類はプロセッサ205が扱う命令の個数、消費される電力量等に依存する。
【0071】
AXI4 262の場合、当該要素はAXI4と識別される相互接続バス接続を含んでいる。AXI4 262は多くのASICメーカーが頻繁に用いる接続であり、広範にプロセッサ205を内部に含まれた他の要素と接続するSLAVE/MASTERバス及び高速内部通信バスを含み、これにより当該相互接続バスに接続された各要素は自身のアドレスを有することになる。
【0072】
不揮発性メモリエクスプレス(NVME)コア276は、ユーザーのホストからの全ての読出/書込及び管理動作コマンドを扱うべく構成された要素を含み、これはAXI4 262を介したPCIeバス295への直接接続を介して行われる。これは、データオブジェクトがホストから受信又はホストへ送信される都度、当該送受信はNVMEコア276により制御することを意味する。当該要素がプロセッサ205から独立して動作すべく構成されていてよく、所定の時間枠内に実行される全てのNVMEコマンドの監視に用いてよい点に注意されたい。また、NVMEコア276は、DDRコントローラ268とフラッシュコントローラ252との間のデータ転送速度を同期させるべく構成されていてよく、そのような動作はフラッシュ遷移層として知られる。
【0073】
プロセッサ205にはキャッシュ260も設けられており、各種のメモリからのデータアクセスの平均コスト(時間又はエネルギー)を低減すべくプロセッサが用いられる。
【0074】
当業者には、上述の各種のメモリ要素が非一時的コンピュータ可読媒体を含み、一時的な伝搬信号を除く全てのコンピュータ可読媒体を含んでいるものと認識されよう。典型的に、命令はプログラムコードとしてメモリ要素に保存されるが、ハードウェア実装されていてもよい。
【0075】
周辺機器相互接続エクスプレス(公式にPCIeと略記)コントローラ274は、プロセッサ205と、PCIeバスプロトコルに対応可能な各種ホストコンピュータとの間で高速シリアルコンピュータ拡張バスを介して実行されるデータ交換を制御するためのコントローラである。入出力(I/O)インターフェース272もまた、各種のユーザーインターフェース、通信インターフェース及びセンサ290との通信用に提供される。センサ290は、運動センサ、温度センサ、衝撃センサを含むがこれらに限定されず、これらのセンサは、有線又は無線ネットワークを介して外部ソースと他の処理装置との間でデータを送信/受信すべく、又は有線又は無線ネットワークを介してデータを受信すべく構成されていてよい。利用可能な無線ネットワークは、無線フィデリティ(Wi-Fi)、Bluetooth、近接場通信(NFC)、セルラネットワーク、衛星ネットワーク、電気通信ネットワーク、ワイドエリアネットワーク(WAN)等を含むがこれらに限定されない。
【0076】
AIコプロセッサ285は、専用のバス(図示せず)を介してプロセッサ205に接続されていて、人工知能アプリケーションを高速化すべく設計された専用ハードウェアアクセラレータ、特に機械学習アルゴリズムを含み、プロセッサ205の負荷を軽減すべく特定の計算タスクの高速化に用いられる。
【0077】
図3に、受信したデータオブジェクトを解析する処理300を示しており、処理300は本発明の複数の実施形態によるAIコアのモジュールにより実行されてよい。処理300は、ステップ305で解析対象のデータオブジェクトを受信することから始まる。前節で述べたように、データオブジェクトは文書、画像ファイル、実行可能ファイル又は他の任意の種類のファイルを含んでいてよい。本発明の複数の実施形態において、データオブジェクトは複数のバイトのブロックを含んでいてよく、これらのバイトのブロックはフラッシュドライブチップセット等の、但しこれに限定されないAIコアに接続された記憶媒体に保存されて、サイズ、フラッシュロケーションセクター、ファイル先頭及びファイル終端が記録される領域が割り当てられる。
【0078】
処理300は次いでステップ310に進み、任意選択的に、データオブジェクト全体が完全に受信されたならば仮想ファイルシステムを初期化する。当該ステップにおいて、ホストドライブと同様にデータオブジェクトを読み込み可能な仮想ファイルシステムが処理300により構築される。しかし、従来のドライブ又はファイルシステムとは異なり、仮想ファイルシステムは完全に別個に構成されているため、仮想ファイルシステムはホストドライブからアクセス可能なドライブには直接接続されていない。更に、仮想ファイルシステムはASICチップセット内で動作すべく構成されているため、必要なハードウェア資源が少なくて済み、他のタスクと並列に実行可能である。従って、新規オブジェクトがステップ305で受信されるに従い、処理300はこれらの新規データオブジェクトを仮想ファイルシステムの内部リストに追加して後続処理の待ち行列に入れる。本発明の複数の実施形態において、処理300は当該内部リストを継続的に監視して、当該データオブジェクトが解析されて安全性が確認されるまで呼び戻されないことを保証する。これを行うために、内部リストをホストファイルシステムから隔離可能且つ一時的にロック可能な一時バッファに収容してよい。換言すれば、本発明の一実施形態において、処理300、400の全体が仮想ファイルシステム内で実行される一方、本発明の別の実施形態では処理300、400は仮想ファイルシステムの外部で実行され得ると言える。これは、処理300、400が仮想ファイルシステムの外部で生起した場合、処理300がステップ305からステップ315に進むことを意味する。
【0079】
ステップ315において、仮想ファイルシステム内又はAIコア内のいずれかから、処理300は次いでデータオブジェクトの種類を確認する。本発明の複数の実施形態において、これは名前を確認することで行える。例えば、データオブジェクトの名前が「xxyyy.pdf」である場合、処理300は次いで当該情報をextension[n-1]=pdfと呼ばれる一時的変数に保存する。
【0080】
ステップ315からの情報は次いでステップ320に渡される。当該ステップにおいて、処理300はデータオブジェクトの一意なマジックナンバー又は特別ヘッダフレームを生成し、当該マジックナンバーは次いで当該データオブジェクトに埋め込まれ得、次いで当該データオブジェクトの種類を識別すべくホストシステムにより用いられてよい。
【0081】
処理300は次いでステップ325において、事前にロードされたマジックナンバー参照表をロードする。当業者には公知であるように、マジックナンバーは、特定のファイル形式又はプロトコルの識別に用いられ得る定数値を指すか、又は他の意味に間違えられ難い固有の一意な値を指す場合がある。事前にロードされたマジックナンバー参照表の各マジックナンバーは、特定のファイル形式又は種類を指し、当該参照表は必要に応じて定期的に、又は新たなファイル種類が発見される都度更新されてよい。
【0082】
処理300は次いでステップ330において、生成されたマジックナンバーが事前にロードされたマジックナンバー参照表のいずれかのマジックナンバーに合致するか否かを判定する。
【0083】
処理300は、合致が存在しないと判定したならばステップ335に進む。当該ステップにおいて、間もなく生成されるタイプセキュリティプラットフォーム(TSP)参照表に関連付けられたセキュリティフラグが生成されて高レベルに設定される。次いで処理300がステップ340に進むことにより、タイプセキュリティプラットフォーム(TSP)参照表が生成される。
【0084】
逆に、処理300がステップ330において、生成されたマジックナンバーが事前にロードされたマジックナンバー参照表のマジックナンバーに合致すると判定した場合、データオブジェクトが既知のファイル種類を含んでいることを意味する。
【0085】
処理300は次いで潜在的に異常なファイルの種類の参照表(例:データアレイとして保存された)をステップ345においてロードすることにより当該表の各々の既知の異常なファイルの種類にマジックナンバーが関連付けられる。本発明の当該実施形態において、異常なファイルの種類は、潜在的脅威であり、特定のツールチェーンコンパイラによりコンパイルする必要なしに異なるプラットフォームで実行可能なファイルを表す(例えばJavaスクリプトオブジェクト、pdfファイル、jpeg(埋め込みexeファイルを有し、抽出のため後で呼び出される)。
【0086】
処理300は次いでステップ350において、受信したデータオブジェクトのファイル種類が、ステップ345でロードされた潜在的に異常なファイルの種類の参照表の異常なファイルの種類に合致するか否かを判定する。
【0087】
処理300が合致すると判定した場合、処理300はステップ355に進む。当該ステップにおいて、間もなく生成されるタイプセキュリティプラットフォーム(TSP)参照表に関連付けられたセキュリティフラグが生成されて、当該フラグは高レベルに設定される。次いで処理300がステップ340に進むことによりTSP参照表が生成される。
【0088】
逆に、処理300がステップ350において、受信したデータオブジェクトのファイル種類が異常なファイルの種類に合致しないと判断した場合、処理300がステップ360に進むことにより、間もなく生成されるタイプセキュリティプラットフォーム(TSP)参照表に関連付けられたセキュリティフラグが生成されて、当該データオブジェクトが異常なファイルではあり得ないことを示す正常レベルに設定される。次いで処理300がステップ340に進むことによりTSP参照表が生成される。
【0089】
本発明の複数の実施形態によれば、TSP参照は32ビット変数を含み、これにより先頭16個の最上位ビット(MSB)が各種のデータオブジェクト(すなわち第31(MSB)~16ビット)を表し、続く8ビット(すなわち第15~8ビット)がデータオブジェクトのセキュリティ体制を表し、末尾の8ビット(すなわち最下位ビット(LSB)である第7~0ビット)がデータオブジェクトのプラットフォーム使用を表す。例示的なTSP参照表を以下の表1~3に示す。
【0090】
【0091】
【0092】
【0093】
表1は各種のファイル種類をTSP参照表の第31(MSB)~16ビットで表し得る仕方の一例を示し、表2はデータオブジェクトのセキュリティ体制を第15~8ビットで表し得る仕方の一例を示し、表3はデータオブジェクトが用いる各種のプラットフォームを第7~0ビットで表し得る仕方の一例を示す。
【0094】
本発明の一実施形態において、表2を参照するに、「状態_1」はデータオブジェクトのセキュリティフラグが最高レベルに設定されていて、デジタル署名がマジックナンバー参照表のどのマジックナンバーにも合致しなかったことを示し得、「状態_2」はデータオブジェクトのセキュリティフラグが最高レベルに設定されていて、デジタル署名がマジックナンバー参照表のあるマジックナンバーに合致するが当該データオブジェクトのファイル種類が参照表の異常なファイルの種類に合致することを示し得、「状態_3」はデータオブジェクトのセキュリティフラグが正常レベルに設定されていて、デジタル署名がマジックナンバー参照表のあるマジックナンバーに合致し、ファイル種類はどの既知の異常なファイルの種類にも合致しないことを示し得る。当業者には、本発明から逸脱することなく各種の状態レベルを用いてセキュリティ体制の他の種類及びバリエーションを表すことができることが認識されよう。
【0095】
本発明の複数の実施形態において、表3を参照するに、第7~4ビットを用いてファイルのアーキテクチャ、ファイルのマイクロコントローラ装置(MCU)実行、オペレーティングシステム/ハードウェアプラットフォームを表すことができ、最下位4ビット(第3~0ビット)はデータオブジェクトの可能なオペレーティングシステムを示すことができるため、LSBがB(又は他の任意の等価なインジケータ)として設定されていれば、データオブジェクトが任意の種類のオペレーティングシステム上で動作可能であることを意味する。
【0096】
あるデータオブジェクトに対してTSP参照表が生成されたならば、
図4に示すような処理400は開始される。処理400はステップ402において仮想ファイルシステム(処理400が仮想ファイルシステム内に生起していれば)内に保存されているか又はAIコアに保存されているデータオブジェクトの位置を取得することにより開始される。処理400は次いで、次ステップであるステップ405でデータオブジェクトに関連付けられるTSP参照表を取得する。処理400は次いでステップ410において、TSP参照表に含まれる情報をそれらの関連グループと照合して構文解析する。特に、データオブジェクトのセキュリティ状態に関するTSP参照表のビットが第1のグループと照合して構文解析され、データオブジェクトの種類に関するTSP参照表のビットが第2のグループと照合して構文解析され、データオブジェクトの目標プラットフォームに関するTSP参照表のビットが第3のグループと照合して構文解析される。
【0097】
次いで処理400はステップ430に進み、処理400は構文解析されたビットの第1のグループから、セキュリティレベルが正常又は高レベルのいずれに設定されたかを判定する。
【0098】
セキュリティレベルが高レベルに設定されたと処理400が判定した場合、ステップ435に進んでデータオブジェクトの種類に関する情報をTSPから取得してからステップ440に進むことにより、データオブジェクトに関連付けられた動作のプラットフォームに関する情報をTSPから取得する。当該情報は、TSP内の構文解析されたビットの第2及び第3のグループに含まれている。ステップ435及び440からの情報は次いでステップ447に渡され、処理400はステップ445に進む。435及び440からの情報をステップ447に渡す目的は、これらの2つのステップからの情報に基づいてフォレンジック解析を実行可能にするためである。
【0099】
ステップ445において、処理400はデータオブジェクト全体について、すなわち受信した情報に基づいて全ファイルサイズにわたり難読化値の計算を行う。逆に、セキュリティレベルが正常レベルに設定されたと処理400が判定した場合、処理400は直接ステップ445に進んでデータオブジェクト全体としての難読化値を計算する。
【0100】
一例として、難読化値の範囲は0~255であってよいため、難読化値が高いほどマルウェア又はランサムウェアのリスクが高まることを示唆する。
【0101】
本発明の複数の実施形態において、データオブジェクトの難読化値は当該データオブジェクトのエントロピー値を含んでいる。本実施形態において、処理400は最初にデータオブジェクトのサイズを正規化することによりデータオブジェクトのエントロピー値の計算を行う。例えば、データオブジェクトが1メガバイトのデータを含んでいる場合、256で除算して43000個のブロックを生成することにより各ブロックが256バイトを含むようにする。次いで各ブロックにシャノンエントロピー値が以下のように得られる。データのエントロピーに対する数値又はデータブロックの「乱雑性」の表現を生成するいくつかの数学的方法がある。本発明の一実施形態において、エントロピー値は、クロードシャノンが考案した、当業者にはシャノンエントロピー式として知られる方法を用いて計算される。
【数1】
ここでp(x)は離散確率変数Xに対するxの確率である。Xは離散変数であるため、バイト(又は8ビットブロック)に編成されたバイナリデジタルデータにより表されたデータをXの代わりに用いてもよい。上式が適切に作用するには、Xは、長さが少なくとも256バイトの最小データブロックを含んでいなければならない。得られた値は次いで、
PH(X)∈0.0...1.0
のように正規化される。
ここでPH(X)=H(X)|MAX(H(X))である。
【0102】
要約するに、上式に基づいて計算されたエントロピー値は0~1の範囲の数値を含み、値が1に近いほど所与のデータブロックのエントロピーのレベルが高いことを示す。シャノンエントロピーに関するより詳細な議論については、本明細書に引用する文献「Shannon, C. E.“A Mathematical Theory of Communication.”The Bell System Technical J 27, 379-423 and 623-656, July and October 1948」を参照されたい。当業者には、本発明から逸脱することなく他の任意の種類のエントロピー計算方法を用いてもよいことが理解されよう。
【0103】
次いで各ブロックに得られたエントロピー値を以下に示す例示的な表4に開示する。
【0104】
【0105】
表4は、マルウェアデータオブジェクトの例示的なプロットを示す。同表から分かるように、大多数のブロックは高いエントロピー値を示し、従って当該データオブジェクトが異常なデータオブジェクトである可能性が極めて高いことを示している。エントロピー計算から得られた結果は
図5に示すようにプロットでき、プロット505、510は異常なデータオブジェクト、例えばマルウェアに関連付けられ得るエントロピー線を表す一方、エントロピー値が低いプロット515は正常なデータオブジェクトを表していてよい。本発明の複数の実施形態において、これらのパターン又はプロットをデータオブジェクトのデジタル指紋として用いることができる。この結果は次いで次モジュールに渡されることにより、処理400が適用するのに最適な所定のフォレンジックアルゴリズムの選択に利用される。
【0106】
次いで処理400がステップ447に進むことにより、処理400はフォレンジック解析機能を呼び出してデータオブジェクトのデジタル指紋、すなわち計算されたフォレンジック解析値及び/又はエントロピーパターン(例:表4)が、データオブジェクトがマルウェアを含んでいる可能性を示すか否かを判定する。
【0107】
データオブジェクトのセキュリティレベルが正常レベルに設定されているとステップ430で事前に判定されている場合、フォレンジック解析はデータオブジェクトのブロックだけに基づいて実行される。しかし、データオブジェクトのセキュリティレベルが高レベルに設定されているとステップ430で事前に判定されている場合、フォレンジック解析は、データオブジェクトのブロック及びステップ435、440で各ブロックに取得された種類及びプラットフォーム情報に基づいて実行される。
【0108】
フォレンジックモジュールは、採用した調査方法及び1~10の範囲にある類似度出力の両方を表すフォレンジック値を生成することにより値が小さいほどリスクが低い(合致度が低い)ことを表し、値が大きいほどリスクが高い(合致度が高い)ことを表す。当業者には、本発明から逸脱することなく既存のフォレンジック解析機能を用いてよいことが理解されよう。一例として、以下に示す例示的(但し非限定的)な疑似コードをフォレンジック解析に用いることができる。
【0109】
フォレンジック解析用疑似コード
Forensic_t[0][Entropy method][result]
Forensic_t[1][fbhash_method][result]
Forensic_t[n-1][until the available method][result]
Enum { METHOD1 METHOD2 METHOD3 …………METHODn-1} LIST;
Typedef ARRAY[x][y][z] Forensic
Declare pointer pDATA= Data Object;
Declare variable Result[];
I = array{LIST}.
For x = 0 TO X <COUNT(LIST)
FUNCTION_FORENSIC(pDATA,X,LIST{X},Result[X])(この関数の目的は、リスト内で列挙された方法の呼び戻しを実行することにより用いる方法と結果を合致させることである)
Forensic[x],[LIST{X}],[RESULT[X]] ;(このバッファ値を用いて、使用する方法、方法の名前及び後で特徴抽出関数に用いる結果を追跡する)
X=X+1;
FUNCTION_FORENSIC(pDATA,X,LIST{X},Result[X])
Declare local = sizeof(pDATA);
Declare LResult=0;
Switch (LIST{X})
Case METHOD1:
Analyse_M1(local,pDATA);(各関数はステートメントケースに基づき呼び出される)
Result[X]=LResult
Case METHOD2:
Analyse_M2(local,pDATA);
Result[X]=LResult
Case METHODn-1:
Analyse_Mn-1(local,pDATA);
Result[X]=LResult
【0110】
本発明の複数の実施形態において、他の種類のフォレンジック解析を実行してよく、これは、頻度に基づく類似度ハッシングスキーム(FbHash)等、但しこれに限定されないデジタルフォレンジックで公知のハッシング方法を用いてデータオブジェクトをハッシングするステップを含んでいてよい。
【0111】
当業者には、本発明から逸脱することなく他の種類の調査方法を用いてよく、新たな方法が発見されて追加された際に処理400が自身の方法レパートリーを更新する能力を有するよう当業者に選択が委ねられていることが理解されよう。FbHashスキームの一例を以下に示す。
【0112】
類似度スコアを計算できるため、D1はデータオブジェクトであり、D2は既知のマルウェアのデータセットである。D1及びD2の値は以下のように得られる。
Digest(D1)=W
D1
ch0,W
D1
ch1,W
D1
ch2,・・・W
D1
ch(n-1)
Digest(D2)=W
D2
ch0,W
D2
ch1,W
D2
ch2,・・・W
D2
ch(n-1)。
ここで関数Digest()は記憶アレイであり、W
Dx
ch(n-1)は
【数2】
として表されるFbHashingアルゴリズムにより生成されたチャンクスコアである。nは使用するチャンクスコアの個数(又はデータオブジェクトのブロックの個数)を表し、FbHashingアルゴリズムはデジタル調査の多くの方法のうち1個を表し、以下の表記は、
・チャンク:文書のk個の連続するバイトのシーケンス
・
【数3】
:文書Dの第iチャンクを表す
・チャンク頻度:チャンクch
iが文書Dに出現する回数。
【数4】
と表記。
・文書頻度:チャンクchを含む文書の個数。df
chと表記。
・N:文書コーパス内の文書の総数を表記
・ローリングハッシュ(ch
i):ch
iのローリングハッシュ値
・
【数5】
:ch
iのチャンク重み
・
【数6】
:ch
iの文書重み
・
【数7】
:文書D内でのch
iのチャンクスコアを表記
を表す。
【0113】
D1、D2に対する値が得られたならば、以下のようにコサイン類似度法を用いて最終類似度スコアSimilarity(D
1,D
2)を計算することができる。
【数8】
最終的な類似度スコアは0~100の範囲にあるため、スコア100はD1がD2と同一であることを示唆し、スコア0はD1がD2と全く合致しないことを示唆する。
【0114】
ステップ450において、処理400は次いでデータオブジェクトを分解するか又は解釈するかを判定する。データオブジェクトが相当量のASCIIを含んでいると処理400が判定した場合、処理400はデータオブジェクトを解釈させる(ステップ460、482、484、486)一方、データオブジェクトが相当量の機械語を含んでいると処理400が判定した場合、処理400はデータオブジェクトに分解させる(ステップ455、465、470、475)。
【0115】
処理400は、データオブジェクトを分解すると判定したならばステップ455に進む。当該ステップにおいて、処理400はデータオブジェクトのTSP参照表に対して列挙処理を実行する。列挙されたプラットフォームの種類に基づいて、処理400はファイルを逆コンパイルして、ステップ470で全ての内部及び外部呼び出しを列挙し、ステップ465で全ての関数呼び出しを列挙し、ステップ475で全ての使用された第3のライブラリファイルを列挙する。典型的にファイルシステムへのアクセス、イーサネットI/O又は任意のネットワークアクセスを必要とするコマンドを含む一般的なマルウェア挙動を列挙することにより、処理400はマルウェアを含んでいる可能性があるデータオブジェクトの部分を識別することができる。
【0116】
処理400は当該情報の全てを所定の設定を含む表アレイに提供して正常な挙動を含むコマンド又は脅威になり得るコマンドを識別する。例えば、「DNS関数」が呼ばれる回数が記録される。データオブジェクトのファイル種類に基づいて、処理400は次いで、選択された関数をそのようなファイル種類が呼び出すことが一般的であるか否かを判定し、挙動が異常な場合、当該データオブジェクトが関数を実行するのを阻止し、データオブジェクト領域をロックしてユーザーに警告する。処理400は次いでカウンタ1の数値カウンタを起動してデータオブジェクトが分解されたことを示すと同時に、カウンタ2の数値カウンタをリセットする。
【0117】
換言すれば、分解ステップの実行中、データオブジェクトは挙動が詳細に解析できるように逆コンパイルされる。本発明の複数の実施形態において、データオブジェクト内に埋め込まれたマルウェアを発見できるよう当該データオブジェクトの未加工バイナリを取得することができ、そのような逆コンパイルされたデータの例示的なプロットを
図6に示す。
【0118】
図6は、動作種類に応じて異なる種類の動作にマーキングできることを示す。この例示的なプロットにおいて、x軸はある種類の動作の頻度を表す一方、y軸は動作の種類を表しており、以下の例示的な疑似コードを用いてプロットすることができる。
Diss_table[0][x1_criterianame][operationtype][0 or 1] to
Diss_table[n-1][xn-1_criterianame][operationtypen-1][0 or 1]
【0119】
図4に戻り、仮想データモデルを「解釈する」と処理400が判定した場合、処理400がステップ460に進むことにより仮想データモデルが当該ステップで逆スクリプトされて更なる解析のため様々な部分に分割される。難読化ストリング/暗号化ブロックがステップ482に渡され、サードパーティによる関数呼び出しがステップ484に渡されて、ステップ486で外部リンクの参照が渡される。次いでステップ488で結果が保存されることにより、カウンタ2内の数値カウンタが起動されデータオブジェクトが解釈されたのと同時に、カウンタ1の数値カウンタがリセットされる。
【0120】
ステップ480及び488からの結果は次いでステップ490でデータモデル生成器に渡され、次いで当該情報を処理400によりこれまでに生成された全ての情報と共に用いてデータセットモデルAを計算することができる。
【0121】
本発明の複数の実施形態によれば.処理400がこれまでに生成された情報を用いてデータオブジェクトの各ブロックに対する「結果値」を生成することにより各結果値が3バイトを含んでいるためデータ画像モデルを生成することができる。
【0122】
結果値の第1バイトの最上位ビット(MSB)及び第2位のMSBを用いてデータオブジェクトのブロックが分解されたか又は解釈されたかを示し、第2バイトと照合して構文解析された(14ビットが生成された)第1バイトの残りの6ビットを用いて(ステップ445で計算された)データオブジェクトのブロックの難読化値を表す。次いで結果値の第3バイトを用いて(ステップ447で計算された)フォレンジック解析値を表す。
【0123】
本発明の他の実施形態によれば、ハードウェア異常に対して、MSB(第1バイト+第2バイトの一部)を含む先頭12ビットが電力監視(ADCにより変換される電流/電圧)を表し、次の10ビットが温度値を表し、最後の2ビットがCPU負荷を示す:(1~9の値は低負荷を表し、10は中位の負荷を表し、11は高負荷を表す)。
【0124】
次いで512バイトのブロックを用いて、データオブジェクトの名前/NANDフラッシュ内での位置、例えば、ページ/セクター/PLANEアドレス/ファイルのロック又は非ロック状態/デジタル署名を示す。
【0125】
処理400は次いで、上で抽出した適当な特徴に基づいてデータモデルAを生成する。
【0126】
本発明の複数の実施形態において、データモデルAが512×512ピクセルを含む画像として表現できるため、各ピクセル701は結果値(3バイトを含む)を表す。これを
図7Aに示しており、画像内の各ラインがピクセル列を表し、同図は「空データオブジェクト」を表すため無地の画像を示す。
【0127】
従って、処理400がデータオブジェクトのブロックに対して結果値を生成したならば、これらの結果値は次いで512行×512列のキャンバスにプロットされて
図7Bに示すようにデータ画像モデル702を生成する。本発明の本実施形態において、各々の一意な結果値は、画像702上の対応する陰影付き/色付きピクセル等、但しこれに限定されない一意な画像表現で表される。
【0128】
画像702が生成されたならば、次いで画像702が
図7Cに示すように処理703に渡される。ステップ705において、目標画像(すなわち画像702)が畳み込みニューラルネットワーク(CNN)モデル、ディープニューラルネットワーク(DNN)モデル又は再帰的ニューラルネットワーク(RNN)モデル等の、但しこれらに限定されない画像分類モデルに渡される。これらのモデルの詳細な動作は簡潔のため割愛する。画像分類モデルは次いでステップ710、715において画像702の特徴マップ及び修正済み特徴マップを生成し、次いでステップ720で出力の生成に進む。この出力は次いで既知のマルウェアを表す出力のデータベースと比較され、処理703がステップ720において当該出力が既知のマルウェアの出力のプロットと合致すると判定した場合、データオブジェクトは悪意あると判定される。
【0129】
本発明の別の実施形態において、データセットモデルAは、データオブジェクトの全てのブロックに対して結果値の集合を含んでいてよい。
図8を参照するに、処理800は次いで異常なデータオブジェクトの事前にロードされたデータベースを探索してデータセットモデルAと類似したデータベースモデルを識別する。これはステップ805で実行される。
【0130】
完全な合致が得られる可能性が低いため、処理800は次いで機械学習解析を実行して、最も類似度の高い事前訓練済みデータセットモデルに基づいて、データセットモデルAに割り当てるマッチングスコアを判定する。これはステップ810で実行される。本発明の複数の実施形態において、当該ステップのために採用される機械学習アルゴリズムは、複数の事前訓練済みデータセットモデルの組を用いて訓練された教師付き機械学習アルゴリズムを含んでいてよい。本発明の複数の実施形態において、事前訓練済みデータセットモデルは、外部の処理装置を用いて準備されて処理800からアクセス可能なSSD記憶装置内に保存されていてよい。アクセスを容易にすべく、記憶装置内に保存された索引付きファイルが処理800からアクセス可能であることにより、当該索引付きファイルは呼び出され得るデータベースリストに関する情報を含んでいる。
【0131】
処理800は次いでステップ815において、生成されたスコアが所定の脅威閾値を上回るか否かを判定する。処理800が、データセットモデルAが安全でないことを生成されたスコアが示唆すると判定した場合、処理800はステップ820に進み、当該データオブジェクトがシステムのデータストレージにインストールされるのを阻止して、データオブジェクトが検疫にある箇所を示すログマップを生成し、次いで処理800は終了する。代替的に、処理800が生成されたスコアからデータオブジェクトが安全であると判定した場合、処理800はデータオブジェクトがステップ820を通過してシステムのデータストレージにインストールされるのを許し、次いで処理600は終了する。
【0132】
本発明の他の実施形態において、データオブジェクトに厳密なスクリーニング処理を施すべく処理703、800の両方は順次又は並行して実行されてよい。
【0133】
当業者により他の多くの変化、置換、変型及び変更を確認することができ、本発明がそのようなあらゆる変化、置換、変型及び変更が添付する請求の範囲内に含まれるものとする。
【国際調査報告】