CN105229612B - 使用基于硬件的微体系结构数据的异常程序执行的检测 - Google Patents

使用基于硬件的微体系结构数据的异常程序执行的检测 Download PDF

Info

Publication number
CN105229612B
CN105229612B CN201380076692.1A CN201380076692A CN105229612B CN 105229612 B CN105229612 B CN 105229612B CN 201380076692 A CN201380076692 A CN 201380076692A CN 105229612 B CN105229612 B CN 105229612B
Authority
CN
China
Prior art keywords
data
microarchitecture
hardware
hardware based
processes
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.)
Active
Application number
CN201380076692.1A
Other languages
English (en)
Other versions
CN105229612A (zh
Inventor
拉克什米那拉斯姆罕·塞思麦迪海范
约翰·德姆
贾瑞德·施密茨
阿德里安·唐
萨尔·斯多夫
马修·梅考克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Columbia University in the City of New York
Original Assignee
Columbia University in the City of New York
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 Columbia University in the City of New York filed Critical Columbia University in the City of New York
Publication of CN105229612A publication Critical patent/CN105229612A/zh
Application granted granted Critical
Publication of CN105229612B publication Critical patent/CN105229612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了设备、系统、装置、方法、产品、介质和其它实现,包括一种方法,其包括:得到关于执行一个或多个进程的硬件设备的包括基于硬件的微体系结构计数器数据的基于硬件的微体系结构数据,以及至少部分地基于所述基于硬件的微体系结构数据来确定在硬件设备上执行的一个或多个进程中的至少一个进程是否相应于恶意进程。在一些实施方式中,基于所述基于硬件的微体系结构数据来确定一个或多个进程中的至少一个进程是否相应于恶意进程可包括将一个或多个机器学习过程应用于基于硬件的微体系结构数据以确定一个或多个进程中的至少一个进程是否相应于恶意进程。

Description

使用基于硬件的微体系结构数据的异常程序执行的检测
相关申请的交叉引用
本申请要求标题为“DETECTION OF ANOMALOUS PROGRAM EXECUTION USINGHARDWARE-BASED MICRO-ARCHITECTURAL DATA”的且于2013年11月5日提交的国际申请号PCT/US2013/068451的利益和优先权益,其要求标题为“SYSTEMS AND METHODS TO DETECTANOMALOUS PROGRAM EXECUTION USING PROCESSOR MICROARCHITECTURAL EVENTS”的且于2013年3月18日提交的美国临时专利申请序列号61/803,029的利益和优先权,这些专利申请的内容全都通过引用被全部并入本文。
关于联邦资助的研究的声明
在由高级防御研究计划机构(DARPA)授予的FA 8750-10-2-0253下以政府支持做出本发明。政府在本发明中有某些权利。
技术领域
本公开涉及使用基于硬件的微体系结构数据的异常程序执行的检测。
背景
在特定领域中的计算机的激增,通常随之而来的是在该领域中的恶意进程(例如恶意软件)的激增。例如,包括最近的Android设备的系统带有病毒、rootkit间谍软件、广告软件和其它类别的恶意进程。尽管有防病毒软件的存在,恶意软件威胁(以及来自其它类型的恶意进程的威胁)持续并增长。不幸的是,存在着破坏商业防病毒软件的很多方式,包括简单地禁用防病毒系统。此外,恶意软件可变异成新的变体,这使恶意软件的静态检测变得很难。
下面提供一些常见的恶意软件进程的例子:
恶意进程,例如恶意软件,最初被创建以得到恶名或开玩笑,但今天恶意软件部署主要是受经济收益刺激。在美国等,存在个人信息、信用卡、进入敏感机器内的登录的活跃地下市场的报告。此外,为了工业间谍目的和/或为了蓄意破坏,恶意进程,例如恶意软件,被发展来针对特定的计算机。
概述
本文公开的设备、系统、装置、方法、产品、介质和其它实现包括一种方法,其包括:得到关于执行一个或多个进程的硬件设备的基于硬件的微体系结构数据,包括基于硬件的微体系结构计数器数据,以及至少部分地基于所述基于硬件的微体系结构数据,来确定在硬件设备上执行的一个或多个进程中的至少一个进程是否相应于恶意进程。
方法的实施方式可包括在本公开中所述的至少一些特征,包括下列特征中的一个或多个。
得到基于硬件的微体系结构数据可包括在不同的时间实例得到基于硬件的微体系结构数据。
在不同的时间实例得到基于硬件的微体系结构数据可包括执行例如下列项中的一个或多个:由硬件设备发起以发送微体系结构数据的数据推送操作和/或由防病毒引擎发起以发送微体系结构数据的数据拉出操作。
得到基于硬件的微体系结构数据可包括:得到从一个或多个进程在具有多个处理器核心的处理器设备上的执行产生的多核基于硬件的微体系结构数据,以及使从多个处理器核心中的每个处理器核心得到的相应的基于硬件的微体系结构数据与一个或多个进程关联。
基于所述基于硬件的微体系结构数据来确定一个或多个进程中的至少一个进程是否相应于恶意进程,可包括将一个或多个机器学习过程应用于基于硬件的微体系结构数据,以确定一个或多个进程中的至少一个进程是否相应于恶意进程。
将一个或多个机器学习过程应用于基于硬件的微体系结构数据以确定一个或多个进程中的至少一个进程是否相应于恶意进程,可包括使所得到的基于硬件的微体系结构数据匹配到与一个或多个恶意进程相关的基于硬件的微体系结构数据的以前识别的模式。
该方法还可包括,得到对与一个或多个恶意进程相关的基于硬件的微体系结构数据的以前识别的模式的更新。
得到更新可包括,将与一个或多个恶意进程相关的基于硬件的微体系结构数据的以前识别的模式的加密数据下载到与提供基于硬件的微体系结构数据的硬件设备通信的防病毒引擎,在防病毒引擎处将与一个或多个恶意进程相关的基于硬件的微体系结构数据的以前识别的模式的下载的加密数据解密,以及更新由防病毒引擎维持的修订计数器,该修订计数器指示基于硬件的微体系结构数据的以前识别的模式的最近的更新的修订号。
一个或多个机器学习过程可包括,例如下列项中的一个或多个:k最近邻过程、决策树过程、随机森林过程、人工神经网络过程、张量密度过程和/或隐马克波夫模型过程。
恶意进程可包括,例如以下中的一个或多个:恶意软件进程和/或侧信道攻击进程。
基于硬件的微体系结构数据可包括,例如下列项中的一个或多个:处理器负荷密度数据、分支预测性能数据和/或关于指令高速缓存遗漏的数据。
在一些变形中,公开了包括执行一个或多个进程的硬件设备和与硬件设备通信的防病毒引擎的系统。防病毒引擎配置成:得到关于执行一个或多个进程的硬件设备的包括基于硬件的微体系结构计数器数据的基于硬件的微体系结构数据,以及至少部分地基于所述基于硬件的微体系结构数据来确定在硬件设备上执行的一个或多个进程中的至少一个进程是否相应于恶意进程。
系统的实施方式可包括在本公开中所述的特征中的至少一些特征,包括上面关于方法所述的特征中的至少一些特征以及下列特征中的一个或多个。
配置成得到基于硬件的微体系结构数据的防病毒引擎,可配置成在不同的时间实例得到基于硬件的微体系结构数据。
配置成在不同的时间实例得到基于硬件的微体系结构数据的防病毒引擎,可配置成响应于例如下列项中的一个或多个来接收微体系结构数据:由硬件设备发起的数据推送操作和/或由防病毒引擎发起的数据拉出操作。
配置成基于所述基于硬件的微体系结构数据来确定一个或多个进程中的至少一个进程是否相应于恶意进程的防病毒引擎,可配置成将一个或多个机器学习过程应用于基于硬件的微体系结构数据,以确定一个或多个进程中的至少一个进程是否相应于恶意进程。
配置成将一个或多个机器学习过程应用于基于硬件的微体系结构数据以确定一个或多个进程中的至少一个进程是否相应于恶意进程的防病毒引擎,可配置成使所得到的基于硬件的微体系结构数据匹配到与一个或多个恶意进程相关的基于硬件的微体系结构数据的以前识别的模式。
防病毒引擎还可配置成得到关于与一个或多个恶意进程相关的基于硬件的微体系结构数据的以前识别的模式的更新。
在一些变形中,提供存储有在至少一个可编程设备上可执行的一组指令的计算机可读介质。这组指令在被执行时引起包括以下项的操作:得到关于执行一个或多个进程的硬件设备的包括基于硬件的微体系结构计数器数据的基于硬件的微体系结构数据,以及至少部分地基于所述基于硬件的微体系结构数据,来确定在硬件设备上执行的一个或多个进程中的至少一个进程是否相应于恶意进程。
计算机可读介质的实施方式,可包括在本公开中所述的特征中的至少一些特征,包括上面关于方法和系统所述的特征中的至少一些特征。
在一些变形中,提供了一种装置。该装置包括,用于得到关于执行一个或多个进程的硬件设备的包括基于硬件的微体系结构计数器数据的基于硬件的微体系结构数据的模块,以及用于至少部分地基于所述基于硬件的微体系结构数据来确定在硬件设备上执行的一个或多个进程中的至少一个进程是否相应于恶意进程的模块。
装置的实施方式可包括在本公开中所述的特征中的至少一些特征,包括上面关于方法、系统和计算机可读介质所述的特征中的至少一些特征。
除非另有规定,在本文使用的所有技术术语和科学术语具有与通常理解的或照惯例理解的相同的含义。如在本文使用的,冠词“一(a)”和“一(an)”指冠词的语法对象的一个或多于一个(即至少一个)。作为例子,“元件(an element)”意指一个元件或多于一个元件。如本文使用的“大约(About)”和/或“大致(approximately)”在指可测量值(例如数量、持续时间等)时意指包括偏离规定值的±20%或±10%、±5%或+0.1%的变化,因为这样的变化在本文所述的系统、设备、电路、方法和其它实现中是适当的。如在本文使用的“实质上(Substantially)”在指可测量值(例如数量、持续时间、物理属性(例如频率)等)时也意指包括偏离规定值的±20%或±10%、±5%或+0.1%的变化,因为这样的变化在本文所述的系统、设备、电路、方法和其它实现中是适当的。
如在本文(包括在权利要求中)使用的,如在由“…的至少一个(at least oneof)”或“…的一个或多个(one or more of)”引述的项目的列表中使用的“或”或“和”指示可使用所列出的项目的任何组合。例如,“A、B或C中的至少一个(at least one of A,B,orC)”的列表包括组合A或B或C或AB或AC或BC和/或ABC(即A和B和C)中的任一个。此外,在项目A、B或C的多于一次出现或使用是可能的程度上,A、B和/或C的多次使用可形成所设想的组合。例如,“A、B或C中的至少一个(at least one of A,B,or C)”的列表也可包括AA、AAB、AAA、BB等。
如在本文(包括在权利要求中)使用的,除非另有规定,功能、操作或特征“基于(based on)”项目和/或条件的陈述,意指功能、操作、功能基于所陈述的项目和/或条件并可基于除了所陈述的项目和/或条件以外的一个或多个项目和/或条件。
在下面的附图中和描述中阐述了一个或多个实现的细节。根据描述、和附图,另外的特征、方面和优点将变得明显。
附图的简要说明
现在将参考下面的附图详细描述这些和其它方面。
图1包括的是几个不同的进程的硬件微体系结构活动的曲线图的示例图示。
图2是检测恶意进程的示例系统的示意图。
图3是检测恶意进程的示例过程的流程图。
图4是示例系统的示意图,其中实现了AV引擎。
图5是Android恶意软件系列和其使用例如图2-图4中的系统和过程测试的检测结果的表格。
图6是示出当应用于部分由Android恶意软件产生的微体系结构数据时各种二进制分类器的准确度的曲线图。
图7包括的是示出当应用于rootkit进程时分类器的准确度的曲线图。
图8A是示例安全更新有效载荷的示意图。
图8B是接收安全更新有效载荷和更新AV引擎的配置的示例过程的流程图。
在各个附图中的相似的参考符号指示相似的元素。
描述
本文描述了用于检测异常程序执行进程(例如恶意软件)的系统、设备、装置、计算机程序产品和其它实现。在一些实现中,基于硬件的微体系结构数据是从硬件设备(例如处理器/基于计算的设备)得到的包括基于硬件的微体系结构计数器数据(例如来自基于硬件的性能计数器),并使用机器学习过程(例如分类过程)来进行分析(例如,分析执行导致微体系结构数据的过程的时间行为),以根据在被监控的恶意设备上执行的一个或多个进程来识别恶意进程。
通常,在硬件实现的控制器设备(是通用处理器、专用控制器等)上执行的进程展示阶段行为。配置成实现特定的功能的进程(是恶意进程,或非恶意进程)可执行活动A一会儿,然后切换到活动B,然后到活动C。虽然这样的进程可以按活动的执行的确切顺序交替,一般该进程将需要执行活动A、B和C以实现其特定的功能。相应于特定进程的活动阶段一般相应于在体系结构事件和微体系结构事件中的模式。此外,不同的进程(例如配置成执行不同功能的不同程序)导致不同的基于硬件的微体系结构行为。例如,提供几个不同的进程的微体系结构活动曲线图的示例图示的图1,示出的是不同进程的微体系结构行为(在图1的例子中,进程来自SPEC基准测试)往往是不同的,导致不同的硬件微体系结构轨迹或模式。例如,如图1所示,为“bzip2”进程(如在曲线102和104中所示的)监控的L1排他命中和所执行的分支指令的行为不同于“mcf”进程(如在曲线112和114中所示的)的L1排他命中和所执行的分支指令的行为,其又不同于“sjeng”进程(如在曲线122和124中所示的)的L1排他命中和所执行的分支指令的行为。应注意的是,监控微体系结构行为可由特定的内置计数器促进,和/或可通过测量/监控在被监控的硬件设备的电路上的特定点处的事件的出现来实现。
相应地,可基于这样的时变微体系结构签名/轨迹来区分(且因而识别)在硬件设备(例如基于硬件的控制器设备)上执行的进程。通常,在特定进程的确切实现中的较小变化并不明显影响由进程引起的所产生的基于硬件的微体系结构轨迹,且因此识别进程和/或确定进程是否是恶性的(例如经由学习分类过程、分析微体系结构数据的启发式和非启发式过程等)仍然可被执行。这是因为无论恶意进程(例如恶意软件)作者如何改变基本实现(例如软件程序),进程的语义不明显改变。例如,如果一件恶意软件设计成收集并记录GPS数据,则无论它的作者如何重新布置代码,该进程都将必须收集并记录GPS数据。换句话说,以该进程为特征的活动阶段将通常保留,而不管进程的特定实现。此外,需要被实现的特定的任务将包括不能被明显修改的各种子任务。例如,GPS记录器将总是必须刷新GPS,等待信号,对数据解码,记录它,并在某个未来的点将数据渗漏回到试图得到数据的流氓用户(隐私贼)。作为被要求实现特定任务或进程的这些通常不变的操作的结果,恶意进程的执行的特定阶段对不同的实现变形保持相对不变。
因此,基于硬件的微体系结构数据(例如来自硬件性能计数器的数据),例如处理器负荷密度数据、分支预测性能数据、关于指令高速缓存遗漏的数据等的数据,可用于识别恶意软件和/或其它类型的恶意进程。实验结果(下面更具体地讨论)表明,本文所述的检测技术/过程往往对恶意软件程序(或其它类型的恶意进程)中的变化是鲁棒的。因此,在检查了处理平台(例如Android ARM和Intel Linux平台)上的一系列恶意软件内的一小组变化之后,在该系列内的很多变化可实质上被准确地检测出。此外,本文所述的各种实现使恶意进程检测器(例如本文所述的检测器)能够在系统软件下安全地运行,因而减小或同时避免被关掉的危险。
相应地,在一些实施方式中,公开了方法、系统、设备、产品和其它实现,包括一种方法,该方法包括:得到关于执行一个或多个进程的硬件设备的包括基于硬件的微体系结构计数器数据的基于硬件的微体系结构数据,以及至少部分地基于所述基于硬件的微体系结构数据来确定在基于处理器的系统上执行的一个或多个进程中的至少一个进程是否相应于恶意进程。被识别/检测的恶意进程可包括,例如恶意进程和/或侧信道攻击进程中的一个或多个。
参考图2,示出的是检测和/或解析恶意进程的示例系统200的示意图。系统200包括防病毒(AV)引擎210,其在一些实施方式中包括性能计数器采样单元(也被称为“采样器”)212、存储/维持相应于各种进程(包括恶意软件进程)的代表性微体系结构配置文件或签名(包括性能计数器配置文件或签名)和由采样单元212收集的微体系结构数据的性能计数器数据库214,以及配置成分析所收集的硬件微体系结构数据以确定在被观察/监控的硬件设备上运行的一个或多个进程是否包括至少一个恶意进程的分类器216(在一些实施方式中,分类器216也可配置成更具体地识别这样的恶意进程)。AV引擎210通常与一个或多个硬件设备(例如图2所示的处理器设备220和/或222)通信。
采样单元212配置成从一个或多个硬件设备得到基于硬件的微体系结构数据,包括,例如基于硬件的微体系结构性能计数器数据,该一个或多个硬件设备可包括的设备,例如控制器设备,例如处理器设备,例如设备220和222,或包括使用模块(例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)、DSP处理器等)实现的控制器设备的任何其它类型的控制器设备。通常,基于硬件的控制器设备包括硬件相关性能计数器,其可配置成对各种事件(例如循环、指令、高速缓存器遗漏等)计数。在一些实现中,这些性能计数器用于帮助软件性能优化。例如,Intel x86处理器设备实现四(4)个可配置的性能计数器,且具有双ARMCortex-A9核心的OMAP4460处理器包括六(6)个可配置的性能计数器。AV引擎210被实现以从已知的控制器设计得到硬件性能数据(例如性能计数器数据),且因此AV引擎210可配置成从由AV引擎监控的硬件独有的已知性能计数器得到微体系结构数据。也就是说,可能需要待监控的硬件的特定体系结构的知识,以便从相应于特定体系结构的性能计数器得到性能计数器数据和其它微体系结构数据。在Intel x86处理器体系结构上使用的微体系结构计数器的例子包括:
·0x0440--L1D_CACHE_LD.E_STATE;
·0x0324--L2_RQSTS.LOADS;
·0x03b1--UOPS_EXECUTED.PORT(1或2);以及
·0x7f88--BR_INST_EXEC.ANY。
在ARM Cortex-A9核心体系结构(通过其可得到微体系结构数据)上的公共计数器(特征事件号分配)的例子包括事件号:
·0x06-从体系结构的角度执行的存储器读取指令(显式地读取数据的每个指令的计数器增量);
·0x07-从体系结构的角度执行的存储器写入指令(显式地写入数据的每个指令的计数器增量);
·0x0C-从体系结构的角度执行的PC的软件变化,除了例外以外(计数器不递增使它的条件代码失效的条件指令);
·0x0D-从体系结构的角度执行的直接分支(计数器对从体系结构的角度执行的所有直接分支指令计数);
·0x0F-从体系结构的角度执行的非对齐访问(计数器对每个指令计数,其中指令是对未对齐地址的访问);以及
·0x12-计数器对分支或可由处理器的分支预测资源所预测的程序流中的其它变化计数。
例如在“Architecture Reference Manual,v7-A andv7-R edition,Errata markup”(其内容通过引用被全部并入本文)提供在ARM Cortex-A9核心体系结构上可实现或可得到的关于硬件性能计数器的额外信息。
在一些实施方式中,采样单元212可配置成从通过数据推送过程和/或通过数据拉出过程监控的硬件的计数器得到硬件微体系结构数据(包括微体系结构性能计数器数据)。例如当拉出数据时,AV引擎210发起数据收集,使硬件目标(例如在被监控的硬件中实现的特定硬件性能计数器)通过例如中断计数器的执行和/或没有中断地查询计数器来被访问。在一些实施方式中,AV引擎210可配置成,例如经由采样模块212每N个周期中断一次硬件(其中N可以是不变的预定数字或可以是变化的数字,例如基于随机或伪随机发生器),并对各种性能/事件计数器以及其它值(例如当前执行的进程的PID)采样。当使用基于中断的过程执行采样操作时,采样单元212可配置成发送控制信号或否则使执行硬件被中断,访问性能计数器和/或其它存储硬件,并取回存储在所中断的硬件的计数器上的值用于由AV引擎210进一步处理。在一些实施方式中,当硬件和/或计数器中断时,中断的硬件可首先将由它的各种性能计数器保存的数据存储在中央存储位置中(例如在状态堆栈中),且存储在中央存储位置处的数据可接着由采样单元212访问和取回。当实现数据推送采样模式时,由性能计数器(和/或在被监控的硬件上的其它采样点)保存的数据可以在有或没有中断被监控的硬件或它的性能计数器的执行的情况下以有规律或无规律的间隔被传递到AV引擎210(例如采样单元212)。因此在这样的实施方式中,待监控的硬件设备配置成开始将微体系结构数据发送到AV引擎210。例如,在数据推送模式中,被监控的硬件设备可配置成发送微体系结构数据而不需要接收请求(例如从采样单元212)。
由AV引擎210的采样单元212实现的采样操作,可因此得到为在被监控的硬件上执行的一个或多个进程监控的各种硬件性能计数器(和/或其它输出点)的输出的基于时间的数据。除了微体系结构数据以外,信息例如进程的ID(例如PID)也被记录以能够使微体系结构数据与进程(其执行导致所得到的微体系结构数据)相关/关联。通过也记录进程的ID和使它们与所得到的微体系结构数据相关/关联,本文所述的实现可跟踪从在不同的硬件设备当中的进程的执行产生的微体系结构数据。例如,在被监控的系统包括多个处理器核心(每个具有其自己的一组性能计数器)、进程/线程可被暂停并重新开始在不同核心上的执行的情况下,维持进程的PID连同所得到的微体系结构数据可能够跟踪进程的行为,因为它们将执行切换到不同的硬件设备。
在一些实施方式中,可至少部分地在被监控的硬件设备上实现采样单元212。例如,采样单元212可被实现为在专用的基于硬件的控制器(例如FPGA、ASIC等)上的硬件实现。在一些实施方式中,微体系结构数据库212可至少部分地被实现为在包括基于处理器的设备的机器上执行的软件实现,该基于处理器的设备由AV引擎210监控以检测在机器上执行的恶意进程。例如,处理器设备的多个通用核心之一可被分配以执行AV引擎的至少部分的软件实现。
如所提到的,AV引擎210还包括微体系结构数据库214,其配置成存储从被监控/观察的硬件得到的微体系结构数据以及从远程节点(例如服务器)得到的预定数据集,其包括表示已知恶意进程的微体系结构签名/轨迹(例如各种微体系结构事件或性能计数器的时间系列轨迹)的数据和包括非恶意/良性进程的微体系结构数据(例如基于时间的数据)的训练数据。如下面将更详细描述的,在一些实施方式中,AV引擎210被周期性地(以有规律或无规律的间隔)更新以包括新的或修改的微体系结构签名数据,该新的或修改的微体系结构签名数据通过从远程节点接收微体系结构签名数据来定义新的或现有的恶意进程的行为。
在一些实施方式中,可至少部分地在被监控的硬件设备上实现数据库214。在一些实施方式中,微体系结构数据库214可至少部分地被实现为在包括由AV引擎210监控的基于处理器的设备的机器上执行的软件实现(如,分配处理器设备的多个通用核心中的一个来执行数据库214的软件实现)。
使用例如采样单元212的微体系结构数据(包括微体系结构性能计数器数据)的收集和/或使用例如数据库214的所收集的数据的存储提供包括从恶意进程(例如恶意软件)和非恶意进程的执行而产生的微体系结构数据的相对大数量的已标记数据。因此,在一些实施方式中,分类器216(也被称为机器学习引擎)配置成确定关于微体系结构数据被收集的至少一个进程是否相应于恶意进程(例如所收集的一些微体系结构数据轨迹是否可能从至少一个恶意进程的执行产生)和/或识别至少一个恶意进程。
在一些实施方式中,分类器,例如AV引擎210的分类器216,可配置成迭代地分析训练输入数据和输入数据的相应输出(例如进程类型的确定和/或相应于输入数据的进程的识别),并导出使从被监控的硬件收集的随后的微体系结构输入的功能或模型,以产生与分类器的学习行为一致的输出。这样的分类器应配置成区别恶意进程与非恶意进程。
通常,机器学习分类器配置成,检查项并确定每个数据项属于N组(类别)中的哪一个。分类过程可产生数据项属于每个类别的概率(例如可能性)的向量。在恶意进程检测的情况中,可定义两个类别:恶意进程(例如,恶意软件)和非恶意进程(例如,非恶意软件)。作为结果,来自分类器的输出可包括表示数据项是恶意的可能性的概率。在特定的分类器不适合于处理/分类时间系列数据(如由AV请求210收集的时间系列微体系结构数据)的情况下,通过布置在不同的时间实例在被呈现为分类器的输入的特征的单个向量内出现的输入数据(例如,相应于在硬件的特定位置处,例如在特定的计数器处,出现的微体系结构事件)来克服这个困难。在这个方法下,基于时间的数据可合并到数据的向量内,其中每个向量点相应于某个计数器的微体系结构样本或在不同的时间实例出现的位置。此外和/或可选地,用于使用通常未被配置成操纵时间相关数据的序列的分类器来处理时间相关数据(微体系结构数据)的另一方法,是使用该分类器单独地处理在不同的时间实例的对特定的进程采取的数据点,并聚集分类器的结果以便将整个进程分类。在一些实施方式中,不同的聚集操作可应用于分类器的结果,且被确定(例如通过测试和实验)来产生最佳分类结果的聚集操作,可用于实施未来的聚集操作。例如,可使用的一个聚集操作是简单平均操作。可使用的另一聚集操作是加权平均操作,其中,例如,同样可能属于各种可用类别中的每个的数据点被给予零权数,而具有高概率的数据点被给予相对大的权数。
可用于处理/分析相应于执行进程的所收集的微体系结构数据点的分类器的类型,属于两个主要分类器类别:线性分类器和非线性分类器。线性分类器过程配置成试图通过超平面来分离n维数据点——在平面的一侧上的点是类别X的点,而在另一侧上的点是类别Y的点。非线性分类器通常不依赖于这种类型的线性分离。因此,可应用得到分类的任何操作。
在本文所述的一些实现中,非线性分类器用于执行数据处理/分析操作以反映下列事实:用于确定至少一个执行进程是否可能是恶意的或识别恶意进程的数据(例如微体系结构数据),可能不一定是线性可分离的。配置成确定特定的进程(针对该进程,微体系结构基于时间的数据被收集)是恶意还是非恶意的、可与AV引擎210的实现一起使用的分类器的一些例子包括:
·K最近邻(KNN)——通过将训练数据点连同它们的标签插入空间数据结构,如用于组织在k维空间中的点/数据的k维树(被称为“k-d树”),来训练KNN分类器。为了将数据点分类,使用空间数据结构找到该点的k个最近邻(在欧几里德空间)。数据点具有特定的类别的概率,是通过数据点的多少邻居具有该类别以及它们离彼此多远来确定。
·决策树——将数据点分类的另一方法,是使用被称为决策树的非空间树。通过将训练数据递归地分成在特定的维度上的组来构建这个树。维度和分裂点被选择成对每个组最小化熵。这些决策也可集成某个随机性,降低树的质量但帮助防止过度训练。在某个最小熵被满足或最大深度命中之后,分支终止,在其中存储在其组中的标签的混合,例如30%恶意软件与70%非恶意软件。为了将新数据点分类,决策树遍历树以找到新点的组(叶节点)并返回到所存储的混合。
·随机森林——增加分类器的准确度的一种方式,是使用很多不同的分类器并组合结果。在随机森林中,使用某个随机性构建多个决策树。当将新数据点分类时,在森林中的所有树的结果同样被加权以产生结果。
·人工神经网络(ANN)——神经网络机器试图通过包括以各种权数连接到彼此的神经元来模拟生物大脑。可改变在连接之间的权数值,因此使神经网络能够响应于其接收到的训练数据而进行修改(或学习),在前馈神经网中,输入值在一个边缘处被提供并通过无循环网络传播到输出节点。在一些实施方式中,定义了每个维度的一个输入神经元和两个输出节点(例如,一个指示恶意软件正在运行的概率,一个指示非恶意软件正在运行的概率)。
·张量密度——这个分类器将输入空间离散化成不同的存储桶。每个存储桶包含在训练数据集中的类别的混合。数据点通过找到其仓并返回所存储的混合而被分类。通常,张量密度分类器使用O(1)查找时间,且因此被考虑为时间有效的。
在一些实施方式中,可被使用的其它分类器也包括配置成产生例如分类功能或通常回归功能的支持向量机。在一些实施方式中,可使用回归技术以得到最佳拟合曲线、基于隐马克波夫模型的分类过程和/或其它类型的机器学习技术来实现分类器。在基于隐马克波夫模型的分类器被使用的实施方式中,可使用自相似性分析来识别在被处理的数据(例如,微体系结构数据)中的模式,且在模式中的过渡可用于构建隐马克波夫模型,恶意软件/良性软件可使用隐马克波夫模型被预测/分类。此外,也可使用线性分类技术,像能够准确地分类数据但以减小的计算需求的内核方法一样。
在一些实施方式中,为了训练分类器以基于从待监控的基于硬件的设备收集的微体系结构数据来识别可疑的恶意进程,远程系统(其硬件配置可以相同或类似于关于本文所述的进程被执行的硬件设备的硬件配置)可执行已知的恶意进程(例如由某个第三方发现的和/或跟踪的恶意软件)的变形。从特定的恶意软件的变形的执行产生的微体系结构数据(例如被表示在可类似于用于产生与图1所示的曲线类似的曲线的数据的形式中)被收集。周期性地,表示由远程系统捕获的微体系结构数据的数据,可被传递到AV引擎210并存储在数据库214上。远程系统也可提供相应于已知的非恶意进程的微体系结构数据。由远程系统传递的示例微体系结构数据,可用于通过提供微体系结构数据和进程的相应识别特征和/或类型(例如恶意或非恶意)来训练分类器216,所述进程使该微体系结构数据对一个或多个分类器216a-n中的至少一些而产生。训练数据将使分类器216a-n被配置(例如动态地被配置)成使得当向分类器呈递类似的微体系结构数据(从待监控的硬件设备收集)时,将产生与训练数据的进程类型/识别特征一致的输出。
如所提到的,AV引擎例如图2的AV引擎210可完全以硬件(例如被实现为在待监控的硬件设备上的模块)、完全以软件(例如作为在包括待监控的硬件的计算系统上执行的软件应用)或作为在硬件-软件组合实现而实现,其中,一个部件(例如图2的采样单元212)以硬件实现,而数据库和分类器单元214和216经由软件来实现。如果至少部分地由软件实现,则软件部件可配置成与硬件部件(例如使用接口连接过程)通信以接收数据(例如由采样单元得到的微体系结构数据)和/或将数据或控制信号传输到基于硬件的部件。
除了配置成收集和存储微体系结构数据并分析所收集的微体系结构数据以确定是否出现恶意行为(且可能更具体地识别恶意进程)以外,如果检测到威胁(例如关闭硬件或报告恶意行为),AV引擎210也配置成采取某些行动,并用恶意进程定义和微体系结构签名更新AV引擎。更具体地,存在可被AV引擎(例如AV引擎210)实现的各种安全策略。一些可行的安全政策包括:
·使用AV引擎作为第一阶段恶意软件预测器——当AV引擎怀疑程序是恶意的时,其可在程序上运行更复杂的行为分析。硬件分析“迅速地”发生并明显快于由恶意进程分析者使用来创建签名的行为分析。这样的预过滤可避免对“良性软件”的昂贵行为处理。
·迁移敏感计算——在多租户设置(例如公共云)中,当AV引擎怀疑在系统上的活动线程正被攻击(例如通过侧信道)时,AV引擎可移动敏感计算。在一些情形中,AV系统简单地杀死可疑进程可能是可接受的。
·使用关于辩论术的AV引擎——记录关于辩论术的数据是昂贵的,因为其常常涉及记录在可疑进程和环境之间的所有交互。为了迁移这些开销,只有当AV引擎怀疑进程是恶意的时才可记录关于辩论术所必需的信息。
·筛选良性软件——在一些实施方式中,所收集的基于硬件的微体系结构数据可用于识别非恶意进程,并证实那些进程事实上是非恶意的。例如在一些实现中,可通过例如比较代码样本与相应于所分析的进程的已知代码样本(以前得到的)来分析由AV引擎识别为非恶意的进程的基本代码样本。如果执行进程的所检查的基本代码匹配前面得到的已知代码列表,则执行进程被确认为非恶意的。
因此,存在可基于AV引擎的输出而采取的各种行动。实现AV引擎的本文所述的系统和过程,应足够灵活以实现上述安全策略。从概念上讲,这意味着在一些实施方式中,AV引擎应能够中断在任何给定核心上的计算并在该机器上运行策略有效载荷。这需要AV引擎能够发出不可掩蔽的处理器间中断。可选地,在一些实施方式中,AV引擎可向OS或监督软件传达其已检测到可疑进程,使得系统可开始迁移其它共驻内存的敏感计算。在一些实施方式中,AV引擎也可配置成在最高特权模式中运行。
此外,如所提到的,在一些实施方式中,AV引擎210可配置成,当它们变得可得到时或当新分类技术被实现时,使用新的恶意软件签名来更新。应以防止攻击者危害AV的方式来实现AV更新。例如,流氓用户应不能够减弱AV引擎的声音或破坏AV引擎以创建持续的高特权rootkit。
通常,安全更新可包括例如下列项中的一个或多个:分类器、规定安全策略的行动程序、确定哪些性能特征与什么分类器一起使用的配置文件、恶意和/或非恶意进程的微体系结构数据和/或更新修订号。该数据可使用适合于硬件设置的技术/过程安全地被传送到AV引擎。在图8A中描绘了,从系统安全卖方发送到防病毒引擎的示例安全更新有效载荷800的示意图,其中,包括应用于有效载荷的各种加密级。在图8B中描绘了,通常由AV引擎执行来接收安全更新有效载荷(例如加密的有效载荷800)并更新AV引擎的配置的示例过程850。如附图所示,过程850包括接收855有效载荷,以及使用嵌在硬件(其上实现AV引擎)中的“验证”密钥对有效载荷解密860。然后确定865“验证”而产生的散列是否匹配嵌在硬件中的验证密钥的预期散列。如果不匹配,则过程850终止870。如果存在“验证”密钥的散列的匹配,则确定875具有SHA-2散列函数的有效载荷的整体性。如果整体性被确认,则使用AES密钥对有效载荷进行解密885(否则过程终止880),且当确定在有效载荷中指示的更新修订号与在硬件设备中保持的修订号指示器一致(在890处)时,在有效载荷中的更新被应用895。
如关于过程850的操作890指示的,在一些实施方式中,AV引擎在其上的硬件设备至少部分地被实现,保持最后一次更新的修订号,以及修订号在每次更新时递增。这防止/禁止攻击者重新运行AV系统,攻击者可能做这件事来防止系统发现新的恶意进程。AV引擎可通过拒绝用比在硬件计数器中保持的修订号旧的修订号更新来提供该保护。
现在参考图3,示出了检测恶意进程的示例过程300的流程图。过程300包括,得到310关于执行一个或多个进程的硬件设备的基于硬件的微体系结构数据,包括基于硬件的微体系结构计数器数据。如所提到的,在一些实施方式中,得到微体系结构数据可由采样单元执行,采样单元可至少部分地以硬件来实现待监控的硬件设备的部分(即,执行关于收集微体系结构数据的一个或多个进程的硬件设备)。在一些实施方式中,微体系结构数据可周期性地以有规律或无规律的间隔(例如以由伪随机过程确定的长度的间隔)得到,并可通过数据拉出过程(例如在有或没有被观察的硬件设备的中断的情况下,通过发起微体系结构数据的收集的采样单元)或通过数据推送过程(例如发起微体系结构数据到AV引擎的周期性传递的硬件设备)而得到。
至少部分地基于所得到的基于硬件的微体系结构数据,确定320在硬件设备上执行的一个或多个进程中的至少一个进程是否相应于恶意进程。在一些实施方式中,可做出在硬件设备上执行的一个或多个进程中的至少一个进程的类型或识别特征的更特定的确定。如所提到的,确定至少一个进程是否是恶意的和/或在硬件设备上执行的一个或多个进程中的至少一个进程的类型或识别特征的确定可使用机器学习系统来执行,机器学习系统可包括使用包括关于已知恶意和非恶意进程的变形的微体系结构数据的训练数据而训练的一个或多个分类器(例如一个或多个分类器216a-n)。
因此,当恶意进程的变形在待监控的硬件设备上执行时,甚至在恶意进程的确切实现被修改的情况下,恶意进程将通常执行作为该进程(例如访问特定的模块、取回特定类型的数据等)的特征的操作。作为已知恶意进程的特征的这些操作,将导致微体系结构数据签名(其可被表示为时间系列),其然后可通过AV引擎的机器学习系统的一个或多个分类器中的至少一个分类器来进行识别(或至少被识别为恶意或非恶意的)。
参考图4,示出了示例系统400,其中实现AV引擎(例如图2的AV引擎210)。系统400包括硬件设备,例如控制器设备410,其可以是基于处理器的个人计算机、专用计算设备等,并在一些实现中其包括基于处理器的单元,例如中央处理器单元(CPU)412。在一些实施方式中,可至少部分地使用模块(例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)、DSP处理器等)来实现控制器设备410。
如所提到的,在一些实施方式中,AV引擎的至少一部分可直接在待监控的硬件设备上的硬件中实现,和/或可在专用和安全控制器设备上执行的软件中实现。例如,如在图4中描绘的,CPU 412可以是多核处理器,且AV引擎的硬件部分可因此在CPU 412的一个或多个核413上实现,并配置(例如通过制造前或后编程)成执行AV引擎的一个或多个功能(例如收集微体系结构数据)。如果待监控的硬件设备是专用控制器设备(例如被实现为专用集成电路),则AV的硬件部分可在控制器的制造的时间被实现为,例如,放置在片上网络、片上/片下FPGA或片下ASIC协同处理器上的专用恶意软件检测单元。这些选择表示在灵活性和区域性和能量效率方面的不同折衷。将安全保护移动到硬件水平解决了几个问题,并提供一些感兴趣的机会。例如,其确保安全系统不能被软件禁用,即使内核被危害。其次,因为安全系统在操作系统之下运行,安全系统可能能够保护不受内核利用和反对内核的其它攻击。第三,因为硬件本身被修改(以适应AV引擎的至少一些部分),任意静态和动态监控能力可被添加。这给予安全系统对于软件行为内延伸的察看能力。
如进一步在图4中所示的,除了CPU 412和/或实现控制器功能的其它专用硬件以外,系统400还包括主存储器、高速缓存存储器和总线接口电路(未在图4中示出)。例如,控制器设备410可包括大容量存储元件414,例如与系统相关的硬盘驱动器或闪存驱动器。计算系统400还可包括键盘、袖珍键盘或某种其它用户输入接口416和监视器420,例如CRT(阴极射线管)、LCD(液晶显示器)监视器等,其可放置在用户可接近它们的地方。
控制器设备410配置成,便于例如操作的实现以得到从在CPU 412上和/或在某个其它专用设备(在其上执行(或可执行)进程)上的一个或多个进程或程序的执行而产生的基于硬件的微体系结构数据,并基于所得到的微体系结构数据,来确定在系统400的控制器设备410上执行的一个或多个进程中的至少一个进程是否是潜在的恶意进程(例如恶意软件)。在一些实施方式中,可基于所收集的微体系结构数据来确定在控制器设备410的硬件上执行的一个或多个进程的识别特征。存储设备414可因此包括计算机程序产品,其当在例如控制器设备410的基于处理器的实现中被执行时使设备执行操作以便于所述过程的实现,所述过程包括得到微体系结构数据和基于该数据确定一个或多个执行进程中的至少一个是否可能是恶意进程的进程。
控制器设备410还可包括外围设备以实现输入/输出功能。这样的外围设备可包括,例如用于将相关内容下载到所连接的系统的CD-ROM驱动器和/或闪存驱动器(例如可移动闪存驱动器)或网络连接(例如使用USB端口和/或无线收发器来实现)。这样的外围设备也可用于下载包含计算机指令的软件以实现相应的系统/设备的一般操作。如所提到的,可选地和/或附加地,在一些实施方式中,可在系统400的实现中使用专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)、DSP处理器等。可与控制器设备410包括在一起的其它模块是扬声器、声卡、指示设备,例如鼠标或轨迹球,通过其,用户可向系统400提供输入。控制器设备410可包括操作系统,例如WindowsMicrosoft操作系统、Unix、Ubuntu操作系统等。
计算机程序(也被称为程序、软件、软件应用或代码)包括可编程处理器的机器指令,并可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如在本文使用的,术语“机器可读介质”指用于向可编程处理器提供机器指令和/或数据的任何非临时计算机程序产品、装置和/设备(例如磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的非临时机器可读介质。非临时计算机可读介质可包括介质,例如磁性介质(例如硬盘、软盘等)、光学介质(例如光盘、数字视频盘、蓝光盘等)、半导体介质(例如闪存、电可擦除只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)、在传输期间不消失或没有持久性的任何相似的任何适当的介质和/或任何适当的有形介质。
可在包括后端部件(例如作为数据中心)或包括中间件部件(例如应用服务器)或包括前端部件(例如具有图形用户界面或Web浏览器的客户端计算机,用户可通过图形用户界面或Web浏览器与本文所述的主题的实施方式交互)或这样的后端、中间件或前端部件的任何组合的计算系统中实现本文所述的一些或所有主题。系统的部件可由数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的例子包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可包括客户端和服务器。客户端和服务器通常远离彼此且一般通过通信网络进行交互。客户端和服务器的关系通常依靠在相应的计算机上运行并彼此具有客户端-服务器关系的计算机程序来产生。
为了评估本文所述的检测/识别不同类型的恶意进程的存在的系统和过程的效能,进行关于不同的硬件设备(例如不同的处理器体系结构)和关于不同的恶意进程(恶意软件、侧信道攻击进程等)的测试。
所执行的评估和测试包括确定检测Android恶意软件的本文所述的系统和过程的效能的测试。Android恶意软件的例子包括,创建广告并安装不需要的链接、使用户的设备混乱等的恶意软件。更先进的恶意软件可利用电话的特征,例如进行电话呼叫或将文本消息发送到特级服务,导致在用户的手机账单上产生费用。其它类型的Android恶意软件可能以各种方式危害用户的隐私,包括访问信息如电话号码、联系人信息、IMEI信息和其它敏感信息。而且,很多基于Android的移动设备具有GPS能力,且因此恶意软件可能能够物理地跟踪牺牲者。
本文所述的系统和过程应用于从对恶意软件分类或研究恶意软件的各种源得到的Android恶意软件。所获取的恶意软件数据集被分成变形的系列。在只有一个变形的系列中,不同的执行循环用于获取关于恶意软件范例的微体系结构数据。关于具有多于一个变形的系列,一些变形用于训练目的(例如通常大约1/3的变形用于训练),而其余变形用于测试(例如确定本文所述的系统和过程是否将检测那些变形)。图5是被测试的一些Android恶意软件系列的表格500。在表格500中的被识别为APK的列502指示相应的恶意软件系列可采用的变形的号。
为了训练用于处理微体系结构数据的分类器,收集关于所有恶意软件样本的微体系结构性能数据。在所执行的评估和测试中,收集基础设施在线程级操作。除了关于恶意软件的数据以外,也收集86个非恶意软件应用的数据,导致关于92,475个非恶意软件线程的数据。这些数据集用于训练和测试,通常数据集中的1/3用于训练,且数据集的其余部分用于测试。可用于处理微体系结构数据的各种分类器的性能可使用它们的相应的配置参数来被调节。例如,对于k-最近邻(KNN)分类器,k是可调节的配置参数。为了识别最佳参数集合,被选择的分类器(或在一些情况中,几个分类器)是正确地识别最多恶意软件的分类器。然而,所识别的恶意软件的数量随着假阳性率而变化。因为分类器配置成使其更敏感,更多的恶意软件被识别,但非恶意的合法进程然后也被识别为恶意软件。为了确定使用哪个分类器(或几个分类器),在一些实施方式中,可选择关于给定的假阳性百分比(关于训练数据)执行得最好的分类器。
图6包含示出在检测Android恶意软件时的各种二进制分类器的准确度的曲线图600。如在曲线图600中示出的,当假阳性率增加时,分类器找到更多的恶意软件(图5中的表格500的列504提供关于正确地识别各种恶意软件系列的所执行的进程的速率,分类器例如决策树分类器,在恶意软件系列上应用于10%或更好的假阳性率)。关于Android恶意软件测试得到的结果指示所测试的分类器正确地工作以及微体系结构数据(包括微体系结构性能计数器数据)可使用简单的分析来用于以相对好的准确度检测Android恶意软件。例如,“AnserverBot”恶意软件具有187个已知的变形(其如所提到的,是从研究并分类恶意进程(例如Android恶意软件)的第三方得到的)。在那些187个已知的变形当中,61个变形用于训练本文所述的系统和过程的分类器。在使用那些61个变形被训练之后,所测试的分类器能够识别其余126个变形的线程的96.6%。
也对已知的Linux rootkit执行确定本文所述的系统和过程的效能的评估和测试。Rootkit是攻击者安装在被危害的系统上以回避检测并最大化它们在系统上的访问的时期的恶意软件。一旦被安装,rootkit就一般通过修改操作系统的部分以隐蔽特定进程、网络端口、文件、目录和会话登录轨迹来隐藏它们在系统中的存在。使用它们的偷袭能力,它们可能由于在检测这样的感染时的困难而对系统安全造成严重的威胁。
在评估和测试检测Linux rootkit进程的系统和过程的效能时,两个公开可用的Linux rootkit被使用,其一旦被装入就给攻击者隐藏登录会话轨迹、网络端口、进程、文件和目录的能力。所使用的这两个rootkit是:
1.平均编码器Rootkit——这个rootkit作为经由钩住内核文件系统函数调用来隐藏轨迹的可装入的内核模块来工作。其经由Linux命令insmod被装入内核内。其允许攻击者修改系统信息以通过经由回响命令写到预先定义的文件/proc/buddyinfo来在运行时间隐藏。
2.Jynx2 Rootkit——这个rootkit函数作为共享库起作用并通过配置LDPRELOAD环境变量来被安装以参考这个rootkit。当这完成时,每当任何程序运行时,rootkit作为共享库被执行。其隐藏的信息在编译时间被预先配置且其一旦被装入就不能被修改。
Linux操作系统具有产生系统当前状态(例如当前进程列表和网络端口)的列表的本地实用程序。为了回避检测,rootkit设计成隐蔽这些程序的输出的部分。因此,这些程序的微体系结构性能计数器数据(在rootkit进程被执行的处理器设备上产生)可能将在rootkit感染之后显示某个程度的偏差。为了检查这样的偏差的存在,按进程性能计数器数据的集合聚焦于下面的进程:
对于所有程序的多个执行运行为各种任意选择的事件类型(例如分支误预测的数量、数据TLB遗漏的数量、L1指令高速缓存器读取的数量)收集微体系结构性能计数器数据。收集两组数据集——一个集合在rootkit被安装之前被收集(所收集的集合被称为“干净集合”),以及第二集合在系统被rootkit感染之后被收集(所收集的集合被称为“脏集合”)。为了引入对程序的执行流的变化,程序的每次运行使用它们相关的参数的随机组合而被执行。为了完成此,产生包括与有效参数的随机集合组合的程序名称的命令行的列表。每个命令行然后被随机地标记为干净的或脏的,以指示其将被使用于的数据的集合。下面提供命令行的示例子集列表:
(clean)netstat–n
(clean)netstat–nt
(dirty)netstat–ntu
(dirty)ls-l/usr/include
(clean)ls-ld/home
(dirty)ls-lar/home/user
(clean)ls-lart../
使用所产生的命令行的随机列表,收集每进程每次运行性能数据。此外,为了减小输入偏置并使所收集的数据变得更现实,各种用户登录到服务器并进行一系列任务的行动(像创建新文件和运行新进程一样)被模拟。因为所使用的rootkit具有不同的秘密能力并以不同的程序的输出为目标,脏数据为每个rootkit被单独地收集。每个rootkit的数据的收集是使用其被设计针对的下面的程序而执行:
当脏数据被收集时,被rootkit隐藏的信息也改变。这包括添加到被rootkit隐藏的网络端口的列表、文件、进程和登录会话日志和从被rootkit隐藏的网络端口的列表、文件、进程和登录会话日志移除。如同关于Android恶意软件执行的测试一样,关于rootkit收集的微体系结构数据被分成测试和训练集,1/3的数据用于训练大量分类器,且其余数据用于测试经训练的分类器。分类器被训练以确定被收集的微体系结构的进程/程序是否在有rootkit的情况下运行(即是否有rootkit污染)。图7包括示出用作在本文实现的AV引擎的部分的分类器的准确度(从作为假阳性率的函数的正确识别出恶意线程的数量方面看)的曲线图700。虽然通过本文关于rootkit检测所描述的系统和程序实现的准确度,通常低于当系统和过程应用于Android恶意软件时实现的准确度,应注意,因为rookit不作为单独的程序操作,而是配置成动态地解释程序的正常控制流,所使用的训练数据在相对小的程度上被rootkit影响。作为结果,rootkit的识别通常比其它类型的恶意进程的识别更难。
本文所述的系统和过程的评估和测试也关于侧信道攻击进行实施。侧信道指存在于系统的真实实现中的意外信息泄露。因为特定的实现不能依附到理论模型的理想化公理,侧信道可用于从理论上安全的系统偷窃信息。例如,对于大部分现有的实现,可通过观察分支预测器或高速缓存存储器的性能,来偷盗RSA加密密钥。通常的侧信道介质包括声信号或电信号、功率消耗、应用级定时信道、体系结构或微体系结构影响或通常任何共享资源。虽然侧信道攻击通常不被考虑为恶意软件,但是它们使基于硬件的设备的安全变得易受攻击,此外,具有可本文所述的系统和过程检测的特征微体系结构行为。
侧信道“攻击者”进程是被置于系统内以其共享资源并使用该资源来学习信息的这样方式的进程。微体系结构例子包括共享网卡、核心管线、存储器带宽和高速缓存存储器。在涉及在高速缓存存储器上的侧信道攻击的实施方式中,共享的片上高速缓存存储器可泄露可容易用于偷窃加密密钥和/或其它类型的私有数据的巨大数量的数据。直观地,利用微体系结构侧信道的攻击者程序,从性能方面来说,应具有清楚的签名。例如,侧信道攻击进程重复地击打特定的共享资源,以便估计关于该共享资源的牺牲者进程的所有活动。微体系结构事件和性能计数器因此可能在这样的攻击期间呈现极值,且因此指示攻击者程序/进程的出现(和可能识别那些攻击者程序/进程)。
为了测试本文所述的确定侧信道攻击的出现(和/或识别特定的侧信道攻击进程)的系统和过程的功效,实现一系列高速缓存存储器侧信道攻击。实现标准素数和探测技术的变形,其中攻击者程序/进程写到L1数据高速缓存存储器中的每行并接着重复地扫描高速缓存存储器(使用在编译时间选择的模式)以读取每行。每当遗漏出现时,意味着存在由共享高速缓存存储器的牺牲者进程误引起的冲突。成功的素数和探测攻击的因而产生的数据包括关于随着时间的过去由牺牲者进程使用的高速缓存存储器行的数据。素数和探测变形针对OpenSSL牺牲者进程被实现和执行。高速缓存存储器侧信道攻击进程与包括SPEC2006int、SPEC2006 fp、PARSEC的程序、web浏览器、游戏、图像编辑器和其它常见的桌上型应用以及一般系统级进程的各种正常进程比较。
如同为Android恶意软件和Linux rootkit执行的测试一样,所收集的1/3的微体系结构数据用于训练AV引擎的分类器(即KNN、决策树、张量、随机森林和FANN分类器)。在这种情况下,训练数据包括3872个正常程序线程和12个攻击线程。被训练的分类器被用于分析其余的三分之二的收集数据。当分析这个示例测试的7744个正常线程和24个攻击线程时,分类器实现完美的结果,检测到所有24个攻击线程而不产生任何假阳性。结果也指示在处理侧信道攻击微体系结构数据中,使用哪个特定的分类器并不重要。
虽然本文详细公开了特定的实施方式,这仅为了说明的目的作为例子来完成,且并非旨在限制关于所附权利要求的范围。一些其它方面、优点和修改被认为落入所提供的权利要求的范围内。所提出的权利要求表示本文公开的至少一些实施方式和特征。也设想其它未主张的实施方式和特征。

Claims (21)

1.一种用于异常程序执行的检测的方法,所述方法使用基于硬件的微体系结构数据使用一个或多个处理器内置的以及配置成对所述处理器的内部事件计数的性能计数器,所述方法包括:
得到关于执行一个或多个进程的硬件设备的基于硬件的微体系结构数据,包括基于硬件的时变微体系结构性能计数器数据,其中所述时变微体系结构性能计数器数据测量发生在所述硬件设备的一个或多个电路上的指令级的事件,以及,其中所述事件在执行所述进程的一个或多个处理器的内部,所述事件由所述处理器的所述性能计数器计数,以及所述性能计数器配置成对所述事件计数;
将一个或多个机器学习过程应用于所述基于硬件的微体系结构数据,来确定在所述硬件设备上执行的所述一个或多个进程中的至少一个进程是否相应于异常进程;以及
当确定所述一个或多个进程中的所述至少一个进程相应于异常进程时,过滤所述一个或多个进程中的所述至少一个进程以终止其执行。
2.如权利要求1所述的方法,其中,得到所述基于硬件的微体系结构数据包括:
在不同的时间实例得到所述基于硬件的微体系结构数据。
3.如权利要求2所述的方法,其中,在所述不同的时间实例得到所述基于硬件的微体系结构数据包括:
执行数据推送操作或数据拉出操作中的一个或多个,所述数据推送操作由所述硬件设备发起以发送所述基于硬件的微体系结构数据,所述数据拉出操作由防病毒引擎发起以发送所述基于硬件的微体系结构数据。
4.如权利要求1所述的方法,其中,得到所述基于硬件的微体系结构数据包括:
得到从所述一个或多个进程在具有多个处理器核心的处理器设备上的执行产生的多核基于硬件的微体系结构数据;以及
使从所述多个处理器核心中的每个得到的相应的基于硬件的微体系结构数据与所述一个或多个进程关联。
5.如权利要求1所述的方法,其中,将所述一个或多个机器学习过程应用于所述基于硬件的微体系结构数据以确定所述一个或多个进程中的所述至少一个进程是否相应于所述异常进程包括:
使所得到的基于硬件的微体系结构数据匹配到与一个或多个异常进程相关的基于硬件的微体系结构数据的一种或多种模式。
6.如权利要求5所述的方法,还包括:
得到关于与所述一个或多个异常进程相关的基于硬件的微体系结构数据的所述一种或多种模式的更新。
7.如权利要求6所述的方法,其中,得到所述更新包括:
将与所述一个或多个异常进程相关的基于硬件的微体系结构数据的以前识别的模式的加密数据下载到与提供所述基于硬件的微体系结构数据的所述硬件设备通信的防病毒引擎;
在所述防病毒引擎处将与所述一个或多个异常进程相关的基于硬件的微体系结构数据的所述以前识别的模式的所下载的加密数据解密;以及
更新所述防病毒引擎维持的修订计数器,所述修订计数器指示基于硬件的微体系结构数据的所述以前识别的模式的最近的更新的修订号。
8.如权利要求5所述的方法,其中,基于以前得到的基于硬件的微体系结构数据识别所述一种或多种模式。
9.如权利要求1所述的方法,其中,所述一个或多个机器学习过程包括以下项中的一个或多个:k最近邻过程、决策树过程、随机森林过程、人工神经网络过程、张量密度过程或隐马克波夫模型过程。
10.如权利要求1所述的方法,其中,所述一个或多个进程中相应于所述异常进程的所述至少一个进程包括非恶意进程或恶意进程中的一个或多个,所述恶意进程包括恶意软件进程或侧信道攻击进程中的一个或多个。
11.如权利要求1所述的方法,其中,所述基于硬件的微体系结构数据包括以下项中的一个或多个:处理器负荷密度数据、分支预测性能数据或关于指令高速缓存遗漏的数据。
12.一种用于异常程序执行的检测的系统,所述系统使用基于硬件的微体系结构数据使用一个或多个处理器内置的以及配置成对所述处理器的内部事件计数的性能计数器,所述系统包括:
硬件设备,所述硬件设备执行一个或多个进程;以及
防病毒引擎,所述防病毒引擎与所述硬件设备通信,所述防病毒引擎配置成:
得到关于执行所述一个或多个进程的所述硬件设备的基于硬件的微体系结构数据,包括基于硬件的时变微体系结构性能计数器数据,其中所述时变微体系结构性能计数器数据测量发生在所述硬件设备的一个或多个电路上的指令级的事件,以及,其中所述事件在执行所述进程的一个或多个处理器的内部,所述事件由所述处理器的所述性能计数器计数,以及所述性能计数器配置成对所述事件计数;以及
将一个或多个机器学习过程应用于所述基于硬件的微体系结构数据,来确定在所述硬件设备上执行的所述一个或多个进程中的至少一个进程是否相应于异常进程。
13.如权利要求12所述的系统,其中,配置成得到所述基于硬件的微体系结构数据的所述防病毒引擎配置成:
在不同的时间实例得到所述基于硬件的微体系结构数据。
14.如权利要求13所述的系统,其中,配置成在所述不同的时间实例得到所述基于硬件的微体系结构数据的所述防病毒引擎配置成:
响应于下列项中的一个或多个来接收所述基于硬件的微体系结构数据:由所述硬件设备发起的数据推送操作,或由所述防病毒引擎发起的数据拉出操作。
15.如权利要求12所述的系统,其中,配置成将所述一个或多个机器学习过程应用于所述基于硬件的微体系结构数据以确定所述一个或多个进程中的所述至少一个进程是否相应于所述异常进程的所述防病毒引擎配置成:
使所得到的基于硬件的微体系结构数据匹配到与一个或多个异常进程相关的基于硬件的微体系结构数据的一种或多种模式。
16.如权利要求15所述的系统,其中,所述防病毒引擎还配置成:
得到关于与所述一个或多个异常进程相关的基于硬件的微体系结构数据的所述一种或多种模式的更新。
17.如权利要求15所述的系统,其中,基于以前得到的基于硬件的微体系结构数据识别所述一种或多种模式。
18.一种用于异常程序执行的检测的方法,所述方法使用基于硬件的微体系结构数据使用一个或多个处理器内置的以及配置成对所述处理器的内部事件计数的性能计数器,所述方法包括:
得到关于执行一个或多个进程的硬件设备的基于硬件的微体系结构数据,所述基于硬件的微体系结构数据包括基于硬件的时变微体系结构性能计数器数据,其中所述时变微体系结构性能计数器数据测量发生在所述硬件设备的一个或多个电路上的指令级的事件,以及,其中所述事件在执行所述进程的一个或多个处理器的内部,所述事件由所述处理器的所述性能计数器计数,以及所述性能计数器配置成对所述事件计数;以及
将一个或多个机器学习过程应用于所述基于硬件的微体系结构数据,来确定在所述硬件设备上执行的所述一个或多个进程中的至少一个进程是否相应于异常进程。
19.如权利要求18所述的方法,其中,将所述一个或多个机器学习过程应用于所述基于硬件的微体系结构数据以确定所述一个或多个进程中的所述至少一个进程是否相应于所述异常进程包括:
使所得到的基于硬件的微体系结构数据匹配到与一个或多个异常进程相关的基于硬件的微体系结构数据的一种或多种模式。
20.如权利要求19所述的方法,其中,基于以前得到的基于硬件的微体系结构数据识别所述一种或多种模式。
21.一种用于异常程序执行的检测的装置,所述装置使用基于硬件的微体系结构数据使用一个或多个处理器内置的以及配置成对所述处理器的内部事件计数的性能计数器,所述装置包括:
用于得到关于执行一个或多个进程的硬件设备的基于硬件的微体系结构数据的模块,所述基于硬件的微体系结构数据包括基于硬件的时变微体系结构性能计数器数据,其中所述时变微体系结构性能计数器数据测量发生在所述硬件设备的一个或多个电路上的指令级的事件,其中所述事件在执行所述进程的一个或多个处理器的内部,所述事件由所述处理器的所述性能计数器计数,以及所述性能计数器配置成对所述事件计数;以及
用于将一个或多个机器学习过程应用于所述基于硬件的微体系结构数据来确定在所述硬件设备上执行的所述一个或多个进程中的至少一个进程是否相应于异常进程的模块。
CN201380076692.1A 2013-03-18 2013-11-05 使用基于硬件的微体系结构数据的异常程序执行的检测 Active CN105229612B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361803029P 2013-03-18 2013-03-18
US61/803,029 2013-03-18
PCT/US2013/068451 WO2014149080A1 (en) 2013-03-18 2013-11-05 Detection of anomalous program execution using hardware-based micro-architectural data

Publications (2)

Publication Number Publication Date
CN105229612A CN105229612A (zh) 2016-01-06
CN105229612B true CN105229612B (zh) 2018-06-26

Family

ID=51580568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076692.1A Active CN105229612B (zh) 2013-03-18 2013-11-05 使用基于硬件的微体系结构数据的异常程序执行的检测

Country Status (4)

Country Link
US (2) US10025929B2 (zh)
KR (1) KR102160659B1 (zh)
CN (1) CN105229612B (zh)
WO (1) WO2014149080A1 (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996694B2 (en) 2013-03-18 2018-06-12 The Trustees Of Columbia University In The City Of New York Unsupervised detection of anomalous processes using hardware features
US9213831B2 (en) * 2013-10-03 2015-12-15 Qualcomm Incorporated Malware detection and prevention by monitoring and modifying a hardware pipeline
US10185824B2 (en) * 2014-05-23 2019-01-22 The George Washington University System and method for uncovering covert timing channels
US10708296B2 (en) 2015-03-16 2020-07-07 Threattrack Security, Inc. Malware detection based on training using automatic feature pruning with anomaly detection of execution graphs
US9940187B2 (en) * 2015-04-17 2018-04-10 Microsoft Technology Licensing, Llc Nexus determination in a computing device
US20160359695A1 (en) * 2015-06-04 2016-12-08 Cisco Technology, Inc. Network behavior data collection and analytics for anomaly detection
US10187412B2 (en) 2015-08-28 2019-01-22 Cisco Technology, Inc. Robust representation of network traffic for detecting malware variations
US10437998B2 (en) * 2015-10-26 2019-10-08 Mcafee, Llc Hardware heuristic-driven binary translation-based execution analysis for return-oriented programming malware detection
CN106709336A (zh) 2015-11-18 2017-05-24 腾讯科技(深圳)有限公司 识别恶意软件的方法和装置
US10789358B2 (en) 2015-12-17 2020-09-29 Cryptography Research, Inc. Enhancements to improve side channel resistance
WO2017108575A1 (en) * 2015-12-24 2017-06-29 British Telecommunications Public Limited Company Malicious software identification
US10931689B2 (en) * 2015-12-24 2021-02-23 British Telecommunications Public Limited Company Malicious network traffic identification
KR102450834B1 (ko) * 2016-01-04 2022-10-05 한국전자통신연구원 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법
DE102016201262A1 (de) * 2016-01-28 2017-08-17 Robert Bosch Gmbh Verfahren und Vorrichtung zum Bereitstellen eines Computerprogramms
EP3220305B1 (en) * 2016-02-22 2018-10-31 Eshard Method of testing the resistance of a circuit to a side channel analysis of second order or more
US10560536B2 (en) * 2016-08-24 2020-02-11 International Business Machines Corporation Simplifying user interactions with decision tree dialog managers
US11677757B2 (en) 2017-03-28 2023-06-13 British Telecommunications Public Limited Company Initialization vector identification for encrypted malware traffic detection
JP6911544B2 (ja) * 2017-06-02 2021-07-28 富士通株式会社 プログラム、情報処理装置及び情報処理方法
RU2654146C1 (ru) * 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
CN107888411B (zh) * 2017-10-31 2021-05-25 努比亚技术有限公司 黑屏检测方法、移动终端及计算机可读存储介质
US10977546B2 (en) 2017-11-29 2021-04-13 International Business Machines Corporation Short depth circuits as quantum classifiers
US11709939B2 (en) * 2018-05-04 2023-07-25 New York University Anomaly detection in real-time multi-threaded processes on embedded systems and devices using hardware performance counters and/or stack traces
US11126721B2 (en) * 2018-06-28 2021-09-21 Intel Corporation Methods, systems and apparatus to detect polymorphic malware
US11227047B1 (en) 2018-06-29 2022-01-18 Fireeye Security Holdings Us Llc System and method for improved end-to-end cybersecurity machine learning and deployment
US10834121B2 (en) * 2018-07-24 2020-11-10 EMC IP Holding Company LLC Predictive real-time and scheduled anti-virus scanning
US10897480B2 (en) * 2018-07-27 2021-01-19 The Boeing Company Machine learning data filtering in a cross-domain environment
EP3623980B1 (en) 2018-09-12 2021-04-28 British Telecommunications public limited company Ransomware encryption algorithm determination
EP3623982B1 (en) 2018-09-12 2021-05-19 British Telecommunications public limited company Ransomware remediation
WO2020053292A1 (en) 2018-09-12 2020-03-19 British Telecommunications Public Limited Company Encryption key seed determination
US11216556B2 (en) * 2018-12-17 2022-01-04 Intel Corporation Side channel attack prevention by maintaining architectural state consistency
US11023582B2 (en) * 2018-12-19 2021-06-01 EMC IP Holding Company LLC Identification and control of malicious users on a data storage system
RU2739865C2 (ru) * 2018-12-28 2020-12-29 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного файла
US11277424B2 (en) * 2019-03-08 2022-03-15 Cisco Technology, Inc. Anomaly detection for a networking device based on monitoring related sets of counters
US20200372183A1 (en) * 2019-05-21 2020-11-26 Hewlett Packard Enterprise Development Lp Digitally Signing Software Packages With Hash Values
US10860324B1 (en) * 2019-06-05 2020-12-08 Arm Limited Apparatus and method for making predictions for branch instructions
CN110414567B (zh) * 2019-07-01 2020-08-04 阿里巴巴集团控股有限公司 数据处理方法、装置和电子设备
US10986023B2 (en) * 2019-07-19 2021-04-20 Cisco Technology, Inc. Using machine learning to detect slow drain conditions in a storage area network
US10630715B1 (en) * 2019-07-25 2020-04-21 Confluera, Inc. Methods and system for characterizing infrastructure security-related events
EP3772007A1 (en) 2019-07-30 2021-02-03 Continental Teves AG & Co. OHG Physical execution monitor
WO2021154254A1 (en) * 2020-01-30 2021-08-05 Hewlett-Packard Development Company, L.P. Monitoring side channels
US10887337B1 (en) 2020-06-17 2021-01-05 Confluera, Inc. Detecting and trail-continuation for attacks through remote desktop protocol lateral movement
US11615782B2 (en) * 2020-11-12 2023-03-28 Sony Interactive Entertainment Inc. Semi-sorted batching with variable length input for efficient training
US11934840B2 (en) * 2020-12-17 2024-03-19 Hewlett Packard Enterprise Development Lp Classification of hardware components
US11790087B2 (en) * 2020-12-23 2023-10-17 Intel Corporation Method and apparatus to identify hardware performance counter events for detecting and classifying malware or workload using artificial intelligence
US11645252B2 (en) 2021-07-23 2023-05-09 Bank Of America Corporation System and method for efficiently validating time-series data using a hash-based representation of the data
US11640389B2 (en) 2021-07-23 2023-05-02 Bank Of America Corporation Hash-based identification of data corruption issues in time-series data
US11397808B1 (en) 2021-09-02 2022-07-26 Confluera, Inc. Attack detection based on graph edge context
US20230092190A1 (en) * 2021-09-22 2023-03-23 The Regents Of The University Of California Two-layer side-channel attacks detection method and devices
US11947450B1 (en) 2022-09-16 2024-04-02 Bank Of America Corporation Detecting and mitigating application security threats based on quantitative analysis

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112317A (en) * 1997-03-10 2000-08-29 Digital Equipment Corporation Processor performance counter for sampling the execution frequency of individual instructions
US20110238855A1 (en) * 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US20060265746A1 (en) * 2001-04-27 2006-11-23 Internet Security Systems, Inc. Method and system for managing computer security information
US20030070087A1 (en) 2001-10-05 2003-04-10 Dmitry Gryaznov System and method for automatic updating of multiple anti-virus programs
US20050278178A1 (en) * 2004-06-10 2005-12-15 International Business Machines Corporation System and method for intrusion decision-making in autonomic computing environments
US7590880B1 (en) * 2004-09-13 2009-09-15 National Semiconductor Corporation Circuitry and method for detecting and protecting against over-clocking attacks
US20060277395A1 (en) * 2005-06-06 2006-12-07 Fowles Richard G Processor performance monitoring
EP1952240A2 (en) 2005-10-25 2008-08-06 The Trustees of Columbia University in the City of New York Methods, media and systems for detecting anomalous program executions
IL181041A0 (en) * 2007-01-29 2007-07-04 Deutsche Telekom Ag Improved method and system for detecting malicious behavioral patterns in a computer, using machine learning
US8490194B2 (en) 2006-01-31 2013-07-16 Robert Moskovitch Method and system for detecting malicious behavioral patterns in a computer, using machine learning
US7512570B2 (en) 2006-05-30 2009-03-31 Zaracom Technologies Inc. Artificial intelligence analyzer and generator
US8229726B1 (en) 2006-10-05 2012-07-24 Oracle America, Inc. System for application level analysis of hardware simulations
US8250645B2 (en) * 2008-06-25 2012-08-21 Alcatel Lucent Malware detection methods and systems for multiple users sharing common access switch
US7861305B2 (en) * 2007-02-07 2010-12-28 International Business Machines Corporation Method and system for hardware based program flow monitor for embedded software
IL191744A0 (en) 2008-05-27 2009-02-11 Yuval Elovici Unknown malcode detection using classifiers with optimal training sets
EP2141626A1 (en) 2008-07-04 2010-01-06 Koninklijke KPN N.V. Malware detection uses time-based CPU utilization metric
US7657941B1 (en) 2008-12-26 2010-02-02 Kaspersky Lab, Zao Hardware-based anti-virus system
US20110041179A1 (en) 2009-08-11 2011-02-17 F-Secure Oyj Malware detection
US8661536B2 (en) 2010-03-17 2014-02-25 Microsoft Corporation Side channel attack analysis
US8707427B2 (en) 2010-04-06 2014-04-22 Triumfant, Inc. Automated malware detection and remediation
US8819225B2 (en) 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US9369433B1 (en) * 2011-03-18 2016-06-14 Zscaler, Inc. Cloud based social networking policy and compliance systems and methods
US8539269B2 (en) * 2011-03-31 2013-09-17 Intel Corporation Apparatus and method for high current protection
US8997233B2 (en) * 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc Detecting script-based malware using emulation and heuristics
US9330256B2 (en) * 2013-02-01 2016-05-03 Qualcomm Incorporated Location based process-monitoring
US9996694B2 (en) 2013-03-18 2018-06-12 The Trustees Of Columbia University In The City Of New York Unsupervised detection of anomalous processes using hardware features
US20150205691A1 (en) * 2014-01-23 2015-07-23 Concurix Corporation Event prediction using historical time series observations of a computer application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法

Also Published As

Publication number Publication date
US20160275288A1 (en) 2016-09-22
KR102160659B1 (ko) 2020-09-28
WO2014149080A1 (en) 2014-09-25
US10025929B2 (en) 2018-07-17
KR20150138229A (ko) 2015-12-09
US20180300484A1 (en) 2018-10-18
CN105229612A (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN105229612B (zh) 使用基于硬件的微体系结构数据的异常程序执行的检测
CN105247532B (zh) 使用硬件特征的对异常进程的无监督的检测
Tahir et al. Mining on someone else’s dime: Mitigating covert mining operations in clouds and enterprises
US10915659B2 (en) Privacy detection of a mobile application program
CN105593870B (zh) 用于恶意软件检测的复杂评分
Alazab et al. Analysis of malicious and benign android applications
Ho et al. PREC: practical root exploit containment for android devices
Chandramohan et al. A scalable approach for malware detection through bounded feature space behavior modeling
US11882134B2 (en) Stateful rule generation for behavior based threat detection
CN104115117B (zh) 对计算机程序施行安全性分析的方法、系统和存储介质
US11888870B2 (en) Multitenant sharing anomaly cyberattack campaign detection
Guerra-Manzanares et al. Leveraging the first line of defense: A study on the evolution and usage of android security permissions for enhanced android malware detection
Surendran et al. Detection of malware applications from centrality measures of syscall graph
Thummapudi et al. Detection of ransomware attacks using processor and disk usage data
Sharma et al. Survey for detection and analysis of android malware (s) through artificial intelligence techniques
Yang et al. Towards a Resilient Machine Learning Classifier--a Case Study of Ransomware Detection
Prabhavathy et al. Permission and API Calls Based Hybrid Machine Learning Approach for Detecting Malicious Software in Android System.
AlMasri et al. Detecting Spyware in Android Devices Using Random Forest
Jawhar A Survey on Malware Attacks Analysis and Detected
Aneja et al. Malware Mobile Application Detection Using Blockchain and Machine Learning
Faghihi Mobile Malware Detection and Mitigation
Bărbieru et al. Malware Analysis on Mobile Phone
Ali et al. Efficient, scalable and privacy preserving application attestation in a multi stakeholder scenario
Aljehani et al. Detecting A Crypto-mining Malware By Deep Learning Analysis
AlMasri et al. Check for updates Detecting Spyware in Android Devices Using Random Forest

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant