CN105247532A - 使用硬件特征的无监督的基于异常的恶意软件检测 - Google Patents
使用硬件特征的无监督的基于异常的恶意软件检测 Download PDFInfo
- Publication number
- CN105247532A CN105247532A CN201480028753.1A CN201480028753A CN105247532A CN 105247532 A CN105247532 A CN 105247532A CN 201480028753 A CN201480028753 A CN 201480028753A CN 105247532 A CN105247532 A CN 105247532A
- Authority
- CN
- China
- Prior art keywords
- performance data
- hardware performance
- data
- hardware
- recorded
- 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
Links
- 238000001514 detection method Methods 0.000 title description 42
- 238000000034 method Methods 0.000 claims abstract description 378
- 230000008569 process Effects 0.000 claims abstract description 320
- 230000002155 anti-virotic effect Effects 0.000 claims description 91
- 238000010801 machine learning Methods 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 13
- 230000001131 transforming effect Effects 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 11
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 238000003066 decision tree Methods 0.000 claims description 7
- HUTDUHSNJYTCAR-UHFFFAOYSA-N ancymidol Chemical compound C1=CC(OC)=CC=C1C(O)(C=1C=NC=NC=1)C1CC1 HUTDUHSNJYTCAR-UHFFFAOYSA-N 0.000 claims description 6
- 238000007637 random forest analysis Methods 0.000 claims description 5
- 238000012706 support-vector machine Methods 0.000 claims description 5
- 238000005070 sampling Methods 0.000 description 58
- 230000006399 behavior Effects 0.000 description 48
- 230000006870 function Effects 0.000 description 36
- 238000005259 measurement Methods 0.000 description 27
- 238000012360 testing method Methods 0.000 description 18
- 239000013598 vector Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 11
- 230000002123 temporal effect Effects 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 10
- 238000009826 distribution Methods 0.000 description 8
- 238000002474 experimental method Methods 0.000 description 8
- 206010038933 Retinopathy of prematurity Diseases 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000002156 mixing Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 208000015181 infectious disease Diseases 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 206010000117 Abnormal behaviour Diseases 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000001151 other effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000408659 Darpa Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 238000010206 sensitivity analysis Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
Abstract
公开了设备、系统、装置、方法、产品、介质和其它实现,包括一种方法,其包括:得到关于执行与表示第一进程的正常行为的预先记录的硬件性能数据相关的第一进程的硬件设备的包括硬件性能计数器数据的当前硬件性能数据,以及基于相应于第一进程的所得到的当前硬件性能数据与表示第一进程的正常行为的预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响第一进程的性能。
Description
相关申请的交叉引用
本申请要求标题为“UNSUPERVISEDANOMALY-BASEDMALWAREDETECTIONUSINGHARDWAREFEATURES”的且于2013年12月20日提交的美国临时专利申请号61/919,560、标题为“DETECTIONOFANOMALOUSPROGRAMEXECUTIONUSINGHARDWARE-BASEDMICRO-ARCHITECTURALDATA”的且于2013年11月5日提交的国际专利申请号PCT/US2013/068451以及标题为“SYSTEMSANDMETHODSTODETECTANOMALOUSPROGRAMEXECUTIONUSINGPROCESSORMICROARCHITECTURALEVENTS”的且于2013年3月18日提交的美国临时专利申请序列号61/803,029的利益和优先权,这些专利申请通过引用被全部并入本文。
关于联邦资助的研究的声明
在由高级防御研究计划机构(DARPA)授予的FA8750-10-2-0253下以政府支持做出本发明。政府在本发明中有某些权利。
背景
恶意进程,例如恶意软件感染,多年来折磨组织和用户,并更隐秘地增长并逐日在数量上增加。这些恶意进程最初被创建而得到恶名或开玩笑,但今天恶意软件部署主要受经济收益刺激。在美国等存在个人信息、信用卡、进入敏感机器内的登录的活跃地下市场的报告。此外,出于间谍目的(工业间谍或另外的情况)和/或为了蓄意破坏,恶意进程,例如恶意软件进程,被发展用于针对特定的计算机。
尽管有防病毒软件的存在,但是恶意软件威胁(以及来自其它类型的恶意进程的威胁)持续并增长。不幸的是,存在破坏商业防病毒软件的很多方式,包括简单地禁用防病毒系统。此外,恶意软件可变异成新的变体,这使恶意软件的静态检测变得很难。
概述
本文公开的设备、系统、装置、方法、产品、介质和其它实现包括一种方法,其包括:得到关于执行与表示第一进程的正常行为的预先记录的硬件性能数据相关的第一进程的硬件设备的当前硬件性能数据,包括硬件性能计数器数据,以及基于相应于第一进程的所得到的当前硬件性能数据与表示第一进程的正常行为的预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响第一进程的性能。
该方法的实施方式可包括在本公开中所述的至少一些特征,包括下列特征中的一个或多个。
得到硬件性能数据可包括在不同的时间实例得到硬件性能数据。在不同的时间实例得到硬件性能数据,可包括执行例如下列项中的一个或多个:由硬件设备发起以发送当前硬件性能数据的数据推送操作和/或由防病毒引擎发起以使当前硬件性能数据由硬件设备发送的数据拉出操作。
得到当前硬件性能数据可包括:基于相应的计算的一个或多个分数从多个硬件性能特征选择一个或多个特征,所述一个或多个分数表示一个或多个特征中的相应特征的硬件性能数据的相应子集可指示关于选定的一个或多个特征得到的硬件性能数据被恶意进程影响的有效性程度;以及只为选定的一个或多个特征从当前硬件性能数据得到性能数据。
计算一个或多个分数可包括计算一个或多个Fisher分数。
确定恶意进程是否影响第一进程的性能可包括将使用表示第一进程的正常行为的预先记录的硬件性能数据训练的一个或多个机器学习过程应用于当前硬件性能数据,以确定关于执行第一进程的硬件设备的当前硬件性能数据是否偏离第一进程的预先记录的硬件性能数据。
一个或多个机器学习过程可包括例如下列项中的一个或多个:实现非线性径向基函数(RBF)内核的支持向量机、k最近邻过程、决策树过程、随机森林过程、人工神经网络过程、张量密度过程和/或隐马克波夫模型过程。
该方法还可包括,将变换函数应用于至少当前硬件性能数据以产生变换的数据。确定恶意进程是否影响第一进程的性能可包括基于使用所产生的变换的数据计算的、当前硬件性能数据与预先记录的硬件性能数据的偏差的程度,来确定恶意进程是否影响第一进程的性能。
将变换函数应用于至少当前硬件性能数据以产生变换的数据可包括根据下式从关于事件i的硬件性能数据值rawi导出关于事件i的标准化硬件性能值normalizedi:
其中mini和maxi是关于事件i的相应的最小值和最大值,且λi是关于事件i的幂参数。
硬件性能数据可包括例如下列项中的一个或多个:处理器负荷密度数据、分支预测性能数据和/或关于指令高速缓存遗漏的数据。
该方法还可包括得到对表示第一进程的正常行为的至少预先记录的硬件性能数据的更新。得到更新可包括将用于所述更新的加密数据下载到与提供当前硬件性能数据的硬件设备通信的防病毒引擎,在防病毒引擎处将下载的用于所述更新的加密数据解密,以及更新指示最近的更新的修订号的由防病毒引擎维持的修订计数器。
在一些变形中,公开了包括执行第一进程的硬件设备和与硬件设备通信的防病毒引擎的系统。防病毒引擎配置成:得到关于执行第一进程的硬件设备的当前硬件性能数据,包括硬件性能计数器数据,第一进程与表示第一进程的正常行为的预先记录的硬件性能数据相关,以及基于相应于第一进程的所得到的当前硬件性能数据与表示第一进程的正常行为的预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响第一进程的性能。
系统的实施方式可包括在本公开中所述的至少一些特征,包括上面关于方法所述的至少一些特征以及下列特征中的一个或多个。
配置成得到当前硬件性能数据的防病毒引擎可配置成:基于相应的所计算的一个或多个分数,从多个硬件性能特征选择一个或多个特征,所述一个或多个分数表示一个或多个特征中的相应一个特征的硬件性能数据的相应子集可指示关于选定的一个或多个特征得到的硬件性能数据被恶意进程影响的有效性程度,以及只为选定的一个或多个特征从当前硬件性能数据得到性能数据。
配置成确定恶意进程是否影响第一进程的性能的防病毒引擎可配置成,将使用表示第一进程的正常行为的预先记录的硬件性能数据训练的一个或多个机器学习过程应用于当前硬件性能数据,以确定硬件设备的当前硬件性能数据是否与第一进程的预先记录的硬件性能数据偏离。
防病毒引擎还可配置成,将变换函数应用于至少当前硬件性能数据以产生变换的数据。配置成确定恶意进程是否影响第一进程的性能的防病毒引擎可配置成,基于使用所产生的变换的数据计算的、当前硬件性能数据与预先记录的硬件性能数据的偏差的程度,来确定恶意进程是否影响第一进程的性能。
在一些变形中,提供存储在至少一个可编程设备上可执行的一组指令的计算机可读介质。该组指令在被执行时,引起包括下列项的操作:得到关于执行与表示第一进程的正常行为的预先记录的硬件性能数据相关的第一进程的硬件设备的当前硬件性能数据,包括硬件性能计数器数据,以及基于相应于第一进程的所得到的当前硬件性能数据与表示第一进程的正常行为的预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响第一进程的性能。
计算机可读介质的实施方式可包括在本公开中所述的至少一些特征,包括上面关于方法和系统所述的至少一些特征。
在一些变形中,提供了一种装置。该装置包括用于得到关于执行与表示第一进程的正常行为的预先记录的硬件性能数据相关的第一进程的硬件设备的包括硬件性能计数器数据的当前硬件性能数据的模块,以及基于相应于第一进程的所得到的当前硬件性能数据与表示第一进程的正常行为的预先记录的硬件性能数据的偏差的程度的确定来确定恶意进程是否影响第一进程的性能的模块。
装置的实施方式可包括在本公开中所述的至少一些特征,包括上面关于方法、系统和计算机可读介质所述的至少一些特征。
除非另有规定,在本文使用的所有技术术语和科学术语具有通常理解的或照惯例理解的相同的含义。如在本文使用的,冠词“一(a)”和“一(an)”指冠词的语法对象的一个或多于一个(即至少一个)。作为例子,“元件(anelement)”意指一个元件或多于一个元件。如本文使用的“大约(About)”和/或“大致(approximately)”在指可测量值(例如数量、持续时间等)时意指包括偏离规定值的±20%或±10%、±5%或+0.1%的变化,因为这样的变化在本文所述的系统、设备、电路、方法和其它实现中是适当的。如在本文使用的“实质上(Substantially)”在指可测量值(例如数量、持续时间、物理属性(例如频率)等)时也意指包括偏离规定值的±20%或±10%、±5%或+0.1%的变化,因为这样的变化在本文所述的系统、设备、电路、方法和其它实现中是适当的。
如在本文(包括在权利要求)中使用的,如在由“…的至少一个(atleastoneof)”或“…的一个或多个(oneormoreof)”引述的项目的列表中使用的“或”或“和”指示可使用的所列出的项目的任何组合。例如,“A、B或C中的至少一个(atleastoneofA,B,orC)”的列表包括组合A或B或C或AB或AC或BC和/或ABC(即A和B和C)中的任一个。此外,在项目A、B或C的多于一次出现或使用是可能的程度上,A、B和/或C的多次使用可形成所设想的组合。例如,“A、B或C中的至少一个(atleastoneofA,B,orC)”的列表也可包括AA、AAB、AAA、BB等。
如在本文(包括在权利要求)中使用的,除非另有规定,功能、操作或特征“基于(basedon)”项目和/或条件的陈述,意指功能、操作、功能基于所陈述的项目和/或条件并可基于除了所陈述的项目和/或条件以外的一个或多个项目和/或条件。
在下面的附图中和描述中阐述了一个或多个实现的细节。根据描述、附图和权利要求,另外的特征、方面和优点将变得明显。
附图的简要说明
现在将参考下面的附图详细描述这些和其它方面。
图1是示出多阶段恶意软件感染进程的图示。
图2是确定恶意进程是否存在并影响牺牲者进程的性能的系统的示例实现的示意图。
图3是列出可被监控以便于确定进程与它们的正常行为的偏差的一些示例事件或特征的表格。
图4是对不同的利用过程阶段按照其F分数列出事件的表格。
图5包括在合法程序的干净和被感染的执行期间进行的各种事件测量的“盒形图”曲线。
图6包括变换函数所应用的各种事件测量的“盒形图”曲线。
图7是实现AV引擎的示例系统的示意图。
图8是检测恶意进程的示例过程的流程图。
图9A-图9B包括关于非时间特征集和时间特征集的ROC曲线。
图10是从使用InternetExplorer的非时间模型和时间模型的不同事件组的曲线下面积(AUC)方面示出检测结果的曲线图。
图11A-图11B包括各种情形的AUC分数的表格。
图12是提供随着不同的采样率的执行时间减速的曲线图,其中对于不同的恶意软件利用阶段具有相应的检测AUC分数。
图13A是示例安全更新有效载荷的示意图。
图13B是接收安全更新有效载荷并更新AV引擎的配置的示例过程的流程图。
在各个附图中的相似的参考符号指示相似的元素。
描述
在本文描述了用于通过确定与合法(即非恶意)程序和进程的正常行为的偏差来无监督地检测执行程序/进程的异常行为的方法、系统、设备、装置、计算机程序产品、介质和其它实现。在一些实现中,从硬件设备(例如在其上执行合法进程和程序的处理器/基于计算的设备)得到包括硬件性能计数器数据(例如来自基于硬件的性能计数器)的硬件性能数据,且使用机器学习过程(例如分类过程)来分析数据,以确定所收集的硬件性能数据是否与由这样的合法程序或进程的正常执行产生的正常的、以前得到的硬件性能数据偏离。
虽然在本文提供的描述聚焦于导致合法程序、应用和进程的异常行为的恶意软件型恶意进程,但是本描述也适用于其它类型的恶意进程。
一般恶意软件感染可被理解为两阶段过程,即利用和接管。在利用阶段期间,恶意进程劫持牺牲者程序执行的控制。在利用之后接着是更精细的过程以下载并安装有效载荷,例如keylogger。更具体地,参考图1,示出了说明多阶段恶意软件感染进程100的图示。在实现进程100时,对手102首先构思利用并向牺牲者传送利用,例如在图1中描绘的利用110,以将对手已知的特定易受攻击性作为目标(在图1中被标记为操作“1”)。易受攻击性在一些实施方式中可以是存储器恶化故障,且利用可从网页或来自电子邮件的文档附件发送到牺牲者。当牺牲者访问利用时,通常被称为ROP(返回导向编程,其是实现安全特征的规避的计算机安全利用技术)的两个利用子程序和利用110的阶段1“shellcode”装入易受攻击的程序的存储器内(在图1中被标记为操作“2”)。利用110然后使用易受攻击性来将控制转移到ROPshellcode(图1的操作“3”)。
为了防止不可信数据作为代码被执行,一些现代处理器提供数据执行防止(DEP)模块以防止代码从数据页运行。DEP模块的问题是它可由程序本身触发(这个特征必须支持JIT编译)。因此,为了规避DEP,ROP-阶段shellcode可重新使用在原始程序二进制中的指令以构思对禁用包含利用110的下一阶段1shellcode的数据页的DEP的函数的调用。ROPshellcode然后将执行重定向到下一阶段(如在图1的操作“4”中所示的)。阶段1shellcode一般是配置成下载较大的(和一般有害的)有效载荷(在图1中被描绘为阶段2有效载荷120)的相对小(从几字节到大约300字节2)的代码段,其可更自由地运行。为了维持秘密,阶段2有效载荷120被下载到存储器(如在图1的操作“5”中所示的)。阶段2有效载荷120包括对手102想要在用户机器上执行以执行特定的恶意任务的代码。通常被称为后门、keylogger或侦察程序的这个有效载荷的功能的范围事实上是无限的。在有效载荷被下载之后,阶段1shellcode使用例如反射DLL注入(如在图1的操作“6”中所示的)运行该有效载荷作为可执行代码,反射DLL注入是不需要任何物理文件的秘密库注入技术。到这个时间为止,牺牲者系统被危害(如在图1的操作“7”中所示)。
由于在阶段1shellcode上的操作约束,利用110的阶段1shellcode和阶段2有效载荷120通常在尺寸、设计和功能方面是不同的。当传送在利用110中的初始shellcode时,利用作者一般试图使用尽可能少的存储器以确保程序不无意地重写在存储器中的它们的利用代码。为了有成功的良好的概率,这个代码需要小和快,且因此在一些实现中以非常受限的位置无关存储器寻址风格被组合地写入。这些约束可限制攻击者写非常大的shellcode的能力。相反,阶段2有效载荷120没有所有这些约束并可像任何常规程序一样被开发。这类似于OS如何使用小汇编例行程序来引导并接着切换到编译代码。
上面所述的策略和结构表示大量恶意软件进程,特别是使用相当最近的web利用工具箱创建的那些。这些恶意软件利用从存储器并在主牺牲者程序的过程上下文中执行。此外,它们通过确保没有文件被写到磁盘且没有新过程被创建来维持磁盘和过程秘密,并可因此回避很多基于文件的恶意软件检测技术。
在利用阶段期间检测恶意软件可以不仅给了用于缓和的更多的提前期,而且也可充当早期威胁预测器以提高有效载荷的随后基于签名的检测的准确度。基于异常的检测的防恶意软件实现例如本文所述的实现基于下列观察:恶意软件在利用阶段期间改变原始程序流以执行在牺牲者程序的背景下的特殊非本地代码。这样的不寻常的代码执行通常将引起对程序的动态执行特性的扰动,且如果这些扰动是可观察的,则它们可形成恶意软件利用的检测的基础。应注意,因为利用操纵在牺牲者程序内的执行流程,基于签名的检测范例可能并不适合于检测利用。例如,基于签名的检测器将可能正确地报告IE正在执行,即使在它被恶意软件感染时,因为恶意软件存在于IE内。
在一些实施方式中,可能由利用引起的偏差可以相当小和不可靠,特别是在具有不同的用途(例如InternetExplorer、AdobePDFReader(如下面将在本文所述的实现的测试和实验中更详细描述的,使用了InternetExplorer8和AdobePDFReader9))的易受攻击的程序中。例如,在Intelx86芯片上运行的生产Windows机器上,测试和实验指示来自硬件性能计数器的执行测量的分布可被正偏斜,很多值聚集在零附近。这暗示由利用代码引起的微小偏差不能有效地被直接分辨。然而,可例如使用幂变换(如将在下面更详细讨论的)来减轻识别与重偏斜分布的偏差的问题以放大小差异连同多个样本的时间聚集,以设置分离在较大程序执行的背景下的利用的执行。
相应地,在一些实施方式中,公开了方法、系统、设备、装置、产品、介质和其它实现,其包括一种系统,该系统包括执行第一进程的硬件设备和检测、防止和/或移除恶意软件和/或固件(包括恶意软件,例如病毒、蠕虫、rootkit等)的防病毒引擎,其中防病毒引擎与硬件设备通信。防病毒引擎配置成为执行第一进程的硬件设备得到当前硬件性能数据,包括硬件性能计数器数据,其中第一进程与表示第一进程的正常行为的预先记录的硬件性能数据相关。防病毒引擎进一步配置成基于相应于第一进程的所得到的当前硬件性能数据与表示第一进程的正常行为的预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响第一进程的性能。
因此,参考图2,示出了配置成确定恶意进程是否存在并影响牺牲者进程的性能的系统200的示例实现的示意图。系统200包括防病毒(AV)引擎210,其在一些实施方式中包括性能计数器采样单元(也被称为“采样器”)212、存储/维持相应于在将被监控到的硬件设备上正常执行的各种进程的正常行为的代表性基线硬件性能数据且也可存储由采样单元212收集的硬件性能数据(例如被组织为向量)的硬件性能数据库214以及配置成分析所收集的硬件性能数据以确定特定的进程是否被恶意进程感染(且因此被影响)的分类器216(其可包括多个单独的和可能独立的分类器216a-n)(在一些实施方式中,分类器216也可配置成更具体地识别影响所监控的牺牲者进程的性能的恶意进程)。AV引擎210通常与一个或多个硬件设备(例如图2所示的处理器设备220和/或222)通信。如将在下面更详细讨论的,可完全以软件、完全以硬件(例如作为在运行所监控的合法进程/程序的硬件设备例如处理器上实现的专用电路)或作为硬件/软件组合来实现AV210,AV的实现(例如采样单元)的至少部分被实现为专用硬件电路(例如在运行合法进程/程序的硬件设备上)。
采样单元212配置成从一个或多个硬件设备得到硬件性能数据,包括例如硬件性能计数器数据,其中该一个或多个硬件设备可包括设备例如控制器设备例如处理器设备例如设备220和222或包括使用模块例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)、DSP处理器等实现的控制器设备的任何其它类型的控制器设备。通常,基于硬件的控制器设备包括硬件相关性能计数器,其可配置成对在设备220和222之一上的进程和程序的执行期间出现的各种事件(例如循环、指令、高速缓存器遗漏等)的计数。合法程序或进程例如InternetExplorer、AdobeReader等可具有它们的性能——如由在设备220和222上实现的硬件相关性能计数器反映的,由于由感染设备220和222的恶意软件利用而与它们的正常性能偏离。例如,Intelx86处理器设备实现四个(4)可配置的性能计数器,且具有双ARMCortex-A9核心的OMAP4460处理器包括六个(6)可配置的性能计数器。AV引擎210被实现以从已知的控制器设计得到硬件性能数据(例如性能计数器数据),且因此AV引擎210可配置成从由AV引擎监控的硬件独有的已知性能计数器得到硬件性能数据。也就是说,可能需要待监控的硬件的特定体系结构的知识,以便从相应于特定体系结构的性能计数器得到硬件性能数据。在Intelx86处理器体系结构上使用的硬件性能数据计数器的例子包括:
●0x0440--L1D_CACHE_LD.E_STATE;
●0x0324--L2_RQSTS.LOADS;
●0x03b1--UOPS_EXECUTED.PORT(1或2);以及
●0x7f88--BR_INST_EXEC.ANY。
在ARMCortex-A9核心体系结构(通过其可得到硬件性能数据)上的公共计数器(特征事件号分配)的例子包括事件号:
●0x06-从体系结构的角度执行的存储器读取指令(显式地读取数据的每个指令的计数器增量);
●0x07-从体系结构的角度执行的存储器写入指令(显式地写入数据的每个指令的计数器增量);
●0x0C-从体系结构的角度执行的PC的软件变化,除了例外以外(计数器不递增使它的条件代码失效的条件指令);
●0x0D-从体系结构的角度执行的直接分支(计数器对从体系结构的角度执行的所有直接分支指令计数);
●0x0F-从体系结构的角度执行的非对齐访问(计数器对每个指令计数,其中指令是对未对齐地址的访问);以及
●0x12-计数器对分支或可由处理器的分支预测资源所预测的程序流中的其它变化计数。
例如在“ArchitectureReferenceManual,andedition,Erratamarkup”(其内容通过引用被全部并入本文)提供在ARMCortex-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连同所得到的硬件性能数据可能够跟踪进程的行为,因为它们将执行切换到不同的硬件设备。
虽然用于执行各种程序(其行为被监控)的处理器能够使用硬件性能计数器(HPC)和/或其它机构来监控很多事件以收集硬件性能数据,不是所有那些被监控的事件都在特征化程序的执行方面同等地有用。因此在一些实施方式中,只有有限的一组被监控的事件需要用于确定,例如牺牲者进程的行为/性能是否与其正常行为/性能偏离。图3提供的是列出可被监控(例如使用HPC)以便于确定进程与它们的正常行为的偏差的一些示例事件的表格300。在表格300中列出的示例事件包括给出在任何运行的程序中的指令的执行混合的指示的体系结构事件和通常取决于系统的特定硬件构造的微体系结构事件。
在一些实施方式中,处理器可能能够在任何给定的时间只监控少量事件(例如4个事件)。因此,在这样的实施方式中,可能必须选择可用于监控的事件的子集,其可最有效地区分开程序/进程的干净执行与程序/进程的被感染的执行。可从前面被识别为在特征化程序的执行方面有用的那些事件做出这个子集的选择(例如,从有时可通过例如处理器的HPC来监控的、在特征化程序/进程的执行方面有用的数百可能的事件,识别初始的一组事件)。在一些实施方式中,Fisher分数(F分数)可用于提供特征可多么有效地区分开在被监控的程序/进程的干净执行期间得到的硬件性能数据(也被成为“测量”)与在程序/进程的被感染执行期间得到的测量的量化度量。具有更好的区别能力的特征,将具有在来自不同类别的样本的平均和标准偏差之间的较大分隔。F分数给出分离的这个程度的度量。F分数越大,特征可能有的区别功能力就越多。虽然F分数可以不解释在特征之间的相互信息/相关性,F分数依然可帮助引导可能最有用的特征的子集的选择,其可用于确定那些特征的硬件性能数据是否指示被监控的程序/进程的可能的被感染执行(即由激活的恶意软件影响的执行)。
因此,在一些实现中,为了识别哪些事件将被监控以便得到数据样本(其接着用于确定合法程序或进程的被采样/被监控行为是否从它的正常行为偏离),各种候选事件的相应的F分数被计算。如在图4中的表格400中所示的,在一些实施方式中,F分数可在恶意软件代码执行的不同阶段(例如在图1中描绘的阶段)被计算,并因此将被列入入围名单的事件减少到例如每恶意软件代码执行阶段的两个事件类别(例如体系结构事件和微体系结构事件)中的每个以及组合的这两个类别的八(8)个最高等级的事件。相应地,如图4所示,表格400的每行对在恶意软件代码执行的特定阶段将特定类别的事件的各种事件分等级,因而能够确定哪些事件将是区分开牺牲者程序/进程的干净执行与被感染的牺牲者程序/进程的执行最有用的。例如,行410是在一些恶意软件代码执行的ROP阶段期间根据那些事件的所计算的F分数的体系结构事件的分级。在一些实施方式中,可选择来自每行的顶部四个(4)事件以产生我们将使用来构建特定的程序或进程(例如IE浏览器)的基线特性模型的九个(9)候选事件组。例如,如在表格400的行410中所示的,对于ROP阶段,4个最高等级的体系结构事件在这个例子中可包括RET、CALL_D、STORE和ARITH事件。使用一组事件构造的每个模型,可接着为了其在恶意软件代码执行的各个阶段的检测中的有效性而被评估。
可通过得到包括在一些实施方式中在一个时间时期中的四个事件计数的同时测量的硬件性能数据样本来执行数据采样。因此在这样的实施方式中,可在每个时期期间得到四个计数器值,类别/标签基于例如离线敏感度分析而被确定。在每个样本中的测量可转换成向量子空间,使得每个分类向量被表示为四特征向量。每个向量使用这个特征提取过程来表示在采样粒度的最小时间片进行的测量。这些特征可用于构建非时间模型。因为恶意软件shellcode一般在几个时间时期内运行,在可被利用的测量中可能有时间关系。为了对任何潜在的时间信息建模,可通过将N个连续的样本分组并组合每个事件的测量以形成具有4N个特征的向量来扩展每个样本向量的维数。在一些实现中,可将值N(表示以时期为单位的周期,在所述周期内测量被进行)设置到4(即N=4)以产生每个包括16特征的样本向量,使得每个样本向量有效地表示在4个时间时期中的测量。通过将在几个时间时期中的样本分组,这些事件测量的合成可用于构建时间模型(反映被监控的程序/进程的时间行为以确定与它们的正常行为的可能偏差)。应注意,使用测量被采样时的粒度,ROPshellcode的执行出现在仅仅一个样本的时间跨度内。
本文所述的实现的实验和测试表明,甚至对于所选择的特征的子集,因为它的特征被确定为能够更好地区分干净硬件性能数据与被感染硬件性能数据,事件异常并不是不重要地可检测的。例如,图5包括“盒形图”500a-d曲线,提供对各种微体系结构特征的微体系结构测量中的范围和方差的视觉估计,指示使用恶意软件代码的不同阶段的执行而进行的测量如何与来自无利用环境的干净测量可区分开的程度。在看到在干净程序/进程与被感染程序/进程的硬件性能中的清楚差异中的难点在于两个关键原因:(1)大部分测量分布正偏斜,很多值聚集在零附近,以及(2)由于利用代码而产生的与基线事件特性的偏差(如果有的话)不容易被分辨。
因此在一些实施方式中,可使用例如在测量上的保秩幂变换以明确地按比例调整值来处理硬件性能数据。例如在统计学的领域中,幂变换是通常应用于数据以将非正态分布的数据变换到具有近似正态分布的数据的一系列函数。因此,应用于所得到的硬件性能数据的幂变换函数能够放大通过恶意代码执行引起的与运行的程序/进程的基线特性的小偏差。在一些实施方式中,对于每个事件类型,确定或得到适当的幂参数λ,使得性能计数器值的标准化中位数大致是0.5。对于每个事件i,确定并维持参数λi以便按比例调整所有它的相应测量。被表示为normalizedi的事件i的每个标准化和成比例的事件测量从原始值rawi如下变换:
其中mini和maxi是事件i的最小和最大值。
使用这个幂变换,可绘出事件的分布,导致例如图6所示的曲线图600,其中与各种事件的基线分布的偏差比对在不使用变换函数的情况下得到的分布更可分辨。因此,变换函数例如幂变换函数在硬件性能数据上的应用能够更清楚地描绘由于对各种事件类型的恶意代码执行的不同阶段而引起的与基线特性的偏差。一些事件(例如MISP_RET和STORE)示出相对更大的偏差,特别是对于阶段1利用shellcode。这些事件在指示恶意代码执行的存在中可能拥有更大的区别能力。也有视觉地被关联的某些事件。例如,RET和CALL展示类似的分布。此外,可观察到在某些得到/计算出的事件(例如%MISP_BR)和它们的组成事件之间的强关联。
在一些实施方式中,对所得到的样本数据执行以实现与合法程序或进程的正常行为的观察到的偏差的放大或扩大的处理可作为采样单元212的部分、作为数据库214的部分或作为分离器216的单元的部分或作为专用于执行本文所述的处理的单元来实现。
在一些实施方式中,可至少部分地在被监控的硬件设备上实现采样单元212。例如,采样单元212可被实现为在专用的基于硬件的控制器例如FPGA、ASIC等上的硬件实现。在一些实施方式中,采样单元212可至少部分地被实现为在包括基于处理器的设备的机器上执行的软件实现,基于处理器的设备由AV引擎210监控以检测在机器上执行并影响非恶意进程的正常性能的恶意进程。例如,处理器设备的多个通用核心之一可被分配以执行AV引擎的至少部分的软件实现。在一些实施方式中,采样单元可被实现为,配置成从处理器收集硬件性能数据的软件实现,被监控的进程/程序在处理器上执行。
如所提到的,在图2中描绘的AV引擎210还包括硬件性能数据库214,其配置成存储从被监控/观察的硬件得到的硬件性能数据以及包括表示可在被监控的硬件设备(例如各种硬件性能事件的时间系列轨迹)上执行的各种进程(例如非恶意进程)的正常行为的数据。在一些实施方式中,AV引擎210可周期性地(以有规律或无规律的间隔)更新以包括被监控的进程的新的或修改的硬件性能数据(例如硬件性能计数器数据)。
在一些实施方式中,可至少部分地在被监控的硬件设备上实现数据库214。在一些实施方式中,硬件性能数据库214可至少部分地被实现为在包括由AV引擎210监控的基于处理器的设备的机器上执行的软件实现(例如分配处理器设备的多个通用核心之一以执行数据库214的软件实现或否则使用处理器设备来运行AV实现的数据库214)。在一些实施方式中,可在与被监控的硬件设备通信的远程机器上在硬件和/或软件中实现数据库214。
继续参考图2,在一些实施方式中,使用分类器216(也被称为机器学习引擎)执行恶意进程是否影响牺牲者(或潜在牺牲者)进程的性能的确定。分类器216也可配置成在一些实施方式中识别特定的恶意进程。
在一些实施方式中,分类器例如AV引擎210的分类器216可配置成重复地分析训练输入数据和输入数据的相应输出(例如恶意进程正引起与牺牲者进程的正常行为的偏差的确定和/或恶意进程的识别),并得到使从被监控的硬件设备收集的随后的硬件性能数据输入产生与分类器的学会的行为一致的输出的函数或模型。这样的分类器应配置成识别恶意进程和/或确定与合法(牺牲者)进程的正常性能和行为的偏差。
通常,机器学习分类器配置成检查数据项并确定每个数据项属于N组(类别)中的哪一个。分类可产生数据项属于每个类别的概率例如可能性的向量。在基于异常的进程检测中,可定义两个类别:正常行为和反常行为(可能从由恶意软件引起的利用产生)。作为结果,来自分类器的输出可包括表示数据项被恶意进程影响(例如利用)的可能性。
在特定的分类器不适合于处理/分类时间系列数据(如由AV请求210收集的时间系列硬件性能数据)的情况下,通过布置在不同的时间实例在被呈现为分类器的输入的特征的单个向量内出现的输入数据(例如相应于在硬件的特定位置处例如在特定的计数器处出现的硬件性能事件)来克服这个困难。如所提到的,在这个方法下,基于时间的数据可合并(例如通过采样单元212或数据库214)到数据的向量内,其中每个向量点相应于某个计数器的硬件性能数据样本或在不同的时间实例出现的位置。此外和/或可选地,用于使用通常未配置成操纵时间相关数据的序列的分类器来处理时间相关数据(硬件性能数据)的另一方法是使用这样的分类器单独地处理在不同的时间点对特定的进程采取的数据点,并聚集分类器的结果以便将整个过程分类。在一些实施方式中,不同的聚集操作可应用于分类器的结果,且被确定(例如通过测试和实验)来产生最佳分类结果的聚集操作可用于执行未来的聚集操作。例如,可使用的一个聚集操作是简单平均操作。可使用的另一聚集操作是加权平均操作,其中例如同样可能属于各种可用类别中的每个的数据点被给予零权数,而具有高概率的数据点被给予相对大的权数。
可用于处理/分析相应于执行进程的所收集的硬件性能数据点的分类器的类型,属于两个主要分类器类别:线性分类器和非线性分类器。线性分类器过程配置成试图通过超平面来分离n维数据点——在平面的一侧上的点是类别X的点,而在另一侧上的点是类别Y的点。非线性分类器通常不依赖于这种类型的线性分离。因此,可应用得到分类的任何操作。
在一些实施方式中,一个或多个分类过程可直接应用于由采样单元收集的当前硬件性能数据(或一个或多个分类过程可应用于从应用于当前硬件性能数据的某个后采样操作例如变换函数产生的数据)。分类器从被呈现为分类器的输入的当前硬件性能数据确定输入数据是否可能相应于与正常(干净)硬件性能数据偏离的被感染的硬件性能数据。
更具体地,恶意软件利用的基于异常的检测的硬件性能计数器(HPC)测量或其它硬件性能测量)的使用需要分类模型来描述待保护的每个程序/进程的基线特性(例如各种事件例如在图4的表格400中列出的事件的基线数据,其被确定为在能够区分干净性能数据与被感染性能数据中是有效的)。这样的程序特性在信息上相对充裕,且因此给出大量可用的程序/进程,手动地构建模型很难。替代地,无监督机器学习技术可用于动态地学习在数据中的可能隐藏的结构。这样的隐藏的结构(也被称为模型)可用于在利用期间检测偏差。一类方法通常是非常有用的,因为分类器可以只使用从干净环境中进行的测量而被训练。这除去了收集由所利用的代码影响的测量的需要,这在实践中难以实现和收集。在一些实施方式中,特性可以用使用非线性径向基函数(RBF)内核的一类支持向量机(oc-SVM)分类器被建模。在一些实施方式中,可使用其它类型的分类器,包括:
●K最近邻(KNN)——通过将训练数据点连同它们的标签插入空间数据结构如用于组织在k维空间中的点/数据的k维树(被称为“k-d树”)中来训练KNN分类器。为了将数据点分类,使用空间数据结构找到那个点的k个最近邻(在欧几里德空间)。数据点具有特定的类别的概率由数据点的多少邻居具有那个类别以及它们离彼此多远来确定。
●决策树——将数据点分类的另一方法是使用被称为决策树的非空间树。通过将训练数据递归地分成在特定的维度上的组来构建这个树。维度和分裂点被选择成对每个组最小化熵。这些决策也可集成某个随机性,降低树的质量但帮助防止过度训练。在某个最小熵被满足或最大深度命中之后,分支终止,在它中存储在它的组中的标签的混合。为了将新数据点分类,决策树遍历树以找到新点的组(叶节点)并返回到所存储的混合。
●随机森林——增加分类器的准确度的一种方式是使用很多不同的分类器并组合结果。在随机森林中,使用某个随机性构建多个决策树。当将新数据点分类时,在森林中的所有树的结果同样被加权以产生结果。
●人工神经网络(ANN)——神经网络机器试图通过包括以各种权数连接到彼此的神经元来将生物大脑建模。可改变在连接之间的权数值,因此使中央网络能够响应于它接收到的训练数据而适应(或学习)。在前馈神经网中,输入值在一个边缘处被提供并通过无循环传播到输出节点。在一些实施方式中,定义每个维度的一个输入神经元和两个输出节点(例如一个指示恶意软件运行的概率,一个指示没有恶意软件运行的概率)。
●张量密度——这个分类器将输入空间离散化成不同的存储桶。每个存储桶包含在训练数据集中的类别的混合。数据点通过找到它的仓并返回所存储的混合而被分类。通常,张量密度分类器使用O(1)查找时间,且因此被考虑为时间有效的。
在一些实施方式中,可使用回归技术以得到最佳拟合曲线、基于隐马克波夫模型的分类过程和/或其它类型的机器学习技术来实现分类器。在基于隐马克波夫模型的分类器被使用的实施方式中,可使用自相似性分析来识别在被处理的数据(例如硬件性能数据)中的模式,且在模式中的过渡可用于构建隐马克波夫模型,数据使用隐马克波夫模型被分类。在一些实施方式中,也可使用线性分类技术,像能够准确地但以减小的计算要求将数据分类的内核方法一样。
在一些实施方式中,分类过程可应用于从相应于被监控的牺牲者进程的所得到的当前硬件性能数据(或从由某个后采样处理例如本文所述的变换函数处理产生的数据)和表示牺牲者进程的正常行为的预先记录的硬件性能数据计算的分数/度量/计量。这样计算的分数可表示在牺牲者进程的当前行为和牺牲者进程的正常行为之间的差异。
如所提到的,AV引擎例如图2的AV引擎210可完全在硬件中(例如被实现为在待监控的硬件设备上的模块)、完全在软件中(例如作为在包括待监控的硬件的计算系统上执行的软件应用)或作为在硬件-软件组合实现而实现,在硬件-软件组合中,一个部件(例如图2的采样单元212)在硬件中实现,而数据库和分类器单元214和216例如经由软件(其可在本地或远程机器上执行或在被监控的硬件设备上执行)来实现。如果至少部分地由软件实现,则软件部件可配置成与硬件部件(例如使用经由接口连接过程)通信以接收数据(例如由采样单元得到的硬件性能数据)和/或将数据或控制信号传输到基于硬件的部件。
参考图7,示出示例系统700,其中实现AV引擎(例如图2的AV引擎210)。系统700包括控制器设备710,其可以是个人计算机、专用计算设备(可编程设备或它的反面)等并在一些实现中包括基于处理器的设备或单元例如中央处理器单元(CPU)712。在一些实施方式中,可至少部分地使用模块例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)、DSP处理器等来实现控制器设备710。
如所提到的,在一些实施方式中,AV引擎的至少部分可直接在待监控的硬件设备上的硬件中实现,和/或可在专用(和/或安全)控制器设备上执行的软件中实现。例如,如在图7中描绘的,CPU712可以是多核心处理器,且AV引擎的硬件部分可在CPU712的一个或多个核心713上实现,并配置(例如通过制造前或后编程)成执行AV引擎的一个或多个功能(例如收集硬件性能数据)。如果待监控的硬件设备是专用控制器设备(例如被实现为专用集成电路),则AV的硬件部分可在控制器的制造的时间被实现为放置在片上网络、片上/片外FPGA或片外ASIC协处理器上的专用恶意软件检测单元。这些选择表示在灵活性和区域和能量效率方面的不同折衷。将安全保护移动到硬件水平解决了几个问题并提供一些有趣的机会。例如,它确保安全系统不能被软件禁用,即使内核被危害。其次,因为安全系统在操作系统之下运行,安全系统可能能够保护不受内核利用和反对内核的其它攻击。第三,因为硬件本身被修改(以适应AV引擎的至少一些部分),任意静态和动态监控能力可被添加。这给予安全系统在软件行为内的广阔观看能力。
如进一步在图7中所示的,除了CPU712和/或实现控制器功能的其它专用硬件以外,系统700还包括主存储器、高速缓存存储器和总线接口电路(未在图7中示出)。例如,控制器设备710可包括大容量存储元件714,例如与系统相关的硬盘驱动器或闪存驱动器。计算系统700还可包括键盘、袖珍键盘或某个其它用户输入接口716和监视器720例如CRT(阴极射线管)、LCD(液晶显示器)监视器等,其可放置在用户可接近它们的地方。
控制器设备710配置成便于例如操作的实现以得到从在CPU712上和/或在某个其它专用设备(在其上执行(或可执行)进程)上的一个或多个进程或程序(例如可被恶意软件的执行危害的合法进程)的执行产生的当前硬件性能数据,并基于所得到的硬件性能数据来确定当前硬件性能数据是否与一个或多个执行进程的正常硬件性能行为(由前面得到的基线硬件性能数据表示)偏离。在一些实施方式中,可基于所收集或得到的当前硬件性能数据来确定引起与一个或多个执行进程的正常行为的偏差的一个或多个恶意软件的识别特征。存储设备714可因此在一些实施方式(例如AV至少部分地在软件中实现的实施方式)中包括计算机程序产品,其当在例如控制器设备710基于处理器的实现中被执行时使设备执行操作以便于所述进程的实现,包括得到硬件性能数据和确定与在控制器设备710上运行的合法进程的正常硬件性能行为的偏差的进程。
控制器设备710还可包括外围设备以实现输入/输出功能。这样的外围设备可包括例如用于将相关内容下载到所连接的系统的CD-ROM驱动器和/或闪存驱动器(例如可移动闪存驱动器)或网络连接(例如使用USB端口和/或无线收发器来实现)。这样的外围设备也可用于下载包含计算机指令的软件以实现相应的系统/设备的一般操作。如所提到的,可选地和/或此外,在一些实施方式中,可在系统700的实现中使用专用逻辑电路例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)、DSP处理器等。可与控制器设备710包括在一起的其它模块是扬声器、声卡、指示设备,例如鼠标或轨迹球,通过其,用户可向系统700提供输入。控制器设备710可包括操作系统,例如WindowsMicrosoft操作系统、Unix、Ubuntu操作系统等。
计算机程序(也被称为程序、软件、软件应用或代码)包括可编程处理器的机器指令,并可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如在本文使用的,术语“机器可读介质”指用于向可编程处理器(包括接收机器指令作为机器可读信号的非临时机器可读介质)提供机器指令和/或数据的任何非临时计算机程序产品、装置和/设备(例如磁盘、光盘、存储器、可编程逻辑设备(PLD))。非临时机器可读介质可包括介质,例如磁性介质(例如硬盘、软盘等)、光学介质(例如光盘、数字视频盘、蓝光盘等)、半导体介质(例如闪存、电可擦除只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)、在传输期间不消失或没有持久性的任何相似的任何适当的介质和/或任何适当的有形介质。在一些实施方式中,临时介质可用于提供计算机指令,并可包括例如在网络上、在电线、导体、光纤、电路、在传输期间不消失和没有持久性的任何相似的任何适当的介质和/或任何适当的有形介质中的信号。
可在包括后端部件(例如作为数据中心)或包括中间件部件(例如应用服务器)或包括前端部件(例如具有图形用户界面或Web浏览器的客户端计算机,用户可通过图形用户界面或Web浏览器与本文所述的主题的实施方式交互)或这样的后端、中间件或前端部件的任何组合的计算系统中实现本文所述的一些或所有主题。系统的部件可由数字数据通信的任何形式或介质例如通信网络互连。通信网络的例子包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可包括客户端和服务器。客户端和服务器通常远离彼此且一般通过通信网络进行交互。客户端和服务器的关系通常依靠在相应的计算机上运行并具有与彼此的客户端-服务器关系的计算机程序来产生。
现在参考图8,示出确定恶意进程是否影响牺牲者进程的示例过程800的流程图。过程800包括为执行与表示第一进程的正常行为的预先记录的硬件性能数据相关的第一进程的硬件设备得到810当前硬件性能数据,包括硬件性能计数器数据。如所提到的,在一些实施方式中,得到硬件性能数据可由采样单元执行,采样单元可至少部分地在硬件中作为运行合法进程(例如InternetExplored、AdobePDFReader等)的硬件设备来实现,如由硬件性能数据表示(例如由硬件性能计数器测量)的硬件设备的行为将被监控。在一些实施方式中,硬件性能数据可周期性地以有规律或无规律的间隔(例如以由伪随机过程确定的长度的间隔)得到,并可通过数据拉出过程(例如在有或没有运行过程的硬件设备的中断的情况下由发起硬件性能数据的收集的采样单元)或通过数据推送过程(例如发起硬件性能数据到AV引擎的周期性传递的硬件设备)来得到。在一些实施方式中,可例如为事件/特征收集硬件性能数据的子集,事件/特征的相应硬件性能测量通常可显示在为干净进程/程序和被感染进程/程序收集的性能数据之间的区别。这样的子集的选择可基于各种特征或事件的所计算的度量(例如F分数)。
使用所得到的当前硬件性能数据,基于相应于第一进程的所得到的当前硬件性能数据与表示第一进程的正常行为的预先记录的硬件性能数据的偏差的程度的确定来确定820恶意进程(例如恶意软件)是否影响第一进程(例如牺牲者进程)的性能。在一些实施方式中,可做出引起与牺牲者进程的正常行为的偏差的恶意进程的类型或识别特征的更特定的确定。如所提到的,确定硬件性能数据是否从进程的执行产生使得它与进程的正常硬件性能数据偏离可使用机器学习系统来执行,机器学习系统可包括使用例如为待监控的各种合法进程或程序得到的干净(未感染)硬件性能数据训练的一个或多个分类器(例如图2所示的一个或多个分类器216a-n)。在一些实施方式中,这样的一个或多个分类器可包括例如下列项中的一个或多个:实现非线性径向基函数(RBF)内核的支持向量机、k最近邻过程、决策树过程、随机森林过程、人工神经网络过程、张量密度过程和/或隐马克波夫模型过程。
为了确定本文所述的确定恶意进程是否影响被监控的合法程序/进程的正常行为和/或识别那个恶意进程的系统、过程和其它实现的功效,使用下面的实验设置来测试本文所述的系统、过程和其它实现。
用于确定本文所述的系统、过程和其它实现的功效的利用包括利用CVE-2012-4792、CVE-2012-1535和CVE-2010-2883,其将InternetExplorer(IE)8上的安全漏洞和它的两个web插件,即AdobeFlash11.3.300.257和AdobeReader9.3.4作为目标。使用广泛使用的渗透测试工具Metasploit来产生利用。Metasploit被使用,因为它使用的利用技术表示真实世界利用的多阶段性质。使用不同的ROPshellcode来以不同的漏洞为目标,且在利用中使用的阶段1shellcode和阶段2最终有效载荷改变。在下面的表1中概述所产生的利用中的可变性。
阶段 | 变化 |
ROP | msvcrt.dll,icucnv36.dll,flash32.ocx |
阶段1 | reverse_tcp,reverse_http,bind_tcp |
阶段2 | meterpreter,vncinject,command_shell |
表1
Windows驱动器被开发以配置在Inteli72.7GHzIvyBridge处理器上的性能监控单元以每N个指令中断一次并从HPC收集事件计数。当前执行的程序/进程的进程ID(PID)也被收集,使得测量基于进程被过滤/跟踪。从安装有WindowsXPSP3并运行具有512MB内存的单核的VMware虚拟机(VM)环境收集测量。使用在VM中的虚拟化HPC,这个处理器实现两个固定事件(时钟周期、指令退役)和同时多达四个事件的限制的计数。HPC配置成只在用户模式中更新事件计数。
为了确保对最初研究的实验忠实性,来自存储器缓冲器的测量被读取并经由TCP网络套接字传送到在另一VM中使用的记录器。这个记录器配置成保存在用于分析的本地文件中的测量的流。
在本文所述的系统、进程和实现的测试和实验期间,使用(N个指令的)各种采样间隔。最初,使用每512,000个指令一次的采样率,因为它提供测量的合理数量而不引起太多的开销。每个样本包括来自一个采样时间时期的事件计数连同识别PID和利用阶段标签。
为了得到InternetExplorer8的干净无利用测量,使用在本地机器上运行的IE8来访问使用InternetExplorer(IE)的不同的流行web插件例如Flash、Java、PDF、Silverlight、Windows媒体播放器扩展等的网站。具体地,十五(15)个不同的网站被访问,且插件下载和安装功能被模拟。为了得到AdobePDF的干净无利用测量,从web下载400个随机PDF。
为了收集被感染的测量,用于收集干净数据的同一浏览器用于访问(即浏览)各种网页,同时IE特定利用被激活。对于PDF利用测量,产生不同的一组400个随机文档,且Metasploit用于将利用插入那些文档内。干净和不干净的PDF都有文件类型的相同分布(例如相同数量的Javascript)。通常,相同的输入集用于不同的测量,VM环境在利用的每次运行之间返回到它的运行前状态以确保从随后的运行收集的样本不从前一运行被污染。为了减小从以仅仅一种方式装入的利用产生的测量偏置,在牺牲者程序内的测试和实验期间,可选地使用三种不同的装入机制,即a)发起程序并装入所产生的利用页面的URL链接,b)将利用页面装入已经运行的程序实例内,以及c)将利用URL保存从快捷径文件中并使用程序发动链接快捷径。为了确保(与VM交互的网络的)不同网络时延不使测量混淆,VM环境配置成连接到内部配置的Squid4代理并改变网络连接的带宽限制。带宽限制改变,同时收集利用代码执行和干净运行的测量。
为了使模型的分类性能形象化,构造绘出真实识别的恶意样本(即真正率)的百分比与虚假地被分类为恶意(假负率)的干净样本的百分比的关系的接收者操作特性(ROC)曲线。此外,为了在恶意样本的检测中对比在模型之间的相对性能,可计算并比较每个模型的在ROC曲线之下的面积。通常被称为曲线下面积(AUC)分数的这个面积提供模型对于变化的阈值可多么好地区分开干净和恶意样本的量化度量。AUC分数越高,模型的检测性能就越好。
因此,oc-SVM模型首先使用训练数据进行构建,并接着用测试数据使用九个事件组的非时间模型方法和时间模型方法进行评估。图9A包括InternetExplorer的非时间4特征模型的ROC曲线900a-c(为每个曲线指示的特征集相应于图4的表格400中提供的特征集),而图9B包括InternetExplorer的时间16特征模型的ROC曲线的曲线图910a-c。图10包括从使用InternetExplorer的非时间和时间模型的不同事件组的AUC分数的方面示出总检测结果的图表1000。
评估和测试结果指示模型通常在阶段1shellcode的检测中执行得最好。这些结果暗示阶段1shellcode展示与良性(即未感染)代码的基线体系结构和微体系结构特性的最大偏差。使用AM-1模型可实现阶段1shellcode的99.5%的最佳情况检测准确率。另一方面,模型示出ROPshellcode的较小的检测能力。模型在ROPshellcode的检测中可能执行得不好,可能因为在512k个指令下的采样粒度可能太大而不能捕获在基线模型中的偏差。虽然阶段1和阶段2shellcode在几个时间时期内执行,ROPshellcode被测量以平均采用2182个指令来完成执行。它范围从少至134个指令(例如对于FlashROP利用)到6016个指令(例如对于PDFROPliyo能够)。由于不变的采样粒度,包含在ROPshellcoode执行期间的测量的样本通常也包括来自正常代码执行的样本。
测试和评估结果(如也在图9A、图9B和图10的曲线图中反映的)进一步示出所有事件组的模型的检测准确度在使用时间信息的情况下提高。通过将更多的时间信息包括在每个样本向量中,偏差(其可能已经在非时间方法中可观察到)被放大。对于一个事件组M-2,构建模型的时间方法将AUC分数从非时间分数提高了高达59%。
如进一步由为本文所述的实现执行的测试和评估结果所示的,只使用体系结构事件构建的模型通常比只使用微体系结构事件构建的那些模型执行得更好。通过选择区别最悬殊的体系结构和微体系结构事件并将区别最悬殊的体系结构和微体系结构事件建模在一起,可实现较高的检测速率,例如对事件组AM-1高达99.5%的AUC分数。
在为本文所述的实现执行的额外测试中,测量从一个虚拟机(VM)被收集并传送到在另一AM中的记录器以被保存和处理。这个交叉-远程-VM情形——其中在不同的VM上执行采样和在线分类——被称为R-1core。为了在在线分类和测量收集被部署在同一VM中的情形中评估对检测准确度的影响,对使用利用1和2核心的两个额外的本地VM情形的模型集AM-1运行实验。这两种情形分别被称为L-1core和L-2core。在图11A的表1100中提供三种不同情形的AUC分数。可观察到,当在线分类检测器与采样驱动器在本地部署在一起时,检测性能受损害。这可促成被引入到事件计数的可能的噪声,同时在线检测器连续地运行并接受样本的流。
虽然使用512k指令的采样率得到上述实验结果,也对一定范围的采样粒度研究对检测功效的影响。此外,虽然基于硬件的HPC在事件计数的监控中引起近零开销,检测器的仅软件实现仍然需要运行将被周期性地中断的程序以对事件计数采样。这由于这个采样开销而不利地导致程序的总运行时间的关闭。因此,为了研究这样的检测范例的仅软件实现的部署,为不同的采样速率评估采样性能开销。
为了测量采样性能开销,采样粒度改变且在来自SPEC2006基准测试套件的程序中的因而产生的减速被测量。使用事件组AM-1的实验也重复,以便研究采样粒度对模型的检测准确度有的影响。在图12的曲线图1200中示出随着不同的采样率的执行时间减速,对不同的恶意软件利用阶段有相应的检测AUC分数。从图12可看到,检测性能通常随着较粗粒采样而恶化。这是所使用的不精确采样技术的结果。例如,虽然在指令的时间跨度期间得到的测量可被标记为术语特定的进程PID,在这个样本中的测量也可包含属于在这个样本的时间跨度期间上下文接入和切断的其它进程的测量。这个“噪声”效应以较粗粒采样速率变得更明显并引起检测性能的恶化。尽管如此,应注意,在较粗粒速率下的采样开销的减小胜过检测性能的降低。
在图11B中的表1110提供使用以事件组AM-0、1、2构建的模型为AdobePDF程序得到的AUC检测性能结果。与InternetExplorer的模型比较,ROP和Stage1shellcode的检测通常对AdobePDF阅读器提高,为AM-1事件组的时间建模实现0.999的AUC分数。PDF阅读器的这个检测技术的提高的性能暗示它的基线特性更稳定,给定它操纵的输入的与IE比较的更少变化的范围。
因此,本文所述的系统、进程和实现可通过牺牲者进程的体系结构和微体系结构行为的监控来有效地检测恶意软件的自动执行,该体系结构和微体系结构行为通过恶意软件shellcode的代码执行而显露。也就是说,部分地基于下列事实:虽然对手(攻击者)在构思攻击指令序列以回避目标系统时有完全的自由,对手不能直接修改由攻击代码展示的事件以回避本文所述的检测方法。对手可试图进行模拟攻击,以便谨慎地发攻击代码的“消息”以显示将被接受为良性的/正常的事件行为的组合。对shellcode的事件特性的控制的这个第二级程度增加了对手的回避努力的困难。
然而,为了反对攻击者/对手的这样的攻击回避努力,可采取几种额外的防御策略和方法来使本文所述的系统、过程和其它实现更鲁棒。一个这样的额外测量是通过使用列入入围名单的事件的不同子集训练多个模型来将随机化引入到模型内。也可随机化随着时间的过去利用的模型的选择。可使用的另一随机化元素是改变为时间模型的每个样本使用的连续样本的数量。以这种方式,攻击者将不知道在攻击者的攻击shellcode的执行期间使用哪个模型。为了使攻击者的利用是便携式的和在各种目标上起作用,攻击者将必须对各种事件使用例如no-op填补和指令代替模拟攻击来修改她的shellcode。为了得到使用这种方法引入的多样性的感觉,假设在可为模型选择的事件池中有十(10)个不同的事件,以及连续样本的数量可从3到6的范围改变。在这两个自由度的情况下,可被构造的可能的不同模型的数量是可能性的数量实质上增加,如果在池中有更多的事件。将事件的池从10增加到20,则将导致增加23倍。
可用于进一步反对攻击者回避本文所述的系统、过程和其它实现对攻击者的恶意软件的检测的企图的另一策略是复用策略。具体地,以更高的采样开销为代价,可在更精细采样粒度下执行采样,且可通过如下复用监控来测量更多的事件(而不是当前的四个)。例如,跨越两个时间时期的8个事件的同时监控可通过监控在一个时期中的4个事件和另一时期中的另4个事件来近似。这对在模型中使用的输入向量提供更多的维度,因而增加了对手使所有增加数量的所监控的事件测量看起来是无异常的所需的努力。
反击恶意软件回避企图的又一策略是“深入防御”方法。在这样的方法中,恶意软件异常检测器基于HPC显露连同监控恶意软件的其它特征(例如句法和语义结构、在系统-调用级处的执行行为、在功能级处的执行行为等)的其它基于异常的检测器部署在一起。在这样的设置中,为了使攻击是成功的,对手被迫使攻击代码形成为符合每个异常检测模型的常态。
此外,存在可用于进一步提高本文所述的系统、过程和其它实现的性能的额外的体系结构增强。可被引入的一个体系结构提高是使用更多的性能计数器。关于本文所述的系统、过程和其它实现进行的测试和实验指示添加事件可帮助更好地区分开良性和恶意代码执行。因此,扩展可同时被监控的性能计数器的集合可潜在地增加检测忠实度。观察指令和数据工作集的廉价硬件机制改变,且基本块级执行频率可进一步提高恶意软件检测准确度。可被引入的另一体系结构增强是更重地依赖于无中断周期性访问。在一些实施方式中,读取性能计数器需要主过程被中断。这对程序导致昂贵的中断操纵成本和过度的采样开销。如果使用将性能计数器测量周期性地存储到指定存储器区而不产生中断的能力实现性能监控单元,则直接从这个区访问样本可消除采样开销。重要地,这允许在更精细的粒度下监控以减小“噪声”效应,并留下更大的范围用于更好的检测。可被引入的又一体系结构增强是使用非公共事件检查被监控的进程/程序的行为,例如从攻击者可能不知道的性能计数器收集数据微体系结构数据,且因此不能设计攻击以尝试并回避这样的性能计数器。保持事件是秘密的增加了攻击者进行回避攻击的困难。
除了配置成收集(和/或存储)硬件性能数据并分析所收集的硬件性能数据以确定是否有由于恶意软件的可能执行而引起的与合法进程的正常行为的偏差(且可能更具体地识别恶意软件执行)以外,在一些实施方式中,AV引擎例如图2的AV引擎210也可配置成,如果威胁被检测到(例如关闭硬件或报告恶意行为),则采取某些行动,。更具体地,有可由AV引擎例如AV引擎210实现的各种安全政策。一些可行的安全政策包括:
●使用AV引擎作为第一阶段恶意软件预测器——当AV引擎怀疑程序是恶意的时,它可在程序上运行更复杂的行为分析。硬件分析“迅速地”发生并明显快于由恶意进程分析者使用来创建签名的行为分析。这样的预过滤可避免对“良性软件”的昂贵行为处理。
●迁移敏感计算——在多租户设置例如公共云中,当AV引擎怀疑在系统上的活动线程正攻击时,AV引擎可移动敏感计算。在一些情形中,AV系统简单地杀死被怀疑的攻击过程可能是可接受的。
●对辩论术使用AV引擎——记录用于辩论术的数据是昂贵的,因为它常常涉及记录在可疑进程和环境之间的交互作用。为了迁移这些开销,只有当AV引擎做出恶意进程的可能执行的确定时才记录辩论术所必需的信息。
因此,有可基于AV引擎的输出而采取的各种行动。实现AV引擎的本文所述的系统、过程和其它实现应足够灵活以实现上述安全政策。从概念上讲,这意味着在一些实施方式中,AV引擎应能够中断在任何给定核心上的计算并在那个机器上运行正常有效载荷。这需要AV引擎能够发出不可掩蔽的处理器间中断。可选地,在一些实施方式中,AV引擎可向OS或监督软件传达它已检测到可疑进程,使得系统可开始迁移其它共驻内存的敏感计算。在一些实施方式中,AV引擎也可配置成在最高特权模式中运行。
如所提到的,在一些实施方式中,AV引擎例如图2的AV引擎210可配置成使用新的干净基线硬件性能数据来更新(对于可在本地计算设备上运行的当前或新进程),当它们变得可得到时或当新分类技术被实现时。应以防止攻击者危害AV的方式实现AV更新。
通常,安全更新可包括例如下列项中的一个或多个:分类器、规定安全政策的行动程序、确定哪些性能特征与什么分类器一起使用的配置文件、一个或多个合法进程或程序的干净硬件性能数据和/或更新修订号。这个数据可使用适合于硬件设置的技术/过程安全地被传送到AV引擎。在图13A中描绘了,被发送到防病毒引擎的示例安全更新有效载荷1300的示意图示,其中,包括应用于有效载荷的各种加密级。在图13B中描绘了,通常由AV引擎执行来接收安全更新有效载荷(例如加密的有效载荷1300)并更新AV引擎的配置的示例过程1350。如图13B所示,过程1350包括接收1355有效载荷,以及使用嵌在硬件(其上实现AV引擎)中的“验证”密钥对有效载荷解密1360。然后确定1365“验证”的因而产生的散列是否匹配嵌在硬件中的验证密钥的预期散列。如果不匹配,则过程1350终止1370。如果存在“验证”密钥的散列的匹配,则确定1375具有SHA-2散列函数的有效载荷的整体性。如果整体性被确认,则有效载荷使用AES密钥被解密1385(否则过程终止1380),且当确定在有效载荷中指示的更新修订号与在硬件设备中保持的修订号指示器一致(在1390处)时,在有效载荷中的更新被应用1395。
如关于过程1350的操作1390指示的,在一些实施方式中,硬件设备(其上至少部分地实现AV引擎)保持最后一次更新的修订号,以及该修订号在每次更新时递增。这防止/禁止攻击者重新运行AV系统,攻击者可能做这件事以防止系统发现新的恶意进程。AV引擎可通过拒绝用比在硬件计数器中保持的修订号旧的修订号更新来提供该保护。
虽然在本文详细公开了特定的实施方式,这仅出于说明的目的作为例子来完成,且并没有被规定为关于所遵循的所附权利要求的范围是限制性的。一些其它方面、优点和修改被考虑为在下面提供的权利要求的范围内。所提出的权利要求表示本文公开的至少一些实施方式和特征。也设想其它未主张的实施方式和特征。
Claims (20)
1.一种方法,包括:
得到关于执行第一进程的硬件设备的当前硬件性能数据,包括硬件性能计数器数据,所述第一进程与表示所述第一进程的正常行为的预先记录的硬件性能数据相关;以及
基于相应于所述第一进程的所得到的当前硬件性能数据与表示所述第一进程的正常行为的所述预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响所述第一进程的性能。
2.如权利要求1所述的方法,其中,得到所述硬件性能数据包括:
在不同的时间实例得到所述硬件性能数据。
3.如权利要求2所述的方法,其中,在所述不同的时间实例得到所述硬件性能数据包括:
执行数据推送操作或数据拉出操作中的一个或多个,所述数据推送操作由所述硬件设备发起以发送所述当前硬件性能数据,所述数据拉出操作由防病毒引擎发起以使所述当前硬件性能数据由所述硬件设备发送。
4.如权利要求1所述的方法,其中,得到所述当前硬件性能数据包括:
基于相应的计算的一个或多个分数,从多个硬件性能特征中选择一个或多个特征,所述一个或多个分数表示所述一个或多个特征中的相应特征的硬件性能数据的相应子集能够指示关于选择的一个或多个特征得到的所述硬件性能数据受到所述恶意进程影响的有效性程度;以及
从所述当前硬件性能数据中得到仅关于所选择的一个或多个特征的性能数据。
5.如权利要求4所述的方法,其中,计算所述一个或多个分数包括计算一个或多个Fisher分数。
6.如权利要求1所述的方法,其中,确定所述恶意进程是否影响所述第一进程的性能包括:
将使用表示所述第一进程的所述正常行为的所述预先记录的硬件性能数据训练的一个或多个机器学习过程应用于所述当前硬件性能数据,以确定关于执行所述第一进程的所述硬件设备的所述当前硬件性能数据是否偏离关于所述第一进程的所述预先记录的硬件性能数据。
7.如权利要求6所述的方法,其中,所述一个或多个机器学习过程包括下列项中的一个或多个:实现非线性径向基函数(RBF)内核的支持向量机、k最近邻过程、决策树过程、随机森林过程、人工神经网络过程、张量密度过程或隐马克波夫模型过程。
8.如权利要求1所述的方法,还包括:
将变换函数应用于至少所述当前硬件性能数据以产生变换的数据;
其中,确定所述恶意进程是否影响所述第一进程的性能包括基于使用所产生的变换的数据计算的、所述当前硬件性能数据与所述预先记录的硬件性能数据的偏差的程度,来确定所述恶意进程是否影响所述第一进程的性能。
9.如权利要求8所述的方法,其中,将所述变换函数应用于至少所述当前硬件性能数据以产生变换的数据包括:
根据下式,从关于事件i的硬件性能数据值rawi导出关于所述事件i的标准化硬件性能值normalizedi:
其中mini和maxi是关于所述事件i的相应的最小值和最大值,且λi是关于所述事件i的幂参数。
10.如权利要求1所述的方法,其中,所述硬件性能数据包括下列项中的一个或多个:处理器负荷密度数据、分支预测性能数据或关于指令高速缓存遗漏的数据。
11.如权利要求1所述的方法,还包括:
得到至少关于表示所述第一进程的所述正常行为的所述预先记录的硬件性能数据的更新,其中,得到所述更新包括:
将用于所述更新的加密数据下载到与提供所述当前硬件性能数据的所述硬件设备通信的防病毒引擎;
在所述防病毒引擎处,将所下载的用于所述更新的加密数据解密;以及
更新由所述防病毒引擎维持的修订计数器,所述修订计数器指示最近的更新的修订号。
12.一种系统,包括:
硬件设备,所述硬件设备执行第一进程;以及
防病毒引擎,所述防病毒引擎与所述硬件设备通信,所述防病毒引擎配置成:
得到关于执行第一进程的所述硬件设备的当前硬件性能数据,所述当前硬件性能数据包括硬件性能计数器数据,所述第一进程与表示所述第一进程的正常行为的预先记录的硬件性能数据相关;以及
基于相应于所述第一进程的所得到的当前硬件性能数据与表示所述第一进程的所述正常行为的所述预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响所述第一进程的性能。
13.如权利要求12所述的系统,其中,配置成得到所述当前硬件性能数据的所述防病毒引擎配置成:
基于相应的计算的一个或多个分数,从多个硬件性能特征中选择一个或多个特征,所述一个或多个分数表示所述一个或多个特征中的相应特征的硬件性能数据的相应子集能够指示关于所选择的一个或多个特征得到的所述硬件性能数据受到所述恶意进程影响的有效性程度;以及
从所述当前硬件性能数据得到仅关于所选择的一个或多个特征的性能数据。
14.如权利要求12所述的系统,其中,配置成确定所述恶意进程是否影响所述第一进程的性能的所述防病毒引擎配置成:
将使用表示所述第一进程的所述正常行为的所述预先记录的硬件性能数据训练的一个或多个机器学习过程应用于所述当前硬件性能数据,以确定关于执行所述第一进程的所述硬件设备的所述当前硬件性能数据是否偏离所述第一进程的所述预先记录的硬件性能数据。
15.如权利要求14所述的系统,其中,所述一个或多个机器学习过程包括下列项中的一个或多个:实现非线性径向基函数(RBF)内核的支持向量机、k最近邻过程、决策树过程、随机森林过程、人工神经网络过程、张量密度过程或隐马克波夫模型过程。
16.如权利要求12所述的系统,其中,所述防病毒引擎还配置成:
将变换函数应用于至少所述当前硬件性能数据以产生变换的数据;
其中,配置成确定所述恶意进程是否影响所述第一进程的性能的所述防病毒配置成基于使用所产生的变换的数据计算的、所述当前硬件性能数据与所述预先记录的硬件性能数据的偏差的程度,来确定所述恶意进程是否影响所述第一进程的性能。
17.一种计算机可读介质,其存储在至少一个可编程设备上可执行的一组指令,所述指令在被执行时引起操作,所述操作包括:
得到关于执行第一进程的硬件设备的当前硬件性能数据,包括硬件性能计数器数据,所述第一进程与表示所述第一进程的正常行为的预先记录的硬件性能数据相关;以及
基于相应于所述第一进程的所得到的当前硬件性能数据与表示所述第一进程的所述正常行为的所述预先记录的硬件性能数据的偏差的程度的确定,来确定恶意进程是否影响所述第一进程的性能。
18.如权利要求17所述的计算机可读介质,其中,得到所述当前硬件性能数据包括:
基于相应的计算的一个或多个分数,从多个硬件性能特征中选择一个或多个特征,所述一个或多个分数表示所述一个或多个特征中的相应特征的硬件性能数据的相应子集能够指示关于所选择的一个或多个特征得到的所述硬件性能数据受到所述恶意进程影响的有效性程度;以及
从所述当前硬件性能数据中得到仅关于所选择的一个或多个特征的性能数据。
19.如权利要求17所述的计算机可读介质,其中,确定所述恶意进程是否影响所述第一进程的性能包括:
将使用表示所述第一进程的所述正常行为的所述预先记录的硬件性能数据训练的一个或多个机器学习过程应用于所述当前硬件性能数据,以确定关于执行所述第一进程的所述硬件设备的所述当前硬件性能数据是否偏离所述第一进程的所述预先记录的硬件性能数据。
20.一种装置,包括:
用于得到关于执行第一进程的硬件设备的当前硬件性能数据的模块,所述当前硬件性能数据包括硬件性能计数器数据,所述第一进程与表示所述第一进程的正常行为的预先记录的硬件性能数据相关;以及
用于基于相应于所述第一进程的所得到的当前硬件性能数据与表示所述第一进程的所述正常行为的所述预先记录的硬件性能数据的偏差的程度的确定来确定恶意进程是否影响所述第一进程的性能的模块。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361803029P | 2013-03-18 | 2013-03-18 | |
US61/803,029 | 2013-03-18 | ||
USPCT/US2013/068451 | 2013-11-05 | ||
PCT/US2013/068451 WO2014149080A1 (en) | 2013-03-18 | 2013-11-05 | Detection of anomalous program execution using hardware-based micro-architectural data |
US201361919560P | 2013-12-20 | 2013-12-20 | |
US61/919,560 | 2013-12-20 | ||
PCT/US2014/027375 WO2014152469A1 (en) | 2013-03-18 | 2014-03-14 | Unsupervised anomaly-based malware detection using hardware features |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105247532A true CN105247532A (zh) | 2016-01-13 |
CN105247532B CN105247532B (zh) | 2019-05-31 |
Family
ID=51581219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480028753.1A Active CN105247532B (zh) | 2013-03-18 | 2014-03-14 | 使用硬件特征的对异常进程的无监督的检测 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9996694B2 (zh) |
KR (1) | KR101794116B1 (zh) |
CN (1) | CN105247532B (zh) |
WO (1) | WO2014152469A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107545194A (zh) * | 2017-08-01 | 2018-01-05 | 华南理工大学 | 片上网络中应对硬件木马的检测及防御方法 |
CN108629181A (zh) * | 2018-05-11 | 2018-10-09 | 湖南大学 | 基于行为的Cache攻击检测方法 |
CN109190703A (zh) * | 2018-09-05 | 2019-01-11 | 辽宁大学 | 基于dnn的多态蠕虫特征码自动提取方法 |
TWI687783B (zh) * | 2019-06-17 | 2020-03-11 | 臺灣塑膠工業股份有限公司 | 設備異常偵測方法及系統 |
CN111259948A (zh) * | 2020-01-13 | 2020-06-09 | 中孚安全技术有限公司 | 一种基于融合机器学习算法的用户安全行为基线分析方法 |
RU2739865C2 (ru) * | 2018-12-28 | 2020-12-29 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносного файла |
CN114978568A (zh) * | 2021-02-23 | 2022-08-30 | 迈络思科技有限公司 | 使用机器学习进行数据中心管理 |
Families Citing this family (124)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10554505B2 (en) | 2012-09-28 | 2020-02-04 | Intel Corporation | Managing data center resources to achieve a quality of service |
CN105229612B (zh) | 2013-03-18 | 2018-06-26 | 纽约市哥伦比亚大学理事会 | 使用基于硬件的微体系结构数据的异常程序执行的检测 |
US10055587B2 (en) | 2013-12-23 | 2018-08-21 | The Trustees Of Columbia University In The City Of New York | Implementations to facilitate hardware trust and security |
US10896421B2 (en) | 2014-04-02 | 2021-01-19 | Brighterion, Inc. | Smart retail analytics and commercial messaging |
US20180053114A1 (en) | 2014-10-23 | 2018-02-22 | Brighterion, Inc. | Artificial intelligence for context classifier |
US9973520B2 (en) | 2014-07-15 | 2018-05-15 | Cisco Technology, Inc. | Explaining causes of network anomalies |
US10230747B2 (en) * | 2014-07-15 | 2019-03-12 | Cisco Technology, Inc. | Explaining network anomalies using decision trees |
US20160055427A1 (en) | 2014-10-15 | 2016-02-25 | Brighterion, Inc. | Method for providing data science, artificial intelligence and machine learning as-a-service |
US20150032589A1 (en) | 2014-08-08 | 2015-01-29 | Brighterion, Inc. | Artificial intelligence fraud management solution |
US20150066771A1 (en) | 2014-08-08 | 2015-03-05 | Brighterion, Inc. | Fast access vectors in real-time behavioral profiling |
US20160063502A1 (en) | 2014-10-15 | 2016-03-03 | Brighterion, Inc. | Method for improving operating profits with better automated decision making with artificial intelligence |
US20160078367A1 (en) | 2014-10-15 | 2016-03-17 | Brighterion, Inc. | Data clean-up method for improving predictive model training |
US11080709B2 (en) | 2014-10-15 | 2021-08-03 | Brighterion, Inc. | Method of reducing financial losses in multiple payment channels upon a recognition of fraud first appearing in any one payment channel |
US10546099B2 (en) | 2014-10-15 | 2020-01-28 | Brighterion, Inc. | Method of personalizing, individualizing, and automating the management of healthcare fraud-waste-abuse to unique individual healthcare providers |
US10290001B2 (en) | 2014-10-28 | 2019-05-14 | Brighterion, Inc. | Data breach detection |
WO2016108961A1 (en) * | 2014-12-30 | 2016-07-07 | Battelle Memorial Institute | Anomaly detection for vehicular networks for intrusion and malfunction detection |
US10044750B2 (en) | 2015-01-16 | 2018-08-07 | Microsoft Technology Licensing, Llc | Code labeling based on tokenized code samples |
US9544321B2 (en) | 2015-01-30 | 2017-01-10 | Securonix, Inc. | Anomaly detection using adaptive behavioral profiles |
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 |
US20180130006A1 (en) | 2015-03-31 | 2018-05-10 | Brighterion, Inc. | Addrressable smart agent data technology to detect unauthorized transaction activity |
US9842209B2 (en) * | 2015-05-08 | 2017-12-12 | Mcafee, Llc | Hardened event counters for anomaly detection |
US9723016B2 (en) | 2015-05-14 | 2017-08-01 | International Business Machines Corporation | Detecting web exploit kits by tree-based structural similarity search |
WO2016203501A1 (en) * | 2015-06-17 | 2016-12-22 | TISCALI S.p.A. | A method to rank documents by a computer, using additive ensembles of regression trees and cache optimisation, and search engine using such a method |
US9825989B1 (en) * | 2015-09-30 | 2017-11-21 | Fireeye, Inc. | Cyber attack early warning system |
US10437998B2 (en) | 2015-10-26 | 2019-10-08 | Mcafee, Llc | Hardware heuristic-driven binary translation-based execution analysis for return-oriented programming malware detection |
US10657255B2 (en) * | 2015-12-17 | 2020-05-19 | International Business Machines Corporation | Detecting malicious code based on conditional branch asymmetry |
US10007787B2 (en) | 2015-12-28 | 2018-06-26 | International Business Machines Corporation | Runtime return-oriented programming detection |
CN105989288B (zh) * | 2015-12-31 | 2019-04-16 | 武汉安天信息技术有限责任公司 | 一种基于深度学习的恶意代码样本分类方法及系统 |
EP3404572B1 (en) | 2016-02-24 | 2020-09-23 | Nippon Telegraph And Telephone Corporation | Attack code detection device, attack code detection method, and attack code detection program |
US10345800B2 (en) | 2016-03-30 | 2019-07-09 | 3D Signals Ltd. | Acoustic monitoring of machinery |
TWI599905B (zh) * | 2016-05-23 | 2017-09-21 | 緯創資通股份有限公司 | 惡意碼的防護方法、系統及監控裝置 |
US10025687B2 (en) | 2016-05-25 | 2018-07-17 | International Business Machines Corporation | Event rate change based hardware performance data collection |
US10282546B1 (en) * | 2016-06-21 | 2019-05-07 | Symatec Corporation | Systems and methods for detecting malware based on event dependencies |
US10831893B2 (en) * | 2016-07-14 | 2020-11-10 | Mcafee, Llc | Mitigation of ransomware |
US11120106B2 (en) | 2016-07-30 | 2021-09-14 | Endgame, Inc. | Hardware—assisted system and method for detecting and analyzing system calls made to an operating system kernel |
US10733301B2 (en) * | 2016-08-24 | 2020-08-04 | Microsoft Technology Licensing, Llc | Computing device protection based on device attributes and device risk factor |
US10666618B2 (en) * | 2016-09-15 | 2020-05-26 | Paypal, Inc. | Enhanced security techniques for remote reverse shell prevention |
US10216933B1 (en) * | 2016-09-16 | 2019-02-26 | Symantec Corporation | Systems and methods for determining whether malicious files are targeted |
US20180107823A1 (en) * | 2016-10-14 | 2018-04-19 | Qualcomm Incorporated | Programmable Hardware Security Counters |
US10482248B2 (en) * | 2016-11-09 | 2019-11-19 | Cylance Inc. | Shellcode detection |
US10839076B2 (en) * | 2016-12-21 | 2020-11-17 | 3D Signals Ltd. | Detection of cyber machinery attacks |
US10686822B2 (en) | 2017-01-30 | 2020-06-16 | Xm Cyber Ltd. | Systems and methods for selecting a lateral movement strategy for a penetration testing campaign |
US10068095B1 (en) | 2017-05-15 | 2018-09-04 | XM Cyber Ltd | Systems and methods for selecting a termination rule for a penetration testing campaign |
US10257220B2 (en) | 2017-01-30 | 2019-04-09 | Xm Cyber Ltd. | Verifying success of compromising a network node during penetration testing of a networked system |
US10999308B2 (en) | 2017-01-30 | 2021-05-04 | Xm Cyber Ltd. | Setting-up penetration testing campaigns |
AU2018212708A1 (en) * | 2017-01-30 | 2019-08-08 | Xm Cyber Ltd. | Penetration testing of a networked system |
US10684896B2 (en) | 2017-02-20 | 2020-06-16 | Tsinghua University | Method for processing asynchronous event by checking device and checking device |
US10657022B2 (en) | 2017-02-20 | 2020-05-19 | Tsinghua University | Input and output recording device and method, CPU and data read and write operation method thereof |
US10572671B2 (en) | 2017-02-20 | 2020-02-25 | Tsinghua University | Checking method, checking system and checking device for processor security |
US10642981B2 (en) * | 2017-02-20 | 2020-05-05 | Wuxi Research Institute Of Applied Technologies Tsinghua University | Checking method, checking device and checking system for processor |
US10581802B2 (en) | 2017-03-16 | 2020-03-03 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Methods, systems, and computer readable media for advertising network security capabilities |
US10454776B2 (en) | 2017-04-20 | 2019-10-22 | Cisco Technologies, Inc. | Dynamic computer network classification using machine learning |
FR3065945B1 (fr) * | 2017-05-04 | 2021-04-16 | Thales Sa | Procede et dispositif electronique de surveillance d'une application logicielle avionique, programme d'ordinateur et systeme avionique associes |
US10534917B2 (en) * | 2017-06-20 | 2020-01-14 | Xm Cyber Ltd. | Testing for risk of macro vulnerability |
US10592383B2 (en) * | 2017-06-29 | 2020-03-17 | Intel Corporation | Technologies for monitoring health of a process on a compute device |
US10574684B2 (en) | 2017-07-09 | 2020-02-25 | Xm Cyber Ltd. | Locally detecting phishing weakness |
US11151251B2 (en) | 2017-07-13 | 2021-10-19 | Endgame, Inc. | System and method for validating in-memory integrity of executable files to identify malicious activity |
US11151247B2 (en) * | 2017-07-13 | 2021-10-19 | Endgame, Inc. | System and method for detecting malware injected into memory of a computing device |
US10412112B2 (en) | 2017-08-31 | 2019-09-10 | Xm Cyber Ltd. | Time-tagged pre-defined scenarios for penetration testing |
US10447721B2 (en) | 2017-09-13 | 2019-10-15 | Xm Cyber Ltd. | Systems and methods for using multiple lateral movement strategies in penetration testing |
US20190102564A1 (en) * | 2017-10-02 | 2019-04-04 | Board Of Trustees Of The University Of Arkansas | Automated Security Patch and Vulnerability Remediation Tool for Electric Utilities |
EP3711279A1 (en) | 2017-11-15 | 2020-09-23 | XM Cyber Ltd. | Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign |
KR102408348B1 (ko) | 2017-12-21 | 2022-06-14 | 삼성전자주식회사 | 단말 장치 및 단말 장치의 제어 방법 |
US10855698B2 (en) * | 2017-12-22 | 2020-12-01 | Cisco Technology, Inc. | Leveraging endpoint and network environment inferences for malware traffic classification |
CN108345794A (zh) * | 2017-12-29 | 2018-07-31 | 北京物资学院 | 恶意软件的检测方法及装置 |
US11263307B2 (en) * | 2018-01-08 | 2022-03-01 | Digital Immunity Llc | Systems and methods for detecting and mitigating code injection attacks |
US10440044B1 (en) | 2018-04-08 | 2019-10-08 | Xm Cyber Ltd. | Identifying communicating network nodes in the same local network |
US20190342297A1 (en) * | 2018-05-01 | 2019-11-07 | Brighterion, Inc. | Securing internet-of-things with smart-agent technology |
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 |
US10997289B2 (en) | 2018-05-21 | 2021-05-04 | International Business Machines Corporation | Identifying malicious executing code of an enclave |
US11520900B2 (en) * | 2018-08-22 | 2022-12-06 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for a text mining approach for predicting exploitation of vulnerabilities |
GB2592132B (en) * | 2018-08-31 | 2023-01-04 | Sophos Ltd | Enterprise network threat detection |
CN109255241B (zh) * | 2018-08-31 | 2022-04-22 | 国鼎网络空间安全技术有限公司 | 基于机器学习的Android权限提升漏洞检测方法及系统 |
US11297073B2 (en) | 2018-08-31 | 2022-04-05 | Sophos Limited | Forensic query of local event streams in an enterprise network |
US10382473B1 (en) | 2018-09-12 | 2019-08-13 | Xm Cyber Ltd. | Systems and methods for determining optimal remediation recommendations in penetration testing |
CN110908876B (zh) * | 2018-09-18 | 2023-03-28 | 阿里巴巴集团控股有限公司 | 一种硬件性能数据的获取方法及装置 |
US10469521B1 (en) | 2018-11-04 | 2019-11-05 | Xm Cyber Ltd. | Using information about exportable data in penetration testing |
US11537875B2 (en) | 2018-11-09 | 2022-12-27 | International Business Machines Corporation | Detecting and reducing bias in machine learning models |
WO2020121078A1 (en) | 2018-12-13 | 2020-06-18 | Xm Cyber Ltd. | Systems and methods for dynamic removal of agents from nodes of penetration testing systems |
US11216556B2 (en) * | 2018-12-17 | 2022-01-04 | Intel Corporation | Side channel attack prevention by maintaining architectural state consistency |
US11194902B2 (en) * | 2018-12-27 | 2021-12-07 | Intel Corporation | Side-channel attack detection using hardware performance counters |
US10916259B2 (en) | 2019-01-06 | 2021-02-09 | 3D Signals Ltd. | Extracting overall equipment effectiveness by analysis of a vibro-acoustic signal |
US10462177B1 (en) | 2019-02-06 | 2019-10-29 | Xm Cyber Ltd. | Taking privilege escalation into account in penetration testing campaigns |
US11348023B2 (en) | 2019-02-21 | 2022-05-31 | Cisco Technology, Inc. | Identifying locations and causes of network faults |
US11283827B2 (en) | 2019-02-28 | 2022-03-22 | Xm Cyber Ltd. | Lateral movement strategy during penetration testing of a networked system |
WO2020180300A1 (en) * | 2019-03-05 | 2020-09-10 | Mentor Graphics Corporation | Machine learning-based anomaly detections for embedded software applications |
US11036852B2 (en) * | 2019-03-14 | 2021-06-15 | LGS Innovations LLC | System and method for software diversification |
US11206281B2 (en) | 2019-05-08 | 2021-12-21 | Xm Cyber Ltd. | Validating the use of user credentials in a penetration testing campaign |
EP3739513A1 (en) | 2019-05-13 | 2020-11-18 | Fujitsu Limited | Surface defect identification method and apparatus |
US20200372183A1 (en) * | 2019-05-21 | 2020-11-26 | Hewlett Packard Enterprise Development Lp | Digitally Signing Software Packages With Hash Values |
TR201908288A2 (tr) * | 2019-05-30 | 2019-06-21 | Turkcell Teknoloji Arastirma Ve Gelistirme Anonim Sirketi | Anomali̇ i̇çeren durumlar i̇çi̇n düzeltme notu oluşturulmasini sağlayan bi̇r si̇stem |
US11074345B2 (en) | 2019-05-30 | 2021-07-27 | Ut-Battelle, Llc | Rootkit detection system |
US11914703B2 (en) * | 2019-07-03 | 2024-02-27 | Nxp B.V. | Method and data processing system for detecting a malicious component on an integrated circuit |
US10637883B1 (en) | 2019-07-04 | 2020-04-28 | Xm Cyber Ltd. | Systems and methods for determining optimal remediation recommendations in penetration testing |
US11561959B2 (en) | 2019-07-15 | 2023-01-24 | Huawei Cloud Computing Technologies Co., Ltd. | Method and system for automatic anomaly detection in data |
US10880326B1 (en) | 2019-08-01 | 2020-12-29 | Xm Cyber Ltd. | Systems and methods for determining an opportunity for node poisoning in a penetration testing campaign, based on actual network traffic |
US11483326B2 (en) * | 2019-08-30 | 2022-10-25 | Palo Alto Networks, Inc. | Context informed abnormal endpoint behavior detection |
US11533329B2 (en) | 2019-09-27 | 2022-12-20 | Keysight Technologies, Inc. | Methods, systems and computer readable media for threat simulation and threat mitigation recommendations |
US11005878B1 (en) | 2019-11-07 | 2021-05-11 | Xm Cyber Ltd. | Cooperation between reconnaissance agents in penetration testing campaigns |
CN111178435B (zh) * | 2019-12-30 | 2022-03-22 | 山东英信计算机技术有限公司 | 一种分类模型训练方法、系统、电子设备及存储介质 |
US11575700B2 (en) | 2020-01-27 | 2023-02-07 | Xm Cyber Ltd. | Systems and methods for displaying an attack vector available to an attacker of a networked system |
US10846407B1 (en) * | 2020-02-11 | 2020-11-24 | Calypso Ai Corp | Machine learning model robustness characterization |
US11582256B2 (en) | 2020-04-06 | 2023-02-14 | Xm Cyber Ltd. | Determining multiple ways for compromising a network node in a penetration testing campaign |
US10979315B1 (en) * | 2020-07-04 | 2021-04-13 | Auctioniq, Llc | Machine learning feedback loop for maximizing efficiency in transaction flow |
US11861513B2 (en) | 2020-07-13 | 2024-01-02 | International Business Machines Corporation | Methods for detecting and monitoring bias in a software application using artificial intelligence and devices thereof |
US11616798B2 (en) * | 2020-08-21 | 2023-03-28 | Palo Alto Networks, Inc. | Malicious traffic detection with anomaly detection modeling |
KR102400971B1 (ko) * | 2020-08-24 | 2022-05-23 | 울산과학기술원 | 텐서를 메모리 노드들에 배치하는 방법 및 상기 방법을 수행하는 장치 |
KR102253362B1 (ko) * | 2020-09-22 | 2021-05-20 | 쿠팡 주식회사 | 전자 장치 및 이를 이용한 정보 제공 방법 |
RU2757265C1 (ru) * | 2020-09-24 | 2021-10-12 | Акционерное общество "Лаборатория Касперского" | Система и способ оценки приложения на вредоносность |
US11886587B2 (en) | 2020-10-13 | 2024-01-30 | Kyndryl, Inc | Malware detection by distributed telemetry data analysis |
US11392115B2 (en) | 2020-10-22 | 2022-07-19 | Cisco Technology, Inc. | Zero-trust architecture for industrial automation |
US11775641B2 (en) * | 2020-11-06 | 2023-10-03 | Vmware, Inc. | Systems and methods for classifying malware based on feature reuse |
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 |
US11157614B1 (en) * | 2021-01-27 | 2021-10-26 | Malwarebytes Inc. | Prevention of false positive detection of malware |
US11934531B2 (en) | 2021-02-25 | 2024-03-19 | Bank Of America Corporation | System and method for automatically identifying software vulnerabilities using named entity recognition |
US11977626B2 (en) | 2021-03-09 | 2024-05-07 | Nec Corporation | Securing machine learning models against adversarial samples through backdoor misclassification |
US11640389B2 (en) | 2021-07-23 | 2023-05-02 | Bank Of America Corporation | Hash-based identification of data corruption issues in time-series data |
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 |
US11765604B2 (en) | 2021-12-16 | 2023-09-19 | T-Mobile Usa, Inc. | Providing configuration updates to wireless telecommunication networks |
EP4235469A1 (en) | 2022-02-25 | 2023-08-30 | Commissariat À L'Énergie Atomique Et Aux Énergies Alternatives | A system for detecting malwares in a resources constrained device |
US20230315848A1 (en) * | 2022-03-29 | 2023-10-05 | Acronis International Gmbh | Forensic analysis on consistent system footprints |
US12019746B1 (en) * | 2022-06-28 | 2024-06-25 | Ut-Battelle, Llc | Adaptive malware binary rewriting |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294768A1 (en) * | 2006-01-31 | 2007-12-20 | Deutsche Telekom Ag | Method and system for detecting malicious behavioral patterns in a computer, using machine learning |
US20090164396A1 (en) * | 2006-05-30 | 2009-06-25 | Yuan-Lung Chang | Network analyzer |
US20090300765A1 (en) * | 2008-05-27 | 2009-12-03 | Deutsche Telekom Ag | Unknown malcode detection using classifiers with optimal training sets |
US20110041179A1 (en) * | 2009-08-11 | 2011-02-17 | F-Secure Oyj | Malware detection |
US20110247071A1 (en) * | 2010-04-06 | 2011-10-06 | Triumfant, Inc. | Automated Malware Detection and Remediation |
US8229726B1 (en) * | 2006-10-05 | 2012-07-24 | Oracle America, Inc. | System for application level analysis of hardware simulations |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110238855A1 (en) | 2000-09-25 | 2011-09-29 | Yevgeny Korsunsky | Processing data flows with a data flow processor |
US20030070087A1 (en) | 2001-10-05 | 2003-04-10 | Dmitry Gryaznov | System and method for automatic updating of multiple anti-virus programs |
US7590880B1 (en) | 2004-09-13 | 2009-09-15 | National Semiconductor Corporation | Circuitry and method for detecting and protecting against over-clocking attacks |
CA2626993A1 (en) | 2005-10-25 | 2007-05-03 | 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 |
US7861305B2 (en) | 2007-02-07 | 2010-12-28 | International Business Machines Corporation | Method and system for hardware based program flow monitor for embedded software |
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 |
US8661536B2 (en) | 2010-03-17 | 2014-02-25 | Microsoft Corporation | Side channel attack analysis |
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 |
CN105229612B (zh) | 2013-03-18 | 2018-06-26 | 纽约市哥伦比亚大学理事会 | 使用基于硬件的微体系结构数据的异常程序执行的检测 |
-
2014
- 2014-03-14 CN CN201480028753.1A patent/CN105247532B/zh active Active
- 2014-03-14 WO PCT/US2014/027375 patent/WO2014152469A1/en active Application Filing
- 2014-03-14 KR KR1020157027779A patent/KR101794116B1/ko active IP Right Grant
- 2014-03-14 US US14/778,043 patent/US9996694B2/en active Active
-
2018
- 2018-05-17 US US15/982,229 patent/US20180268142A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294768A1 (en) * | 2006-01-31 | 2007-12-20 | Deutsche Telekom Ag | Method and system for detecting malicious behavioral patterns in a computer, using machine learning |
US20090164396A1 (en) * | 2006-05-30 | 2009-06-25 | Yuan-Lung Chang | Network analyzer |
US7801837B2 (en) * | 2006-05-30 | 2010-09-21 | Robert Hungchin Lo | Network analyzer |
US8229726B1 (en) * | 2006-10-05 | 2012-07-24 | Oracle America, Inc. | System for application level analysis of hardware simulations |
US20090300765A1 (en) * | 2008-05-27 | 2009-12-03 | Deutsche Telekom Ag | Unknown malcode detection using classifiers with optimal training sets |
US20110041179A1 (en) * | 2009-08-11 | 2011-02-17 | F-Secure Oyj | Malware detection |
US20110247071A1 (en) * | 2010-04-06 | 2011-10-06 | Triumfant, Inc. | Automated Malware Detection and Remediation |
Non-Patent Citations (1)
Title |
---|
张光辉等: "《区域地下水功能可持续性评价理论与方法研究》", 31 December 2008 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107545194A (zh) * | 2017-08-01 | 2018-01-05 | 华南理工大学 | 片上网络中应对硬件木马的检测及防御方法 |
CN108629181A (zh) * | 2018-05-11 | 2018-10-09 | 湖南大学 | 基于行为的Cache攻击检测方法 |
CN109190703A (zh) * | 2018-09-05 | 2019-01-11 | 辽宁大学 | 基于dnn的多态蠕虫特征码自动提取方法 |
CN109190703B (zh) * | 2018-09-05 | 2021-08-24 | 辽宁大学 | 基于dnn的多态蠕虫特征码自动提取方法 |
RU2739865C2 (ru) * | 2018-12-28 | 2020-12-29 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносного файла |
TWI687783B (zh) * | 2019-06-17 | 2020-03-11 | 臺灣塑膠工業股份有限公司 | 設備異常偵測方法及系統 |
CN111259948A (zh) * | 2020-01-13 | 2020-06-09 | 中孚安全技术有限公司 | 一种基于融合机器学习算法的用户安全行为基线分析方法 |
CN114978568A (zh) * | 2021-02-23 | 2022-08-30 | 迈络思科技有限公司 | 使用机器学习进行数据中心管理 |
Also Published As
Publication number | Publication date |
---|---|
CN105247532B (zh) | 2019-05-31 |
KR20160008509A (ko) | 2016-01-22 |
US9996694B2 (en) | 2018-06-12 |
KR101794116B1 (ko) | 2017-11-06 |
WO2014152469A1 (en) | 2014-09-25 |
US20160275289A1 (en) | 2016-09-22 |
US20180268142A1 (en) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105247532A (zh) | 使用硬件特征的无监督的基于异常的恶意软件检测 | |
Poudyal et al. | A framework for analyzing ransomware using machine learning | |
KR102160659B1 (ko) | 하드웨어-기반 마이크로-아키텍처 데이터를 이용한 이상 프로그램 실행의 검출 | |
Canfora et al. | An hmm and structural entropy based detector for android malware: An empirical study | |
Demme et al. | On the feasibility of online malware detection with performance counters | |
Hasan et al. | RansHunt: A support vector machines based ransomware analysis framework with integrated feature set | |
Khasawneh et al. | EnsembleHMD: Accurate hardware malware detectors with specialized ensemble classifiers | |
Aslan et al. | Using a subtractive center behavioral model to detect malware | |
Bala et al. | DroidEnemy: battling adversarial example attacks for Android malware detection | |
Poudyal et al. | Malware analytics: Review of data mining, machine learning and big data perspectives | |
Wang et al. | Enabling micro ai for securing edge devices at hardware level | |
Amer et al. | Using machine learning to identify Android malware relying on API calling sequences and permissions | |
Raymond et al. | Investigation of Android malware using deep learning approach | |
Bragen | Malware detection through opcode sequence analysis using machine learning | |
Kumar et al. | A comprehensive survey on hardware-assisted malware analysis and primitive techniques | |
Kadiyala et al. | LAMBDA: Lightweight assessment of malware for emBeddeD architectures | |
Garcia-Cervigon et al. | Browser function calls modeling for banking malware detection | |
Jawhar | A Survey on Malware Attacks Analysis and Detected | |
Samantray et al. | A theoretical feature-wise study of malware detection techniques | |
AlMasri et al. | Detecting Spyware in Android Devices Using Random Forest | |
Nugraha | Malware classification using machine learning algorithm | |
Parhizkari et al. | Timely Identification of Victim Addresses in DeFi Attacks | |
Ibrahim et al. | Guarding android: A comprehensive review of intrusion detection techniques for smartphones | |
Aljehani et al. | Detecting A Crypto-mining Malware By Deep Learning Analysis | |
Agnihotri | A Study of Different Approaches for Malware Detection in Smartphones |
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 |