掌桥专利:专业的专利平台
掌桥专利
首页

在内核模式下对隐写术的实时检测和防护

文献发布时间:2024-04-18 19:58:26


在内核模式下对隐写术的实时检测和防护

本申请是申请号为201880049047.3,申请日为2018年5月30日,发明名称为“在内核模式下对恶意软件和隐写术的实时检测和防护”的发明专利申请的分案申请。

相关申请的交叉引用

本申请要求于2017年5月30日提交的美国临时申请第62/512,659号的权益,其全部内容通过引用并入。

技术领域

本公开内容总体上涉及恶意软件的检测,并且特别涉及在内核模式下对恶意软件和隐写术的实时检测和防护。

背景技术

恶意软件是指可以在无需所有者知晓或许可的情况下感染计算机、平板电脑或设备的恶意计算机软件程序。隐写术是一种通过恶意软件感染设备和网络的方法。

恶意软件可以包括病毒、蠕虫、木马、僵尸网络、间谍软件和广告软件。病毒在附着至可执行程序之后自我复制。蠕虫跨网络自我复制以快速感染大量设备。木马将其自身伪装成合法软件并且试图窃取用户的标识、口令和其他个人信息。僵尸网络是被远程控制的受感染的设备的组。各个机器人(设备)可以被命令发送SPAM电子邮件或参与拒绝服务攻击。间谍软件被设计为捕获键击、信用卡号码和其他个人信息。广告软件感染设备并下载和显示不需要的广告。

传统的恶意软件防护工具可以试图检测签名并隔离和修复,或移除恶意软件。然而,恶意软件程序的数量急剧增加,并且签名通常仅针对已知恶意软件创建。因此,传统的基于签名的方法通常不能识别或检测未知恶意软件。

此外,基于使用规则的运行时启发式扫描的传统方法可能生成许多误报和漏报。基于用于在虚拟机中执行可疑文件并观察恶意行为的沙盒化的其他传统方法通常不能检测能够确定其是否在沙盒(虚拟机或容器)中并逃避检测的恶意软件。最后,基于静态代码分析的传统方法也不能可靠地检测恶意软件。

附图说明

所公开的实施方式具有优点和特征,上述优点和特征将根据具体实施方式、所附权利要求书和附图(或绘图)而变得更加明显。附图的简要介绍如下。

图1示出了根据实施方式的用于在内核模式下对恶意软件和隐写术的实时检测和防护的系统的示例框图。

图2示出了根据实施方式的针对在平台上以用户模式运行的应用程序的对恶意软件的实时检测和防护的示例框图。

图3示出了根据实施方式的用于对恶意软件的实时检测和防护的示例过滤管理器和微过滤器驱动程序。

图4示出了根据实施方式的用于对恶意软件的实时检测和防护的卷影服务(VSS)的示例部件。

图5示出了根据实施方式的蒙特卡洛π近似的示例数据点。

图6示出了根据实施方式的用于对恶意软件的实时检测和防护的示例过程。

图7示出了根据实施方式的用于在内核模式下对隐写术的实时检测和防护的示例便携式可执行(PE)文件的部件。

图8示出了根据实施方式的用于在内核模式下对隐写术的实时检测和防护的示例过程。

图9是示出能够从机器可读介质中读取指令并且在处理器或控制器中执行指令的示例机器的部件的框图。

具体实施方式

附图和以下描述仅通过说明的方式涉及优选实施方式。应当注意,根据以下讨论,本文中公开的结构和方法的替选实施方式将被容易认识到在不脱离所要求保护的原理的情况下可以采用的可行替选方案。

现在将详细参照若干实施方式,其示例在附图中示出。注意,在可行的情况下,类似或相似的附图标记可以在附图中使用并且可以指示类似或相似的功能。附图仅出于说明的目的描绘了所公开的系统(或方法)的实施方式。本领域技术人员根据以下描述将容易认识到,在不脱离在本文中描述的原理的情况下可以采用在本文中所示的结构和方法的替选实施方式。

引言

传统的安全产品可以包括行为分析和运行时启发法以通过寻找可疑应用程序接口(API)调用和动作来保护设备免受未知恶意软件的影响。恶意软件是指旨在损坏或禁用计算机和计算机系统的软件。恶意软件可以包括复杂的程序以通过创建多态性和变形恶意软件来规避来自安全产品的检测。多态性恶意软件通过使用突变引擎加密破坏性代码来进行突变,该突变引擎在不同的执行上生成新的“签名”。变形恶意软件动态地重构可执行代码以混淆恶意意图。为了规避检测,恶意软件可以添加冗余处理器操作码,例如推送、弹出、空操作和跳转指令以改变可执行文件的签名但不影响其功能性。

勒索软件是快速增长的恶意软件类别。勒索软件是一种类型的恶意软件,其感染计算机、平板电脑、设备或智能电话,目标是迫使用户“支付赎金”以重新获得对其设备或个人数据的访问。一些类型的勒索软件可以锁定用户设备或系统以阻止用户访问其设备或系统。其他类型的勒索软件可以使用加密软件来加密用户的个人数据,例如文字处理文档、照片、音乐、视频和电子邮件。在这样的情况下,用户可能被要求支付赎金以重新获得访问。隐写术是一种通过勒索软件感染设备和网络的方法。

隐写术是指将计算机文件、消息、图像或视频隐藏在另一计算机文件、消息、图像或视频内的做法。在数字隐写术中,电子通信可以包括传输层例如文档文件、图像文件、程序或协议内的隐写术编码。媒体文件由于其大小而可以用于隐写传输。例如,发送者可以从无害图像文件开始,并且调整每个第一百像素的颜色以对应于字母表中的字母。

用于检测勒索软件的传统方法可以依赖于检测恶意软件文件签名、运行时启发式扫描、沙盒化、静态代码分析等。然而,基于检测恶意软件文件签名的传统方法仅可以检测先前识别的恶意软件,并且可能无法针对诸如自变形勒索软件的新形式的勒索软件进行保护。基于运行时启发式扫描的传统方法可能使用一组规则而生成误报和漏报。基于沙盒的传统方法可以在虚拟机中执行可疑文件并且观察恶意行为。然而,勒索软件可能能够确定其是否在沙盒(虚拟机或容器)中并规避检测。基于静态代码分析的传统方法可以试图反汇编可执行代码并且创建解析树以识别可疑API调用。然而,基于静态代码分析的这样的传统方法不能可靠地检测勒索软件。

“打包的”恶意软件和“隐藏的恶意软件”通常未被检测,并且可以通过本地设备的防火墙、网络的防火墙和防病毒软件。通常使用诸如过滤和深度包检查、入侵保护系统和应用感知的传统防火墙特征。然而,传统的防火墙依赖于端口分配来识别恶意软件。因此,实际的应用类型与应用的防火墙假设之间的联系很弱。此外,由于强加密,当终端点是目的地而不是防火墙时,深度包检查具有有限的价值。

配置概述

借助于示例实施方式公开了用于在内核模式下对恶意软件的实时检测和防护的系统、方法和/或计算机程序产品(例如,存储能够由一个或更多个处理单元执行的指令的计算机可读存储介质)。计算机中的处理器通常可以在至少两种不同的模式下运行:用户模式和内核模式。通常,应用可以在用户模式下运行,而核心操作系统部件可以在内核模式下运行。

在一个实施方式中,检测由在用户模式下运行的进程发起的文件操作请求。对与检测到的文件操作请求相关联的文件缓冲区执行恶意软件检测分析以检测指示存在恶意软件的行为。响应于检测到指示存在恶意软件的行为,识别负责发起所检测到的文件操作请求的进程。在程序黑名单和程序白名单中的一个或更多个上执行针对所识别的进程的搜索以确定所识别的进程是否是受信进程。响应于确定所识别的进程不是受信进程,针对所识别的进程执行恶意软件补救动作。将描述恶意软件的信息发送到客户端设备。

所公开的实施方式执行对安全威胁的集成式实时检测以保护设备和网络免受恶意攻击和数据丢失。可以执行静态分析以使用一组测试来搜索潜在地被恶意软件感染的文件,以识别可疑程序指令来决定它是否是恶意软件。一旦检测到,唯一的字节序列就唯一地识别恶意软件而不需要执行并且将其与合法程序区分开。动态分析监视应用程序在执行期间的行为以确定其是否包含恶意软件。除了直接识别恶意软件之外,实时监视系统的状态。

由于现代恶意软件可能是多态性的或变形的,因此恶意软件可以规避使用文件签名的传统反病毒软件的检测。一个实施方式使用唯一的基于状态的机制来检测文件是否已经在没有授权的情况下被加密。识别负责的进程,并且将其与其他设备隔离。这避免了预先了解恶意软件的需要。数据状态的改变使得恶意软件的识别快速且可靠。集成式隐写术检测识别隐藏数据和恶意软件的存在以免在设备上执行。该系统在防火墙上在线执行以防止恶意软件和具有隐藏数据的文件进入网络。同时其用作综合静态分析、动态分析和系统状态改变的强项来更准确地检测恶意软件并且具有更少的误报和更少的漏报的集成式端至端系统工作。

通过示例实施方式的方式还公开了用于在内核模式下对隐写术的实时检测和防护的系统、方法和/或计算机程序产品(例如,存储可由一个或更多个处理单元执行的指令的计算机可读存储介质)。检测经由防火墙、操作系统或电子邮件系统的文件传输。确定文件的大小。从文件系统中检索文件的存储文件大小。将所确定的文件大小与文件的存储文件大小进行比较。响应于所确定的文件大小大于文件的存储文件大小,对文件执行隐写术检测分析。响应于指示文件中存在隐写术的隐写术检测分析,执行隐写术补救动作。将描述隐写术的信息发送到客户端设备。

所公开的实施方式可以通过集成分析的组合以识别未经授权的数据加密、数据渗漏、提权软件包(rootkit)安装和隐写术来保护许多类型的设备免受已知和未知的恶意软件和安全威胁。该系统和方法创建了端至端解决方案,以与现有技术相比更快、更准确地、以更少的计算开销和存储利用率来检测、隔离、分析和删除恶意软件。对文件系统的状态变化的实时分析能够在加密或删除用户数据之前提供实时保护。监视启发式、动态代码分析、绊网和蜜罐的创建的动态API有助于近实时地发现可疑行为。

所公开的实施方式主动地检查对系统配置(MFT、MBR、注册表和Windows任务管理器)的篡改,并且纠正恶意改变以确保用户未被锁定。MFT是指主文件表。MBR是指主引导记录。Windows注册表是分层数据库,其存储针对操作系统的低级配置设置以及针对应用程序、设备驱动程序、安全帐户管理器(SAM)和对系统性能计数器的访问的信息。任务管理器对程序的执行进行调度。集中且详细的日志记录系统使系统管理者能够管理其环境中的所有设备并且给各种数据分析提供基础。

所公开的实施方式的益处和优点包括在不知道勒索软件存在于何处的情况下连续地搜寻系统。作为该方法的一部分,该方法可以停用服务器,例如DNS服务器。结果是作为勒索软件的证据的隔离并检测状态变化的方法。多态勒索软件可以对容器中的载荷进行加密并且更改由传统方法无法检测到的签名。变形勒索软件通过向代码中注入无意义的机器指令来更改其签名。因此,代替搜索已知的恶意软件,所公开的实施方式寻找系统中的状态改变。其他优点和益处包括使用程序黑名单识别恶意软件的简便性。因此,所公开的实施方式需要低维护,因为所公开的系统及其相关的数据库或第三方威胁情报/服务提供商编译并更新程序黑名单。

所公开的实施方式可以执行静态分析(扫描磁盘)和实时分析。不使用恶意软件签名,但执行计算来检测文件是否加密。可以使用I/O请求数据包内的读缓冲区和写缓冲区两者。因此,不需要额外的内存分配或额外的读/写操作。没有需要额外的内存和计算能力的后处理分析。在另一实施方式中,所公开的方法和系统可以用于抵抗基于内存的攻击,其中文件被存储在内存中而不是磁盘上。文件分配的内存监视被执行并且可以扫描不接触磁盘的数据。与防火墙在线集成的设备上的统计分析的组合为网络和设备提供了强大的保护。

用于恶意软件和隐写术检测和预防的方法和系统

在一个实施方式中,用于在内核模式下对恶意软件的实时检测和防护的方法包括检测由以用户模式运行的进程发起的文件操作请求。对与检测到的文件操作请求相关联的文件缓冲区执行恶意软件检测分析以检测指示存在恶意软件的行为。响应于检测到指示存在恶意软件的行为,识别负责发起所检测到的文件操作请求的进程。对程序黑名单和程序白名单中的一个或更多个执行针对所识别的进程的搜索以确定所识别的进程是否是受信进程。响应于确定所识别的进程不是受信进程,针对所识别的进程执行恶意软件补救动作。将描述恶意软件的信息发送至客户端设备。

在一个实施方式中,文件操作请求的检测包括根据与文件操作请求对应的文件句柄来确定文件操作请求是否对应于所关注的操作。响应于确定文件操作请求对应于所关注的操作,文件操作请求被拦截。

在一个实施方式中,文件操作请求的拦截包括由过滤管理器确定是否微过滤器驱动程序被注册以拦截文件操作请求。响应于确定微过滤器驱动程序被注册以拦截文件操作请求,过滤管理器将文件操作请求发送至微过滤器驱动程序。

在一个实施方式中,恶意软件检测分析的执行包括执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定文件缓冲区内的数据是否被加密。

在一个实施方式中,确定所识别的进程不是受信进程还包括在程序黑名单上找到所识别的进程。执行恶意软件补救动作还包括:终止与所检测到的文件操作请求相关联的写操作,通过从内存中删除所检测到的文件操作请求来终止所检测到的文件操作请求,以及隔离与所识别的进程相关联的磁盘文件映像。

在一个实施方式中,响应于在程序白名单上找到所识别的进程,微过滤器驱动程序忽略所检测到的文件操作请求。

在一个实施方式中,确定所识别的进程是否是受信进程还包括:响应于在程序黑名单或程序白名单上没有找到该进程,将用于授权所识别的进程的请求发送至客户端设备。

在一个实施方式中,确定所识别的进程不是受信进程的步骤还包括:响应于将用于授权所识别的进程的请求发送至客户端设备,从客户端设备接收所识别的进程未被授权的消息。

在一个实施方式中,所识别的进程被添加到程序黑名单。

在一个实施方式中,响应于从客户端设备接收到所识别的进程被授权的消息,所识别的进程被添加到程序白名单。

在一个实施方式中,一种非暂态计算机可读介质存储下述指令,该指令在由至少一个处理器执行时使至少一个处理器检测由以用户模式运行的进程发起的文件操作请求。对与所检测到的文件操作请求相关联的文件缓冲区执行恶意软件检测分析以检测指示存在恶意软件的行为。响应于检测到指示存在恶意软件的行为,识别负责发起所检测到的文件操作请求的进程。对程序黑名单和程序白名单中的一个或更多个针对所识别的进程执行搜索以确定所识别的进程是否是受信进程。响应于确定所识别的进程不是受信进程,针对所识别的进程执行恶意软件补救动作。将描述恶意软件的信息发送至客户端设备。

在一个实施方式中,使至少一个处理器检测文件操作请求的指令还包括如下指令,该指令使至少一个处理器根据与文件操作请求对应的文件句柄来确定文件操作请求是否对应于所关注的操作。响应于确定文件操作请求对应于所关注的操作而拦截文件操作请求。

在一个实施方式中,使至少一个处理器拦截文件操作请求的指令还包括如下指令:该指令使至少一个处理器通过过滤管理器确定是否微过滤器驱动程序被注册以拦截文件操作请求。响应于确定微过滤器驱动程序被注册以拦截文件操作请求,过滤管理器将文件操作请求发送至微过滤器驱动程序。

在一个实施方式中,使至少一个处理器执行恶意软件检测分析的指令还包括如下指令:该指令使至少一个处理器执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定文件缓冲区内的数据是否被加密。

在一个实施方式中,使至少一个处理器确定所识别的进程不是受信进程的指令还包括如下指令:该指令使至少一个处理器在在程序黑名单上找到所识别的进程。使至少一个处理器执行恶意软件补救动作的指令还包括如下指令:该指令使至少一个处理器终止与所检测到的文件操作请求相关联的写操作,通过从内存中删除所检测到的文件操作请求来终止所检测到的文件操作请求,以及隔离与所识别的进程相关联的磁盘文件映像。

在一个实施方式中,非暂态计算机可读介质还存储下述指令,所述指令在由至少一个处理器执行时使至少一个处理器响应于在程序白名单上找到所识别的进程而由微过滤器驱动程序忽略所检测到的文件操作请求。

在一个实施方式中,使至少一个处理器确定所识别的进程不是受信进程的指令还包括如下指令:该指令使至少一个处理器响应于在程序黑名单和程序白名单上没有找到进程而将用于授权所识别的进程的请求发送至客户端设备。

在一个实施方式中,使至少一个处理器确定所识别的进程不是受信进程的指令还包括如下指令:该指令使至少一个处理器响应于将用于授权所识别的进程的请求发送至客户端设备而从客户端设备接收所识别的进程未被授权的消息。

在一个实施方式中,非暂态计算机可读介质还存储下述指令,所述指令在由至少一个处理器执行时使至少一个处理器将所识别的进程添加到程序黑名单。

在一个实施方式中,非暂态计算机可读介质还存储下述指令,所述指令在由至少一个处理器执行时使至少一个处理器响应于从客户端设备接收到所识别的进程被授权的消息而将所识别的进程添加到程序白名单。

在一个实施方式中,用于在内核模式下对隐写术的实时检测和防护的方法包括:检测经由防火墙、操作系统或电子邮件系统传输的文件。确定文件的大小。从文件系统中检索文件的存储文件大小。将所确定的文件大小与文件的存储文件大小进行比较。响应于所确定的文件大小大于文件的存储文件大小,对文件执行隐写术检测分析。响应于指示文件中存在隐写术的隐写术检测分析,执行隐写术补救动作,并且向客户端设备发送描述隐写术的信息。

在一个实施方式中,确定文件的大小包括获得指向文件的段头部的指针,该段头部与文件的多个段相关联。对于文件的多个段中的每个段,确定该段的大小。将文件的多个段中的每个段的大小相加以确定文件的大小。

在一个实施方式中,获得指向文件的段头部的指针包括使用文件的文件名或文件的路径打开文件。读取文件头部。从头部中检索幻数。验证幻数以获得指向文件的段头部的指针。

在一个实施方式中,对文件执行隐写术检测分析包括识别文件中的附加载荷。分析附加载荷以确定附加载荷的文件格式。基于附加载荷的文件格式执行隐写术检测分析。

在一个实施方式中,对文件执行隐写术检测分析包括识别文件中的附加载荷。执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定附加载荷内的数据是否被加密。

在一个实施方式中,对文件执行隐写术检测分析包括识别文件中的附加载荷,以及识别在附加载荷内存在未授权数据。

在一个实施方式中,对文件执行隐写术检测分析包括识别文件中的附加载荷,以及识别在附加载荷内存在汇编级或机器级指令。

在一个实施方式中,隐写术补救动作的执行包括终止文件的处理和传输,以及隔离文件。

在一个实施方式中,非暂态计算机可读介质存储下述指令,所述指令在由至少一个处理器执行时使至少一个处理器检测经由防火墙、操作系统或电子邮件系统的文件传输。确定文件的大小。从文件系统中检索文件的存储文件大小。将所确定的文件大小与文件的存储文件大小进行比较。响应于所确定的文件大小大于文件的存储文件大小,对文件执行隐写术检测分析。响应于指示文件中存在隐写术的隐写术检测分析,执行隐写术补救动作,并且将描述隐写术的信息发送至客户端设备。

在一个实施方式中,使至少一个处理器确定文件的大小的指令包括使至少一个处理器获得指向文件的段头部的指针的指令,该段头部与文件的多个段相关联。对于文件的多个段中的每个段,确定该段的大小。将文件的多个段中的每个段的大小相加以确定文件的大小。

在一个实施方式中,使至少一个处理器获得指向文件的段头部的指针的指令包括使至少一个处理器使用文件的文件名或文件的路径打开文件的指令。读取文件的头部。从头部中检索幻数。验证幻数以获得指向文件的段头部的指针。

在一个实施方式中,使至少一个处理器对文件执行隐写术检测分析的指令包括使至少一个处理器识别文件中的附加载荷的指令。分析附加载荷以确定附加载荷的文件格式。基于附加载荷的文件格式执行隐写术检测分析。

在一个实施方式中,使至少一个处理器对文件执行隐写术检测分析的指令包括使至少一个处理器识别文件中的附加载荷的指令。执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定附加载荷内的数据是否被加密。

在一个实施方式中,使至少一个处理器对文件执行隐写术检测分析的指令包括如下指令:该指令使至少一个处理器识别文件中的附加载荷并且识别在附加载荷内存在未授权数据。

在一个实施方式中,使至少一个处理器对文件执行隐写术检测分析的指令包括如下指令:该指令使至少一个处理器识别文件中的附加载荷并且识别在附加载荷内存在汇编级或机器级指令。

在一个实施方式中,使至少一个处理器执行隐写术补救动作的指令包括使至少一个处理器终止文件的处理和传输并且隔离文件的指令。

在一个实施方式中,计算机系统包括至少一个计算机处理器。非暂态计算机可读介质存储下述指令,所述指令当由至少一个计算机处理器执行时使至少一个处理器检测经由防火墙、操作系统或电子邮件系统的文件传输。确定文件的大小。根据文件系统,确定文件的存储文件大小。将所确定的文件大小与文件的存储文件大小进行比较。响应于所确定的文件大小大于文件的存储文件大小,对文件执行隐写术检测分析。响应于指示文件中存在隐写术的隐写术检测分析,执行隐写术补救动作。将描述隐写术的信息发送至客户端设备。

在一个实施方式中,使至少一个计算机处理器确定文件的大小的指令包括如下指令:该指令使至少一个计算机处理器获得指向文件的段头部的指针,该段头部与文件的多个段相关联。对于文件的多个段中的每个段,确定该段的大小。将文件的多个段中的每个段的大小相加以确定文件的大小。

在一个实施方式中,使至少一个计算机处理器获得指向文件的段头部的指针的指令包括使至少一个计算机处理器使用文件的文件名或文件的路径打开文件的指令。读取文件的头部。从头部中检索幻数。验证幻数以获得指向文件的段头部的指针。

在一个实施方式中,使至少一个计算机处理器对文件执行隐写术检测分析的指令包括使至少一个计算机处理器识别文件中的附加载荷的指令。分析附加载荷以确定附加载荷的文件格式。基于附加载荷的文件格式执行隐写术检测分析。

在内核模式下对恶意软件和隐写术的实时检测和防护

图1示出了根据实施方式的用于在内核模式下对恶意软件和隐写术的实时检测和防护的系统的示例框图。该系统包括受管节点100、云主机105和安全管理器115。在其他实施方式中,系统包括比本文所述的那些部件更多或更少的部件。类似地,功能可以以与在此描述的方式不同的方式分布在部件和/或不同的实体中。

受管节点100是要在内核模式下对恶意软件和隐写术进行防护的计算机系统。受管节点100可以是计算机(例如,运行Windows、MacOS或另一操作系统)、数据中心、大型机或具有存储和计算能力的任何其他设备。在一个实施方式中,受管节点100包括I/O管理器120、Windows服务管理器170、注册表175、静态分析模块180、存储设备155、内核165和硬件抽象层160。在其他实施方式中,受管节点100包括比本文中所述的那些部件更多或更少的部件。类似地,功能可以以与在此描述的方式不同的方式分布在部件和/或不同的实体中。

在一个实施方式中,受管节点100是Windows计算机。内核驱动130可以动态地安装在I/O管理器120内部的过滤管理器125中。该实施方式提供了高性能机制来拦截Windows平台上的文件系统事件。在其他实施方式中,受管节点100利用特定设备的检测系统能力。例如,该示例中的存储设备155可以是针对NTFS文件系统、FAT16或FAT32格式化的卷。

受管节点100可以包括提供与外部世界往来的输入和输出(I/O)的一个或更多个设备。这样的设备可以包括键盘、鼠标、音频控制器、视频控制器、磁盘驱动器、网络端口等。在一个实施方式中,设备驱动程序可以提供这样的设备与受管节点100上的操作系统之间的软件连接。内核模式I/O管理器120管理应用程序与由设备驱动程序提供的接口之间的通信。因为设备可以以可能与操作系统不匹配的速度操作,因此操作系统与设备驱动程序之间的通信主要通过I/O请求包来完成。这些包可以类似于网络包或Windows消息包。这些包从操作系统传递到特定的驱动程序并且从一个驱动程序传递到另一驱动程序。

在一个实施方式中,I/O管理器120检测由受管节点100接收的文件操作请求(例如,读、写、文件打开等)。过滤管理器125可以根据对应于文件操作请求的文件句柄来确定文件操作请求是否对应于所关注的操作。文件句柄是当文件被打开时操作系统临时分配给文件的数字或标识符。操作系统在访问文件时在内部使用文件句柄。如果过滤管理器125确定文件操作请求对应于所关注的操作,则过滤管理器125截取文件操作请求以进行恶意软件检测。如果发现指示存在恶意软件的行为,则I/O管理器120可以识别负责发起所检测到的文件操作请求的用户模式进程。

在一个实施方式中,过滤管理器125与Windows安装在一起。它仅在加载了微过滤器驱动程序时才被激活。微过滤器驱动程序是指过滤文件系统操作的驱动程序。微过滤器驱动可以位于I/O管理器120与基本文件系统之间。过滤管理器125可以依附于目标卷的文件系统栈。通过向过滤管理器125注册微过滤器驱动程序选择进行过滤的I/O操作,微过滤器驱动程序可以间接地依附于文件系统栈。

在一个实施方式中,为了拦截文件操作请求,过滤管理器125确定是否微过滤器驱动程序被注册以拦截文件操作请求。响应于确定微过滤器驱动程序被注册以拦截文件操作请求,过滤管理器125将文件操作请求发送至微过滤器驱动程序。一旦负责产生文件操作请求的用户进程已被I/O管理器120识别,则过滤管理器125可以对程序黑名单和程序白名单中的一个或更多个执行针对所识别的进程的搜索以确定所识别的进程是否是受信进程。

内核驱动130在内核模式下作为管理I/O、即插即用存储器、进程和线程以及安全性等的内核模式操作系统部件的一部分执行。与操作系统本身一样,内核驱动130可以被实现为具有明确定义的一组所需功能性的离散的模块化部件。内核驱动130也可以提供一组系统定义的标准驱动程序例程。内核驱动130可以在执行之前和之后截取I/O请求包。I/O请求包是由驱动程序用来彼此通信以及与操作系统通信的内核模式结构。微过滤器内核驱动(下面参照图3示出和描述)支持用于文件操作的例程。因此,内核驱动130是接收和处理文件打开、读、写、关闭和其他操作的高性能机制。在一个实施方式中,内核驱动130访问内核模式读写缓冲区以对进程正在请求的数据执行快速统计分析。

Windows服务管理器170可以用于简化与Windows服务相关的普通任务。Windows服务是在受管节点100上在后台中运行的计算机程序(类似于守护进程(daemon))。Windows服务可以被配置成当操作系统启动时启动并在后台中运行,或者Windows服务可以被手动地或通过事件启动。Windows服务管理器170可以在不重启Windows、删除现有服务,以及改变服务配置的情况下创建服务(Win32和传统驱动程序两者)。Windows服务管理器170可以具有GUI和命令行模式两者。

注册表175是存储针对操作系统和针对使用注册表175的应用的低级设置的分层数据存储。内核165、设备驱动程序、服务和用户接口都可以使用注册表175。因此,注册表175包含用于程序和硬件抽象层160的信息、设置、选项和其他值。当程序被安装时,包含诸如程序的位置、其版本以及如何启动程序的设置的新的子密钥全部被添加到注册表175。注册表175可能包含如下键值,上述键值由恶意软件使用以在重启之后调度键值的执行。

在一个实施方式中,静态分析模块180可以是检测程序和内核模式驱动程序代码中的编码错误的编译时静态验证工具。Windows服务可以监视内核驱动130的状态并且执行主动的反恶意软件任务,例如定期验证注册表键值和值、搜索隐藏进程以及执行全系统静态扫描。静态分析模块180可以管理对所有文件执行分析的全系统扫描。这包括但不限于检测加密、识别隐写术、防止计算机“锁定”、以及监视主文件表(NTFS MFT)和主引导记录(MBR)的状态以发现篡改证据。此外,静态分析模块180可以使用Windows API来确定卷影复制服务(VSS)(以下参照图4示出和描述)是否已经对于未授权进程被禁用。在实施方式中,如果未知进程正在篡改VSS,则静态分析模块180可以检测未知进程是恶意软件。静态分析模块180然后可以经由管理工具确定未知进程是否是系统进程以避免误报。

存储设备155是存储在受管节点100上的数据和应用的受管节点100的部件。存储设备155可以包括RAM、高速缓存和硬盘,以及可能的光盘驱动器和外部连接的USB驱动器。存储设备155被格式化以用于文件系统,文件系统控制如何存储和检索数据。所使用的文件系统可以包括NTFS文件系统、FAT16、FAT32等中的任意系统。NTFS文件系统是Windows NT家族的文件系统。文件分配表(FAT)是计算机文件系统架构和行业标准文件系统的家族。FAT的文件系统变体是FAT16和FAT32。

内核165是作为已经控制受管节点100的受管节点100的操作系统的核心的计算机程序。内核165通常在启动时(例如,在引导加载程序之后)被加载。内核165处理启动的剩余部分以及来自软件的输入/输出请求,将它们转换成用于受管节点100的处理器的数据处理指令。内核165还处理存储器和外围设备例如键盘、监视器、打印机和扬声器。

硬件抽象层160是编程层,其允许受管节点100的操作系统以更一般或抽象的水平而不是在详细的硬件水平下与硬件设备(例如,下面参照图3描述的处理器310)交互。硬件抽象是模拟特定于平台的细节的软件例程,使程序直接访问硬件资源。使用硬件抽象层160,与设备无关的高性能应用程序可以向硬件发出标准操作系统调用。例如,Windows2000是包括硬件抽象层的几种操作系统之一。

云主机105提供在虚拟服务器上的托管,虚拟服务器从物理网络服务器的广泛底层网络中提取上述底层网络的计算资源。在一个实施方式中,云主机105可以使用来自云供应商的虚拟硬件、网络、存储和复合解决方案。可以通过虚拟化启用云托管,从而将基础架构或数据中心的整个计算能力分布并同时交付给多个用户或受管节点。例如,物理服务器可以被虚拟化和整合以托管多个云服务器,所述多个云服务器全部共享处理器、存储器、存储装置、网络和其他资源。云主机105可以对操作数据执行机器学习算法,例如朴素贝叶斯分类(

安全管理器115提供受管节点100及其策略的企业范围视图。安全管理器115用于创建、管理、部署和监视设备、虚拟机和容器。安全管理器115还可以执行预置分析。在一个实施方式中,可以将负责发起某个文件操作请求的所识别的进程确定为不是受信进程。安全管理器115可以将消息发送至受管节点100以针对所识别的进程执行恶意软件补救动作。受管节点100还可以向客户端设备发送描述恶意软件的信息。

客户端设备是由用户使用以执行诸如消费数字内容、执行软件应用程序、浏览由网络110上的受管节点100托管或以另外方式与之交互的网站以及下载文件的功能的电子设备。例如,客户端设备可以是智能手机或平板电脑、笔记本电脑或台式计算机。此外,客户端设备可以是连有物联网(IoT)的设备,例如家用电器,甚至是另一网络服务器。客户端设备可以包括显示设备,用户可以在该显示设备上查看存储在客户端设备上或从受管节点100下载的数字内容。另外,客户端设备可以包括诸如物理和/或屏幕上的按钮的用户接口(UI),用户可以与该用户接口交互以执行诸如消费数字内容、获得数字内容以及发送数字内容的功能。

在一个实施方式中,安全管理器115可以向受管节点100发送信号或消息以执行恶意软件补救动作。恶意软件补救动作可以包括终止与所检测到的文件操作请求相关联的写操作。恶意软件补救动作可以包括通过从存储器中删除检测到的文件操作请求来终止检测到的文件操作请求。恶意软件补救动作可以包括隔离与所识别的进程相关联的磁盘文件映像。磁盘文件映像是存储整个磁盘的全部内容和结构的文件。磁盘可以是光盘、硬盘驱动器等。磁盘文件映像可以是磁盘卷或整个物理磁盘驱动器的精确副本。磁盘文件映像可以保留其来源的所有属性:文件、文件夹、属性和磁盘名称。

在一个实施方式中,安全管理器115可以将信号或消息发送至受管节点100以执行隐写术补救动作。隐秘术补救动作可以包括终止对试图通过防火墙的文件的处理和传输。隐秘术补救动作可以包括对文件进行隔离。

防火墙135是基于安全规则监视和控制进出的网络流量的网络安全系统。防火墙135在受信任的内部受管节点100与不受信任的外部网络110之间建立屏障。防火墙135可以是网络防火墙或基于主机的防火墙。如果防火墙135是基于主机的防火墙,则它可以位于受管节点100内或可以在受管节点100上运行以控制进出受管节点100的网络流量。

恶意软件分析模块140对进入受管节点100的进入文件或与检测到的文件操作相关联的文件执行恶意软件检测分析。恶意软件分析模块140可以位于受管节点100内或可以在受管节点100上运行。在一个实施方式中,恶意软件分析模块140可以对与检测到的文件操作请求相关联的文件缓冲区执行恶意软件检测分析以检测指示存在恶意软件的行为。类似地,恶意软件分析功能可以分布在受管节点100的其他实体之间。

在一个实施方式中,恶意软件分析模块140可以在内核模式下执行针对对隐写术的实时检测和防护的分析。一旦检测到经由防火墙、操作系统或电子邮件系统的文件传输,恶意软件分析模块140就可以确定文件的大小。文件的大小是文件包含多少数据或替选地文件消耗多少存储的度量。通常,文件的大小以基于字节的度量为单位来表示。

在一个实施方式中,恶意软件分析模块140可以通过获得指向文件的段头部的指针来确定文件的大小。段头部与文件的多个段相关联。对于文件的多个段中的每个段i,恶意软件分析模块140可以确定段i的大小s

在一个实施方式中,恶意软件分析模块140可以通过使用文件的文件名或文件的路径打开文件来获得指向文件的段头部的指针。文件的文件名是用于唯一地标识文件的名称。文件系统可以对文件名长度和文件名内允许的字符施加限制。文件名可以包括以下中的一个或更多个:主机名、设备名、目录(或路径)、文件的基本名称、类型(格式或扩展)和文件版本。

恶意软件分析模块140读取文件的头部。文件的头部可以包括通常存储在文件开头处的元数据。取决于文件格式或所包含的数据的类型,元数据也可以存在于其他区域中,例如在文件的末尾处。文件的头部可以是基于字符的(文本)、二进制头部等。文件的头部可以标识文件格式以及(对于图像文件)存储与图像格式、大小、分辨率和颜色空间等有关的信息。

恶意软件分析模块140可以从头部中检索幻数。幻数可以是用于标识文件格式或协议的数字或文本值。例如,幻数可以是文件内用于标识文件格式的字节。通常,幻数是放置在文件开头处的短的字节序列(例如,4个字节长)。例如,对于便携式可执行(PE)文件,十六进制签名可以是“4D 5A”,而幻数可以是“MZ”。恶意软件分析模块140可以验证幻数以获得指向文件的段头部的指针。

文件系统可以存储文件的文件大小。例如,文件系统可以存储文件的字节数,该字节数指示多少存储与该文件相关联。存储文件大小可以是高达系统限制的非负的整数字节。在另一示例中,存储文件大小可以是文件在物理存储设备上占用的块或磁道的数目。在该示例中,可以使用软件来跟踪确切的字节数。恶意软件分析模块140可以从受管节点100的文件系统中检索文件的存储文件大小。文件系统支持的最大文件大小不仅取决于文件系统的容量,而且取决于针对文件大小存储的信息保留的位数。例如,FAT32文件系统中的最大文件大小为4,294,967,295字节,比4GB少一个字节。

恶意软件分析模块140可以将所确定的文件大小与文件的存储文件大小进行比较。响应于所确定的文件大小大于文件的存储文件大小,恶意软件分析模块140可以对文件执行隐写术检测分析。在一个实施方式中,恶意软件分析模块140可以通过识别文件中的附加载荷来执行隐写术检测分析。附加载荷是执行恶意软件的实际恶意目的的主体或数据。载荷(如果未被识别并移除)可能导致受管节点100减慢或冻结、发送垃圾邮件、加密数据、删除磁盘上的文件、使系统崩溃或损坏文件等。恶意软件分析模块140可以分析附加载荷以确定附加载荷的文件格式。附加载荷的文件格式是信息在附加载荷中如何存储(编码)的结构。例如,附加载荷可以是用于图像或栅格数据的JPEG或TIFF、用于向量数据的AI(AdobeIllustrator)或用于文档交换的PDF。恶意软件分析模块140可以基于附加载荷的文件格式执行隐写术检测分析。

在一个实施方式中,恶意软件分析模块140可以执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定附加载荷内的数据是否被加密。蒙特卡洛近似的执行在下面参照图5示出和描述。

在一个实施方式中,恶意软件分析模块140可以执行熵确定以确定附加载荷内的数据是否被加密。熵根据下式通过对值的概率分布取负对数以计算附加载荷的熵来度量附加载荷中的信息内容量:

在上面的熵确定中,H是总熵并且P

在一个实施方式中,恶意软件分析模块140可以执行序列系数分析以确定附加载荷内的数据是否被加密。序列系数分析描述了在特定时间段内同一变量的观测值之间的关系,在这种情况下,为附加载荷中的每个字节的变化值之间的关系。序列系数分析确定附加载荷中的字节的值是否相关。如果不存在相关性,则意味着附加载荷中的后续字节的值无法由先前的值预测。序列相关性值越低,强加密的可能性越高。如果变量的序列相关性被测量为零,则意味着不存在相关性,并且观察值中的每一个彼此独立。相反,如果变量的序列相关性偏向1,则意味着观测值是序列上相关的,并且将来的观测值受到过去的值的影响。

在一个实施方式中,恶意软件分析模块140可以执行卡方确定以确定附加载荷内的数据是否被加密。卡方确定可以用于区分压缩文件和加密文件。卡方确定是通常用于将观察到的数据与预期数据比较的简单的统计检验。卡方检验旨在测试观察到的分布归因于偶然性的可能性。卡方检验也被称为“拟合优度”统计量,因为它测量变量独立的情况下观测到的数据分布与预期分布的拟合程度。压缩的载荷将具有较高的熵和较高的卡方值。字节的完全随机载荷的期望值的平均值为127.5(255/2)。这使得可以确定加密、压缩和加密压缩文件。用于计算卡方值的公式为:

在一个实施方式中,恶意软件分析模块140可以执行算术平均值确定和标准偏差确定中的一个或更多个以确定附加载荷内的数据是否被加密。如果附加载荷被加密,则附加载荷的数据值的算术平均值应当近似等于127.5(255/2)。标准偏差σ是用于量化数据值的变化或离散的量的度量。针对附加载荷中的一部分以及整个附加载荷计算算术平均值和标准偏差。由于恶意软件分析模块140可以直接读取操作系统的内部I/O缓冲区,因此减少了读写开销。这使得可以使用较少的系统资源来计算和分析大量的统计确定,得到更准确、更快速的确定。即使数据是无次序提供的,统计确定也可以提供部分和全部值。这样的无次序确定使得能够实现高性能、多线程和多进程的实施方式。

在一个实施方式中,恶意软件分析模块140可以通过识别附加载荷内存在未授权数据来执行隐写术检测分析。例如,恶意软件分析模块140可以识别未授权的提权软件包安装或数据加密。下面参照图4详细描述对数据的未授权改变的检测。在一个实施方式中,恶意软件分析模块140可以在磁盘上识别未授权系统已经在收集敏感信息的指令(出站实施方式)。因此可以防止数据的未授权传输。在一个实施方式中,使用静态分析来在不执行程序的情况下在文件分析时防止恶意软件。在入站实施方式中,可以检测未授权代码进入公司环境,例如,隐藏在从因特网下载的mp3中的恶意代码序列。

在一个实施方式中,恶意软件分析模块140可以通过识别在附加载荷内存在汇编级或机器级指令来执行隐写术检测分析。汇编级指令是指语言与架构的机器级指令之间存在强(但通常不是一对一)对应的低级编程语言。恶意软件分析模块140识别可疑指令集的指示,例如机器或汇编级的语言。在实施方式中,该方法部分地反汇编文件并寻找这样的可疑的指令集。

响应于指示文件中存在隐写术的隐写术检测分析,恶意软件分析模块140可以将信号发送至受管节点100以执行隐写术补救动作。恶意软件分析模块140可以向客户端设备发送描述隐写术的信息。

路由器145是在受管节点100与网络110之间转发数据包的联网设备。路由器145还可以执行流量引导功能。当数据包从网络110进入时,路由器145读取包中的网络地址信息以确定最终目的地。交换机150是通过使用包交换将网络上的设备连接在一起以接收、处理数据并将数据转发到目的地设备的计算机联网设备。在一个实施方式中,交换机150是使用硬件地址来在OSI模型的数据链路层(层2)处处理和转发数据的多端口网桥。

网络110实现客户端设备与受管节点100之间的通信。为此,网络110从客户端设备接收请求和对应的数据(例如,要发布在网页上的文件的内容)并且将请求转发给受管节点100。类似地,网络110从受管节点100接收响应并且将响应转发给客户端设备。

网络110可以包括因特网以及移动电话网络。在一个实施方式中,网络110使用标准通信技术和/或协议。因此,网络110可以包括使用诸如以太网、802.11、长期演进(LTE)等技术的链路。在网络110上使用的联网协议可以包括多协议标签交换(MPLS)、传输控制协议/因特网协议(TCP/IP)、用户数据报协议(UDP)、HTTP、简单邮件传输协议(SMTP)、文件传输协议(FTP)等。可以使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来表示在网络110上交换的数据。此外,可以使用诸如安全套接字层(SSL)、传输层安全性(TLS)、虚拟专用网络(VPN)、互联网协议安全性(IPsec)等的常规加密技术对全部链接或某些链接进行加密。在另一实施方式中,代替或除上述的技术之外,实体可以使用定制的和/或专用的数据通信技术。

针对在平台上以用户模式和内核模式运行的应用程序的恶意软件的检测

图2示出了根据实施方式的针对在平台上以用户模式235运行的应用程序225的对恶意软件的实时检测和防护的示例框图。所示平台基于例如由Intel、AMD或ARM制造的处理器。平台上的操作系统包括用户模式235和内核模式240。

在一个实施方式中,内核模式240被保留用于操作系统的最低级别、最受信任的功能。以内核模式240运行的代码可以共享单个虚拟地址空间。因此,内核模式驱动程序(例如200)没有与其他驱动程序(例如205)和操作系统本身隔离。在内核模式240中,执行代码访问底层硬件(例如,下面参照图3描述的处理器310)。它可以执行CPU指令和参考内存地址。

处理器可以根据在处理器上运行的代码类型在两个模式之间切换。例如,应用程序225可以在用户模式下运行,而核心操作系统部件可以在内核模式240下运行。驱动程序可以在内核模式240或用户模式235下运行。在其他实施方式中,平台包括比本文描述的部件更多或更少的部件。类似地,功能可以以与在此描述的方式不同的方式分布在部件和/或不同的实体中。

服务220是指在后台操作的程序(概念类似于守护程序)。用户模式235包括子系统230,子系统230运行针对许多不同类型的操作系统编写的应用程序225。用户模式235中的子系统230限于某些系统资源,而内核模式240通常具有对系统存储器和外部设备的不受限制的访问。用户模式235包括能够通过使用I/O管理器120将I/O请求传递给适当的内核模式设备驱动200的子系统。

操作系统支持称为动态链接库的共享库,共享库是可以由多个进程使用而仅将一个副本加载到内存中的代码库。例如,NTDLL.DLL215导出Windows本机API(由操作系统的用户模式部件使用的接口,该接口必须在没有Win32或其他API子系统支持的情况下运行)。NTDLL.DLL215是由描述为“NT Layer DLL”的操作系统创建的文件并且是包含NT内核功能的文件。在一个实施方式中,NTDLL.DLL215可以位于c:windowssystem32或c:winntsystem32目录中,并且也可以在c:i386目录中找到。

内核模式API 210与I/O管理器120和过滤管理器125(上面参照图1描述的)接口。内核模式设备驱动200是操作或控制附接到受管节点100的特定类型的设备的程序。上面参照图1描述了内核。图形驱动程序205是指软件,该软件由操作系统在内核模式240下使用以与特定图形设备通信。上面参照图1描述了硬件抽象层。

在一个实施方式中,应用程序225可以包括一个或更多个执行线程。当在环3(用户模式235)中运行时,应用程序225(线程)可以请求系统服务例如WriteFile()。NTDLL.DLL215可以调用SysEnter x86指令,并且线程的上下文从用户模式235更改为内核模式240。当内核调度器将处理器(或核)从一个线程切换到另一线程时,可能发生上下文切换。在这种情况下,线程仅从环3更改为环0。它保留在同一处理器或核上。可以将更高优先级的线程分配给先前线程的处理器(上下文切换)。在一个实施方式中,当2个线程改变状态时,可以发生上下文切换。在其他架构上,可以引发中断。每个线程具有两个堆栈:一个用于用户模式235,而另一个用于内核模式240。中断被引发并且然后线程内核执行内核模式本机API 210,例如NtWriteFile()或ZwWriteFile()。

在一个实施方式中,当应用程序225以用户模式235运行时,操作系统可以为应用程序225创建进程。该进程向应用程序225提供私有虚拟地址空间和私有句柄表。由于应用程序的虚拟地址空间是私有的,因此一个应用程序无法更改属于另一应用程序的数据。每个应用程序225隔离地运行,并且如果用户模式应用程序崩溃,则崩溃被限于该一个应用程序。其他应用程序和操作系统不受崩溃影响。在一个实施方式中,内核模式240下的每个线程共享单个虚拟地址空间。因此,全部内核模式线程和用户模式线程的状态都是可见的。

在一个实施方式中,处理器可以提供多个安全级别。在32位和64位英特尔和AMD处理器的情况下,内核165可以在作为最具特权的环0中运行。全部用户应用程序225在经由系统动态链接库(DLL)请求内核服务的环3中执行。全部用户模式235请求使用NTDLL.DLL 215以修改特定功能参数并使用SysEnter将请求线程从环3切换到环0。调度器接收该请求并且将其传递给执行体的服务。调度器重新检查准备好运行的线程。可以在用户对导致上下文切换的特权模式请求的请求期间先取得较低优先级线程。

示例过滤管理器和微过滤器驱动程序

图3示出了根据实施方式的用于对恶意软件的实时检测和防护的示例过滤管理器125和微过滤器驱动程序320、325和330。在其他实施方式中,配置包括比本文所述的那些部件更多或更少的部件。类似地,功能可以以与在此描述的方式不同的方式分布在部件和/或不同的实体中。

在处理器310上以用户模式235运行的应用程序225或进程可以生成用户请求300(例如,诸如文件打开请求的文件操作请求)。在一个实施方式中,用户模式235下的进程225进行调用以在Windows API中创建文件。该调用触发对文件I/O的用户请求300(例如,Windows NT API调用)。请求300通过NTDLL.DLL215。I/O管理器120检测由在用户模式235下运行的进程225发起的文件操作请求300。在一个实施方式中,I/O管理器120可以是Windows操作系统的一部分。I/O管理器120定位目标文件所处的位置(例如,D:drive)并且将消息发送至过滤管理器125以确定驱动程序是否有兴趣拦截文件打开请求300。过滤管理器125依附于特定文件系统和特定卷。

在一个实施方式中,过滤管理器125在内核模式240下被初始化。过滤管理器125可以根据对应于文件操作请求300的文件句柄确定文件操作请求300是否对应于所关注的操作,例如文件打开请求。过滤管理器125是展示文件系统过滤器驱动程序中通常所需的功能性的内核模式驱动程序。可以编写微过滤器驱动程序(例如,微过滤器驱动程序A320)以使用该功能性,从而缩短开发过程,同时产生更高质量的、更鲁棒的驱动程序。文件句柄(有时也称为文件描述符)是用于访问文件或其他输入/输出资源诸如管道或网络套接字的抽象指示符(例如,编号)。当文件被打开时,所请求的文件访问的类型被确定,例如读、写、共享和独占。微过滤器驱动器A320或C 330执行添加句柄步骤。添加句柄步骤确定文件句柄是否是所关注的并且将其存储在树中。如果文件句柄正在写入具有强加密的缓冲区,则该文件句柄是所关注的。如果句柄不是所关注的,则可以忽略它。

响应于确定文件操作请求300对应于所关注的操作,截取文件操作请求300。在一个实施方式中,过滤管理器125通过确定微过滤器驱动程序(例如,微过滤器驱动程序A320)是否被注册以拦截文件操作请求来拦截文件操作请求300。微过滤器驱动程序A320可以先前已经向过滤管理器125注册了所关注的事件(例如,文件打开(fopen)、读、写、关闭、重命名)。响应于确定微过滤器驱动程序A320被注册以拦截文件操作请求,过滤管理器125将文件操作请求300发送至微过滤器驱动程序A320。

在一个示例中,过滤管理器125检查微过滤器驱动程序(例如,微过滤器驱动程序A320)是否有兴趣拦截请求300。过滤管理器125可以通过回调来识别微过滤器驱动程序A320。首先,微过滤器驱动程序A 320注册并且然后其识别它所关注的事件。操作可以如下实现:

对与检测到的文件操作请求300相关联的文件缓冲区执行恶意软件检测分析以检测指示存在恶意软件的行为。内核模式240下的微过滤器驱动程序对文件缓冲区执行恶意软件检测分析以检测未授权/可疑行为。恶意软件检测分析可以包括蒙特卡罗近似、熵和/或序列系数分析。分析包括确定文件缓冲区中的数据是否被加密。例如,可以检测可疑写操作。微过滤器驱动程序可以直接从操作系统缓冲区中读取数据以提高性能并减少统计分析的开销。恶意软件分析使用以上参照图1描述的统计技术来确定文件是否被加密。“分析内核缓冲区”步骤可以执行勒索软件和恶意软件分析。隐写术分析的一部分也可以被执行。因此,隐写术可以由多个实体例如静态(扫描)、动态(实时)、防火墙、smtp服务器等执行。

响应于检测到指示存在恶意软件的行为,识别负责发起所检测到的文件操作请求300的进程225。微过滤器驱动程序A 320针对写操作执行恶意软件分析。微过滤器驱动程序A 320处理预先文件访问操作(文件读/写请求)。过滤管理器125将调用发送至微过滤器驱动程序A 320,微过滤器驱动程序A320确定卡方、熵、序列系数相关性和蒙特卡洛π近似的组合以决定它是否应当随着文件打开操作300前进。微过滤器驱动程序A 320可以分析写入,因为它已经具有在操作系统内核I/O缓冲区中的写入数据。微过滤器驱动程序A 320分析写缓冲区以寻找恶意软件状态改变。执行关键恶意软件检测分析并且仅当确定数据未被加密时才写入数据。如果恶意软件分析指示没有强加密,则允许FileWrite()操作成功。

微过滤器驱动程序C 330针对读取执行恶意软件分析。微过滤器驱动程序C 330还处理后文件访问操作。微过滤器驱动程序C 330分析读缓冲区以寻找恶意软件状态改变。在请求300到达微过滤器驱动程序C330之前,还没有对系统的状态改变(写入)。如果微过滤器程序驱动器A 320或C 330检测到指示恶意软件的状态改变,则它们可以停止文件操作300。如果微过滤器驱动程序C 330批准“文件读(Fread)”操作,则过滤管理器215将请求发送至文件系统驱动程序305,文件系统驱动程序305将I/O请求包发送至存储驱动程序栈315。文件系统驱动程序305可以是用于可移除介质(例如,CD-ROM)的文件系统驱动程序、基于用作新文件系统的模型的Windows收件箱FastFAT文件系统的文件系统驱动程序、检查文件中的数据的事务感知文件扫描器等。微过滤器驱动程序C 330被再次调用,检查缓冲区,并且将批准发送至过滤管理器125。

一旦使用处理器310读取数据,就将IRP传递回过滤管理器。微过滤器C查看IRP中的数据。例如,如果驱动程序在写操作之前分析写缓冲区,则它计算熵、卡方、蒙特卡洛π近似、序列相关系数、平均值、标准偏差和其他统计量以检测未授权的数据加密、数据删除或可疑行为。微过滤器A基于这些统计量防止恶意软件将加密数据写入到磁盘155上的文件。微过滤器C识别先前加密的数据并且帮助从读取数据的进程构建白名单和黑名单。微过滤器A保护数据不被加密但是微过滤器C不能解密所加密的数据,因此它识别正在使用文件的进程。微过滤器A最好被描述为预写操作检测,而微过滤器C被描述为后读操作检测。系统注册以用于预先操作和后操作以更新和维护其数据结构。

微过滤器驱动程序B 325是第三方驱动程序。使用微过滤器驱动程序B 325,所公开的实施方式还可以检测试图删除文件、重命名文件或改变目录的恶意软件。

对程序黑名单和程序白名单中的一个或更多个执行针对所识别的进程225的搜索以确定所识别的进程225是否是受信进程。程序黑名单可以包括不应被允许访问或运行(执行)权限的已知恶意软件或可疑程序。这些程序通常包括恶意软件,例如病毒、特洛伊木马、蠕虫、间谍软件、键盘记录程序和其他形式的恶意软件。列入黑名单的程序还可以包括已知对企业或个人构成威胁的用户、业务应用程序、进程、IP地址和组织。

程序白名单可以包括允许访问受管节点100的可接受实体(软件应用程序、电子邮件地址、用户、进程、设备等)的列表。白名单可以基于应用程序225的文件名、大小和目录路径来识别应用程序225。在一个实施方式中,白名单可以使用密码散列技术和链接至每个部件或每个软件225的制造商或开发商的数字签名的组合。

在一个示例中,受管节点100可以通过在程序黑名单上找到所识别的进程225来确定所识别的进程225不是受信进程。受管节点100将描述恶意软件的信息发送至客户端设备。在一个实施方式中,受管节点100可以通过在程序白名单上找到所识别的进程225来确定所识别的进程225是受信进程。然后,微过滤器驱动程序将忽略所检测到的文件操作请求。

由于微过滤器驱动程序A320和微过滤器驱动程序B 330在内核模式240下执行,因此它们可以确定哪个进程正在改变文件的状态。如果文件正被加密或大量数据正被删除,则受管节点100可以询问用户是否要允许进程225改变文件系统的状态。如果用户批准该操作,则允许该操作,并且可选择地将处理后的图像的SHA256散列存储在白名单上。如果该进程是恶意软件,则将SHA256散列添加到黑名单。执行进程时,驱动程序将检查黑名单并且如果被列入黑名单则阻止执行

在一个实施方式中,受管节点100可以以如下方式确定所识别的进程225是否是受信进程。响应于在程序黑名单或程序白名单上没有找到进程225,受管节点100可以向客户端设备发送请求以授权所识别的进程。受管节点100可以生成数据,该数据使提示被呈现给客户端设备以询问进程300是否被授权,例如提示可以包括CAPTCHA。

响应于将请求发送至客户端设备以授权所识别的进程225,受管节点100可以从客户端设备接收所识别的进程225未被授权的消息。然后将所识别的进程225添加到程序黑名单中以进行恶意软件检测。响应于从客户端设备接收到所识别的进程225被授权的消息,所识别的进程225可以被添加至程序白名单。

响应于确定所识别的进程225不是受信进程,针对所识别的进程225执行恶意软件补救动作。攻击细节被本地记录。例如,微过滤器驱动程序A320可以将消息发送至过滤管理器215以停止、暂停或允许文件操作请求300。在一个实施方式中,类似的技术用于根据防火墙135检查入站文件。恶意软件分析用于防止恶意软件越过防火墙135到达网络的路由器145和交换机150。在线实施方式还可以检测隐写术。任何可疑文件被记录并将其隔离,因此如果该文件为误报则用户可以还原该文件。

卷影服务的示例部件

图4示出了根据实施方式的用于对恶意软件的实时检测和防护的卷影服务(VSS)的示例部件。VSS包括VSS复制服务400、VSS请求器405、VSS写入器410和VSS提供器415、420和425。在其他实施方式中,VSS包括比本文描述的那些部件更多或更少的部件。类似地,功能可以以与在此描述的方式不同的方式分布在部件和/或不同的实体中。

勒索软件可能尝试禁用VSS以阻止受感染或加密的文件的恢复。本文公开的实施方式使用特定的数据恢复API以确保可以恢复有用的备份以防止数据丢失。VSS读取和写入配置数据库,该数据库已被加密以防止未经授权的更改。VSS分析设备并且基于核和处理器类型以及当前工作负载自动为该设备创建最佳资源配置。处理器信息和存储器信息用于配置线程池的大小。

诸如恶意软件检测和清除的事件被写入本地日志。本地日志定期地从受管节点100和防火墙135复制到由安全管理器策略指定的中央日志服务器。

蒙特卡洛π近似的示例数据点

图5示出了根据实施方式的蒙特卡洛π近似的示例数据点。蒙特卡洛π近似可以用于区分压缩文件和加密文件。蒙特卡洛模拟允许测量文件中的值的随机性。蒙特卡洛模拟的一种应用是基于文件中的数据来近似π(π)的值。文件中包含的值越随机,则π的估计值越准确。通过内切单位圆内的数据点500与正方形中的数据点510的总数之比来计算π(π)的值。

图5示出了内切单位圆内的数据点500和正方形内的数据点510的总数。计算出的近似值越接近π的已知值,就越好描述数据值的随机性。完美的加密算法将具有完全随机值并且提供π的精确近似值。在一个实施方式中,系统执行以下确定。

面积圆=πr

面积正方形=(2r)

假设半径505为1单位并且圆中的点500由(x

对恶意软件的实时检测和防护的示例进程

图6示出了根据实施方式的用于恶意软件的实时检测和防护的示例过程。在一个实施方式中,图6的进程由受管节点100执行。在其他实施方式中,其他实体(例如,恶意软件分析模块140)可以执行该进程中的步骤中的一些步骤或全部步骤。类似地,实施方式可以包括不同和/或附加步骤,或者以不同顺序执行步骤。

受管节点100检测600由在用户模式235下运行的进程225发起的文件操作请求300。受管节点100可以通过根据与文件操作请求300对应的文件句柄确定文件操作请求300是否对应于所关注的操作来检测文件操作请求300。

受管节点100可以对与所检测到的文件操作请求300相关联的文件缓冲区执行605恶意软件检测分析以检测指示存在恶意软件的行为。恶意软件检测分析可以包括卡方、熵确定、序列系数相关和蒙特卡洛π近似的组合

响应于检测到指示存在恶意软件的行为,受管节点100识别610负责发起检测到的文件操作请求300的进程225。

受管节点100对程序黑名单和程序白名单中的一个或更多个执行615针对所识别的进程225的搜索以确定所识别的进程225是否是受信进程。程序黑名单可以包括不应被允许访问或运行(执行)权限的已知恶意软件或可疑程序。程序白名单可以包括允许访问受管节点100的可接受实体(软件应用程序、电子邮件地址、用户、进程、设备等)的列表。

响应于确定所识别的进程225不是受信进程,受管节点100针对所识别的进程225执行620恶意软件补救动作并且向客户端设备发送描述恶意软件的信息。恶意软件补救动作可以包括终止与所检测到的文件操作请求相关联的写操作。恶意软件补救动作可以包括通过从存储器中删除所检测到的文件操作请求来终止所检测到的文件操作请求。恶意软件补救动作可以包括隔离与所识别的进程相关联的磁盘文件映像。

用于对隐写术的实时检测和防护的便携式可执行(PE)文件

图7示出了根据实施方式的用于在内核模式下对隐写术的实时检测和防护的示例便携式可执行(PE)文件的部件。PE格式是可执行的文件格式、目标代码、DLL、FON字体文件以及Windows操作系统的32位和64位版本中使用的其他文件格式。PE格式是如下数据结构,该数据结构封装了Windows OS加载程序管理打包的可执行代码所需的信息。

PE头部765包括包含重定位信息的DOS可执行头部700,,该重定位信息允许将多个段加载到任意内存地址。DOS存根705是在MS-DOS下运行的有效应用程序。它放置在EXE映像的前面。段表的每一行(例如715、720和725)是段头部。段头部可以具有空(NULL)730终止符。每个段(例如735、745和755)也可以具有空(NULL)终止符。

本文公开的实施方式涉及使用图7所示的PE文件格式以用于在内核模式下对隐写术的实时检测和防护的方法。隐写术可以用于在容器内隐藏恶意软件。容器可以是图片、电影、音频文件或可执行文件。隐写术可以用于在图片、mp3或exe文件中隐藏信息。例如,128字节的文本消息可以被隐藏在4MB图片中。exe文件可以被隐藏在另一exe文件(打包)中。恶意软件文件可以被隐藏在pkzip文件中。在用户访问网站时可能发生病毒的隐蔽强迫下载。恶意软件也可以被发送给用户。然后,恶意软件可以到达在用户的邮寄列表等中例如在个性化圣诞卡中的每个朋友。恶意软件可以在几个月的周期上加密文件并且摆脱加密密钥。传统的边缘防火墙通常无法检测包含隐藏图片、消息或使用隐写术隐藏的恶意软件的文件,因为文件附件部被允许穿过防火墙。

检测经由防火墙、操作系统或电子邮件系统的文件传输。在一个实施方式中,PE被解析。在读取和解析PE时,针对可疑的API使用分析Windows EXE、DLL、字体、系统驱动程序和目标代码的结构。示例是具有读、写和执行许可的存储段的分配,上述读、写和执行许可可能允许恶意程序复制到存储段中并被执行。在一个实施方式中,使用Windows API来使用通过调用GetModuleFileNameEx()和CreateFile()所提供的进程的完全限定文件名(FQFN)来打开文件。磁盘上的映像的句柄被返回至调用者。

在一个实施方式中,确定PE文件的大小并将其与所存储的文件的文件大小进行比较。该实施方式可以用于检测图像是否包含未授权数据,例如恶意zip文件或可执行附加数据。在该实施方式中,可以识别存储在PE文件格式(例如,EXE、DLL、SCR、SYS、DRV、ACM、CPL、SCR等)的末尾处的隐藏信息。为了确定PE文件的大小,文件被解析和分析。使用文件的完全限定文件名打开文件。从存储设备155读取文件的DOS头部700。确定DOS头部700是否以“MZ”开始以确定文件是否是可执行文件。从DOS头部700中检索幻数。验证幻数以获得指向文件的段头部的指针。针对在段头部处开始的文件的每个段,确认该段的名称和属性。确定该段的大小。确定文件的每个段的名称和大小以确定文件的大小并且识别恶意软件经常使用的非标准段名称。

在一个实施方式中,从存储设备155读取Winnt.hSDK头部文件中的IMAGE_DOS_HEADER结构。DOS头部700是文件的第一部分。该步骤确定DOS头部700是否以MZ“xxxx xx”开始。如果DOS头部700以MZ开始,则它可以是DOS或Windows程序。如果DOS头部700不以MZ开始,则它不是可执行的(例如,它可以是JPG、GIF等)。该区别确定要应用哪种分析。读取DOS头部700的目的是确保文件被良好地形成。该进程寻找非法头部的创建。DOS头部700是静态的(不变的)并且包括日期和时间戳。解析DOS头部700的目的是检测不在已知良好头部的现有列表中的非法头部的创建。非法头部(PE头部)将具有指向具有恶意软件代码(非法指令)的段的指针。本文所公开的实施方式区分可执行文件与不可执行文件,因为恶意软件可以作为压缩的载荷隐藏在可执行文件中。文件类型的确定用于决定用于检测文件中的隐写术的特定分析。

数字“MZ”(文件的前几个字节)是幻数。通过验证幻数获得的指针指向文件中信息所在的部分。如果文件不是有效的PE文件,例如JPEG或GIF,则它可能是恶意软件。在一个实施方式中,从IMAGE_DOS_HEADER中的e_magic成员中检索幻数。为了验证幻数,使用DOS头部700中的值“xx xx xx”。将所找到的值与具有值0x5A4D(“MZ”)的Microsoft DOSIMAGE_DOS_SIGNATURE进行比较。如果该值与DOS签名不匹配,则该文件不是DOS或Windows可执行的。可以执行附加指令来确定文件可能是何种格式,例如DOC、DOCX、PPT、PPTX、XLS、XLSXX、MP3、GIF、JPG、PNG等。一旦幻数被验证,就获得指向段头部的指针。由于DOS幻数被验证,因此可以使用e_lfanew成员创建指向Windows PE头部的指针。通过将内存缓冲区的大小与e_lfanew值相加来计算IMAGE_NT_HEADRS32指针。指向PE头部的指针应当读取“01 00h”。该位置包含应当是数字“50 45 00h”的PE签名。如果该位置没有读取“50 45 00”,则该文件可能是可疑文件。

在一个实施方式中,指针可以被解引用并且与IMAGE_NT_SIGNATURE(0x00004550)进行比较。如果解引用的指针的值与IMAGE_NT_SIGNATURE签名不匹配,则该文件不是Windows可执行的。可以执行附加指令来确定文件可能是何种格式,例如DOC、DOCX、PPT、PPTX、XLS、XLSXX、MP3、GIF、JPG、PNG等。

在一个实施方式中,使用IMAGE_NT_HEADER32的大小来确定IMAGE_SECTION_HEADER的位置。IMAGE_NT_HEADER成员FileHeader被解引用以访问包含PE图像中的段的数目的IMAGE_FILE_HEADER。计数器变量被初始化为零使得每个段可以被分析。该进程确定段的数目是否被预期。附加段是可疑的并且可能包含恶意软件。对于每个段,验证该段的名称和属性。文件的大小根据该段的SizeOfRawData成员和指针的大小被确定。可以对每个段重复该进程。最后段的大小是SizeOfRawData成员中的字节的数目。该结果是PE映像在存储设备上应当占用的字节数。使用逐段分析来计算文件的整个大小。

从文件系统中检索文件的存储文件大小。在一个实施方式中,操作系统使用GetFileSize()API从文件系统中检索存储在磁盘上的文件大小。

将所确定的文件大小与文件的存储文件大小进行比较。在一个实施方式中,如果所确定的文件大小大于存储文件大小,则可以将数据附加到PE文件的末尾。如果返回代码指示没有附加数据,则PE大小和存储文件大小相等(没有数据附加到PE文件)。当所确定的文件大小大于存储文件大小时,这指示存在附加数据。

响应于所确定的文件大小大于文件的存储文件大小,对文件执行隐写术检测分析。在一个实施方式中,分析附加数据以确定其文件格式以及其是否加密。返回代码指示数据已经被附加,因此可以执行定义的策略,例如隔离、删除或剥离附加数据。隐写术检测分析涉及对文件执行统计函数(熵、卡方等)。所执行的分析取决于文件类型。如果是GIF文件,则搜索隐藏在ZIP文件中的隐藏数据。如果是EXE文件,则可以执行不同的分析。使用超过exe文件的末尾的信息来执行熵计算、卡方计算、中值和标准偏差计算以检测加密。

在一个实施方式中,使用静态分析算法来检测隐写术。该方法的益处和优点在于,可以在不使用签名扫描的情况下执行隐写术检测。在入站或出站数据上检测隐藏信息的存在。所确定的文件大小与存储文件大小之间的比较用于确定是否执行更昂贵的分析。文件大小比较确定是否存在附加载荷。当文件大小计算指示文件大小正常时,不执行昂贵的分析。因此,通过检测设备上的隐写术以及根据防火墙,危险文件可以在它们可以释放其秘密载荷之前被检测、隔离并移除。在其他实施方式中,隐写术检测可以与防火墙135或与电子邮件集成。

响应于指示文件中存在隐写术的隐写术检测分析,执行隐写术补救动作。将描述隐写术的信息发送至客户端设备。

实施方式的其他益处和优点是该方法在防火墙中集成了隐写术和勒索软件检测以检查每个包。该方法与电子邮件系统的集成扫描每个电子邮件和附件的内容。本发明不寻找签名,而寻找可疑指令集的指示,例如机器级或汇编级语言。在实施方式中,该方法部分地反汇编文件并且寻找这样的可疑指令集。

在内核模式下对隐写术的实时检测和防护的进程

图8示出了根据实施方式的用于在内核模式下对隐写术的实时检测和防护的示例进程。在一个实施方式中,图8的进程由受管节点100执行。在其他实施方式中,其他实体(例如,恶意软件分析模块140)可以执行该进程中的步骤中的一些步骤或全部步骤。类似地,实施方式可以包括不同和/或附加的步骤,或者以不同顺序执行步骤。

受管节点100检测800经由防火墙、操作系统或电子邮件系统的文件传输。在一个实施方式中,解析PE。在读取和解析PE时,针对可疑的API使用,分析Windows EXE、DLL、字体、系统驱动程序和目标代码的结构。

受管节点100确定805文件的大小。文件大小确定可以用于检测图像是否含有未授权数据,例如恶意zip文件或可执行附加数据。例如,可以识别存储在PE文件格式(例如,EXE、DLL、SCR、SYS、DRV、ACM、CPL、SCR等)末尾处的隐藏信息。

受管节点100从文件系统中检索810文件的存储文件大小。在一个实施方式中,操作系统使用GetFileSize()API从文件系统中检索存储在磁盘上的文件大小。

受管节点100将所确定的文件大小与文件的存储文件大小进行比较815。在一个实施方式中,如果所确定的文件大小大于存储文件大小,则可以将数据附加到PE文件的末尾。如果返回代码指示没有附加数据,则PE大小和存储文件大小相等(没有数据附加到PE文件)。当所确定的文件大小大于存储文件大小时,这指示存在附加数据。

响应于所确定的文件大小大于文件的存储文件大小,受管节点100对文件执行820隐写术检测分析。隐写术检测分析涉及对文件执行统计函数(熵、卡方等)。所执行的分析取决于文件类型。如果是GIF文件,则搜索隐藏在ZIP文件中的隐藏数据。如果是EXE文件,则可以执行不同的分析。使用超过exe文件的末尾的信息来执行熵计算、卡方计算、中值和标准偏差计算以检测加密。

响应于指示文件中存在隐写术的隐写术检测分析,受管节点100执行825隐写术补救动作并且向客户端设备发送描述隐写术的信息。隐秘术补救动作可以包括终止对正试图通过防火墙的文件的处理和传输。隐秘术补救动作可以包括隔离文件。

替选实施方式

在替选实施方式中,本文公开的方法和系统可以用于增强对本地存储在受管节点100上或在云(例如,云主机105)中的敏感数据的保护和隐私。使用这些替选实施方式,可以检测和/或防止敏感数据跨预设地理边界的未经授权的导出。例如,实施方式可以用于将敏感数据标记到特定地理区域并且将数据锁定到该位置,使得来自该地理区域的数据的未经授权导出和/或访问被监视和防止。因此,替选实施方式可以在个人数据、数据主体的个人可识别信息的导出上向用户提供更大的控制。这些替选实施方式还为企业提供用于防止数据处理——除非该数据处理是在规章指定的合法基础下进行的——以及数据泄露的有效报告的方法。

此外,替选实施方式使得企业能够在存储数据时提供假名和/或完整的数据匿名。在一个实施方式中,可以加密所存储的个人数据,使得在没有正确的解密密钥的情况下所得到的个人加密数据不能归因于特定的数据主体。在一个实施方式中,可以实现用非敏感替代物(令牌)来替换敏感数据的令牌化,所述非敏感替代物不具有外在的或可利用的含义或价值。令牌化不改变数据的类型或长度,这意味着它可以由诸如可能对数据长度和类型敏感的数据库的遗留系统处理。该方法的优点和益处在于,与传统加密的数据相比,需要更少的计算资源和更少的存储空间。然后,可以使用所公开的实施方式检测和防止对受保护数据的恶意软件或隐写术攻击,所公开的实施方式包括对与检测到的文件操作请求相关联的文件执行恶意软件或隐写术检测分析。

示例机器

图9是示出能够从机器可读介质中读取指令并且在处理器或控制器中执行指令的示例机器的部件的框图。具体地,图9示出了计算机系统900的示例形式的图示机器。计算机系统900可以用于执行指令924(例如,程序代码或软件)以用于使机器执行本文描述的方法(或进程)中的任何一个或更多个。在替选实施方式中,机器作为独立设备或连接其他机器的连接(例如,联网)设备来操作。在联网部署中,机器可以在服务器客户端网络环境中以服务器机器或客户端机器的能力操作,或者在对等(或分布式)网络环境中作为对等机器操作。

在一个实施方式中,非暂态计算机可读介质存储下述指令,所述指令当由至少一个处理器执行时使处理器执行本文中描述的操作。机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、智能电话、物联网(IoT)设备、网络路由器、交换机或网桥、或者能够(顺序的或以其他方式)执行指定要由该机器采取的动作的指令924的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”也应被视为包括单独地或联合地执行指令924以执行本文中讨论的方法中的任何一个或更多个方法的机器的任何集合。

示例计算机系统900包括一个或更多个处理单元(通常为处理器902)。处理器902例如是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、控制器、状态机、一个或更多个专用集成电路(ASIC)、一个或更多个射频集成电路(RFIC)或其任何组合。计算机系统900还包括主存储器904。计算机系统可以包括存储单元916。处理器902、存储器904和存储单元916经由总线908通信。

此外,计算系统900还可以包括静态存储器906、显示驱动器910(例如,用于驱动等离子显示面板(PDP)、液晶显示器(LCD)或投影仪)。计算机系统900还可以包括字母数字输入设备912(例如,键盘)、光标控制设备914(例如,鼠标、轨迹球、操纵杆、运动传感器或其他指向仪器)、信号生成设备918(例如,扬声器)以及网络接口设备920,上述设备还被配置成经由总线908通信。

存储单元916包括机器可读介质922,所述机器可读介质922上存储有实施本文中描述的方法或功能中的任何一个或更多个方法或功能的指令924(例如,软件)。指令924也可以在其由计算机系统900执行期间完全地或至少部分地驻留在主存储器904内或处理器902内(例如,在处理器的高速缓冲存储器内),主存储器904和处理器902也构成机器可读介质。可以经由网络接口设备920在网络926上发送或接收指令924。

虽然在示例实施方式中将机器可读介质922示出为单个介质,但是术语“机器可读介质”应当被视为包括能够存储指令924的单个介质或多个介质(例如,集中式数据库或分布式数据库,或者相关联的高速缓存和服务器)。术语“机器可读介质”还应当被视为包括能够存储用于由机器执行并且使得机器执行本文中公开的方法中的任何一个或更多个方法的指令924的任何介质。术语“机器可读介质”包括但不限于,以固态存储器、光学介质和磁性介质形式的数据存储库。

其他考虑因素

在整个说明书中,多个实例可以实现被描述为单个实例的部件、操作或结构。虽然一个或更多个方法的个体操作被示出和描述为分立的操作,但是个体操作中的一个或更多个可以同时执行并且不要求以所示的顺序执行操作。在示例配置中作为分立部件呈现的结构和功能可以实现为组合的结构或部件。类似地,作为单个部件呈现的结构和功能可以被实现为分立的部件。这些和其他变型、修改、添加以及改进落入本文中的主题的范围内。

例如,如图1至图4、图6至图7和图9所示和所述的,本文中某些实施方式被描述为包括逻辑或许多部件、模块或机制。模块可以构成软件模块(例如,机器可读介质上包含的代码)或硬件模块。硬件模块是能够执行某些操作的有形单元并且可以以某种方式配置或布置。在示例实施方式中,一个或更多个计算机系统(例如,独立的、用户端或服务器计算机系统)或计算机系统的一个或更多个硬件模块(例如,处理器或处理器组)可以由软件(例如,应用程序或应用部)配置为用于执行如本文中所述的特定操作的硬件模块。

在各种实施方式中,硬件模块可以机械地或电子地实现。例如,硬件模块可以包括永久地配置为例如专用处理器的专用电路或逻辑,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)以执行某些操作。硬件模块还可以包括可编程逻辑或电路(例如,如包含在通用处理器或其他可编程处理器内),其由软件临时配置以执行某些操作。应当理解,机械地、在专用和永久配置的电路中、或在临时配置的电路(例如,由软件配置)中实现硬件模块的决定可以由成本和时间考虑来驱动。

本文中描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或永久配置成执行相关操作的一个或更多个处理器(例如,处理器902)来执行。无论是被临时地配置还是被永久地配置,这样的处理器可以构成用于执行一个或更多个操作或功能的处理器实现的模块。在一些示例实施方式中,在本文中所提及的模块可以包括处理器实现的模块。

一个或更多个处理器还可以进行操作以支持在“云计算”环境中或者作为“软件即服务”(SaaS)的相关操作的执行。例如,操作中的至少一些可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作是经由网络(例如,因特网)以及经由一个或更多个适当的接口(例如,应用程序接口(API))可访问的。

操作中的某些操作的性能可以分布在一个或更多个处理器中,不仅驻留在单个机器中,而且跨多个机器部署。在一些示例实施方式中,一个或更多个处理器或处理器实现的模块可以位于单个地理位置(例如,在家庭环境、办公环境或服务器群内)。在其他示例实施方式中,一个或更多个处理器或处理器实现的模块可以跨多个地理位置分布。

根据对存储为机器存储器(例如,计算机存储器)内的位或二进制数字信号的数据的操作的算法或符号表示来呈现本说明书的一些部分。这些算法或符号表示是数据处理领域的普通技术人员用于将他们的工作的实质传达给本领域其他技术人员的技术的示例。如本文中所使用的,“算法”是导致期望结果的操作或类似处理的自洽序列。在该上下文中,算法和操作涉及物理量的物理操纵。通常但非必要地,这样的量可以采取能够被机器存储、访问、传输、组合、比较或以其他方式操纵的电信号、磁信号或光信号的形式。主要出于通用的原因,有时使用如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“术语”、“数字”、“编号”等词语来指代这样的信号是方便的。然而,这些词仅仅是方便的标记并且与适当的物理量相关联。

除非另有特别说明,否则本文中使用如“处理”、“计算(computing)”、“运算(calculating)”、“确定”、“呈现”、“显示”等词语的讨论可以是指机器(例如,计算机)的如下动作或处理:操作或变换在一个或更多个存储器(例如,易失性存储器、非易失性存储器或其组合)、寄存器或接收、存储、传输或显示信息的其他机器部件中作为物理(例如,电的、磁的或光的)量呈现的数据。

如本文中所使用的,对“一个实施方式”或“实施方式”的任意引用意味着结合实施方式描述的特定元件、特征、结构或特性被包括在至少一个实施方式中。在本说明书中各处出现的短语“在一个实施方式中”不一定全部指代同一实施方式。

可以使用表达“耦接”和“连接”以及它们的派生词来描述一些实施方式。例如,一些实施方式可以使用术语“耦接”来描述以指示两个或更多个元件直接物理或电接触。然而,术语“耦接”也可以表示两个或更多个元件彼此不直接接触,但是仍然彼此协作或相互作用。实施方式不限于该上下文。

如本文中所使用的,术语“包括”、“包含”、“含有”、“具有”、“有”或其任何其他变型均意在涵盖非排他性的包括。例如,包括一系列要素的处理、方法、物品或装置不一定仅限于那些要素,而是可以包括未明确列出的或这些处理、方法、物品或装置所固有的其他要素。此外,除非明确指出相反,“或”是指包含或而不是排他“或”。例如,条件A或B满足以下中的任何一个:A为真(或存在)且B为假(或不存在),A为假(或不存在)且B为真(或存在),以及A和B两者为真(或存在)。

另外,使用“一(a)”或“一个(an)”来描述本文中的实施方式的元件和部件。这仅是为了方便和给出所要求保护的发明的一般意义。该描述应该被理解为包括一个或至少一个,并且单数还包括复数,除非明显是其他意思。

在阅读本公开内容之后,本领域技术人员通过本文公开的原理将理解用于检测恶意软件的系统和处理的更多附加替选结构和功能设计。因此,尽管已示出并且描述了特定实施方式和应用,然而要理解的是,所公开的实施方式不限于本文所公开的特定结构和部件。在不脱离所附权利要求中限定的精神和范围的情况下,可以对本文中公开的方法和装置的布置、操作和细节作出对于本领域技术人员而言明显的各种修改、改变和变型。

此外,本公开内容还包括以下实施方式。

(1).一种用于在内核模式下对恶意软件的实时检测和防护的方法,包括:

检测由在用户模式下运行的进程发起的文件操作请求;

对与所检测到的文件操作请求相关联的文件缓冲区执行恶意软件检测分析以检测指示存在恶意软件的行为;

响应于检测到所述指示存在恶意软件的行为,识别负责发起所检测到的文件操作请求的进程;

对程序黑名单和程序白名单中的一个或更多个执行针对所识别的进程的搜索以确定所识别的进程是否是受信进程;以及

响应于确定所识别的进程不是受信进程:

针对所识别的进程执行恶意软件补救动作,以及

将描述恶意软件的信息发送至客户端设备。

(2).根据(1)所述的方法,其中,检测所述文件操作请求包括:

根据对应于所述文件操作请求的文件句柄,确定所述文件操作请求是否对应于所关注的操作;以及

响应于确定所述文件操作请求对应于所关注的操作,拦截所述文件操作请求。

(3).根据(2)所述的方法,其中,拦截所述文件操作请求包括:

由过滤管理器确定微过滤器驱动程序是否被注册以拦截文件操作请求;以及

响应于确定所述微过滤器驱动程序被注册以拦截文件操作请求,由所述过滤管理器将所述文件操作请求发送至所述微过滤器驱动程序。

(4).根据(1)所述的方法,其中,执行所述恶意软件检测分析包括:执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定所述文件缓冲区内的数据是否被加密。

(5).根据(1)所述的方法,其中:

确定所识别的进程不是受信进程还包括在所述程序黑名单上找到所识别的进程;以及

执行所述恶意软件补救动作还包括:

终止与所检测到的文件操作请求相关联的写操作,

通过从存储器中删除所检测到的文件操作请求,终止所检测到的文件操作请求,以及

隔离与所识别的进程相关联的磁盘文件映像。

(6).根据(1)所述的方法,还包括:响应于在所述程序白名单上找到所识别的进程,由微过滤器驱动程序忽略所检测到的文件操作请求。

(7).根据(1)所述的方法,其中,确定所识别的进程是否是受信进程还包括:响应于在所述程序黑名单或所述程序白名单上没有找到所述进程,将用于授权所识别的进程的请求发送至所述客户端设备。

(8).根据(7)所述的方法,其中,确定所识别的进程不是受信进程还包括:响应于将授权所识别的进程的请求发送至所述客户端设备,从所述客户端设备接收所识别的进程未被授权的消息。

(9).根据(8)所述的方法,还包括:将所识别的进程添加到所述程序黑名单。

(10).根据(1)所述的方法,还包括:响应于从所述客户端设备接收到所识别的进程被授权的消息,将所识别的进程添加到所述程序白名单。

(11).一种存储指令的非暂态计算机可读介质,所述指令在由至少一个处理器执行时使所述至少一个处理器执行如下操作:

检测由在用户模式下运行的进程发起的文件操作请求;

对与所检测到的文件操作请求相关联的文件缓冲区执行恶意软件检测分析以检测指示存在恶意软件的行为;

响应于检测到所述指示存在恶意软件的行为,识别负责发起所检测到的文件操作请求的进程;

对程序黑名单和程序白名单中的一个或更多个执行针对所识别的进程的搜索以确定所识别的进程是否是受信进程;以及

响应于确定所识别的进程不是受信进程:

针对所识别的进程执行恶意软件补救动作,以及

将描述恶意软件的信息发送至客户端设备。

(12).根据(11)所述的非暂态计算机可读介质,其中,使所述至少一个处理器检测所述文件操作请求的指令还包括使所述至少一个处理器进行以下操作的指令:

根据对应于所述文件操作请求的文件句柄,确定所述文件操作请求是否对应于所关注的操作;以及

响应于确定所述文件操作请求对应于所关注的操作,拦截所述文件操作请求。

(13).根据(12)所述的非暂态计算机可读介质,其中,使所述至少一个处理器拦截所述文件操作请求的指令还包括使所述至少一个处理器进行以下操作的指令:

由过滤管理器确定微过滤器驱动程序是否被注册以拦截文件操作请求;以及

响应于确定所述微过滤器驱动程序被注册以拦截文件操作请求,由所述过滤管理器将所述文件操作请求发送至所述微过滤器驱动程序。

(14).根据(11)所述的非暂态计算机可读介质,其中,使所述至少一个处理器执行所述恶意软件检测分析的指令还包括使所述至少一个处理器进行如下操作的指令:执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定所述文件缓冲区内的数据是否被加密。

(15).根据(11)所述的非暂态计算机可读介质,其中:

使所述至少一个处理器确定所识别的进程不是受信进程的指令还包括使所述至少一个处理器将在所述程序黑名单上找到所识别的进程的指令;以及

使所述至少一个处理器执行所述恶意软件补救动作的指令还包括使所述至少一个处理器进行以下操作的指令:

终止与所检测到的文件操作请求相关联的写操作,

通过从存储器中删除所检测到的文件操作请求来终止所检测到的文件操作请求,以及

隔离与所识别的进程相关联的磁盘文件映像。

(16).根据(11)所述的非暂态计算机可读介质,还存储在由所述至少一个处理器执行时使所述至少一个处理器进行如下操作的指令:响应于在所述程序白名单上找到所识别的进程,由微过滤器驱动程序忽略所检测到的文件操作请求。

(17).根据(11)所述的非暂态计算机可读介质,其中,使所述至少一个处理器确定所识别的进程是否是受信进程的指令还包括使所述至少一个处理器进行如下操作的指令:响应于在所述程序黑名单和所述程序白名单上没有找到所述进程,将用于授权所识别的进程的请求向发送至所述客户端设备。

(18).根据(17)所述的非暂态计算机可读介质,其中,使所述至少一个处理器确定所识别的进程不是受信进程的指令还包括使所述至少一个处理器进行如下操作的指令:响应于将授权所识别的进程的请求发送至所述客户端设备,从所述客户端设备接收所识别的进程未被授权的消息。

(19).根据(18)所述的非暂态计算机可读存储介质,还存储在由所述至少一个处理器执行时使所述至少一个处理器将所识别的进程添加到所述程序黑名单的指令。

(20).根据(11)所述的非暂态计算机可读介质,还存储在由所述至少一个处理器执行时使所述至少一个处理器进行如下操作的指令:响应于从所述客户端设备接收到所识别的进程被授权的消息,将所识别的进程添加到所述程序白名单。

(21).一种用于在内核模式下对隐写术的实时检测和防护的方法,包括:

检测经由防火墙、操作系统或电子邮件系统的文件传输;

确定所述文件的大小;

从文件系统中检索所述文件的存储文件大小;

将所确定的文件大小与所述文件的所述存储文件大小进行比较;

响应于所确定的文件大小大于所述文件的所述存储文件大小,对所述文件执行隐写术检测分析;以及

响应于指示所述文件中存在隐写术的所述隐写术检测分析:

执行隐写术补救动作,以及

将描述所述隐写术的信息发送至客户端设备。

(22).根据(21)所述的方法,其中,确定所述文件的大小包括:

获得指向所述文件的段头部的指针,所述段头部与所述文件的多个段相关联;

对于所述文件的多个段中的每个段,确定所述段的大小;以及

将所述文件的多个段中的每个段的大小相加以确定所述文件的大小。

(23).根据(22)所述的方法,其中,获得指向所述文件的段头部的指针包括:

使用所述文件的文件名或所述文件的路径打开所述文件;

读取所述文件的头部;

从所述头部中检索幻数;以及

验证所述幻数以获得指向所述文件的段头部的指针。

(24).根据(21)所述的方法,其中,对所述文件执行所述隐写术检测分析包括:

识别所述文件中的附加载荷;

分析所述附加载荷以确定所述附加载荷的文件格式;以及

基于所述附加载荷的文件格式执行所述隐写术检测分析。

(25).根据(21)所述的方法,其中,对所述文件执行所述隐写术检测分析包括:

识别所述文件中的附加载荷;以及

执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定所述附加载荷内的数据是否被加密。

(26).根据(21)所述的方法,其中,对所述文件执行所述隐写术检测分析包括:

识别所述文件中的附加载荷;以及

识别在所述附加载荷内存在未授权数据。

(27).根据(21)所述的方法,其中,对所述文件执行所述隐写术检测分析包括:

识别所述文件中的附加载荷;以及

识别在所述附加载荷内存在汇编级或机器级指令。

(28).根据(21)所述的方法,其中,执行所述隐写术补救动作包括:

终止所述文件的处理和传输;以及

隔离所述文件。

(29).一种存储指令的非暂态计算机可读介质,所述指令在由至少一个处理器执行时使所述至少一个处理器执行如下操作:

检测经由防火墙、操作系统或电子邮件系统的文件传输;

确定所述文件的大小;

从所述文件系统中检索所述文件的存储文件大小;

将所确定的文件大小与所述文件的所述存储文件大小进行比较;

响应于所确定的文件大小大于所述文件的所述存储文件大小,对所述文件执行隐写术检测分析;以及

响应于指示所述文件中存在隐写术的所述隐写术检测分析:

执行隐写术补救动作,以及

将描述所述隐写术的信息发送至客户端设备。

(30).根据(29)所述的非暂态计算机可读介质,其中,使所述至少一个处理器确定所述文件的大小的指令包括使所述至少一个处理器进行以下操作的指令:

获得指向所述文件的段头部的指针,所述段头部与所述文件的多个段相关联;

对于所述文件的多个段中的每个段,确定所述段的大小;以及

将所述文件的多个段中的每个段的大小相加以确定所述文件的大小。

(31).根据(30)所述的非暂态计算机可读介质,其中,使所述至少一个处理器获得指向所述文件的段头部的指针的指令包括使所述至少一个处理器进行以下操作的指令:

使用所述文件的文件名或所述文件的路径打开所述文件;

读取所述文件的头部;

从所述头部中检索幻数;以及

验证所述幻数以获得指向所述文件的段头部的指针。

(32).根据(29)所述的非暂态计算机可读介质,其中,使所述至少一个处理器对所述文件执行所述隐写术检测分析的指令包括使所述至少一个处理器进行以下操作的指令:

识别所述文件中的附加载荷;

分析所述附加载荷以确定所述附加载荷的文件格式;以及

基于所述附加载荷的文件格式来执行所述隐写术检测分析。

(33).根据(29)所述的非暂态计算机可读介质,其中,使所述至少一个处理器对所述文件执行所述隐写术检测分析的指令包括使所述至少一个处理器进行以下操作的指令:

识别所述文件中的附加载荷;以及

执行蒙特卡洛近似、熵确定、序列系数分析、算术平均值确定、卡方确定和标准偏差确定中的一个或更多个以确定所述附加载荷内的数据是否被加密。

(34).根据(29)所述的非暂态计算机可读介质,其中,使所述至少一个处理器对所述文件执行所述隐写术检测分析的指令包括使所述至少一个处理器进行以下操作的指令:

识别所述文件中的附加载荷;以及

识别在所述附加载荷内存在未授权数据。

(35).根据(29)所述的非暂态计算机可读介质,其中,使所述至少一个处理器对所述文件执行所述隐写术检测分析的指令包括使所述至少一个处理器进行以下操作的指令:

识别所述文件中的附加载荷;以及

识别在所述附加载荷内存在汇编级或机器级指令。

(36).根据(29)所述的非暂态计算机可读介质,其中,使所述至少一个处理器执行所述隐写术检测分析的指令包括使所述至少一个处理器进行以下操作的指令:

终止所述文件的处理和传输;以及

隔离所述文件。

(37).一种计算机系统,包括:

至少一个计算机处理器;以及

存储指令的非暂态计算机可读介质,所述指令在由所述至少一个计算机处理器执行时使至少一个处理器执行如下操作:

检测经由防火墙、操作系统或电子邮件系统的文件传输;

确定所述文件的大小;

从所述文件系统中检索所述文件的存储文件大小;

将所确定的文件大小与所述文件的所述存储文件大小进行比较;

响应于所确定的文件大小大于所述文件的所述存储文件大小,对所述文件执行隐写术检测分析;以及

响应于指示所述文件中存在隐写术的所述隐写术检测分析:

执行隐写术补救动作,以及

将描述所述隐写术的信息发送至客户端设备。

(38).根据(37)所述的计算机系统,其中,使所述至少一个计算机处理器确定所述文件的大小的指令包括使所述至少一个处理器进行以下操作的指令:

获得指向所述文件的段头部的指针,所述段头部与所述文件的多个段相关联;

对于所述文件的多个段中的每个段,确定所述段的大小;以及

将所述文件的多个段中的每个段的大小相加以确定所述文件的大小。

(39).根据(38)所述的计算机系统,其中,使所述至少一个计算机处理器获得指向所述文件的段头部的指针的指令包括使所述至少一个处理器进行以下操作的指令:

使用所述文件的文件名或所述文件的路径打开所述文件;

读取所述文件的头部;

从所述头部中检索幻数;以及

验证所述幻数以获得指向所述文件的段头部的指针。

(40).根据(37)所述的计算机系统,其中,使所述至少一个计算机处理器对所述文件执行所述隐写术检测分析的指令包括使所述至少一个计算机处理器进行以下操作的指令:

识别所述文件中的附加载荷;

分析所述附加载荷以确定所述附加载荷的文件格式;以及

基于所述附加载荷的文件格式执行所述隐写术检测分析。

相关技术
  • 在内核模式下对恶意软件和隐写术的实时检测和防护
  • 基于帧间预测模式回复特性检测的视频隐写分析方法、装置、设备和计算机可读存储介质
技术分类

06120116492338