JP2018525714A - Application simulation - Google Patents

Application simulation Download PDF

Info

Publication number
JP2018525714A
JP2018525714A JP2017566803A JP2017566803A JP2018525714A JP 2018525714 A JP2018525714 A JP 2018525714A JP 2017566803 A JP2017566803 A JP 2017566803A JP 2017566803 A JP2017566803 A JP 2017566803A JP 2018525714 A JP2018525714 A JP 2018525714A
Authority
JP
Japan
Prior art keywords
parameters
emulation
application
function call
function
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
JP2017566803A
Other languages
Japanese (ja)
Other versions
JP6583838B2 (en
Inventor
アルメ、クリストフ
ハーン、スラワ
フィンケ、ステファン
Original Assignee
マカフィー,エルエルシー
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 マカフィー,エルエルシー filed Critical マカフィー,エルエルシー
Publication of JP2018525714A publication Critical patent/JP2018525714A/en
Application granted granted Critical
Publication of JP6583838B2 publication Critical patent/JP6583838B2/en
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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本明細書に記載の特定の実施形態が、アプリケーションを識別し、アプリケーションを実行し、アプリケーションの各ファンクションコールのためのパラメータを記録し、エミュレーションテーブルに記録されたパラメータを格納するよう構成され得る電子デバイスを提供する。記録されたパラメータは、ファンクションコール、入力パラメータ、及び出力パラメータを含んでよい。エミュレーションテーブルは、アプリケーションを実際に実行する必要なく、アプリケーションの実行をシミュレートするために用いられ得る。Certain embodiments described herein may be configured to identify an application, execute the application, record parameters for each function call of the application, and store the parameters recorded in the emulation table. Provide a device. The recorded parameters may include function calls, input parameters, and output parameters. The emulation table can be used to simulate the execution of an application without having to actually execute the application.

Description

[関連出願の相互参照]
本願は、2015年6月27日に出願された「SIMULATION OF AN APPLICATION」と題する米国特許出願第14/752,911号の利益及びそれらに基づく優先権を主張し、その全体が本明細書に参照により組み込まれる。
[Cross-reference of related applications]
This application claims the benefit of and priority based on US patent application Ser. No. 14 / 752,911, filed Jun. 27, 2015, entitled “SIMULATION OF AN APPLICATION”, the entirety of which is incorporated herein by reference. Incorporated by reference.

本開示は、概して情報セキュリティの分野に関し、より具体的には、アプリケーションのシミュレーションに関する。   The present disclosure relates generally to the field of information security, and more specifically to application simulation.

ネットワークセキュリティの分野は、現代社会において、ますます重要になってきている。インターネットは、世界中の種々のコンピュータネットワークの相互接続を可能にしている。特に、インターネットは、様々な種類のクライアントデバイスを介して、種々のコンピュータネットワークに接続された種々のユーザ間でデータを交換するための媒体を提供する。インターネットの使用が、ビジネスコミュニケーション及びパーソナルコミュニケーションを変化させてきた一方、それはまた、悪意のあるオペレータが、コンピュータ及びコンピュータネットワークへ不正アクセスを得るための、及び機密情報の意図的な又は不注意な開示のための手段として用いられている。   The field of network security is becoming increasingly important in modern society. The Internet allows interconnection of various computer networks around the world. In particular, the Internet provides a medium for exchanging data between various users connected to various computer networks via various types of client devices. While the use of the Internet has changed business and personal communications, it also allows malicious operators to gain unauthorized access to computers and computer networks, and the intentional or inadvertent disclosure of confidential information It is used as a means for

ホストコンピュータを感染させる悪意のあるソフトウェア(「マルウェア」)は、ホストコンピュータと関連付けられた企業又は個人からの機密情報の盗取、他のホストコンピュータへの伝播、及び/又は分散サービス妨害攻撃に対する支援、ホストコンピュータからのスパム又は悪意のある電子メールの送信等のような任意の数の悪意のある動作を実行することが可能であり得る。従って、悪意のあるソフトウェアによる悪意のある、不注意な搾取からコンピュータ及びコンピュータネットワークを保護するための重要な管理問題が、残っている。   Malicious software that infects a host computer (“malware”) can assist in theft of sensitive information from a company or individual associated with the host computer, propagation to other host computers, and / or distributed denial of service attacks It may be possible to perform any number of malicious operations, such as sending spam or malicious email from a host computer. Thus, important management issues remain to protect computers and computer networks from malicious and inadvertent exploitation by malicious software.

本開示及びその特徴並びに利益に対するより完全な理解を提供するため、添付の図と併せて以下の説明が参照される。同様の参照番号は、同様の部分を表す。   In order to provide a more thorough understanding of the present disclosure and its features and benefits, reference is made to the following description, taken in conjunction with the accompanying figures. Like reference numbers represent like parts.

本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システムの簡略ブロック図である。1 is a simplified block diagram of a communication system for application simulation according to an embodiment of the present disclosure. FIG.

本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システムの一部の簡略ブロック図である。1 is a simplified block diagram of a portion of a communication system for application simulation, according to one embodiment of the present disclosure. FIG.

本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システムの例示的な詳細の簡略図である。1 is a simplified diagram of exemplary details of a communication system for simulation of an application, according to one embodiment of the present disclosure. FIG.

本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システムの例示的な詳細の簡略図である。1 is a simplified diagram of exemplary details of a communication system for simulation of an application, according to one embodiment of the present disclosure. FIG.

一実施形態に係る、通信システムと関連付けられ得る潜在的な動作を例示する簡略フローチャートである。6 is a simplified flowchart illustrating potential operations that may be associated with a communication system, according to one embodiment.

一実施形態に係る、通信システムと関連付けられ得る潜在的な動作を例示する簡略フローチャートである。6 is a simplified flowchart illustrating potential operations that may be associated with a communication system, according to one embodiment.

一実施形態に係る、ポイントツーポイント構成で配置される例示的なコンピューティングシステムを例示するブロック図である。1 is a block diagram illustrating an exemplary computing system arranged in a point-to-point configuration, according to one embodiment. FIG.

本開示の例示的なARMエコシステムシステムオンチップ(SOC)と関連付けられる簡略ブロック図である。2 is a simplified block diagram associated with an exemplary ARM ecosystem system on chip (SOC) of the present disclosure. FIG.

一実施形態に係る、例示的なプロセッサコアを例示するブロック図である。FIG. 2 is a block diagram illustrating an example processor core, according to one embodiment.

図面の図は、それらの寸法が、本開示の範囲から逸脱することなく大幅に変更され得るることから、必ずしも縮尺通りに描かれていない。   The figures in the drawings are not necessarily drawn to scale because their dimensions can be varied significantly without departing from the scope of the present disclosure.

[例示的な実施形態]
図1は、本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システム100の簡略ブロック図である。通信システム100は、電子デバイス102、クラウドサービス104、及びサーバ106を含み得る。電子デバイス102は、プロセッサ110、メモリ112、オペレーティングシステム(OS)114、及びセキュリティモジュール116を含み得る。セキュリティモジュール116は、エミュレーションモジュール118を含み得る。エミュレーションモジュールは、エミュレーションテーブル120を含み得る。クラウドサービス104及びサーバ106はそれぞれ、ネットワークセキュリティモジュール122、トレーニングセット124、及びサンドボックス環境126を含み得る。ネットワークセキュリティモジュール122は、エミュレーションデータアセッサ146及びエミュレーションテーブル120を含み得る。電子デバイス102、クラウドサービス104、及びサーバ106は各々、ネットワーク108を用いて通信し得る。
Exemplary Embodiment
FIG. 1 is a simplified block diagram of a communication system 100 for application simulation, according to one embodiment of the present disclosure. The communication system 100 may include an electronic device 102, a cloud service 104, and a server 106. The electronic device 102 may include a processor 110, a memory 112, an operating system (OS) 114, and a security module 116. Security module 116 may include an emulation module 118. The emulation module may include an emulation table 120. Cloud service 104 and server 106 may each include a network security module 122, a training set 124, and a sandbox environment 126. The network security module 122 may include an emulation data assessor 146 and an emulation table 120. Electronic device 102, cloud service 104, and server 106 may each communicate using network 108.

例示的な実施形態において、通信システム100は、データマイニング及び機械学習戦略を用いて、プロファイリングされた動作環境用の関連シミュレーションロジックを自動的にモデル化するシステムを含むように構成され得る。通信システム100は、(例えば、トレーニングセット124から)アプリケーションを識別し、アプリケーションを実行し、アプリケーションの各ファンクションコールのためのパラメータを記録し、エミュレーションテーブル(例えば、エミュレーションテーブル120)に記録されたパラメータを格納するよう構成され得る。記録されたパラメータは、ファンクションコール、入力パラメータ、及び出力パラメータを含んでよい。ある例では、通信システム100は、全体的なロギングデータを評価し、システムファンクション毎の入力から出力へのパラメータマッピングの最も一般的な組み合わせを決定し得る。通信システム100はまた、呼び出されたファンクションの出力に影響を与えない任意のパラメータを除外することができる。エミュレーションテーブルは、電子デバイス102におけるエミュレーションモジュールによって実行時に解釈可能なシステムファンクション毎のマッピングテーブルを含み得、エミュレーションテーブルは、複数のファンクションコールのための複数の記録されたパラメータを含み得る。   In an exemplary embodiment, communication system 100 may be configured to include a system that automatically models relevant simulation logic for a profiled operating environment using data mining and machine learning strategies. The communication system 100 identifies the application (eg, from the training set 124), executes the application, records the parameters for each function call of the application, and records the parameters recorded in the emulation table (eg, the emulation table 120). May be configured to store. The recorded parameters may include function calls, input parameters, and output parameters. In one example, the communication system 100 may evaluate the overall logging data and determine the most common combination of input to output parameter mapping for each system function. The communication system 100 can also exclude any parameters that do not affect the output of the called function. The emulation table may include a mapping table for each system function that can be interpreted at run time by the emulation module in the electronic device 102, and the emulation table may include a plurality of recorded parameters for a plurality of function calls.

図1の要素は、任意の好適な接続(有線又は無線)を採用する1又は複数のインタフェースを通じて互いに連結されてよく、それによりネットワーク(例えば、ネットワーク108)通信に対する実行可能な経路を提供する。更に、特定の構成の必要性に基づき、図1のこれらの要素のうち任意の1又は複数のものは、組み合わされ、又はアーキテクチャから除去されてよい。通信システム100は、ネットワークにおけるパケットの送信又は受信用の伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信が可能な構成を含んでよい。通信システム100はまた、適切な場合及び特定の必要性に基づいて、ユーザデータグラムプロトコル/IP(UDP/IP)、又は任意の他の好適なプロトコルと併せて動作し得る。   The elements of FIG. 1 may be coupled together through one or more interfaces that employ any suitable connection (wired or wireless), thereby providing a viable path for network (eg, network 108) communication. Furthermore, any one or more of these elements of FIG. 1 may be combined or removed from the architecture based on the needs of a particular configuration. The communication system 100 may include a configuration capable of transmission control protocol / Internet protocol (TCP / IP) communication for packet transmission or reception in a network. Communication system 100 may also operate in conjunction with User Datagram Protocol / IP (UDP / IP), or any other suitable protocol, as appropriate and based on specific needs.

通信システム100の特定の例示的な技術を例示する目的で、ネットワーク環境をトラバースしている場合がある通信を理解することが重要である。以下の基礎的情報は、本開示が適切に説明され得る根拠とみなされてよい。   For purposes of illustrating certain exemplary techniques of communication system 100, it is important to understand communications that may be traversing the network environment. The following basic information may be considered as the basis by which this disclosure can be adequately explained.

いくつかのマルウェア検出アプローチは、ソフトウェアエミュレーションの使用に大いに依存している。つまり、新しいソフトウェアアプリケーションが潜在的に危険な挙動を含むかどうかを判断するために、それぞれのマルウェアスキャナが、安全で仮想のエミュレーション環境内で対象のファイルの実行をシミュレートする。その意図は、実行されたファイルが、エミュレーション環境にどのような影響を与えるかだけでなく、またエミュレーション後ファイルがどのようになるかを両方モニタリングすることである。例えば、悪意のあるWindows(登録商標)実行ファイルは、ランタイムパック化又は難読化されていることが多く、エミュレーションを通じてのみ外部の難読化シェルはファイルから除去され得る。   Some malware detection approaches rely heavily on the use of software emulation. That is, in order to determine whether a new software application contains potentially dangerous behavior, each malware scanner simulates the execution of the target file in a secure virtual emulation environment. The intent is to monitor both how the executed file affects the emulation environment, as well as what the post-emulation file will look like. For example, malicious Windows® executables are often run-time packed or obfuscated, and external obfuscated shells can be removed from the file only through emulation.

Windows(登録商標) OS又はウェブブラウザのような環境を合理的に正確にシミュレートするために、システムは、OS又はブラウザがソフトウェアアプリケーション又はスクリプトコードに公開するシステムファンクションをシミュレートしなければならない。現在のところ、これは、マルウェア研究者によって手動で行われている。例えば、何らかの知られたマルウェアが特定のシステムファンクションへの呼び出しを行う時にはいつでも、そのマルウェアファミリーの検出を開発する研究者は、エミュレーション環境がそのシステムファンクションをシミュレートすることを確認する。   In order to reasonably accurately simulate an environment such as a Windows OS or web browser, the system must simulate the system functions that the OS or browser exposes to software applications or script code. Currently this is done manually by malware researchers. For example, whenever any known malware makes a call to a particular system function, a researcher who develops detection of that malware family confirms that the emulation environment simulates that system function.

システムファンクションのシミュレーションを手動でオーサリングするこのアプローチは、後手的であり、エラーが発生しやすく、高価である。今日知られている唯一の代替案は、元のOSイメージをライセンスし、エミュレーション下でOS全体を実行することである。これには、まず第1に、その高性能コストという非常に明確な制限がある。必要とされるのは、手動でオーサリングされるシミュレーションファンクションとして実行し得るシステム及び方法であるが、同時に、データマイニング及び機械学習の使用によって生成される。   This approach of manually authoring simulation of system functions is retroactive, error prone, and expensive. The only alternative known today is to license the original OS image and run the entire OS under emulation. This has a very clear limitation, first of all, its high performance cost. What is needed is a system and method that can be implemented as a manually authored simulation function, but at the same time generated by the use of data mining and machine learning.

図1に概説されるような、アプリケーションのシミュレーション用の通信システムは、これらの課題(及びその他)を解決することができる。通信システム100は、モニタリングされた元の現実環境におけるソフトウェアアプリケーションの大規模なトレーニングセットをプロファイルし、発生するシステム呼び出しをそれらの入力パラメータ及び出力パラメータとともに追跡し、最も一般的な組み合わせを決定し、アプリケーションの実行をシミュレートするためにエミュレーションコンポーネントによって用いられ得る一般化されたシミュレーションモデルを計算するよう構成され得る。セキュリティモジュールは、アプリケーションからの悪意のある挙動の兆候に関してシミュレート実行を分析し得る。例えば、挙動シーケンスのマルコフモデルを用いる挙動マルウェア分類システムが、悪意のある挙動に関するファイルを分析するために用いられ得る。   A communication system for application simulation as outlined in FIG. 1 can solve these problems (and others). The communication system 100 profiles a large training set of software applications in the original monitored real environment, tracks system calls that occur along with their input and output parameters, determines the most common combinations, It can be configured to calculate a generalized simulation model that can be used by the emulation component to simulate the execution of the application. The security module may analyze the simulated execution for signs of malicious behavior from the application. For example, a behavioral malware classification system using a Markov model of behavioral sequences can be used to analyze files related to malicious behavior.

ある例では、通信システム100は、アプリケーションがMicrosoft Windows(登録商標)、又はMozilla Firefox(登録商標) ブラウザのような対象の動作環境の元のインストール上で安全に実行され得、モニタリングされたアプリケーションが動作環境に行う全てのシステムファンクション呼び出しが記録されるデータマイニング環境を含むことができる。システムは、ソフトウェアアプリケーションがMicrosoft Windows(登録商標)、又はMozilla Firefox(登録商標) ブラウザのような、対象のOSの元のインストール上で安全に実行され得、モニタリングされたアプリケーション又はスクリプトがOS又はブラウザに行う全てのシステムファンクション呼び出しが記録されるデータマイニング環境を可能にする。例えば、カーネルモード、ユーザモード、ブラウザDOMフック等を用いて、モニタリングされたアプリケーション又はスクリプトが記録され得る。記録されたデータは、システムファンクションの名前及びライブラリ、ファンクションに渡される実際の入力パラメータ、並びにファンクションから返される出力パラメータを含み得る。   In one example, the communication system 100 may be executed securely on the original installation of the target operating environment, such as an application running Microsoft Windows® or Mozilla Firefox® browser, where the monitored application is A data mining environment can be included in which all system function calls made to the operating environment are recorded. The system allows the software application to run securely on the original installation of the target OS, such as a Microsoft Windows (registered trademark) or Mozilla Firefox (registered trademark) browser, and the monitored application or script is the OS or browser Enables a data mining environment where all system function calls made are recorded. For example, a monitored application or script may be recorded using kernel mode, user mode, browser DOM hook, and the like. The recorded data may include the name and library of the system function, the actual input parameters passed to the function, and the output parameters returned from the function.

機械学習コンポーネントは、その後、記録されたデータを評価し、システムファンクション毎の入力から出力へのパラメータマッピングの最も一般的な組み合わせを決定し得る。システムはまた、関連するそれらのパラメータのみへの正規化を実行し、システムファンクション毎にマッピングテーブルを生成し得る。マッピングテーブルは、エミュレーションモジュールに送信され得、そこで、実行時に、エミュレーションモジュールは、これらのマッピングテーブルを解釈し、入力パラメータ条件のテーブルエントリのリストが現在のシミュレーション環境状態と対応するかどうかをチェックし、そうである場合、そのテーブルエントリ内で符号化された出力動作を実行し得る。このプロセスは、アプリケーションを実際に実行させる必要なく、アプリケーションのシミュレーションを可能にする。   The machine learning component can then evaluate the recorded data and determine the most common combination of input to output parameter mapping for each system function. The system may also perform normalization to only those relevant parameters and generate a mapping table for each system function. Mapping tables can be sent to the emulation module, where at run time the emulation module interprets these mapping tables and checks if the list of table entries for input parameter conditions corresponds to the current simulation environment state. If so, an output operation encoded in the table entry may be performed. This process allows the application to be simulated without having to actually run the application.

更に、システムは、一般的なシステム呼び出しを自動的に決定し、特定の呼び出しを用いて実際のマルウェアサンプルが開始するのを待たないよう構成され得る。手動でオーサリングされたシミュレーションロジックに関するO(m)(mはバイトコードサイズ)と比較して、単一のシステムファンクションをシミュレートするための性能特性は、O(n)(nはリストサイズ)である。換言すると、リスト条件と手動規則バイトコードとの両方が同等の実行時インタープリタを用いると仮定すると、機械学習の生成されたシステムロジックの使用によって性能に追加的な影響が生じることはない。プロファイリングバックエンド環境を設定し、データマイニング出力を機械学習コンパイラに供給するための最初の1回の開発コストはより高くなるが、一旦そのプロセスが確立されると、継続的なメンテナンスコストは比較的かからない。   Further, the system can be configured to automatically determine general system calls and not wait for the actual malware sample to start with a particular call. Compared to O (m) for manually authored simulation logic, where m is the bytecode size, the performance characteristic for simulating a single system function is O (n), where n is the list size is there. In other words, assuming that both the list condition and the manual rule bytecode use an equivalent runtime interpreter, the use of machine learning generated system logic does not have an additional impact on performance. Although the initial one-time development cost for setting up the profiling back-end environment and supplying data mining output to the machine learning compiler is higher, once the process is established, the ongoing maintenance costs are relatively It does not take.

図1のインフラストラクチャを参照すると、例示的な実施形態に係る通信システム100が示される。概して、通信システム100は、任意の種類の又は任意のトポロジーのネットワークにおいて実装され得る。ネットワーク108は、通信システム100を通じて伝播する情報のパケットを受信及び送信するための、相互接続された通信経路の一連のポイント又はノードを表す。ネットワーク108は、ノード間の通信インタフェースを提供し、任意のローカルエリアネットワーク(LAN)、仮想ローカルエリアネットワーク(VLAN)、ワイドエリアネットワーク(WAN)、無線ローカルエリアネットワーク(WLAN)、メトロポリタンエリアネットワーク(MAN)、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、及び、ネットワーク環境における通信を容易にする任意の他の適切なアーキテクチャ又はシステム、あるいはそれらの任意の好適な組み合わせとして、有線及び/又は無線通信を含みつつ構成され得る。   Referring to the infrastructure of FIG. 1, a communication system 100 is shown according to an exemplary embodiment. In general, the communication system 100 may be implemented in a network of any kind or of any topology. Network 108 represents a series of points or nodes of interconnected communication paths for receiving and transmitting packets of information that propagate through communication system 100. The network 108 provides a communication interface between nodes, and can be any local area network (LAN), virtual local area network (VLAN), wide area network (WAN), wireless local area network (WLAN), metropolitan area network (MAN). ), Intranet, extranet, virtual private network (VPN), and any other suitable architecture or system that facilitates communication in a network environment, or any suitable combination thereof, wired and / or wireless communication Can be configured.

通信システム100において、パケット、フレーム、信号、データ等を含むネットワークトラフィックは、任意の好適な通信メッセージングプロトコルに従って送信及び受信され得る。好適な通信メッセージングプロトコルは、オープンシステム間相互接続(OSI)モデル、又はそれらのあらゆる派生例若しくは変形例(例えば、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル/IP(UDP/IP))のような多層スキームを含んでよい。更に、セルラーネットワークを介した無線信号通信が、通信システム100において提供されてもよい。好適なインタフェース及びインフラストラクチャは、セルラーネットワークとの通信を可能にするために提供されてもよい。   In communication system 100, network traffic including packets, frames, signals, data, etc. may be transmitted and received according to any suitable communication messaging protocol. Suitable communication messaging protocols are the Open Systems Interconnection (OSI) model, or any derivative or variant thereof (eg, Transmission Control Protocol / Internet Protocol (TCP / IP), User Datagram Protocol / IP (UDP / IP)) may be included. Further, wireless signal communication over a cellular network may be provided in the communication system 100. Suitable interfaces and infrastructure may be provided to allow communication with the cellular network.

本明細書で用いられている「パケット」という用語は、パケット交換ネットワーク上で、送信元ノードと宛先ノードとの間でルーティングされ得るデータのユニットを指す。パケットは、送信元ネットワークアドレス及び宛先ネットワークアドレスを含む。これらのネットワークアドレスは、TCP/IPメッセージングプロトコルにおけるインターネットプロトコル(IP)アドレスであってよい。本明細書で用いられている「データ」という用語は、電子デバイス及び/又はネットワークにおいて1つのポイントから別のポイントに伝達され得る、任意の種類のバイナリ、数値、音声、ビデオ、テキスト若しくはスクリプトデータ、又は任意の種類のソースコード若しくはオブジェクトコード、又は、任意の適切なフォーマットの任意の他の好適な情報を指す。更に、メッセージ、要求、応答及びクエリは、ネットワークトラフィックの形式であり、従って、パケット、フレーム、信号、データ等を含み得る。   As used herein, the term “packet” refers to a unit of data that can be routed between a source node and a destination node on a packet-switched network. The packet includes a source network address and a destination network address. These network addresses may be Internet Protocol (IP) addresses in the TCP / IP messaging protocol. As used herein, the term “data” refers to any type of binary, numeric, audio, video, text or script data that can be communicated from one point to another in an electronic device and / or network. Or any type of source code or object code, or any other suitable information in any suitable format. In addition, messages, requests, responses and queries are in the form of network traffic and can thus include packets, frames, signals, data, and the like.

例示的な実装において、電子デバイス102、クラウドサービス104、及びサーバ106は、ネットワーク要素であり、これらは、ネットワークアプライアンス、サーバ、ルータ、スイッチ、ゲートウェイ、ブリッジ、ロードバランサ、プロセッサ、モジュール、あるいは、ネットワーク環境の情報を交換するべく動作可能な任意の他の好適なデバイス、コンポーネント、要素又はオブジェクトを包含することが意図される。ネットワーク要素は、それらの動作を容易にする、任意の好適なハードウェア、ソフトウェア、コンポーネント、モジュール又はオブジェクト、並びにネットワーク環境において、データ若しくは情報を受信、送信及び/又はその他の方法で伝達するための好適なインタフェースも含み得る。これは、データ又は情報の効果的な交換を可能にする適切なアルゴリズム及び通信プロトコルを含み得る。   In an exemplary implementation, electronic device 102, cloud service 104, and server 106 are network elements, which are network appliances, servers, routers, switches, gateways, bridges, load balancers, processors, modules, or networks. It is intended to encompass any other suitable device, component, element or object operable to exchange environmental information. Network elements may receive, transmit and / or otherwise communicate data or information in any suitable hardware, software, component, module or object and network environment that facilitates their operation. A suitable interface may also be included. This may include appropriate algorithms and communication protocols that allow for effective exchange of data or information.

通信システム100と関連付けられた内部構造に関して、電子デバイス102、クラウドサービス104、及びサーバ106の各々は、本明細書に概説されている動作において用いられるべき情報を格納するためのメモリ要素を含み得る。電子デバイス102、クラウドサービス104、及びサーバ106の各々は、任意の好適なメモリ要素(例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、特定用途向け集積回路(ASIC)、等)、ソフトウェア、ハードウェア、ファームウェアにおいて、又は適切で、かつ特定の必要性に基づいた任意の他の好適なコンポーネント、デバイス、要素若しくはオブジェクトにおいて、情報を保存し得る。本明細書に記載されているメモリアイテムの何れも、「メモリ要素」という広義の用語内に包含されているとして解釈されるべきである。更に、通信システム100において用いられている、追跡されている、送信されている、又は受信されている情報は、任意のデータベース、レジスタ、キュー、テーブル、キャッシュ、制御リスト、又は他のストレージ構造において提供され得、その全ては、任意の好適なタイムフレームにおいて参照され得る。そのようなストレージの選択肢の何れも、本明細書で用いられている「メモリ要素」という広義の用語内に含まれ得る。   With respect to the internal structure associated with communication system 100, each of electronic device 102, cloud service 104, and server 106 may include a memory element for storing information to be used in the operations outlined herein. . Each of electronic device 102, cloud service 104, and server 106 may be any suitable memory element (eg, random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable). Programmable ROM (EEPROM), application specific integrated circuit (ASIC), etc.), software, hardware, firmware, or any other suitable component, device, element or as appropriate and based on specific needs Information can be stored in the object. Any of the memory items described herein are to be interpreted as being encompassed within the broad term “memory element”. Further, information used, tracked, transmitted, or received in communication system 100 may be stored in any database, register, queue, table, cache, control list, or other storage structure. All of which can be referenced in any suitable time frame. Any such storage option may be included within the broad term “memory element” as used herein.

特定の例示的な実装において、本明細書に概説されているファンクションは、1又は複数の有形媒体内に符号化されているロジック(例えば、ASIC内に設けられる埋込みロジック、デジタル信号プロセッサ(DSP)命令、プロセッサによって実行される(オブジェクトコード及びソースコードを潜在的に含む)ソフトウェア、又は他の同様の機械等)によって実装され得、それらは、非一時的コンピュータ可読媒体を含み得る。これらの例のいくつかにおいて、メモリ要素は、本明細書に説明されている動作に用いられるデータを格納できる。これは、本明細書に説明されているアクティビティを行うために実行されるソフトウェア、ロジック、コード又はプロセッサ命令を格納できるメモリ要素を含む。   In certain exemplary implementations, the functions outlined herein are logic encoded in one or more tangible media (eg, embedded logic provided in an ASIC, digital signal processor (DSP)) Instructions, software executed by a processor (potentially including object code and source code), or other similar machines, etc., which may include non-transitory computer-readable media. In some of these examples, the memory element can store data used in the operations described herein. This includes memory elements that can store software, logic, code, or processor instructions that are executed to perform the activities described herein.

例示的な実装において、電子デバイス102、クラウドサービス104、及びサーバ106のような通信システム100のネットワーク要素は、本明細書に概説されている動作を実現又は促進するために、ソフトウェアモジュール(例えば、セキュリティモジュール116、エミュレーションモジュール118、ネットワークセキュリティモジュール122、及びエミュレーションデータアセッサ146)を含み得る。これらのモジュールは、特定の構成及び/又はプロビジョニングの必要性に基づき得る、任意の適切な態様で、好適に組み合わされ得る。例示的な実施形態において、そのような動作は、意図される機能を実現するために、これらの要素の外部に実装されるハードウェアによって、又はいくつかの他のネットワークデバイス内に含まれるハードウェアによって実行され得る。更に、モジュールは、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の好適な組み合わせとして実装され得る。これらの要素は、本明細書に概説されているような動作を実現するために、他のネットワーク要素と連携できるソフトウェア(又はレシプロケーティングソフトウェア)も含み得る。   In an exemplary implementation, network elements of communication system 100, such as electronic device 102, cloud service 104, and server 106, may implement software modules (e.g., to implement or facilitate operations outlined herein) (e.g. Security module 116, emulation module 118, network security module 122, and emulation data assessor 146). These modules may be suitably combined in any suitable manner that may be based on specific configurations and / or provisioning needs. In exemplary embodiments, such operations may be performed by hardware implemented outside of these elements, or in hardware included within some other network device to achieve the intended functionality. Can be executed by Further, the modules may be implemented as software, hardware, firmware, or any suitable combination thereof. These elements may also include software (or reciprocating software) that can collaborate with other network elements to implement operations as outlined herein.

更に、電子デバイス102、クラウドサービス104、及びサーバ106の各々は、本明細書に記載されているようなアクティビティを実行するためのソフトウェア又はアルゴリズムを実行できるプロセッサを含み得る。プロセッサは、本明細書に詳述されている動作を実現するために、データと関連付けられた任意の種類の命令を実行できる。1つの例において、プロセッサは、要素又は物(例えばデータ)を1つの状態又はモノから別の状態又はモノへ変換できる。別の例において、本明細書に概説されているアクティビティは、固定ロジック又はプログラマブルロジック(例えば、プロセッサによって実行されるソフトウェア/コンピュータ命令)で実装され得る。本明細書で識別されている要素は、何らかの種類のプログラマブルプロセッサ、プログラマブルデジタルロジック(例えば、フィールドプログラマブルゲートアレイ(FPGA)、EPROM、EEPROM)、又はデジタルロジック、ソフトウェア、コード、電子命令若しくはそれらの任意の好適な組み合わせを含むASICであり得る。本明細書に説明されている、潜在的な処理要素、モジュール及び機械の何れも、「プロセッサ」という広義の用語内に包含されていると解釈されるべきである。   Further, each of electronic device 102, cloud service 104, and server 106 may include a processor capable of executing software or algorithms for performing activities as described herein. The processor may execute any type of instruction associated with the data to implement the operations detailed herein. In one example, the processor can convert an element or thing (eg, data) from one state or thing to another state or thing. In another example, the activities outlined herein may be implemented in fixed logic or programmable logic (eg, software / computer instructions executed by a processor). The elements identified herein may be any type of programmable processor, programmable digital logic (eg, field programmable gate array (FPGA), EPROM, EEPROM), or digital logic, software, code, electronic instructions, or any of them An ASIC containing a suitable combination of Any of the potential processing elements, modules, and machines described herein are to be interpreted as encompassed within the broad term “processor”.

電子デバイス102は、ネットワーク要素であってよく、例えば、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、パーソナルデジタルアシスタント、スマートフォン、タブレット、又は他の同様のデバイスを含む。クラウドサービス104は、電子デバイス102にクラウドサービスを提供するよう構成される。クラウドサービスは、概して、インターネットのようなネットワークを介したサービスとして供給されるコンピューティングリソースを用いることと定義され得る。典型的に、計算、ストレージ、及びネットワークリソースは、クラウドインフラストラクチャにおいて提供され、作業負荷をローカルネットワークからクラウドネットワークへ効果的にシフトさせる。サーバ106は、サーバ又は仮想サーバのようなネットワーク要素であってよく、何らかのネットワーク(例えば、ネットワーク108)を介する通信システム100において通信を開始することを望んでいる、クライアント、顧客、エンドポイント又はエンドユーザと関連付けられてよい。「サーバ」という用語は、クライアントの要求を果たすため、及び/又は通信システム100内でクライアントに代わって、何らかの計算タスクを実行するために用いられるデバイスを含む。セキュリティモジュール116は、図1において、電子デバイス102に配置されているよう表されているが、これは、例示目的に過ぎない。セキュリティモジュール116は、任意の好適な構成で組み合わされ得、又は分離され得る。更に、セキュリティモジュール116は、クラウドサービス104又はサーバ106のような電子デバイス102によってアクセス可能である別のネットワークと統合され得、又は、別のネットワーク内に分散され得る。   The electronic device 102 may be a network element and includes, for example, a desktop computer, laptop computer, mobile device, personal digital assistant, smartphone, tablet, or other similar device. The cloud service 104 is configured to provide a cloud service to the electronic device 102. A cloud service can generally be defined as using computing resources provided as a service over a network such as the Internet. Typically, compute, storage, and network resources are provided in the cloud infrastructure, effectively shifting the workload from the local network to the cloud network. Server 106 may be a network element such as a server or a virtual server, and is a client, customer, endpoint or end point that wishes to initiate communication in communication system 100 over some network (eg, network 108). It may be associated with a user. The term “server” includes devices that are used to fulfill client requests and / or perform some computational tasks within the communication system 100 on behalf of a client. Although the security module 116 is depicted in FIG. 1 as being located on the electronic device 102, this is for illustrative purposes only. The security modules 116 can be combined or separated in any suitable configuration. Further, the security module 116 may be integrated with or distributed within another network that is accessible by the electronic device 102, such as the cloud service 104 or the server 106.

図2を参照すると、図2は、本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システム100の一部の簡略ブロック図である。クラウドサービス104(又はサーバ106又は何らかの他ネットワーク要素)は、ネットワークセキュリティモジュール122、トレーニングセット124、及びサンドボックス環境126を含み得る。ネットワークセキュリティモジュール122は、エミュレーションデータアセッサ146及びエミュレーションテーブル120を含み得る。エミュレーションデータアセッサ146は、プロファイリングモジュール128、データマイニングモジュール130、正規化及び一般化モジュール132、及び変換モジュール134を含み得る。   Referring to FIG. 2, FIG. 2 is a simplified block diagram of a portion of a communication system 100 for application simulation, according to one embodiment of the present disclosure. The cloud service 104 (or server 106 or some other network element) may include a network security module 122, a training set 124, and a sandbox environment 126. The network security module 122 may include an emulation data assessor 146 and an emulation table 120. The emulation data assessor 146 may include a profiling module 128, a data mining module 130, a normalization and generalization module 132, and a conversion module 134.

