安全存储装置的制作方法

文档序号:20361509发布日期:2020-04-10 23:43阅读:196来源:国知局
安全存储装置的制作方法

相关申请案

本申请案主张08/04/2017年申请的标题为“安全存储装置(securestoragedevice)”的美国临时专利申请第62,541,505号的申请日的权益,其全部内容以引用的方式并入本文中。



背景技术:

本发明涉及计算机安全性,且特定来说,涉及保护计算机免受恶意软件(malicioussoftware)(恶意程序(malware))影响。

恶意软件影响全世界大量计算机系统。恶意程序以其例如计算机病毒、蠕虫、木马和间谍软件等多种形式,向数百万计算机用户呈现严重风险,使这些计算机用户易受数据和敏感信息丢失、身份盗用以及生产率损失等攻击。勒索程序(ransomware)是尤其危险的恶意程序类型,其将在例如计算机的硬盘驱动器的存储媒体上的找到的一组文件加密,并且接着要求文件的拥有者付款以恢复相应数据。

可使用反恶意程序软件检测恶意软件和/或使恶意软件失去能力。然而,恶意程序采用各种策略避开检测。一种这类策略涉及混淆,例如将恶意代码加密,或使用每一被感染计算机上的略微不同的代码版本(通常被称为多态性的特征)。另一示范性检测避免方法将恶意活动分散在多个代理当中,其中每一代理执行一组单独的动作,所述动作在孤立地进行时无法被视为指示恶意程序。

迫切需要开发用于保护以数字方式存储的数据免于被盗窃和未经授权的修改(包含被恶意软件盗窃和未经授权的修改)的稳健系统和方法。



技术实现要素:

根据一个方面,一种计算机系统包括第一硬件处理器和安全存储装置,所述安全存储装置经由存储接口连接到所述第一硬件处理器,所述存储接口经配置以接收根据存储传输协议格式化的存储装置存取请求。所述安全存储装置包括第二硬件处理器和非易失性存储单元。所述第一硬件处理器经配置以响应于检测到在所述第一硬件处理器上执行的软件对将数据包存储于所述存储单元上的请求,将所述数据包加密。所述第一硬件处理器进一步经配置以响应于将所述数据包加密,将真存储装置存取请求传输到所述存储接口,所述真存储装置存取请求包括所述经加密数据包。所述第一硬件处理器进一步经配置以根据所述存储传输协议产生假存储装置存取请求,所述假存储装置存取请求包括加密密钥的至少一部分,和将所述假存储装置存取请求传输到所述存储接口。所述第二硬件处理器经配置以响应于经由所述存储接口接收到通信,确定所述通信是否包括所述假存储装置存取请求。作为响应,当所述通信包括所述假存储装置存取请求时,所述第二硬件处理器经配置以根据所述假存储装置存取请求确定所述加密密钥。所述第二硬件处理器进一步经配置以响应于接收到所述真存储装置存取请求,采用所述加密密钥解密所述数据包,并且确定所述经解密数据包是否包括恶意软件。

根据另一方面,一种安全存储装置包括第一硬件处理器和非易失性存储单元,所述安全存储装置经配置以经由存储接口连接到第二硬件处理器,所述存储接口经配置以接收根据存储传输协议格式化的存储装置存取请求。所述第二硬件处理器经配置响应于检测到在所述第二硬件处理器上执行的软件对将数据包存储于所述存储单元上的请求,将所述数据包加密。所述第二硬件处理器进一步经配置以响应于将所述数据包加密,将真存储装置存取请求传输到所述存储接口,所述真存储装置存取请求包括所述经加密数据包。所述第二硬件处理器进一步经配置以根据所述存储传输协议产生假存储装置存取请求,所述假存储装置存取请求包括加密密钥的至少一部分,和将所述假存储装置存取请求传输到所述存储接口。所述第一硬件处理器经配置以响应于经由所述存储接口接收到通信,确定所述通信是否包括所述假存储装置存取请求。作为响应,当所述通信包括所述假存储装置存取请求时,所述第一硬件处理器经配置以根据所述假存储装置存取请求确定所述加密密钥。所述第一硬件处理器进一步经配置以响应于接收到所述真存储装置存取请求,采用所述加密密钥来解密所述数据包,和确定所述经解密数据包是否包括恶意软件。

根据另一方面,一种计算机安全性方法包括:经由存储接口将安全存储装置连接到第一硬件处理器,所述存储接口经配置以接收根据存储传输协议格式化的存储装置存取请求,其中所述安全存储装置包括第二硬件处理器和非易失性存储单元。所述方法另外包括响应于检测到在所述第一硬件处理器上执行的软件对将数据包存储于所述存储单元上的请求,采用所述第一硬件处理器将所述数据包加密。所述方法另外包括响应于将所述数据包加密,采用所述第一硬件处理器将真存储装置存取请求传输到所述存储接口,所述真存储装置存取请求包括所述经加密数据包。所述方法另外包括采用所述第一硬件处理器根据所述存储传输协议产生假存储装置存取请求,所述假存储装置存取请求包括加密密钥的至少一部分,和采用所述第一硬件处理器将所述假存储装置存取请求传输到所述存储接口。所述方法另外包括响应于经由所述存储接口接收到通信,采用所述第二硬件处理器确定所述通信是否包括所述假存储装置存取请求。作为响应,当所述通信包括所述假存储装置存取请求时,所述方法另外包括采用所述第二硬件处理器来采用所述加密密钥解密所述数据包;和采用所述第二硬件处理器确定所述经解密数据包是否包括恶意软件。

附图说明

当阅读以下详细描述并且当参考图式时,本发明的前述方面和优点将得到更好的理解,在图式中:

图1说明根据本发明的一些实施例的受保护以免受计算机安全性威胁的主机系统的示范性硬件配置。

图2示出根据本发明的一些实施例的安全存储装置的示范性硬件配置。

图3-a示出根据本发明的一些实施例的在受保护主机系统上执行的示范性软件组件。

图3-b说明根据本发明的一些实施例的一组替代性软件组件。

图4示出根据本发明的一些实施例的在安全存储装置内执行的示范性软件组件。

图5示出根据本发明的一些实施例的通过图3-a-b的计算机安全模块(csm)执行的一组示范性步骤。

图6示出根据本发明的一些实施例的通过在安全存储装置内执行的软件进行的示范性步骤序列。

图7说明根据本发明的一些实施例的通过在安全存储装置内执行的软件执行以维持存储语义映射的示范性步骤序列。

具体实施方式

在以下描述中,应理解,结构之间的所有所叙述的连接可以是直接操作性连接,或者通过中间结构的间接操作性连接。元件集包含一或多个元件。对元件的任何叙述应理解为指至少一个元件。多个元件包含至少两个元件。除非另有需要,否则不需要必然以特定所说明的次序执行任何所描述的方法步骤。从第二元件导出第一元件(例如,数据)涵盖第一元件等于第二元件,以及通过处理第二元件和任选地其它数据产生第一元件。根据参数作出确定或决策涵盖根据参数和任选地根据其它数据作出确定或决策。除非另外指定,否则某一数量/数据的指示符可以是数量/数据本身,或者是不同于数量/数据本身的指示符。计算机程序是进行任务的一连串处理器指令。在本发明的一些实施例中描述的计算机程序可为独立的软件实体或其它计算机程序的子实体(例如,子例程、库)。计算机可读媒体涵盖非暂时性媒体,例如磁性、光学和半导体存储媒体(例如,硬盘驱动器、光盘、快闪存储器、dram),以及例如传导性电缆和光纤链路的通信链路。根据一些实施例,本发明尤其提供了计算机系统,其包括被编程为执行本文所描述的方法的硬件(例如,一或多个处理器),以及执行本文所描述的方法的计算机可读媒体编码指令。

以下描述通过实例且未必通过限制来说明本发明的实施例。

图1示出根据本发明的一些实施例的受保护以免受计算机安全性威胁的主机系统10的示范性硬件配置。示范性主机系统10包含计算机(例如,个人计算机、公司服务器等)、移动计算装置(例如,笔记型计算机、平板pc)、电信装置(例如,智能手机)、数字电器(tv、游戏控制台等)、可穿戴计算装置(例如,智能手表),或具有处理器和存储器的并且需要计算机安全性保护的任何其它电子装置。为简单起见,所说明的主机系统是计算机系统;例如移动电话、智能手表等其它主机系统的硬件配置可与所说明的配置略微不同。

主机系统10包括一组物理装置,其包含硬件处理器16和存储器单元18。在一些实施例中,处理器16包括物理装置(例如微处理器、形成于半导体衬底上的多核心集成电路等),其经配置以用一组信号和/或数据执行计算和/或逻辑操作。在一些实施例中,这类操作以处理器指令序列(例如,机器代码或其它类型的编码)的形式递送到处理器16。存储器单元18可包括存储由处理器16存取或产生的指令和/或数据的易失性计算机可读媒体(例如,dram、sram)。

输入装置20可包含使得用户能够将数据和/或指令引入到主机系统10中的装置,以及使这类引入变成可能的相应硬件接口和/或适配器。示范性输入装置包含按钮、键盘、鼠标、操纵杆、触摸屏、麦克风、相机、游戏控制器、手势检测系统和运动检测传感器等。输出装置22可包含例如监视器和扬声器等显示装置,以及例如图形卡等硬件接口/适配器,其允许主机系统10将数据传送到用户。在一些实施例中,如在触摸屏装置的情况下,输入装置20和输出装置22可以共享共同硬件部分。网络适配器26使得主机系统10能够连接到通信网络,例如局域网(lan),和/或连接到其它装置/计算机系统。

安全存储装置24包含实现软件指令和/或其它数据的非易失性存储、读取和写入的计算机可读媒体。示范性存储装置24包含磁盘、光盘和快闪存储器装置,以及例如cd和/或dvd磁盘和驱动器的可装卸媒体。在一些实施例中,如下文详细地示出,安全存储装置24具有特定地配置成增强所存储的数据的安全性的其它硬件和软件组件。

在一些实施例中,控制器集线器28包含多个系统、外围和/或芯片组总线,和/或实现处理器16和装置18、20、22、24和26之间的通信的所有其它电路。控制器集线器28的示范性组件包含存储器控制器、输入/输出(i/o)控制器和中断控制器。取决于硬件制造商和装置,一些或所有这类控制器可并入到单个集成电路中,和/或可与处理器16集成在一起。在一些实施例中,例如形成输出装置22的部分的图形适配器的一些其它装置还可与处理器16集成在一起。

