一种检测恶意软件的方法与流程

文档序号:26791757发布日期:2021-09-28 23:37阅读:122来源:国知局
一种检测恶意软件的方法与流程

1.本发明涉及恶意软件检测,更具体地说,涉及识别用于更有效的恶意软件检测的相关数据。


背景技术:

2.恶意软件主要包括破坏性电脑病毒,蠕虫病毒,木马后门,漏洞利用程序,广告钓鱼代码等,这些恶意软件可以与多种规避技术和安全漏洞相结合,突破现有传统防御系统的监测,对用户利益产生极大破坏。恶意软件检测系统的目的就是要及时发现混杂于正常文件中的恶意软件,并尽可能在其产生破坏性影响前自主采取措施,并且及时通知用户。
3.目前恶意软件检测方法包括静态文件分析检测和动态行为分析检测两种。现有的恶意软件静态检测技术,主要依靠人工生成的特征码库和规则库进行匹配,即使较先进的启发式查毒检测技术,也需要依靠人工维护的专家知识库来协助判断辨识。然而在当前互联网爆炸式扩展的情况下,互联网中成千上万的主机和用户都面临各类变种,多态,加壳,加混淆等恶意软件的威胁。如何能迅速应对变种病毒和恶意软件攻击,对海量并且种类繁多的恶意软件进行自动化的处理分析,提高恶意软件的检出率,降低误报率,成为了当前恶意软件检测手段的主要难题。
4.基于机器学习的检测方法不依赖特征码库和专家知识库,利用经过训练的模型快速自动化的判别辨识恶意软件,并能依靠进一步训练的模型对恶意软件进行分类,具有较好的研究和应用前景。机器学习恶意软件检测方法主要依赖两大步骤,其一是选取合适足量的样本,并对其中的特征进行提取,提取后的数值和非数值特征需要进行筛选和清洗,剔除缺失,错误项,对数值特征做标准化和归一化处理,对非数值特征则进行特殊编码,一般进行单一热点(one

hot)编码,转化为计算机能识别处理的数值形式,再将所有提取的特征组合起来形成特征矩阵。其二是需要选择合适的机器学习建模方式,对于当前海量恶意软件带来的问题,传统的逻辑回归,朴素贝叶斯,支持向量机,决策树等方法均因为训练速度慢,消耗资源巨大,模型评估效果较差等因素不适用于恶意软件检测和辨识。


技术实现要素:

5.一种检测恶意软件的方法,其特征在于,包括:检测与对文件执行操作的进程相关联的事件;确定与该进程相关联的事件是否与排除列表中的条目匹配;响应于确定与该进程相关联的事件不存在于排除列表,在事件日志中记录描述与进程关联的事件的事件数据并将事件数据发送到服务器;从服务器接收进程是否对应于恶意软件的指示;并且响应于接收到进程不对应于恶意软件的指示,基于记录的事件数据更新排除列表,更新所述排除列表包括:通过对具有特定预定义特征的文件执行的过程维护与历史操作相对应的记录事件的计数;并且响应超过阈值的计数,向排除列表添加条目以排除对具有特定预定义特征的文件的进程的未来操作。
6.进一步地,所述排除列表包括排除与可信进程相关联的事件的条目,并且确定所
述事件是否与所述排除列表中的条目匹配包括:确定所述进程的标识符与所述可信进程的标识符匹配。
7.进一步地,所述排除列表包括排除与对具有特定特征的文件进行操作的可信进程相关联的事件的条目,并且确定所述事件是否与所述排除列表中的条目匹配包括:确定进程的标识符与可信进程的标识符相匹配,并且被操作的文件具有特定的文件特征。
8.进一步地,所述特定文件特征是文件类型和文件目录之一。
9.进一步地,在第一时间段之后周期性地执行排除列表的更新,该方法还包括:将描述在大于第一时间段的第二时间段内发生的附加事件的附加事件数据记录在事件日志中;并且从事件日志中清除在时间大于第一时间段的第二时间段内发生的事件数据。
10.进一步地,包括:检测与对第二文件执行第二操作的第二进程相关联的第二事件;确定与第二进程相关联的第二事件是否与排除列表中的条目匹配;响应于确定排除列表中不存在与第二进程相关联的第二事件,在事件日志中记录与第二进程相关联的第二事件数据;接收第二进程是否对应于恶意软件的指示;并且响应于接收到第二进程对应于恶意软件的指示,修复第二进程。
11.一种检测恶意软件的系统,其特征在于,该系统包括:
12.服务器,服务器是被配置为经由网络存储、接收和传输数据到客户端设备的计算机系统,服务器包括恶意软件检测模块,恶意软件检测模块分析接收到的事件数据以确定进程是否对应于恶意软件;
13.网络,其代表服务器和客户端之间的通信路径;
14.和客户端,其包括一个或多个能够处理数据以及通过网络发送和接收数据的计算设备,其上存储反恶意软件应用程序,反恶意软件应用程序检测并补救恶意软件,反恶意软件应用程序包括端点代理,端点代理包括过滤器模块、报告器模块、学习模块、备份模块、恢复模块、日志存储和排除存储的监控模块。
15.该方法和系统有利地实现了恶意软件的有效检测和补救。
附图说明
16.图1是示出了本发明的恶意软件检测方法的流程图。
具体实施方式
17.下面将结合附图对本发明的具体实施方式进行详细描述,以使本领域普通技术人员可以容易地实现本发明。
18.系统环境包括服务器、网络和客户端。服务器是被配置为经由网络存储、接收和传输数据到客户端设备的计算机系统。服务器可以包括单一计算系统,例如单个计算机,或计算系统网络,例如数据中心或分布式计算系统。服务器从客户端设备接收事件数据并且基于接收到的事件数据检测在客户端上执行的进程是否对应于恶意软件。事件数据是与事件相关联的数据。事件是进程对文件执行的操作。事件数据可以包括识别执行事件的进程的信息、识别正在操作的文件的信息以及识别正在执行的操作类型的信息。
19.服务器包括恶意软件检测模块。恶意软件检测模块分析接收到的事件数据以确定进程是否对应于恶意软件,恶意软件可以包括勒索软件以及其他类型的恶意软件。恶意软
件检测模块基于指示恶意软件的行为来确定该进程是恶意软件。指示恶意软件的行为的示例包括以下:删除文件、将代码从一个进程注入另一进程、在注册表位置修改或创建密钥、访问操作系统的受限位置以及删除系统恢复文件。其他因素,例如执行文件加密的进程、进程在一个时间窗口内加密的文件数量以及进程的年龄等,可用于确定进程是否为恶意软件。如果服务器检测到指示恶意软件的事件模式,则服务器向客户端发送标识与检测相关的进程、文件和事件的指示。
20.网络代表服务器和客户端之间的通信路径。网络可以是因特网,网络还可以利用不一定是因特网的一部分的专用或私有通信链路。网络可以使用标准通信技术和/或协议。因此,网络可以包括使用诸如以太网、wi

fi(802.11)、综合业务数字网络(isdn)、数字用户线(dsl)、异步传输模式(atm)等技术的链路。类似地,网络上使用的网络协议可以包括多协议标签交换(mpls)、传输控制协议/互联网协议(tcp/ip)、超文本传输协议(http)、简单邮件传输协议(smtp)、文件传输协议(ftp)等。一些链路使用移动网络技术,包括通用分组无线电服务(gprs)、增强型数据gsm环境(edge)、长期演进(lte)、码分多址2000(cdma2000)和/或宽带cdma(wcdma)。通过网络交换的数据可以使用包括超文本标记语言(html)、可扩展标记语言(xml)、无线接入协改(wap)、短消息服务(sms)等的技术和/或格式来表示。此外,所有或部分链接可以使用传统加密技术进行加密,例如安全套接字层(ssl)、安全http和/或虚拟专用网络(vpn)。
21.客户端包括一个或多个能够处理数据以及通过网络发送和接收数据的计算设备。例如,客户端设备可以是台式计算机、膝上型计算机、智能电话、平板计算设备、物联网设备或任何其他具有计算和数据通信能力的设备。客户端包括用于操纵和处理数据的处理器,以及用于存储与各种应用相关联的数据和程序指令的存储介质。存储介质可以包括易失性存储器(例如,随机存取存储器)和非易失性存储器,例如硬盘、闪存、闪存驱动器、外部存储器存储设备、usb驱动器、盘等。除了存储程序指令之外,存储介质还存储与操作系统、反恶意软件应用程序和用户应用程序的操作相关联的各种数据。
22.存储介质包括非暂时性计算机可读存储介质。各种可执行程序(例如,操作系统、反恶意软件应用程序和用户应用程序)均体现为存储到非暂时性计算机可读存储介质的计算机可执行指令。当由处理器执行时,指令使客户端执行归属于这里描述的程序的功能。
23.操作系统是管理客户端的计算机硬件资源并向用户应用程序提供公共服务的专用程序。例如,计算机的操作系统可以管理处理器、存储介质或其他未示出的组件例如,图形适配器、音频适配器、网络连接、磁盘驱动器和usb插槽。手机的操作系统可以管理处理器、存储介质、显示屏、键盘、拨号器、无线网络连接等。操作系统的示例包括windows、mac os、ios、linux、ubuntu、unix和android。
24.用户应用程序可以包括用于为了用户的利益而执行一组特定的功能、任务或活动的应用程序。用户应用程序的示例可以包括文字处理器、电子表格应用程序和网络浏览器。在一些情况下,用户应用程序可以是不知情地隐藏在用户应用程序中的恶意软件的来源。当用户应用程序被安装时,恶意软件可能感染客户端。
25.反恶意软件应用程序检测并补救恶意软件,其可以包括勒索软件以及其他类型的恶意软件。反恶意软件应用程序可以防止新的恶意软件安装在客户端上或者移除或禁用已经存在于客户端上的现有恶意软件。反恶意软件应用程序可以进一步经由网络访问中央服
务器以便下载指定反恶意软件应用程序试图检测的已知恶意软件的特征或行为的新恶意软件定义文件。
26.反恶意软件应用程序包括端点代理,其被配置为监控和过滤事件以检测和补救恶意软件。当检测被触发时,端点代理补救恶意软件。端点代理可以将修改后的文件回滚到较早版本(在文件被恶意软件进程编辑之前)以消除恶意软件的损害。端点代理可以执行其他类型的补救,例如终止进程和隔离源文件。隔离文件将源隔离,使其不再能够影响客户端的操作。隔离可以包括删除源文件或将其移动到存储器的特殊区域。
27.端点代理包括具有过滤器模块、报告器模块、学习模块、备份模块、恢复模块、日志存储和排除存储的监控模块。
28.监控模块检测与对文件执行操作的进程相关联的事件,并将与不可信事件(事件数据)相关联的信息存储到日志存储器。进程是计算机程序或其组件的实例。事件可能是文件系统、内存或网络活动。文件系统活动对应于诸如创建文件、删除文件、打开文件进行编辑、写入文件、保存和关闭文件或移动文件等操作。内存活动可能包括线程和进程的操作、代码注入或用户帐户控制(uac)提升。网络活动可能包括tcp/udp流量的传输或接收、本地dns解析器的执行或连接到特定ip地址或域。监控模块包括过滤器模块,用于识别要用于检测恶意软件的不可信事件。一旦识别出不可信事件,监控模块将不可信事件的事件数据保存(记录)到日志存储器。通过仅记录不可信事件的事件数据而不是所有检测到的事件,存储到日志存储器的信息量可以是减少。
29.过滤器模块确定检测到的事件是否与排除列表上的条目匹配。排除列表存储在排除存储器中。排除列表是一组条目,每个条目指定特定过滤参数或过滤参数的组合。过滤参数可以基于进程、文件特征或其组合来识别事件类型。标识进程的过滤参数可以是进程标识符(id)或可执行文件的位置(例如,目录)。识别文件特征的过滤参数可以是文件类型(例如,文件扩展名)、文件的位置(例如,目录或文件路径)或其组合。如果排除列表上的条目在没有进一步参数的情况下识别可信进程,则过滤器模块操作以过滤与该进程相关联的所有事件,包括与该进程的线程相关联的事件。如果条目在没有进一步参数的情况下识别文件特性,则过滤器模块操作以通过对具有指定文件特性的文件进行操作的任何进程(例如,对特定指定类型的文件的操作、对存储到特定文件的操作)来过滤所有事件。特定指定的文件位置,或其组合)。如果条目标识进程和文件特性(例如,文件类型、位置或其组合),则过滤器模块操作以过滤与所标识的进程对具有所标识的文件特性的文件的动作相对应的所有事件。
30.过滤器模块通过从记录和报告给服务器的事件中排除这些事件来过滤与排除列表中的条目匹配的检测到的事件。如果检测到的事件与排除列表中的条目匹配,则可以将其排除在监视之外,因为该事件不代表恶意软件。此类事件在本文中称为“可信事件”。如果检测到的事件与排除列表上的事件不匹配,则它由监控模块监控并且可以被存储到日志存储器并且报告给服务器以确定它是否可以指示恶意软件。此类事件在本文中称为“不可信事件”。
31.报告器模块向服务器发送不可信事件的报告以检测恶意软件,并响应于报告从服务器接收恶意软件检测的指示。报告器模块可以在事件发生时实时发送单个报告,该报告包括针对各个不可信事件的事件数据。或者,报告器模块可以在固定时间段内或在发生的
多个不可信事件上聚合事件数据,并且针对多个事件向服务器发送一批事件数据的报告。报告器模块还响应于报告接收恶意软件检测的指示。通过仅将不可信事件发送到服务器,可以减少发送到服务器进行恶意软件检测的信息量,从而提高端点代理和服务器的性能和带宽。
32.排除存储器存储排除列表。最初,排除列表可以包括手动预定义的硬编码排除。这些硬编码排除项可以包括与操作系统活动相关联的已知系统事件和与其他已知可信进程和/或与恶意软件无关的文件相关联的事件的条目。随着下述学习模块学习到新的可信事件,可以随着时间更新排除列表。排除列表上的条目可以包括特定进程的排除、与特定文件特性相关联的排除以及进程和文件特性的组合的排除。
33.学习模块基于随后被确定为不对应于恶意软件的先前不可信事件的记录事件数据更新排除列表。学习模块通过在记录的事件数据中发现与恶意软件不对应的模式来识别排除。对于在没有检测到恶意软件的时间段内发生的一组记录事件,学习模块识别不同事件类型的各自计数,每个计数对应于进程和文件特征的唯一组合。例如,学习模块可以计算与在特定文件类型的文件上执行的特定进程(例如,在.docx文件上执行的winword进程)或在文件中的文件上执行的特定进程相对应的事件的数量。特定的文件位置(例如,对“sheets”目录中的文件执行的excel过程)。当特定事件类型的计数器超过阈值时,可以将该事件类型作为条目添加到排除列表中,作为指定与该事件类型相关联的进程和文件特征的条目。
34.在一些情况下,即使事件类型的计数超过阈值,学习模块也可以做出例外,其中它跳过将特定事件类型添加到排除列表。例如,如果观察到与事件类型相关联的进程正在执行可疑活动,则可以从排除列表中省略该事件类型。
35.学习模块可以被配置为根据第一时间段(例如,每24小时)周期性地更新排除列表。在每次更新中,学习模块可以从在第二时间段(例如,48小时窗口)内发生的日志存储中的一组记录事件中学习新的排除。第一时间段可以比第二时间段短,使得每个事件可以促成多个不同的更新。第二时间段可以对应于记录的事件在被清除或覆盖之前被保存在日志存储器中的时间量。在第一时间段内,服务器可以向端点代理指示对于一些报告的事件(也记录到日志存储)没有检测到恶意软件。一旦第一时间段过去,学习模块通过处理在最后第二时间段期间发生的不对应于恶意软件的记录事件来更新排除列表。
36.学习模块可以使用来自其他客户端的端点代理的信息来更新排除列表。例如,在一些情况下,服务器可以确定不同客户端在报告的事件中具有共同模式并且在不同客户端的端点代理之间共享信息(例如,排除列表)。例如,如果客户端a报告与客户端b先前报告的事件相似的事件,则客户端a可以通过使用客户端b的先前更新的排除列表来更有效地更新其排除列表。服务器可以识别客户端之间报告的信息中的共同模式并且在客户端的不同端点代理之间共享信息以更有效地更新排除列表。
37.备份模块在文件被不可信进程编辑之前保存原始文件的副本。备份模块从监控模块接收通知,该通知指示文件已被不在排除列表上的不可信进程打开以进行编辑。响应于接收到通知,备份模块在文件被监控进程编辑之前将原始文件的副本保存到日志存储。
38.备份模块可以被配置为调用某些异常以便在某些预定义条件发生时不保存原始文件的副本。例如,当备份模块确定原始文件的大小达到或超过阈值备份文件大小时,备份
模块不保存原始文件的副本。备份模块在确定被监控进程创建了原始文件时不保存原始文件的副本。原始文件的已保存副本会保留指定的时间(例如48小时)。在指定时间支持回滚(例如,客户端可以在检测到恶意软件事件后最多48小时回滚对文件的修改)。
39.当对文件的改变被确定为由恶意软件引起时,恢复模块将文件恢复到原始文件的保存副本。恢复模块可以从服务器接收指示进程对应于恶意软件的通知。恢复模块可以通过识别与进程相关联的日志存储中记录的事件以确定进程修改了哪些文件来识别用于回滚的文件。恢复模块然后回滚由进程编辑的识别文件(例如,在被进程修改之前恢复原始文件的保存副本)。或者,恢复模块可以从服务器接收指令以回滚由对应于恶意软件的进程编辑的文件,并且恢复模块可以在文件被恶意软件编辑之前将文件恢复到原始文件的保存副本。与恶意软件对应的进程。恢复模块可以清除日志存储器中记录的事件的一部分并且仅保留与回滚相关的记录事件。
40.监视模块检测与对文件执行操作的进程相关联的事件。过滤器模块确定事件是否与排除列表中的条目匹配。响应于确定排除列表中不存在事件,监控模块将事件数据记录在事件日志(例如,日志存储)中,并且报告器模块将一个或多个事件发送到服务器。端点代理从服务器接收该进程是否对应于恶意软件的指示。响应于接收到该过程不对应于恶意软件的指示,学习模块基于记录的事件更新排除列表。学习模块可以在第一预定时间段之后通过识别在第二预定时间段期间记录的事件中不对应于恶意软件的排除项来更新排除项列表。学习模块可以对特定进程的记录事件数据对具有特定特征(例如文件类型或目录)的文件进行操作的次数进行计数。响应于记录的事件的计数达到或超过事件的阈值数量,如果进程未表现出与恶意软件相关联的已知可疑行为,则学习模块向排除列表添加条目。
41.监视模块检测与对文件执行操作的进程相关联的事件。过滤器模块确定事件是否与排除列表中的条目匹配。响应于确定排除列表中不存在该事件,监视模块监视过程的操作。响应于检测到原始文件被编辑过程打开,备份模块在原始文件被过程编辑之前保存原始文件的副本。例如,监视模块可以检测来自与打开和修改文件相关联的进程的某些应用程序编程接口(api)调用。监控模块在api调用执行之前拦截api调用,备份模块保存原始文件作为进程编辑文件之前的备份。端点代理在第一时间段之后从服务器接收该进程是否对应于恶意软件的指示。响应于接收到进程对应于恶意软件的指示,恢复模块将进程编辑的文件恢复到原始文件被进程编辑之前的保存副本。恢复模块可以通过使用日志存储中的记录事件来识别用于回滚的文件。恢复模块可以从日志存储中移除不用于回滚目的的记录数据。
42.上述系统和方法有利地实现了恶意软件的有效检测和补救。通过仅记录和发送不可信事件,端点代理仅有效地存储和发送与可疑进程相关联的事件数据而不是所有检测到的事件数据。通过仅存储由与不可信事件相关联的可疑进程编辑的文件,与存储所有修改文件的传统方法相比,可以存储更多数量和/或大小的文件以用于回滚目的。通过更新用于过滤事件的排除列表,端点代理不断改进其恶意软件检测和补救的效率。
43.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1