トレーニングセット124は、サンドボックス環境126で安全に実行され得る1又は複数のアプリケーションを含み得る。サンドボックス環境126は、Microsoft Windows(登録商標)、Mozilla Firefox(登録商標)のようなブラウザ、又はアプリケーションが動作し得る何らかの他の環境のような、対象の動作環境の元のインストールを含み得る。モニタリングされるアプリケーションがサンドボックス環境126中に行うシステムファンクション呼び出しが記録される。   The training set 124 may include one or more applications that can be safely executed in the sandbox environment 126. The sandbox environment 126 may include an original installation of the target operating environment, such as a browser such as Microsoft Windows®, Mozilla Firefox®, or some other environment in which the application can operate. System function calls made by the monitored application in the sandbox environment 126 are recorded.

プロファイリングモジュール128は、各モニタリングされた呼び出しに関するデータを記録するよう構成され得る。記録されたデータは、システムファンクションの名前及びライブラリ、入力パラメータと称される、システムファンクション(例えば、スタックの最上部)に渡される実際のパラメータ、並びに出力パラメータと称される、ファンクション(例えば、EAXレジスタ)から返されるパラメータを含み得る。データマイニングモジュール130は、全体的なロギングデータを評価するよう構成され得、システムファンクション毎の入力から出力へのパラメータマッピングの最も一般的な組み合わせを決定する。正規化及び一般化モジュール132は、モニタリングされたファンクションの出力に明らかに影響を与えない任意のパラメータを除外し、関連するそれらのパラメータのみにブレークダウンするように構成され得る。変換モジュール134は、正規化及び一般化モジュール132からのデータを、エミュレーションテーブル120に含まれ得るデータに変換するよう構成され得る。エミュレーションテーブル120におけるデータは、電子デバイス102におけるエミュレーションモジュール118によって実行時に解釈可能なシステムファンクション毎のマッピングテーブルを含み得、入力パラメータのそれぞれのセットが与えられると、システムが、アプリケーションのシミュレーション下で返されるべき出力パラメータを迅速に検索することを可能にする。   Profiling module 128 may be configured to record data regarding each monitored call. The recorded data includes the name and library of the system function, the actual parameters passed to the system function (eg, the top of the stack), referred to as input parameters, and the function (eg, EAX) referred to as output parameters. Parameter) returned from the register. The data mining module 130 can be configured to evaluate the overall logging data and determine the most common combination of input to output parameter mapping for each system function. The normalization and generalization module 132 may be configured to exclude any parameters that do not clearly affect the output of the monitored function and break down only those parameters that are relevant. The conversion module 134 may be configured to convert the data from the normalization and generalization module 132 into data that may be included in the emulation table 120. The data in the emulation table 120 may include a mapping table for each system function that can be interpreted at runtime by the emulation module 118 in the electronic device 102, and given a respective set of input parameters, the system returns under simulation of the application. Enables quick retrieval of output parameters to be performed.

図3を参照すると、図3は、本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システム100の一部の簡略図である。図3は、サンドボックス環境126におけるアプリケーションの一部の実行の具体例を例示する。サンドボックス環境126において、コード148は、トレーニングセット124内のアプリケーションから取得され得る。コードは、サンドボックス環境126内で実行され得、実行することを許可され得る。コードがファンクションコールである場合、次に、呼び出しはフックされ、引数は記録される。例えば、システムスタック150内のファンクションコールからの引数が決定され、記録され得る。各ファンクションコールのために記録されたデータは、システムファンクションの名前及びライブラリ、システムファンクションに渡される実際のパラメータ(例えば、入力パラメータ)、並びにファンクションから返されるパラメータ(例えば、出力パラメータ)を含み得る。記録されたデータは、その後(例えば、データマイニングモジュール130、正規化及び一般化モジュール132、及び変換モジュール134によって)処理され、エミュレーションテーブル120をポピュレートするために用いられ得る。   Referring to FIG. 3, FIG. 3 is a simplified diagram of a portion of a communication system 100 for application simulation, according to one embodiment of the present disclosure. FIG. 3 illustrates a specific example of execution of a portion of an application in the sandbox environment 126. In the sandbox environment 126, the code 148 can be obtained from an application in the training set 124. Code may be executed within the sandbox environment 126 and may be allowed to execute. If the code is a function call, then the call is hooked and the arguments are recorded. For example, arguments from function calls in the system stack 150 can be determined and recorded. The data recorded for each function call may include the name and library of the system function, the actual parameters passed to the system function (eg, input parameters), and the parameters returned from the function (eg, output parameters). The recorded data can then be processed (eg, by data mining module 130, normalization and generalization module 132, and transformation module 134) and used to populate emulation table 120.

図4を参照すると、図4は、本開示の一実施形態に係る、アプリケーションのシミュレーションのための通信システムの一部の簡略図である。エミュレーションテーブル120は、ライブラリカラム136、ファンクションカラム138、入力パラメータ条件カラム140、及び出力パラメータ動作カラム142を含み得る。   Referring to FIG. 4, FIG. 4 is a simplified diagram of a portion of a communication system for application simulation, according to one embodiment of the present disclosure. The emulation table 120 may include a library column 136, a function column 138, an input parameter condition column 140, and an output parameter operation column 142.

実行時に、エミュレーションモジュール118は、エミュレーションテーブル120にアクセスし、入力パラメータ条件のテーブルエントリのリストが現在のシミュレーション環境設定と対応するかどうかをチェックし、そうである場合、そのテーブルエントリ内で符号化された出力動作を実行し得る。入力パラメータは、変数、呼び出し、システム構成、オペレーティングシステム、ファイル構成、データ構造等を含み得る。現在のシミュレーション環境は、アプリケーションが実行又は実行することを許可された場合、アプリケーションが実行するであろう環境である。アプリケーションの実行の適切なシミュレーションのため、入力パラメータのテーブルエントリのリストは、アプリケーションが実行又は実行することを許可された場合、アプリケーションが実行するであろう環境と対応するべきである。例えば、図4に例示されているように、mylib32.dll内のファンクション「GetSomeHandleA」のための入力パラメータが8である場合、次に、出力パラメータ又は動作は、スタック[0]ポインタに「22」を書き込むこと、及びEAXを1に設定することである。mylib32.dll内のファンクション「GetSomeHandleA」のための入力パラメータが32である場合、次に、出力パラメータ又は動作は、スタック[0]ポインタに「0」を書き込むこと、EAXを0に設定することである。これは、エミュレーションモジュール118が、アプリケーションを実際に実行する必要なくアプリケーションを実行することをシミュレートし、プロファイリングされた動作環境のための関連するシミュレーションロジックを自動的にモデル化するためにデータマイニング及び機械学習戦略を用いることを可能にする。   At runtime, the emulation module 118 accesses the emulation table 120 and checks whether the list of table entries for input parameter conditions corresponds to the current simulation environment setting, and if so, encodes within that table entry. Output operations may be performed. Input parameters may include variables, calls, system configurations, operating systems, file configurations, data structures, etc. The current simulation environment is the environment that the application will execute if the application is allowed to execute or execute. For proper simulation of application execution, the list of input parameter table entries should correspond to the environment that the application will execute if the application is allowed to execute or execute. For example, as illustrated in FIG. If the input parameter for the function “GetSomeHandleA” in dll is 8, then the output parameter or action is to write “22” to the stack [0] pointer and set EAX to 1 . mylib32. If the input parameter for the function “GetSomeHandleA” in dll is 32, then the output parameter or action is to write “0” to the stack [0] pointer and set EAX to 0. This simulates the emulation module 118 executing the application without having to actually execute the application, and data mining and automatic modeling of the associated simulation logic for the profiled operating environment. Allows the use of machine learning strategies.

図5を参照すると、図5は、一実施形態に係る、アプリケーションのシミュレーションと関連付けられ得るフロー500の考えられる動作を例示する例示的なフローチャートである。一実施形態において、フロー500の1又は複数の動作は、エミュレーションデータアセッサ146及びネットワークセキュリティモジュール122によって実行され得る。502において、システムによってアプリケーションが受信される(又は識別される)。例えば、アプリケーションは、トレーニングセット124から受信され得る。トレーニングセット124は、アプリケーション又はプロセスの大量のバッチを含み得、システムは、トレーニングセット124からの無作為に選択されたアプリケーション、トレーニングセット124からの知られたマルウェアサンプルを受信し得、又は管理者が、受信されるアプリケーションを選択し得る。504において、アプリケーションは、サンドボックス環境で実行することが許可される。例えば、アプリケーションは、サンドボックス環境126で実行することが許可されてよい。506において、各ファンクションコールについて、ファンクションコールのためのパラメータが決定され、記録される。508において、各ファンクションコール及びファンクションコールのパラメータは、エミュレーションテーブルに格納される。   Referring to FIG. 5, FIG. 5 is an exemplary flowchart illustrating possible operations of a flow 500 that may be associated with simulation of an application, according to one embodiment. In one embodiment, one or more operations of flow 500 may be performed by emulation data assessor 146 and network security module 122. At 502, an application is received (or identified) by the system. For example, the application may be received from training set 124. Training set 124 may include a large batch of applications or processes, and the system may receive a randomly selected application from training set 124, a known malware sample from training set 124, or an administrator May select the application to be received. At 504, the application is allowed to run in a sandbox environment. For example, the application may be allowed to run in the sandbox environment 126. At 506, for each function call, parameters for the function call are determined and recorded. At 508, each function call and function call parameters are stored in an emulation table.

図6を参照すると、図6は、一実施形態に係る、アプリケーションのシミュレーションと関連付けられ得るフロー600の考えられる動作を例示する例示的なフローチャートである。一実施形態において、フロー600の1又は複数の動作は、エミュレーションモジュール118によって実行され得る。602において、システムによってアプリケーションが受信される(又は識別される)。例えば、アプリケーションは、トレーニングセット124から受信されてよい。604において、エミュレーションテーブルを用いて、アプリケーションのシミュレーションが実行される。606において、アプリケーションのシミュレートされた実行は、悪意のあるアクティビティの存在に関して分析される。   Referring to FIG. 6, FIG. 6 is an exemplary flowchart illustrating possible operations of a flow 600 that may be associated with a simulation of an application, according to one embodiment. In one embodiment, one or more operations of flow 600 may be performed by emulation module 118. At 602, an application is received (or identified) by the system. For example, the application may be received from training set 124. At 604, an application simulation is performed using the emulation table. At 606, the simulated execution of the application is analyzed for the presence of malicious activity.

図7は、一実施形態に係る、ポイントツーポイント(PtP)構成で配置されるコンピューティングシステム700を例示する。特に、図7は、プロセッサ、メモリ、入力/出力デバイスが、多数のポイントツーポイントインタフェースによって相互接続されるシステムを示す。概して、通信システム100のネットワーク要素のうち1又は複数は、コンピューティングシステム700と同一の又は同様の態様で構成されてよい。   FIG. 7 illustrates a computing system 700 deployed in a point-to-point (PtP) configuration, according to one embodiment. In particular, FIG. 7 shows a system where processors, memory, and input / output devices are interconnected by multiple point-to-point interfaces. In general, one or more of the network elements of communication system 100 may be configured in the same or similar manner as computing system 700.

図7に例示されているように、システム700は、いくつかのプロセッサを含み得るが、明確にするために、それらのうちプロセッサ770及び780の2つのみが示されている。2つのプロセッサ770及び780が示されている一方、システム700の一実施形態は、そのようなプロセッサを1つだけ含んでもよいことが理解されるべきである。プロセッサ770及び780は各々、プログラムの複数のスレッドを実行するための1セットのコア(すなわち、プロセッサコア774A及び774B、並びにプロセッサコア784A及び784B)を含んでよい。コアは、図1〜図6を参照して上に述べられたものと同様の態様で、命令コードを実行するように構成され得る。各プロセッサ770、780は、少なくとも1つの共有キャッシュ771、781を含み得る。共有キャッシュ771、781は、プロセッサコア774及び784のような、プロセッサ770、780の1又は複数のコンポーネントによって利用されるデータ(例えば、命令)を格納し得る。   As illustrated in FIG. 7, the system 700 may include a number of processors, of which only two of the processors 770 and 780 are shown for clarity. While two processors 770 and 780 are shown, it should be understood that one embodiment of system 700 may include only one such processor. Each of the processors 770 and 780 may include a set of cores (ie, processor cores 774A and 774B, and processor cores 784A and 784B) for executing multiple threads of the program. The core may be configured to execute instruction code in a manner similar to that described above with reference to FIGS. Each processor 770, 780 may include at least one shared cache 771, 781. Shared cache 771, 781 may store data (eg, instructions) utilized by one or more components of processors 770, 780, such as processor cores 774 and 784.

プロセッサ770及び780は各々、メモリ要素732及び734と通信するための集積メモリコントローラロジック(MC)772及び782を含んでもよい。メモリ要素732及び/又は734は、プロセッサ770及び780によって用いられる様々なデータを格納し得る。代替的な実施形態において、メモリコントローラロジック772及び782は、プロセッサ770及び780とは分離したディスクリートロジックであってよい。   Processors 770 and 780 may include integrated memory controller logic (MC) 772 and 782 for communicating with memory elements 732 and 734, respectively. Memory elements 732 and / or 734 may store various data used by processors 770 and 780. In an alternative embodiment, the memory controller logic 772 and 782 may be discrete logic separate from the processors 770 and 780.

プロセッサ770及び780は、任意の種類のプロセッサであり得、それぞれ、ポイントツーポイント(PtP)インタフェース回路778及び788を用いて、ポイントツーポイントインタフェース750を介して、データを交換し得る。プロセッサ770及び780は各々、ポイントツーポイントインタフェース回路776、786、794及び798を用いて、個々のポイントツーポイントインタフェース752及び754を介して、チップセット790とデータを交換し得る。チップセット790は、PtPインタフェース回路であり得るインタフェース回路792を用いて、高性能グラフィックスインタフェース739を介して、高性能グラフィックス回路738とデータを交換してもよい。代替的な実施形態において、図7に例示されている、任意の又は全てのPtPリンクは、PtPリンクではなく、マルチドロップバスとして実装され得る。   Processors 770 and 780 may be any type of processor and may exchange data via point-to-point interface 750 using point-to-point (PtP) interface circuits 778 and 788, respectively. Processors 770 and 780 may exchange data with chipset 790 via individual point-to-point interfaces 752 and 754, respectively, using point-to-point interface circuits 776, 786, 794 and 798. Chipset 790 may exchange data with high performance graphics circuit 738 via high performance graphics interface 739 using interface circuit 792 which may be a PtP interface circuit. In an alternative embodiment, any or all of the PtP links illustrated in FIG. 7 may be implemented as a multidrop bus rather than a PtP link.

チップセット790は、インタフェース回路796を介して、バス720と通信を行ってよい。バス720は、バスブリッジ718及びI/Oデバイス716のような、それを介して通信する1又は複数のデバイスを有してよい。バス710を介して、バスブリッジ718は、キーボード/マウス712(又はタッチスクリーン、トラックボールのような他の入力デバイス等)、(モデム、ネットワークインタフェースデバイス、又はコンピュータネットワーク760を通じて通信し得る、他の種類の通信デバイスのような)通信デバイス726、オーディオI/Oデバイス714、及び/又はデータストレージデバイス728のような他のデバイスと通信を行ってよい。データストレージデバイス728は、プロセッサ770及び/又は780によって実行され得るコード730を格納し得る。代替的な実施形態において、バスアーキテクチャの任意の部分は、1又は複数のPtPリンクで実装され得る。   Chipset 790 may communicate with bus 720 via interface circuit 796. Bus 720 may include one or more devices that communicate with it, such as bus bridge 718 and I / O device 716. Via the bus 710, the bus bridge 718 can communicate through a keyboard / mouse 712 (or other input device such as a touch screen, trackball, etc.), a modem, network interface device, or other computer network 760 It may communicate with other devices such as communication device 726 (such as a type of communication device), audio I / O device 714, and / or data storage device 728. Data storage device 728 may store code 730 that may be executed by processors 770 and / or 780. In alternative embodiments, any part of the bus architecture may be implemented with one or more PtP links.

図7に図示されているコンピュータシステムは、本明細書に記載されている様々な実施形態を実装するために利用され得る、コンピューティングシステムの一実施形態の概略図である。図7に図示されているシステムの様々なコンポーネントは、システムオンチップ(SoC)アーキテクチャで、又は任意の他の好適な構成で組み合わされ得ることが理解されるであろう。例えば、本明細書に開示されている実施形態は、スマートセルラーフォン、タブレットコンピュータ、パーソナルデジタルアシスタント、携帯型ゲーム機等のようなモバイルデバイスを含むシステム内に組み込まれ得る。これらのモバイルデバイスには、少なくともいくつかの実施形態においてSoCアーキテクチャが設けられ得ることが理解されるであろう。   The computer system illustrated in FIG. 7 is a schematic diagram of one embodiment of a computing system that can be utilized to implement the various embodiments described herein. It will be appreciated that the various components of the system illustrated in FIG. 7 may be combined in a system on chip (SoC) architecture, or in any other suitable configuration. For example, the embodiments disclosed herein may be incorporated into systems that include mobile devices such as smart cellular phones, tablet computers, personal digital assistants, handheld game consoles, and the like. It will be appreciated that these mobile devices may be provided with a SoC architecture in at least some embodiments.

図8を参照すると、図8は、本開示の例示的なARMエコシステムSOC800と関連付けられる簡略ブロック図である。本開示の少なくとも1つの例示的な実装例は、本明細書に記載されているアプリケーションのシミュレーションの特徴、及びARMコンポーネントを含んでよい。例えば、図8の例は、任意のARMコア(例えば、A−9、A−15等)と関連付けられてよい。更に、アーキテクチャは、任意の種類のタブレット、スマートフォン(Android(登録商標) フォン、iPhone(登録商標)を含む)、iPad(登録商標)、Google Nexus(登録商標)、Microsoft Surface(登録商標)、パーソナルコンピュータ、サーバ、ビデオ処理コンポーネント、ラップトップコンピュータ(任意の種類のノートブックを含む)、Ultrabook(登録商標)システム、任意の種類のタッチ式入力デバイス等の一部であってよい。   Referring to FIG. 8, FIG. 8 is a simplified block diagram associated with an exemplary ARM ecosystem SOC 800 of the present disclosure. At least one exemplary implementation of the present disclosure may include the simulation features of the applications described herein, and the ARM component. For example, the example of FIG. 8 may be associated with any ARM core (eg, A-9, A-15, etc.). In addition, the architecture can be any type of tablet, smartphone (including Android (R) phones, iPhone (R)), iPad (R), Google Nexus (R), Microsoft Surface (R), personal It may be part of a computer, server, video processing component, laptop computer (including any kind of notebook), Ultrabook® system, any kind of touch input device, etc.

図8のこの例において、ARMエコシステムSOC800は、複数のコア806−807、L2キャッシュ制御808、バスインタフェースユニット809、L2キャッシュ810、グラフィックス処理ユニット(GPU)815、相互接続802、ビデオコーデック820、及び液晶ディスプレイ(LCD)I/F825を含み得、これらは、LCDに連結するモバイルインダストリプロセッサインタフェース(MIPI)/高解像度マルチメディアインタフェース(HDMI(登録商標))リンクと関連付けられ得る。   In this example of FIG. 8, the ARM ecosystem SOC 800 includes a plurality of cores 806-807, an L2 cache control 808, a bus interface unit 809, an L2 cache 810, a graphics processing unit (GPU) 815, an interconnect 802, and a video codec 820. , And a liquid crystal display (LCD) I / F 825, which may be associated with a mobile industry processor interface (MIPI) / high resolution multimedia interface (HDMI) link that couples to the LCD.

ARMエコシステムSOC800は、加入者識別モジュール(SIM)I/F830、ブートリードオンリメモリ(ROM)835、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)コントローラ840、フラッシュコントローラ845、シリアル周辺インタフェース(SPI)マスタ850、好適な電力制御855、ダイナミックRAM(DRAM)860、及びFlash865も含み得る。加えて、1又は複数の例示的な実施形態は、1又は複数の通信能力、インタフェース及びBluetooth(登録商標)870、3Gモデム875、全地球測位システム(GPS)880及び802.11Wi−Fi(登録商標)885の例のような特徴を含む。   The ARM ecosystem SOC 800 includes a subscriber identification module (SIM) I / F 830, a boot read only memory (ROM) 835, a synchronous dynamic random access memory (SDRAM) controller 840, a flash controller 845, and a serial peripheral interface (SPI) master 850. Suitable power control 855, dynamic RAM (DRAM) 860, and Flash 865 may also be included. In addition, one or more exemplary embodiments may include one or more communication capabilities, interfaces and Bluetooth® 870, 3G modem 875, Global Positioning System (GPS) 880, and 802.11 Wi-Fi (registration). Trademark) 885 features.

動作において、図8の例は、比較的低い消費電力と共に、様々な種類のコンピューティング(例えば、モバイルコンピューティング、ハイエンドデジタルホーム、サーバ、無線インフラストラクチャ等)を可能とする処理能力を提供できる。加えて、このようなアーキテクチャは、任意の数のソフトウェアアプリケーション(例えば、Android(登録商標)、Adobe(登録商標) Flash(登録商標) Player、Java(登録商標) Platform Standard Edition(Java(登録商標) SE)、Java(登録商標)FX、Linux(登録商標)、Microsoft Windows(登録商標) Embedded、Symbian及びUbuntu等)を可能にし得る。少なくとも1つの例示的な実施形態において、コアプロセッサは、連結された低レイテンシレベル2キャッシュを有するアウトオブオーダ・スーパースカラ・パイプラインを実装し得る。   In operation, the example of FIG. 8 can provide processing power that enables various types of computing (eg, mobile computing, high-end digital homes, servers, wireless infrastructure, etc.) with relatively low power consumption. In addition, such an architecture can be used with any number of software applications (e.g., Android (R), Adobe (R) Flash (R) Player, Java (R) Platform Standard Edition (Java (R)). SE), Java® FX, Linux®, Microsoft Windows® Embedded, Symbian and Ubuntu, etc.). In at least one exemplary embodiment, the core processor may implement an out-of-order superscalar pipeline with a concatenated low latency level 2 cache.

図9は、一実施形態に係るプロセッサコア900を例示する。プロセッサコア900は、マイクロプロセッサ、埋込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、又は、コードを実行する他のデバイスのような、任意の種類のプロセッサ用のコアであってよい。図9において、1つのプロセッサコア900のみが例示されているが、プロセッサは、図9に例示されているプロセッサコア900の1つより多くを代替的に含んでよい。例えば、プロセッサコア900は、図7のプロセッサ770及び780に関連して示され及び説明されている、プロセッサコア774a、774b、784a及び784bの、1つの例示的な実施形態を表す。プロセッサコア900は、シングルスレッドコアであってもよく、又は、少なくとも1つの実施形態に関して、プロセッサコア900は、コア毎に1つより多くのハードウェアスレッドコンテキスト(又は「ロジカルプロセッサ」)を含み得るという点で、マルチスレッドコアであってもよい。   FIG. 9 illustrates a processor core 900 according to one embodiment. The processor core 900 may be a core for any type of processor, such as a microprocessor, embedded processor, digital signal processor (DSP), network processor, or other device that executes code. Although only one processor core 900 is illustrated in FIG. 9, the processor may alternatively include more than one of the processor cores 900 illustrated in FIG. For example, processor core 900 represents one exemplary embodiment of processor cores 774a, 774b, 784a, and 784b shown and described in connection with processors 770 and 780 of FIG. The processor core 900 may be a single thread core or, for at least one embodiment, the processor core 900 may include more than one hardware thread context (or “logical processor”) per core. In that respect, it may be a multi-threaded core.

図9はまた、一実施形態に係る、プロセッサコア900に連結されたメモリ902を例示する。メモリ902は、知られた又はそうでなければ当業者に利用可能な多種多様なメモリ(メモリ階層の様々な層を含む)の何れかであってよい。メモリ902は、プロセッサコア900によって実行されるべき1又は複数の命令であり得るコード904を含み得る。プロセッサコア900は、コード904によって示される、命令のプログラムシーケンスに従い得る。各命令は、フロントエンドロジック906に入り、1又は複数のデコーダ908によって処理される。デコーダは、その出力として、予め定義されたフォーマットで固定幅のマイクロオペレーションのようなマイクロオペレーションを生成してよく、又は元のコード命令を反映する他の命令、マイクロ命令、若しくは制御信号を生成してよい。フロントエンドロジック906はまた、レジスタリネーミングロジック910及びスケジューリングロジック912を含み、これらは概してリソースを割り当て、実行の命令に対応する動作をキューに登録する。   FIG. 9 also illustrates a memory 902 coupled to the processor core 900, according to one embodiment. Memory 902 may be any of a wide variety of memories (including various layers of the memory hierarchy) that are known or otherwise available to those skilled in the art. Memory 902 may include code 904 that may be one or more instructions to be executed by processor core 900. The processor core 900 may follow a program sequence of instructions indicated by code 904. Each instruction enters the front end logic 906 and is processed by one or more decoders 908. The decoder may generate as its output a micro-operation, such as a fixed-width micro-operation, in a predefined format, or other instruction, micro-instruction, or control signal that reflects the original code instruction. It's okay. Front end logic 906 also includes register renaming logic 910 and scheduling logic 912, which generally allocate resources and queue operations corresponding to instructions for execution.

プロセッサコア900は、1セットの実行ユニット916−1から916−Nを有する実行ロジック914を含んでもよい。いくつかの実施形態は、特定のファンクション又は複数のファンクションセット専用の多数の実行ユニットを含み得る。他の実施形態は、1つの実行ユニットのみを含んでもよく、又は特定のファンクションを実行できる1つの実行ユニットを含んでもよい。実行ロジック914は、コード命令によって指定される動作を実行する。   The processor core 900 may include execution logic 914 having a set of execution units 916-1 to 916-N. Some embodiments may include multiple execution units dedicated to a particular function or multiple function sets. Other embodiments may include only one execution unit, or may include one execution unit that can perform a particular function. Execution logic 914 performs the operation specified by the code instruction.

コード命令によって指定される動作の実行が完了した後、バックエンドロジック918は、コード904の命令をリタイアできる。1つの実施形態において、プロセッサコア900は、アウトオブオーダ実行を許可するが、命令のインオーダリタイアメントを必要とする。リタイアメントロジック920は、(例えばリオーダバッファ又は同様の)様々な知られた形式を取ってよい。このように、少なくとも、デコーダ、レジスタリネーミングロジック910によって利用されるハードウェアレジスタ及びテーブル、並びに実行ロジック914によって変更される任意のレジスタ(不図示)により生成される出力に関して、プロセッサコア900は、コード904の実行中に変換される。   After the execution of the operation specified by the code instruction is complete, the backend logic 918 can retire the code 904 instruction. In one embodiment, the processor core 900 allows out-of-order execution but requires in-order retirement of instructions. The retirement logic 920 may take various known forms (eg, a reorder buffer or the like). Thus, processor core 900 is at least in terms of outputs generated by decoders, hardware registers and tables utilized by register renaming logic 910, and any registers (not shown) modified by execution logic 914. Converted during execution of code 904.

図9に例示されていないが、プロセッサは、プロセッサコア900と共に他の要素をチップ上に含んでよく、少なくともそれらのうちいくつかは、図7に関連して本明細書に示され及び説明されている。例えば、図7に示されているように、プロセッサは、プロセッサコア900と共にメモリ制御ロジックを含み得る。プロセッサは、I/O制御ロジックを含んでよく、及び/又はメモリ制御ロジックと統合されるI/O制御ロジックを含んでよい。   Although not illustrated in FIG. 9, the processor may include other elements on the chip along with the processor core 900, at least some of which are shown and described herein in connection with FIG. ing. For example, as shown in FIG. 7, the processor may include memory control logic along with the processor core 900. The processor may include I / O control logic and / or may include I / O control logic that is integrated with memory control logic.

本明細書に提供されている例に関して、インタラクションは、2つ、3つ又はそれより多くのネットワーク要素に関して説明され得ることに留意されたい。しかしながら、これは単に、明確性及び例示目的のためになされているものである。特定の場合には、限定的な数のネットワーク要素のみを参照することによって、所与のセットのフローの機能のうち1又は複数を説明することがより容易になる場合がある。通信システム100及びその教示は、容易に拡張可能であり、数多くのコンポーネント、並びにより複雑な/高性能の配置及び構成にも対応できることが理解されるべきである。従って、提供されている例は、潜在的に無数の他のアーキテクチャに適用されるので、通信システム100の範囲を限定し、又はその広範な教示を阻むべきではない。   Note that for the examples provided herein, the interaction may be described with respect to two, three or more network elements. However, this is done for clarity and illustration purposes only. In certain cases, referring to only a limited number of network elements may make it easier to describe one or more of the functions of a given set of flows. It should be understood that the communication system 100 and its teachings are easily extensible and can accommodate numerous components, as well as more complex / high performance arrangements and configurations. Thus, the examples provided should be applied to a myriad of other architectures and should not limit the scope of the communication system 100 or prevent its extensive teaching.

前述されたフロー図(すなわち図5及び図6)における動作は、考えられる相関シナリオ及びパターンのうち、通信システム100によって実行され得る、又は通信システム100内にある、いくつかのものだけを例示していることに留意することも重要である。これらの動作のうちいくつかのものは、適切な箇所で削除され若しくは除去されてよく、又は、これらの動作は、本開示の範囲から逸脱することなく、大幅に修正若しくは変更されてよい。加えて、これらの動作の多数は、1又は複数の追加的な動作と同時に又は並行して実行されていると説明されている。しかしながら、これらの動作のタイミングは、大幅に変更され得る。前述された動作のフローは、例示及び説明目的のために提供されている。任意の好適な配置、時系列、構成及びタイミングのメカニズムが、本開示の教示から逸脱することなく提供され得るという点で、大きな柔軟性が、通信システム100によって提供される。   The operations in the flow diagrams described above (ie, FIGS. 5 and 6) illustrate only some of the possible correlation scenarios and patterns that may be performed by or are within the communication system 100. It is also important to note that Some of these operations may be deleted or removed where appropriate, or these operations may be modified or changed significantly without departing from the scope of the present disclosure. In addition, many of these operations are described as being performed concurrently or concurrently with one or more additional operations. However, the timing of these operations can be changed significantly. The flow of operation described above is provided for purposes of illustration and description. Great flexibility is provided by the communication system 100 in that any suitable arrangement, time series, configuration and timing mechanism may be provided without departing from the teachings of the present disclosure.

本開示は、特定の配置及び構成に関連して詳細に説明されているが、これらの例示的な構成及び配置は、本開示の範囲から逸脱することなく著しく変更され得る。更に、特定のコンポーネントが、特定の必要性及び実装に基づいて、組み合わされ、分離され、排除され、又は追加され得る。更に、通信システム100は、通信プロセスを容易にする特定の要素及び動作を参照して例示されているが、これらの要素及び動作は、通信システム100の意図される機能を実現する任意の好適なアーキテクチャ、プロトコル及び/又はプロセスによって置き換えられてよい。   Although the present disclosure has been described in detail with reference to particular arrangements and configurations, these exemplary configurations and arrangements can be significantly modified without departing from the scope of the present disclosure. Further, specific components may be combined, separated, eliminated, or added based on specific needs and implementations. Further, although the communication system 100 is illustrated with reference to certain elements and operations that facilitate the communication process, these elements and operations may be any suitable implementation that implements the intended functionality of the communication system 100. It may be replaced by architecture, protocol and / or process.

多数の他の変更、代替、変形、改変及び修正が、当業者に確認され得て、本開示は、全てのそのような変更、代替、変形、改変及び修正を添付の特許請求の範囲内に含まれるものとして包含することが意図される。米国特許商標庁(USPTO)を補助するため、更に、本明細書に添付の特許請求の範囲の解釈において、本願に基づいて発行された任意の特許のあらゆる読者を補助するため、出願人は、(a)「の手段(means for)」又は「の段階(step for)」という文言が、特定の特許請求の範囲において具体的に用いられない限り、出願日において本明細書に存在するよう、添付の特許請求の範囲の何れかに米国特許法第112条第6段落を援用することを出願人が意図しない、(b)明細書におけるあらゆる記述によって、決して、本開示をそうでなければ添付の特許請求の範囲に反映されないように限定することを出願人が意図しない、ことに留意することを望んでいる。   Numerous other changes, alternatives, variations, modifications and modifications can be ascertained by those skilled in the art, and this disclosure is intended to embrace all such changes, alternatives, modifications, changes and modifications within the scope of the appended claims It is intended to be included as included. To assist the United States Patent and Trademark Office (USPTO), and to assist any reader of any patent issued under this application in interpreting the claims appended hereto, (A) Unless the word “means for” or “step for” is specifically used in a particular claim, it is present in the specification as of the filing date; Applicant does not intend to incorporate 35 USC 112, sixth paragraph in any of the appended claims, (b) by any statement in the specification, this disclosure is otherwise not attached It is desirable to note that applicants do not intend to be limited so that they are not reflected in the following claims.

[他の留意事項及び例]
例C1は、少なくとも1つのプロセッサによって実行されるとき、アプリケーションを識別することと、アプリケーションを実行することと、アプリケーションの各ファンクションコールのためのパラメータを記録することと、エミュレーションテーブルに記録されたパラメータを格納することとを少なくとも1つの機械可読媒体に実行させる1又は複数の命令を有する少なくとも1つの機械可読媒体である。
[Other notes and examples]
Example C1, when executed by at least one processor, identifies an application, executes the application, records parameters for each function call of the application, and parameters recorded in the emulation table At least one machine-readable medium having one or more instructions that cause at least one machine-readable medium to execute.

例C2において、例C1の主題は、記録されたパラメータがファンクションコール、入力パラメータ、及び出力パラメータを含むことを任意で含んでよい。   In Example C2, the subject of Example C1 may optionally include that the recorded parameters include function calls, input parameters, and output parameters.

例C3において、例C1−C2の何れか1つの主題は、命令は、少なくとも1つのプロセッサによって実行されるとき、全体的なロギングデータを評価し、各ファンクションコールのための入力から出力へのパラメータマッピングの最も一般的な組み合わせを決定することを少なくとも1つの機械可読媒体に更に実行させることを任意で含んでよい。   In Example C3, the subject matter of any one of Examples C1-C2 is that when the instruction is executed by at least one processor, the overall logging data is evaluated and the input-to-output parameter for each function call. Determining the most common combination of mappings may optionally include further causing at least one machine-readable medium to perform.

例C4において、例C1−C3の何れか1つの主題は、命令は、少なくとも1つのプロセッサによって実行されるとき、各ファンクションコールの出力に影響を与えない任意のパラメータを除外することを少なくとも1つの機械可読媒体に更に実行させることを任意で含んでよい。   In Example C4, any one subject of Examples C1-C3 is that the instruction excludes any parameter that does not affect the output of each function call when executed by at least one processor. Additional execution on a machine readable medium may optionally be included.

例C5において、例C1−C4の何れか1つの主題は、エミュレーションテーブルにおけるデータは、エミュレーションモジュールによって実行時に解釈可能なファンクションコール毎のマッピングテーブルを含むことを任意で含んでよい。   In Example C5, the subject matter of any one of Examples C1-C4 may optionally include that the data in the emulation table includes a mapping table for each function call that can be interpreted at run time by the emulation module.

例C6において、例C1−C5の何れか1つの主題は、エミュレーションテーブルは、複数のファンクションコールのための複数の記録されたパラメータを含むことを任意で含んでよい。   In Example C6, the subject matter of any one of Examples C1-C5 may optionally include that the emulation table includes a plurality of recorded parameters for a plurality of function calls.

例C7において、例C1−C6の何れか1つの主題は、命令は、少なくとも1つのプロセッサによって実行されるとき、エミュレーションテーブルを電子デバイスに伝達することを少なくとも1つのプロセッサに更に実行させることを任意で含んでよい。   In Example C7, the subject matter of any one of Examples C1-C6 is an optional instruction that causes at least one processor to further communicate the emulation table to the electronic device when executed by at least one processor. May be included.

例C8において、例C1−C7の何れか1つの主題は、アプリケーションがサンドボックス環境で実行されることを任意で含んでよい。   In Example C8, the subject matter of any one of Examples C1-C7 may optionally include the application running in a sandbox environment.

例A1において、装置が、ネットワークエミュレーションモジュールを含み得、ネットワークエミュレーションモジュールは、アプリケーションを識別し、アプリケーションを実行し、アプリケーションの各ファンクションコールのためのパラメータを記録し、エミュレーションテーブルに記録されたパラメータを格納するよう構成される。   In example A1, the device may include a network emulation module that identifies the application, executes the application, records the parameters for each function call of the application, and records the parameters recorded in the emulation table. Configured to store.

例A2において、例A1の主題は、記録されたパラメータがファンクションコール、入力パラメータ、及び出力パラメータを含むことを任意で含んでよい。   In Example A2, the subject matter of Example A1 may optionally include that the recorded parameters include function calls, input parameters, and output parameters.

例A3において、例A1−A2の何れか1つの主題は、ネットワークエミュレーションモジュールは更に、全体的なロギングデータを評価し、各ファンクションコールのための入力から出力へのパラメータマッピングの最も一般的な組み合わせを決定するよう構成されることを任意で含んでよい。   In Example A3, the subject matter of any one of Examples A1-A2 is that the network emulation module further evaluates the overall logging data, and the most common combination of input to output parameter mapping for each function call. May optionally be configured to determine.

例A4において、例A1−A3の何れか1つの主題は、ネットワークエミュレーションモジュールは更に、ファンクションコールの出力に影響を与えない任意のパラメータを除外するよう構成されることを任意で含んでよい。   In Example A4, the subject matter of any one of Examples A1-A3 may optionally further include the network emulation module further configured to exclude any parameters that do not affect the output of the function call.

例A5において、例A1−A4の何れか1つの主題は、エミュレーションテーブルにおけるデータは、エミュレーションモジュールによって実行時に解釈可能なファンクションコール毎のマッピングテーブルを含むことを任意で含んでよい。   In Example A5, the subject matter of any one of Examples A1-A4 may optionally include that the data in the emulation table includes a mapping table for each function call that can be interpreted at run time by the emulation module.

例A6において、例A1−A5の何れか1つの主題は、エミュレーションテーブルは、複数のファンクションコールのための複数の記録されたパラメータを含むことを任意で含んでよい。   In Example A6, the subject matter of any one of Examples A1-A5 may optionally include that the emulation table includes a plurality of recorded parameters for a plurality of function calls.

例A7において、例A1−A6の何れか1つの主題は、モニタリングモジュールは、エミュレーションテーブルを電子デバイスに伝達するよう更に構成されることを任意で含み得る。   In Example A7, the subject matter of any one of Examples A1-A6 may optionally include the monitoring module further configured to communicate the emulation table to the electronic device.

例A8において、例A1−A7の何れか1つの主題は、モニタリングモジュールは、サンドボックス環境でアプリケーションを実行するよう更に構成されることを任意で含み得る。   In Example A8, the subject matter of any one of Examples A1-A7 can optionally include the monitoring module being further configured to run the application in a sandbox environment.

例M1は、電子デバイス上のアプリケーションを識別することと、エミュレーションテーブルを用いてアプリケーションの実行をシミュレートすることであって、エミュレーションテーブルは、アプリケーションの各ファンクションコールのためのパラメータを含む、シミュレートすることとを含む方法である。   Example M1 is identifying an application on an electronic device and simulating the execution of the application using an emulation table, where the emulation table includes parameters for each function call of the application A method comprising:

例M2において、例M1の主題は、パラメータが入力パラメータ、及び出力パラメータを含むことを任意で含んでよい。   In example M2, the subject matter of example M1 may optionally include that the parameters include input parameters and output parameters.

例M3において、例M1−M2の何れか1つの主題は、マルウェアの存在のためのアプリケーションの実行のシミュレーションを分析することを任意で含んでよい。   In Example M3, any one of the subjects of Examples M1-M2 may optionally include analyzing a simulation of application execution for the presence of malware.

例M4において、例M1−M3の何れか1つの主題は、エミュレーションテーブルにおけるデータは、エミュレーションモジュールによって実行時に解釈可能なファンクションコール毎のマッピングテーブルを含むことを任意で含んでよい。   In Example M4, the subject matter of any one of Examples M1-M3 may optionally include that the data in the emulation table includes a mapping table for each function call that can be interpreted at run time by the emulation module.

例M5において、例M1−M4の何れか1つの主題は、エミュレーションテーブルは、ネットワーク要素によって生成され、ネットワーク要素から電子デバイスへ通信されたことを任意で含んでよい。   In Example M5, the subject matter of any one of Examples M1-M4 may optionally include that the emulation table was generated by the network element and communicated from the network element to the electronic device.

例M6において、例M1−M5の何れか1つの主題は、エミュレーションテーブルは、アプリケーションを識別することと、そのアプリケーションを実行することと、そのアプリケーションの各ファンクションコールのためのパラメータを記録し、エミュレーションテーブルに記録されたパラメータを格納することによって生成されたことを任意で含んでよい。   In Example M6, the subject of any one of Examples M1-M5 is that the emulation table records the parameters for identifying the application, executing the application, and each function call of the application, It may optionally include what was generated by storing the parameters recorded in the table.

例M7において、例M1−M6の何れか1つの主題は、エミュレーションテーブルの生成の間、ロギングデータが評価され、各ファンクションコールのための入力から出力へのパラメータマッピングの最も一般的な組み合わせが決定されたことを任意で含んでよい。   In Example M7, the subject of any one of Examples M1-M6 is that the logging data is evaluated during the generation of the emulation table to determine the most common combination of input to output parameter mapping for each function call. It may optionally include what has been done.

例S1は、アプリケーションのシミュレーションのためのシステムであり、システムは、アプリケーションを識別し、アプリケーションを実行し、アプリケーションの各ファンクションコールのためのパラメータを記録し、エミュレーションテーブルに記録されたパラメータを格納するよう構成されるネットワークエミュレーションモジュールを含み得る。   Example S1 is a system for application simulation that identifies an application, executes the application, records the parameters for each function call of the application, and stores the parameters recorded in the emulation table. A network emulation module configured to be included.

例S2において、例S1の主題は、記録されたパラメータがファンクションコール、入力パラメータ、及び出力パラメータを含むことを任意で含んでよい。   In example S2, the subject of example S1 may optionally include that the recorded parameters include function calls, input parameters, and output parameters.

例X1は、例A1−A8又は例M1−M7の何れか1つに示されるように、方法を実装するための、又は装置を実現するための機械可読命令を含む機械可読記憶媒体である。例Y1は、例示的な方法M1−M7の何れかを実行するための手段を含む装置である。例Y2において、例Y1の主題は、プロセッサ及びメモリを含む方法を実行するための手段を任意で含んでよい。例Y3において、例Y2の主題は、機械可読命令を含むメモリを任意で含んでよい。   Example X1 is a machine-readable storage medium that includes machine-readable instructions for implementing a method or implementing a device, as shown in any one of Examples A1-A8 or Examples M1-M7. Example Y1 is an apparatus that includes means for performing any of the exemplary methods M1-M7. In Example Y2, the subject of Example Y1 may optionally include means for performing a method including a processor and a memory. In Example Y3, the subject of Example Y2 may optionally include a memory that includes machine-readable instructions.

Claims (25)

少なくとも1つのプロセッサによって実行されることで、
サンドボックス環境で複数のファンクションコールを含むアプリケーションを実行することと、
前記アプリケーションのそれぞれのファンクションコールのためのパラメータを記録することと、
後でシミュレーション環境で使用して前記ファンクションコールのうち少なくとも1つの実行をシミュレートするべく、エミュレーションテーブルに前記記録されたパラメータを格納することと
を前記少なくとも1つのプロセッサに実行させる1又は複数の命令を備える
プログラム。
Being executed by at least one processor,
Running an application with multiple function calls in a sandbox environment;
Recording parameters for each function call of the application;
One or more instructions that cause the at least one processor to store the recorded parameters in an emulation table for later use in a simulation environment to simulate the execution of at least one of the function calls. A program comprising:
前記記録されたパラメータは、ファンクションコール、入力パラメータ、及び出力パラメータを含む、請求項1に記載のプログラム。   The program according to claim 1, wherein the recorded parameters include a function call, an input parameter, and an output parameter. 前記少なくとも1つのプロセッサによって実行されることで、
全体的なロギングデータを評価し、それぞれのファンクションコールのための入力から出力へのパラメータマッピングの一般的な組み合わせを決定することを前記少なくとも1つのプロセッサに更に実行させる1又は複数の命令を更に備える、請求項1又は2に記載のプログラム。
Being executed by the at least one processor,
One or more instructions further causing the at least one processor to further evaluate the overall logging data and determine a general combination of input to output parameter mapping for each function call. The program according to claim 1 or 2.
前記少なくとも1つのプロセッサによって実行されることで、
前記ファンクションコールのうち少なくとも1つの出力に影響を与えない少なくとも1つのパラメータを除去することを前記少なくとも1つのプロセッサに更に実行させる1又は複数の命令を更に備える、請求項1から3の何れか一項に記載のプログラム。
Being executed by the at least one processor,
4. The method of claim 1, further comprising one or more instructions that cause the at least one processor to further remove at least one parameter that does not affect at least one output of the function call. The program described in the section.
前記エミュレーションテーブルにおけるデータは、エミュレーションモジュールによって実行時に解釈可能なファンクションコール毎のマッピングテーブルを含む、請求項1から4の何れか一項に記載のプログラム。   The program according to any one of claims 1 to 4, wherein the data in the emulation table includes a mapping table for each function call that can be interpreted by the emulation module at the time of execution. 前記エミュレーションテーブルは、複数のファンクションコールのための複数の記録されたパラメータを含む、請求項1から5の何れか一項に記載のプログラム。   The program according to any one of claims 1 to 5, wherein the emulation table includes a plurality of recorded parameters for a plurality of function calls. 前記少なくとも1つのプロセッサによって実行されることで、
前記エミュレーションテーブルを電子デバイスに伝達することを前記少なくとも1つのプロセッサに更に実行させる1又は複数の命令を更に備える、請求項1から6の何れか一項に記載のプログラム。
Being executed by the at least one processor,
The program according to any one of claims 1 to 6, further comprising one or more instructions that cause the at least one processor to further execute communicating the emulation table to an electronic device.
前記エミュレーションテーブルは、第1ファンクションコールを実行する必要なく、前記シミュレーション環境において前記第1ファンクションコールの実行をシミュレートするために用いられ、前記複数のファンクションコールは、前記第1ファンクションコールを含む、請求項1から7の何れか一項に記載のプログラム。   The emulation table is used to simulate the execution of the first function call in the simulation environment without the need to execute the first function call, and the plurality of function calls include the first function call. The program according to any one of claims 1 to 7. サンドボックス環境で複数のファンクションコールを含むアプリケーションを実行し、
前記アプリケーションのそれぞれのファンクションコールのためのパラメータを記録し、
後でシミュレーション環境で使用して前記ファンクションコールのうち少なくとも1つの実行をシミュレートするべく、エミュレーションテーブルに前記記録されたパラメータを格納する
ネットワークエミュレーションモジュール
を備える
装置。
Run an application containing multiple function calls in a sandbox environment
Record the parameters for each function call of the application,
A network emulation module that stores the recorded parameters in an emulation table for later use in a simulation environment to simulate the execution of at least one of the function calls.
前記記録されたパラメータは、ファンクションコール、入力パラメータ、及び出力パラメータを含む、請求項9に記載の装置。   The apparatus of claim 9, wherein the recorded parameters include function calls, input parameters, and output parameters. 前記ネットワークエミュレーションモジュールは更に、
全体的なロギングデータを評価し、それぞれのファンクションコールのための入力から出力へのパラメータマッピングの一般的な組み合わせを決定する、請求項9又は10に記載の装置。
The network emulation module further includes:
11. An apparatus according to claim 9 or 10, wherein the overall logging data is evaluated to determine a general combination of input to output parameter mapping for each function call.
前記ネットワークエミュレーションモジュールは更に、
それぞれのファンクションコールの出力に影響を与えないパラメータを除外する、請求項9から11の何れか一項に記載の装置。
The network emulation module further includes:
12. Apparatus according to any one of claims 9 to 11, wherein parameters that do not affect the output of each function call are excluded.
前記エミュレーションテーブルにおけるデータは、エミュレーションモジュールによって実行時に解釈可能なファンクションコール毎のマッピングテーブルを含む、請求項9から12の何れか一項に記載の装置。   The apparatus according to any one of claims 9 to 12, wherein the data in the emulation table includes a mapping table for each function call that can be interpreted by the emulation module at the time of execution. 前記エミュレーションテーブルは、複数のファンクションコールのための複数の記録されたパラメータを含む、請求項9から13の何れか一項に記載の装置。   14. The apparatus according to any one of claims 9 to 13, wherein the emulation table includes a plurality of recorded parameters for a plurality of function calls. 前記ネットワークエミュレーションモジュールは更に、
前記エミュレーションテーブルを電子デバイスに伝達する、請求項9から14の何れか一項に記載の装置。
The network emulation module further includes:
15. The apparatus according to any one of claims 9 to 14, wherein the emulation table is transmitted to an electronic device.
前記エミュレーションテーブルは、第1ファンクションコールを実行する必要なく、前記シミュレーション環境において前記第1ファンクションコールの実行をシミュレートするために用いられ、前記複数のファンクションコールは、前記第1ファンクションコールを含む、請求項9から15の何れか一項に記載の装置。   The emulation table is used to simulate the execution of the first function call in the simulation environment without the need to execute the first function call, and the plurality of function calls include the first function call. The device according to any one of claims 9 to 15. 電子デバイス上のアプリケーションを識別する段階と、
エミュレーションテーブルを用いて前記アプリケーションの実行をシミュレーションすることであって、前記エミュレーションテーブルは、前記アプリケーションのそれぞれのファンクションコールのためのパラメータを含む、シミュレーションする段階と
を備える
方法。
Identifying the application on the electronic device;
Simulating the execution of the application using an emulation table, the simulation table comprising parameters for each function call of the application.
前記パラメータは、入力パラメータ及び出力パラメータを含む、請求項17に記載の方法。   The method of claim 17, wherein the parameters include input parameters and output parameters. マルウェアの存在のための前記アプリケーションの前記実行の前記シミュレーションを分析する段階を更に備える、請求項17又は18に記載の方法。   19. A method according to claim 17 or 18, further comprising analyzing the simulation of the execution of the application for the presence of malware. 前記エミュレーションテーブルにおけるデータは、エミュレーションモジュールによって実行時に解釈可能なファンクションコール毎のマッピングテーブルを含む、請求項18又は19に記載の方法。   20. The method according to claim 18 or 19, wherein the data in the emulation table includes a mapping table for each function call that can be interpreted at execution time by the emulation module. 前記エミュレーションテーブルは、ネットワーク要素によって生成され、前記ネットワーク要素から前記電子デバイスへ通信された、請求項18から20の何れか一項に記載の方法。   21. A method according to any one of claims 18 to 20, wherein the emulation table is generated by a network element and communicated from the network element to the electronic device. 前記エミュレーションテーブルは、
サンドボックス環境で前記アプリケーションを実行することと、
前記アプリケーションのそれぞれのファンクションコールのための前記パラメータを記録することと、
前記エミュレーションテーブルに前記記録されたパラメータを格納することと
によって生成された、請求項18から21の何れか一項に記載の方法。
The emulation table is
Running the application in a sandbox environment;
Recording the parameters for each function call of the application;
22. A method according to any one of claims 18 to 21 generated by storing the recorded parameters in the emulation table.
前記エミュレーションテーブルの生成の間、ロギングデータが評価され、それぞれのファンクションコールのための入力から出力へのパラメータマッピングの一般的な組み合わせが決定された、請求項18から22の何れか一項に記載の方法。   23. A method according to any one of claims 18 to 22, wherein during the generation of the emulation table, logging data was evaluated to determine a general combination of input to output parameter mappings for each function call. the method of. アプリケーションのシミュレーションのためのシステムであって、前記システムは、
サンドボックス環境でアプリケーションを実行し、
前記アプリケーションのそれぞれのファンクションコールのためのパラメータを記録し、
後でシミュレーション環境で使用して、前記ファンクションコールを実行する必要なく前記ファンクションコールのうち少なくとも1つの実行をシミュレートするべく、エミュレーションテーブルに前記記録されたパラメータを格納する
ネットワークエミュレーションモジュールを備える、
システム。
A system for simulating an application, the system comprising:
Run your application in a sandbox environment
Record the parameters for each function call of the application,
Comprising a network emulation module for storing the recorded parameters in an emulation table for later use in a simulation environment to simulate the execution of at least one of the function calls without having to execute the function call.
system.
前記記録されたパラメータは、ファンクションコール、入力パラメータ、及び出力パラメータを含む、請求項24に記載のシステム。   The system of claim 24, wherein the recorded parameters include function calls, input parameters, and output parameters.
JP2017566803A 2015-06-27 2016-05-24 Application simulation Active JP6583838B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/752,911 2015-06-27
US14/752,911 US9846774B2 (en) 2015-06-27 2015-06-27 Simulation of an application
PCT/US2016/033853 WO2017003582A1 (en) 2015-06-27 2016-05-24 Simulation of an application

Publications (2)

Publication Number Publication Date
JP2018525714A true JP2018525714A (en) 2018-09-06
JP6583838B2 JP6583838B2 (en) 2019-10-02

Family

ID=57602477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017566803A Active JP6583838B2 (en) 2015-06-27 2016-05-24 Application simulation

Country Status (5)

Country Link
US (1) US9846774B2 (en)
EP (1) EP3314503B1 (en)
JP (1) JP6583838B2 (en)
CN (1) CN108093652B (en)
WO (1) WO2017003582A1 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452539B2 (en) * 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
RU2659742C1 (en) 2017-08-17 2018-07-03 Акционерное общество "Лаборатория Касперского" Method for emulating the execution of files comprising instructions, different from machine instructions
CN110908893A (en) * 2019-10-08 2020-03-24 深圳逻辑汇科技有限公司 Sandbox mechanism for federal learning
CN113722020A (en) * 2020-05-26 2021-11-30 腾讯科技(深圳)有限公司 Interface calling method, device and computer readable storage medium
US20210374229A1 (en) * 2020-05-28 2021-12-02 Mcafee, Llc Methods and apparatus to improve detection of malware in executable code
CN113759749A (en) * 2020-06-02 2021-12-07 青岛海信日立空调系统有限公司 Water chilling unit simulation system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883198A (en) * 1994-09-12 1996-03-26 Toshiba Corp Program simulation device
JPH08147196A (en) * 1994-11-17 1996-06-07 Nippon Telegr & Teleph Corp <Ntt> System call emulator
JP2004517390A (en) * 2000-10-24 2004-06-10 ヴィースィーアイエス インコーポレイテッド Analysis virtual machine
US20130097706A1 (en) * 2011-09-16 2013-04-18 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147195A (en) * 1994-11-16 1996-06-07 Oki Electric Ind Co Ltd Fault detecting/recording device
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US7814308B2 (en) * 2004-08-27 2010-10-12 Microsoft Corporation Debugging applications under different permissions
US8281401B2 (en) * 2005-01-25 2012-10-02 Whitehat Security, Inc. System for detecting vulnerabilities in web applications using client-side application interfaces
WO2008055156A2 (en) * 2006-10-30 2008-05-08 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting an anomalous sequence of function calls
CN101329638B (en) * 2007-06-18 2011-11-09 国际商业机器公司 Method and system for analyzing parallelism of program code
KR100951852B1 (en) 2008-06-17 2010-04-12 한국전자통신연구원 Apparatus and Method for Preventing Anomaly of Application Program
US8914879B2 (en) * 2010-06-11 2014-12-16 Trustwave Holdings, Inc. System and method for improving coverage for web code
CN102034050A (en) * 2011-01-25 2011-04-27 四川大学 Dynamic malicious software detection method based on virtual machine and sensitive Native application programming interface (API) calling perception
US8806639B2 (en) * 2011-09-30 2014-08-12 Avaya Inc. Contextual virtual machines for application quarantine and assessment method and system
CN103186740B (en) * 2011-12-27 2015-09-23 北京大学 A kind of automated detection method of Android malware
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9336025B2 (en) * 2013-07-12 2016-05-10 The Boeing Company Systems and methods of analyzing a software component
GB2518636B (en) * 2013-09-26 2016-03-09 F Secure Corp Distributed sample analysis
CN103685251B (en) * 2013-12-04 2016-08-17 电子科技大学 A kind of Android malware detection platform towards mobile Internet
CN104462973B (en) * 2014-12-18 2017-11-14 上海斐讯数据通信技术有限公司 The dynamic malicious act detecting system and method for application program in mobile terminal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883198A (en) * 1994-09-12 1996-03-26 Toshiba Corp Program simulation device
JPH08147196A (en) * 1994-11-17 1996-06-07 Nippon Telegr & Teleph Corp <Ntt> System call emulator
JP2004517390A (en) * 2000-10-24 2004-06-10 ヴィースィーアイエス インコーポレイテッド Analysis virtual machine
US20130097706A1 (en) * 2011-09-16 2013-04-18 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大月 勇人 外3名: "マルウェア観測のための仮想計算機モニタを用いたシステムコールトレース手法", 情報処理学会論文誌, vol. 55, no. 9, JPN6019030308, 15 September 2014 (2014-09-15), JP, pages 2034 - 2046, ISSN: 0004090967 *

Also Published As

Publication number Publication date
CN108093652A (en) 2018-05-29
WO2017003582A1 (en) 2017-01-05
US20160378977A1 (en) 2016-12-29
CN108093652B (en) 2021-08-24
JP6583838B2 (en) 2019-10-02
US9846774B2 (en) 2017-12-19
EP3314503B1 (en) 2023-12-13
EP3314503A4 (en) 2019-05-08
EP3314503A1 (en) 2018-05-02

Similar Documents

Publication Publication Date Title
JP6583838B2 (en) Application simulation
US11870793B2 (en) Determining a reputation for a process
US11328063B2 (en) Identification of malicious execution of a process
US10176344B2 (en) Data verification using enclave attestation
KR101884548B1 (en) System and method for the tracing and detection of malware
JP6583865B2 (en) Exploit detection based on profiling events
JP2018519604A (en) Malware detection
US9886577B2 (en) Detection and mitigation of malicious invocation of sensitive code
JP2018520437A (en) Malware detection using digital certificates
JP6668390B2 (en) Malware mitigation
JP2018519603A (en) Shellcode detection
JP6598221B2 (en) Anomaly detection to identify malware
JP2018524716A5 (en)
US11386205B2 (en) Detection of malicious polyglot files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

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: 20190806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190826

R150 Certificate of patent or registration of utility model

Ref document number: 6583838

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250