CN112805700A - 控制计算机系统上的未授权驱动程序的安装 - Google Patents

控制计算机系统上的未授权驱动程序的安装 Download PDF

Info

Publication number
CN112805700A
CN112805700A CN201980065838.XA CN201980065838A CN112805700A CN 112805700 A CN112805700 A CN 112805700A CN 201980065838 A CN201980065838 A CN 201980065838A CN 112805700 A CN112805700 A CN 112805700A
Authority
CN
China
Prior art keywords
file
driver
target
request
logic
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
Application number
CN201980065838.XA
Other languages
English (en)
Inventor
M·库帕萨米
D·拉玛克里什纳帕
S·A·拉姆普拉萨德
P·戈什
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112805700A publication Critical patent/CN112805700A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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
    • G06F21/6281Protecting 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
    • 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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

服务器内核处理系统从用户模式计算环境接收输入/输出(I/O)请求。该I/O请求被分析以确定它是否为文件打开请求。如果是,则目标分析逻辑确定文件打开请求是针对驱动程序文件还是针对存储驱动程序白名单文件的受保护卷中的文件。如果文件打开请求针对被存储在受保护卷中的文件,则该请求被阻止。如果文件打开请求针对驱动程序文件,则驱动程序白名单文件被检查以确定目标驱动程序是否在白名单上。如果不是,则文件打开请求也被阻止。

Description

控制计算机系统上的未授权驱动程序的安装
背景技术
计算机系统当前被广泛使用。一些这样的计算机系统包括数据中心。
数据中心由可以按照多种不同方式而被使用的大批联网计算机服务器组成。企业或其他组织经常使用它们来存储、处理和传播大量信息。
一些数据中心还托管或服务于应用,诸如电子邮件应用、即时消息传递应用、电子商务交易和各种各样的其他应用。类似地,某些数据中心可以为访问数据中心的用户存储和提供网站。
多个不同组织在单个数据中心上使用资源并不罕见。这样的数据中心可以包括提供期望访问的大量不同服务器。
数据中心的数据的数据安全性被广泛认为是重要特征。通过使用各种形式的数据加密和各种形式的认证,可以获取不同程度的安全性。
上面的讨论仅是针对一般背景信息而提供的,而非旨在用于帮助确定所要求保护的主题的范围。
发明内容
服务器内核处理系统从用户模式计算环境接收输入/输出(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分别生成用于由用户104-106进行交互的用户界面122-124。用户104-106与其相应用户界面122-124交互,以控制和操纵对应用户设备108-110、和数据中心计算系统102的某些部分。
类似地,设备116被示出为生成用于由用户114进行交互的界面126。用户114说明性地与界面126交互,以控制和操纵设备116、和数据中心计算系统102的某些部分。用户104-106说明性地访问由数据中心计算系统102提供的资源(诸如数据存储、被托管服务和其他资源)。
网络112可以是各种各样不同类型的网络中的任何一种。例如,它可以是广域网、局域网、近场通信网络、蜂窝网络、或各种各样的其他网络或网络组合中的任何一种。
管理员/工程师114说明性地在数据中心计算系统102上执行管理或工程操作。因此,用户114可以访问数据中心计算系统102的某些部分以执行维护操作,部署代码以修复错误,部署新特征,或者执行其他操作。为了这样做,经常向用户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上部署代码的情况中,在可以将代码部署到数据中心计算系统102之前,可能要求用户114对代码进行签名、认证或验证。
作为示例,用户104可以提供针对数据存储设备142中存储的数据执行某些操作的输入/输出(I/O)请求。工程用户114可以将一段代码部署到旨在在执行I/O请求时执行操作的服务器机器138的内核。在一个示例中,由工程用户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的内核中的服务器内核处理系统,该系统减少了这种情况发生的可能性。为了在数据中心计算系统102上部署或安装一段代码(无论是驱动程序还是另一段数据访问代码),该代码作为文件被提供,并且在部署或安装文件之前必须打开文件。因此,在一个示例中,如下所述,本说明书修改服务器机器138-140的内核使得它们包括拦截所有文件打开调用并且确定文件打开调用是否指向驱动程序文件的系统。如果是,则将驱动程序文件的身份与包含标识授权驱动程序文件的条目的白名单机制(例如,白名单文件)比较。如果目标驱动程序文件(要打开的驱动程序文件)不在白名单上,则文件打开调用被阻止。
本说明书还针对以相同的方式保护白名单的系统继续进行。白名单将被说明性地存储在数据存储设备142-144之一上的受保护卷中。因此,如果用户114试图修改白名单以便包括要安装的恶意驱动程序或其他文件的条目,则I/O操作将以白名单作为要打开的目标文件。因此,本说明书提供来一种系统,该系统确定是否要对受保护卷内的文件执行文件打开操作。如果是,则再次阻止文件打开操作。因此,本系统保护被存储在数据存储系统134中的数据不受恶意驱动程序的破坏(因为将不允许安装恶意驱动程序),并且它还以相同的方式保护白名单(因为白名单将被存储在受保护卷中,在此,除系统本身,不执行任何文件打开操作)。
图2是图1所示的计算系统架构100的一部分的一个示例的更详细的框图。一些项目与图1所示的类似,并且编号类似。在图2所示的示例中,应用或其他用户模式逻辑150驻留在用户模式计算环境152(其可以在用户设备108-110之一或其他位置)中。应用/逻辑150生成通过前端逻辑130被提供给服务器机器138的I/O请求154。在图2所示的示例中,服务器机器138包括服务器内核处理系统156,并且可以包括各种各样的其他服务器功能158。服务器内核处理系统156处理I/O请求154,并且如果被授权,则访问数据存储设备142之一上的数据。如框158所示,数据可以被存储在文件系统中或另一数据卷中。要访问的数据可以包括白名单文件160、驱动程序文件162或各种各样的其他信息164。
在图2所示的示例中,服务器内核处理系统156说明性地包括一个或多个处理器166、数据访问逻辑168、I/O管理器170,并且可以包括各种各样的其他内核功能172。数据访问逻辑168可以包括I/O调用类型标识符逻辑174、调用拦截逻辑176、目标分析逻辑178、调用阻止逻辑180,并且可以包括各种各样的其他数据访问功能182。在所示的示例中,调用拦截逻辑176包括目标文件类型标识符逻辑184、目标卷标识符逻辑186,并且可以包括其他项目188。目标分析逻辑178可以包括驱动程序/白名单比较和保护逻辑190、目标卷分析逻辑192,并且可以包括其他项目194。
在操作中,应用/逻辑150可以生成I/O请求154作为文件打开请求、文件写入请求、读取请求、文件创建请求、文件删除请求、或可以被发布以访问数据存储设备142上的信息的各种各样的其他请求。应当注意,所有这些请求和其他请求都汇总到文件打开请求中,因此本文中讨论的保护适用于所有这些文件I/O操作(或请求)。前端功能130说明性地公开了用于接收请求154的接口,并且将该请求提供给I/O管理器逻辑170。服务器机器138上的数据访问逻辑168可以有各种不同实例。I/O管理器逻辑170将I/O请求154路由到适当的一组数据访问逻辑168以进行处理。当数据访问逻辑168接收到I/O请求154时,I/O调用类型标识符逻辑174标识正在进行的调用(或I/O请求)的类型。例如,如上所述,它可以是文件打开请求、创建请求、读取请求、写入请求等。
在一个示例中,如果I/O请求是请求打开目标文件的文件打开请求,则目标文件类型标识符逻辑184确定目标是哪个文件类型。作为示例,文件可以是驱动程序文件(或类似文件)。目标卷标识符逻辑186还标识目标文件所在的目标卷(或存储位置)。
目标分析逻辑178然后分析要访问的目标以确定是否应当阻止文件打开调用。例如,如果目标文件已经由逻辑184标识为驱动程序文件,则驱动程序/白名单比较和保护逻辑190访问白名单160,该白名单160包含所有授权驱动程序的列表,这些驱动程序被授权安装在数据中心上(或至少在服务器机器138上)。如果在白名单160上将目标文件(例如,要打开的目标驱动程序文件)标识为授权驱动程序文件,则目标分析逻辑178生成指示驱动程序被授权的授权输出,并且目标驱动程序文件162可以被打开。
但是,如果比较和保护逻辑190确定目标驱动程序文件未在白名单160上标识为授权驱动程序文件,则它生成指示这一点的未授权输出,并且I/O操作(或文件打开调用)被调用阻止逻辑180阻止。逻辑180可以向调用用户模式组件返回消息。它可以向安全工程师或其他人提供消息,或者也可以执行其他操作。
以这种方式,如果工程用户114在恶意驱动程序上获取了有效签名,则在尝试安装驱动程序时,对应驱动程序文件必须打开。但是,如果对应驱动程序文件未授权(因为其未在白名单160上标识),则打开目标驱动程序文件的文件打开调用将被阻止并且其将不会被打开。因此,其无法安装。这样可以防止驱动程序文件否则会执行的恶意活动。
然而,工程用户114可能希望访问白名单160以添加标识恶意驱动程序文件的条目,以便绕过由数据访问逻辑168执行的安全性。因此,如果目标文件标识符逻辑184确定文件打开请求的目标文件不是驱动程序文件,则目标卷标识符逻辑186标识存储有目标文件的存储卷(或存储器位置)。在一个示例中,白名单160将被存储在受保护卷中(或在多个受保护存储器位置中)。
目标卷分析逻辑192然后确定要打开的文件的位置是否被存储在受保护卷(或多个受保护存储器位置)内。如果目标文件在该多个受保护位置内(其将包括白名单160),则逻辑192向调用阻止逻辑180提供指示这一点的输出,并且调用阻止逻辑180阻止I/O请求(或文件打开调用)。以这种方式,工程用户114被禁止修改白名单160以包含用户114试图安装的恶意驱动程序的标识符。因此,相同的机制(数据访问逻辑168)可以防止安装恶意驱动程序和访问白名单160两者。
图3是示出架构100的另一示例的框图。一些项目与图1和图2所示的类似,并且编号类似。在图3所示的示例中,数据被存储在各种文件系统中的数据存储设备142-144中。因此,数据存储设备142被示出为存储包含白名单的文件系统/卷。这由框200指示。它也可以存储其他项目202。数据存储设备144被示出为存储包含一个或多个驱动程序文件的文件系统/卷。这由框204指示。设备144也可以存储其他项目206。
在图3所示的示例中,数据访问逻辑168包括文件系统/卷驱动程序堆栈208和用于作为I/O请求154的目标的目标文件系统/卷的存储驱动程序堆栈。针对目标文件系统或卷的存储驱动程序堆栈由框210指示。
可以有多个不同驱动程序堆栈被附接到不同文件系统或卷。因此,当接收到I/O请求154时,I/O管理器逻辑170标识作为I/O请求的主题的特定文件系统或卷,并且将I/O请求转发到附接到该文件系统或卷的驱动程序堆栈。在图3所示的示例中,I/O管理器逻辑170将I/O请求154转发到文件系统/卷驱动程序堆栈208。驱动程序堆栈208可以包括各种各样的不同驱动程序。一些文件系统驱动程序或驱动程序逻辑由框212指示。它也可以包括修改I/O请求或对所接收的I/O请求执行处理的过滤器驱动程序。在某些情况中,某个过滤器驱动程序逻辑在不同过滤器驱动程序之间被共享。在这种情况中,过滤器管理器逻辑214可以支持多个不同微型过滤器驱动程序216-218。逻辑214包括由过滤器管理器逻辑214支持的微型过滤器驱动程序的通用功能。微型过滤器驱动程序216-218本身包括附加逻辑,从而执行不同过滤步骤。过滤器驱动程序的位置(例如,驱动程序堆栈208中其他文件系统驱动程序212中的微型过滤器驱动程序216-218)可以指定,或者可以基于加载驱动程序的顺序来确定。
文件系统/卷驱动程序堆栈208接收I/O请求,并且将其传递给过滤器管理器逻辑214。过滤器管理器逻辑214说明性地接收I/O请求,并且按照由其在堆栈208中的顺序而确定的顺序来提供I/O请求以用于由微型过滤器驱动程序216-218进行操作。一旦附接到过滤器管理器逻辑214的微型过滤器驱动程序216-218已经对I/O请求154执行,则可以将结果提供给其他文件系统驱动程序逻辑212。然后将所得到的I/O请求(在堆栈208中的所有过滤器驱动程序和微型过滤器驱动程序都已经对其操作之后)提供给目标文件所在的特定数据存储设备142-144的存储驱动程序堆栈。例如,如果I/O请求是对数据存储设备142内的文件进行操作,则将I/O请求从驱动程序堆栈208提供给用于存储设备142的存储驱动程序堆栈。这仅是示例。
在图3所示的示例中,提供了微型过滤器驱动程序216以确定I/O请求154是否为针对驱动程序文件的文件打开请求。如果是,则微型过滤器驱动程序216访问数据存储设备142中的白名单以确定目标驱动程序文件是否由白名单认证。如果不是,则微型过滤器驱动程序216阻止文件打开请求(I/O请求154)被执行。但是,如果目标驱动程序文件在白名单上,则微型过滤器驱动程序216提供指示可以执行操作的授权输出。
然后,微型过滤器驱动程序218(如果微型过滤器驱动程序216确定目标文件不是驱动程序文件)确定目标文件(作为I/O请求154的主题)是否驻留在受保护卷中。如果是,则微型过滤器驱动程序218阻止I/O请求被执行。还应当注意,单个微型过滤器驱动程序也可以执行这些操作中的若干操作。例如,单个微型过滤器驱动程序可以检查以查看目标是否为驱动程序文件以及目标是否驻留在受保护卷中。这仅是一个示例。
以这种方式,微型过滤器驱动程序216确保用户无法安装恶意驱动程序。类似地,微型过滤器驱动程序218确保用户无法修改白名单。
图4是示出在确定I/O请求154是否试图打开驱动程序文件时数据访问逻辑168的操作(图3和图4中示出了其两个示例)的一个示例的流程图,在该驱动程序文件中,驱动程序在白名单上未被标识或者I/O请求154试图打开受保护卷中的文件(例如,试图打开和修改白名单)。首先假定服务器内核正在服务器内核处理系统156中运行。这由图4的流程图中的框250指示。还假定内核也具有数据访问逻辑。这由框252指示。在一个示例中,数据访问逻辑可以类似于图2所示的逻辑,其中它可以访问被存储在平面文件系统中的数据,或根据层次目录访问数据,或以其他方式访问数据。在另一示例中,数据访问逻辑168可以类似于图3所示的逻辑,其中驱动程序堆栈用于处理I/O请求154并且响应于不同I/O请求而修改内核的操作。驱动程序堆栈可以包括过滤器驱动程序、微型过滤器驱动程序或各种各样的其他驱动程序。这由框254指示。
数据访问逻辑也可以采用多种其他形式。这由框256指示。图2和图3所示的这些仅出于示例的目的而示出。
然后,数据访问逻辑168从用户模式计算环境152接收I/O请求154。这由图4的流程图中的框258指示。I/O请求154可以来自应用或其他用户模式逻辑150。从用户模式应用接收I/O请求154由框260指示。从其他用户模式逻辑接收I/O请求154由框262指示。
一旦接收到I/O请求154,则数据访问逻辑168确定I/O请求的类型。例如,在图2中,I/O调用类型标识符逻辑174确定I/O请求是否为文件打开请求、文件打开/写入请求等。在图3中,微型过滤器驱动程序216-218或其他文件系统驱动程序可以做出该确定。标识I/O请求154的类型由图4的流程图中的框264指示。
如果该请求不是文件打开请求,则如框266所示,数据访问逻辑168对I/O请求执行任何其他操作并且然后将其传递给数据存储设备,以便其可以被执行。执行I/O请求由图4的流程图中的框268指示。
然而,如果在框266处确定I/O请求154是文件打开请求,则数据访问逻辑168确定目标文件(作为文件打开请求的目标)是否为驱动程序文件。这由图4的流程图中的框270指示。
如果在框270处确定(文件打开请求的)目标文件确实是驱动程序文件,则数据访问逻辑168访问白名单,该白名单包括标识被授权在服务器机器上的驱动程序文件的条目。访问白名单机制由图4的流程图中的框272指示。在一个示例中,目标文件标识符逻辑184标识目标文件(以查看其是否为驱动程序),并且驱动程序/白名单比较逻辑190确定目标驱动程序文件是否在白名单上被标识。在另一示例中,微型过滤器驱动程序216-218标识目标文件的类型,以确定它是否为驱动程序,并且如果是,则访问白名单以确定目标驱动程序文件是否在白名单上被标识。
如果在框274处确定目标驱动程序文件不在白名单上,则数据访问逻辑168阻止文件打开请求,从而无法执行该请求。这由框276指示。以这种方式,如果秘密用户试图安装恶意驱动程序,则该动作将被阻止。
如果在框274处确定作为文件打开请求的主题的目标驱动程序文件实际上被标识为白名单上的授权驱动程序,则数据访问逻辑168将I/O请求154提供给用于执行I/O请求154的任何其他处理逻辑。执行文件打开请求(在确定目标驱动程序文件在白名单上之后)在图4的流程图中的框278中指示。
返回到框270,如果确定目标文件不是驱动程序文件,则数据访问逻辑168确定目标文件是否在数据存储设备142-144上的保护卷(或多个受保护存储器位置)中。例如,恶意用户可能试图修改被存储在受保护卷中的白名单。确定目标文件是否为受保护卷中的驱动程序白名单文件由图4的流程图中的框280指示。如果是,则处理再次进行到框276,在框276处,I/O请求154被阻止,从而使得受保护卷中的文件不能被打开和/或以其他方式被修改。
如果在框280处确定目标文件不是受保护卷中的驱动程序白名单文件,则处理进行到框278,在框278处,数据访问逻辑168对I/O请求154执行任何其他操作,需要这些操作来执行I/O请求154或提交I/O请求154以进行进一步处理。
因此可以看出,本说明书极大地增强了计算系统本身的安全性。它拦截对系统文件的所有文件打开请求,并且确定目标文件是否为驱动程序。如果是,则只有在白名单机制授权驱动程序的情况中,它才允许文件打开请求继续进行。如果不是,则文件打开请求被阻止。类似地,即使文件打开请求未指向驱动程序文件,该系统也会确定目标文件是否在受保护卷(例如,白名单)中。如果是,则会再次阻止I/O请求,从而使得白名单无法修改。通过使用相同的机制来保护系统免受安装恶意驱动程序和修改白名单的影响,该机制不仅有效,而且还提供了显著增强的安全级别。
应当注意,本文中的以上讨论的各部分已经描述了各种不同系统、组件和/或逻辑。应当理解,这样的系统、组件和/或逻辑可以包括执行与这些系统、组件和/或逻辑相关联的功能的硬件项目(诸如处理器和相关联的存储器、或其他处理组件,其中的一些在下面描述)。另外,如下所述,这些系统、组件和/或逻辑可以包括加载到存储器中并且随后由处理器或服务器或其他计算组件执行的软件。这些系统、组件和/或逻辑还可以包括硬件、软件、固件等的不同组合,其一些示例在下面描述。这些仅是可以用于形成上述系统、组件和/或逻辑的不同结构的一些示例。也可以使用其他结构。
本讨论提到了处理器和服务器。在一个实施例中,处理器和服务器包括计算机处理器,该计算机处理器具有未单独示出的相关联的存储器和定时电路系统。它们是它们所属的系统或设备的功能部分,并且由这些系统中的其他组件或项目激活并且促进其功能。
此外,已经讨论了很多用户界面显示。它们可以采用多种不同的形式,并且可以在其上设置有多种不同的用户可致动的输入机构。例如,用户可致动的输入机制可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。它们也可以按照多种不同的方式而被致动。例如,可以使用点击设备(诸如跟踪球或鼠标)来被致动。它们可以使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来被致动。它们也可以使用虚拟键盘或其他虚拟致动器来被致动。另外,在显示它们的屏幕是触敏屏幕的情况中,它们可以使用触摸手势来被致动。另外,在显示它们的设备具有语音识别组件的情况中,它们可以使用语音命令来被致动。
还讨论了很多数据存储库。应当注意,它们可以各自被分成多个数据存储库。全部可以是访问它们的系统的本地的,全部可以是远程的,或者某些可以是本地的,而另一些可以是远程的。本文中考虑了所有这些配置。
此外,这些图示出了具有归因于每个框的功能的多个框。应当注意,可以使用更少的框,因此功能由更少的组件来执行。同样,可以将更多的框与分布在更多组件之间的功能一起使用。
图5是图1所示的架构100的框图,不同之处在于,其元素设置在云计算架构500中。云计算提供了不需要最终用户了解提供服务的系统的物理位置或配置的计算、软件、数据访问和存储服务。在各种示例中,云计算使用适当的协议在诸如互联网等广域网上提供服务。例如,云计算提供商通过广域网提供应用,并且可以通过网络浏览器或任何其他计算组件对其进行访问。架构100的软件或组件以及对应数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以整合在远程数据中心位置处,也可以是分散的。云计算基础设施可以通过共享数据中心提供服务,即使它们对于用户而言只是一个接入点。因此,本文中描述的组件和功能可以使用云计算架构从远程位置处的服务提供商提供。备选地,它们可以从常规服务器提供,也可以直接或以其他方式安装在客户端设备上。
本说明书旨在包括公共云计算和私有云计算。云计算(公共和私有)提供了实质上无缝的资源池,并且减少了管理和配置底层硬件基础设施的需求。
公共云由供应商管理,并且通常使用同一基础设施来支持多个消费者。而且,与私有云相反,公共云可以使最终用户摆脱管理硬件的负担。私有云可以由组织本身管理,并且基础设施通常不与其他组织共享。组织仍然在某种程度上维护硬件,诸如安装和维修等。
在图5所示的示例中,一些项目类似于图1所示的那些,并且编号类似。图4具体示出了数据中心计算系统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内的元件之间传递信息的基本例程)通常被存储在ROM831中。RAM 832通常包含立即可访问和/或当前正在由处理单元820操作的数据和/或程序模块。作为示例而非限制,图6示出了操作系统834、应用程序835、其他程序模块836和程序数据837。
计算机810还可以包括其他可移除/不可移除的易失性/非易失性计算机存储介质。仅作为示例,图6示出了读取或写入不可移除的非易失性磁性介质的硬盘驱动器841、以及读取或写入可移除的非易失性光盘856(诸如CD ROM或其他光学介质)的光盘驱动器855。可以在示例性操作环境中使用的其他可移除/不可移除的易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能磁盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840等不可移除存储器接口连接到系统总线821,并且光盘驱动器855通常通过诸如接口850等可移除存储器接口连接到系统总线821。
备选地或附加地,本文中描述的功能可以至少部分由一个或多个硬件逻辑组件执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件的类型包括现场可编程门阵列(FPGA)、程序特定的集成电路(ASIC)、程序特定的标准产品(ASSP)、系统级芯片系统(SOC)、复杂可编程逻辑器件(CPLD)等。
以上讨论并且在图6中示出的驱动器及其相关联的计算机存储介质提供用于计算机810的计算机可读指令、数据结构、程序模块和其他数据的存储。在图6中,例如,硬盘驱动器841被示出为存储操作系统844、应用程序845、其他程序模块846和程序数据847。注意,这些组件可以与操作系统834、应用程序835、其他程序模块836和程序数据837相同或不同。此处为操作系统844、应用程序845、其他程序模块846和程序数据847赋予不同的数字,以说明它们至少是不同的副本。
用户可以通过诸如键盘862、麦克风863和指点设备861(诸如鼠标、轨迹球或触摸板)等输入设备向计算机810中输入命令和信息。其他输入设备(未示出)可以包括操纵杆、游戏手柄、碟形卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口860连接到处理单元820,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)等其他接口和总线结构连接。视觉显示器891或其他类型的显示设备也经由诸如视频接口890等接口连接到系统总线821。除了显示器,计算机还可以包括诸如扬声器897和打印机896等可以通过输出外围接口895连接的其他外围输出设备。
计算机810使用到诸如远程计算机880等一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机880可以是个人计算机、手持式设备、服务器、路由器、网络计算机、对等设备或其他公共网络节点,并且通常包括上面关于计算机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 (15)

