CN109074450B - 威胁防御技术 - Google Patents

威胁防御技术 Download PDF

Info

Publication number
CN109074450B
CN109074450B CN201880000128.4A CN201880000128A CN109074450B CN 109074450 B CN109074450 B CN 109074450B CN 201880000128 A CN201880000128 A CN 201880000128A CN 109074450 B CN109074450 B CN 109074450B
Authority
CN
China
Prior art keywords
guest
threat
operating system
guest operating
manager
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
CN201880000128.4A
Other languages
English (en)
Other versions
CN109074450A (zh
Inventor
詹森·A·朗戈
丹尼斯·拉姆达斯
詹姆斯·J·沃尔
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.)
Weirui LLC
Original Assignee
VMware 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 VMware LLC filed Critical VMware LLC
Publication of CN109074450A publication Critical patent/CN109074450A/zh
Application granted granted Critical
Publication of CN109074450B publication Critical patent/CN109074450B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)

Abstract

在一种方法中,中间访客管理器在由主机托管并由管理程序管理的虚拟机内操作。中间访客管理器管理在虚拟机内操作的一个或多个访客操作系统并且实现针对访客操作系统的一个或多个安全服务。提供给访客操作系统的安全服务可包括系统调用过滤、存储器保护、安全存储器转储等。在某些情况下,中间访客管理器会查询包含许多记录的威胁防御策略,其中每条记录都有一个或多个表示可疑活动的触发以及一个或多个响应于被触发而要采取的动作。当中间访客管理器识别出满足特定记录的触发的诸如系统调用或存储器访问之类的请求时,中间访客管理器执行相关联的动作来修复可疑活动。

Description

威胁防御技术
技术领域
本公开总体涉及用于使用位于访客操作系统和管理程序之间的中间访客管理器来识别和对抗安全威胁的技术。
背景技术
本部分中描述的方法可以被实行,但不一定是先前已经构思或实行的方法。因此,除非本文另外指出,否则本部分中描述的方法不是本申请中的权利要求的现有技术,并且不因包含在本部分中而被承认为是现有技术。
许多企业及其计算机系统利用由诸如云服务提供商(CSP)之类的虚拟数据中心(VDC)提供的虚拟机以及可通过互联网访问的诸如虚拟存储、虚拟计算资源或虚拟数据库资源之类的其他虚拟化资源。这样的云服务可以为客户提供许多好处,如降低的成本、简单的可扩展性以及减少的管理负担。但是,云服务也为这些服务的客户带来了新的挑战,例如增加的安全风险。例如,诸如病毒、特洛伊木马、间谍软件、rootkit等恶意软件对安全造成持续威胁。防范恶意软件的一种方法是在虚拟机上安装防病毒软件代理(或其他“安全代理”),此代理然后试图识别和/或抵制恶性程序和进程。但是,在很多情况下,恶意软件会试图绕过安装的防病毒软件或防止防病毒软件生效。此外,在云环境中,甚至有时CSP(或CSP的管理员)可能错误地将防病毒软件识别为威胁,并终止运行安全代理的进程。安全代理通常非常耗费资源,因此常常被管理员或CSP使用的软件监控代理误认为是故障或恶意进程。此类云服务的客户将从最小化这些缺点而同时要求较低的实施成本和工作量的解决方案中受益。
发明内容
所附权利要求可用于概述本发明。
附图说明
在附图中:
图1示出了可用于实施实施例的示例联网计算机系统布置。
图2示出了根据实施例的威胁防御策略的示例逻辑布局。
图3以框图形式示出了根据实施例的识别和修复威胁的示例处理流程。
图4示出了根据实施例的其中安全代理被集成到中间访客管理器中的联网计算机系统的替代布置。
图5是示出了可以在其上实施本发明的实施例的计算机系统的框图。
具体实施方式
描述了用于扩展对于虚拟数据中心的访客的安全服务的方法。在以下描述中,出于解释的目的而阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其他情况下,以框图形式示出公知的结构和设备,以避免不必要地模糊本发明。
在此根据以下大纲描述实施例:
1.0 总体概述
2.0 示例操作环境
3.0 威胁防御策略
4.0 威胁防御处理处理流程
5.0 威胁防御示例
5.1 系统调用过滤
5.2 存储器保护
5.3 安全存储器转储
6.0 替代安全代理设计
7.0 实施机制-硬件概述
8.0 扩展和替代
1.0总体概述
根据一个实施例,中间访客管理器在由主机托管并由管理程序管理的虚拟机内操作。中间访客管理器管理在虚拟机内操作的一个或多个访客操作系统并且实现对于访客操作系统的一个或多个服务。中间访客管理器可以向虚拟数据中心(VDC)访客提供各种优点中的一个或多个优点,其扩展VDC提供给访客的服务。在此环境下,虚拟数据中心或VDC是指任何一个或多个虚拟化企业计算机系统、私有数据中心中的虚拟机基础设施、私有云中的计算、存储或联网资源、公共云中的资源(如由云服务提供商(CSP)提供)以及混合云计算环境。
在一些实施例中,由中间访客管理器提供的服务可以采用用于优化和/或扩展访客操作系统的功能的形式。例如,访客操作系统(或在访客操作系统上运行的应用)可以向管理程序发出超级调用以利用特定服务。但是,在某些情况下,管理程序可能未配置为提供与访客操作系统可能发出的特定超级调用相关联的服务。或者,管理程序可能期望超级调用的格式不同于访客操作系统发出的格式。在正常情况下,这会导致访客操作系统和访客操作系统运行所依赖的管理程序之间不兼容。中间访客管理器通过驻留在访客操作系统和管理程序之间,可以拦截通信并提供服务本身或者将访客操作系统和管理程序之间的通信转换为各实体所期望的格式。在2016年3月22日公告的专利号为9,292,331B2的JasonA.Lango等人的“针对虚拟数据中心访客的服务的扩展”中描述了使用中间访客管理器来扩展可用于访客操作系统的服务的其他细节,该专利的全部内容为了所有目的而并入本文,如同在此完全陈述一样。
然而,由中间访客管理器提供的服务的扩展不仅限于优化和/或翻译角色。下面讨论的实施例主要集中在使用中间访客管理器来扩展访客操作系统可用的安全服务的技术。
在一些实施例中,中间访客管理器拦截由访客操作系统上运行的应用发出的系统调用,并出于多种安全原因来对这些系统调用进行过滤。例如,可以识别并阻止可能导致表示在访客操作系统上运行的安全代理的进程停止运行系统调用。如此,安全代理被恶意程序或误导的CSP管理员禁用的风险较低。其他示例可能包括试图以比某类程序通常允许运行的优先级更高或更低的优先级来调度该类程序的系统调用、表示写入受保护的只读文件的系统调用以及其他示例。
在一些实施例中,中间访客管理者咨询被称为“威胁防御策略”的表示可疑行为的一组记录。威胁防御政策的每条记录都有表示可疑行为的标准集和在检测到可疑行为时要采取的修复动作。以安全代理案例为例,记录可以指示指定终止与已知安全代理的进程ID匹配的进程的系统调用符合标准,并且作为响应要采取的修复动作是忽略系统调用。其他实施例也可能具有截然不同的修复动作,例如向管理员的电子邮件帐户发送通知、向程序发回误报(false positive)确认以“欺骗”程序以认为系统调用已被执行,等等。修复动作可以由逻辑或代码来表示,当记录的标准被满足以致使修复动作被执行时,该逻辑或代码被运行。
系统调用的拦截可以通过在访客操作系统中建立“陷阱”来执行。在操作系统领域,陷阱(有时也称为异常或故障)是导致环境切换到监控程序的异常情况。在虚拟化的上下文中,陷阱经常被管理程序或以类管理程序能力操作的管理器(如中间访客管理程序)用来在必要时从访客操作系统取得对运行的控制权。虚拟化中出现的一个问题是当多个操作系统共享同一台物理机器但没有明确编程为与其他操作系统共享该硬件环境的情况。因此,管理程序和类管理程序管理器经常需要捕获和效仿否则将由操作系统处理的系统调用(和其他请求)的效果,以确保来宾操作系统不会相互冲突。例如,如果两个操作系统试图利用相同的资源(例如屏幕缓冲),则管理程序或管理器可能需要以确保解决潜在冲突的方式介入并效仿该功能。中间访客管理器也可以使用该相同的陷阱系统来监控系统调用。通过对由访客操作系统的应用进行的系统调用安装陷阱,运行被强制回到中间访客管理器的控制之下。从这一点开始,中间访客管理器于是可以检查系统调用,将系统调用与威胁防御策略的记录进行比较,并确定是否需要实施修复动作(如忽略系统调用)。
在一些实施例中,中间访客管理器保护访客操作系统使用的敏感存储区域。在此上下文中,敏感涉及的是关键操作系统功能(例如系统调用表)所依赖的存储器区域。例如,恶意软件通常会试图覆盖系统调用表的一部分以便相对安全代理而隐藏。实际上,这会导致系统调用通常依赖的安全代理来扫描文件或存储器,反而会运行由恶意软件植入的代码,恶意软件然后提供虚假信息给安全代理。
在正常情况下,如果恶意软件已经渗透到可以访问这种关键数据结构的地步,则操作系统将无法保护自己免受以足够许可运行的代码。但是,由于中间访客管理器在操作系统外部,中间访客管理器能够识别对永远不会被覆盖的存储器区域的写入。例如,当访客操作系统启动时,中间访客管理器可以确定访客操作系统所使用的虚拟存储器的区域。中间访客管理器然后可以读取标识关键结构的元数据。例如,关键结构可以表示在启动时确定的自某初始偏位起的存储器区域。如果中间访客管理器接收到一个命令,例如否则试图写入先前识别的关键数据结构的页表更新,则中间访客管理器将阻止该命令运行。因此,无论访客操作系统中恶意软件获得的权限如何,访客操作系统都可以获得受保护的关键数据结构的技术优势。关键或敏感数据结构的保护可以表现在威胁防御策略的记录中,这些记录由存储器更新/写入已知对应于那些数据结构的存储器区域而触发。
在一些实施例中,中间访客管理器在访客操作系统故障的情况下提供安全存储器转储(memory dump)。存储器转储是在应用或系统崩溃的情况下存储存储器内容的过程。存储器转储帮助软件开发人员和系统管理员诊断、识别和解决导致应用或系统故障的问题。但是,在使用的底层资源是由CSP提供的资源的情况下,访客操作系统可能没有被编程为在虚拟环境中持久地存储存储器转储。因此,中间访客管理器可以检测应用或系统故障,创建存储器转储,加密存储器转储,并将加密的存储器转储发送到安全位置,其中存储器转储稍后可以由软件开发者或系统管理员撷取。加密步骤不是绝对必要的,但在发送可能包含敏感信息的存储器内容时通常是一个合理的预防措施。此外,在发生安全漏洞的情况下,存储器转储也很有帮助,从而可以进行取证分析。在这种情况下,存储器转储充当系统的快照,允许安全操作确定系统如何被破坏,并有可能识别漏洞所涉及的一方或多方,从而可以定位安全漏洞并进行填补。
为了检测应用或系统故障,中间访客管理器可以拦截系统调用、中断或来自访客操作系统的指示发生故障的其他信号/命令。用于确定发生崩溃并且需要收集存储器转储的确切标准集可取决于正在使用的访客操作系统和/或导致错误的应用,并且可能在实施例之间不同。可以定义威胁防御策略,该策略具有一条或多条记录(具有在从访客操作系统检测到错误和/或崩溃时满足的标准),并且作为响应采取的修复动作可以是收集和保护存储器转储。因此,访客操作系统的软件开发人员和/或系统管理员诊断和调试问题将获得访问否则无法获得的存储器转储的技术优势。此外,一些实施例可以响应于通常不会构成“关键”错误而是严重的安全漏洞的情况而强制执行存储器转储。例如,试图写入存储访客操作系统的用户密码的只读文件的进程可能会触发存储器转储以及其他动作,例如通知管理员并停止访客OS在虚拟机上的实例。
在一些实施例中,由中间访客管理器提供的服务对于管理程序和/或访客操作系统是透明的。因此,与本文描述的技术结合使用的管理程序和/或访客操作系统可以“即装即用”地使用,而只需要最少的修改或不需要修改。例如,中间访客管理器可以将陷阱安装到访客操作系统中以获得在诸如系统调用的处理的各种条件下对运行的控制,但可以不要求客操作系统或管理程序的底层逻辑意识到中间访客管理器的存在。
2.0示例操作环境
图1示出了可用于实现实施例的示例联网计算机系统布置。虚拟机100是由主机120托管并由管理程序122管理的虚拟机。访客OS 102、106是虚拟机100内的访客操作系统。访客OS 102、106可利用主机120的硬件资源或其他VDC提供的资源。主机120的资源可以至少部分地在管理程序122的帮助下针对单个访客虚拟机100虚拟化。访客OS 102和106可以不是分开的虚拟机。例如,在访客OS 102和106之间可能没有CPU虚拟化、严格的存储器分段或存储器保护。其他实施例可以仅包括单个访客操作系统或者可以包括多于两个访客操作系统。
访客OS 102和106包括访客应用(访客app)104和108。在一些实施例中,访客应用104、108可以分别代表在访客OS 102、106内运行的安全代理。客户端可以在远离主机120的位置的客户端位置处控制访客OS 102和106上的进程,诸如访客app 104和108。访客app104、108可以发起各种超级调用和/或各种系统调用。这里使用的超级调用包括针对主机120的管理程序122的请求,诸如访问主存储器132、处理器134、存储设备136的请求以及使用各种VDC提供的资源(例如VDC存储资源、VDC数据库资源和VDC计算资源)的请求。这里所使用的系统调用包括访客OS 102和106的应用(诸如访客应用104和108)启动进程、终止进程、执行文件读取和/或写入、访问调度器、访问网络资源等的请求。系统调用是应用/计算机程序从其运行的操作系统的内核请求服务的编程方式。然而,在这种情况下,系统调用可能被中间访客管理器110拦截而不是仅由访客OS执行。
超级调用通常要求访客OS知道虚拟化环境,并且因此被配置为对管理程序122进行超级调用。在图1中,访客OS 102、106被假定为具有直接向管理程序发出超级调用的能力。然而,在其他实施例中,访客OS 102、106可能不是半虚拟化的并且因此不知道虚拟化环境。因此,访客OS可能无法进行超级调用。相反,在这样的环境中,中间访客管理器110通过使用陷阱来拦截由访客应用104、108作出的系统调用,然后通过对管理程序122进行超级调用、效仿系统调用本身或两者的组合来效仿这些系统调用的效果。此外,在一些实施例中,中间访客管理器110可以拦截甚至半虚拟化访客OS的系统调用和超级调用。例如,可能存在管理程序被配置为假定访客OS 102、106不知道管理程序并且不进行超级调用的情况。在这样的实施例中,中间访客管理器110可以拦截由访客OS 102、106进行的超级调用,并且通过执行任务本身来效仿那些超级调用或者将超级调用转换为管理程序122所期望的通信格式。作为另一示例,中间访客管理器110可以被配置为提供优化,这些优化要求系统调用和超级调用被拦截并(可能在被转换和/或聚合之后)在被转发到管理程序122之前被处理。另外,拦截系统调用和/或超级调用允许中间访客管理器110实现否则将不能通过管理程序122用于访客OS的特征,例如本文所述的安全特征。
访客OS 102、106可以至少部分地由中间访客管理器110来管理。中间访客管理器110可以包括用于增强访客OS 102、106的安全性的逻辑。中间访客管理器110可以包括以下中的一个或多个:访客OS启动器112、超级调用代理114、访客服务逻辑116、超级调用管理逻辑118、威胁防御逻辑138和威胁防御策略140。访客OS启动器112启动访客操作系统,诸如访客OS 102、106。超级调用代理144拦截来自访客app 104或访客app 108的被指向管理程序的超级调用。访客服务逻辑116包括用于执行增强访客对VDC资源的使用一个或多个访客服务的指令。超级调用管理逻辑118包括用于管理超级调用的指令,诸如用于确保访客OS102、106利用存储器不干扰中间访客管理器110对存储器的利用的指令。威胁防御逻辑138包括用于针对可以行为分析来自访客OS 102、106和在访客OS102、106上运行的应用的通信并在检测到可疑行为时执行修复动作。威胁防御策略140表述威胁防御记录的数据结构或数据库,其中每条记录包括表示触发的标准集以及响应于触发要执行的一个或多个修复动作。威胁防御逻辑138参考威胁防御策略140来确定请求(诸如系统调用或页表访问)是否是可疑的并需要修复动作。
访客服务逻辑116和抽象意义上的威胁防御逻辑138执行类似的功能。为了以下解释的目的,图1的示例中两个组件之间的主要区别在于:访客服务逻辑116表示用于不涉及安全服务的扩展服务的逻辑,而威胁防御逻辑138表示用于涉及访客OS 102、106的安全的服务的逻辑。然而,其他实施例可以组合这两个组件,或者可以将这些组件分成多个子组件。例如,包含在威胁防御逻辑138内的逻辑可以被划分成与不同类别的威胁有关的逻辑,并且分布在不同的组件中,诸如应对系统调用的处理的组件、应对页表更新的组件(例如存储器管理单元组件)等等。
中间访客管理器110可以在与访客OS 102和/或访客OS 106不同类型的操作系统上操作。在一些实施例中,访客OS 102和106也可以是不同类型的操作系统。
主机120内的管理程序122可以包括超级调用处理器124。超级调用处理器124可以接收来自访客OS 102、106和/或中间访客管理器110的调用。主机120可以通信地耦合到主存储器132、处理器134和/或存储设备136。访客OS 102、106内的访客app 104、108可利用主存储器132、处理器134和/或存储设备136。由超级调用处理器124处理的超级调用可请求对主存储器132、处理器134和/或存储设备136的利用。
图1的管理程序122可呈现用于将各种超级调用传送到管理程序的软件接口,其可由虚拟机100内的进程使用。例如,管理程序122可为XEN管理程序,并且访客OS 102、106和/或中间访客管理器110可通过发送超级调用来向管理程序122发出超级调用。XEN目前由Xen.org团体开发。
管理程序122可以不被通知虚拟机100内的分开的访客操作系统,并且可以不细分虚拟机100资源以为中间访客管理器110或/和(一个或多个)其他访客操作系统创建分开的分区。管理程序122可以通过操纵中间访客管理器110将从多个访客操作系统和/或中间访客管理器110接收到的呼叫解释为来自单个访客。
3.0威胁防御策略
图2示出根据实施例的威胁防御策略的示例逻辑布局。在图2中,威胁防御策略140包括多条威胁防御记录200,每条记录包括一个或多个触发201以及响应于被触发而要采取的一个或多个动作202。
在一个实施例中,威胁防御策略140表示由中间访客管理器110的威胁防御逻辑138使用的数据结构或数据库,以确定来自访客OS 102、106或在其上运行的应用的请求是否可疑。虽然在图1中威胁防御策略140被描绘为存储在中间访客管理器110内并且因此是虚拟机100的一部分,威胁防御策略140可以在其他实施例中存储在中间访客管理器和/或虚拟机100之外的单独控制平面中。用于存储威胁防御策略140的数据结构不是关键的,并且可以采取简单数据结构(例如链表)的形式,或者甚至可以采用数据库的形式,例如平坦文件数据库、关系数据库、对象关系数据库等等。存储威胁防御策略140的确切方式和格式对于本文所讨论的技术不是关键的,并且可以因实施例而异。
在一些实施例中,威胁防御策略140可以特定于给定访客OS、预期将在访客OS上运行的应用和/或在虚拟机上正起转的访客OS所代表的客户端。威胁防御策略140可以在访客OS在虚拟机100中启动时逐个访客OS或逐个客户端地加载。例如,主机120或远程机器可以包含威胁防御策略的数据库,这些威胁防御策略对于各访客OS或访客OS启动所代表的客户端是唯一的。威胁防御逻辑138在启动后,从相关策略中提取记录并使用这些记录来评估源自访客OS的请求。
上面讨论的许多安全问题特定于中间访客管理器110监控的访客操作系统的类型。例如,敏感数据结构的位置(例如系统调用表的位置)对于每个操作系统而言可以不同。因此,当访客OS由访客OS启动器启动时,从被指派给访客OS的存储器区域到系统调用表所驻留的位置的偏移依赖于该访客OS是否是Linux、Window、Unix等而不同。因此,威胁防御策略140或至少涉及特定类型的请求的记录可能需要被裁剪为适应访客OS 102、106正利用的操作系统的类型。例如,可能对于每种操作系统存在不同的威胁防御策略,并且触发201可以包括将威胁防御记录200的特定记录限制为仅适应于来自特定类型的访客OS的请求。另外,在虚拟机100中正被初始化的每个访客OS可以被分配有与特定客户端相关联的辨识号,这可被用作针对威胁防御策略140的记录的触发201的标准之一。
另外,存在特定于在由中间访客管理器110监控的访客操作系统上运行的各类型的应用的一些安全问题。例如,中间访客管理器110可以实现系统调用过滤,该系统调用过滤防止代表安全代理的进程被终止。但是,当接收到终止进程的系统调用时,该进程由进程ID标识。进程ID是在进程启动时分配的,因此可能在运行之间不是静态的。因此,记录可能无法简单地指定将终止具有特定静态ID的进程的系统调用被阻止。相反,威胁防御逻辑138可以识别何时安全代理最初被运行,并且然后通过在那时为威胁防御策略140生成新记录来跟踪分配给实行安全代理的进程的进程ID。只要安全代理正在运行,此新记录就会持续存在,并且可能会在进程分叉的情况中被进行修改以跟踪子进程。
进程最初由系统调用启动,因此威胁防御记录200可以包括基于启动进程并且被知道对应于安全代理的系统调用的参数所触发的初始记录。在这种情况下,触发201可以包括安全代理的可执行文件的已知路径。对于给定的安全代理,这条路径可能是已知的,但是不同安全代理之间的路径可能不同。因此,威胁防御策略140可能需要针对客户端可能期望在访客OS 102、106上运行的(一个或多个)特定安全代理进行定制,以确保那些特定安全代理被保护。相同的概念也适用于收集安全存储器转储,其中实现安全存储器转储特征的威胁防御记录200可以被设置为仅从客户端为了调试目的而期望监控的特定应用所遇到的错误进行触发。
响应于记录被触发而采取的动作可以根据针对特定客户端设置的威胁防御策略140以及所检测到的威胁的严重性而大幅变化。例如,一些可能被认为本质上较小的威胁或有迹象显示问题需要管理员手动干预的威胁可以通过向管理员发送通知(例如通过电子邮件、文本消息或其他通信方式)来处理,而无需采取任何另外动作。其他更严重的威胁可以通过完全停止访客操作系统、执行重新启动、启动至上次保存的访客OS的镜像等来进行修复。其他可能的修复步骤可能是简单地忽略该请求(例如放弃系统调用而不仿效其功能)。随后可能会向发出请求的进程返回否定确认。然而,在其他实施例中,动作202可以被配置为利用肯定确认进行响应,实质上欺骗恶意程序使其相信该任务已经被执行。例如,恶意程序可能继续不断地重新发布相同的系统调用,直到肯定确认被返回,这可能会由于许多最终被忽略的请求而使中间访客管理器110不胜负荷。通过肯定确认响应,恶意进程可能会停止继续发出相同的系统调用,但是不会成功执行系统调用。在一些实施例中,触发201可以包括计数器和动作202,如果同一进程试图触发忽略动作的相同请求多达阈值次数,则肯定确认被返回。
4.0示例威胁防御处理流程
图3图示了根据一个实施例的以框图形式的示例威胁防御处理流程。虽然图3中使用特定数目的逻辑框进行说明,但其它实施例可将逻辑框合并成较小的一组框或通过细分框代表的任务来将所图示的框进行分割。此外,其他实施例可以使用图3中描绘的过程作为较大过程的一部分,并且因此可以包括图3中未明确示出的附加框。下面对图3的描述假定由框表示的步骤由中间访客管理器110的威胁防御逻辑138执行。此外,下面的描述假定请求是从访客OS 102接收的。然而,图3的处理流程还适用于从访客OS 106和可能在虚拟机100内运行的任何其他访客OS接收到的请求。
在框300处,威胁防御逻辑138从访客OS 102接收对操作的请求。如本文所使用的术语“请求”是涵盖对操作的请求(其包括但不限于系统调用、超级调用、页表更新请求、文件访问请求、调度请求等等)的总括术语。此外,在请求被描述为从“访客OS 102、106”接收到的情况下,这还包括请求由在访客OS 102、106的环境中运行的应用(诸如访客应用104、108)发出并且被中间访客管理器110拦截的情况。如上所述,拦截可以通过在访客OS 102中配置陷阱来实现,所述陷阱引起响应于各种条件(例如发出系统调用或页表更新)而运行以将环境切换到中间访客管理器110。
在从访客OS 102接收到请求之后,威胁防御逻辑138根据请求是否满足威胁防御策略140的记录中的一个或多个触发201来执行分支。框301-302表示请求满足记录的一个或多个触发201并且因此请求是可疑的情况。框303-304表示请求不满足任何记录的一个或多个触发201并因此不是可疑的情况。尽管参照单条记录描述了框301-302,但是可能存在请求触发威胁防御策略140内定义的多于一条记录的情况。在这种情况下,可以为每个所触发的记录重复框301-302的步骤。替代地,在一些实施例中,在框303中为遇到的所触发的第一条记录执行修复动作202之后,此触发的第一条记录可能结束图3所示的算法。
在框301处,中间访客管理器110确定请求满足威胁防御策略140的记录的一个或多个触发201。在一个实施例中,中间访客管理器110遍历威胁防御策略140的威胁防御记录200并针对每条记录的一个或多个触发201检查请求。如果请求满足关于该记录的至少一个触发的标准,则在框301处做出确定。每个触发可以包括多个部分,例如要求关于标准的特定的逻辑结合/分离。在一些实施例中,不是遍历威胁防御策略140的所有威胁防御记录200,而是记录可以按类型被进行分类或分组。例如,某些记录可能只适用于某些类型的请求,例如仅适用于页表更新的记录,仅适用于访问文件的系统调用的记录,仅适用于终止进程的系统调用的记录,等等。因此,作为优化,中间访客管理器110可以跳过对未被分组到与在框300处接收到的请求的类型相关的类别的记录的考虑。
在框302处,响应于确定请求满足威胁防御策略140的某记录的一个或多个触发201,中间访客管理器110执行与该记录相关联的修复动作202。根据与记录相关联的动作202,修复可以包括忽略请求、发送通知、停止访客OS 102运行、将访客OS 102还原到备份镜像、发送否定或肯定确认、生成存储器转储,等等。在一些较不严重的情况下,例如当与记录相关联的唯一修复行动是通知但不采取实质动作时,这些行动还可以包括进行到框304并效仿所请求的操作。
在框303处,中间访客管理器110确定请求不满足威胁防御策略140的威胁防御记录200中的任何一个的一个或多个触发201。在一个实施例中,框303表示中间客人管理器110已经遍历威胁防御记录200并且没有找到由在框300处接收到的请求所触发的记录。如上所述,可以通过跳过对不适用于在框300处接收到的请求的类型的记录的考虑来优化遍历。
在框304处,中间访客管理器110效仿访客OS 102所请求的操作。在实施例中,中间访客管理器110通过执行操作本身(例如,如果操作是页表更新,则亲自更新页表)、通过超级调用管理逻辑118向管理程序122发出超级调用或其组合来效仿该操作。
5.0威胁防御示例
以下是可以使用这里讨论的技术来实现的安全特征的一些示例。并不要求任何特定实施例实施所提供的示例特征的全部或任何特征。
5.1系统调用过滤
在一些实施例中,威胁防御逻辑138实施系统调用过滤。系统调用过滤是检查在访客OS 102、106上运行的应用(例如访客应用104、108)发出的系统调用并且如果发现系统调用是可疑的则采取修复动作的特征。例如,响应于可疑系统调用采取的修复动作可以是忽略系统调用。然而,其他实施例可以在向管理员发送通知的同时返回误报确认或甚至继续效仿系统调用。为了确定进程是否可疑,可以检查系统调用的参数,其可以包括与系统调用的操作有关的标识符(如分别由访客OS 102、106的系统调用表定义)、系统调用所使用的文件或可执行文件的路径(例如,用于启动进程的可执行文件、用于打开以供读取/写入的文件等的路径)、网络信息(例如假定系统调用访问网络资源情况下的IP/端口地址)等等。对于威胁防御策略140中涉及系统调用过滤的记录,当系统调用的参数满足特定的一组标准时(例如系统调用具有指示进程终止操作的参数以及指定与安全代理相关联的进程ID的另一参数),一个或多个触发201可被满足。
此外,在一些情况下,可以通过系统调用的组合(而非在封闭状态中接收到的单个系统调用)来找到可疑活动。例如,威胁防御策略140可以具有带有一个或多个触发201的记录,触发201表示指示可疑行为的系统调用序列(潜在地,序列中的每个系统调用都服从满足触发的一个或多个标准,如具有特定类型的参数)。在这样的实施例中,威胁防御逻辑138可以维护从每个访客操作系统接收的系统调用的日志,并且对于给定记录,可以将最近N个系统调用与将触发该记录的序列进行比较。另外,其他实施例可以允许“无序”匹配,其中日志可以比较最近接收到的N个系统调用中的K个系统调用,以检查那些K个系统调用是否触发记录。因此,系统调用被接收的严格排序不是必需的,并且序列可能被不可疑的中间系统调用“分裂”。
在系统调用过滤中,可以实施一些示例类型的系统调用过滤。但是,系统调用过滤不限于以下描述的示例。首先,可以实施系统调用过滤以保护敏感进程,例如表示不应该被终止的安全代理的进程。其次,系统调用过滤可用于限制对受保护文件的访问。最后,系统调用过滤可以用来防止滥用访客OS 102、106的调度程序。
关于保护敏感进程,可以基于系统调用的参数来设置与威胁防御策略140的记录相关联的一个或多个触发201,所述参数诸如指示系统调用是终止进程的参数以及指定已知安全代理的进程ID的另一参数。例如,该记录可以具有已知安全代理的进程ID的列表,并且如果接收到终止具有任何列出的进程ID的进程的系统调用,则该记录被触发。但是,进程ID是在进程启动时分配的,因此不是运行过程中的静态标识符。因此,可以响应于在访客OS102、106上运行的安全代理而生成标识安全代理的进程ID的记录。例如,威胁防御策略140可以具有一个或多个初始记录,这些初始记录存储用于已知安全代理的可执行文件的路径,并且在用于启动包含该路径作为参数之一的进程的系统调用被接收到时,这些初始记录被触发。在效仿系统调用的过程中,中间访客管理器110知道分配给安全代理的进程ID。于是该进程ID可用于生成记录,该记录在接收到视图终止具有该进程ID的进程的系统调用时将被触发。因此,即使分配给安全代理的进程ID是动态的,中间访客管理器110仍然可以跟踪安全代理的进程ID并且知道何时接收到视图禁用安全代理的系统调用。此外,在运行安全代理的进程分叉的情况下,可以修改记录以包含子进程的ID,以确保子进程同样受到保护。
关于限制对受保护文件的访问,与威胁防御策略140中用于保护文件的记录相关联的一个或多个触发201可基于指示文件打开(例如,用于读取或写入访问,这取决于限制)的参数以及指示受保护文件的路径的另一参数来设置。在一些实施例中,威胁防御策略140可以最初由管理员写入以包括将需要保护的文件的路径。例如,记录的一个或多个触发201可以包括打开用于写入访问的任何位于受保护路径列表上的文件。然而,其他实施例可以基于打开的文件(例如威胁防御策略140定义为受保护的具有特定前缀或后缀的名称的文件)的特征来设置一个或多个触发201。尽管访客OS 102、106的文件系统可以对文件建立它们自己的保护,但在恶意代理渗透的情况下,操作系统不能保护它们自己以免受具有足够权限的行动者。然而,因为中间访客管理器110存在于访客OS 102、106之外,所以可以施加这些限制,而不管用户在访客OS 102、106内获得的权限如何。
关于保护操作系统的调度程序,与威胁防御策略140的记录相关联的一个或多个触发201可以基于指示改变进程在调度程序内的优先级的系统调用的参数以及指示不应被设置为所指定的优先级的进程ID的参数来设置。例如,如果恶意程序不能终止安全代理,那么恶意程序可能会转而试图让安全代理以足够低级优先级来运行以至于其扫描将会减慢到缓慢进行。因此,威胁防御策略140可以具有指定安全代理的进程ID并且指定安全代理在访客OS 102、106的调度程序内的最小优先级的记录。
如果接收到试图将属于安全代理的进程移动到最小优先级以下的系统调用,则相关联的动作202被触发。如上所述,系统调用通常通过在运行期间不是静态的进程ID来识别进程。因此,如以上参考保护安全代理免于终止所讨论的,可以响应于正运行的被分配了进程ID的安全代理(或其他敏感程序)来生成记录。
5.2存储器保护
在一些实施例中,威胁防御逻辑138实施对访客OS102、106的敏感数据结构的存储器保护。例如,敏感数据结构可以分别包括访客OS 102、106各自的系统调用表,其通常是根工具(rootkit)和其他恶意软件希望针对安全代理而隐藏的目标。但是,此特征适用于不应覆盖的任何存储器区域或数据结构。虽然访客OS 102、106可能具有其自己的存储器保护,但大多数(如果不是全部的话)操作系统不能保护自己以免遭具有足够权限的用户。因此,如果恶意程序获得内核级访问,操作系统具有的用于保护这种敏感数据结构的保护措施可能不足。然而,由于中间访客管理器110存在于访客OS 102、106之外,所以即使访客OS 102、106严重受损,其也可以实施存储器保护。
为了保护数据结构或存储器的敏感区域,威胁防御逻辑138可以对页表更新施加限制。页表是虚拟存储器系统在计算机操作系统中使用的数据结构,其在虚拟地址和物理地址之间进行映射。虚拟地址是通常由进程看到的地址,而物理地址由硬件(例如RAM子系统)使用。在使用虚拟存储器的操作系统中,每个进程都给人一种印象,即它正在处理大量连续的存储器段。但是,物理上正在访问的存储器可能分散在物理存储器的不同区域或跨不同类型的存储设备。通常,操作系统的任务是将进程提供的虚拟地址映射到存储数据的实际存储器的物理地址。此映射即是页表所表示的。然而,在这种特定情况下,中间访客管理器110通过使用陷阱纳入了访客OS 102、106的责任并自己管理页面。
当更新页表(诸如写入要转换为对应物理地址的更新的虚拟存储器地址)的请求进入时,中间访客管理器110有机会在执行更新之前检查该操作。因此,威胁防御策略140可以包括当接收到将映射到已知保存敏感数据结构的物理地址的页表更新时所触发的记录。例如,记录可以包括已知对应于访客OS 102、106所依赖的敏感数据结构的物理位置的一个或多个虚拟存储器地址范围。因此,如果页表更新试图使在这些范围内的任何存储器块可写,则页表更新可以被忽略或者可以采取另一种修复动作。
一个复杂情况是由访客OS(例如访客OS 102、106)使用的存储器区域是在访客OS被访客OS启动器112启动时确定的。在该点之前,分配给特定访客OS的存储器区域可能未知。因此,威胁防御策略140可能无法指定受保护的存储器地址的静态范围。而是,当访客OS启动器112启动访客OS时,分配给该访客OS的存储器区域被传送到威胁防御逻辑138。然后,威胁防御逻辑138查询威胁防御策略140内的元数据,该元数据基于由访客OS启动器112分配给访客OS的存储器区域确定了敏感数据结构应被定位的位置。例如,元数据可以指定数据结构处于离访客OS启动器112分配给访客OS的初始开始存储器地址有一定静态偏移的区域。响应于确定对应于敏感数据结构的存储器范围,威胁防御逻辑138然后生成记录,该记录当接收到用于更新那些范围内的任何数据块的请求时被触发。
5.3安全存储器转储
在一些实施例中,威胁防御逻辑138实现用于访客OS 102、106的安全存储器转储特征,其允许管理员收集用于诊断和调试在虚拟机100内执行的访客操作系统和应用的问题的信息。通常,管理程序122未被配置为在发生错误的情况下收集存储器转储。即使访客操作系统102、106被配置为收集存储器转储,也不能保证那些存储器转储将在其虚拟机100内的实例关闭后保持。
为了确保收集存储器转储,中间访客管理器110可具有威胁防御策略140,威胁防御策略140在检测到源自访客OS 102、106(或其上运行的应用)的错误时触发并导致修复动作,修复动作包括将包含可由故障操作系统访问的存储器的工作状态的存储器转储存储在稍后可以撷取到存储器转储的位置。例如,这可以是主机120的永久性存储器位置,或者可以涉及通过网络到远程机器的传输。此外,存储器转储可能包含敏感信息,例如在进行存储器转储时仍在访客操作系统的工作存储器中找到的密码。因此,一些实施例可以作为预防措施在存储或传送存储器转储之前加密存储器转储(例如,使用诸如RSA、三重DES、Blowfish、AES等的加密协议)。
在一些实施例中,威胁防御策略140包括具有基于检测到访客OS 102、106(或其上运行的应用)抛出的错误的一个或多个触发201并且具有收集/存储/传输存储器转储(使用可选加密)的动作202的记录。在一些实施例中,记录可以具有被设置为寻找特定类型的错误或源自特定进程的错误的触发201。此外,存储器转储可能由通常不被视为严重错误的情况触发。例如,上述系统调用过滤特征技术可以检测到写入包含用户用于访客OS的密码的文件的意图。响应于检测到这样的系统调用而采取的动作202可以是停止访客OS,通知管理员并且进行存储器转储以供以后分析。因此,在访客操作系统被怀疑受到恶意软件危害的情况下,存储器转储也可以作为取证分析的手段。
6.0替代安全代理设计
图4示出根据实施例的其中安全代理被集成到中间访客管理器中的联网计算机系统的替代布置。图4基本上与图1所示的示例性实施例的布置相同,除了安全代理400被集成到中间访客管理器110中,而不是潜在地作为在访客操作系统(OS)102、106内分别运行的访客应用104、108之一之外。因此,上面在部分1.0“示例性操作环境”中提供的对图1中的组件的解释也适用于图4中的相应部件。
图1中的布置假定安全代理(如果安装的话)安装在访客OS 102、06上。这具有允许“即装即用”的安全代理按原样运行而不需要重要(或任何)修改以便受到中间访客管理器110的保护。然而,作为访客OS 102、106的一部分运行也使得安全代理易受攻击,这是上面讨论的系统调用过滤特征解决的问题之一。然而,如果安全代理被设计为中间访客管理器110的集成部分,如同安全代理400的情况那样,则安全代理400在对访客OS 102、06上运行的任何恶意进程或程序的控制之外。由于访客OS 102、106充当沙盒,那些恶意进程或程序可能不能看到超出他们自己的虚拟化操作环境,因此可能不知道安全代理400的存在。因此,安全性代理400基本上免受来自访客OS 102、06的恶意用户的篡改。
然而,作为折衷,安全代理400必须知道中间访客管理器110的环境并且被配置为直接与中间访客管理器110的各种组件进行通信以收集信息并检查访客OS的行为。例如,中间访客管理器110可具有允许访问针对访客OS 102、06的文件、存储器、系统调用日志等的组件,安全代理400可能需要通过一个或多个进程间通信机制(诸如中间访客管理器110提供的API)来访问这些。此外,由于安全代理400不再是访客OS 02、106的一部分,所以安全代理400可能不能进行系统调用来执行任务,但可能能够利用中间访客管理器110来效仿安全代理400另外需要执行的系统调用的效果。在图1的环境中,在中间访客管理器110的影响是透明的情况下,安全代理(作为访客应用104、108运行)通过使用陷阱和其他工具与中间访客管理器110间接通信。因此,安全代理几乎不需要修改来扫描病毒、恶意软件、rootkit等,并提供自己的保护功能。相比之下,在图4中,安全代理400可以与中间访客管理器110的存储器管理单元模块、文件系统模块或其他组件通信,其跟踪针对访客OS 102、106的存储器以执行扫描。
在诸如图4的实施例中,威胁防御逻辑138可以与安全代理400分担责任,各自向访客OS 102、106提供单独的保护。然而,在其他实施例中,威胁防御逻辑138的角色可以被安全代理400包含。因此,在这样的实施例中,威胁防御逻辑138可以与安全代理400合并或替换为安全代理400。
7.0实施机制-硬件概述
图5是示出可以在其上实现本发明的实施例的计算机系统500的框图。计算机系统500包括用于传送信息的总线502或其他通信机构以及与总线502耦合用于处理信息的处理器504。计算机系统500还包括耦合到总线502的诸如随机存取存储器(RAM)或其他动态存储设备的主存储器506,用于存储要由处理器504执行的信息和指令。主存储器506还可以用于存储处理器504运行指令期间的临时变量或其他中间信息。计算机系统500还包括耦合到总线502的只读存储器(ROM)508或其他静态存储设备,用于存储用于处理器504的静态信息和指令。存储设备510(例如磁盘或光盘)被提供并耦合到总线502以存储信息和指令。
计算机系统500可以经由总线502耦合到显示器512,显示器512诸如阴极射线管(CRT),用于向计算机用户显示信息。包括字母数字键和其他键的输入设备514耦合到总线502,用于向处理器504传送信息和命令选择。另一类型的用户输入设备是光标控件516,例如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送给处理器504和用于控制光标在显示器512上的移动。该输入设备通常在两个轴(第一轴(例如x)和第二轴(例如y))上具有两个自由度,允许设备指定平面中的位置。
本发明涉及使用计算机系统500实现在此描述的技术。根据本发明的一个实施例,响应于处理器504运行包含在主存储器506中的一个或多个指令的一个或多个序列,由计算机系统500执行那些技术。这样的指令可以从另一机器可读介质(诸如存储设备510)读入主存储器506。包含在主存储器506中的指令序列的运行导致处理器504执行本文描述的处理步骤。在替代实施例中,可以使用硬连线电路来代替软件指令或与软件指令组合以实现本发明。因此,本发明的实施例不限于硬件电路和软件的任何特定组合。
这里使用的术语“机器可读介质”是指参与提供使机器以特定方式操作的数据的任何介质。在使用计算机系统500实施的实施例中,涉及例如向处理器504提供指令以供执行的各种机器可读介质。这样的介质可以采取多种形式,包括但不限于存储介质和传输介质。存储介质包括非易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘,例如存储设备510。易失性介质包括动态存储器,例如主存储器506。传输介质包括同轴电缆、铜线和光纤,包括包含总线502的线缆。传输介质也可以采用声波或光波的形式,例如在无线电波和红外数据通信期间产生的声波或光波。所有这些介质必须是有形的,以便介质所携带的指令能够通过将指令读入机器的物理机构来检测。
机器可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带或任何其他磁介质、CD-ROM、任何其他光学介质、打孔卡、纸带、具有孔图案的任何其他物理介质、RAM、PROM和EPROM、FLASH-EPROM、任何其他存储器芯片或盒式存储器、下文所述的载波、或计算机可读的任何其他介质。
各种形式的机器可读介质可以涉及将一个或多个指令的一个或多个序列携带到处理器504以供执行。例如,指令可以最初被携带在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统500本地的调制解调器可以在电话线上接收数据并使用红外发射器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路可以将数据放置在总线502上。总线502将数据携带到主存储器506,处理器504从主存储器506取回并运行指令。由主存储器506接收的指令可以可选地在处理器504运行之前或之后存储在存储设备510上。
计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到连接到本地网络522的网络链路520的双向数据通信。例如,通信接口518可以是综合业务数字网(ISDN)卡或调制解调器,以提供到相应类型的电话线的数据通信连接。作为另一个示例,通信接口518可以是局域网(LAN)卡,以向兼容的LAN提供数据通信连接。无线链路也可以实施。在任何这样的实现方式中,通信接口518发送和接收承载表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
网络链路520通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路520可以通过本地网络522提供到主机计算机524或由互联网服务提供商(ISP)526运营的数据设备的连接。ISP 526又通过全球分组数据通信网络(现在通常称为“因特网”)528提供数据通信服务。本地网络522和因特网528都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路520上的以及通过通信接口518的信号(该信号携带着去往或远离计算机系统500的数字数据)是传输信息的载波的示例性形式。
计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口518来发送消息和接收包括程序代码的数据。在因特网示例中,服务器530可以通过因特网528、ISP526、本地网络522和通信接口518来发送应用程序所请求的代码。
所接收的代码可以在处理器504接收时被运行,和/或被存储在存储设备510或其他非易失性存储设备中以供稍后执行。以这种方式,计算机系统500可以以载波的形式获得应用代码。
8.0扩展和替代
在前面的说明书中,已经参照可以随实现方式而变化的许多具体细节描述了本发明的实施例。因此,本发明以及申请人意图的本发明的唯一独有的指示是本申请给出的一组权利要求,这组权利要求具有给出这些权利要求的特定形式,包括任何后续的修正。本文中为这些权利要求中包含的术语明确阐述的任何定义将决定权利要求中使用的这些术语的含义。因此,权利要求中未明确记载的限制、要素、特性、特征、优点或属性不应以任何方式限制权利要求的范围。相应地,说明书和附图被认为是说明性的而不是限制性的。

Claims (20)

1.一种方法,包括:
在经由计算机上的虚拟机运行的中间管理器处接收来自位于与所述中间管理器相同的虚拟机处的访客操作系统的特定请求,其中所述中间管理器通过拦截由所述访客操作系统做出的一个或多个请求并然后通过调用与所述中间管理器分开的管理程序来实现所述一个或多个请求而充当所述访客操作系统和所述管理程序之间的中介;
响应于接收到所述特定请求,确定所述特定请求是否满足包含在所述中间管理器中的威胁防御策略内定义的多个威胁响应触发的特定威胁响应触发,其中在所述威胁防御策略内定义的所述多个威胁响应触发中的每个威胁响应触发具有相应修复动作;
响应于所述中间管理器确定所述特定请求满足所述特定威胁响应触发,所述中间管理器执行所述特定威胁响应触发的相应修复动作;
响应于所述中间管理器确定所述特定请求不满足所述多个威胁响应触发中的任何威胁相应触发,所述中间管理器调用所述管理程序以实现所述特定请求。
2.根据权利要求1所述的方法,其中所述特定请求表示用于终止在所述访客操作系统上运行的特定进程的系统调用。
3.根据权利要求2所述的方法,其中当所述中间管理器接收到用于终止在所述访客操作系统上运行的具有对应于安全代理的进程ID的进程的系统调用时,所述特定威胁响应触发被满足。
4.根据权利要求3所述的方法,其中所述特定威胁响应触发通过响应于所述中间管理器接收到导致所述安全代理被运行的系统调用而存储分配给所述安全代理的进程ID来被初始定义在所述威胁防御策略内;其中导致所述安全代理被运行的系统调用由所述威胁防御策略定义的一个或多个参数来标识。
5.根据权利要求1所述的方法,其中所述特定请求表示页表更新。
6.根据权利要求5所述的方法,其中当所述页表更新试图更新由所述威胁防御策略定义的一个或多个受保护存储器区域的受保护存储器区域时,所述特定威胁响应触发器被满足。
7.根据权利要求6所述的方法,其中所述一个或多个受保护存储器区域由所述中间管理器在所述访客操作系统启动时通过确定所述访客操作系统所依赖的一个或多个敏感数据结构的一个或多个位置来初始定义。
8.根据权利要求1所述的方法,其中所述中间管理器包括针对恶意软件扫描所述访客操作系统的安全代理。
9.根据权利要求1所述的方法,其中所述请求表示由所述访客操作系统抛出的错误,并且所述特定威胁响应触发的相应修复动作是生成安全存储器转储并将所述安全存储器转储转移到所述虚拟机外部的位置。
10.根据权利要求1所述的方法,其中所述特定请求表示对文件系统内的文件的写请求,并且当所述访客操作系统试图对所述文件系统内的一组受保护文件执行写操作时,所述威胁响应触发被满足。
11.一种存储一个或多个指令的非暂态计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行步骤,这些步骤包括:
在经由计算机上的虚拟机运行的中间管理器处接收来自位于与所述中间管理器相同的虚拟机处的访客操作系统的特定请求,其中所述中间管理器通过拦截由所述访客操作系统做出的一个或多个请求并然后通过调用与所述中间管理器分开的管理程序来实现所述一个或多个请求而充当所述访客操作系统和所述管理程序之间的中介;
响应于接收到所述特定请求,确定所述特定请求是否满足包含在所述中间管理器中的威胁防御策略内定义的多个威胁响应触发的特定威胁响应触发,其中在所述威胁防御策略内定义的所述多个威胁响应触发中的每个威胁响应触发具有相应修复动作;
响应于所述中间管理器确定所述特定请求满足所述特定威胁响应触发,所述中间管理器执行所述特定威胁响应触发的相应修复动作;
响应于所述中间管理器确定所述特定请求不满足所述多个威胁响应触发中的任何威胁相应触发,所述中间管理器调用所述管理程序以实现所述特定请求。
12.根据权利要求11所述的非暂态计算机可读存储介质,其中所述特定请求表示用于终止在所述访客操作系统上运行的特定进程的系统调用。
13.根据权利要求12所述的非暂态计算机可读存储介质,其中当所述中间管理器接收到用于终止在所述访客操作系统上运行的具有对应于安全代理的进程ID的进程的系统调用时,所述特定威胁响应触发被满足。
14.根据权利要求13所述的非暂态计算机可读存储介质,其中所述特定威胁响应触发通过响应于所述中间管理器接收到导致所述安全代理被运行的系统调用而存储分配给所述安全代理的进程ID来被初始定义在所述威胁防御策略内;其中导致所述安全代理被运行的系统调用由所述威胁防御策略定义的一个或多个参数来标识。
15.根据权利要求11所述的非暂态计算机可读存储介质,其中所述特定请求表示页表更新。
16.根据权利要求15所述的非暂态计算机可读存储介质,其中当所述页表更新试图更新由所述威胁防御策略定义的一个或多个受保护存储器区域的受保护存储器区域时,所述特定威胁响应触发器被满足。
17.根据权利要求16所述的非暂态计算机可读存储介质,其中所述一个或多个受保护存储器区域由所述中间管理器在所述访客操作系统启动时通过确定所述访客操作系统所依赖的一个或多个敏感数据结构的一个或多个位置来初始定义。
18.根据权利要求11所述的非暂态计算机可读存储介质,其中所述中间管理器包括针对恶意软件扫描所述访客操作系统的安全代理。
19.根据权利要求11所述的非暂态计算机可读存储介质,其中所述请求表示由所述访客操作系统抛出的错误,并且所述特定威胁响应触发的相应修复动作是生成安全存储器转储并将所述安全存储器转储转移到所述虚拟机外部的位置。
20.根据权利要求11所述的非暂态计算机可读存储介质,其中所述特定请求表示对文件系统内的文件的写请求,并且当所述访客操作系统试图对所述文件系统内的一组受保护文件执行写操作时,所述威胁响应触发被满足。
CN201880000128.4A 2017-04-10 2018-02-13 威胁防御技术 Active CN109074450B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/483,971 2017-04-10
US15/483,971 US9892256B1 (en) 2017-04-10 2017-04-10 Threat defense techniques
PCT/US2018/017974 WO2018190946A1 (en) 2017-04-10 2018-02-13 Threat defense techniques

Publications (2)

Publication Number Publication Date
CN109074450A CN109074450A (zh) 2018-12-21
CN109074450B true CN109074450B (zh) 2022-01-04

Family

ID=61147492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880000128.4A Active CN109074450B (zh) 2017-04-10 2018-02-13 威胁防御技术

Country Status (3)

Country Link
US (2) US9892256B1 (zh)
CN (1) CN109074450B (zh)
WO (1) WO2018190946A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10546144B2 (en) * 2016-05-05 2020-01-28 International Business Machines Corporation Dynamically excluding sensitive information from system snapshot
US10191762B2 (en) * 2017-01-31 2019-01-29 Vmware, Inc. Transparent deployment of intermediary manager into guest operating system network traffic
US10496555B2 (en) * 2017-05-11 2019-12-03 Red Hat, Inc. Implementing per-thread memory access permissions
US10536268B2 (en) * 2017-08-31 2020-01-14 Cisco Technology, Inc. Passive decryption on encrypted traffic to generate more accurate machine learning training data
JP7220095B2 (ja) * 2019-02-22 2023-02-09 株式会社日立製作所 セキュリティ設計立案支援装置
US11379295B1 (en) * 2019-05-15 2022-07-05 Amazon Technologies, Inc. Recovery protocols for system malfunctions in virtual computing environments
US11580217B2 (en) * 2019-10-25 2023-02-14 Vmware, Inc. Implementing deferred guest calls in a host-based virtual machine introspection system
US11431481B2 (en) * 2019-11-07 2022-08-30 Salesforce, Inc. System for securing memory dumps

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047542A1 (en) * 2009-08-21 2011-02-24 Amit Dang System and Method for Enforcing Security Policies in a Virtual Environment
US20110071981A1 (en) * 2009-09-18 2011-03-24 Sourav Ghosh Automated integrated high availability of the in-memory database cache and the backend enterprise database
CN103620613A (zh) * 2011-03-28 2014-03-05 迈克菲股份有限公司 用于基于虚拟机监视器的反恶意软件安全的系统和方法
US9292331B2 (en) * 2013-03-15 2016-03-22 Bracket Computing, Inc. Expansion of services for a virtual data center guest

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120255003A1 (en) * 2011-03-31 2012-10-04 Mcafee, Inc. System and method for securing access to the objects of an operating system
US8819090B2 (en) * 2012-04-23 2014-08-26 Citrix Systems, Inc. Trusted file indirection
US9251343B1 (en) * 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
US10331528B2 (en) * 2017-03-02 2019-06-25 Hewlett Packard Enterprise Development Lp Recovery services for computing systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047542A1 (en) * 2009-08-21 2011-02-24 Amit Dang System and Method for Enforcing Security Policies in a Virtual Environment
US20110071981A1 (en) * 2009-09-18 2011-03-24 Sourav Ghosh Automated integrated high availability of the in-memory database cache and the backend enterprise database
CN103620613A (zh) * 2011-03-28 2014-03-05 迈克菲股份有限公司 用于基于虚拟机监视器的反恶意软件安全的系统和方法
US9292331B2 (en) * 2013-03-15 2016-03-22 Bracket Computing, Inc. Expansion of services for a virtual data center guest

