CN110998582B - 安全存储装置与计算机安全性方法 - Google Patents

安全存储装置与计算机安全性方法 Download PDF

Info

Publication number
CN110998582B
CN110998582B CN201880050838.8A CN201880050838A CN110998582B CN 110998582 B CN110998582 B CN 110998582B CN 201880050838 A CN201880050838 A CN 201880050838A CN 110998582 B CN110998582 B CN 110998582B
Authority
CN
China
Prior art keywords
storage
hardware processor
storage device
access request
data packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880050838.8A
Other languages
English (en)
Other versions
CN110998582A (zh
Inventor
山多尔·卢卡奇
达恩-克里斯蒂安·图里库
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bitdefender IPR Management Ltd
Original Assignee
Bitdefender IPR Management Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bitdefender IPR Management Ltd filed Critical Bitdefender IPR Management Ltd
Publication of CN110998582A publication Critical patent/CN110998582A/zh
Application granted granted Critical
Publication of CN110998582B publication Critical patent/CN110998582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Refuse Collection And Transfer (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

所描述系统和方法允许保护主机系统免受计算机安全性威胁,且具体地说免受勒索程序影响并且免于对私人数据的未经授权存取。在一些实施例中,常规非易失性存储单元(例如,磁性、光学或固态驱动器)与专用安全性处理器配对,形成安全存储装置,所述安全存储装置可经由例如SATA、PCI或USB连接器的常规存储接口连接到所述主机系统的主处理器。所述主处理器和所述安全性处理器经由所述存储接口交换消息和数据。所述安全性处理器控制所述主处理器对所述存储单元的存取,并且可执行安全性和数据加密操作。

Description

安全存储装置与计算机安全性方法
相关申请案
本申请案主张08/04/2017年申请的标题为“安全存储装置(Secure StorageDevice)”的美国临时专利申请第62,541,505号的申请日的权益,其全部内容以引用的方式并入本文中。
背景技术
本发明涉及计算机安全性,且特定来说,涉及保护计算机免受恶意软件(malicious software)(恶意程序(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的其它软件之间的接口。OS 40可包括任何广泛可得的操作系统,例如 或/>等。应用程序41a-b一般性地表示任何计算机程序,包含字处理器、电子表格应用程序、成像应用程序、游戏、浏览器和电子通信应用程序等等。
本发明的一些实施例另外包含计算机安全模块(CSM)44,其包括保护主机系统10免受恶意程序影响的软件。CSM 44可包含例如用于检测恶意软件的计算机程序,和/或用于使这类软件失去能力的计算机程序。这类组件可采用所属领域中已知的任何的计算机安全性方法。在一些实施例中,CSM 44另外包括作为OS 40和安全存储装置24之间的接口操作的存储中介者组件42。示范性存储中介者42可操作为使得能够读取来自主存储装置30的数据和将数据写入到主存储装置30的存储驱动器。如在下文更详细地示出,存储中介者42可进一步经配置以与在安全性处理器116上执行的软件交换消息和/或数据。
图3-B示出在硬件虚拟化环境中,例如在云计算应用程序中操作的替代性实施例。虚拟机(VM)是所属领域中用于描述实际物理机器/计算机系统的仿真的术语,VM能够运行操作系统和其它应用程序。超管理器(hypervisor)包含经配置以产生或启用例如虚拟处理器和虚拟MMU的多个虚拟化装置并且将这类虚拟化装置呈现给软件而不是呈现给主机系统10的真实物理装置的软件。这类操作通常被称为暴露虚拟机。超管理器可使得多个虚拟机能够共享主机系统10的硬件资源,并且可另外管理这类复用,使得每一VM独立地操作并且不知道在相应主机上同时执行的其它VM。常用超管理器的实例包含来自VMware公司的VMware vSphereTM和开放源代码Xen超管理器(open-source Xen hypervisor)等等。在本发明描述中,软件据称当在相应虚拟机的虚拟处理器上执行时是在虚拟机内执行。
在图3-B中说明的示范性配置中,超管理器46暴露客体VM 48a。操作系统和一组用户应用程序在客体虚拟机48a内执行,而CSM 44在与客体VM 48a分开的专用安全性虚拟机48b内执行。在对图3-B替代的实施例中,CSM 44和/或存储中介者42可包括超管理器46加载/调用的一组库。因而,CSM 44和/或存储中介者42可在客体VM 48a下方,在超管理器46的处理器权限等级处(例如,平台上的环1或VMXroot)执行。例如图3-B中说明的配置可由于增加的安全性而比图3-A中说明的配置优选。客体VM 48a和安全性VM 48b的虚拟环境可相对好地彼此隔离,使得在客体VM 48a内执行的恶意软件无法感染或以其它方式干扰在安全性VM 48b内执行的软件。
图4示出根据本发明的一些实施例的在安全存储装置24内(即,在处理器116上)执行的一组示范性软件组件。所说明的软件包含存储安全性代理50和加密引擎52。代理50可以经配置以维持主存储装置30的文件系统语义映射并且应用一组启发式(例如,决策规则)以确定在主机处理器16上执行的软件对存取主存储装置30的请求是否指示计算机安全性威胁。引擎52可以经配置以对来往于主存储装置30的数据包执行加密和/或解密操作。将在下文详述组件50和52的操作。
在一些实施例中,CSM 44例如通过经由存储中介者42管理的通信信道交换通知/信号,与在安全存储装置24(例如,安全性代理50)内执行的软件合作。从处理器16到安全存储装置24的示范性通知(在本文中被称为下行链路通知)包含待由处理器116执行的操作的指示符,以及其它数据,例如文件名、加密密钥、一组旗标等。如下文进一步详述,CSM 44还可响应于某些安全性相关事件而发送下行链路通知。
示范性通信信道可使用在处理器和大容量存储单元之间输送数据的常规装置。举例来说,CSM 44和安全性代理50可根据存储传输协议(例如串行ATA或小型计算机系统接口(SCSI)协议)交换消息。存储传输协议确立经由存储接口的通信的格式、帧/包的大小和内容、标头和/或有效负载的计数、大小、次序和/或格式、各个控制位和数据字段的显著性、命令的编码等。
在一些实施例中,下行链路通知伪装成假存取请求。假存取请求在本文中指代根据通信协议恰当地格式化(例如格式良好的SATA命令),但本身不应被执行,而是替代地解释为通知的存储装置存取请求。术语“假”用以将这类请求与表示意在本身被执行的存储装置存取操作的“真实”或“真”存储装置存取请求区分开。
在一些实施例中,假请求从执行一个这类假请求会致使异常/故障的角度是无效存储装置存取请求。在这类情况下,故障处置器可拦截相应故障并且确定致使相应故障的请求为下行链路通知。在其它实施例中,假请求并非故障本身,而是可包括特定、反常或对立的参数值(旗标)组合。在又其它实施例中,假请求可包括有效的常规请求;这类假请求可因而例如根据有效负载的内容或由存储通信协议定义的其它数据字段的内容被识别。
假存取请求的一个实例包括对存取超出范围地址(即,在主存储装置30的正常可寻址范围外部的地址)的请求。实例包含‘读取块B’或‘在地址A处写入有效负载P’,其中块B的地址和地址A是在主存储装置30的正常可寻址范围外部。每一这类地址(A和/或B的特定值)可对应于传送到在安全存储装置24内部执行的软件的特定指令或事件。在另一实例中,下行链路通知可伪装成对在虽然在正常可寻址范围内但在正常操作期间通常不被存取的地址处存取存储装置的请求。举例来说,对写入到目前保持主引导记录(MBR)或关键OS组件(例如,中的NTOSKRNL.EXE)的存储位置的请求可被安全存储装置24拦截并且解释为来自CSM 44的下行链路通知。
在又另一实例中,可根据特定有效负载内容(例如,特定位模式或签名)来识别假存取请求。在这类实施例中,在安全性处理器116上执行的软件组件可解析有效负载内容以检测假存取请求。各种有效负载P可对应于发到安全存储装置24的各种通知/指令。
在又另一实例中,假存取请求本身可根据由存储通信协议定义的另一数据字段的内容,例如根据在串行ATA协议中指定的‘命令’和/或‘辅助’字段的内容被识别。在一个这类实例中,更新恶意程序签名的命令可编码到CSM 44发出的假存取请求的‘命令’字段中。实际签名可作为另一假存取请求的有效负载进行传输。
下行链路通知的一些其它实例包含扫描存储在特定存储位置处的数据的指令:相应位置可编码到假存取请求的有效负载中。在又另一实例中,包括不同地址A的假写入请求可指示不同的反恶意程序方法或参数。地址A中的每一地址或范围可指示不同启发式或不同群组的指示恶意程序的签名。
继而,存储中介者42可经由应答和/或对下行链路通知的另一形式的响应,例如经由硬件中断(IRQ)接收来自装置24的通知/信号(在本文中被称为上行链路通知),或接收通过装置24发送的并且通过存储中介者42和/或通过OS 40的另一事件处置器处置的异步SATA通知。示范性上行链路通知包含安全性警报等,例如可能的勒索攻击的指示符,以及对更新存储装置24的固件的尝试的指示符。
又一示范性上行链路通知包括对加密密钥的请求。在一个这类实例中,安全性代理50可检测对写入经加密数据包的尝试。这类尝试可指示启动磁盘数据的自动加密(例如,来自的/>科技)。作为响应,一些实施例可请求来自CSM 44的加密密钥。在下文进一步给出此方法的更多细节。
一些实施例使用下行链路-上行链路通知序列实施反复恶意程序检测的版本。在一个这类实例中,下行链路通知指示存储安全性代理50针对恶意程序扫描特定文件。代理50接着可将扫描的结果传送到CSM 44,所述CSM 44可根据第一扫描的结果选择另一文件或文件夹并且将新扫描目标经由新下行链路通知传送到安全性代理50,等。这类反复方案可启用必须在安全存储装置24上安装复杂软件的相当复杂的恶意程序检测程序。
图5示出根据本发明的一些实施例的通过CSM 44执行的示范性步骤序列。CSM 44可汇总来自主机系统10内的多个来源的安全性相关数据,并且可接收在软件执行期间关于某些事件的发生的通知。一个示范性来源是OS 40的系统调用功能,每当相应系统调用发生时通过钩连到发到CSM 44的信号来修改所述系统调用功能。安全性信息和通知的其它示范性来源包含OS微过滤器(minifilter)。在一些实施例中,CSM 44可进一步从安全存储装置24周围接收上行链路通知。响应于检测到事件的发生,在步骤206中,CSM 44可应用一组启发式以确定主机系统10目前是否正被攻击。当分析显示疑似有恶意程序时,CSM 44可采取适当的反恶意程序措施(步骤212-214),例如阻挡或以其它方式防止执行恶意处理程序,并且向主机系统10的用户或管理员报警。一些检测到的事件保证通到安全存储装置24的下行链路通知。在一个这类实例中,CSM 44可引导安全性代理50执行存储装置存取尝试的调查。下行链路通知在图5中说明为步骤208-210。
在一些实施例中,存储安全性代理50以独立于OS 40的文件系统的方式的,从存储于存储装置30上的元数据重新产生供OS 40使用的文件系统的语义。换句话说,代理50维持相当于OS 40的文件系统的替代或影子的文件系统语义知识库。在常规计算机系统中,在硬件层级,数据存储为不具有语义信息的块。举例来说,不清楚哪块数据属于哪个文件/文件夹。进一步的复杂情况是碎片化,其中单个文件的数据不被连续地存储,而是分散在整个存储媒体的各个位置。通常由OS采取使资产与存储位置相关联并且将硬件层级信息变换成有意义的数据的簿记任务。OS通过维持专门化数据结构来管理这类任务,所述专门化数据结构被称为文件系统,编码为元数据并且存储在存储媒体的特定区段内。示范性文件系统包含FAT、FAT32和NTFS等等。
在一些实施例中,文件系统语义映射包括对主存储装置30的区段和OS 40的文件系统的项之间的映射的编码。示范性文件系统项包含目录和文件。示范性语义映射项使一地址范围[A1 A2]与文件F相关联(其中F可表示为路径,例如C:\user\docs\Letter.txt或/home/user/docs/Letter.txt)。这类关联实际上指示存储于相应地址范围中的数据形成文件F的部分。另一示范性文件系统语义映射项指定地址范围[A3 A4]存储文件系统元数据。又一示范性文件系统语义映射项使单独可寻址单元(例如,存储块或分区,与地址范围相对)与文件系统项相关联。语义映射数据可使用所属领域中已知的任何方法进行编码,例如编码为位图、链表等。
图6示出根据本发明的一些实施例的通过存储安全性代理50执行的示范性步骤序列。代理50经由存储接口36从OS 40接收存储装置存取请求。典型请求包含操作(读取、写入)的指示符、地址的指示符和有效负载。示范性存储装置存取请求具有“在地址A处读取N字节的块”和“在地址A处写入有效负载P”的语义。存取请求可另外包括相应请求的一组参数值(例如,旗标、属性)。存储装置存取请求的实际格式和编码可在硬件和软件实施方案当中改变。
当存取请求到达装置24时,代理50可根据请求的参数确定相应请求是指示真存储装置存取还是假存储装置存取(即,来自CSM 44的通知)。在一个示范性实施例中,对存取超出范围的地址的请求可指示这类通知。当相应存取请求包括下行链路通知时,步骤236可根据相应请求的参数选择和执行特定动作(在下文参见一些实例)。
在步骤序列228-230中,安全性代理50可根据语义映射进一步解码相应存储装置存取请求的语义。举例来说,代理50可确定正在写入的是元数据还是实际文件,是否正在产生新文件,目前正在写入或读取哪个特定文件等。另一步骤232可应用一组存取启发式以确定请求的存取是否指示计算机安全性威胁。当为否时,代理50可允许继续相应存取。当启发式指示请求的存取请求保证通知计算机安全模块44时,代理50可执行相当于安全性警报的上行链路通知。
图7示出由存储安全性代理50进行以维持文件系统语义映射的示范性步骤序列。可例如在启动时起始映射创建。在一些实施例中,代理50可确定主存储装置30上的存储供OS 40使用的文件系统元数据的位置。计算机取证技术的领域中已知达成此的数种方法。一些实施例使用在主机(例如,CSM 44)上执行的软件组件确定文件系统数据的位置。CSM 44接着可使用下行链路通知将相应位置传送到安全性代理50。
在步骤序列254-256中,代理50解析存储于主存储装置30中的文件系统元数据并且根据相应元数据汇编语义映射。一些实施例将所确定的语义映射数据(即,影子文件系统)存储于安全性存储器118和/或次级存储装置32中。接着,在软件在处理器16上执行期间,代理50可监听存储装置存取请求并且确定这类请求是否指示元数据的改变(例如,文件/目录创建或删除)。当为是时,代理50可相应地更新语义映射(图7中的步骤260-262-264)。
所说明通知和启发式的系统可用于多种应用程序,下文给出其中的一些实例。
用于保护硬件的命令过滤
精心制作的恶意软件可利用ATA命令集(例如,DOWNFOAD MICROCODE命令)的某些特征偷偷地更新存储装置的固件,进而将硬件层级恶意程序引入到装置自身中。一个这类示范性恶意程序是后门程序(backdoor),在主机上执行的软件可使用所述后门程序更改相应存储装置的行为和/或控制相应存储装置。
为防止这类高级攻击,在一些实施例中,存储安全性代理50经配置以过滤经由存储接口36接收的存储装置存取请求。过滤规则可为基础的,例如仅允许执行最常见的存取请求(例如,用于读取、写入、识别装置的命令等),并且阻挡所有其它命令/请求。其它实施例可实施更复杂的过滤启发式,例如适于当前上下文的过滤规则。在另一实例中,安全性代理50可依据来自主机系统10的管理员的明确确认来调节某些ATA命令/存取请求的执行。
在一些实施例中,不阻挡某些命令/请求,而是替代地通过在安全性处理器116上执行的软件(例如,通过安全性代理50)进行仿真并且进行进一步的分析。响应于接收到这类命令,安全性软件可返回人工响应,以诱使在主机处理器16上执行的软件相信成功地进行了相应命令/存取请求。安全性代理50可另外记录这类命令,以辅助反恶意程序研究。
硬件层级的事件拦截和解释
维持语义映射(影子文件系统)使得存储安全性代理50能够响应于接收到存取请求而检测在软件在处理器16上执行期间发生的安全性相关事件。举例来说,响应于写入请求,代理50可确定正在写入的是文件的元数据还是实际内容,相应写入是针对空存储区段还是覆写现有信息,相应写入是真写入还是来自处理器16的下行链路通知等。
根据特定于事件的操作序列进行文件系统事件,例如文件创建、文件删除和文件重写。示范性模式可包含元数据读取,随后是元数据写入,随后是有效负载写入。代理50可使用编码这类模式的一组启发式来识别每一文件系统事件的类型。此外,代理50可识别每一读取/写入操作的目标,例如装置写入到哪个文件,正在读取哪个文件。
与常规计算机安全系统/方法相反,这类事件拦截几乎在不知道在处理器16上执行的软件的情况下发生。因此,恶意软件可能不防止或以其它方式干扰事件检测。例如代理50的安全性软件接着可使用上行链路通知向CSM 44通知被视为与安全性相关的某些事件的发生。
在存取上的恶意程序扫描
安全性代理50可检测对打开文件的尝试和/或对执行可执行文件的尝试。可以此方式检测到的其它操作包含文件附加和用于后续写入的存储分配。每一这类事件可用作启动相应文件的扫描,或属于将相应存储装置存取排序的处理程序的资源(主可执行库等)扫描的触发。所述扫描可在发出存储装置存取请求的处理程序暂停时进行,或在允许继续执行相应处理程序时离线。
所述扫描可根据计算机安全性的领域中已知的任何方法执行,例如通过将相应文件的内容与指示恶意程序的签名或代码模式的库匹配来执行。为此目的可将指示恶意程序的签名的库存储于次级存储装置32上。可经由周期性或按需更新将所述库保持为最新的。一些实施例经由一组下行链路通知(例如,假存储装置存取请求)更新在安全存储装置24上执行的签名库和/或其它软件。
在存取上的扫描的变体中,代理50可使用一组启发式检测主机系统10和/或OS 40的启动序列。换句话说,通过分析存储装置存取请求序列,代理50可确定主机系统10目前正处于启动(即,硬件和/或软件初始化)的处理程序中。示范性启动序列通常开始于来自存储被称为主引导记录(MBR)或GUID分割表(GPT)的数据结构的位置的读取请求序列。
识别装置
···
下文说明指示OS 40已经开始加载的示范性存储装置存取请求序列:
识别装置
···
存取请求的启动序列的另一典型特征包括间杂有短2-5写入请求序列的超长读取请求序列(例如,2-3000连续读取请求)。这类模式可为特定于OS的。模式分析可将连续读取/写入请求的计数与地址信息和/或其它参数值的分析组合以推断启动处理程序的各个阶段。
一些实施例可将存取请求模式匹配与语义映射信息组合,以检测OS 40的初始化。在一个这类实例中,安全性代理50可进行迭代程序以直接从存储装置存取事件捕获关于在主机处理器16上执行的软件的类型和/或位置的信息。通过检测对主引导记录的存取,代理50可确定分区信息。接着,使一系列读取请求以卷标头为目标。代理50可从这类请求确定和验证关于相应卷的信息。接下来,代理50可跟在伴随启动的读取和/或写入序列之后,自动识别一组重要OS文件(例如,OS 40在初始化后即刻加载的资源,例如中的NTOSKRNF.EXE)的存储位置。相应启动序列还可展现操作系统的类型(例如,做出OS 40的版本等)。
一些实施例接着可扫描在跟在所检测的启动/初始化阶段之后的时间段(例如,数秒)期间打开的每个文件。扫描可包含完整性验证,即,确定文件的内容是否已经例如被恶意软件损坏。完整性验证可包括将相应文件的当前内容的散列与存储于次级存储装置32上的参考散列进行比较。
在与启动序列有关的又一示范性应用程序中,一些实施例可使用安全存储装置24作为在OS 40外部执行的代理且经配置以测试OS 40的完整性和/或可信度。举例来说,代理50可自动检测对重启主机系统10的请求。接着,响应于检测到重启实际上正在进行中(例如,从装置检测和初始化操作,或响应于CSM 44做出的下行链路通知),代理50可暂停正常启动序列并且暴露经配置以扫描OS 40的数据结构和/或主存储装置30的启动区域的替代性OS或安全性代理。当扫描完成且系统被视为安全时,代理50可恢复OS 40的启动。
保护存储的资产
主存储装置30的启动区域通常存储在加载OS之前被读取的资源。通过维持语义映射,代理50可确定写入请求是否以相应启动区域为目标,并且作为响应,可阻挡相应写入和/或通知CSM 44。可使用类似策略保护OS 40或其它应用程序的有价值资产,例如某些文件、库等。
用加密数据进行操作
OS 40的一些版本具有将加密形式的数据保持于主存储装置30上的选项。一个这类实例是的/>特征。当所存储的数据经加密时,在OS 40外部执行的实体(包含存储安全性代理50)可能不存取相应数据,或允许构造文件系统语义映射的系统元数据。
然而,代理50可与CSM 44合作以获得加密密钥,或有助于导出相应密钥的信息。这类信息可包含例如密码、秘密、临时数等,且由此被称为加密密钥材料。CSM 44可暴露请求在涉及相应密钥时使用的用户密码或另一秘密的用户接口,并且将密码/秘密传送到代理50。在另一实施例中,CSM 44可直接与OS的加密代理(例如,模块)介接以获得密钥材料。响应于获得密钥材料,CSM 44可经由下行链路通知(例如,假存储装置存取请求)将密钥材料自身,或所述密钥材料的存储位置传送到代理50。
一旦持有加密密钥,代理50可使用加密引擎52解密所存储的数据,以便构建和/或维持文件系统语义映射。在一些实施例中,代理50可进一步使用加密密钥执行来往于主存储装置30的数据业务的在线扫描/分析,且几乎不知道OS 40或在主机处理器16上执行的其它软件。在一个实例中,响应于拦截写入请求,安全性代理50可在将原始(经加密)有效负载写入所述既定地址之前,解密和分析相应有效负载,在一些实施例中,响应于解密相应有效负载,代理50可将有效负载的未加密版本保存到次级存储装置32。
通用加密检测
存储安全性代理50的一些实施例可自动确定存储在存储装置30的区段(例如,块、分区等)内的数据是否经加密。这类确定可使用信息复杂性度量,例如熵或所属领域中已知的其它方法。为避免错误肯定,一些实施例可使用可用于相应文件的元数据在未必经加密的情况下确定相应文件是否可能具有高熵。这类实例包含根据例如MP3、JPG、MPG、ZIP等格式经压缩的数据。为确定相应文件是否属于这些类别中的一个,一些实施例可根据元数据定位相应文件的标头部分,并且在相应标头中搜索文件类型信息。
在一些实施例中,可用一组旗标扩充文件系统语义映射的每一条目,指示例如相应文件系统项(文件、文件夹等)是否经加密,相应文件系统项是否经压缩等。代理50可维持所述旗标以及语义映射数据的剩余部分。
高级勒索程序的检测
本文中所描述的系统和方法允许自动检测对加密所存储的数据的尝试。所述检测独立于在处理器16上执行的软件执行,并且实际上不可被所述软件检测。这类自动加密检测的有用应用包括对勒索程序和其动作包含对用户数据的未经授权的或不期望的加密的其它类型的恶意软件的检测。
一个示范性检测启发式包括检测对用经加密内容覆写未经加密内容的尝试。另一组检测启发式采用统计数据将存储装置存取请求的当前流与对应于特定用户和/或运行的应用程序的“正常”模式进行比较。为实现检测,一些实施例确定指示例如以下各项的一组用户配置文件和/或应用程序配置文件:特定用户可能启动哪些应用程序/处理程序,相应用户通常存取哪些存储位置,与每一处理程序/应用程序相关联的存储请求的典型模式是什么等。在当前的存储装置存取请求序列离开“正态分布”的模式时,例如当代理50检测到文件创建活动中的反常尖峰时,其中相应文件的内容经加密,代理50可确定勒索程序攻击正在进行中。
当代理50检测到可疑加密活动时,代理50可暂停相应活动(例如,阻挡一组可疑写入),和/或使用上行链路通知机制发信号通知CSM 44。继而,CSM 44可使用通知作为可能攻击的警示,或可应用附加启发式,例如使代理50通知的事件与在主机系统10上或经由通信网络连接到主机系统10的其它计算机上发生的其它指示恶意程序的事件相关。
例如软件版本化和备份的应用程序的资产影化
在一些实施例中,存储安全性代理50自动检测对删除或覆写文件的尝试,并且作为响应,将被删除/覆写数据的副本保存到主存储装置30上或次级存储装置32的单独位置。正被删除或覆写的文件的影子副本因此与新写入的数据保持在一起。一些实施例保存同一文件的大于两个的连续版本,其中相应版本中的至少一个未经加密。此机制可允许通过可能将相应文件恢复到保存的版本中的任一个来安全恢复数据。
这类资产影化的可能应用包含安全性、备份和软件版本化等等。在计算机安全性实施例中,代理50可检测到例如在相对短时间间隔内反复覆写特定文件。这类文件活动可指示恶意程序。一些实施例可将同一文件的连续版本进行比较,以确定例如较新版本是否经加密而较老版本未经加密。如前文所提及,这类加密改变可指示勒索程序攻击。更一般地,举例来说,保持文件的备份副本可有可能防止恶意软件修改重要的资产,因此防止OS功能的恶意钩连。当检测到这类修改时,代理50可通知CSM 44。继而,CSM 44可指示代理50回滚特定文件的改变。
优化
一些实施例可经进一步优化以从安全存储装置24的层级降低解读文件系统语义的计算额外负担。在混合实施例中,语义指示符从CSM 44递送到安全性代理50,而代理50可拦截和抵制恶意存储事件,例如文件删除、文件覆写、未经授权的数据加密等。在这类实施例中,CSM 44可包括轻型存储装置存取过滤器,其具有类似于中的文件系统微过滤器的功能性的功能性。存储装置存取过滤器可确定例如对写入到文件的尝试、相应数据/文件的名称和/或磁盘位置,以及进行写入操作的处理程序的身份标识等等。接着,存储装置存取过滤器可将这类语义信息经由下行链路通知传输到存储安全性代理50。代理50可使用应答包或上行链路通知对接收做出应答。在一些实施例中,将下行链路通知添加到通知队列。
在安全存储装置24的层级,代理50可识别对写入的尝试并且试着将相应尝试与来自下行链路通知队列的数据匹配。成功匹配允许代理50确定相应写入尝试的语义,可允许代理50应用更复杂启发式以确定相应写入尝试是否可疑,是否需要阻止等。未能使在硬件层级处检测到(即,来自特定元数据改变)的写入尝试匹配到经由下行链路通知传达的写入尝试可指示能够避免被OS 40的存储装置存取微过滤器检测到的恶意软件。在这类情况下,安全性代理50可阻挡相应写入尝试和/或经由上行链路通知CSM 44。
本发明涉及用于保护主机系统免受例如恶意软件等计算机安全性威胁影响的系统和方法。所描述的系统和方法尤其适于保护主机系统(例如,计算机、移动通信装置等)免受能够抵抗常规防御的复杂恶意程序影响。示范性应用程序包含对抗勒索程序和专属、私密和/或机密数据的盗窃的保护。
本发明的一些实施例依赖于恶意软件可成功地干扰主机系统的处理器和非易失性存储装置(例如,磁性、光学或固态驱动器)之间的数据业务的观测结果。在相应处理器上执行的安全性软件可不能够阻挡或防止所有这类干涉,带来数据盗窃或丢失的显著风险。为解决此问题,本发明的示例性实施例将安全性软件的部分位移到单独处理器上,所述处理器经配置以拦截、分析和/或选择性地阻挡主机系统的主处理器和存储装置之间的数据业务。辅助安全性处理器可与例如共同印刷电路板上的存储装置和/或额外硬件集成,以形成增强型安全存储装置。所述安全存储装置可假设硬盘驱动器或其它非易失性存储的常规外观尺寸,并且可经由常规存储接口/连接器(例如串行AT附件(SATA)或外围组件互连(PCI)高速接口/连接器)连接到主机系统的硬件的剩余部分。在替代实施例中,安全存储装置(即,存储+辅助处理器)可封装为外部驱动器,例如借助于通用串行总线(USB)或另一常规接口/连接器连接到主机系统。
在常规反恶意程序系统中,阻止、检测和防范措施实施于在还运行恶意代码的同一物理处理器上执行的软件中。此外,在常规系统中,恶意程序和合法软件两者都可存取同一物理存储装置(例如,硬盘驱动器)。这类配置可能允许精心制作的恶意代码暗中损坏安全性软件。相比之下,在本发明的一些实施例中,对物理存储装置的存取受不同于运行用户应用程序(且可能地,恶意代码)的主处理器的辅助处理器控制。在辅助处理器上执行的安全性软件因而不在恶意程序可触及的范围内。
所属领域的技术人员将清楚,在不脱离本发明的范围的情况下,以上实施例可以以多种方式更改。因此,应通过所附权利要求书和其法律等效物来确定本发明的范围。

Claims (21)

1.一种包括第一硬件处理器和安全存储装置的主机系统,所述安全存储装置经由存储接口连接到所述第一硬件处理器,所述存储接口经配置以接收根据存储传输协议格式化的存储装置存取请求,其中所述安全存储装置包括第二硬件处理器和非易失性存储单元,且其中:
所述第一硬件处理器经配置以:
响应于检测到在所述第一硬件处理器上执行的软件对将数据包存储于所述存储单元上的请求,将所述数据包加密,
响应于将所述数据包加密,将真存储装置存取请求传输到所述存储接口,所述真存储装置存取请求包括经加密数据包,
根据所述存储传输协议产生假存储装置存取请求,所述假存储装置存取请求包括加密密钥的至少一部分,和
将所述假存储装置存取请求传输到所述存储接口;且
所述第二硬件处理器经配置以:
响应于经由所述存储接口接收到通信,确定所述通信是否包括所述假存储装置存取请求;
作为响应,当所述通信包括所述假存储装置存取请求时,根据所述假存储装置存取请求确定所述加密密钥,
响应于接收到所述真存储装置存取请求,采用所述加密密钥解密所述数据包,和
确定经解密数据包是否包括恶意软件。
2.根据权利要求1所述的主机系统,其中所述第二硬件处理器进一步经配置以响应于确定所述经解密数据包是否包括恶意软件,当所述经解密数据包包括恶意软件时,将根据所述存储传输协议格式化的通知传输到所述存储接口,所述通知经配置以致使所述第一硬件处理器将所述通知解释为安全性警报。
3.根据权利要求2所述的主机系统,其中所述通知经配置以致使所述第一硬件处理器中的硬件中断。
4.根据权利要求1所述的主机系统,其中所述通信包括指示所述存储单元上的位置的地址,且其中所述第二硬件处理器经配置以根据所述地址确定所述通信是否包括所述假存储装置存取请求。
5.根据权利要求4所述的主机系统,其中确定所述通信是否包括所述假存储装置存取请求包括:
将所述地址与预先确定的地址进行比较;和
作为响应,根据所述比较的结果确定所述通信包括所述假存储装置存取请求。
6.根据权利要求1所述的主机系统,其中所述通信包括对将有效负载写入到所述存储单元的请求,且其中所述第二硬件处理器经配置以根据所述有效负载确定所述通信是否包括所述假存储装置存取请求。
7.根据权利要求1所述的主机系统,其中所述第二硬件处理器进一步经配置以:
维持影子文件系统,所述影子文件系统包括存储于所述存储单元上的多个数据包和在所述第一硬件处理器上执行的操作系统所维持的主文件系统的多个文件之间的映射;
响应于接收到所述真存储装置存取请求,根据所述影子文件系统识别所述多个文件中的文件,使得所述数据包形成所述文件的部分;和
响应于识别所述文件,确定所述文件是否包括恶意软件。
8.根据权利要求7所述的主机系统,其中所述第二硬件处理器进一步经配置以:
根据所述影子文件系统确定经由所述存储接口从所述第一硬件处理器接收的另一通信是否指示新文件的创建;和
作为响应,当所述另一通信指示所述新文件的所述创建时,更新所述影子文件系统以指示所述新文件的所述创建。
9.根据权利要求1所述的主机系统,其中所述第二硬件处理器进一步经配置以响应于解密所述数据包,将所述经解密数据包写入到所述存储单元。
10.根据权利要求1所述的主机系统,其中所述存储接口包括选自由串行ATA接口和通用串行总线USB接口组成的群组的项。
11.一种包括第一硬件处理器和非易失性存储单元的安全存储装置,所述安全存储装置经配置以经由存储接口连接到第二硬件处理器,所述存储接口经配置以接收根据存储传输协议格式化的存储装置存取请求,其中:
所述第二硬件处理器经配置以:
响应于检测到在所述第二硬件处理器上执行的软件对将数据包存储于所述存储单元上的请求,将所述数据包加密,
响应于将所述数据包加密,将真存储装置存取请求传输到所述存储接口,所述真存储装置存取请求包括经加密数据包,
根据所述存储传输协议产生假存储装置存取请求,所述假存储装置存取请求包括加密密钥的至少一部分,和
将所述假存储装置存取请求传输到所述存储接口;且
所述第一硬件处理器经配置以:
响应于经由所述存储接口接收到通信,确定所述通信是否包括所述假存储装置存取请求;
作为响应,当所述通信包括所述假存储装置存取请求时,根据所述假存储装置存取请求确定所述加密密钥,
响应于接收到所述真存储装置存取请求,采用所述加密密钥来解密所述数据包,和
确定经解密数据包是否包括恶意软件。
12.一种计算机安全性方法,其包括:
经由存储接口将安全存储装置连接到第一硬件处理器,所述存储接口经配置以接收根据存储传输协议格式化的存储装置存取请求,其中所述安全存储装置包括第二硬件处理器和非易失性存储单元;
响应于检测到在所述第一硬件处理器上执行的软件对将数据包存储于所述存储单元上的请求,采用所述第一硬件处理器将所述数据包加密;
响应于将所述数据包加密,采用所述第一硬件处理器将真存储装置存取请求传输到所述存储接口,所述真存储装置存取请求包括经加密数据包;
采用所述第一硬件处理器根据所述存储传输协议产生假存储装置存取请求,所述假存储装置存取请求包括加密密钥的至少一部分;
采用所述第一硬件处理器将所述假存储装置存取请求传输到所述存储接口;
响应于经由所述存储接口接收到通信,采用所述第二硬件处理器确定所述通信是否包括所述假存储装置存取请求;
作为响应,当所述通信包括所述假存储装置存取请求时,采用所述第二硬件处理器来采用所述加密密钥解密所述数据包;和
响应于解密所述数据包,采用所述第二硬件处理器确定经解密数据包是否包括恶意软件。
13.根据权利要求12所述的方法,其另外包括响应于确定所述经解密数据包是否包括恶意软件,当所述经解密数据包包括恶意软件时,采用所述第二硬件处理器将根据所述存储传输协议格式化的通知传输到所述存储接口,所述通知经配置以致使所述第一硬件处理器将所述通知解释为安全性警报。
14.根据权利要求13所述的方法,其中所述通知经配置以致使所述第一硬件处理器中的硬件中断。
15.根据权利要求12所述的方法,其中所述通信包括指示所述存储单元上的位置的地址,且其中所述第二硬件处理器经配置以根据所述地址确定所述通信是否包括所述假存储装置存取请求。
16.根据权利要求15所述的方法,其中确定所述通信是否包括所述假存储装置存取请求包括:
采用所述第二硬件处理器将所述地址与预先确定的地址进行比较;和
作为响应,根据所述比较的结果确定所述通信包括所述假存储装置存取请求。
17.根据权利要求12所述的方法,其中所述通信包括对将有效负载写入到所述存储单元的请求,且其中所述第二硬件处理器经配置以根据所述有效负载确定所述通信是否包括所述假存储装置存取请求。
18.根据权利要求12所述的方法,其另外包括:
采用所述第二硬件处理器维持影子文件系统,所述影子文件系统包括存储于所述存储单元上的多个数据包和在所述第一硬件处理器上执行的操作系统所维持的主文件系统的多个文件之间的映射;
响应于接收到所述真存储装置存取请求,采用所述第二硬件处理器根据所述影子文件系统识别所述多个文件中的文件,使得所述数据包形成所述文件的部分;和
响应于识别所述文件,采用所述第二硬件处理器确定所述文件是否包括恶意软件。
19.根据权利要求18所述的方法,其另外包括:
采用所述第二硬件处理器根据所述影子文件系统确定经由所述存储接口从所述第一硬件处理器接收的另一通信是否指示新文件的创建;和
作为响应,当所述另一通信指示所述新文件的所述创建时,采用所述第二硬件处理器更新所述影子文件系统以指示所述新文件的所述创建。
20.根据权利要求12所述的方法,其另外包括响应于解密所述数据包,采用所述第二硬件处理器将所述经解密数据包写入到所述存储单元。
21.根据权利要求12所述的方法,其中所述存储接口包括选自由串行ATA接口和通用串行总线USB接口组成的群组的项。
CN201880050838.8A 2017-08-04 2018-07-31 安全存储装置与计算机安全性方法 Active CN110998582B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762541505P 2017-08-04 2017-08-04
US62/541,505 2017-08-04
US16/045,115 2018-07-25
US16/045,115 US20190042781A1 (en) 2017-08-04 2018-07-25 Secure Storage Device
PCT/EP2018/070692 WO2019025423A1 (en) 2017-08-04 2018-07-31 SECURE STORAGE DEVICE

Publications (2)

Publication Number Publication Date
CN110998582A CN110998582A (zh) 2020-04-10
CN110998582B true CN110998582B (zh) 2024-02-02

Family

ID=65229581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880050838.8A Active CN110998582B (zh) 2017-08-04 2018-07-31 安全存储装置与计算机安全性方法

Country Status (11)

Country Link
US (1) US20190042781A1 (zh)
EP (1) EP3662385B1 (zh)
JP (1) JP7121112B2 (zh)
KR (1) KR102296754B1 (zh)
CN (1) CN110998582B (zh)
AU (1) AU2018311120B2 (zh)
CA (1) CA3069053A1 (zh)
ES (1) ES2907777T3 (zh)
IL (1) IL272150B2 (zh)
SG (1) SG11202000097TA (zh)
WO (1) WO2019025423A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733290B2 (en) * 2017-10-26 2020-08-04 Western Digital Technologies, Inc. Device-based anti-malware
US20190362075A1 (en) * 2018-05-22 2019-11-28 Fortinet, Inc. Preventing users from accessing infected files by using multiple file storage repositories and a secure data transfer agent logically interposed therebetween
US11216391B1 (en) * 2018-06-21 2022-01-04 Amazon Technologies, Inc. Using an I/O proxy device to filter I/O messages in a computer system
US11132437B2 (en) * 2018-06-26 2021-09-28 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Secure computer operating system through interpreted user applications
US10892895B2 (en) * 2018-09-10 2021-01-12 Atense, Inc. Storing and using multipurpose secret data
US10614232B2 (en) * 2018-09-10 2020-04-07 John Almeida Storing and using multipurpose secret data
US11036856B2 (en) 2018-09-16 2021-06-15 Fortinet, Inc. Natively mounting storage for inspection and sandboxing in the cloud
US11403394B2 (en) 2019-09-17 2022-08-02 International Business Machines Corporation Preventing selective events of a computing environment
JP7352158B2 (ja) * 2019-09-27 2023-09-28 大日本印刷株式会社 デバイス、コンピュータプログラム及び監視方法
US11271933B1 (en) * 2020-01-15 2022-03-08 Worldpay Limited Systems and methods for hosted authentication service
JP6820076B1 (ja) * 2020-02-03 2021-01-27 Necプラットフォームズ株式会社 記憶装置、記憶方法、及びプログラム
US11586734B2 (en) 2020-02-28 2023-02-21 Kioxia Corporation Systems and methods for protecting SSDs against threats
CN113392062B (zh) * 2020-03-12 2023-04-07 Oppo广东移动通信有限公司 数据存储方法、装置、电子设备和计算机可读存储介质
KR102323732B1 (ko) * 2020-04-02 2021-11-11 주식회사 수산아이앤티 해쉬 관리를 통해 파일을 보호하는 장치 및 방법
CN111428272B (zh) * 2020-04-21 2023-06-06 深圳融安网络科技有限公司 移动存储设备的安全访问方法、设备及存储介质
US11526633B2 (en) 2020-08-27 2022-12-13 Kyndryl, Inc. Media exfiltration prevention system
US20220123932A1 (en) * 2020-10-19 2022-04-21 Western Digital Technologies, Inc. Data storage device encryption
FR3131020A1 (fr) * 2021-12-22 2023-06-23 Orange Module et procédé de sécurisation d’un équipement informatique
CN115186300B (zh) * 2022-09-08 2023-01-06 粤港澳大湾区数字经济研究院(福田) 文件安全处理系统及文件安全处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2596596A1 (en) * 2010-07-22 2013-05-29 Zixcorp Systems Inc. Automated provisioning of a network appliance
CN105051750A (zh) * 2013-02-13 2015-11-11 安全第一公司 用于加密文件系统层的系统和方法
CN108139984A (zh) * 2015-10-06 2018-06-08 美光科技公司 安全子系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328962A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp 端末機と、当該端末機に接続されるメモリカードからなるシステム
JP2000089992A (ja) 1998-09-11 2000-03-31 Fujitsu Ltd 記憶装置
WO2004046934A2 (en) 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
JP4119882B2 (ja) 2004-11-19 2008-07-16 株式会社メガチップス メモリ情報保護システム、メモリ情報の保護方法、および半導体メモリ
WO2008070803A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for managing data from a requesting device with an empty data token directive
JP4396737B2 (ja) 2007-07-17 2010-01-13 ソニー株式会社 情報処理装置、コンテンツ提供システム、および情報処理方法、並びにコンピュータ・プログラム
JP4538027B2 (ja) 2007-08-22 2010-09-08 株式会社東芝 半導体装置
US8341751B2 (en) * 2007-12-26 2012-12-25 Wilson Kelce S Software license management
JP5564197B2 (ja) 2009-04-23 2014-07-30 株式会社メガチップス メモリ制御装置、半導体メモリ装置、メモリシステム及びメモリ制御方法
KR101636638B1 (ko) * 2012-03-19 2016-07-05 인텔 코포레이션 명령어가 피연산자에 포함된 안티 멀웨어 보호 동작
US9678978B2 (en) * 2012-12-31 2017-06-13 Carbonite, Inc. Systems and methods for automatic synchronization of recently modified data
EP2979217B1 (en) * 2013-03-28 2018-05-02 Irdeto B.V. Obfuscating access to a data store by a software application
US9819563B2 (en) 2014-12-19 2017-11-14 Verizon Patent And Licensing Inc. Failure management for electronic transactions
US10057282B2 (en) 2015-05-07 2018-08-21 Cyberark Software Ltd. Detecting and reacting to malicious activity in decrypted application data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2596596A1 (en) * 2010-07-22 2013-05-29 Zixcorp Systems Inc. Automated provisioning of a network appliance
CN105051750A (zh) * 2013-02-13 2015-11-11 安全第一公司 用于加密文件系统层的系统和方法
CN108139984A (zh) * 2015-10-06 2018-06-08 美光科技公司 安全子系统

Also Published As

Publication number Publication date
AU2018311120B2 (en) 2023-03-16
IL272150B2 (en) 2023-12-01
KR102296754B1 (ko) 2021-09-03
IL272150A (en) 2020-03-31
RU2768196C2 (ru) 2022-03-23
WO2019025423A1 (en) 2019-02-07
SG11202000097TA (en) 2020-02-27
RU2020103936A (ru) 2021-09-06
RU2020103936A3 (zh) 2022-03-01
KR20200035016A (ko) 2020-04-01
US20190042781A1 (en) 2019-02-07
ES2907777T3 (es) 2022-04-26
CA3069053A1 (en) 2019-02-07
EP3662385B1 (en) 2022-01-19
EP3662385A1 (en) 2020-06-10
CN110998582A (zh) 2020-04-10
JP2020529681A (ja) 2020-10-08
IL272150B1 (en) 2023-08-01
JP7121112B2 (ja) 2022-08-17
AU2018311120A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
CN110998582B (zh) 安全存储装置与计算机安全性方法
JP6370747B2 (ja) バーチャルマシーンモニタベースのアンチマルウェアセキュリティのためのシステム及び方法
US9087199B2 (en) System and method for providing a secured operating system execution environment
US10977381B2 (en) Protection system and method against unauthorized data alteration
US8621620B2 (en) System and method for protecting and securing storage devices using below-operating system trapping
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
EP3017392B1 (en) Process evaluation for malware detection in virtual machines
CN107977573B (zh) 用于安全的盘访问控制的方法和系统
US8549648B2 (en) Systems and methods for identifying hidden processes
EP3111364B1 (en) Systems and methods for optimizing scans of pre-installed applications
US9032525B2 (en) System and method for below-operating system trapping of driver filter attachment
US20120255010A1 (en) System and method for firmware based anti-malware security
US9396329B2 (en) Methods and apparatus for a safe and secure software update solution against attacks from malicious or unauthorized programs to update protected secondary storage
US20120254994A1 (en) System and method for microcode based anti-malware security
Zhao et al. TEE-aided write protection against privileged data tampering
Rodionov et al. Bootkits: Past, present and future
RU2768196C9 (ru) Защищённое запоминающее устройство
US20240126882A1 (en) Instructions to process files in virtual machines

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40018996

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant