CN118013586A - 保护计算机系统上的选定磁盘 - Google Patents
保护计算机系统上的选定磁盘 Download PDFInfo
- Publication number
- CN118013586A CN118013586A CN202410322322.1A CN202410322322A CN118013586A CN 118013586 A CN118013586 A CN 118013586A CN 202410322322 A CN202410322322 A CN 202410322322A CN 118013586 A CN118013586 A CN 118013586A
- Authority
- CN
- China
- Prior art keywords
- data
- volume
- manipulation request
- request
- data manipulation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 106
- 230000008569 process Effects 0.000 claims abstract description 86
- 238000013500 data storage Methods 0.000 claims abstract description 27
- 238000013475 authorization Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 3
- 238000013479 data entry Methods 0.000 claims 3
- 238000012545 processing Methods 0.000 description 19
- 230000004048 modification Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
- G06F21/6281—Protecting 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 at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种计算设备,包括处理器和存储器。该存储器存储可由处理器执行的指令。指令在被执行时提供内核‑模式组件,其被配置为:接收第一数据操纵请求以操纵第一目标数据;标识第一目标数据的第一存储位置;基于确定第一存储位置位于保存受保护存储卷的数据存储设备上,将对应于第一数据操纵请求的调用进程与白名单文件中的条目进行比较;基于调用进程与白名单文件中的条目的比较,生成阻止第一数据操纵请求被执行的指令;在第二数据操纵请求被执行之前,拦截第二数据操纵请求;基于确定第二数据操纵请求请求操纵第二目标数据,标识存储第二目标数据的第二存储位置;以及基于确定第二存储位置位于主启动记录中,阻止第二数据操纵请求被执行。
Description
相关申请
本申请是申请号为201980066165.X、发明名称为“保护计算机系统上的选定磁盘”的发明专利申请的分案申请。
背景技术
计算机系统当前被广泛使用。一些这样的计算机系统包括数据中心。
数据中心由可以以多种不同方式使用的大批联网计算机服务器组成。它们经常被企业或其他组织用来存储、处理和传播大量信息。
一些数据中心还托管或服务于应用,诸如电子邮件应用、即时消息收发应用、电子商务交易以及各种其他应用。类似地,一些数据中心可以为访问数据中心的用户存储网站并为其提供服务。
多个不同的组织使用单个数据中心上的资源并不罕见。这样的数据中心可能包括提供所需访问的大量不同服务器机器。
数据中心中数据的数据安全性被广泛认为是重要特征。通过使用各种形式的数据加密和各种形式的验证认证,可以获得不同程度的安全性。
上面的讨论仅是为一般背景信息而提供的,并不旨在用于帮助确定所要求保护的主题的范围。
发明内容
服务器内核处理系统从用户模式计算环境接收输入/输出(I/O)请求。该I/O请求被分析,以确定该请求是否是修改目标卷中的数据的修改请求。如果是,则目标分析逻辑确定该请求是否针对第一受保护卷或第二受保护卷内的目标卷。如果该请求是要修改被存储在第一受保护卷中的数据,则该请求被阻止。如果该请求是要修改第二受保护卷中的数据,则白名单被检查以确定该请求进程和用户是否在白名单上。如果不是,则该请求也被阻止。
提供本发明内容的目的在于按照简化形式介绍构思的选择,在具体实施方式中会进一步描述这些构思。本发明内容既不旨在标识所要求保护的主题的关键特征或者必要特征,也不旨在用于确定所要求保护的主题的范围。所要求保护的主题不限于解决背景技术中指出的任何或所有缺点的实现。
附图说明
图1是计算系统架构的一个示例的框图。
图2是更详细地示出了图1所示的计算系统架构的各部分的一个示例的框图。
图3是更详细地示出了图1所示的计算系统架构的各部分的另一示例的框图。
图4是图示了服务器内核处理系统在处理输入/输出(I/O)请求时的操作的一个示例的流程图。
图5是示出了在云计算架构中部署的图1所示的架构的框图。
图6是示出了可以在先前附图中示出的架构中使用的计算环境的一个示例的框图。
具体实施方式
最近对计算机系统的一些攻击使用启动扇区修改来进行恶意操作。一旦恶意代码被安装,它将继续修改主启动记录,该主启动记录允许恶意代码在下次系统重新启动时拦截并劫持受感染计算机的正常加载进程。这是因为主启动记录是一种启动扇区,该启动扇区通常位于分区计算机大容量存储设备(诸如硬盘驱动器)的最开始。它保存有关在该特定存储介质上逻辑分区(可以包含文件系统)如何被组织的信息。主启动记录通常包括可执行代码,这些可执行代码充当已安装操作系统的加载器。因此,一旦恶意代码已经修改了主启动记录,其就可以被用于执行恶意动作,诸如对硬盘驱动器进行加密,然后保存加密的数据赎金。当然,它也可以被用于修改或删除数据。
类似地,一些类型的恶意代码试图将可能被存储在数据中心中、或另一类型的计算系统中的存储设备上的客户数据作为目标。例如,通常可信任的用户(诸如管理员或工程师)可能会心怀不满,但仍可能具有访问客户数据的安全权限。管理员因此可以创建一段代码,该代码是利用管理员特权运行的操作系统可执行文件。管理员因此可以绕过一些现有的安全检查并销毁客户数据。如果管理员在生产服务器(可能包括客户数据)上安装了恶意代码,则该恶意代码可能会在对原始服务器具有跨服务器信任的其他服务器上运行脚本。因此,在几天或几周内,恶意代码可能会在数据中心或甚至多个数据中心中的许多(如果不是全部)服务器之间复制自身。
因此,本说明书描述了拦截对数据中心计算系统的某些请求或调用。调用的类型被标识,以确定其是否是修改目标位置处的数据的调用。如果目标位置是包括主启动记录的位置,则该调用被阻止。如果目标位置在另一个受保护的位置(包括受保护的客户数据)中,则白名单机制被访问以确定进行该调用的进程和/或用户是否被包含在白名单上。如果不是,则该请求再次被阻止。如果是,则该调用被执行。白名单也可以被存储在受保护的卷上。
图1是计算系统架构100的一个示例的框图。架构100示出了可以由多个用户104-106使用用户设备108-110通过网络112访问的数据中心计算系统102。图1还示出了管理员或工程师114可以使用管理/工程师设备116访问数据中心计算系统102。管理员/工程师114可以如箭头118所示直接访问计算系统102,或者如箭头120所示通过网络112访问计算系统102。
在图1所示的示例中,用户设备108-110被示出为生成用户界面122-124,以分别供用户104-106进行交互。用户104-106与他们各自的用户界面122-124进行交互,以便控制和操纵对应的用户设备108-110和数据中心计算系统102的一些部分。
类似地,设备116被示出为生成界面126以供用户114进行交互。用户114图示性地与界面126进行交互,以便控制和操纵设备116和数据中心计算系统102的一些部分。用户104-106图示性地访问数据中心计算系统102提供的资源(诸如数据存储、托管的服务和其他资源)。
网络112可以是各种各样不同类型的网络中的任何一种。例如,它可以是广域网、局域网、近场通信网络、蜂窝网络、或者各种其他网络或网络组合中的任何一种。
管理员/工程师114图示性地在数据中心计算系统102上执行管理或工程操作。因此,用户114可以访问数据中心计算系统102的某些部分,以执行维护操作、部署代码以修复漏洞(bug)、部署新特征、或执行其他操作。为了这样做,用户114经常被提供允许他或她访问计算系统102的各个部分的认证信息或安全证书,认证信息或安全证书以其他方式不可访问。
在一个示例中,图1示出了数据中心计算系统102图示性地包括前端功能性130、服务器系统132、数据存储系统134,并且它可以包括各种其他数据中心功能性136。服务器系统132包括多个不同的服务器机器138-140。数据存储系统134图示性地包括多个不同的数据存储设备142-144。
简言之,在操作中,前端功能性130图示性地从使用数据中心计算系统102托管的资源和服务的各种用户104-106接收请求,并将这些请求提供给服务器系统132。服务器机器138-140图示性地处理该请求,以便用户104-106可以操纵或访问存储在数据存储系统134中的数据,尤其是在不同数据存储设备142-144上的数据。前端功能性130接收到的请求的结果可以由服务器系统132返回到前端功能性130。前端功能性130然后可以将所请求的操作的结果返回给请求它们的用户。
存在可以被部署用来保护数据中心计算系统102中的数据和其他项的多种不同类型的安全系统或技术。例如,用户104-106可能被要求提供验证信息以便访问不同的信息。类似地,管理/工程师用户114可能被要求提供某些安全证书。另外,在用户114希望在数据中心计算系统102上部署代码的情况下,在代码114可以被部署到数据中心计算系统102之前,用户114可能被要求对代码进行签名、或以其他方式认证或验证。
作为示例,用户104可以提供输入/输出(I/O)请求以针对存储在数据存储设备142中的数据执行某个操作。工程用户114可以将一段代码部署到服务器机器138的内核,其旨在执行实施该I/O请求中的操作。在一个示例中,由工程用户114部署的逻辑可以对I/O请求执行管理操作,诸如创建文件、打开文件或文档、关闭文件、删除文件、枚举文件、读取和写入文件数据等。
作为具体示例,在数据存储设备142-144中的数据根据文件系统和目录被布置的情况下,由用户114部署以帮助管理I/O操作的代码可以被称为过滤器驱动。过滤器驱动附接到设备、存储器卷或文件系统,并且被加载到与该卷或文件系统相对应的驱动堆栈中。当针对该设备、卷或文件系统的I/O请求被接收到时,它会通过一条I/O管理逻辑被转发到正确的设备、文件系统或卷。
附接到该设备、文件系统或卷的驱动堆栈包括为对应的设备、文件系统或卷加载的过滤器驱动,并且I/O请求被提供给该驱动堆栈中的驱动。这些驱动器可以包括过滤器驱动,过滤器驱动可以响应于I/O请求而修改它们所附接到的设备、文件系统或卷的行为。过滤器驱动是内核模式组件,这意味着它们由内核计算系统针对特定服务器机器执行。内核计算系统执行作为操作系统一部分的内核程序,该程序管理来自客户模式组件(诸如应用)的I/O请求。内核在计算系统的启动时被加载,并且可以管理其余的启动操作。
要了解,尽管在此根据数据存储设备142-144中的信息被布置为文件系统层次结构或目录中的文件来描述一些示例,但是不必是这种情况。相反,它们也可以按照其他方式存储。类似地,尽管本描述的一些部分针对文件系统驱动、驱动堆栈等进行,但是也不需要使用它们。在其他示例中,代替由文件系统所对应的驱动堆栈中的文件系统驱动(或过滤器驱动)来执行,该操作可以由驻留在从用户模式组件接收I/O请求并在服务器机器的内核内对该请求进行处理的数据访问系统中的数据访问代码来执行,而无需利用“驱动”、“过滤器驱动”等。相反,代码仅作为数据访问系统中的单独组件被执行。本文将描述不同类型的示例。它们仅被认为是示例,并且不限制本讨论的范围。
不管架构100的特定配置如何,可能的情况是,管理用户或工程用户114可能希望在数据中心计算系统102上执行恶意操作。因为用户114具有使驱动或其他数据访问逻辑(或代码)签名或以其他方式向数据中心计算系统102进行认证的证书,所以用户114在某些情况下可以将恶意驱动或另一段恶意数据访问代码部署到数据中心计算系统102。例如,恶意代码可能会尝试修改或操纵在安装了恶意代码的机器的启动扇区或主启动记录中找到的代码。在另一示例中,机器被启动后,恶意代码可能会尝试修改敏感的客户数据。计算系统102可能不会将恶意代码识别为恶意的,因为它可能包含适当的签名或其他认证信息。
因此,如下所述,本说明书描述了服务器机器138-140的内核中的服务器内核处理系统,该系统减少了这种情况发生的可能性。
本描述提供了一种逻辑,其拦截数据操纵调用并且标识每个调用的目标。如果目标是包含主启动记录的卷,则数据操纵调用被阻止。本描述还通过描述敏感的客户数据都可以被分区到特定的光盘来进行。因此,附接到该光盘上的数据访问逻辑会拦截对光盘的数据操纵调用,并且标识调用进程是否被允许操纵光盘上的数据、和/或与调用进程相关联的用户是否还被允许修改光盘上的数据。在一个示例中,该确定通过以下来进行:访问白名单机制以将该调用进程和/或用户与白名单上的条目进行比较以确定该调用进程和/或用户是否被授权访问该光盘。如果不是,则数据操纵调用将再次被阻止。
图2是图1所示的计算系统架构100的一部分的一个示例的更详细的框图。一些项与图1所示的那些项类似,并且它们具有类似的编号。在图2所示的示例中,应用或其他请求进程或用户150生成I/O请求152,该I/O请求152被提供给服务器机器138上的前端逻辑130。在图2所示的示例中,服务器机器138包括服务器内核处理系统156,并且它还可以包括各种其他功能性。服务器内核处理系统156处理I/O请求152,并且如果被授权,则访问数据存储设备之一(例如,数据存储设备142)中的数据。数据可以被存储在文件系统中,也可以被存储在另一数据卷中,如框158所示。要访问的数据可以包括敏感的客户数据160、白名单162或各种其他数据164。图2还示出了系统156可以访问数据存储库190,该数据存储库190可以存储主启动记录192和其他项194。
在图2所示的示例中,服务器内核处理系统156图示性地包括一个或多个处理器166、数据访问逻辑168、I/O管理器170,并且它可以包括各种其他内核功能性172。数据访问逻辑168可以包括I/O调用类型标识符逻辑174、调用拦截逻辑176、调用阻止逻辑178,并且它可以包括其他项180。在所示的示例中,调用拦截逻辑176包括目标卷标识符逻辑182、目标分析逻辑183(其本身包括白名单访问逻辑184、进程/用户标识逻辑185和白名单比较逻辑186),并且它可以包括各种其他项188。
在操作中,图2示出了请求(或调用)进程/用户150可以生成I/O请求152作为文件打开请求、文件写入请求、读取请求、文件创建请求、文件删除请求或各种其他请求,这些请求可以被发布以访问数据存储设备142上的信息。前端功能性130图示性地公开一个接口以接收请求152,并且将该请求提供给I/O管理器逻辑170。服务器机器138上可能存在数据访问逻辑168的各种不同实例。因此,I/O管理器逻辑170将I/O请求152路由到适当的一组数据访问逻辑168进行处理。当数据访问逻辑168接收到I/O请求152时,I/O调用类型标识符174标识正在进行的调用(或I/O请求)的类型。例如,如上所述,它可以是文件打开请求、创建请求、删除请求、读取请求、写入请求等。
在一个示例中,如果调用类型标识符174将I/O请求标识为任何类型的文件修改请求(例如,将对请求访问的数据进行任何修改的请求),则调用拦截逻辑176拦截该调用。然后目标卷标识符逻辑182标识要操纵的数据所要存储的目标卷。逻辑182标识目标是否在数据存储库190的主启动记录(或启动扇区)中。
如果数据操纵(或修改)调用的目标在主启动记录192中,则逻辑182生成指示这种情况的信号到调用阻止逻辑178。调用阻止逻辑178阻止该调用(或I/O请求)152被执行。
然而,如果目标卷标识符逻辑182标识出该目标不在主启动记录192中,而是被定向到另一卷或另一组存储器位置,则逻辑182确定该卷是否是受保护卷158,白名单162或客户数据160(或两者兼有)驻留在受保护卷158中,并且该受保护卷158已被分区到数据存储设备142中的磁盘。如果是,则进程/用户标识逻辑185解析请求152以标识调用进程和/或用户150。白名单访问逻辑184访问白名单162,并且白名单比较逻辑186确定调用进程/用户150是否在白名单上(或者,基于白名单162中的条目,被授权执行受保护卷158中的数据操纵或修改操作)。
举例来说,可能的情况是,白名单162包括标识被授权有权访问受保护卷158的进程和/或用户的条目。如果白名单比较逻辑186确定请求进程/用户150未被白名单162标识,则指示这种情况到调用阻止逻辑178,并且逻辑178阻止调用(或请求)152被执行。要注意,通过将白名单162存储在受保护卷158内,未授权的进程/用户150不能修改白名单162或客户数据160。然而,要注意,白名单162也可以与客户数据160分开地存储。
图3比图1更详细地示出了数据中心计算系统102的一部分的另一示例。图3中的一些项与图2所示的项类似并且它们具有类似的编号。然而,在图3所示的示例中,数据被存储在各种文件系统中的数据存储设备142中。因此,数据存储设备142被示为存储文件系统/受保护卷200,该文件系统/受保护卷200存储客户数据160、白名单162,并且它可以存储其他项164。
在图3所示的示例中,数据访问逻辑168包括用于目标文件系统/卷的文件系统/卷驱动堆栈208和用于要访问的目标卷(即I/O请求152的目标)的存储驱动堆栈210。在一个示例中,图3还示出卷驱动堆栈208包括过滤器管理器逻辑212,该过滤器管理器逻辑212具有附接到其上的多个不同的微型过滤器驱动214-216。它也可以包括各种其他过滤器驱动218。
可能存在多个不同的驱动堆栈,它们附接到不同的设备、文件系统或卷。因此,当I/O请求152被接收到时,I/O管理器逻辑170标识作为I/O请求170的主题(或目标)的特定设备、文件系统或卷,并且将I/O请求170转发到附加到该设备、文件系统或卷的驱动堆栈。在图3所示的示例中,I/O管理器逻辑170将I/O请求152转发到设备、文件系统或卷驱动堆栈208。
驱动堆栈208中的各种过滤器驱动修改I/O请求150或对接收到的I/O请求150进行处理。在一些情况下,过滤器驱动逻辑在不同的过滤器驱动之间共享。在这种情况下,过滤器管理器逻辑212可以支持多个不同的微型过滤器驱动214-216。逻辑212包括用于由过滤器管理器逻辑212支持的微型过滤器驱动的通用功能性。微型过滤器驱动214-216本身包括附加逻辑,因此执行不同的过滤步骤。过滤器驱动(例如,驱动堆栈208中其他文件系统驱动器212中的微型过滤器驱动214-216)的位置可以被指定,或者过滤器驱动的位置可以基于加载驱动的顺序来确定。
在操作中,过滤器管理器逻辑212图示性地接收I/O请求170,并且提供I/O请求170以用于由微型过滤器驱动214-216按照它们在堆栈208中的顺序所确定的顺序进行操作。一旦附接到过滤器管理器逻辑212的微型过滤器驱动214-216已经对I/O请求152执行,则结果可以被提供给其他文件系统过滤器驱动218。然后,产生的I/O请求(在堆栈208中的所有过滤器驱动都对其进行了操作之后)被提供给目标文件所驻留的特定数据存储设备142的存储驱动堆栈210。例如,如果I/O请求152是对数据存储设备142内的文件进行操作,则I/O请求被从驱动堆栈208提供给存储设备142的存储驱动堆栈。这仅是示例。
在图3所示的示例中,微型过滤器驱动214-216可以被提供以确定I/O请求152是否是数据操纵(或数据修改)请求。然后,微型过滤器驱动(同一个或不同的一个)可以确定数据操纵请求的目标是主启动记录192还是受保护卷158。如果它是主启动记录192,则同一个微型过滤器驱动(或不同的一个)可以阻止I/O请求的执行。如果目标是受保护卷158,则一个或多个微型过滤器驱动可以解析I/O请求152,以标识调用进程和/或用户,访问白名单162并且基于白名单162中的条目来确定调用进程/用户是否被授权。再次,如果没有,则该调用被阻止执行。
图4是图示了数据访问逻辑168(在图2或图3中)的操作的一个示例的流程图。首先假设服务器内核正在运行服务器内核处理系统156。这由图4的流程图中的框220指示。还假设服务器内核正在以数据访问逻辑168运行。这由框222指示。数据访问逻辑可以是图2或图3中所示的逻辑之一、或不同的数据访问逻辑。在一个示例中,数据访问逻辑168设置有过滤器驱动(诸如卷驱动堆栈208)。这由图4的流程图中的框224指示。服务器内核当然也可以包括其他项。这由框226指示。
前端逻辑130接收数据访问请求152。这由框228指示。在一个示例中,该请求是从调用进程/用户接收的。这由框230指示。调用进程可以是操作系统进程或不同的进程。数据访问请求也可以以其他方式接收,并且这由框232指示。
然后,数据访问逻辑168标识数据访问请求的类型,以确定它是否是数据操纵请求(或修改请求,诸如删除请求、写请求等)。这由框234指示。在一个示例中,这可以由I/O调用类型标识符逻辑174(图2所示)或由图3所示的微型过滤器驱动214执行。也可以通过其他方式完成。
如在框236处所确定的,如果确定该请求不是数据操纵(或修改)请求,则该请求被执行(或至少被传递给其他过滤器驱动或其他处理逻辑,以供进一步执行)。这由图4的流程图中的框238指示。
如果在框236处确定该请求是数据操纵(或修改)请求,则确定数据操纵请求的目标是否是主启动记录192。这由图4的流程图中的框240指示。再次,这可以由目标卷标识符逻辑182(图2所示)或微型过滤器驱动214-216(图3所示)确定。在由微型过滤器驱动执行的情况下,它可以是标识该请求是否是数据操纵请求的同一微型过滤器驱动(或其他过滤器驱动),也可以是不同的一个微型过滤器驱动。
如果在框240处确定该数据请求以主启动记录为目标,则该调用被阻止。这由框242指示。再次,这可以通过调用阻止逻辑178(图2所示)或通过微型过滤器驱动(图3所示)来完成。
如果在框240处确定数据操纵请求的目标不是主启动记录,则确定目标是否在另一受保护卷(诸如受保护卷158或受保护卷200,分别如图2和图3所示)中。这由图4的流程图中的框244指示。关于数据操纵请求是否是以受保护卷为目标的确定可以由目标卷标识符逻辑182或微型过滤器驱动214-216确定。目标卷可以与已知的受保护卷相比较。已知受保护卷的标识本身可以被存储在受保护卷中或其他位置。
如果在框244处确定目标卷不是受保护卷,则处理再次移至框238,在框238处I/O请求被执行(或至少被传递以供进一步处理)。
然而,如果在框244处确定数据操纵请求的目标在受保护卷中,则该请求被解析以标识请求进程和/或用户。这由框246指示。这可以由进程/用户标识逻辑185(图2所示)或图3所示的微型过滤器驱动(或其他过滤器驱动)来完成。
然后,白名单162被访问以确定其是否包括授权请求进程/用户访问受保护卷158、200的条目。访问白名单机制由图4的流程图中的框248指示。此操作可以通过白名单访问逻辑184或微型过滤器驱动214-216或另一过滤器驱动218来完成。
然后,所标识的请求进程/用户与白名单相比较,以确定该请求进程/用户是否被白名单授权。这由框250指示,并且这也可以由白名单比较逻辑186或微型过滤器驱动214-216或另一过滤器驱动218来执行。本文中考虑了这些机制中的任何一个或全部。如果请求进程/用户被白名单授权,则处理在框238处继续,在框238处,请求被传递以供进一步执行。然而,如果在框250处确定该请求进程/用户未被白名单机制授权,则处理在框242处继续,在框242处,该请求被阻止。
因此可以看出,本系统大大增强了计算系统本身的安全性。它拦截所有文件数据操纵(或修改)请求,并且确定目标文件是否在主启动记录中。如果是,该请求将被阻止。如果不是,则确定数据操纵(或修改)请求的目标是否在受保护卷中。如果在,则针对白名单机制(其可以被存储在相同的受保护卷中)进行的授权对请求进程/用户进行检查。仅当存在授权时,该请求才被执行。如果不存在授权,则该请求将再次被阻止。
在一个示例中,白名单是可以对不同卷(或存储器位置范围)执行数据操纵或其他操作的授权用户和请求进程的列表。白名单可以通过多种不同方式得到保护。在一个示例中,如果请求进程或用户在附接到特定设备、卷或文件系统的白名单上,则该请求进程和/或用户被授权在该设备上或在该卷或文件系统中执行操作。如果不在,则其未被授权这样做。
将注意,以上讨论已经描述了各种不同的系统、组件和/或逻辑。要了解,这样的系统、组件和/或逻辑可以由执行与那些系统、组件和/或逻辑相关联的功能的硬件项(诸如处理器和相关联的存储器或其他处理组件,其中一些在下面描述)组成。另外,如下所述,系统、组件和/或逻辑可以由被加载到存储器中并随后由处理器或服务器或其他计算组件执行的软件组成。系统、组件和/或逻辑还可以包括硬件、软件、固件等的不同组合,下面描述其一些示例。这些仅是可被用于形成上述系统、组件和/或逻辑的不同结构的一些示例。也可以使用其他结构。
本讨论已经提到了处理器和服务器。在一个实施例中,处理器和服务器包括计算机处理器,该计算机处理器具有未单独示出的相关联的存储器和定时电路系统。它们是它们所属的系统或设备的功能部分,并由这些系统或设备启动,并且支持这些系统中其他组件或项的功能性。
此外,已经讨论了许多用户界面显示。它们可以采取多种不同的形式,并且可以在其上设置多种不同的用户可致动的输入机构。例如,用户可致动的输入机制可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。它们也可以以多种不同的方式来致动。例如,它们可以使用点击设备(诸如轨迹球或鼠标)来致动。它们可以使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来致动。它们也可以使用虚拟键盘或其他虚拟致动器来致动。另外,在显示它们的屏幕是触敏屏幕的情况下,它们可以使用触摸手势来致动。此外,在显示它们的设备具有语音识别组件的情况下,它们可以使用语音命令来致动。
还讨论了许多数据存储库。要注意,它们每个都可以被分成多个数据存储库。全部都可以是访问它们的系统本地的、全部都可以是远程的、或者一些可以是本地的而另一些可以是远程的。本文考虑了所有这些配置。
此外,这些图示出了具有归因于每个块的功能性的多个块。要注意,可以使用更少的块,因此功能性由更少的组件来执行。此外,更多的块可以与分布在更多组件之间的功能性一起使用。
图5是图1所示的架构100的框图,不同之处在于其元件被布置在云计算架构500中。云计算提供了计算、软件、数据访问和存储服务,这些服务不需要最终用户了解交付服务的系统的物理位置或配置。在各种示例中,云计算使用适当的协议通过广域网(诸如互联网)交付服务。例如,云计算提供方通过广域网交付应用,并且可以通过web浏览器或任何其他计算组件对其进行访问。架构100的软件或组件以及对应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置进行整合,也可以进行分散。云计算基础设施可以通过共享数据中心交付服务,即使它们对于用户而言只是一个访问点。因此,本文所述的组件和功能可以使用云计算架构从远程位置的服务提供方来提供。备选地,它们可以从常规服务器提供,也可以直接或以其他方式被安装在客户端设备上。
该描述旨在包括公共云计算和私有云计算。云计算(公共和私有两者)都提供了实质上无缝的资源池,并减少了管理和配置底层硬件基础设施的需求。
公共云由供应方管理,并且通常使用同一基础设施来支持多个消费者。此外,与私有云相反,公共云可以使最终用户摆脱管理硬件的负担。私有云可以由组织本身管理,并且基础设施通常不与其他组织共享。组织仍在某种程度上维护硬件,诸如安装和维修等。
在图5所示的示例中,一些项类似于图1中所示的那些项,并且它们具有类似的编号。图5具体示出了数据中心计算系统102可以位于云502中(其可以是公共的、私有的、或者部分是公共的而其他部分是私有的组合)。因此,用户104、106、114使用用户设备108、110、116通过云502访问那些系统。
图5还描绘了云架构的另一示例。图5示出了还可以预期的是,计算系统102的一些元件可以被布置在云502中,而其他元件则不能。举例来说,数据存储库142、144可以被布置在云502的外部,并可以通过云502来访问。在另一示例中,系统132(或其他项)可以在云502的外部。无论它们位于何处,它们可以通过网络(广域网或局域网)被设备108、110、116直接访问,可以通过服务被托管在远程站点,也可以通过云作为服务被提供或通过驻留在云中的连接服务来访问。本文考虑了所有这些架构。
还要注意,架构100或其部分可以被布置在各种不同设备上。这些设备中的一些包括服务器、台式计算机、膝上型计算机、平板计算机或其他移动设备,诸如掌上型计算机、手机、智能电话、多媒体播放器、个人数字助理等。
图6是计算环境的一个示例,在该计算环境中(例如)可以部署架构100或其一部分。参考图6,用于实现一些实施例的示例系统包括计算机810形式的通用计算设备。计算机810的组件可以包括但不限于处理单元820(其可以包括先前的图中的处理器或服务器)、系统存储器830和系统总线821,系统总线821将包括系统存储器的各种系统组件耦合到处理单元820。系统总线821可以是包括存储器总线或存储器控制器的多种类型的总线结构中的任何一种、外围总线和使用各种总线架构中的任何一种的本地总线。通过示例而非限制,此类架构包括行业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线(但也称为夹层总线)。相对于图1描述的存储器和程序可以被部署在图6的对应部分中。
计算机810通常包括各种计算机可读介质。计算机可读介质可以是可由计算机810访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。通过示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于(且不包括)调制数据信号或载波。它包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或者其他存储器技术、CD-ROM、数字通用盘(DVD)或者其他光盘存储、磁带盒、磁带、磁盘存储或者其他磁存储设备、或者可以被用于存储所需的信息并且可由计算机810进行访问的任何其他介质。通信介质通常在传输机制中体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递媒体。术语“调制数据信号”是指按照对信号中的信息进行编码的方式来设置或者改变其一种或者多种特性的信号。通过示例而非限制,通信介质包括诸如有线网络或者直接有线连接等有线介质、以及诸如声学、RF、红外和其他无线介质等无线介质。上述中任何的组合还应该被包括在计算机可读介质的范围内。
系统存储器830包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)831和随机存取存储器(RAM)832。基本输入/输出系统833(BIOS),包含帮助诸如在启动期间在计算机810内的元件之间传送信息的基本例程,通常被存储在ROM 831中。RAM 832通常包含可被处理单元820立即访问和/或当前正被处理单元820操作的数据和/或程序模块。通过示例而非限制,图6图示了操作系统834、应用程序835、其他程序模块836和程序数据837。
计算机810还可以包括其他可移除/不可移除的易失性/非易失性计算机存储介质。仅通过示例,图6图示了从不可移除的非易失性磁性介质读取或写入不可移除的非易失性磁性介质的硬盘驱动器841、以及从可移除的非易失性光盘856(诸如CD ROM或其他光学介质)读取或写入可移除的非易失性光盘856的光盘驱动器855。可以在示例性操作环境中使用的其他可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能磁盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840之类的不可移除存储器接口连接至系统总线821,并且光盘驱动器855通常通过诸如接口850之类的可移除存储器接口连接至系统总线821。
备选地,或者另外,本文描述的功能性可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以被使用的图示性硬件逻辑组件的类型包括现场可编程门阵列(FPGA)、特定于程序的集成电路(ASIC)、特定于程序的标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)等。
上面讨论并在图6中图示的驱动器及其相关联的计算机存储介质为计算机810提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图6中,例如,硬盘驱动器841被图示为存储操作系统844、应用程序845、其他程序模块846和程序数据847。注意,这些组件可以与操作系统834、应用程序845、其他程序模块846和程序数据847相同或不同。此处为操作系统834、应用程序845、其他程序模块846和程序数据847赋予不同的数字,以说明它们至少是不同的副本。
用户可以通过诸如键盘862、麦克风863和指示设备861(诸如鼠标、轨迹球或触摸板)等输入设备向计算机810输入命令和信息。其他输入设备(未示出)可以包括操纵杆、游戏垫、卫星天线、扫描仪等。这些和其他输入设备常常通过耦合到系统总线的用户输入接口860连接到处理单元820,但是可以通过其他接口和总线结构(诸如并行端口、游戏端口或通用串行总线(USB))连接。视觉显示器891或其他类型的显示设备也经由诸如视频接口890之类的接口连接至系统总线821。除了监视器之外,计算机还可以包括诸如扬声器897和打印机896之类的其他外围输出设备,这些外围输出设备可以通过输出外围接口895连接。
使用与一个或多个远程计算机(诸如远程计算机880)的逻辑连接在联网环境中操作计算机810。远程计算机880可以是个人计算机、手持式设备、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上面相对于计算机810描述的许多或所有元件。图6中描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但是也可以包括其他网络。这种联网环境在办公室、企业范围的计算机网络、内联网和互联网中是司空见惯的。
当在LAN联网环境中使用时,计算机810通过网络接口或适配器870连接到LAN871。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或用于通过WAN 873(诸如互联网)建立通信的其他方式。调制解调器872(其可以在内部或外部)可以经由用户输入接口860或其他适当的机制连接到系统总线821。在联网环境中,相对于计算机810或其部分所描绘的程序模块可以被存储在远程存储器存储设备中。通过示例而非限制,图6图示了驻留在远程计算机880上的远程应用程序885。要了解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他方式。
示例1是一种计算系统,包括:
服务器内核中的数据访问逻辑,该数据访问逻辑从调用进程接收对被存储在数据存储设备上的数据执行操作的请求;
服务器内核中的调用拦截逻辑,该调用拦截逻辑在请求被执行之前拦截请求,并且,如果请求是操纵目标数据的数据操纵请求,则该调用拦截逻辑标识目标数据被存储的存储位置并且确定存储位置是否在与计算系统对应的主启动记录中,并且,如果存储位置在主启动记录中,则该调用拦截逻辑生成拦截信号,该拦截信号指示目标数据在主启动记录中;
服务器内核中的目标分析逻辑,如果如果存储位置不在主启动记录中,则该目标分析逻辑确定存储位置是否在保存受保护存储卷的磁盘上;并且,如果是,则该目标分析逻辑确定请求进程是否被白名单文件授权,并且生成授权信号,该授权信号指示请求进程是否被白名单文件授权;以及
调用阻止逻辑,如果目标数据的存储位置在主启动记录中,则该调用阻止逻辑基于拦截信号阻止请求被执行,并且,如果目标数据的存储位置在保存受保护存储卷的磁盘上并且请求进程未被白名单文件授权,则该调用阻止逻辑基于授权信号阻止请求被执行。
示例2是任何或所有先前示例的计算系统,并且还包括:
服务器内核中的调用类型标识符逻辑,被配置为标识请求是否是操纵目标数据的数据操纵请求。
示例3是任何或所有先前示例的计算系统,其中调用拦截逻辑包括:
目标卷标识符逻辑,被配置为标识目标数据的存储位置,以确定目标数据是否在主启动记录中并且生成拦截信号。
示例4是任何或所有先前示例的计算系统,其中目标分析逻辑包括:
进程标识逻辑,被配置为标识调用进程。
示例5是任何或所有先前示例的计算系统,其中目标分析逻辑包括:
白名单访问逻辑,被配置为:如果授权信号指示存储位置不位于主启动记录中,则访问白名单文件以标识白名单文件中的条目。
示例6是任何或所有先前示例的计算系统,其中目标分析逻辑包括:
白名单比较逻辑,被配置为将调用进程与白名单文件中的条目进行比较,以确定调用进程是否被白名单文件中的条目标识,并且,如果是,则生成授权输出,该授权输出指示调用进程由白名单文件授权。
示例7是任何或所有先前示例的计算系统,其中目标分析逻辑包括:
用户标识逻辑,被配置为标识在调用进程中发起请求的用户。
示例8是任何或所有先前示例的计算系统,其中白名单比较逻辑被配置为将所标识的用户与白名单文件中的条目进行比较,以确定所标识的用户是否被白名单文件中的条目标识,并且如果是,则生成授权输出,该授权输出指示所标识的用户由白名单文件授权。
示例9是任何或所有先前示例的计算系统,其中请求是访问文件系统中的文件,文件系统具有加载过滤器驱动的附接驱动堆栈,该加载过滤器驱动被加载到服务器内核中以用于由服务器内核执行。
示例10是任何或所有先前示例的计算系统,其中调用拦截逻辑包括驱动堆栈中被附接到文件系统的过滤器驱动。
示例11是任何或所有先前示例的计算系统,其中调用目标分析逻辑包括驱动堆栈中被附接到文件系统的过滤器驱动。
示例12是任何或所有先前示例的计算系统,其中调用阻止逻辑包括驱动堆栈中被附接到文件系统的过滤器驱动。
示例13是一种计算机实现的方法,包括:
在服务器内核处,从调用进程接收对被存储在数据存储设备上的数据执行操作的请求;
利用服务器内核,在请求被执行之前拦截请求;
如果请求是操纵目标数据的数据操纵请求,则标识目标数据被存储的存储位置并且确定存储位置是否在与计算机对应的主启动记录中;
如果存储位置在主启动记录中,则利用服务器内核生成拦截信号,该拦截信号指示目标数据在主启动记录中;
如果如果存储位置不在主启动记录中,则利用服务器内核确定存储位置是否在保存受保护存储卷的磁盘上,并且,如果是,则确定请求进程是否被白名单文件授权,并且生成授权信号,该授权信号指示请求进程是否被白名单文件授权;以及
如果目标数据的存储位置在主启动记录中,则基于拦截信号阻止请求被执行,并且,如果目标数据的存储位置在保存受保护存储卷的磁盘上并且请求进程未被白名单文件授权,则基于授权信号阻止请求被执行。
示例14是任何或所有先前示例的计算机实现的方法,并且还包括:
利用服务器内核,标识请求是否是操纵目标数据的数据操纵请求。
示例15是任何先前示例或所有先前示例的计算机实现的方法,其中确定请求进程是否被白名单文件授权包括:
标识调用进程;以及
访问白名单文件以标识白名单文件中的条目。
示例16是任何先前示例或所有先前示例的计算机实现的方法,其中确定请求进程是否被白名单文件授权包括:
将调用进程与白名单文件中的条目进行比较,以确定调用进程是否被白名单文件中的条目标识;以及
如果是,则生成授权输出,该授权输出指示调用进程由白名单文件授权。
示例17是任何或所有先前示例的计算机实现的方法,并且还包括:
标识在调用进程中发起该请求的用户;
将所标识的用户与白名单文件中的条目进行比较,以确定所标识的用户是否被白名单文件中的条目标识;并且
如果是,则生成授权输出,该授权输出指示所标识的用户由白名单文件授权。
示例18是任何或所有先前示例的计算机实现的方法,其中请求是访问文件系统中的文件,该文件系统具有加载过滤器驱动的附接驱动堆栈,该加载过滤器驱动被加载到服务器内核中以由服务器内核执行,并且其中拦截该请求包括:
执行驱动堆栈中被附接到文件系统的过滤器驱动。
示例19是任何先前示例或所有先前示例的计算机实现的方法,其中确定请求进程是否授权包括:
调用目标分析逻辑包括执行驱动堆栈中被附接到文件系统的过滤器驱动。
示例20是一种计算系统,包括:
服务器内核中的数据访问逻辑,该数据访问逻辑从调用进程接收对被存储在数据存储设备上的数据执行操作的请求;
服务器内核中的调用类型标识符逻辑,被配置为标识请求是否是操纵目标数据的数据操纵请求;
服务器内核中的调用拦截逻辑,该调用拦截逻辑在请求被执行之前拦截请求,并且,如果请求是操纵目标数据的数据操纵请求,则该调用拦截逻辑标识目标数据被存储的存储位置并且确定存储位置是否在与计算系统对应的主启动记录中,并且,如果存储位置在主启动记录中,则该调用拦截逻辑生成拦截信号,拦截信号指示目标数据在主启动记录中;
进程标识逻辑,被配置为标识调用进程;
服务器内核中的目标分析逻辑,如果如果存储位置不在主启动记录中,则该目标分析逻辑确定存储位置是否在保存受保护存储卷的磁盘上;
白名单访问逻辑,被配置为:如果授权信号指示存储位置不位于主启动记录中而是位于保存受保护卷的磁盘上,则该白名单访问逻辑访问白名单文件以标识白名单文件中的条目;
白名单比较逻辑,被配置为将调用进程与白名单文件中的条目进行比较,以确定调用进程是否被白名单文件中的条目标识,并且,如果是,则生成授权输出,授权输出指示调用进程由白名单文件授权;以及
调用阻止逻辑,如果目标数据的存储位置在主启动记录中,则该调用阻止逻辑基于拦截信号阻止请求被执行,并且,如果目标数据的存储位置在保存受保护存储卷的磁盘上并且请求进程未被白名单文件授权,则该调用阻止逻辑基于授权信号阻止请求被执行。
还应当注意,本文描述的不同示例可以以不同方式组合。即,一个或多个示例的部分可以与一个或多个其他示例的部分组合。本文考虑了所有这些。
尽管已经以结构特征和/或方法动作专用的语言描述了主题,但是应该理解,所附权利要求书中定义的主题不必限于上述的特定特征或动作。而是,以上描述的特定特征和动作被公开为实现权利要求的示例形式。
Claims (19)
1.一种计算系统,包括:
至少一个处理器;以及
存储器,存储可由所述至少一个处理器执行的指令,其中所述指令在被执行时提供所述计算系统中的内核-模式组件,所述内核-模式组件被配置为:
接收第一数据操纵请求以操纵第一目标数据;
标识所述第一目标数据的第一存储位置;
基于确定所述第一存储位置位于保存受保护存储卷的数据存储设备上,将对应于所述第一数据操纵请求的调用进程与白名单文件中的条目进行比较,所述条目标识被授权访问所述受保护存储卷的被授权的调用进程;
基于所述调用进程与所述白名单文件中的所述条目的比较,生成阻止所述第一数据操纵请求被执行的指令;
在所述第二数据操纵请求被执行之前,拦截所述第二数据操纵请求;
基于确定所述第二数据操纵请求请求操纵第二目标数据,标识存储所述第二目标数据的第二存储位置;以及
基于确定所述第二存储位置位于主启动记录中,阻止所述第二数据操纵请求被执行。
2.根据权利要求1所述的计算系统,其中所述白名单文件标识被授权访问所述受保护存储卷的多个被授权的调用进程,并且授权信号是基于所述调用进程与所述多个被授权的调用进程的比较来生成的。
3.根据权利要求2所述的计算系统,其中
所述白名单存储一组数据条目;并且
所述一组数据条目的每个数据条目标识授权访问所述受保护存储卷的所述多个被授权的调用进程的不同的被授权的调用进程。
4.根据权利要求1所述的计算系统,其中所述内核-模式组件由所述计算系统的内核执行并且被附接到存储所述第一目标数据的所述数据存储设备。
5.根据权利要求4所述的计算系统,其中所述内核-模式组件包括卷驱动,所述卷驱动被加载到与所述受保护存储卷对应的卷驱动堆栈中。
6.根据权利要求5所述的计算系统,其中所述卷驱动被配置为接收所述第一数据操纵请求以及向所述数据存储设备转发所述第一数据操纵请求。
7.根据权利要求1所述的计算系统,其中所述内核-模式组件被配置为:
标识包含所述第一存储位置的目标卷;以及
将所述目标卷与标识受保护卷的一个或多个标识符进行比较。
8.根据权利要求1所述的计算系统,其中所述内核-模式组件被配置为标识所述请求调用进程中发起所述第一数据操纵请求的用户。
9.根据权利要求8所述的计算系统,其中所述内核-模式组件被配置为生成指示所述用户被所述白名单文件授权的授权输出。
10.一种方法,由计算系统内核执行,所述方法包括:
接收第一数据操纵请求以操纵第一目标数据;
标识所述第一目标数据的第一存储位置;
基于确定所述第一存储位置位于保存受保护存储卷的数据存储设备上,将对应于所述第一数据操纵请求的调用进程与白名单文件中的条目进行比较,所述条目标识被授权访问所述受保护存储卷的被授权的调用进程;
基于所述调用进程与所述白名单文件中的所述条目的比较,生成阻止所述第一数据操纵请求被执行的指令;
在所述第二数据操纵请求被执行之前,拦截所述第二数据操纵请求;
基于确定所述第二数据操纵请求请求操纵第二目标数据,标识存储所述第二目标数据的第二存储位置;以及
基于确定所述第二存储位置位于主启动记录中,阻止所述第二数据操纵请求被执行。
11.根据权利要求10所述的方法,其中所述白名单文件标识被授权访问所述受保护存储卷的多个被授权的调用进程,并且所述方法包括基于所述调用进程与所述多个被授权的调用进程的比较来生成授权信号。
12.根据权利要求10所述的方法,其中所述计算系统内核包括服务器内容。
13.根据权利要求12所述的方法,其中所述计算系统内核被附接到存储所述第一目标数据的所述存储设备。
14.根据权利要求13所述的方法,其中所述计算系统内核包括卷驱动,并且所述方法包括将所述卷驱动加载到与所述受保护存储卷对应的卷驱动堆栈中。
15.根据权利要求14所述的方法,并且包括:
通过所述卷驱动接收所述第一数据操纵请求以及向所述数据存储设备转发所述第一数据操纵请求。
16.根据权利要求10所述的方法,其中确定所述第一存储位置位于保存受保护存储卷的数据存储设备上包括:
标识包含所述第一存储位置的目标卷;以及
将所述目标卷与标识受保护卷的一个或多个标识符进行比较。
17.根据权利要求10所述的方法,并且包括标识所述调用进程中发起所述第一数据操纵请求的用户。
18.根据权利要求17所述的方法,并且包括生成指示所述用户被所述白名单文件授权的授权输出。
19.一种计算系统,包括:
至少一个处理器;以及
存储器,存储可由所述至少一个处理器执行的指令,其中所述指令在被执行时提供所述计算系统中的内核-模式组件,所述内核-模式组件被配置为:
接收数据操纵请求以操纵目标数据;
在所述数据操纵请求被执行之前,拦截所述数据操纵请求;
确定所述目标数据的存储位置;
响应于所述存储位置位于主启动记录中,阻止所述数据操纵请求被执行;以及
响应于以下项,阻止所述数据操纵请求被执行:
所述存储位置位于保存受保护存储卷的数据存储设备上;以及
将对应于所述数据操纵请求的调用进程与白名单文件中的条目进行比较,所述条目标识被授权访问所述受保护存储卷的被授权的调用进程。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/154,197 | 2018-10-08 | ||
US16/154,197 US11080416B2 (en) | 2018-10-08 | 2018-10-08 | Protecting selected disks on a computer system |
PCT/US2019/053974 WO2020076552A1 (en) | 2018-10-08 | 2019-10-01 | Protecting selected disks on a computer system |
CN201980066165.XA CN112805708B (zh) | 2018-10-08 | 2019-10-01 | 保护计算机系统上的选定磁盘 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066165.XA Division CN112805708B (zh) | 2018-10-08 | 2019-10-01 | 保护计算机系统上的选定磁盘 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118013586A true CN118013586A (zh) | 2024-05-10 |
Family
ID=68242884
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066165.XA Active CN112805708B (zh) | 2018-10-08 | 2019-10-01 | 保护计算机系统上的选定磁盘 |
CN202410322322.1A Pending CN118013586A (zh) | 2018-10-08 | 2019-10-01 | 保护计算机系统上的选定磁盘 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066165.XA Active CN112805708B (zh) | 2018-10-08 | 2019-10-01 | 保护计算机系统上的选定磁盘 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11080416B2 (zh) |
EP (2) | EP3847568B1 (zh) |
KR (1) | KR20210068035A (zh) |
CN (2) | CN112805708B (zh) |
WO (1) | WO2020076552A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080416B2 (en) * | 2018-10-08 | 2021-08-03 | Microsoft Technology Licensing, Llc | Protecting selected disks on a computer system |
US11151273B2 (en) | 2018-10-08 | 2021-10-19 | Microsoft Technology Licensing, Llc | Controlling installation of unauthorized drivers on a computer system |
US11113393B2 (en) * | 2019-11-04 | 2021-09-07 | Dell Products L.P. | Providing security features in write filter environments |
US11677754B2 (en) * | 2019-12-09 | 2023-06-13 | Daniel Chien | Access control systems and methods |
US20210294910A1 (en) * | 2020-03-18 | 2021-09-23 | Veritas Technologies Llc | Systems and methods for protecting a folder from unauthorized file modification |
CN112364395A (zh) * | 2020-11-11 | 2021-02-12 | 中国信息安全测评中心 | 一种固态硬盘的安全防护方法及装置 |
CN116451269B (zh) * | 2023-03-29 | 2024-06-18 | 北京华路时代信息技术股份有限公司 | 数据保护方法、装置、电子设备和可读存储介质 |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336171B1 (en) | 1998-12-23 | 2002-01-01 | Ncr Corporation | Resource protection in a cluster environment |
US7380140B1 (en) | 1998-12-30 | 2008-05-27 | Spyrus, Inc. | Providing a protected volume on a data storage device |
CA2352948A1 (en) * | 1999-10-01 | 2001-04-12 | Carlos Murdock | System and method for providing data security |
US7167982B2 (en) | 2001-09-14 | 2007-01-23 | Lenovo (Singapore) Pte Ltd. | Securing decrypted files in a shared environment |
US8291407B2 (en) | 2002-06-12 | 2012-10-16 | Symantec Corporation | Systems and methods for patching computer programs |
TWI229817B (en) * | 2003-01-07 | 2005-03-21 | Wistron Corp | Kernel-mode operating system of application program and method thereof |
US8281152B2 (en) * | 2004-06-18 | 2012-10-02 | Emc Corporation | Storage data encryption |
US20060117018A1 (en) * | 2004-11-30 | 2006-06-01 | Microsoft Corporation | Method and system for caching remote files locally |
WO2006101549A2 (en) | 2004-12-03 | 2006-09-28 | Whitecell Software, Inc. | Secure system for allowing the execution of authorized computer program code |
US20060150247A1 (en) | 2004-12-30 | 2006-07-06 | Andrew Gafken | Protection of stored data |
US7966643B2 (en) * | 2005-01-19 | 2011-06-21 | Microsoft Corporation | Method and system for securing a remote file system |
EP1684151A1 (en) | 2005-01-20 | 2006-07-26 | Grant Rothwell William | Computer protection against malware affection |
CA2717583A1 (en) | 2007-03-05 | 2008-09-12 | Andrea Robinson Fahmy | Method and system for preventing unauthorized access and distribution of digital data |
US8099718B2 (en) | 2007-11-13 | 2012-01-17 | Intel Corporation | Method and system for whitelisting software components |
US8950007B1 (en) * | 2008-04-07 | 2015-02-03 | Lumension Security, Inc. | Policy-based whitelisting with system change management based on trust framework |
WO2010016063A1 (en) | 2008-08-07 | 2010-02-11 | Safend Ltd. | System and method for protecting content on a storage device |
WO2010065271A2 (en) | 2008-11-25 | 2010-06-10 | Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | Systems and methods for providing continuous file protection at block level |
US8281075B2 (en) * | 2009-04-14 | 2012-10-02 | International Business Machines Corporation | Processor system and methods of triggering a block move using a system bus write command initiated by user code |
US8224796B1 (en) | 2009-09-11 | 2012-07-17 | Symantec Corporation | Systems and methods for preventing data loss on external devices |
KR101113820B1 (ko) | 2010-03-16 | 2012-02-29 | 소프트캠프(주) | 응용프로그램의 파일 입출력 보안방법과 보안시스템 |
US9239909B2 (en) | 2012-01-25 | 2016-01-19 | Bromium, Inc. | Approaches for protecting sensitive data within a guest operating system |
US8789138B2 (en) * | 2010-12-27 | 2014-07-22 | Microsoft Corporation | Application execution in a restricted application execution environment |
US8726396B1 (en) | 2011-01-14 | 2014-05-13 | Symantec Corporation | Scanning protected files for violations of a data loss prevention policy |
US8688734B1 (en) * | 2011-02-04 | 2014-04-01 | hopTo Inc. | System for and methods of controlling user access and/or visibility to directories and files of a computer |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US9038176B2 (en) | 2011-03-31 | 2015-05-19 | Mcafee, Inc. | System and method for below-operating system trapping and securing loading of code into memory |
US9087199B2 (en) * | 2011-03-31 | 2015-07-21 | Mcafee, Inc. | System and method for providing a secured operating system execution environment |
US20120291103A1 (en) | 2011-05-09 | 2012-11-15 | Google Inc. | Permission-based administrative controls |
US8626714B1 (en) | 2011-09-07 | 2014-01-07 | Symantec Corporation | Automated separation of corporate and private data for backup and archiving |
WO2013095565A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Systems and methods for providing anti-malware protection on storage devices |
US9081960B2 (en) | 2012-04-27 | 2015-07-14 | Ut-Battelle, Llc | Architecture for removable media USB-ARM |
US9769123B2 (en) | 2012-09-06 | 2017-09-19 | Intel Corporation | Mitigating unauthorized access to data traffic |
JP6073482B2 (ja) * | 2012-10-19 | 2017-02-01 | マカフィー, インコーポレイテッド | セキュアディスクアクセス制御 |
US9336395B2 (en) | 2013-01-25 | 2016-05-10 | Hewlett-Packard Development Company, L.P. | Boot driver verification |
CN103077354B (zh) * | 2013-02-19 | 2015-03-25 | 成都索贝数码科技股份有限公司 | 一种控制Windows文件系统访问权限的方法 |
US9202053B1 (en) * | 2013-02-27 | 2015-12-01 | Trend Micro Inc. | MBR infection detection using emulation |
US9251343B1 (en) * | 2013-03-15 | 2016-02-02 | Fireeye, Inc. | Detecting bootkits resident on compromised computers |
US20160378528A1 (en) * | 2015-06-26 | 2016-12-29 | Vmware, Inc. | Propagating changes from a virtual machine clone to a physical host device |
EP3440821B1 (en) * | 2016-04-06 | 2022-08-24 | Karamba Security | Secure controller operation and malware prevention |
US10409775B2 (en) * | 2016-04-29 | 2019-09-10 | Wyse Technology L.L.C. | Renaming a directory that resides on a layered volume |
US10204237B2 (en) | 2016-07-01 | 2019-02-12 | Workday, Inc. | Sensitive data service access |
GB2554390B (en) * | 2016-09-23 | 2018-10-31 | 1E Ltd | Computer security profiling |
CN109923548B (zh) | 2016-10-11 | 2022-06-10 | 佰倬信息科技有限责任公司 | 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 |
US20180157834A1 (en) | 2016-12-02 | 2018-06-07 | Politecnico Di Milano | Protection system and method for protecting a computer system against ransomware attacks |
US10810164B2 (en) * | 2017-01-27 | 2020-10-20 | Wyse Technology L.L.C. | Securing access to functionality of a file-based write filter |
CN107038389A (zh) | 2017-03-13 | 2017-08-11 | 上海青橙实业有限公司 | 数据加密处理方法、数据解密处理方法及移动终端 |
US11062030B2 (en) * | 2018-03-09 | 2021-07-13 | Huawei Technologies Co., Ltd. | Systems and methods for managing access control between processes in a computing device |
US10650158B2 (en) * | 2018-04-17 | 2020-05-12 | SecureCircle, LLC | System and method for secure file access of derivative works |
CN110234131A (zh) * | 2018-07-28 | 2019-09-13 | 华为技术有限公司 | 一种通信方法及装置 |
US11080416B2 (en) * | 2018-10-08 | 2021-08-03 | Microsoft Technology Licensing, Llc | Protecting selected disks on a computer system |
US11151273B2 (en) * | 2018-10-08 | 2021-10-19 | Microsoft Technology Licensing, Llc | Controlling installation of unauthorized drivers on a computer system |
US20220188444A1 (en) * | 2019-04-22 | 2022-06-16 | Cyberark Software Ltd. | Systems and methods for securing virtualized execution instances |
US11645400B2 (en) * | 2019-10-04 | 2023-05-09 | Vmware, Inc. | Secured interprocess communication |
US11496899B1 (en) * | 2019-11-15 | 2022-11-08 | Noble Systems Corporation | Indicating number sources used to define a whitelist for a smartphone-based robocall blocking process |
WO2021120180A1 (en) * | 2019-12-20 | 2021-06-24 | Citrix Systems, Inc. | Virtual workspace experience visualization and optimization |
KR102386617B1 (ko) * | 2020-06-15 | 2022-04-15 | 한국전자통신연구원 | 어플리케이션 컨테이너에 대한 시스템 콜 화이트리스트 생성 장치 및 방법, 어플리케이션 컨테이너에 대한 시스템 콜 제어 방법 |
-
2018
- 2018-10-08 US US16/154,197 patent/US11080416B2/en active Active
-
2019
- 2019-10-01 WO PCT/US2019/053974 patent/WO2020076552A1/en unknown
- 2019-10-01 KR KR1020217010267A patent/KR20210068035A/ko active Search and Examination
- 2019-10-01 EP EP19787551.1A patent/EP3847568B1/en active Active
- 2019-10-01 EP EP24159742.6A patent/EP4354334A2/en active Pending
- 2019-10-01 CN CN201980066165.XA patent/CN112805708B/zh active Active
- 2019-10-01 CN CN202410322322.1A patent/CN118013586A/zh active Pending
-
2021
- 2021-06-29 US US17/361,849 patent/US20220027493A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20210068035A (ko) | 2021-06-08 |
CN112805708A (zh) | 2021-05-14 |
US20220027493A1 (en) | 2022-01-27 |
EP3847568A1 (en) | 2021-07-14 |
US20200110892A1 (en) | 2020-04-09 |
WO2020076552A1 (en) | 2020-04-16 |
EP4354334A2 (en) | 2024-04-17 |
US11080416B2 (en) | 2021-08-03 |
CN112805708B (zh) | 2024-03-29 |
EP3847568B1 (en) | 2024-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112805708B (zh) | 保护计算机系统上的选定磁盘 | |
US10528735B2 (en) | Malicious code protection for computer systems based on process modification | |
US9418219B2 (en) | Inter-process message security | |
US8646044B2 (en) | Mandatory integrity control | |
US20090249436A1 (en) | Centralized Enforcement of Name-Based Computer System Security Rules | |
EP3005216B1 (en) | Protecting anti-malware processes | |
KR20220009388A (ko) | 통합되고 격리된 애플리케이션에서 랜섬웨어 경감 | |
US20220067195A1 (en) | Controlling installation of unauthorized drivers on a computer system | |
US11714901B2 (en) | Protecting a computer device from escalation of privilege attacks | |
KR20050039661A (ko) | 운영 체제 리소스 보호 | |
US20070050369A1 (en) | Accessing file under confinement | |
US11706220B2 (en) | Securing application behavior in serverless computing | |
WO2006134023A1 (en) | Virtualized file system | |
US11288344B2 (en) | Protecting an application via an intra-application firewall | |
US10992713B2 (en) | Method of and system for authorizing user to execute action in electronic service | |
US10542005B2 (en) | Connection control for virtualized environments | |
RU2807463C2 (ru) | Ослабление программы-вымогателя в интегрированных изолированных приложениях | |
Ochilov | Creating Secure File Systems in Open-Source Operating Systems |
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 |