1.一种计算系统,包括:
在服务器内核中的数据访问逻辑,其接收对被存储在数据存储设备上的数据执行操作的请求;
在所述服务器内核中的调用拦截逻辑,其在所述请求被执行之前拦截所述请求,并且如果所述请求是打开目标文件的文件打开请求,则确定所述目标文件是否为驱动程序文件,并且如果所述目标文件不是驱动程序文件,则标识所述目标文件被存储的存储位置;
在所述服务器内核中的目标分析逻辑,如果所述目标文件是驱动程序文件,则其确定所述驱动程序文件是否由白名单文件授权,并且如果所述目标文件不是驱动程序文件,则其确定所述存储位置是否在包括所述白名单文件的受保护位置中;以及
调用阻止逻辑,如果所述目标文件是未由所述白名单文件授权的驱动程序文件,则其阻止所述请求被执行,并且如果所述目标文件不是驱动程序文件但被存储在所述受保护位置中,则其阻止所述请求被执行。
2.根据权利要求1所述的计算系统,还包括:
在所述服务器内核中的调用类型标识符逻辑,其被配置为标识所述请求是否为打开所述目标文件的所述文件打开请求。
3.根据权利要求2所述的计算系统,其中所述调用拦截逻辑包括:
目标文件类型标识符逻辑,其被配置为标识所述目标文件的类型,以确定所述目标文件是否为驱动程序文件。
4.根据权利要求3所述的计算系统,其中所述调用拦截逻辑包括:
目标卷标识符逻辑,其被配置为标识所述目标文件被存储的所述存储位置。
5.根据权利要求4所述的计算系统,其中所述目标分析逻辑包括:
驱动程序/白名单比较和保护逻辑,其被配置为如果所述目标文件类型标识符逻辑标识所述目标文件是驱动程序文件,则访问所述白名单文件并且将标识所述驱动程序文件的驱动程序文件标识符与所述白名单文件中的条目比较,以确定所述驱动程序文件标识符是否由所述白名单文件中的条目标识,并且如果所述驱动程序文件标识符由所述白名单文件中的条目标识,则生成指示所述驱动程序文件由所述白名单文件授权的授权输出。
6.根据权利要求5所述的计算系统,其中所述目标分析逻辑包括:
目标卷分析逻辑,其被配置为如果所述目标文件类型标识符逻辑未将所述目标文件标识为驱动程序文件,则将所述目标文件的存储位置与包括所述受保护卷的一系列存储位置比较,以确定所述目标文件的所述存储位置是否在所述受保护卷中,并且如果所述目标文件的所述存储位置不在所述受保护卷中,则生成指示所述目标文件未被存储在所述受保护卷中的授权输出。
7.根据权利要求6所述的计算系统,其中所述请求是访问文件系统中的文件,所述文件系统具有被加载到所述服务器内核中以用于由所述服务器内核执行的被加载过滤器驱动程序的附接驱动程序堆栈。
8.根据权利要求7所述的计算系统,其中所述调用拦截逻辑包括在所述驱动程序堆栈中的、被附接到所述文件系统的过滤器驱动程序。
9.根据权利要求7所述的计算系统,其中所述调用目标分析逻辑包括在所述驱动程序堆栈中的、被附接到所述文件系统的过滤器驱动程序。
10.根据权利要求7所述的计算系统,其中所述调用阻止逻辑包括在所述驱动程序堆栈中的、被附接到所述文件系统的过滤器驱动程序。
11.一种计算机实现的方法,包括:
在服务器内核中接收对被存储在数据存储设备上的数据执行操作的请求;
在所述请求被执行之前,标识所述请求是否为打开目标文件的文件打开请求;
如果所述请求是打开目标文件的文件打开请求,则确定所述目标文件是否为驱动程序文件;
如果所述目标文件不是驱动程序文件,则标识所述目标文件被存储的存储位置;
如果所述目标文件是驱动程序文件,则确定所述驱动程序文件是否由白名单文件授权;
如果所述目标文件不是驱动程序文件,则确定所述存储位置是否在包括所述白名单文件的受保护位置中;
如果所述目标文件是未由所述白名单文件授权的驱动程序文件,则阻止所述请求被执行;以及
如果所述目标文件不是驱动程序文件但被存储在所述受保护位置中,则阻止所述请求被执行。
12.根据权利要求11所述的计算机实现的方法,还包括:
在所述服务器内核中标识所述请求是否为打开所述目标文件的所述文件打开请求。
13.根据权利要求12所述的计算机实现的方法,其中确定所述驱动程序文件是否由白名单文件授权包括:
如果所述目标文件是驱动程序文件,则访问所述白名单文件;
将标识所述驱动程序文件的驱动程序文件标识符与所述白名单文件中的条目比较,以确定所述驱动程序文件标识符是否由所述白名单文件中的条目标识;以及
如果所述驱动程序文件标识符由所述白名单文件中的条目标识,则生成指示所述驱动程序文件由所述白名单文件授权的授权输出。
14.根据权利要求13所述的计算机实现的方法,其中确定所述存储位置是否在包括所述白名单文件的受保护位置中包括:
如果所述目标文件未被标识为驱动程序文件,则将所述目标文件的存储位置与包括所述受保护卷的一系列存储位置比较,以确定所述目标文件的所述存储位置是否在所述受保护卷中;以及
如果所述目标文件的所述存储位置不在所述受保护卷中,则生成指示所述目标文件未被存储在所述受保护卷中的授权输出。
15.一种计算系统,包括:
在服务器内核中的数据访问逻辑,其接收对被存储在数据存储设备上的数据执行操作的请求;
在所述服务器内核中的调用类型标识符逻辑,其被配置为标识所述请求是否为打开所述目标文件的文件打开请求;
目标文件类型标识符逻辑,其被配置为如果所述请求是文件打开请求,则在所述请求被执行之前拦截所述请求,并且标识所述目标文件的类型,以确定所述目标文件是否为驱动程序文件;
目标卷标识符逻辑,其被配置为标识所述目标文件被存储的存储位置;
在所述服务器内核中的目标分析逻辑,如果所述目标文件是驱动程序文件,则其确定所述驱动程序文件是否由白名单文件授权,并且如果所述目标文件不是驱动程序文件,则其确定所述存储位置是否在包括所述白名单文件的受保护位置中;以及
调用阻止逻辑,如果所述目标文件是未由所述白名单文件授权的驱动程序文件,则其阻止所述请求被执行,并且如果所述目标文件不是驱动程序文件但被存储在所述受保护位置中,则其阻止所述请求被执行。
CN201980065838.XA 2018-10-08 2019-09-24 控制计算机系统上的未授权驱动程序的安装 Pending CN112805700A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/154,144 US11151273B2 (en) 2018-10-08 2018-10-08 Controlling installation of unauthorized drivers on a computer system
US16/154,144 2018-10-08
PCT/US2019/052538 WO2020076492A1 (en) 2018-10-08 2019-09-24 Controlling installation of unauthorized drivers on a computer system

Publications (1)

Publication Number Publication Date
CN112805700A true CN112805700A (zh) 2021-05-14

Family

ID=68165745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980065838.XA Pending CN112805700A (zh) 2018-10-08 2019-09-24 控制计算机系统上的未授权驱动程序的安装

Country Status (5)

Country Link
US (2) US11151273B2 (zh)
EP (1) EP3844649A1 (zh)
KR (1) KR20210068444A (zh)
CN (1) CN112805700A (zh)
WO (1) WO2020076492A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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
JP7391802B2 (ja) * 2020-09-11 2023-12-05 株式会社東芝 情報処理装置、情報処理方法及びコンピュータプログラム
CN115906184B (zh) * 2023-01-09 2023-06-16 闪捷信息科技有限公司 一种控制进程访问文件的方法、装置、介质及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1606011A (zh) * 2003-10-07 2005-04-13 国际商业机器公司 用于处理文件请求的方法和系统
CN1667608A (zh) * 2003-12-15 2005-09-14 国际商业机器公司 在计算机系统内访问至少一个目标文件的方法和系统
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
CN104054086A (zh) * 2012-01-17 2014-09-17 苹果公司 针对一个或多个沙箱化应用程序的文件系统访问
US20150026463A1 (en) * 2004-12-03 2015-01-22 Fortinet, Inc. Secure system for allowing the execution of authorized computer program code
US20180102902A1 (en) * 2016-10-11 2018-04-12 BicDroid Inc. Methods, systems and computer program products for data protection by policing processes accessing encrypted data
US20180217996A1 (en) * 2017-01-27 2018-08-02 Wyse Technology L.L.C. Securing access to functionality of a file-based write filter

Family Cites Families (36)

* Cited by examiner, † Cited by third party
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
US6898712B2 (en) * 2001-02-20 2005-05-24 Networks Associates Technology, Inc. Test driver ordering
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
EP1519775B1 (en) * 2002-07-05 2013-03-20 Mudalla Technology, Inc. Secure game download
US20060150247A1 (en) 2004-12-30 2006-07-06 Andrew Gafken Protection of stored data
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
EP2327035A1 (en) 2008-08-07 2011-06-01 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
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
US9147071B2 (en) * 2010-07-20 2015-09-29 Mcafee, Inc. System and method for proactive detection of malware device drivers via kernel forensic behavioral monitoring and a back-end reputation system
US8726396B1 (en) 2011-01-14 2014-05-13 Symantec Corporation Scanning protected files for violations of a data loss prevention policy
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
US9183390B2 (en) 2011-12-22 2015-11-10 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
EP2909783B1 (en) 2012-10-19 2020-02-12 McAfee, LLC Secure disk access control
US9336395B2 (en) 2013-01-25 2016-05-10 Hewlett-Packard Development Company, L.P. Boot driver verification
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
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
US20180157834A1 (en) 2016-12-02 2018-06-07 Politecnico Di Milano Protection system and method for protecting a computer system against ransomware attacks
CN107038369A (zh) 2017-03-21 2017-08-11 深圳市金立通信设备有限公司 一种资源访问控制的方法及终端
US11080416B2 (en) 2018-10-08 2021-08-03 Microsoft Technology Licensing, Llc Protecting selected disks on a computer system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1606011A (zh) * 2003-10-07 2005-04-13 国际商业机器公司 用于处理文件请求的方法和系统
CN1667608A (zh) * 2003-12-15 2005-09-14 国际商业机器公司 在计算机系统内访问至少一个目标文件的方法和系统
US20150026463A1 (en) * 2004-12-03 2015-01-22 Fortinet, Inc. Secure system for allowing the execution of authorized computer program code
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
CN104054086A (zh) * 2012-01-17 2014-09-17 苹果公司 针对一个或多个沙箱化应用程序的文件系统访问
US20180102902A1 (en) * 2016-10-11 2018-04-12 BicDroid Inc. Methods, systems and computer program products for data protection by policing processes accessing encrypted data
US20180217996A1 (en) * 2017-01-27 2018-08-02 Wyse Technology L.L.C. Securing access to functionality of a file-based write filter

Also Published As

Publication number Publication date
WO2020076492A1 (en) 2020-04-16
US20220067195A1 (en) 2022-03-03
US20200110893A1 (en) 2020-04-09
KR20210068444A (ko) 2021-06-09
EP3844649A1 (en) 2021-07-07
US11151273B2 (en) 2021-10-19

Similar Documents

Publication Publication Date Title
CN112805708B (zh) 保护计算机系统上的选定磁盘
US10614233B2 (en) Managing access to documents with a file monitor
US9418219B2 (en) Inter-process message security
US7930760B2 (en) Centralized enforcement of name-based computer system security rules
US20220067195A1 (en) Controlling installation of unauthorized drivers on a computer system
RU2618946C1 (ru) Способ блокировки доступа к данным на мобильных устройствах с использованием API для пользователей с ограниченными возможностями
US20210250361A1 (en) Authentication and authorization across microservices
CN110546979B (zh) 在服务与应用之间的多级分布式访问控制
KR20220009388A (ko) 통합되고 격리된 애플리케이션에서 랜섬웨어 경감
US11750612B2 (en) Client-server security enhancement using information accessed from access tokens
WO2003100580A1 (en) Trusted user interface for a secure mobile wireless device
RU2645265C2 (ru) Система и способ блокировки элементов интерфейса приложения
US10542005B2 (en) Connection control for virtualized environments
US20230004638A1 (en) Redirection of attachments based on risk and context
JP7445017B2 (ja) ユーザ識別子および署名収集を利用したモバイルアプリケーション偽造・変造探知方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体およびコンピュータ装置
RU2606556C2 (ru) Способ ввода конфиденциальных данных
US20230283633A1 (en) Credential input detection and threat analysis
US20220407877A1 (en) Detecting data leakage
CN117917043A (zh) 凭证输入检测和威胁分析

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