图2示出根据本发明的一些实施例的安全存储装置24的示范性硬件配置。一些实施例缓解恶意软件通过将常规存储装置即主存储装置30(例如,磁性或固态驱动器)与和主机10的主处理器分开的专用安全性处理器116配对造成的风险。此辅助处理器可与假设常规硬盘驱动器外观尺寸的共同印刷电路板上的存储单元和/或额外硬件集成在一起。在另一示范性实施例中,安全存储装置24可封装为外部大容量存储装置(例如,闪存驱动器、外部硬盘驱动器),其可经由例如通用串行总线(usb)或接口/连接器的常规接口连接到主机系统。

主存储30可充当用于主机系统10的实际上的存储装置。因而,主存储30可存储属于操作系统和/或在主机处理器16上的执行的其它软件应用程序的代码和/或数据,以及用户的数据,例如文档、图像、声音文件等。

安全性处理器116包括物理电子电路(例如,形成于半导体衬底上的集成电路),其经配置以用一组信号和/或数据执行数学和/或逻辑操作。在一些实施例中,处理器116是用作个人计算机和/或移动电话中的中央处理单元(cpu)的类型的多用途通用微处理器。这类处理器的实例来自例如的制造商的常规处理器。在替代实施例中,处理器116包括定制的电子电路,例如专用集成电路(asic),或现场可编程门阵列(fpga)。处理器116的其它实施例包含图形处理单元(gpu),或上述的组合。使用这类专门化处理器可为有利的,这是因为其架构可经尤其精巧地制作并且针对并行计算和某些专门化任务进行优化。如下文进一步描述,并行的专门化架构可有益于例如加密/解密的应用程序。

安全存储装置24的额外硬件组件可包含安全性存储器118,其提供用于存储由处理器116存取或产生的指令和/或数据的易失性计算机可读媒体(例如dram、sram)。装置24可另外包括安全性控制器34,其一般性地表示总线和/或使装置24的硬件组件互连的所有其它电路。安全存储装置24可借助于存储接口36(例如,串行at附件-sata,或pci高速接口和/或连接器)进一步连接到主机系统10的控制器集线器28。

在一些实施例中,安全存储装置24可另外包含次级存储装置32,其包括非易失性计算机可读媒体。在一些实施例中,主存储装置30和次级存储装置32实施为单个物理大容量存储装置(磁性、光学或固态驱动器)的不同逻辑分区。次级存储装置32可对在处理器16上的执行的软件不可见,并且仅可存取在辅助安全性处理器116上执行的软件。可使用经配置以将有限范围的存储地址暴露给主机处理器16的硬件逻辑(安全性控制器34的电路)达成这类隔离。

次级存储装置32可用于存储安全代码和数据,例如指示恶意程序的签名等。次级存储装置32可另外存储待在起动(启动)时由处理器116执行的代码。如下文更详细地示出,安全存储装置24的一些实施例使用次级存储装置32存储文件系统语义映射的编码。存储装置32的其它实施例可存储在主存储装置30中存储的数据的部分副本(例如,备份)。

在一些实施例中,主存储装置30和次级存储装置32可经由一组位置指示符(地址)寻址。取决于实施方案,存储装置30、32可划分成单独的可寻址单元,例如扇区、块和/或集群。

图3-a示出根据本发明的一些实施例的在主机处理器16上执行的示范性软件组件。操作系统(os)40包括一组计算机程序,其提供主机系统10的硬件和例如应用程序41a-b的其它软件之间的接口。os40可包括任何广泛可得的操作系统,例如等。应用程序41a-b一般性地表示任何计算机程序,包含字处理器、电子表格应用程序、成像应用程序、游戏、浏览器和电子通信应用程序等等。

本发明的一些实施例另外包含计算机安全模块(csm)44,其包括保护主机系统10免受恶意程序影响的软件。csm44可包含例如用于检测恶意软件的计算机程序,和/或用于使这类软件失去能力的计算机程序。这类组件可采用所属领域中已知的任何的计算机安全性方法。在一些实施例中,csm44另外包括作为os40和安全存储装置24之间的接口操作的存储中介者组件42。示范性存储中介者42可操作为使得能够读取来自主存储装置30的数据和将数据写入到主存储装置30的存储驱动器。如在下文更详细地示出,存储中介者42可进一步经配置以与在安全性处理器116上执行的软件交换消息和/或数据。

图3-b示出在硬件虚拟化环境中,例如在云计算应用程序中操作的替代性实施例。虚拟机(vm)是所属领域中用于描述实际物理机器/计算机系统的仿真的术语,vm能够运行操作系统和其它应用程序。超管理器(hypervisor)包含经配置以产生或启用例如虚拟处理器和虚拟mmu的多个虚拟化装置并且将这类虚拟化装置呈现给软件而不是呈现给主机系统10的真实物理装置的软件。这类操作通常被称为暴露虚拟机。超管理器可使得多个虚拟机能够共享主机系统10的硬件资源,并且可另外管理这类复用,使得每一vm独立地操作并且不知道在相应主机上同时执行的其它vm。常用超管理器的实例包含来自vmware公司的vmwarevspheretm和开放源代码xen超管理器(open-sourcexenhypervisor)等等。在本发明描述中,软件据称当在相应虚拟机的虚拟处理器上执行时是在虚拟机内执行。

在图3-b中说明的示范性配置中,超管理器46暴露客体vm48a。操作系统和一组用户应用程序在客体虚拟机48a内执行,而csm44在与客体vm48a分开的专用安全性虚拟机48b内执行。在对图3-b替代的实施例中,csm44和/或存储中介者42可包括超管理器46加载/调用的一组库。因而,csm44和/或存储中介者42可在客体vm48a下方,在超管理器46的处理器权限等级处(例如,平台上的环1或vmxroot)执行。例如图3-b中说明的配置可由于增加的安全性而比图3-a中说明的配置优选。客体vm48a和安全性vm48b的虚拟环境可相对好地彼此隔离,使得在客体vm48a内执行的恶意软件无法感染或以其它方式干扰在安全性vm48b内执行的软件。

图4示出根据本发明的一些实施例的在安全存储装置24内(即,在处理器116上)执行的一组示范性软件组件。所说明的软件包含存储安全性代理50和加密引擎52。代理50可以经配置以维持主存储装置30的文件系统语义映射并且应用一组启发式(例如,决策规则)以确定在主机处理器16上执行的软件对存取主存储装置30的请求是否指示计算机安全性威胁。引擎52可以经配置以对来往于主存储装置30的数据包执行加密和/或解密操作。将在下文详述组件50和52的操作。

在一些实施例中,csm44例如通过经由存储中介者42管理的通信信道交换通知/信号,与在安全存储装置24(例如,安全性代理50)内执行的软件合作。从处理器16到安全存储装置24的示范性通知(在本文中被称为下行链路通知)包含待由处理器116执行的操作的指示符,以及其它数据,例如文件名、加密密钥、一组旗标等。如下文进一步详述,csm44还可响应于某些安全性相关事件而发送下行链路通知。

示范性通信信道可使用在处理器和大容量存储单元之间输送数据的常规装置。举例来说,csm44和安全性代理50可根据存储传输协议(例如串行ata或小型计算机系统接口(scsi)协议)交换消息。存储传输协议确立经由存储接口的通信的格式、帧/包的大小和内容、标头和/或有效负载的计数、大小、次序和/或格式、各个控制位和数据字段的显著性、命令的编码等。

在一些实施例中,下行链路通知伪装成假存取请求。假存取请求在本文中指代根据通信协议恰当地格式化(例如格式良好的sata命令),但本身不应被执行,而是替代地解释为通知的存储装置存取请求。术语“假”用以将这类请求与表示意在本身被执行的存储装置存取操作的“真实”或“真”存储装置存取请求区分开。

在一些实施例中,假请求从执行一个这类假请求会致使异常/故障的角度是无效存储装置存取请求。在这类情况下,故障处置器可拦截相应故障并且确定致使相应故障的请求为下行链路通知。在其它实施例中,假请求并非故障本身,而是可包括特定、反常或对立的参数值(旗标)组合。在又其它实施例中,假请求可包括有效的常规请求;这类假请求可因而例如根据有效负载的内容或由存储通信协议定义的其它数据字段的内容被识别。

假存取请求的一个实例包括对存取超出范围地址(即,在主存储装置30的正常可寻址范围外部的地址)的请求。实例包含‘读取块b’或‘在地址a处写入有效负载p’,其中块b的地址和地址a是在主存储装置30的正常可寻址范围外部。每一这类地址(a和/或b的特定值)可对应于传送到在安全存储装置24内部执行的软件的特定指令或事件。在另一实例中,下行链路通知可伪装成对在虽然在正常可寻址范围内但在正常操作期间通常不被存取的地址处存取存储装置的请求。举例来说,对写入到目前保持主引导记录(mbr)或关键os组件(例如,中的ntoskrnl.exe)的存储位置的请求可被安全存储装置24拦截并且解释为来自csm44的下行链路通知。

在又另一实例中,可根据特定有效负载内容(例如,特定位模式或签名)来识别假存取请求。在这类实施例中,在安全性处理器116上执行的软件组件可解析有效负载内容以检测假存取请求。各种有效负载p可对应于发到安全存储装置24的各种通知/指令。

在又另一实例中,假存取请求本身可根据由存储通信协议定义的另一数据字段的内容,例如根据在串行ata协议中指定的‘命令’和/或‘辅助’字段的内容被识别。在一个这类实例中,更新恶意程序签名的命令可编码到csm44发出的假存取请求的‘命令’字段中。实际签名可作为另一假存取请求的有效负载进行传输。

下行链路通知的一些其它实例包含扫描存储在特定存储位置处的数据的指令:相应位置可编码到假存取请求的有效负载中。在又另一实例中,包括不同地址a的假写入请求可指示不同的反恶意程序方法或参数。地址a中的每一地址或范围可指示不同启发式或不同群组的指示恶意程序的签名。

继而,存储中介者42可经由应答和/或对下行链路通知的另一形式的响应,例如经由硬件中断(irq)接收来自装置24的通知/信号(在本文中被称为上行链路通知),或接收通过装置24发送的并且通过存储中介者42和/或通过os40的另一事件处置器处置的异步sata通知。示范性上行链路通知包含安全性警报等,例如可能的勒索攻击的指示符,以及对更新存储装置24的固件的尝试的指示符。

又一示范性上行链路通知包括对加密密钥的请求。在一个这类实例中,安全性代理50可检测对写入经加密数据包的尝试。这类尝试可指示启动磁盘数据的自动加密(例如,来自科技)。作为响应,一些实施例可请求来自csm44的加密密钥。在下文进一步给出此方法的更多细节。

一些实施例使用下行链路-上行链路通知序列实施反复恶意程序检测的版本。在一个这类实例中,下行链路通知指示存储安全性代理50针对恶意程序扫描特定文件。代理50接着可将扫描的结果传送到csm44,所述csm44可根据第一扫描的结果选择另一文件或文件夹并且将新扫描目标经由新下行链路通知传送到安全性代理50,等。这类反复方案可启用必须在安全存储装置24上安装复杂软件的相当复杂的恶意程序检测程序。

图5示出根据本发明的一些实施例的通过csm44执行的示范性步骤序列。csm44可汇总来自主机系统10内的多个来源的安全性相关数据,并且可接收在软件执行期间关于某些事件的发生的通知。一个示范性来源是os40的系统调用功能,每当相应系统调用发生时通过钩连到发到csm44的信号来修改所述系统调用功能。安全性信息和通知的其它示范性来源包含os微过滤器(minifilter)。在一些实施例中,csm44可进一步从安全存储装置24周围接收上行链路通知。响应于检测到事件的发生,在步骤206中,csm44可应用一组启发式以确定主机系统10目前是否正被攻击。当分析显示疑似有恶意程序时,csm44可采取适当的反恶意程序措施(步骤212-214),例如阻挡或以其它方式防止执行恶意处理程序,并且向主机系统10的用户或管理员报警。一些检测到的事件保证通到安全存储装置24的下行链路通知。在一个这类实例中,csm44可引导安全性代理50执行存储装置存取尝试的调查。下行链路通知在图5中说明为步骤208-210。

在一些实施例中,存储安全性代理50以独立于os40的文件系统的方式的,从存储于存储装置30上的元数据重新产生供os40使用的文件系统的语义。换句话说,代理50维持相当于os40的文件系统的替代或影子的文件系统语义知识库。在常规计算机系统中,在硬件层级,数据存储为不具有语义信息的块。举例来说,不清楚哪块数据属于哪个文件/文件夹。进一步的复杂情况是碎片化,其中单个文件的数据不被连续地存储,而是分散在整个存储媒体的各个位置。通常由os采取使资产与存储位置相关联并且将硬件层级信息变换成有意义的数据的簿记任务。os通过维持专门化数据结构来管理这类任务,所述专门化数据结构被称为文件系统,编码为元数据并且存储在存储媒体的特定区段内。示范性文件系统包含fat、fat32和ntfs等等。

在一些实施例中,文件系统语义映射包括对主存储装置30的区段和os40的文件系统的项之间的映射的编码。示范性文件系统项包含目录和文件。示范性语义映射项使一地址范围[a1a2]与文件f相关联(其中f可表示为路径,例如c:\user\docs\letter.txt或/home/user/docs/letter.txt)。这类关联实际上指示存储于相应地址范围中的数据形成文件f的部分。另一示范性文件系统语义映射项指定地址范围[a3a4]存储文件系统元数据。又一示范性文件系统语义映射项使单独可寻址单元(例如,存储块或分区,与地址范围相对)与文件系统项相关联。语义映射数据可使用所属领域中已知的任何方法进行编码,例如编码为位图、链表等。

图6示出根据本发明的一些实施例的通过存储安全性代理50执行的示范性步骤序列。代理50经由存储接口36从os40接收存储装置存取请求。典型请求包含操作(读取、写入)的指示符、地址的指示符和有效负载。示范性存储装置存取请求具有“在地址a处读取n字节的块”和“在地址a处写入有效负载p”的语义。存取请求可另外包括相应请求的一组参数值(例如,旗标、属性)。存储装置存取请求的实际格式和编码可在硬件和软件实施方案当中改变。

当存取请求到达装置24时,代理50可根据请求的参数确定相应请求是指示真存储装置存取还是假存储装置存取(即,来自csm44的通知)。在一个示范性实施例中,对存取超出范围的地址的请求可指示这类通知。当相应存取请求包括下行链路通知时,步骤236可根据相应请求的参数选择和执行特定动作(在下文参见一些实例)。

在步骤序列228-230中,安全性代理50可根据语义映射进一步解码相应存储装置存取请求的语义。举例来说,代理50可确定正在写入的是元数据还是实际文件,是否正在产生新文件,目前正在写入或读取哪个特定文件等。另一步骤232可应用一组存取启发式以确定请求的存取是否指示计算机安全性威胁。当为否时,代理50可允许继续相应存取。当启发式指示请求的存取请求保证通知计算机安全模块44时,代理50可执行相当于安全性警报的上行链路通知。

图7示出由存储安全性代理50进行以维持文件系统语义映射的示范性步骤序列。可例如在启动时起始映射创建。在一些实施例中,代理50可确定主存储装置30上的存储供os40使用的文件系统元数据的位置。计算机取证技术的领域中已知达成此的数种方法。一些实施例使用在主机(例如,csm44)上执行的软件组件确定文件系统数据的位置。csm44接着可使用下行链路通知将相应位置传送到安全性代理50。

在步骤序列254-256中,代理50解析存储于主存储装置30中的文件系统元数据并且根据相应元数据汇编语义映射。一些实施例将所确定的语义映射数据(即,影子文件系统)存储于安全性存储器118和/或次级存储装置32中。接着,在软件在处理器16上执行期间,代理50可监听存储装置存取请求并且确定这类请求是否指示元数据的改变(例如,文件/目录创建或删除)。当为是时,代理50可相应地更新语义映射(图7中的步骤260-262-264)。

所说明通知和启发式的系统可用于多种应用程序,下文给出其中的一些实例。

用于保护硬件的命令过滤

精心制作的恶意软件可利用ata命令集(例如,downfoadmicrocode命令)的某些特征偷偷地更新存储装置的固件,进而将硬件层级恶意程序引入到装置自身中。一个这类示范性恶意程序是后门程序(backdoor),在主机上执行的软件可使用所述后门程序更改相应存储装置的行为和/或控制相应存储装置。

为防止这类高级攻击,在一些实施例中,存储安全性代理50经配置以过滤经由存储接口36接收的存储装置存取请求。过滤规则可为基础的,例如仅允许执行最常见的存取请求(例如,用于读取、写入、识别装置的命令等),并且阻挡所有其它命令/请求。其它实施例可实施更复杂的过滤启发式,例如适于当前上下文的过滤规则。在另一实例中,安全性代理50可依据来自主机系统10的管理员的明确确认来调节某些ata命令/存取请求的执行。

在一些实施例中,不阻挡某些命令/请求,而是替代地通过在安全性处理器116上执行的软件(例如,通过安全性代理50)进行仿真并且进行进一步的分析。响应于接收到这类命令,安全性软件可返回人工响应,以诱使在主机处理器16上执行的软件相信成功地进行了相应命令/存取请求。安全性代理50可另外记录这类命令,以辅助反恶意程序研究。

硬件层级的事件拦截和解释

维持语义映射(影子文件系统)使得存储安全性代理50能够响应于接收到存取请求而检测在软件在处理器16上执行期间发生的安全性相关事件。举例来说,响应于写入请求,代理50可确定正在写入的是文件的元数据还是实际内容,相应写入是针对空存储区段还是覆写现有信息,相应写入是真写入还是来自处理器16的下行链路通知等。

根据特定于事件的操作序列进行文件系统事件,例如文件创建、文件删除和文件重写。示范性模式可包含元数据读取,随后是元数据写入,随后是有效负载写入。代理50可使用编码这类模式的一组启发式来识别每一文件系统事件的类型。此外,代理50可识别每一读取/写入操作的目标,例如装置写入到哪个文件,正在读取哪个文件。

与常规计算机安全系统/方法相反,这类事件拦截几乎在不知道在处理器16上执行的软件的情况下发生。因此,恶意软件可能不防止或以其它方式干扰事件检测。例如代理50的安全性软件接着可使用上行链路通知向csm44通知被视为与安全性相关的某些事件的发生。

在存取上的恶意程序扫描

安全性代理50可检测对打开文件的尝试和/或对执行可执行文件的尝试。可以此方式检测到的其它操作包含文件附加和用于后续写入的存储分配。每一这类事件可用作启动相应文件的扫描,或属于将相应存储装置存取排序的处理程序的资源(主可执行库等)扫描的触发。所述扫描可在发出存储装置存取请求的处理程序暂停时进行,或在允许继续执行相应处理程序时离线。

所述扫描可根据计算机安全性的领域中已知的任何方法执行,例如通过将相应文件的内容与指示恶意程序的签名或代码模式的库匹配来执行。为此目的可将指示恶意程序的签名的库存储于次级存储装置32上。可经由周期性或按需更新将所述库保持为最新的。一些实施例经由一组下行链路通知(例如,假存储装置存取请求)更新在安全存储装置24上执行的签名库和/或其它软件。

在存取上的扫描的变体中,代理50可使用一组启发式检测主机系统10和/或os40的启动序列。换句话说,通过分析存储装置存取请求序列,代理50可确定主机系统10目前正处于启动(即,硬件和/或软件初始化)的处理程序中。示范性启动序列通常开始于来自存储被称为主引导记录(mbr)或guid分割表(gpt)的数据结构的位置的读取请求序列。

识别装置

下文说明指示os40已经开始加载的示范性存储装置存取请求序列:

识别装置

存取请求的启动序列的另一典型特征包括间杂有短2-5写入请求序列的超长读取请求序列(例如,2-3000连续读取请求)。这类模式可为特定于os的。模式分析可将连续读取/写入请求的计数与地址信息和/或其它参数值的分析组合以推断启动处理程序的各个阶段。

一些实施例可将存取请求模式匹配与语义映射信息组合,以检测os40的初始化。在一个这类实例中,安全性代理50可进行迭代程序以直接从存储装置存取事件捕获关于在主机处理器16上执行的软件的类型和/或位置的信息。通过检测对主引导记录的存取,代理50可确定分区信息。接着,使一系列读取请求以卷标头为目标。代理50可从这类请求确定和验证关于相应卷的信息。接下来,代理50可跟在伴随启动的读取和/或写入序列之后,自动识别一组重要os文件(例如,os40在初始化后即刻加载的资源,例如中的ntoskrnf.exe)的存储位置。相应启动序列还可展现操作系统的类型(例如,做出os40的版本等)。

一些实施例接着可扫描在跟在所检测的启动/初始化阶段之后的时间段(例如,数秒)期间打开的每个文件。扫描可包含完整性验证,即,确定文件的内容是否已经例如被恶意软件损坏。完整性验证可包括将相应文件的当前内容的散列与存储于次级存储装置32上的参考散列进行比较。

在与启动序列有关的又一示范性应用程序中,一些实施例可使用安全存储装置24作为在os40外部执行的代理且经配置以测试os40的完整性和/或可信度。举例来说,代理50可自动检测对重启主机系统10的请求。接着,响应于检测到重启实际上正在进行中(例如,从装置检测和初始化操作,或响应于csm44做出的下行链路通知),代理50可暂停正常启动序列并且暴露经配置以扫描os40的数据结构和/或主存储装置30的启动区域的替代性os或安全性代理。当扫描完成且系统被视为安全时,代理50可恢复os40的启动。

保护存储的资产

主存储装置30的启动区域通常存储在加载os之前被读取的资源。通过维持语义映射,代理50可确定写入请求是否以相应启动区域为目标,并且作为响应,可阻挡相应写入和/或通知csm44。可使用类似策略保护os40或其它应用程序的有价值资产,例如某些文件、库等。

用加密数据进行操作

os40的一些版本具有将加密形式的数据保持于主存储装置30上的选项。一个这类实例是特征。当所存储的数据经加密时,在os40外部执行的实体(包含存储安全性代理50)可能不存取相应数据,或允许构造文件系统语义映射的系统元数据。

然而,代理50可与csm44合作以获得加密密钥,或有助于导出相应密钥的信息。这类信息可包含例如密码、秘密、临时数等,且由此被称为加密密钥材料。csm44可暴露请求在涉及相应密钥时使用的用户密码或另一秘密的用户接口,并且将密码/秘密传送到代理50。在另一实施例中,csm44可直接与os的加密代理(例如,模块)介接以获得密钥材料。响应于获得密钥材料,csm44可经由下行链路通知(例如,假存储装置存取请求)将密钥材料自身,或所述密钥材料的存储位置传送到代理50。

一旦持有加密密钥,代理50可使用加密引擎52解密所存储的数据,以便构建和/或维持文件系统语义映射。在一些实施例中,代理50可进一步使用加密密钥执行来往于主存储装置30的数据业务的在线扫描/分析,且几乎不知道os40或在主机处理器16上执行的其它软件。在一个实例中,响应于拦截写入请求,安全性代理50可在将原始(经加密)有效负载写入所述既定地址之前,解密和分析相应有效负载,在一些实施例中,响应于解密相应有效负载,代理50可将有效负载的未加密版本保存到次级存储装置32。

通用加密检测

存储安全性代理50的一些实施例可自动确定存储在存储装置30的区段(例如,块、分区等)内的数据是否经加密。这类确定可使用信息复杂性度量,例如熵或所属领域中已知的其它方法。为避免错误肯定,一些实施例可使用可用于相应文件的元数据在未必经加密的情况下确定相应文件是否可能具有高熵。这类实例包含根据例如mp3、jpg、mpg、zip等格式经压缩的数据。为确定相应文件是否属于这些类别中的一个,一些实施例可根据元数据定位相应文件的标头部分,并且在相应标头中搜索文件类型信息。

在一些实施例中,可用一组旗标扩充文件系统语义映射的每一条目,指示例如相应文件系统项(文件、文件夹等)是否经加密,相应文件系统项是否经压缩等。代理50可维持所述旗标以及语义映射数据的剩余部分。

高级勒索程序的检测

本文中所描述的系统和方法允许自动检测对加密所存储的数据的尝试。所述检测独立于在处理器16上执行的软件执行,并且实际上不可被所述软件检测。这类自动加密检测的有用应用包括对勒索程序和其动作包含对用户数据的未经授权的或不期望的加密的其它类型的恶意软件的检测。

一个示范性检测启发式包括检测对用经加密内容覆写未经加密内容的尝试。另一组检测启发式采用统计数据将存储装置存取请求的当前流与对应于特定用户和/或运行的应用程序的“正常”模式进行比较。为实现检测,一些实施例确定指示例如以下各项的一组用户配置文件和/或应用程序配置文件:特定用户可能启动哪些应用程序/处理程序,相应用户通常存取哪些存储位置,与每一处理程序/应用程序相关联的存储请求的典型模式是什么等。在当前的存储装置存取请求序列离开“正态分布”的模式时,例如当代理50检测到文件创建活动中的反常尖峰时,其中相应文件的内容经加密,代理50可确定勒索程序攻击正在进行中。

当代理50检测到可疑加密活动时,代理50可暂停相应活动(例如,阻挡一组可疑写入),和/或使用上行链路通知机制发信号通知csm44。继而,csm44可使用通知作为可能攻击的警示,或可应用附加启发式,例如使代理50通知的事件与在主机系统10上或经由通信网络连接到主机系统10的其它计算机上发生的其它指示恶意程序的事件相关。

例如软件版本化和备份的应用程序的资产影化

在一些实施例中,存储安全性代理50自动检测对删除或覆写文件的尝试,并且作为响应,将被删除/覆写数据的副本保存到主存储装置30上或次级存储装置32的单独位置。正被删除或覆写的文件的影子副本因此与新写入的数据保持在一起。一些实施例保存同一文件的大于两个的连续版本,其中相应版本中的至少一个未经加密。此机制可允许通过可能将相应文件恢复到保存的版本中的任一个来安全恢复数据。

这类资产影化的可能应用包含安全性、备份和软件版本化等等。在计算机安全性实施例中,代理50可检测到例如在相对短时间间隔内反复覆写特定文件。这类文件活动可指示恶意程序。一些实施例可将同一文件的连续版本进行比较,以确定例如较新版本是否经加密而较老版本未经加密。如前文所提及,这类加密改变可指示勒索程序攻击。更一般地,举例来说,保持文件的备份副本可有可能防止恶意软件修改重要的资产,因此防止os功能的恶意钩连。当检测到这类修改时,代理50可通知csm44。继而,csm44可指示代理50回滚特定文件的改变。

优化

一些实施例可经进一步优化以从安全存储装置24的层级降低解读文件系统语义的计算额外负担。在混合实施例中,语义指示符从csm44递送到安全性代理50,而代理50可拦截和抵制恶意存储事件,例如文件删除、文件覆写、未经授权的数据加密等。在这类实施例中,csm44可包括轻型存储装置存取过滤器,其具有类似于中的文件系统微过滤器的功能性的功能性。存储装置存取过滤器可确定例如对写入到文件的尝试、相应数据/文件的名称和/或磁盘位置,以及进行写入操作的处理程序的身份标识等等。接着,存储装置存取过滤器可将这类语义信息经由下行链路通知传输到存储安全性代理50。代理50可使用应答包或上行链路通知对接收做出应答。在一些实施例中,将下行链路通知添加到通知队列。

在安全存储装置24的层级,代理50可识别对写入的尝试并且试着将相应尝试与来自下行链路通知队列的数据匹配。成功匹配允许代理50确定相应写入尝试的语义,可允许代理50应用更复杂启发式以确定相应写入尝试是否可疑,是否需要阻止等。未能使在硬件层级处检测到(即,来自特定元数据改变)的写入尝试匹配到经由下行链路通知传达的写入尝试可指示能够避免被os40的存储装置存取微过滤器检测到的恶意软件。在这类情况下,安全性代理50可阻挡相应写入尝试和/或经由上行链路通知csm44。

本发明涉及用于保护主机系统免受例如恶意软件等计算机安全性威胁影响的系统和方法。所描述的系统和方法尤其适于保护主机系统(例如,计算机、移动通信装置等)免受能够抵抗常规防御的复杂恶意程序影响。示范性应用程序包含对抗勒索程序和专属、私密和/或机密数据的盗窃的保护。

本发明的一些实施例依赖于恶意软件可成功地干扰主机系统的处理器和非易失性存储装置(例如,磁性、光学或固态驱动器)之间的数据业务的观测结果。在相应处理器上执行的安全性软件可不能够阻挡或防止所有这类干涉,带来数据盗窃或丢失的显著风险。为解决此问题,本发明的示例性实施例将安全性软件的部分位移到单独处理器上,所述处理器经配置以拦截、分析和/或选择性地阻挡主机系统的主处理器和存储装置之间的数据业务。辅助安全性处理器可与例如共同印刷电路板上的存储装置和/或额外硬件集成,以形成增强型安全存储装置。所述安全存储装置可假设硬盘驱动器或其它非易失性存储的常规外观尺寸,并且可经由常规存储接口/连接器(例如串行at附件(sata)或外围组件互连(pci)高速接口/连接器)连接到主机系统的硬件的剩余部分。在替代实施例中,安全存储装置(即,存储+辅助处理器)可封装为外部驱动器,例如借助于通用串行总线(usb)或另一常规接口/连接器连接到主机系统。

在常规反恶意程序系统中,阻止、检测和防范措施实施于在还运行恶意代码的同一物理处理器上执行的软件中。此外,在常规系统中,恶意程序和合法软件两者都可存取同一物理存储装置(例如,硬盘驱动器)。这类配置可能允许精心制作的恶意代码暗中损坏安全性软件。相比之下,在本发明的一些实施例中,对物理存储装置的存取受不同于运行用户应用程序(且可能地,恶意代码)的主处理器的辅助处理器控制。在辅助处理器上执行的安全性软件因而不在恶意程序可触及的范围内。

所属领域的技术人员将清楚,在不脱离本发明的范围的情况下,以上实施例可以以多种方式更改。因此,应通过所附权利要求书和其法律等效物来确定本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1