JP2019514119A - ハイブリッドプログラムバイナリ特徴の抽出及び比較 - Google Patents

ハイブリッドプログラムバイナリ特徴の抽出及び比較 Download PDF

Info

Publication number
JP2019514119A
JP2019514119A JP2018552688A JP2018552688A JP2019514119A JP 2019514119 A JP2019514119 A JP 2019514119A JP 2018552688 A JP2018552688 A JP 2018552688A JP 2018552688 A JP2018552688 A JP 2018552688A JP 2019514119 A JP2019514119 A JP 2019514119A
Authority
JP
Japan
Prior art keywords
features
hybrid
binary
program
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018552688A
Other languages
English (en)
Other versions
JP6778761B2 (ja
JP2019514119A5 (ja
Inventor
ジュンワン リー、
ジュンワン リー、
ジチュン リ、
ジチュン リ、
ジェンユ ウ、
ジェンユ ウ、
カンクック ジー、
カンクック ジー、
グオフェイ ジアン、
グオフェイ ジアン、
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Laboratories America Inc
Original Assignee
NEC Laboratories America Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Laboratories America Inc filed Critical NEC Laboratories America Inc
Publication of JP2019514119A publication Critical patent/JP2019514119A/ja
Publication of JP2019514119A5 publication Critical patent/JP2019514119A5/ja
Application granted granted Critical
Publication of JP6778761B2 publication Critical patent/JP6778761B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

1つまたは複数の入力プログラムバイナリからプログラムバイナリ特徴を抽出し、対応するハイブリッド特徴を生成することを含む、プログラムバイナリの類似度を特定するためのシステム及び方法。ハイブリッド特徴は、参照特徴、リソース特徴、抽象化制御フロー特徴及び構造特徴を含む。抽出されたハイブリッド特徴から複数のバイナリ対の組み合わせが生成され、バイナリ毎の類似度スコアが決定される。入力ハイブリッド特徴パラメータと組み合わされた、バイナリ毎の類似度スコアに基づいてハイブリッド差異スコアが生成される。ハイブリッド差異スコアに基づいて入力プログラムに関するマルウェアの尤度が特定される。

Description

この出願は、2016年4月6日に出願された米国仮特許出願第62/318,844号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、プログラム特徴(program feature)の抽出及び比較に関し、特にハイブリッドプログラムバイナリ特徴の抽出及び比較による、悪意のあるソフトウェア攻撃の検出及び防止に関する。
プログラムバイナリは、プログラムの特性を理解するためのサイバーセキュリティの重要な態様である。無害な(benign)ソフトウェア及びマルウェアはプログラムバイナリとして配信される。それらの配信及びランタイム動作を調査することは、ウィルス対策ソフトウェア等の多くのサイバーセキュリティソリューションで実行される重要なタスクである。
従来のウィルス対策製品は、バイナリシグネチャを用いてマルウェアを特定し、プログラムバイナリを一意に識別するためにハッシュ値が一般的に用いられてきた。これは、コンテンツ(例えば、バイナリ全体、あるいは特定の1つまたは複数のセクション)に基づく1つの特徴として分類できる。しかしながら、バイナリコンテンツのハッシュ値は、小さな変化に対して敏感であり、バイナリにおける単一ビットの差異であっても、完全に異なるハッシュ値が生じるため、そのようなシステム及び方法を用いると、正確または信頼できる結果が得られない。さらに、バイナリコンテンツにおける差異量は、ハッシュ値の差異ではうまく表せない。
従来の他の手法では、マルウェアファミリーの類似度を判定する試みにおいて、プログラムの制御フロー情報(例えば、CPU命令、システムコール)が用いられてきた。しかしながら、これらの手法は、少なくとも部分的に、マルウェアだけでなく無害なソフトウェアにおける感度に起因して、類似度比較において有効でない。したがって、当該方法は、プログラムの類似度を正確に判定するのに有効ではない。
無害なソフトウェアは、異なるプラットフォーム及びパッチのために多くのバージョンを有する。さらに、それらのソースコードが非常に類似している場合でも、一旦、コンパイルされてバイナリフォーマットになると、その命令構造はコンパイラのアルゴリズム及び最適化に起因して大幅に異なるものになる。さらに、悪意のあるソフトウェア(マルウェア)に関して、マルウェアの作成者は、コードが変形したもの(例えば、ポリモーフィックマルウェアコード)を用いる。これは事実上、上述したような従来の手法を混乱させて不正確で無効なものにする。このため、従来の手法は、例えば類似する無害なプログラムとマルウェアファミリーとを正確に判定するには十分に信頼できるものでは無く、有効でもないため、プログラムバイナリの確実で有効な特性解析及び類似度比較は未解決の課題である。
本原理の一態様によれば、1つまたは複数の入力プログラムバイナリからプログラムバイナリ特徴を抽出し、対応するハイブリッド特徴を生成することを含む、プログラムバイナリの類似度を特定するための方法が提供される。ハイブリッド特徴は、参照特徴(reference feature)、リソース特徴(resource feature)、抽象化制御フロー特徴(abstract control flow feature)及び構造特徴(structural feature)を含む。抽出されたハイブリッド特徴から複数のバイナリ対の組み合わせを生成し、バイナリ対毎の類似度スコアを決定する。入力ハイブリッド特徴パラメータと組み合わされたバイナリ毎の類似度スコアに基づいてハイブリッド差異スコアを生成する。ハイブリッド差異スコアに基づいて入力プログラムに関するマルウェアの尤度を特定する。
本原理の他の態様によれば、プログラムバイナリの類似度を特定するためのシステムが提供される。システムは、1つまたは複数の入力プログラムバイナリからプログラムバイナリ特徴を抽出し、対応するハイブリッド特徴を生成するように構成された、メモリと接続されたプロセッサを備える。ハイブリッド特徴は、参照特徴、リソース特徴、抽象化制御フロー特徴及び構造特徴を含む。抽出されたハイブリッド特徴から複数のバイナリ対の組み合わせを生成し、バイナリ対毎の類似度スコアを決定する。入力ハイブリッド特徴パラメータと組み合わされたバイナリ毎の類似度スコアに基づいてハイブリッド差異スコアを生成する。ハイブリッド差異スコアに基づいて入力プログラムバイナリに関するマルウェアの尤度を特定する。
本原理の他の態様によれば、1つまたは複数の入力プログラムバイナリからプログラムバイナリ特徴を抽出し、対応するハイブリッド特徴を生成することを含む、プログラムバイナリの類似度を特定するための非一時的なコンピュータで読み取り可能な媒体が提供される。ハイブリッド特徴は、参照特徴、リソース特徴、抽象化制御フロー特徴及び構造特徴を含む。抽出されたハイブリッド特徴から複数のバイナリ対の組み合わせを生成し、バイナリ対毎の類似度スコアを決定する。入力ハイブリッド特徴パラメータと組み合わされたバイナリ毎の類似度スコアに基づいてハイブリッド差異スコアを生成する。ハイブリッド差異スコアに基づいて入力プログラムに関するマルウェアの尤度を特定する。
これら及び他の特徴並びに利点は、以下の典型的な実施形態の詳細な説明を添付の図面と併せて読むことで明らかになるであろう。
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
図1は、本原理による、本原理を適用できる典型的な処理システムを示すブロック/フロー図である。
図2Aは、本原理による、プログラムバイナリ特徴抽出のための高レベルのシステム/方法を示すブロック/フロー図である。
図2Bは、本原理による、ハイブリッド特徴類似度解析のための高レベルのシステム/方法を示すブロック/フロー図である。
図3は、本原理による、プログラムバイナリ特徴抽出のための方法を示すブロック/フロー図である。
図4は、本原理による、プログラムバイナリ特徴抽出のための典型的な参照特徴を示すブロック/フロー図である。
図5は、本原理による、抽象化制御特徴の生成のための方法を示すブロック/フロー図である。
図6は、本原理による、ハイブリッド特徴類似度比較のための方法を示すブロック/フロー図である。
図7は、本原理による、2つのバイナリの類似度比較のための方法を示すブロック/フロー図である。
図8は、本原理による、ハイブリッドプログラムバイナリ特徴の抽出及び比較のためのシステムを示すブロック/フロー図である。
本原理によれば、ハイブリッドバイナリプログラム特徴の抽出及び比較のためのシステム及び方法が提供される。
特に有用な実施形態において、本原理によるハイブリッドバイナリプログラム特徴の抽出及び比較により、1つまたは複数のコンピュータシステムに対する悪意のあるソフトウェア(マルウェア)攻撃を検出及び/または防止するためのシステム及び方法が提供される。
一実施形態において、本原理は、例えばウィルス対策保護システムのための総合的なウィルス定義アップデータとして、マルウェア攻撃から1つまたは複数のコンピューティングシステムを保護する実用的な解決策として用いることができる。プログラムバイナリは、プログラムの特性を理解するためのサイバーセキュリティの重要な態様である。無害なソフトウェア及びマルウェアは、プログラムバイナリとして配信される。それらの配信及びランタイム動作を調査することは、多くのサイバーセキュリティソリューション(例えば、ウィルス対策ソフトウェア)で実行される重要なタスクである。
現代のコンピューティングシステムは、多くのプログラムを使用し、コンピュータシステムの複雑性は、しばしば複数の機能を実装するために、一緒に動作させる複数のプログラムが必要であることがよく知られている。さらに、例えば多様なオペレーティングシステム及びプラットフォームに起因して、同じソフトウェアが多くの異なるバージョンとしてパッケージ化されて配信されることがある。各オペレーティングシステムは、複数のバージョン(例えば、WindowsにおけるService Pack、Linuxにおける配信バージョン等)を有することがある。さらに、プログラムは、多数のエラー及びセキュリティ脆弱性に起因して、頻繁に再コンパイルされる、またはパッチが適用される。例えば、現代のオペレーティングシステムは、複数の理由のうちのいずれかで、プログラムの新たな配信バージョン及び更新バージョンがしばしば発行される。
これらの理由により、企業環境において日々多数のプログラムバイナリが配備及び更新される。これは、サイバーセキュリティシステム及び方法にとって、プログラムの監視及び解析が困難な課題になる。ウィルス対策会社は、新たなマルウェアを解析し、それらのバイナリシグネチャデータベースを更新するために多くの労力及びリソースを集中させている。しかしながら、バイナリベースのシグネチャを解析して分類する既存の手法は、例えばそれらの低い信頼性及びバイナリの規模に起因して、多数のプログラムバイナリの取り扱いにおける困難を含む、様々な問題を被る。
上述したように、従来のシステム及び方法は、プログラム間の類似度または無害なプログラムとマルウェアファミリーとの正確な類似度を有効にまたは確実に判定しない。無害なソフトウェアは、異なるプラットフォーム及びパッチのために多くのバージョンを有する。それらのソースコードが非常に類似している場合でも、一旦、コンパイルされてバイナリフォーマットになると、その命令構造は、例えばコンパイラのアルゴリズム及び最適化に起因して大幅に異なるものになる。
さらに、悪意のあるソフトウェア(マルウェア)に関して、マルウェアの作成者は、コードが変形したもの(例えば、ポリモーフィックマルウェアコード)を用いる。これは事実上、上述したような従来の手法を混乱させて不正確で無効なものにする。このため、上述したような従来の手法は、例えば類似する無害なプログラムとマルウェアファミリーとを正確にかつ確実に判定するために、十分に信頼できるものでは無く、効果があるものでも無いため、プログラムバイナリの確実で有効な特性解析及び類似度比較は未解決の課題である。
様々な実施形態によれば、本原理は、プログラムバイナリから複数の特徴を抽出し、プログラムの特性を数値化して、それらの類似度をブラックボックス手法で(例えば、ソースコードまたはデバッグ情報を何も用いず)比較することに適用できる。特に、本原理によれば、抽出される複数の特徴は、(1)参照特徴、(2)リソース特徴、(3)抽象化制御フロー特徴及び/または(4)構造特徴を含む。これらの特徴は、参照されるバイナリ、リソース、制御フロー及びバイナリ構造の観点から見て、バイナリの複数の態様を表している。さらに、これらの特徴は、バイナリの他の特徴よりも関連する特性の適用範囲(coverage)がより豊富であり、相補的にプログラムの類似度を数値化するためにより有効である。
いくつかの実施形態において、本原理は、サイバーセキュリティシステムにおけるプログラムのホワイトリストへの登録及びマルウェアのクラスタリングのための重要な特徴である、プログラムバイナリの有効で正確な比較を可能にするために適用できる。
プログラムのホワイトリストへの登録に関して、本原理による既知の無害なプログラムとの類似度を判定することは、無害なプログラムの多様な変形に対する、複雑度を低減して、マルウェア検出の正確性及び有効性を増大させるために有用である。以下でさらに詳細に示すように、本発明の複数の特徴は、類似度計算のプロセスを改善する。
マルウェアのクラスタリングに関して、大量の新たなマルウェアが毎日のように新たにリリースされ、発見されている。このマルウェアの全てを手作業で調べることは、人力のコストが高く、人力及び/または従来のウィルス対策システムを用いるタイムリーな方法(例えば、絶え間なく変化するマルウェアに対処し、マルウェア変形からの攻撃をリアルタイムで防止するために十分にタイムリーに)では、膨大な量の潜在的なマルウェアを処理するには能力が欠如しており、不的確であるため、非常に困難である。本発明は、以下でさらに詳細に説明する様々な実施形態による、マルウェアの比較及びクラスタリングの品質、有効性及び正確性を改善するのに有利である。
本明細書に記載される実施形態は、全てハードウェアで実現してもよく、全てソフトウェアで実現してもよく、ハードウェアとソフトウェアの両方の要素を含んでいてもよい。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限定されないソフトウェアでも実現可能である。
実施形態には、コンピュータもしくは任意の命令実行システムによって使用される、または関連して使用されるプログラムコードを提供する、コンピュータで利用可能な、またはコンピュータで読み取り可能な媒体からアクセスできる、コンピュータプログラム製品を含んでもよい。コンピュータで利用可能な、またはコンピュータで読み取り可能な媒体には、命令実行システム、機器、もしくは装置によって使用される、または関連して使用されるプログラムを格納、伝達、伝搬または転送する任意の機器を含んでもよい。該媒体は、磁気媒体、光学媒体、電子媒体、電磁気媒体、赤外線媒体、または半導体システム(または機器もしくは装置)、あるいは伝搬媒体であってよい。該媒体には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、リジッド磁気ディスク及び光ディスク等のコンピュータで読み取り可能な媒体を含んでもよい。
各コンピュータプログラムは、汎用または特別な目的を持つプログラム可能なコンピュータで読み取ることができる、機械で読み取り可能なストレージメディアまたは装置(例えば、プログラムメモリまたは磁気ディスク)に格納される。該コンピュータプログラムは、ストレージメディアまたは装置から本明細書に記載された手順を実行するコンピュータで読み出される、該コンピュータの設定及び制御動作のためのものである。本発明のシステムには、本明細書に記載した機能を実行する、特定の及び事前に定義された方法でコンピュータを動作させるように構成されたコンピュータプログラムを含む、コンピュータで読み取り可能なストレージメディアも考慮される。
プログラムコードを記憶及び/または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に接続された少なくとも1つのプロセッサを備えていてもよい。このメモリ要素には、処理の実行中にバルク記憶装置からコードが検索される回数を減らすために、プログラムコードの実際の実行中に用いられるローカルメモリ、バルク記憶装置及び少なくともいくつかのプログラムコードを一時的に記憶するキャッシュメモリを備えていてもよい。入力/出力すなわちI/O装置(限定されるものではないが、キーボード、ディスプレイ、ポインティング装置等を含む)は、直接またはI/Oコントローラを介してシステムに接続されてもよい。
ネットワークアダプタは、データ処理システムが、プライベートネットワークまたは公衆ネットワークを介して、他のデータ処理システムまたは遠隔プリンタもしくは記憶装置に接続されることを可能にするために、上記システムと接続されていてもよい。モデム、ケーブルモデム及びイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタのほんの一握りのものである。
ここで、同じ数字が同一または同様の要素を表す図面、まず図1を詳細に参照すると、図1には本原理の一実施形態による、本原理が適用できる典型的な処理システム100が示されている。
処理システム100は、システムバス102を介して他のコンポーネントと動作可能に接続された、少なくとも1つのプロセッサ(CPU)104を含む。システムバス102には、キャッシュ106、リードオンリメモリ(ROM)108、ランダムアクセスメモリ(RAM)110、入力/出力(I/O)アダプタ120、サウンドアダプタ130、ネットワークアダプタ140、ユーザインタフェースアダプタ150及びディスプレイアダプタ160が動作可能に接続されている。
第1の記憶装置122及び第2の記憶装置124は、I/Oアダプタ120によってシステムバス102に動作可能に接続されている。記憶装置122及び124は、ディスクス記憶装置(例えば、磁気ディスク記憶装置または光ディスク記憶装置)、固体磁気装置等のいずれであってもよい。記憶装置122及び124は、同じタイプの記憶装置であってもよく、異なるタイプの記憶装置であってもよい。
スピーカ132は、サウンドアダプタ130によってシステムバス102に動作可能に接続されている。トランシーバ142は、ネットワークアダプタ140によってシステムバス102に動作可能に接続されている。ディスプレイ装置162は、ディスプレイアダプタ160によってシステムバス102に動作可能に接続されている。
第1のユーザ入力装置152、第2のユーザ入力装置154及び第3のユーザ入力装置156は、ユーザインタフェースアダプタ150よってシステムバス102に動作可能に接続されている。ユーザ入力装置152、154及び156は、キーボード、マウス、キーパッド、イメージキャプチャ装置、モーション感知装置、マイクロフォン、あるいはこれらの装置のうちの少なくとも2つの装置の機能を組み込んだ装置等のいずれであってもよい。本原理の趣旨を維持する限りにおいて、他のタイプの入力装置を使用することも可能である。ユーザ入力装置152、154及び156は、同じタイプのユーザ入力装置であってもよく、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置152、154及び156は、システム100に情報を入力し、システム100から情報を出力するために使用される。
処理システム100は、当業者であれば容易に思いつくような他の要素(図示せず)を含んでいてもよく、特定の要素を省略することも可能である。例えば、当業者であれば容易に理解できるが、処理システム100には、その詳細な実装に応じて他の様々な入力装置及び/または出力装置を使用できる。例えば、無線及び/または有線による様々なタイプの入力装置及び/または出力装置を使用できる。さらに、当業者であれば容易に理解できるが、様々な構成において追加のプロセッサ、コントローラ、メモリ等を使用することも可能である。処理システム100の上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
さらに、図1、図2A、図2B及び図8に関して説明するシステム100、200、210及び800は、本原理の各実施形態を実現するためのシステムであることを理解されたい。本原理の様々な実施形態によれば、処理システム100の一部または全ては、システム200、210及び800の要素の1つまたは複数を実行してもよい。
さらに、処理システム100は、例えば、図2A、図2B、図3、図4、図5、図6及び図7の方法200、210、300、400、500、600及び700の少なくとも一部を含む、本明細書で説明する方法の少なくとも一部を実行してもよいことを理解されたい。同様に、本原理の様々な実施形態によれば、システム800の一部または全ては、図2A、図2B、図3、図4、図5、図6及び図7の方法200、210、300、400、500、600及び700の少なくとも一部を実行するために使用されてもよい。
次に図2Aを参照すると、図2Aには本原理の実施形態によるプログラムバイナリ特徴抽出のための高レベルの方法200が例示的に示されている。
一実施形態において、ブロック202にて、1つまたは複数のプログラムバイナリが入力される。本原理によれば、ブロック204において、ハイブリッドバイナリ特徴を生成するためにプログラムバイナリ特徴抽出が実行され、ブロック206において、ハイブリッドバイナリ特徴が出力される。
次に図2Bを参照すると、図2Bには本原理の実施形態によるハイブリッド特徴類似度解析のための高レベルの方法210が例示的に示されている。
一実施形態において、ブロック212、214及び/または216において、1つまたは複数の生成されたハイブリッドバイナリ特徴が入力され、ブロック218において、1つまたは複数のハイブリッド特徴パラメータが入力される。本原理によれば、ブロック220において、2つ以上のプログラムバイナリの類似度を判定するために、特徴212、214及び216、並びに特徴パラメータ218を用いることができる。ブロック222において、ハイブリッド特徴類似度解析220に基づく類似度ベクトルが出力される。様々な実施形態によれば、ブロック222で出力される類似度ベクトルは、例えばマルウェア攻撃の検出及び防止のために、リアルタイムな悪意のあるソフトウェア(マルウェア)定義の比較及び更新を提供するために用いることができる。
次に図3を参照すると、図3には本原理の実施形態によるプログラムバイナリ特徴抽出のための方法300が例示的に示されている。
一実施形態において、本原理によれば、ブロック302において、1つまたは複数のプログラムバイナリが入力され、ブロック304において、プログラムバイナリ特徴が抽出される。様々な実施形態によれば、プログラムバイナリ314で抽出されるハイブリッドバイナリ特徴には、参照特徴316、リソース特徴318、抽象化制御フロー特徴320及び構造特徴322のうちの1つまたは複数が含まれる。本原理によれば、参照特徴抽出306、リソース特徴抽出308、抽象化制御フロー特徴抽出310及び構造特徴抽出312を含む、対応する抽出機能を用いてハイブリッド特徴が抽出される。様々な実施形態によれば、出力は、個々の特徴としてハイブリッド特徴で保存される。
説明を容易にするため、本システム及び方法の様々な特徴に関して、以下の表現を用いる。
P:入力プログラムバイナリ302
F_F(P):プログラムバイナリPの参照特徴316
F_R(P):プログラムバイナリPのリソース特徴318
F_C(P):プログラムバイナリPの抽象化制御特徴320
F_S(P):プログラムバイナリPの構造特徴322
一実施形態において、プログラムPのためのハイブリッドバイナリ特徴314は、以下で示すように、プログラムPのための参照特徴、リソース特徴、抽象化制御特徴及び構造特徴の4タプルである。
HF(P)=(F_F(P),F_R(P),F_C(P),F_S(P))
ハイブリッド特徴の類似度は、以下のように表せばよい。
プログラムP1、P2の参照特徴316の類似度:
Sim_F(F_F(P1),F_F(P2))
その入力は、プログラムP1及びP2の2つの参照特徴である。
この値は、0(0%)と1(100%)との間である。
プログラムP1、P2のリソース特徴318の類似度:
Sim_R(F_R(P1),F_R(P2))
その入力は、プログラムP1及びP2の2つのリソース特徴である。
この値は、0(0%)と1(100%)との間である。
プログラムP1、P2の抽象化制御フロー特徴320の類似度:
Sim_C(F_C(P1),F_C(P2))
その入力は、プログラムP1及びP2の2つの抽象化制御フロー特徴である。
この値は、0(0%)と1(100%)との間である。
プログラムP1、P2の構造特徴322の類似度:
Sim_C(F_C(P1),F_C(P2))
その入力は、プログラムP1及びP2の2つの構造特徴である。
この値は、0(0%)と1(100%)との間である。
様々な実施形態によれば、プログラムバイナリ特徴抽出304は、以下のように実行すればよい。
Figure 2019514119
一実施形態において、参照特徴抽出306は、以下のように実行すればよい。
Figure 2019514119
一実施形態において、リソース特徴抽出308は、以下のように実行すればよい。
Figure 2019514119
一実施形態において、抽象化制御特徴抽出310は、以下のように実行すればよい。
Figure 2019514119
一実施形態において、構造特徴抽出312は、以下のように実行すればよい。
Figure 2019514119
本原理によれば、上記特徴の4タプルは、少なくとも参照特徴がライブラリとの関係を示し、リソース特徴が同じプログラムの異なる複数のバージョンまたは類似する複数のプログラムで共有できる共通の文字列またはメッセージを示し、抽象化制御フロー特徴がより少ないノイズを有するプログラム命令の類似度を示し、構造特徴がセクション情報を比較することでプログラム構造全体の類似度を示すという理由で用いられるため、例えば本原理によるマルウェア攻撃を防止するためのプログラム間の類似度の検出に有用である。
次に図4を参照すると、図4には本原理によるプログラムバイナリ特徴抽出のための典型的な参照特徴のダイアグラム400が例示的に示されている。
ほとんどのプログラムは、個別のプログラムバイナリに格納されるライブラリコードを用いる。この特徴は、関連するプログラムバイナリに対する機能的な依存性を示している。プログラムは、他のどのバイナリが、より正確に言えば、どの機能を見つけて、適切に動作するように結びつけるべきかを記述するバイナリセクションを有する。
例えば、Linuxプラットフォームで普及しているELF(Executable and Linkable Format)バイナリフォーマットにおいて、この情報を収集するために、インポートテーブル及びGOT(Global Offset Table)を用いることができる。他のバイナリフォーマットは、類似のバイナリセクションまたはテーブルを有する。
典型的な一実施形態において、プログラムA 402は、プログラムB 404の機能B1 405とプログラムC 406の機能C1 407とを用いる。この典型的なプログラムからの参照特徴は、ブロック410において、より詳細に示される。
再び図3を参照すると、典型的なリソース特徴318が以下の表1で示されている。
表1:リソース特徴
Figure 2019514119
プログラムは、プログラムバイナリに埋め込まれた様々なリソースを使用する。これらのリソースのうちのいくつかは、プログラムで用いられるデータである。例えば、グローバルデータ、プログラムメタデータ、プログラムアイコン、文字列(strings)、デバッグシンボル等は、リソース特徴318のこのカテゴリに属する。そのような情報は、通常、個別のバイナリセクションで保存される。例えば、ELFバイナリフォーマットにおいて、読み出し専用データセクション及びシンボルテーブルセクションがそのような情報のために用いられる。
表1で示したように、リソース特徴のこの例において、このテーブルは、種類(Kind)の列を有し、データは実際に測定及び/または受信した値(Value)である。この例は、いくつかの文字列と、プログラム機能シンボルと、読み出し専用セクションからのグローバルデータと、メタデータに属するアイコンデータとを示している。
次に図5を参照すると、図5には本原理による抽象化制御フロー特徴の生成及び抽出のための方法500が例示的に示されている。
一実施形態において、与えられたプログラムが、ブロック502において、逆アセンブルされ、アルゴリズムは各命令を反復する。ブロック504において、命令が制御依存命令(例えば、算術命令)であると判定されない場合、ブロック508において、この命令が廃棄される。本原理の様々な実施形態によれば、以下の典型的な擬似コード1で示すように、ブロック504において、命令が制御依存命令であると判定された場合、オペコードのみを取り出し、抽象化制御フロー特徴に含める。
擬似コード1:抽象化制御フロー特徴の生成
Figure 2019514119
制御フロー情報(例えば、ファンクションコール、リターン、ジャンプ及びシステムコール)は、それらの動作を表す重要な記述である。しかしながら、それらの十分な情報(full information)を用いると、特定の細部(certain details)がマイナーチェンジのみで敏感に変化し、ノイズが過度に多くなることがある。例えば、プログラム命令は、他のサブルーチンに対する複数のジャンプ命令を用いるため、バイナリにおけるそれらの位置は、小さなコードパッチで変化する対象(subject)となる。したがって、本原理の様々な実施形態によれば、制御フロー情報のサブセットを用いる。このため、十分な情報を用いるよりも、敏感な変化に対してより回復力が持つ。様々な実施形態によれば、オペコードを含むが、制御依存命令のための命令パラメータを有しない命令情報のサブセット(例えば、ジャンプ、コール及びリターン命令)を用いてもよい。上述した実施形態では、非制御依存命令を用いていない。
再び図3を参照すると、典型的な構造特徴322が以下の表2で示される。
表2:構造特徴
Figure 2019514119
バイナリの他の特徴は、バイナリの構造情報である。本原理によれば、バイナリセクションの特性(例えば、名称、サイズ及びバイナリセクションの数)が、構造特徴322の1つとして用いられる。表2で詳細に記載したように、構造特徴322の典型的なテーブルにおいて、1つの列はバイナリセクションの名称を示し、他の列はバイナリセクションのサイズを示している。
次に図6を参照すると、図6には本原理によるハイブリッド特徴類似度比較のためのシステム及び方法600が例示的に示されている。
様々な実施形態によれば、(例えば、マルウェア攻撃を検出及び/または防止するための)バイナリの複数の特性の類似度を比較及び判定するために、本原理によるプログラムバイナリのハイブリッド特徴を用いてもよい。ブロック602、604及び606において、複数の(例えばN個の)プログラムバイナリから生成される1組のN個のハイブリッド特徴と、1つまたは複数のハイブリッド特徴パラメータ608(例えば、比較における各特徴の貢献を判定するレートのセット)とが、ブロック610におけるハイブリッド特徴類似度比較のために入力される。
ハイブリッド特徴パラメータ608は、以下のように表すことができる。
C_F:参照特徴のためのパラメータ
C_R:リソース特徴のためのパラメータ
C_C:抽象化制御フロー特徴のためのパラメータ
C_S:構造特徴のためのパラメータ
C_F、C_R、C_C、C_Sは、0と1との間の比率である。
C_F+C_R+C_C+C_S=1
C_F_P:類似したプログラム参照と照合するための閾値
C_F_F:類似した機能参照と照合するための閾値
一実施形態において、組み合わせ生成器612は、想定される全てのバイナリ対の組み合わせを生成するように構成されている。ブロック616において、各2つのバイナリ(例えば、対)の類似度比較が実行され、ブロック618において、ハイブリット差異スコアを生成する。本原理によれば、ブロック614において、類似度比較(例えば、特徴比較)が1つまたは複数のバイナリ対について反復され、ブロック620において、例えばマルウェア攻撃の検出及び防止で用いるために、類似度ベクトルが生成及び出力される。
本原理によれば、ブロック610におけるハイブリッド特徴類似度比較は以下のように実行すればよい。
Figure 2019514119
類似度ベクトル620:
Figure 2019514119
組み合わせ生成器612:
Figure 2019514119
特徴比較614の反復:
Figure 2019514119
上述したように、ハイブリッド差異スコア618は2つのバイナリ間の類似度を表し、全ての組み合わせのスコアは類似度ベクトル620にて保存される。いくつかの実施形態において、本原理によれば、バイナリのクラスタは、例えばクラスタリングアルゴリズムを、類似度ベクトルで保存されたデータに適用することで生成される。
次に図7を参照すると、図7には本原理による2つのバイナリの類似度比較のための方法700が例示的に示されている。
一実施形態において、本原理によれば、ブロック722において、2つのハイブリッドバイナリ特徴702、712の類似度比較が実行される。比較は、ブロック724、726、728及び730において同じ種類の特徴間の差異スコア値を決定するために、同じ種類の2つの特徴(例えば、参照特徴704、714;リソース特徴706、716;抽象化制御フロー特徴708、718;及び構造特徴710、720)間でそれぞれ実行される。
本原理の様々な実施形態によれば、差異スコア値724、726、728及び730は、例えばハイブリッド特徴パラメータ732の値を差異スコア値724、726、728及び730と乗算することで、ブロック734にて決定ハイブリッド差異スコア(determined hybrid difference score)を決定するために用いられる。
一実施形態において、プログラムバイナリP1及びP2間のハイブリッド差異スコア734は以下のように決定すればよい。
Figure 2019514119
Sim_F、Sim_R、Sim_C及びSim_Sの定義は以下で説明する。
一実施形態において、プログラムP1、P2の参照特徴704、714の類似度比較724は、以下のように実行すればよい。
Figure 2019514119
ここで、RPはプログラム基準を表し、RFは機能基準を表す。
一実施形態において、プログラムP1、P2のリソース特徴706、716の類似度比較726は、以下のように実行すればよい。
Figure 2019514119
ここで、Kは種類(Kind)を表し、Vは値(Value)を表す。
一実施形態において、プログラムP1、P2の抽象化制御フロー特徴708、718の類似度比較728は、以下のように実行すればよい。
Figure 2019514119
一実施形態において、プログラムP1、P2の構造特徴710、720の類似度比較730は、以下のように実行すればよい。
Figure 2019514119
様々な実施形態によれば、参照特徴724の比較において、例えば類似するプログラム名及び機能名を照合するために閾値を用いてもよい。例えば、同じライブラリの異なるバージョン(例えば、LibX_V1及びLibX_V2)は、閾値を用いて照合できる。対応する2つの閾値は、C_F_P及びC_F_Fとして追加される。
次に図8を参照すると、図8には本原理によるハイブリッドプログラムバイナリ特徴の抽出及び比較のための典型的なシステム800が例示的に示されている。
システム800の多くの態様が、例示及び明確さのために単数で記載されているが、システム800の説明に関して言及される要素は、複数の場合にも同じことが適用可能である。例えば、単一のコントローラ816が記載されているが、本原理の趣旨を維持する限り、本原理の教示による2つ以上のコントローラ816を用いることができる。さらに、ストレージデバイス818は、システム800に含まれる単なる1つの態様のすぎず、本原理の趣旨を維持する限り、複数の場合にも拡張できることを理解されたい。
本原理の様々な実施形態によれば、本原理は、例えばプログラムのホワイトリスト登録、未知のバイナリの特性の判定、悪意のある機能の尤度判定及びマルウェアクラスタリングのために用いてもよい。
プログラムのホワイトリスト登録に関して、これはソフトウェアの変形または異なるバージョンを判定することで達成してもよい。ソフトウェア会社及び開発者は、バグ修正、セキュリティ更新及び新たな特徴のために、ソフトウェアの様々なバージョンを作成する。例えば、ある会社が数週間または数ヶ月に1度バイナリを更新する場合、全てのバイナリ情報を企業内で取得すると、数十から数百の異なるバージョンのプログラムが存在する可能性がある。
本発明は、そのような複数のプログラムの類似度を判定することができる。無害なソフトウェアの異なるバージョンを知ることは、これらを悪意のあるソフトウェアとの比較から除外して、マルウェア検出の複雑度を低減するために有用である。
例えば、10,000のバイナリのうち、4,000のバイナリが既知で無害な500のバイナリの変形であると判定する。この場合、4,000のバイナリをホワイトリスト登録した後、マルウェアに関して6,000のバイナリのみを調べればよい。
未知のバイナリの特性を判定することに関して、未知のソフトウェアバイナリに遭遇したとき、そのバイナリの特性が何であるか(例えば、そのバイナリがユーティリティプログラムであるか、ワードプロセッサであるか、またはマルウェアであるか)は分からない。本発明を用いて未知のバイナリを既知のソフトウェアのリストと比較することで、該バイナリの特性を正確に判定することができる。例えば、他のソフトウェアとの比較において、以下の類似度を得た場合:
−未知のプログラムとファイル検索ユーティリティとの類似度:20%、
−未知のプログラムとネットワークユーティリティとの類似度:80%、
本原理によれば、このプログラムは、ネットワーク機能及びファイル検索機能を有する可能性がある判定される。
悪意のある機能の尤度を推定することに関して、未知のバイナリを悪意のあるソフトウェアバイナリのリストと比較してもよく、該バイナリが悪意のある機能を有する可能性を判定してもよい。例えば:
−未知のプログラムとマルウェアXとの類似度:50%、
−未知のプログラムとファイル検索ユーティリティとの類似度:20%、
−未知のプログラムとネットワークユーティリティとの類似度:30%。
このプログラムは、マルウェアXで見られる悪意のある機能を有する可能性(例えば、尤度百分率)があると判定される。
マルウェアクラスタリングにおいて、未知のバイナリが複数種類の悪意のあるソフトウェアとの類似度を示すとき、本発明は、ウィルス対策アプリケーションで用いるマルウェアクラスタリングによりマルウェアのカテゴリを理解するために役に立つ。例えば:
−未知のプログラムとマルウェアファミリー1との類似度:70%
−未知のプログラムとマルウェアファミリー2との類似度:27%
−未知のプログラムとマルウェアファミリー3との類似度:3%
本原理によれば、このバイナリは、マルウェアファミリー2または3よりもマルウェアファミリー1により密接に関連していると判定され、それに応じて、ウィルス対策/マルウェア対策アプリケーションが悪意のあるソフトウェア攻撃を検出及び防止するために更新/適用される。
システム800は、1つまたは複数のコンピューティングネットワーク及び/またはストレージデバイス818と接続可能なバス801を含むことができる。バイナリ特徴の抽出のためにプログラムバイナリ特徴抽出器802を用いてもよく、ハイブリッドバイナリ特徴生成器804を用いてハイブリッド特徴を生成してもよい。ハイブリッドバイナリ特徴は、例えばハイブリッド特徴パラメータ判定装置808によって提供されるハイブリッド特徴パラメータを入力としてさらに取得できる、ハイブリッドバイナリ特徴類似度解析器806を用いて解析してもよい。
様々な実施形態によれば、バイナリ対どうしの差異を判定するために類似度判定装置812を用いてもよく、類似度ベクトル生成器810は、類似度比較に基づいて、類似度スコアベクトルを生成して出力する。生成された類似度ベクトルは、マルウェア攻撃解析器、検出器及びプリベンタ814において、マルウェア攻撃保護のために(例えば、リアルタイムで、将来において)用いてもよい。それは、例えば類似度ベクトルに基づいてマルウェア定義を更新すること、更新されたマルウェア定義によって検出されたマルウェアを隔離すること等を(例えば、手動または自動で)ウィルス対策ソフトウェアに命令するためにコントローラ816によって制御できる。本原理の様々な実施形態によれば、例えば、マルウェア攻撃の検出及び防止に使用するため、更新されたマルウェア定義、類似度比較の結果等を保存するためにストレージデバイス818を用いてもよい。
上記は、あらゆる観点において例示的(illustrative)かつ典型的(exemplary)であって限定的でないものと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書中に図示及び記載されている実施形態は、本発明の原理を説明するものにすぎず、本発明の範囲及び主旨から逸脱することなく当業者は様々な変更を実施することができることを理解されたい。当業者は、本発明の範囲及び精神から逸脱することなく、様々な他の特徴の組み合わせを実施できる。以上、本発明の態様について、特許法で要求される詳細及び特殊性と共に説明したが、特許証で保護されることを要求する特許請求の範囲は、添付の特許請求の範囲に示されている。

Claims (20)

  1. プログラムバイナリの類似度を特定するための方法であって、
    1つまたは複数の入力プログラムバイナリからプログラムバイナリ特徴を抽出し、対応するハイブリッド特徴を生成することであって、前記ハイブリッド特徴が、参照特徴、リソース特徴、抽象化制御フロー特徴及び構造特徴を含むことと、
    前記抽出されたハイブリッド特徴から複数のバイナリ対の組み合わせを生成することと、
    前記バイナリ対毎の類似度スコアを決定することと、
    入力ハイブリッド特徴パラメータと組み合わされた、前記バイナリ毎の前記類似度スコアに基づいて、ハイブリッド差異スコアを生成することと、
    前記ハイブリッド差異スコアに基づいて、前記入力プログラムバイナリに関するマルウェアの尤度を特定することと、
    を含む、方法。
  2. 前記複数のバイナリ対は、前記抽出されたハイブリッド特徴で想定される全てのバイナリ対を含む、請求項1に記載の方法。
  3. 所定の閾値ハイブリッド差異スコアに到達している場合に、マルウェア対策ソフトウェアにおけるマルウェア定義ライブラリを更新することをさらに含む、請求項1に記載の方法。
  4. 前記参照特徴は、前記入力プログラムから参照されるプログラム及び参照される機能のリストのうちの少なくとも1つを含む、請求項1に記載の方法。
  5. 前記リソース特徴は、グローバルデータ、プログラムメタデータ、プログラムアイコン、文字列及びデバッグシンボルのうちの少なくとも1つを含む、請求項1に記載の方法。
  6. 前記入力プログラムを逆アセンブリし、複数の各命令を反復して前記抽象化制御フロー特徴を判定することをさらに含む、請求項1に記載の方法。
  7. 前記命令が制御依存である場合、オペコードのみを取り出し、前記抽象化制御フロー特徴に含める、請求項6に記載の方法。
  8. 前記構造特徴は、バイナリセクションの名称及びバイナリセクションのサイズのリストのうちの少なくとも1つを含む、請求項1に記載の方法。
  9. 前記ハイブリッド特徴パラメータは、前記ハイブリッド差異スコアを生成するときの前記特徴毎の貢献量を示す所定のレートのセットである、請求項1に記載の方法。
  10. プログラムバイナリの類似度を特定するためのシステムであって、
    メモリと接続されたプロセッサを備え、前記プロセッサは、
    1つまたは複数の入力プログラムバイナリからプログラムバイナリ特徴を抽出し、対応するハイブリッド特徴を生成することであって、前記ハイブリッド特徴が、参照特徴、リソース特徴、抽象化制御フロー特徴及び構造特徴を含み、
    前記抽出されたハイブリッド特徴から複数のバイナリ対の組み合わせを生成し、
    前記バイナリ対毎の類似度スコアを決定し、
    入力ハイブリッド特徴パラメータと組み合わされた、前記バイナリ毎の前記類似度スコアに基づいて、ハイブリッド差異スコアを生成し、
    前記ハイブリッド差異スコアに基づいて前記入力プログラムバイナリに関するマルウェアの尤度を特定するように構成された、システム。
  11. 前記複数のバイナリ対は、前記抽出されたハイブリッド特徴で想定される全てのバイナリ対を含む、請求項10に記載のシステム。
  12. 前記プロセッサは、所定の閾値ハイブリッド差異スコアに到達している場合に、マルウェア対策ソフトウェアにおけるマルウェア定義ライブラリを更新するようにさらに構成された、請求項10に記載のシステム。
  13. 前記参照特徴は、前記入力プログラムから参照されるプログラム及び参照される機能のリストのうちの少なくとも1つを含む、請求項10に記載のシステム。
  14. 前記リソース特徴は、グローバルデータ、プログラムメタデータ、プログラムアイコン、文字列及びデバッグシンボルのうちの少なくとも1つを含む、請求項10に記載のシステム。
  15. 前記プロセッサは、前記入力プログラムを逆アセンブリし、複数の各命令を反復して前記抽象化制御フロー特徴を判定するようにさらに構成された、請求項10に記載のシステム。
  16. 前記命令が制御依存である場合、オペコードのみを取り出し、前記抽象化制御フロー特徴に含める、請求項15に記載のシステム。
  17. 前記構造特徴は、バイナリセクションの名称及びバイナリセクションのサイズのリストのうちの少なくとも1つを含む、請求項10に記載のシステム。
  18. 前記ハイブリッド特徴パラメータは、前記ハイブリッド差異スコアを生成するときの前記特徴毎の貢献量を示す所定のレートのセットである、請求項10に記載のシステム。
  19. プログラムバイナリの類似度を特定するためのコンピュータで読み取り可能なプログラムを備えた非一時的なコンピュータで読み取り可能な記憶媒体であって、
    前記コンピュータで読み取り可能なプログラムは、
    1つまたは複数の入力プログラムバイナリからプログラムバイナリ特徴を抽出し、対応するハイブリッド特徴を生成する工程であって、前記ハイブリッド特徴が、参照特徴、リソース特徴、抽象化制御フロー特徴及び構造特徴を含み、
    前記抽出されたハイブリッド特徴から複数のバイナリ対の組み合わせを生成する工程と、
    前記バイナリ対毎の類似度スコアを決定する工程と、
    入力ハイブリッド特徴パラメータと組み合わされた、前記バイナリ毎の前記類似度スコアに基づいて、ハイブリッド差異スコアを生成する工程と、
    前記ハイブリッド差異スコアに基づいて前記入力プログラムバイナリに関するマルウェアの尤度を特定する工程と、
    を前記コンピュータに実行させる、非一時的なコンピュータで読み取り可能な記憶媒体。
  20. 所定の閾値ハイブリッド差異スコアに到達している場合に、マルウェア対策ソフトウェアにおけるマルウェア定義ライブラリを更新する工程をさらに含む、請求項19に記載の非一時的なコンピュータで読み取り可能な記憶媒体。
JP2018552688A 2016-04-06 2017-04-06 ハイブリッドプログラムバイナリ特徴の抽出及び比較 Active JP6778761B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662318844P 2016-04-06 2016-04-06
US62/318,844 2016-04-06
US15/479,928 US10289843B2 (en) 2016-04-06 2017-04-05 Extraction and comparison of hybrid program binary features
US15/479,928 2017-04-05
PCT/US2017/026359 WO2017177003A1 (en) 2016-04-06 2017-04-06 Extraction and comparison of hybrid program binary features

Publications (3)

Publication Number Publication Date
JP2019514119A true JP2019514119A (ja) 2019-05-30
JP2019514119A5 JP2019514119A5 (ja) 2020-03-19
JP6778761B2 JP6778761B2 (ja) 2020-11-04

Family

ID=59998743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018552688A Active JP6778761B2 (ja) 2016-04-06 2017-04-06 ハイブリッドプログラムバイナリ特徴の抽出及び比較

Country Status (3)

Country Link
US (1) US10289843B2 (ja)
JP (1) JP6778761B2 (ja)
WO (1) WO2017177003A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018230194A1 (ja) * 2017-06-14 2018-12-20 日本電信電話株式会社 特定支援装置、特定支援方法及び特定支援プログラム
US10346293B2 (en) * 2017-10-04 2019-07-09 International Business Machines Corporation Testing pre and post system call exits
CN109299609A (zh) * 2018-08-08 2019-02-01 北京奇虎科技有限公司 一种elf文件检测方法及装置
CN111723373A (zh) * 2019-03-19 2020-09-29 国家计算机网络与信息安全管理中心 复合式二进制文档的漏洞利用文件检测方法及装置
CN110852235A (zh) * 2019-11-05 2020-02-28 长安大学 一种图像特征提取方法
CN113378162B (zh) * 2020-02-25 2023-11-07 深信服科技股份有限公司 可执行和可链接格式文件的检验方法、装置及存储介质
US11294804B2 (en) * 2020-03-23 2022-04-05 International Business Machines Corporation Test case failure with root cause isolation
CN113254934B (zh) * 2021-06-29 2021-09-24 湖南大学 基于图匹配网络的二进制代码相似性检测方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198565A (ja) * 2009-02-27 2010-09-09 Hitachi Ltd 不正プログラム検知方法、不正プログラム検知プログラム、および情報処理装置
JP2012027710A (ja) * 2010-07-23 2012-02-09 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア検出方法及び装置及びプログラム
US20120159625A1 (en) * 2010-12-21 2012-06-21 Korea Internet & Security Agency Malicious code detection and classification system using string comparison and method thereof
JP2013077154A (ja) * 2011-09-30 2013-04-25 Kddi Corp マルウェア検知装置およびプログラム
JP2014534531A (ja) * 2011-11-02 2014-12-18 ビットディフェンダー アイピーアール マネジメント リミテッド ファジーホワイトリスト化アンチマルウェアシステムおよび方法
WO2015099780A1 (en) * 2013-12-27 2015-07-02 Mcafee, Inc. System and method of detecting malicious multimedia files

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775780B1 (en) 2000-03-16 2004-08-10 Networks Associates Technology, Inc. Detecting malicious software by analyzing patterns of system calls generated during emulation
US7752667B2 (en) 2004-12-28 2010-07-06 Lenovo (Singapore) Pte Ltd. Rapid virus scan using file signature created during file write
US20070239993A1 (en) 2006-03-17 2007-10-11 The Trustees Of The University Of Pennsylvania System and method for comparing similarity of computer programs
US8621233B1 (en) * 2010-01-13 2013-12-31 Symantec Corporation Malware detection using file names
US8516446B2 (en) * 2010-05-21 2013-08-20 Apple Inc. Automated qualification of a binary application program
US8463797B2 (en) * 2010-07-20 2013-06-11 Barracuda Networks Inc. Method for measuring similarity of diverse binary objects comprising bit patterns
US9215245B1 (en) * 2011-11-10 2015-12-15 Google Inc. Exploration system and method for analyzing behavior of binary executable programs
US9720925B1 (en) * 2012-04-12 2017-08-01 Orchard Valley Management Llc Software similarity searching
US9021589B2 (en) * 2012-06-05 2015-04-28 Los Alamos National Security, Llc Integrating multiple data sources for malware classification
US9197665B1 (en) * 2014-10-31 2015-11-24 Cyberpoint International Llc Similarity search and malware prioritization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198565A (ja) * 2009-02-27 2010-09-09 Hitachi Ltd 不正プログラム検知方法、不正プログラム検知プログラム、および情報処理装置
JP2012027710A (ja) * 2010-07-23 2012-02-09 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア検出方法及び装置及びプログラム
US20120159625A1 (en) * 2010-12-21 2012-06-21 Korea Internet & Security Agency Malicious code detection and classification system using string comparison and method thereof
JP2013077154A (ja) * 2011-09-30 2013-04-25 Kddi Corp マルウェア検知装置およびプログラム
JP2014534531A (ja) * 2011-11-02 2014-12-18 ビットディフェンダー アイピーアール マネジメント リミテッド ファジーホワイトリスト化アンチマルウェアシステムおよび方法
WO2015099780A1 (en) * 2013-12-27 2015-07-02 Mcafee, Inc. System and method of detecting malicious multimedia files

Also Published As

Publication number Publication date
JP6778761B2 (ja) 2020-11-04
US10289843B2 (en) 2019-05-14
WO2017177003A1 (en) 2017-10-12
US20170293761A1 (en) 2017-10-12

Similar Documents

Publication Publication Date Title
JP6778761B2 (ja) ハイブリッドプログラムバイナリ特徴の抽出及び比較
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
US9876812B1 (en) Automatic malware signature extraction from runtime information
US10397261B2 (en) Identifying device, identifying method and identifying program
US8949797B2 (en) Optimizing performance of integrity monitoring
Sharif et al. Eureka: A framework for enabling static malware analysis
Sun et al. Detecting code reuse in android applications using component-based control flow graph
US10055585B2 (en) Hardware and software execution profiling
US11048798B2 (en) Method for detecting libraries in program binaries
US20120240231A1 (en) Apparatus and method for detecting malicious code, malicious code visualization device and malicious code determination device
Cui et al. Tracking rootkit footprints with a practical memory analysis system
US11475133B2 (en) Method for machine learning of malicious code detecting model and method for detecting malicious code using the same
Karbalaie et al. Semantic malware detection by deploying graph mining
TW201629832A (zh) 一種識別病毒變種的方法及裝置
JPWO2016027641A1 (ja) 脆弱性発見装置、脆弱性発見方法、及び脆弱性発見プログラム
WO2011119940A1 (en) Detection of global metamorphic malware variants using control and data flow analysis
JP6000465B2 (ja) プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
Pandey et al. Performance of malware detection tools: A comparison
US20180341770A1 (en) Anomaly detection method and anomaly detection apparatus
CN108399321B (zh) 基于动态指令依赖图胎记的软件局部抄袭检测方法
US20220284109A1 (en) Backdoor inspection apparatus, backdoor inspection method, and non-transitory computer readable medium
CN113010268B (zh) 恶意程序识别方法及装置、存储介质、电子设备
Jia et al. Findevasion: an effective environment-sensitive malware detection system for the cloud
CN111324890B (zh) 可移植的执行体文件的处理方法、检测方法及装置
US10909243B2 (en) Normalizing entry point instructions in executable program files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200129

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20200129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200902

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201012

R150 Certificate of patent or registration of utility model

Ref document number: 6778761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350