Also Published As

Publication number Publication date
WO2018190946A1 (en) 2018-10-18
US20180293378A1 (en) 2018-10-11
CN109074450A (zh) 2018-12-21
US10552606B2 (en) 2020-02-04
US9892256B1 (en) 2018-02-13

Similar Documents

Publication Publication Date Title
CN109074450B (zh) 威胁防御技术
US11663031B2 (en) Techniques for securing virtual cloud assets at rest against cyber threats
RU2645268C2 (ru) Сложное классифицирование для выявления вредоносных программ
US8549648B2 (en) Systems and methods for identifying hidden processes
US9087199B2 (en) System and method for providing a secured operating system execution environment
US9032525B2 (en) System and method for below-operating system trapping of driver filter attachment
RU2723668C1 (ru) Фильтрация событий для приложений безопасности виртуальных машин
US20100175108A1 (en) Method and system for securing virtual machines by restricting access in connection with a vulnerability audit
US20100199351A1 (en) Method and system for securing virtual machines by restricting access in connection with a vulnerability audit
US20140259169A1 (en) Virtual machines
Srivastava et al. Automatic discovery of parasitic malware
Vokorokos et al. Application security through sandbox virtualization
US11449615B2 (en) System and method of forming a log when executing a file with vulnerabilities in a virtual machine
US11113086B1 (en) Virtual system and method for securing external network connectivity
US11170103B2 (en) Method of detecting malicious files resisting analysis in an isolated environment
Mahapatra et al. An online cross view difference and behavior based kernel rootkit detector
US11914711B2 (en) Systems and methods for automatically generating malware countermeasures
EP3674940A1 (en) System and method of forming a log when executing a file with vulnerabilities in a virtual machine
WO2023003565A1 (en) Kill chain identifications
EP3588346A1 (en) Method of detecting malicious files resisting analysis in an isolated environment
Kittel Design and Implementation

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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: California, USA

Patentee after: Weirui LLC

Country or region after: U.S.A.

Address before: California, USA

Patentee before: VMWARE, Inc.

Country or region before: U.S.A.