CN110651269B - 隔离的容器事件监视 - Google Patents

隔离的容器事件监视 Download PDF

Info

Publication number
CN110651269B
CN110651269B CN201880033637.7A CN201880033637A CN110651269B CN 110651269 B CN110651269 B CN 110651269B CN 201880033637 A CN201880033637 A CN 201880033637A CN 110651269 B CN110651269 B CN 110651269B
Authority
CN
China
Prior art keywords
container
operating system
security
host operating
application
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
CN201880033637.7A
Other languages
English (en)
Other versions
CN110651269A (zh
Inventor
C·G·杰弗里斯
B·M·舒尔茨
G·维斯瓦纳坦
F·J·史密斯
D·G·韦斯顿
A·斯里瓦斯塔瓦
L·T·陈
H·R·普拉帕卡
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 CN110651269A publication Critical patent/CN110651269A/zh
Application granted granted Critical
Publication of CN110651269B publication Critical patent/CN110651269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • 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/033Test or assess software
    • 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
    • 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/2101Auditing as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在计算设备上运行的主机操作系统监视在与主机操作系统隔离的容器中运行的应用对资源的访问。响应于检测到应用对资源的访问,将生成安全性事件,该安全性事件描述了由于访问资源而发生的恶意活动。分析该安全性事件以确定恶意活动的威胁等级。如果威胁等级不满足威胁等级阈值,则主机操作系统将允许应用继续访问资源并且其继续监视资源访问。当威胁等级满足威胁等级阈值时,操作系统将采取纠正动作以防止恶意活动传播到隔离的容器之外。通过使用安全性事件,在不使用在隔离的容器中运行反病毒软件所需的资源的情况下,保护主机操作系统免受内核级攻击。

Description

隔离的容器事件监视
背景技术
计算设备经常受到来自恶意软件的攻击,这些恶意软件可能损害存储在计算设备上的信息以及设备本身的功能。例如,恶意软件可能试图将非法信息写入计算设备的操作系统或访问特权的存储器位置。通常而言,恶意软件没有足够的特权来执行这些操作,从而引起系统错误和系统事件消息。识别和防御这些攻击是持续的斗争,而不能够防御此类攻击可能引起用户对其计算设备感到沮丧。
发明内容
提供了该发明内容以用简化形式引入对在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。
根据一个或多个方面,在与主机操作系统隔离的容器中运行的应用对资源进行访问。响应于检测到应用在访问资源,主机操作系统在应用正在访问资源时监视容器中的应用活动。响应于检测到在应用访问资源时在容器中发生的潜在恶意活动,主机操作系统生成安全性事件,该事件包括描述潜在恶意活动的信息。接着,主机操作系统分析安全性事件,以确定与潜在恶意活动相关联的威胁等级。
根据一个或多个方面,接收安全性事件。接收到的安全性事件包括描述潜在恶意活动的信息,这些恶意活动是由于应用访问与主机操作系统隔离的容器中的资源而产生的。响应于接收到安全性事件,主机操作系统确定与所接收到的安全性事件相关联的威胁等级满足威胁等级阈值。响应于确定与接收到的安全性事件相关联的威胁等级满足威胁等级阈值,主机操作系统采取纠正动作以缓解容器中的潜在恶意活动。
根据一个或多个方面,应用在与设备的主机操作系统隔离的容器中运行。如在本文中所讨论的,在隔离的容器中运行的应用被配置为访问存储在实现容器的设备处或远离实现容器的设备被存储的一个或多个资源。响应于检测到应用正在访问资源,设备在应用正在访问资源时监视容器中的应用活动。响应于检测到在容器中发生的潜在恶意活动,设备生成安全性事件,该安全性事件包括描述潜在恶意活动的信息。接着,设备分析安全性事件以确定与潜在恶意活动相关联的威胁等级。接着,设备确定威胁等级是否满足威胁等级阈值。响应于确定与所生成的安全性事件相关联的威胁等级满足威胁等级阈值,设备采取纠正动作以缓解容器中的潜在恶意活动。
附图说明
参考附图描述了具体实施方式。在附图中,附图标记中最左边的数字标识了该附图标记第一次出现的图。在描述和图中的不同实例中使用的相同的附图标记可以指示相似或相同的项。在图中所表示的实体可以指示一个或多个实体,并且因此,以下讨论中的实体的单数或复数形式是以可互换的方式来引用的。
图1示出了根据一个或多个实施例的实现隔离的容器事件监视的示例系统。
图2示出了根据一个或多个实施例的用于隔离的容器事件监视的示例系统架构。
图3是示出了根据一个或多个实施例的用于实现隔离的容器事件监视的示例过程的流程图。
图4是示出根据一个或多个实施例的用于基于事件监视来管理容器的示例过程的流程图。
图5是示出了根据一个或多个实施例的用于监视隔离的容器中的事件的示例过程的流程图。
图6示出了示例系统,该示例系统包括表示可以实现在本文中所述的各种技术的一个或多个系统和/或设备的示例计算设备。
具体实施方式
在本文中讨论了针对隔离的容器的事件监视。在计算设备上运行的操作系统(在本文中也被称为在主机设备上运行的主机操作系统)使用容器进行资源分区。与许多基于虚拟机的或沙箱方法相比,结合在本文中所描述的事件监视技术使用容器通过隔离Web浏览器、相关应用、和操作系统组件(例如,内核、文件系统、以及来自不受信任的资源的网络)来保护计算设备免受攻击。根据一个或多个实施例,主机操作系统将每个资源(无论是本地资源还是网络资源)都视为不受信任,以试图保护主机操作系统。以该方式,当主机设备请求访问资源时,主机设备将资源包含在一个或多个容器内,这些容器提供了与主机操作系统的完全内核隔离。如在本文中所述,资源是指主机设备可以本地访问,经由网络访问的位置(例如,设备的位置或数据所在的位置),以及由不同网络位置所提供的数据、可执行文件、或网络连接中的一个或多个。
为了保护实现主机操作系统的计算设备,该主机操作系统接收用于定义可接受容器活动列表的策略。根据一个或多个实施例,可接受容器活动的列表包括“白名单”,该“白名单”枚举被认为在容器内可接受的一个或多个活动。可替代地或另外地,从“黑名单”推断出可接受的容器活动的列表,该“黑名单”枚举了被认为满足威胁水平阈值的一个或多个容器活动。例如,容器策略黑名单可以指定对容器注册表、容器配置文件、容器文件系统进行的未经授权的改变,可以指定在容器中或在主机操作系统中的未经授权的存储器访问或内核活动,可以指定未经授权的过程创建或插入,可以指定从受监视的容器活动的历史分析生成的正常网络活动的范围,等等。可替代地或另外地,可以存在其他策略的示例,包括使用模式或使用特性,例如可接受值(例如,磁盘使用率、存储器使用率等的可接受值)的范围。因此,使得主机操作系统知道在容器内访问资源时可能发生的各种容器活动的可接受的威胁等级阈值。
在企业的多个用户相连接并且共享对公共企业数据和/或网络的访问的企业环境中,该策略可以由企业的管理员定义,以确保个体用户以及共享的数据和企业网络受到保护。可替代地或另外地,在多个计算设备相连接并且共享对公共资源的访问的云计算环境中,可以定义该策略以保护所有连接的设备。在一些实施例中,基于当前在计算设备上安装的应用以及预期由已安装的应用使用的资源来在本地计算策略。可以以任何方式确定对由某些应用所使用的资源的期望。例如,要由应用使用的预期的资源可以由用户指定,由应用开发人员指定,从历史应用资源使用中收集,等等。在一些实施例中,该策略是基于遥测或其他可用的现有使用统计信息学习的。由此,隔离的容器事件监视技术可用于保护实现主机操作系统的范围宽泛的计算设备以及单个计算设备。
当应用访问容器中的资源时,在容器中实现的容器事件管理器监视由于访问资源而发生的容器活动。容器事件管理器被配置为响应于检测到容器内由于资源访问而发生的恶意活动来生成安全性事件。根据一个或多个实施例,主机操作系统认为每个资源都是不可信的,并且迫使资源在隔离的容器内被访问。因此,容器事件管理器被配置为将所有容器活动视为恶意活动,并且随着这些活动实时进行而持续地生成描述容器活动的安全性事件。
如在本文中所述,安全性事件包括描述由应用访问容器中的资源所引起的活动的信息。描述容器活动的信息可以包括描述容器的行为的任何类别的细节。例如,安全性事件可以包括描述所访问的资源的信息,描述用于访问该资源的应用的信息,描述应用所调用的命令的信息,描述应用尝试的通信的信息,等等。
描述访问的资源的示例信息包括资源名称、访问资源的位置以及创建该资源的个人或实体的标识。类似地,描述用于访问资源的应用的示例信息包括应用的名称、应用的版本号、以及应用的制造商。描述应用调用的命令的示例信息包括对文件系统缓存的读取或写入请求,访问某一存储器位置的请求,用于终止正在运行的过程的指令,等等。描述应用尝试的通信的示例信息包括应用尝试访问的网络位置的标识,网络位置的描述,应用尝试在容器外部进行通信的数据或代码的副本,等等。由此,在安全性事件中包括的信息可用于描述应用在隔离的容器中运行时访问资源的行为。
容器事件管理器被配置为将这些安全性事件安全地传递至主机操作系统的安全性事件收集器以供分析。例如,安全性事件收集器可以从一个或多个容器中收集安全性事件,以便随着容器活动的实时发生记录描述容器活动的安全性事件。在一些实施例中,主机操作系统监视容器活动以获取容器的主机资源使用情况。如在本文中所述,主机资源包括任何类型的资源,例如计算资源、存储资源、网络连通性资源等等。因此,主机操作系统被配置为监视容器活动,例如数据废气(data exhaust)、网络连通性、容器内的通信、试图离开容器的通信等等。因此,主机操作系统被配置为生成其自己的安全性事件,并且将所生成的安全性事件发送至安全性事件收集器。由此,当容器管理器不可访问、无响应、未实现、被部分实现、或以其他方式不活动时,主机操作系统能够监视容器活动。可替代地,当容器事件管理器受到信任时,可以将主机操作系统生成的安全性事件与容器事件管理器生成的安全性事件进行比较,以验证隔离的容器的正确资源使用情况报告。
为了提高系统安全性,主机操作系统通常将从容器接收的所有数据都视为恶意数据。因此,为了保持包括在安全性事件中的信息的完整性,主机操作系统在将主机操作系统与隔离的容器通信地耦合的通信信道中实现安全内核。在实施例中,安全内核被配置为通过将与安全性事件收集器或主机操作系统有关的数据或代码声明为超限(off-limit)存储器来保护主机操作系统。因此,当恶意软件试图访问超限存储器时,安全内核会生成异常或系统中断以在确定对应的威胁等级时被分析,该异常或系统中断将被包括在安全性事件中。由此,在本文中所描述的安全性事件提供了描述在容器内发生的活动的安全存储器快照和内核快照。在一些实施例中,可以在辩论分析中使用容器的完整或部分快照,以更好地理解攻击、破坏等方面。
主机操作系统被配置为确定与每个接收到的安全性事件相关联的威胁等级。如在本文中所述,安全性事件描述了由应用执行的活动、由操作系统执行的活动、通过网络执行的活动,等等。因此,如在本文中所描述的安全性事件包括计算设备是否有任何组件参与了潜在恶意活动的信息。例如,主机操作系统将描述接收到的安全性事件的信息与策略进行比较,以便确定安全性事件是否描述恶意活动。主机操作系统可以记录安全性事件,以便构建描述容器活动的信息的存储库,所述信息可用于确定随后的容器活动是否恶意达到了满足威胁等级阈值的程度。
在一些实施例中,使用两个或更多个安全性事件来确定容器活动的威胁等级。在这些实施例中,来自多个安全性事件的信息被汇总和分析以确定当前的威胁等级。由此,当接收到另外的安全性事件时,将所述另外的安全性事件与经记录的安全性事件进行汇总,以确定容器的当前威胁等级。在一些实施例中,使用行为分析以基于使用中的应用或计算设备的用户来识别威胁等级阈值。例如,单个用户通常浏览到一般可预测的一组网站并使用一般可预测的一组应用,其具有行为的最小标准差。访问资源时的应用行为类似地是可预测的。由此,如果用户开始访问该用户先前未访问过的多个网站,则将此行为记录为一个或多个安全性事件,并且与威胁等级阈值进行比较以确定是否需要采取纠正动作。类似地,如果某个应用开始下载和安装该应用先前未下载和安装的软件,则该活动会被记录在一个或多个安全性事件中,并且与威胁等级阈值进行比较以确定是否需要采取纠正动作。在分布式计算环境中,可以在主机操作系统上,在与主机操作系统隔离的不同容器中,在与实现主机操作系统的设备不同的设备上,在与多个设备连接的中央服务器上,在云服务中等来执行监视容器活动。因此,在本文中所描述的技术使能在不包括这些各个位置的安全性的情况下实现对各个位置处的容器活动的分析。
响应于确定由接收到的安全性事件描述的恶意活动的威胁等级不满足威胁等级阈值,主机操作系统允许在容器中运行的应用继续访问资源。然而,响应于确定接收到的安全性事件所描述的恶意活动的威胁等级满足威胁等级阈值,主机操作系统将采取纠正动作以缓解恶意活动的负面影响。例如,主机操作系统可以隔离该容器以防止该容器访问容器外部的任何资源或数据。可替代地或另外地,主机操作系统可以识别导致恶意活动的资源,并将所识别的资源添加至不可信资源的列表中,以使得其他计算设备意识到可能的负面影响。另外的地或可替代地,主机操作系统可以使用在本文中所描述的技术来监视和实施写得较差的应用。例如,在某些云环境中,草率地编写的应用可能会遇到错误或设计缺陷,所述错误或设计缺陷会导致资源利用率效率低下、非预期的特权升级、或将数据写入不合适的位置(例如,系统文件、配置文件等)。通过监视这些写得较差的应用的活动,在本文中所描述的技术使能将这些写得较差的应用识别和标记为恶意的,从而使它们能够被高效地终止。
以该方式,使得主机操作系统随着实时发生的潜在恶意的容器活动而感知到所述潜在恶意的容器活动,其具有足够的可见性以识别满足威胁等级阈值的恶意活动。从该可见性来看,主机操作系统可以采取纠正动作来保护自己以及不同设备上的其他操作系统。此外,与其中容器或虚拟机用于隔离和包含恶意软件的系统(其具有在容器或虚拟机中运行的反病毒软件)相比,在本文中所讨论的技术可以减轻由于反病毒软件的多个实例在容器或虚拟机中运行所引起的设备资源使用。通过减轻这样的设备资源使用,可以改进设备性能,例如更快的启动时间,更低的存储器使用,更低的磁盘使用等等。
用于事件监视的容器隔离系统
图1示出了根据一个或多个实施例的实现隔离的容器事件监视的示例系统100。系统100至少部分地由主机设备实现。可以使用多种不同类型的计算设备中的任何一种来实现系统100,例如服务器计算机、台式计算机、膝上型计算机或上网本计算机、移动设备(例如,平板或板式设备、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、头戴式显示器、手表、手环、虚拟现实(VR)眼镜或耳机、增强现实(AR)耳机或眼镜)、娱乐设备(例如,娱乐家电、通信耦合至显示设备的机顶盒、游戏机)、物联网(IoT)设备(例如,具有软件、固件和/或硬件以允许与其他设备进行通信的对象或事物)、电视机或其他显示设备、汽车计算机等。因此,实现系统100的计算设备的范围可以从具有大量存储器和处理器资源的完整资源设备(例如,个人计算机、游戏机)到具有受限存储器和/或处理资源的低资源设备(例如,传统机顶盒、手持游戏机)。
系统100包括主机操作系统102、管理和监视服务104、以及web代理106。管理和监视服务104代表服务的一种,所述服务提供了针对实现该主机操作系统102的计算设备的一个或多个管理策略,如本文中所讨论的。Web代理106代表控制对从实现主机操作系统102的计算设备远程访问的一个或多个网络资源120(1)、...、120(m)的访问的功能。例如,在一个或多个中实施例,web代理106通过在授予对一个或多个资源的访问权之前要求来自主机操作系统102的认证来控制对从网络108访问的一个或多个资源的访问权。可替代地,在一个或多个实施例中,实现主机操作系统102的计算设备经由网络108独立于web代理访问网络资源120(1)、...、120(m)。网络108表示数据网络的功能,例如因特网、局域网(LAN)、公共电话网络、内联网、其他公共和/或专有网络,其组合等。由此,经由网络108访问的网络资源120(1)、...、120(m)可以包括网站、web应用、电子邮件、文档等。
在一个或多个实施例中,主机操作系统102、管理和监视服务104、以及web代理106被实现为同一计算设备的一部分。可替代地,管理和监视服务104和/或web代理106的至少一部分可以在与实现主机操作系统102的设备分离并且远程的设备上被实现。例如,在一个或多个实施例中,管理和监视服务104被实现为位置远离实现主机操作系统102的计算设备的移动设备管理(MDM)服务。可替代地或另外地,管理和监视服务104可以被实现为位置远离实现主机操作系统102的计算设备的轻型目录访问协议(LDAP)服务器。类似地,web代理106可以远离实现主机操作系统102的设备被实现。
管理和监视服务104被配置为向主机操作系统102提供(例如,推送)策略。在一个或多个实施例中,管理和监视服务104被配置为以定期或不定期的时间间隔(例如,在系统启动时,每天等)将策略推送给主机操作系统102。可替代地,管理和监视服务104可以被配置为:每当存在针对主机操作系统的策略的更新时,将策略推送至主机操作系统102。尽管在本文中参考了将策略推送至主机操作系统102,但是管理和监视服务104被配置为经由任何合适的数据传输方法(例如,流传输)向主机操作系统提供策略。可替代地,在一个或多个实施例中,主机操作系统102被配置为从管理和监视服务104获得(例如,拉取)策略。管理和监视服务104具有两个角色。第一,管理和监视服务104接收对于主机操作系统102的用户通常可访问的个体网络资源120(1)、...、120(m)的管理配置。在一个或多个实施例中,这些网络资源与个体的信任等级相关联。例如,雇主可以将与该雇主的网站相关联的任何网络资源定义为具有高信任度。由此,用于主机操作系统102的策略指示与雇主的网站相关联的任何网络资源都是受信任的网络资源。
另外地,由管理和监视服务104提供的管理配置策略可以为各种资源活动指定可接受的威胁等级。在一个或多个实施例中,由管理和监视服务104提供的该策略为从访问容器122(1)、...、122(n)中的各个网络资源120(1)、...、120(m)发生的各种活动指定了可接受的威胁等级阈值。如下文进一步详细描述的,可以将该策略提供至安全性子系统112,以便使得安全性子系统112能够分析与潜在恶意的容器活动相关联的威胁等级,并且确定该威胁等级是否满足威胁等级阈值。
管理和监视服务104的第二个角色是从主机操作系统102接收与关联于个体网络资源的受监视活动相关的反馈,以及将该受监视的信息编译成针对管理员的报告。管理员可以使用该经编译的报告来更新与受信任的网络资源有关的策略,或者为主机操作系统102更新与各种资源活动的威胁等级有关的策略。另外地或可替代地,该经编译的报告可以从管理和监视服务104或主机操作系统102传播到从实现主机操作系统102的计算设备远程实现的至少一个不同的计算设备或云服务。通过该方式,其他人可以使用来自隔离的容器中的事件监视的反馈来保护多个设备,例如企业设备,经由云连接的设备等。在一些实施例中,管理和监视服务104被配置为使用在本文中所描述的技术,对来自主机操作系统102的关于受监视的资源活动的反馈来执行其自己的分析。因此,管理和监视服务104被配置为进一步监视主机操作系统102上或容器122(1)、...、122(n)中的任何恶意活动。
管理和监视服务104可以被配置为从实现主机操作系统102的设备的管理员接收策略配置数据。如在本文中所讨论的,策略描述了与诸如受信任的网站、受信任的网络位置、受信任的网络等之类的受信任的网络资源有关的信息。另外地或可替代地,策略描述了针对潜在恶意活动的可接受的威胁等级。当管理和监视服务104从管理员接收策略时,管理和监视服务104被配置为将策略更新发送至一组目标计算设备。根据一个或多个实施例,管理和监视服务104向其发送策略更新的该组目标计算设备是由管理员定义的。例如,在如上所述的企业环境中,管理和监视服务104被配置为向与企业相关联的每个计算设备发送策略更新。接收策略更新的每个计算设备都被配置为本地地存储该策略以供尝试访问资源时使用。
如下文进一步详细讨论的,实现主机操作系统102的计算设备被配置为动态地监视与所访问的网络资源120(1)、...、120(m)相关联的活动,以及动态地监视关于本地资源的活动,例如本地地存储在实现主机操作系统102的计算设备上的一个或多个资源。与网络资源相关联的受监视活动经由安全性事件收集器116被接收,经由安全性子系统112被分析,并且在主机操作系统102被本地更新并被传送回管理和监视服务104。以该方式,可以持续地更新管理和监视服务104,以为主机操作系统102的用户提供受信任网络资源的准确列表以及各种安全性事件的威胁等级阈值的准确列表。
主机操作系统102还包括隔离的容器子系统110、安全性子系统112、一个或多个应用114、安全性事件收集器116、以及容器管理器118。主机操作系统102也管理一个或多个容器,其被图示为多个(n个)容器122(1)、...、122(n)。
隔离的容器子系统110代表用于调用网络隔离查询应用编程接口(API)以确定所请求的资源是否受信任的功能。如果隔离的容器子系统110确定所请求的资源是受信任的,则隔离的容器子系统110允许主机操作系统102访问该请求的资源。可替代地,如果隔离的容器子系统110确定所请求的资源不可信,则隔离的容器子系统110使得主机操作系统102激活容器122(1)、...、122(n)中的一个或多个,并且允许一个或多个激活的容器访问不受信任的网络资源。
安全性子系统112代表用于分析描述了潜在恶意活动的信息以确定与潜在恶意活动相关联的威胁等级的功能,所述潜在恶意活动是由于访问容器122(1)、...、122(n)中的一个或多个中的资源而发生的。例如,安全性子系统112可以从安全性事件收集器116接收安全性事件,该安全性事件描述了由于容器122(1)、...、122(n)中的一个或多个中的资源访问而导致的容器活动。安全性子系统112将接收到的安全性事件与策略(例如,从管理和监视服务104接收到的策略)进行比较,以确定潜在恶意活动的威胁等级。例如,安全性子系统112可以将描述潜在恶意活动的安全性事件信息与可接受和/或不可接受的容器行为的列表进行比较,以确定与恶意活动相关联的威胁等级是否满足威胁等级阈值。安全性子系统112的功能在下文被进一步详细描述。
应用114包括能够由实现主机操作系统102的计算设备的一个或多个处理器执行的一个或多个应用。例如,应用114可以包括web浏览器应用。可替代地或另外地,应用114可以包括诸如电子邮件应用、文字处理应用、电子表格应用、视觉呈现应用等之类的应用。
安全性事件收集器116代表用于收集从容器122(1)、...、122(n)中的一个或多个安全地传送的安全性事件的功能。安全性事件收集器116被配置为订阅一个或多个容器事件管理器126(1)、...、126(n),以便知道在一个或多个容器122(1)、...、122(n)中发生的所有容器活动。例如,安全性事件收集器116可以从一个或多个容器事件管理器126(1)、...、126(n)“拉取”安全性事件或者为一个或多个容器事件管理器126(1)、...、126(n)建立连接,以在生成安全性事件时将安全性事件“推送”到安全性事件收集器116。在接收到安全性事件时,安全性事件收集器116转发该安全性事件与描述潜在恶意容器活动的信息以供分析,例如,转发至安全性子系统112。通过对将安全性事件收集器116与一个或多个容器122(1)、...、122(n)耦合的通信通道中的安全内核的实现,安全性事件收集器116与一个或多个容器122(1)、...、122(n)之间的通信得到保护。以该方式,使主机操作系统102知道在一个或多个容器122(1)、...、122(n)内发生的所有潜在恶意活动,而不会损害实现主机操作系统102的设备的操作系统数据或硬件方面的安全性。安全性事件收集器116的功能在下文更详细地被描述。
主机操作系统102另外地包括容器管理器118。容器管理器118管理系统100中的容器122(1)、...、122(n)的调度,并且确定哪些容器122(1)、...、122(n)在什么时候在主机操作系统102上运行。容器管理器118还负责为系统100的个体用户激活一个或多个容器122(1)、...、122(n),并且负责确保系统100的其他用户不能够访问为个体用户创建的一个或多个容器122(1)、...、122(n)。取决于运行主机操作系统102的计算设备中物理处理器和/或处理器核心的数量,可以一次运行单个容器122(1)、...、122(n)(例如,在具有单个核心的单个处理器的情况下)或者可替代地可以同时运行多个容器122(1)、...、122(n)(例如,在多个处理器和/或多个处理器核心的情况下)。另外地,在一个或多个实施例中,容器管理器118被配置为监视在容器122(1)、...、122(n)中的一个或多个内执行的用户配置改变。例如,容器管理器118被配置为检测与在容器122(1)、...、122(n)之一中访问的网站相关联的用户偏好的改变。主机操作系统102被配置为使用容器中检测到的这些改变,并将所述改变应用于在主机操作系统中访问的一个或多个相关资源。
每个容器122(1)、...、122(n)可以以不同的方式被实现。容器122可以被实现为的一种类型的容器被称为过程容器。对于过程容器,容器内的应用过程就像它们在自己的个体系统(例如,计算设备)上操作一样运行,这是通过使用命名空间隔离来完成的。主机操作系统102实现命名空间隔离。命名空间隔离为容器中的过程提供了组合的视图,该视图由主机操作系统102的共享部分以及特定于每个容器的操作系统的隔离部分(例如,文件系统、配置、网络等)组成。如在本文中所描述的,操作系统的特定于每个容器的隔离部分也可以被称为容器子系统,其将在下文中被详细讨论。
容器122可以被实现为的另一种类型的容器被称为虚拟化容器。对于虚拟化容器,虚拟化容器在轻型虚拟机中运行,该虚拟机具有虚拟地址支持的存储器页面,而没有将特定的主机物理存储器分配至虚拟机。因此,可以将分配给虚拟机的存储器页面换出至页面文件。轻量级虚拟机的使用提供了另外的安全性以及在容器中运行的过程之间的隔离。因此,尽管过程容器使用过程隔离或基于筒仓(silo-based)的过程隔离来实现其包含,但虚拟化容器使用基于虚拟机的保护来实现更高等级的隔离,在这之外还可以提供一般过程边界。容器也可以在使用物理存储器的虚拟机中运行。
在一个或多个实施例中,每个容器122(1)、...、122(n)包括一个或多个应用124(1)、...、124(n)。一个或多个应用124(1)、...、124(n)中的个体应用对应于主机操作系统102上的应用114中的个体应用的实例。应用124(1)、...、124(n)因此可用于访问一个或多个容器122(1)、...、122(n)中的不受信任的资源,其方式类似于应用114中的一个应用访问主机操作系统102上的受信任资源的方式。
在一个或多个实施例中,每个容器122(1)、...、122(n)包括容器事件管理器126(1)、...、126(n)。每个容器事件管理器126(1)、...、126(n)被配置为监视发生在容器122(1)、...、122(n)内的活动。例如,每个容器事件管理器126(1)、...、126(n)被配置为监视当一个或多个应用124(1),124(n)访问相应的容器内的资源时发生的活动。每个容器事件管理器126(1)、...、126(n)还被配置为响应于检测到容器122(1)、...、122(n)内的恶意活动而生成安全性事件。如在本文中所述,安全性事件包括描述容器活动的信息,其可以被分析以便确定容器内发生的恶意活动是否满足威胁等级阈值。例如,可以将由容器事件管理器126(1)、...、126(n)生成的安全性事件安全地传输到安全性事件收集器116和安全性子系统112,以便安全性子系统112将安全性事件中的信息与管理和监视服务的安全策略进行比较。如下文进一步详细描述的,容器管理器118使用对由安全性事件指示的潜在恶意活动是否满足威胁等级阈值的确定来允许应用124(1)、...、124(n)继续访问资源或者采取纠正动作来缓解恶意活动。
在考虑了用于实现隔离的容器事件监视的示例系统之后,现在考虑根据一个或多个实施例的用于实现隔离的容器事件监视的系统的示例架构。
系统架构
图2示出了根据一个或多个实施例的用于隔离的容器事件监视的示例系统架构200。系统架构200至少部分地由计算设备实现。类似于以上关于可以用于实现图1的系统100的类型的讨论,可以使用多种不同类型的计算设备中的任何一种来实现系统架构200。
在所示的示例中,实现系统架构200的计算设备包括两个单独且隔离的部分:主机操作系统102和容器122。尽管被示出为仅包括单个容器122,但是系统架构200被配置为包括任何数量的不同的容器122。主机操作系统102与任何一个或多个容器122隔离,以保护主机操作系统102免受可能由不受信任的网络资源引起的攻击或感染,如图2中的虚线所示。
主机操作系统102被示为包括安全性子系统112、安全性事件收集器116、和容器管理器118。另外地,主机操作系统102包括应用202,其可以是在图1中所示的应用114之一。
容器122包括应用204,其表示主机操作系统102中包括的应用202的实例。容器122另外地包括容器子系统206,其功能将在下文进一步详细讨论。另外地,容器130包括容器事件管理器126,其代表监视容器活动并生成描述容器122内的活动(例如,当应用204访问资源时发生的活动)的安全性事件的功能。容器事件管理器126的功能将在下文进一步详细讨论。
主机操作系统102和容器122尽管彼此隔离,但是经由虚拟机总线(VMBUS)208通信地连接。虚拟机总线208是允许主机和容器部分彼此通信的通信通道。另外的地或替代地,主机操作系统102和容器122通过诸如物理网络、虚拟网络、简单消息块(SMB)协议、或远程过程调用(RPC)互连之类的其他方式通信地连接。主机操作系统102与容器122之间的通信连接实现了安全内核,以维护从容器122传递到主机操作系统102的信息的完整性。例如,在一个或多个实施例中,VMBUS 208实现了安全内核,其可以将与容器事件管理器126、安全性事件收集器116、容器管理器118或主机操作系统102的任何其他组件相关联的任何数据或存储器位置指定为超范围。因此,当恶意软件试图访问超限数据或存储器位置时,安全内核导致发生异常或中断,这由容器事件管理器126监视并被包括在传递给安全性事件收集器的安全性事件中,以确定与超限访问尝试相关联的威胁等级。
在考虑了用于实现隔离的容器事件监视的系统的系统架构之后,现在考虑在系统架构200的主机部分和容器部分中示出的各个组件的功能。
安全性子系统
安全性子系统112代表用于分析安全性事件中包括的信息的功能,该信息描述了从容器122中运行的应用204发生的潜在恶意活动。为了实现隔离的容器事件监视,安全性子系统112被配置为与安全性事件收集器116和容器管理器118进行通信。在一个或多个实施例中,安全性子系统112在启动实现系统架构200的计算设备时自动被启动。可替代地,安全性子系统112在其他时间被启动,例如在创建容器122时由主机操作系统102启动。
当安全性子系统112被启动时,其与安全性事件收集器116建立连接以接收从容器事件管理器126传递的安全性事件。在启动时,安全性子系统112另外被配置为与服务(例如,图1的管理和监视服务104)建立连接,以接收描述各种容器活动的威胁等级阈值的经更新的策略信息。以该方式,安全性子系统112包括描述潜在恶意的容器活动的可接受的威胁等级阈值的当前信息。
在从安全性事件收集器116接收到安全性事件后,安全性子系统112通过将安全性事件中包括的信息与策略进行比较来确定与安全性事件相关联的恶意活动的威胁等级。根据一个或多个实施例,策略被配置为描述可接受的容器活动的信息的白名单。可替代地或另外地,策略被配置为描述禁止的网络活动的信息的黑名单。根据一个或多个实施例,由安全性子系统112接收的策略根据先前分析的安全性事件形成,所述先前分析的安全性事件描述了由容器操作导致的正常网络活动的范围。例如,如在本文中所描述的正常网络活动包括描述应用204对一个或多个已知受信任资源的访问的信息。
因此,通过监视关于已知受信任资源的容器活动,可以生成策略来解释落到正常网络活动范围之外的未知恶意活动。如在本文中所描述的,正常网络活动包括容器122与隔离的位置之间的任何活动,例如不同的容器、主机操作系统102、不同的计算设备等等。由此,安全性子系统112被配置为:通过将以安全性事件的形式包括的信息与描述潜在恶意活动的可接受的威胁等级阈值的策略进行比较来确定潜在恶意活动的威胁等级。另外地,安全性子系统112被配置为分析安全性事件以随着时间来学习恶意模式。可以分析所记录的安全性事件的模式,以识别反复生成满足给定威胁等级阈值的威胁等级的某些模式。例如,如果描述应用204对特定网站的访问的安全性事件模式反复地导致满足威胁等级阈值,则安全性子系统112可以得知该特定网站不被信任。当安全性子系统112识别了安全性事件的恶意模式时,安全性子系统112被配置为更新描述潜在恶意活动的策略,例如主机操作系统102本地的策略或者存储在图1的管理和监视服务104处的远程策略。
响应于确定在容器122中发生的潜在恶意活动的威胁等级,安全性子系统与容器管理器118进行交互以控制容器122。例如,响应于确定与恶意活动相关联的威胁等级不满足特定安全性事件的威胁等级阈值,安全性子系统112允许应用204继续访问一个或多个资源而无需干预。然而,响应于确定与恶意活动相关联的威胁等级满足特定安全性事件的威胁等级,安全性子系统112使得容器管理器118采取纠正动作来缓解恶意活动。容器管理器118的功能和纠正动作在下文进一步被详细描述。
尽管安全性子系统112被示出为由主机操作系统102实现,但是安全性子系统112被配置为在众多位置执行在本文中所描述的功能。例如,安全性子系统112可以在与主机操作系统102以及容器122两者都隔离的容器中被实现。可替代地或另外地,安全性子系统112可以由远离于实现主机操作系统102的设备而实现的设备的操作系统来实现。可替代地或另外地,安全性子系统112可以被实现为分布式计算环境中的基于云的服务,如关于图6进一步详细描述的。由此,因为可以在多种位置实现安全性子系统112,安全性子系统112被配置为确定恶意容器活动是否同时满足多个容器以及实现在本文中所述的隔离的容器事件监视技术的多个设备的威胁等级阈值。
为了接收包括描述潜在恶意的容器活动的信息的安全性事件,安全性子系统112采用安全性事件收集器,例如安全性事件收集器116。
安全性事件收集器
安全性事件收集器116表示用于在实现系统架构200的计算设备中实施隔离的容器事件监视的功能。为了实现事件监视,安全性事件收集器116被配置为经由虚拟机总线208以安全的方式与容器事件管理器126进行通信。在一个或多个实施例中,安全性事件收集器116在启动实现系统架构200的计算设备时自动被启动。可替代地,安全性事件收集器116在创建容器122时启动。
尽管系统架构200被示出为仅包括单个容器122,但是安全性事件收集器116被配置为订阅在不同容器中实现的不同容器事件管理器。在建立了与容器事件管理器126的连接时,安全性事件收集器116订阅由容器事件管理器126发布的安全性事件。例如,安全性事件收集器116可以从容器事件管理器126“拉取”安全性事件。可替代地或另外地,当安全性事件被容器事件管理器126推送时,安全性事件收集器116可以从容器事件管理器126接收安全性事件。
在接收到安全性事件时,安全性事件收集器就将具有描述潜在恶意容器活动以供分析的信息的安全性事件转发至例如安全性子系统112。根据一个或多个实施例,安全性事件收集器116将安全性事件匿名地转发至安全性子系统112。在安全性事件收集器116和安全性子系统112在不同设备上实现,或者在安全性子系统112被实现为基于云的服务的情况下,这种匿名转发是有用的。
接着,安全性子系统112能够使用从安全性事件收集器116接收到的该安全性事件信息以指示容器管理器(例如,容器管理器118)如何管理容器122。
容器管理器
容器管理器118负责激活与主机操作系统102隔离的一个或多个容器122以访问资源,并且响应于确定由资源访问导致的恶意活动满足威胁等级阈值而采取纠正动作。如在本文中所讨论的,激活诸如容器122之类的容器包括创建一个或多个新容器或者恢复一个或多个暂停容器的运行。容器管理器118另外地被配置成为登录到主机操作系统102中的个体用户激活一个或多个容器,并且确保主机操作系统的任何其他用户被限制访问为所述个体用户的激活的一个或多个容器。容器管理器118确保将登录到主机操作系统102中的用户映射到容器122。在其中存在主机操作系统102的多个用户和多个容器的一些实施例中,容器管理器118被配置为查看已登录用户的身份并且将其与一个或多个对应的容器直接关联。该约束阻止其他用户查看容器或者以其他方式与容器进行交互,并且还防止潜在恶意的容器活动的传播。
当主机操作系统102启动时,容器管理器118确定策略是否存在。在一个或多个实施例中,容器管理器118通过与安全性子系统112通信来确定策略是否存在,如在本文中所讨论的。如果容器管理器118确定主机操作系统102上存在策略,则容器管理器118被配置为激活容器122以处理主机操作系统102所请求的任何资源。容器管理器118被配置为通过与主机操作系统102通信以确定是否存在容器基础映像来激活容器122。如果容器管理器118确定不存在容器基础映像,则容器管理器118被配置为创建容器基础映像。如果容器管理器118确定存在容器基础映像,或者在容器管理器118创建了容器基础映像之后,容器管理器118等待用户登录到主机操作系统102中。
容器基础映像包含创建和激活包括其自己的操作系统的隔离的容器(例如,容器122)所需的信息。例如,在一个或多个实施例中,容器基础映像包含描述主机操作系统102如何设定容器的注册表设置的信息。需要有关注册表设置的信息是因为在容器122中打开的某些应用表现得与将在主机操作系统102上打开的应用的版本不同。另外地或者可替代地,容器基础映像包括描述如何在容器122中执行的应用内创建用户帐户的信息。另外地或者可替代地,当容器122是活动的时,容器基础映像包括关于容器子系统206可能需要的经分配资源(例如,存储器、处理器、磁盘、或网络)的量的信息。
当用户登录到主机操作系统102上时,容器管理器118确定是否存在与容器基础映像相对应的容器。如果容器管理器118确定针对该容器基础映像不存在容器,则容器管理器118可以创建容器,例如容器122。以该方式,容器管理器118确保容器基础映像包括任何更新的主机操作系统二进制文件,由此使得从容器基础映像创建的容器与主机操作系统102保持同步。在主机操作系统102更新的事件中,容器管理器118配置为强制关闭任何打开的容器或者等待直到容器中的用户活动停止,从而删除容器基础映像并创建新的容器基础映像。在容器托管在不同的计算设备上的情况下,容器管理器118被配置为与不同的计算设备通信以管理和监视远程容器。
响应于确定主机操作系统102正在请求访问一个或多个资源,容器管理器118被配置为标识主机操作系统上正在请求不受信任的网络资源的应用。容器管理器118被配置为在容器122内启动一个版本的应用(例如,应用204),以处理所请求的资源。在容器管理器118激活了容器122内的该版本的应用之后,容器管理器118被配置为远程进入容器122以在实现主机操作系统102的设备的显示器处显示应用的界面。
容器管理器118被配置为与图1的隔离的容器子系统110通信,以确保在容器由远程计算设备托管的情况下,合适的硬件虚拟化技术存在于主机操作系统102上以及容器122中。为使容器管理器118正常运行,容器管理器118配置为验证主机操作系统102的应用编程接口(API)可用于管理隔离的容器生命周期和相关联的网络堆栈。
除了创建容器122之外,容器管理器118还被配置为响应于从安全性子系统112接收到容器122内的恶意活动的威胁等级满足威胁等级阈值的指示而采取纠正动作。例如,容器管理器118被配置为隔离与恶意活动相关联的被访问资源,以便防止该资源执行。可替代地或另外地,容器管理器118被配置为识别与恶意活动相关联的被访问资源,将所识别的资源添加至列举恶意资源的黑名单中,以及将该黑名单传播到其他连接的计算设备。例如,如果实现系统架构200的设备是企业的中央服务器,则容器管理器118被配置为将该黑名单广播至企业中所有连接的设备,以缓解恶意活动的影响。因为安全性事件收集器116配置为在应用204运行时实时从容器事件管理器126接收安全性事件,因此容器管理器可以实时地广播该黑名单,以有效地防止恶意活动的传播。
可替代地或另外地,响应于从安全性子系统112接收到容器122内的恶意活动的威胁等级满足威胁等级阈值的指示,容器管理器118被配置为隔离容器122并阻止容器122进一步访问资源。通过阻止容器122进一步访问资源,容器管理器118防止在容器中发生的恶意活动获得文件系统访问权,访问由实现系统架构200的设备托管的共享的资源以及诸如图1的网络资源120(1)、…、120(m)之类的共享的网络资源。另外地或可替代地,容器管理器118被配置为响应于确定恶意活动满足威胁等级阈值而通过终止容器122以及重建新的容器来采取纠正动作。例如,容器管理器118被配置为重建新的容器,该新的容器既没有与恶意活动相关联的不需要的资源,也没有作为恶意活动的结果而在终止的容器122中发生的任何改变。
在考虑了用于实现隔离的容器事件监视的系统的系统架构之后,现在考虑用于监视系统架构200的容器部分中的资源访问的容器事件管理器的功能。
容器事件管理器
如在本文中所讨论的,容器事件管理器126代表用于检测由容器中运行的虚拟应用(例如,在容器122中运行的应用204)检测对资源的访问的功能。另外地,容器事件管理器126代表这样的功能,其用于在应用访问资源时监视容器中的活动,并且在容器事件管理器126确定容器活动是潜在恶意时生成包括描述潜在恶意活动的信息的安全性事件。
根据一个或多个实施例,实现系统架构200的设备假定在容器122中访问的每个资源都与潜在恶意活动相关联。因此,容器事件管理器126被配置为在应用204进行资源访问期间持续地生成安全性事件。由容器事件管理器126生成的每个安全性事件包括描述容器活动的信息,并且基于生成安全性事件的持续性质,向外部实体(例如,安全性事件收集器116)提供容器活动的实时概览。
容器事件管理器126被配置为经由其通过虚拟机总线208与主机操作系统102的连接来监视容器122中的活动以及主机操作系统102中的活动。例如,当监视容器活动时,容器事件管理器126可以监视容器子系统206中的访问、改变、或活动。容器子系统206代表系统的实例,其在创建容器122时被激活以便应用204以与应用202在主机操作系统102上运行的方式相似的方式运行。例如,容器子系统206可以包括容器注册表、容器配置文件、容器过程管理器、容器文件系统高速缓存、容器存储器管理器等等。
根据一个或多个实施例,容器事件管理器126被配置为持续地监视容器子系统206,以便识别可能由于恶意活动而发生的异常行为。例如,容器事件管理器126被配置为在识别原本在正常容器活动期间不会发生的异常行为时生成安全性事件。异常行为可以包括:对容器注册表的未经授权的改变、对容器配置文件的未经授权的改变、对容器文件系统的未经授权的改变、将未经授权的过程创建或插入到容器活动中、未经授权的存储器访问、未经授权的内核活动、非正常的网络活动,等等。
如在本文中所讨论的,因为主机操作系统102的安全性子系统112利用描述用于各种类型的容器活动的可接受的威胁等级阈值的策略被更新,所以容器事件管理器126不需要知道描述什么类型的访问被授权或未被授权的策略。由此,容器事件管理器126将所有容器活动视为潜在恶意的,并生成包括描述所有容器活动的信息的安全性事件。可替代地或另外地,可以将来自安全性子系统112的策略传送至容器事件管理器126,以使得容器事件管理器126知道什么容器活动被视为潜在恶意活动。
容器事件管理器126被配置为在将主机操作系统102与隔离的容器122耦合的通信通道(例如,虚拟机总线208)中使用安全内核将安全性事件安全地传送至主机操作系统的安全性事件收集器116。通过在通信通道中实现该安全内核,容器事件管理器126另外地被配置为监视主机操作系统102中可能由在容器122中发生的恶意活动所试图的活动。例如,当应用204访问恶意资源时,恶意资源可能试图通过主机操作系统102访问网络,例如图1的网络108。
因为该访问是通信通道的安全内核禁止的,所以安全内核会引起生成异常或中断,该异常或中断能够由容器事件管理器126检测到。由此,容器事件管理器126被配置为监视对由实现系统架构200的设备托管的共享资源的访问以及远离实现系统架构200的设备定位的网络资源的访问。使用在本文中所述的技术,容器事件管理器126被配置为在隔离的容器以及运行隔离的容器的设备的主机操作系统中监视潜在恶意活动。通过汇总描述主机操作系统102和容器122两者中的潜在恶意活动的信息,容器事件管理器126被配置为向安全性事件收集器116提供综合信息,其中,安全性子系统112可以使用所述综合信息来分析恶意活动并且实时采取纠正动作以缓解恶意活动。
在考虑了用于实现隔离的容器事件监视以保护一个或多个计算设备免受与恶意资源相关联的攻击或感染的系统的系统架构之后,现在考虑根据一个或多个实施例的示例过程。
示例过程
图3是示出了根据一个或多个实施例的用于实现隔离的容器事件监视的示例过程300的流程图。过程300是由诸如图1的系统100之类的系统实行的,并且可以以软件、固件、硬件或其组合来实现。过程300被示出为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程300是用于实现隔离的容器事件监视的示例过程;参考不同的附图,在本文中包括实现隔离的容器事件监视的其他讨论。
在过程300中,检测在容器中运行的应用对资源的访问(动作302)。当用户、管理员、程序、应用、或系统的其他实体请求一个或多个资源时,检测到访问。由在容器中运行的应用访问的一个或多个资源可以包括来自远离系统的一个或多个位置的网络资源和/或由系统本地托管的资源。例如,当系统的用户使用容器中运行的web应用导航到网页时,或者系统用户使用在容器中运行的应用打开存储在系统的本地存储器中的文件时,检测到对资源的访问。
响应于检测到在容器中运行的应用对资源的访问,过程300在应用访问资源的同时监视容器中的活动(动作304)。可替代地或另外地,过程300在创建容器时监视容器中的活动,并且继续监视容器中的活动直到容器终止为止。在一个或多个实施例中,监视是由诸如图1的容器事件管理器126之类的容器事件管理器执行的。容器事件管理器可以在与应用相同的容器中被实现,或者可以在与运行应用的容器不同的容器中被实现。在容器事件管理器在与运行应用的容器不同的容器中被实现的实例中,不同的容器通信地耦合以便促进容器间活动,例如经由图2的VMBUS 208。
响应于检测到容器内的恶意活动,过程300生成安全性事件(动作306)。为了保护运行容器的系统,假定容器内发生的所有活动都是恶意活动。由此,在一个或多个实施例中,在虚拟应用访问资源的同时持续地生成安全性事件。因此,安全性事件提供了描述容器活动的实时信息,可以对实时信息进行分析,以便确定容器活动的威胁等级。根据一个或多个实施例,安全性事件是由诸如图1的容器事件管理器126之类的容器事件管理器生成的。可替代地或另外地,安全性事件是由诸如图1的主机操作系统102之类的主机操作系统生成的。容器事件管理器可以在与应用相同的容器中被实现,或者可以在与运行该应用的容器不同的容器中被实现。类似地,可以在远离实现容器的计算设备的计算设备处实现容器事件管理器。
在接收到安全性事件后,过程300分析安全性事件以确定恶意活动的威胁等级(动作308)。该分析可以在实现容器的计算设备处被执行,或者可以在远离实现容器的计算设备的计算设备处被执行。根据一个或多个实施例,由诸如图1的安全性事件收集器116之类的安全性事件收集器来执行对安全性事件的分析。安全性事件收集器被配置为通过将安全性事件与指定可接受的容器活动的策略进行比较来分析安全性事件以确定恶意活动的威胁等级。可替代地或另外地,安全性事件收集器被配置为分析多个安全性事件,以确定恶意活动的威胁等级。例如,每次接收到新的安全性事件时,安全性事件收集器就可以对一组汇总的安全性事件执行新的分析。可替代地,安全性事件收集器可以以基于所接收的安全性事件数量的间隔、基于计时器的间隔、基于功耗度量的间隔等,来对一组汇总的安全性事件执行周期分析。
在考虑了用于在主机操作系统上实现隔离的容器事件监视以保护实现该主机操作系统的设备免受与恶意网络资源相关联的攻击或感染的示例过程之后,现在考虑根据一个或多个实施例的可以用于基于事件监视管理容器的示例过程。
图4是示出了根据一个或多个实施例的基于事件监视来管理容器的示例过程400的流程图。
过程400由诸如图1的主机操作系统102之类的主机操作系统实行,并且可以以软件、固件、硬件或其组合来实现。过程400被示出为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程400是用于基于事件监视来管理容器的示例过程;参考不同的附图,在本文中包括基于事件监视来管理容器的另外的讨论。
在过程400中,主机操作系统监视描述容器中应用对资源的访问的活动(动作402)。根据该监视,主机操作系统接收指示在容器内发生恶意活动的安全性事件(动作404)。
响应于接收到安全性事件,主机操作系统继续以确定与安全性事件相关联的威胁等级(动作406)。如在本文中所讨论的,主机操作系统被配置为通过将安全性事件中包括的信息与描述可接受的容器活动的策略信息进行比较来确定与安全性事件相关联的威胁等级。可替代地或另外地,安全性事件收集器被配置为分析多个安全性事件,以便从汇总的安全性事件中确定与恶意活动相关联的威胁等级。
接着,主机操作系统使用对与安全性事件相关联的威胁等级的确定来确定威胁等级是否满足针对恶意活动的威胁等级阈值(动作408)。如在本文中所讨论的,主机操作系统被配置为:如果威胁等级对应于定义禁止的容器活动的策略,则确定与至少一个安全性事件相关联的威胁等级满足威胁等级阈值。另外的地或可替代地,主机操作系统被配置为:如果威胁等级不对应于定义允许的容器活动的策略,则确定与至少一个安全性事件相关联的威胁等级满足威胁等级阈值。
响应于确定威胁等级不满足威胁等级阈值,主机操作系统允许应用继续访问资源(动作410)。以该方式,主机操作系统不干扰基于其无法满足威胁等级阈值而不被确定为构成威胁的容器活动。
响应于确定威胁等级满足针对恶意活动的威胁等级阈值,主机操作系统采取纠正动作(动作412)。根据一个或多个实施例,采取纠正动作包括隔离容器或资源以防止主机操作系统遭受潜在恶意活动。可替代地或另外地,采取纠正动作包括将恶意活动通知给至少一个不同的计算设备,以防止该不同的计算设备遭受潜在恶意活动。由此,主机操作系统被配置为保护其自身以及其他操作系统和/或计算设备两者免于遭受到类似的恶意活动。根据一个或多个实施例,过程400在企业或云服务中的中央计算设备的主机操作系统中被实现,以保护大量计算设备免受恶意活动的侵害。
在考虑了用于基于事件监视来管理容器的示例过程之后,现在考虑根据一个或多个实施例的用于监视隔离的容器中的事件的示例过程。
图5是示出了根据一个或多个实施例的用于监视隔离的容器中的事件的示例过程500的流程图。
过程500由诸如图1的主机操作系统102之类的主机操作系统执行,并且可以以软件、固件、硬件或其组合来实现。过程500被示出为一组动作,并且不限于所示的用于执行各种动作的操作的顺序。过程500是用于监视隔离的容器中的事件的示例过程;参考不同的附图,在本文中包括监视隔离的容器中的事件的其他讨论。
在过程500中,主机操作系统在与主机操作系统隔离的容器中运行应用(动作502)。通过在容器中运行应用,主机操作系统会将自身与容器内发生的任何潜在恶意活动隔离开。当应用在容器中运行时,主机操作系统监视容器活动(动作504)。如在本文中所描述的,容器活动是指由于应用的运行而发生的任何过程或操作。例如,容器活动可以包括对容器文件系统高速缓存的访问、对容器的注册表的访问、对容器内核的访问、对容器存储器的访问、在容器中运行另一个过程、对资源进行访问,等等。
主机操作系统从所监视的容器活动中检测应用对资源的访问(动作506)。如在本文中所描述的,应用对资源的访问可以包括访问远离实现主机操作系统的计算设备存储的网络资源,或者访问在实现主机操作系统的计算设备本地存储的资源。
响应于检测到应用对资源的访问,生成了描述由于应用对资源的访问而发生的恶意活动的安全性事件(动作508)。根据一个或多个实施例,主机操作系统将所有容器活动都视为恶意活动,因此,针对由于应用对资源的访问而发生的所有活动持续地生成安全性事件。根据一个或多个实现,安全性事件由与应用一起在容器中运行的容器事件管理器生成。可替代地,安全性事件可以由在与运行应用的容器不同的容器中运行的容器事件管理器生成。这使能实现对安全性事件的实时、一致的生成,所述安全性事件描述了由于应用访问资源而引起的所有活动。
接着,记录所生成的安全性事件(动作510)。根据一个或多个实施例,主机操作系统将安全性事件记录在在主机操作系统上本地实现的安全性事件收集器中。可替代地或另外地,主机操作系统被配置为在远离主机操作系统实现的位置处记录安全性事件,例如在另一个隔离的容器中,在云服务中,在远离实现主机操作系统的设备定位的设备中,等等。通过记录安全性事件,主机操作系统被配置为生成或补充描述容器活动的信息的存储库。接着,一个或多个设备可以使用该信息来保护软件和硬件,以使其免受无法识别的恶意活动的危害。
在记录安全性事件之后,对记录的安全性事件进行分析以确定恶意活动的威胁等级(动作512)。可以通过任何合适的设备来执行对记录的安全性事件的分析,例如,通过存储记录的安全性事件的设备,通过远离所记录的安全性事件的存储位置实现的设备,通过与运行应用的容器隔离的容器,通过云服务等等。根据一个或多个实施例,可以通过将所记录的安全性事件与其他类似的所记录的安全性事件进行比较以确定该安全性事件是否对应于该应用的预期行为范围之外的操作,来执行对所记录的安全性事件的分析。因此,通过添加更多所记录的安全性事件,可以改进分析以更准确地确定容器内发生的恶意活动的威胁等级。另外地,可以分析所记录的安全性事件以了解一段时间内的恶意模式。可以分析所记录的安全性事件的模式,以识别反复地生成满足给定威胁等级阈值的威胁等级的某些模式。例如,如果描述应用对特定网站的访问的安全性事件模式导致满足威胁等级阈值,则可以了解到该特定网站将不受信任。
响应于确定恶意活动的威胁等级满足威胁等级阈值,采取纠正动作以缓解恶意活动(动作514)。根据一个或多个实施例,采取纠正动作包括隔离容器或资源以防止主机操作系统遭受潜在恶意活动。可替代地或另外地,采取纠正动作包括将恶意活动通知给至少一个不同的计算设备,以防止该不同的计算设备遭受潜在恶意活动。由此,主机操作系统被配置为保护其自身以及其他操作系统和/或计算设备两者免于遭受到类似的恶意活动。根据一个或多个实施例,过程500在企业或云服务中的中央计算设备的主机操作系统中被实现,以保护大量计算设备免受恶意活动的侵害。
示例系统
尽管在本文中参考特定模块讨论了特定功能,但是应当注意的是,在本文中所讨论的个体模块的功能可以被分割成多个模块,和/或多个模块的至少一些功能可以被组合成单个模块。另外地,在本文中所讨论为执行动作的特定模块包括该特定模块自身执行该动作,或者可替代地,该特定模块调用或以其他方式访问执行该动作(或与该特定模块结合地执行该动作)的另一组件或模块。因此,特定模块执行动作包括特定模块本身执行动作和/或该特定模块调用或以其他方式访问的另一个模块执行动作。
图6在600处一般地示出了包括示例计算设备602的示例系统,其代表可以实现在本文中所描述的各种技术的一个或多个系统和/或设备。计算设备602可以是例如服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统、和/或任何其他合适的计算设备或计算系统。
如图所示的示例计算设备602包括处理系统604、一个或多个计算机可读介质606,以及彼此通信地耦合的一个或多个I/O接口608。尽管未示出,计算设备602还可以包括将各种组件彼此耦合的系统总线或其他数据和命令传输系统。系统总线可以包括不同的总线结构中的任何一个或组合,所述不同的总线结构例如存储器总线或存储器控制器、外围总线、通用串行总线、和/或使用多种总线架构中的任何一种的处理器或本地总线。还可以构想多种其他示例,例如,控制和数据线路。
处理系统604代表用于使用硬件来执行一个或多个操作的功能。从而,处理系统604被示出为包括可以被配置为处理器、功能块等的硬件元件610。这可以包括以硬件来作为专用集成电路或者使用一个或多个半导体形成的其他逻辑设备的实现。硬件元件610不由形成其的材料或者其中所采用的处理机制来限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(IC))构成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质606被示出为包括存储器/存储设备612。存储器/存储设备612表示与一个或多个计算机可读介质相关联的存储器/存储设备容量。存储器/存储设备612可以包括易失性介质(例如,随机存取存储器(RAM))和/或非易失性介质(例如,只读存储器(ROM)、闪速存储器、光盘、磁盘等)。存储器/存储设备612可以包括固定的介质(例如,RAM、ROM、固定的硬盘驱动器等)以及可移动介质(例如,闪速存储器、可移动硬盘驱动器、光盘等)。计算机可读介质606可以以如在下文中所进一步描述的多种其他的方式来配置。
一个或多个输入/输出接口608代表用于允许用户向计算设备602输入命令和信息,并且还允许利用各种输入/输出设备向用户和/或其他组件或设备呈现该信息的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置以对物理接触进行检测的电容或其他传感器)、相机(例如,可以采用可见或非可见波长(例如,红外频率)来检测运动不包含作为手势的触摸的)等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网络卡、触觉反应设备等。因此,计算设备602可以用如在下文中所进一步描述的多种方式被配置以支持用户交互。
计算设备602还包括支持隔离的容器事件监视614的主机操作系统。支持隔离的容器事件监视614的主机操作系统提供针对隔离的容器对事件监视的各种管理,如上所述。支持隔离的容器事件监视的主机操作系统614可以实现例如图1的主机操作系统102。
可以在本文中在软件、硬件元件、或程序模块的一般性的上下文中描述各种技术。通常而言,这样的模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、元件、组件、数据结构等。如在本文中所使用的术语“模块”、“功能”、和“组件”通常表示软件、固件、硬件、或其组合。在本文中所描述的技术的特征是与平台无关的,意思是可以在具有多种处理器的多种商业计算平台上实现这些技术。
所描述的模块和技术的实现可以存储在一些形式的计算机可读介质上或者跨一些形式的计算机可读介质传输。计算机可读介质可以包括可以由计算设备602访问的多种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”指的是与仅仅是信号传输、载波、或信号本身相反的支持信息的存储的介质和/或设备。计算机可读存储介质不包括信号承载介质、瞬时性信号、或信号本身。计算机可读存储介质包括以适合于存储信息(例如,计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其他数据)的方法或技术实现的硬件,例如易失性和非易失性、可移动和不可移动介质和/或存储设备。计算机可读存储介质的示例可以包括但不限于,RAM、ROM、EEPROM、闪速存储器、或者其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储、硬盘、盒式磁带、磁带、磁盘存储或其他磁存储设备、或者其他存储设备、有形的介质、或者适合于存储期望的信息并且可以由计算机访问的制品。
“计算机可读信号介质”可以指的是被配置以将指令传输(例如,经由网络)至计算机设备602的硬件的信号承载介质。通信介质通常可以实施计算机可读指令、数据结构、程序模块、或经调制的数据信号中的其他数据,例如,载波、数据信号、或其他传输机制。通信介质还包括任何信息传递介质。术语“经调制的数据信号”意指将其特征中的一个或多个以将信息编码在信号中的方式来设置或改变的信号。作为示例而非限制,通信介质包括有线介质(例如,有线网络或直接连接)和无线介质(例如,声学、射频(RF)、红外、和其他无线介质)。
如前所述,硬件元件610和计算机可读介质606代表以硬件形式实现的指令、模块、可编程设备逻辑和/或固定的设备逻辑,其可以在一些实施例中被采用以实现在本文中所描述的技术中的至少一些方面。硬件元件可以包括集成电路或片上系统的组件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)、以及硅或其他硬件设备中的其他实现。在该上下文中,硬件元件可以运行为执行由指令、模块、和/或逻辑所定义的程序任务的处理设备,所述指令、模块和/或逻辑由被使用以存储指令以用于执行的硬件元件以及硬件设备(例如,先前所描述的计算机可读存储介质)来实施。
也可以采用上述的组合来实现在本文中所描述的各种技术和模块。由此,软件、硬件、或程序模块和其他程序模块可以被实现为在某种形式的计算机可读存储介质上实施和/或由一个或多个硬件元件610实施的一个或多个指令和/或逻辑。计算设备602可以被配置为实现对应于软件和/或硬件模块的特定的指令和/或功能。由此,能够由计算设备602作为软件执行的模块作为模块的实现可以至少部分地以硬件(例如,通过对处理系统的计算机可读存储介质和/或硬件元件610的使用)来完成。指令和/或功能可以由制品(例如,一个或多个计算设备602和/或处理系统604)执行/操作以实现在本文中所描述的技术、模块、和示例。
如在图6中进一步示出的,当在个人计算机(PC)、电视设备、和/或移动设备上运行应用时,示例系统600支持针对无缝的用户体验的普遍的环境。对于当在使用应用程序、玩可视游戏、观看视频等的过程中从一个设备转移到下一个时的普通的用户体验而言,服务和应用在所有三种环境中大体相似地运行。
在示例系统600中,多个设备通过中央计算设备被互连。中央计算设备可以对于多个设备来说是本地的或者可以远程于多个设备。在一个实施例中,中央计算设备可以是通过网络、互联网、或其他数据通信链路连接至多个设备的一个或多个服务器计算机的云。
在一个或多个实施例中,该互连架构支持待跨多个设备而被传递以向多个设备的用户提供共同和无缝的体验的功能。多个设备中的每个都可以具有不同的物理要求和能力,并且中央计算设备使用平台以使能够将既针对该设备定制并且还对所有设备共同的体验传递至设备。在一个或多个实施例中,创建了一类目标设备,并且针对一般类型的设备来定制体验。可以由设备的物理特征、使用类型、或者其他共同的特性来定义一类设备。
在各种实现中,计算设备602可以假设多种不同的配置,例如,以供计算机616、移动618、以及电视机620使用。这些配置中的每个都包括可以具有一般不同结构和能力的设备,并且因此计算设备602可以根据不同的设备类中的一个或多个而被配置。例如,计算设备602可以被实现为设备的计算机616类,该类包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备602还可以被实现为设备的移动618类,该类包括移动设备,例如,移动电话、便携式音乐播放机、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备602还可以被实现为设备的电视620类,其包括具有或连接至随意查看环境中的通常较大的屏幕的设备的。这些设备包括电视、机顶盒、游戏机等。
在本文中所描述的技术可以由计算设备602的这些各种配置支持,并且不限于在本文中所描述的技术的具体的示例。该功能还可以全部或部分地通过对分布式系统的使用(例如,如在下文中所描述的通过经由平台624的“云”622)而被实现。
云622包括和/或代表资源626的平台624。平台624提取了云622的硬件(例如,服务器)和软件资源的基础功能。资源626可以包括当在远程于计算设备602的服务器上执行计算机处理时可以被使用的应用和/或数据。资源626还可以包括通过互联网和/或通过订阅者网络(例如,蜂窝或Wi-Fi网络)提供的服务。
平台624可以抽象化资源和功能以将计算设备602与其他计算设备连接。平台624还可用于对资源的缩放进行抽象,以提供相应等级的缩放以满足对通过平台624实现的资源626的需求。由此,在互连设备实施例中,本文所述功能的实现可遍及整个系统600。例如,该功能可以部分地在计算设备602上以及通过抽象化云622的功能的平台624来实现。应当注意,云622可以以无数配置形式布置。例如,云622可以被实现为单个云,实现为云622的多个实例(全都表现为单个云),或者利用被实现在云622之后并且表现为好像平台624的一个或多个实例在云中实现的平台624的一个或多个实例来实现。
在本文的讨论中,描述了各种不同的实施例。应当意识到并理解的是,本文描述的每个实施例可以单独使用或与本文描述的一个或多个其他实施例结合使用。本文讨论的技术的其他方面涉及以下实施例中的一个或多个。
一种方法,包括:检测由在与主机操作系统隔离的容器中运行的应用对资源的访问;以及在所述应用访问所述资源时监视所述容器中的应用活动;响应于检测到所述容器中的潜在恶意活动,生成安全性事件,该安全性事件包括描述所述潜在恶意活动的信息;以及分析所述安全性事件以确定与所述潜在恶意活动相关联的威胁等级。
作为上述方法中的任何一种的替代或补充,该方法中的任何一种或组合:该方法还包括将所生成的安全性事件发送到远离实现所述容器的主机计算设备的计算设备;其中,所述主机计算设备是计算设备企业内的计算设备,远程计算设备是所述计算设备企业的中央服务器;其中,所述潜在恶意活动包括对所述容器的注册表进行的未经授权的改变,对所述容器的配置文件进行的未经授权的改变,对实现该容器的计算设备的文件系统进行的未经授权的改变,或者容器内的应用过程的未经授权的启动;其中,安全性事件是由在容器中运行的容器事件管理器生成的,并且主机操作系统被配置为生成描述潜在恶意活动的不同的安全性事件,并将所述安全性事件与所述不同的安全性事件进行比较,以确定该容器事件管理器是否正常运作;所述方法还包括:生成多个安全性事件,所述多个安全性事件包括描述当所述应用访问所述资源时所述容器中的应用活动的信息;以及一起分析所述多个安全性事件,以确定与在所述应用访问所述资源时所述容器中的所述应用活动相关联的威胁等级;其中,潜在恶意活动包括要访问实现该容器的计算设备的存储器的未经授权的尝试;其中,潜在恶意活动包括容器中或实现该容器的计算设备中的未经授权的内核活动;其中,潜在恶意活动包括容器内的超出了容器中运行的应用的正常网络活动范围的网络活动;其中,该资源是网络资源或实现容器的设备所托管的共享资源;该方法还包括:响应于确定与潜在恶意活动相关联的威胁等级满足威胁等级阈值,阻止应用访问该资源;其中,该应用包括操作系统或web浏览器。
一种方法,包括:接收安全性事件,该安全性事件包括描述由于应用访问与主机操作系统隔离的容器中的资源而引起的潜在恶意活动的信息;确定与接收到的安全性事件相关联的威胁等级满足威胁等级阈值;以及;响应于确定与接收到的安全性事件相关联的威胁等级满足威胁等级阈值,采取纠正动作来缓解容器中的潜在恶意活动。
作为上述方法中的任何一种的替代或补充,以下任一项或组合:其中,接收到的安全性事件是作为安全性事件的模式来接收的,并且确定与接收到的安全性事件相关联的威胁等级满足威胁等级阈值包括将安全性事件模式与描述恶意安全性事件模式的策略进行比较;其中,采取纠正动作包括隔离容器以防止访问在容器外部实现的任何资源或数据存储库;其中,采取纠正动作包括:将资源添加至黑名单,以及将黑名单发送给至少一个计算设备,以保护至少一个计算设备免受潜在恶意活动侵害;其中,采取纠正动作包括隔离资源以防止应用进一步访问资源;其中,采取纠正动作包括终止容器,生成与主机操作系统隔离的第二容器,以及在第二容器中运行应用的第二实例;其中,采取纠正动作包括:在终止容器之前,生成描述所述容器中的应用和资源的当前状态的容器的快照。
一种设备,包括:一个或多个处理器;以及一个或多个计算机可读存储介质,其存储能够由一个或多个处理器执行以执行以下操作的计算机可读指令,所述操作包括:检测运行在与主机操作系统隔离的容器中的应用对资源的访问;以及在应用访问资源时监视容器中的活动;响应于检测到容器中的潜在恶意活动,生成安全性事件,该安全性事件包括描述潜在恶意活动的信息;分析安全性事件以确定与潜在恶意活动相关联的威胁等级;确定与所生成的安全性事件相关联的威胁等级满足威胁等级阈值;以及响应于确定与接收到的安全威胁相关联的威胁等级满足威胁等级阈值,采取纠正动作以缓解容器中的潜在恶意活动。
作为上述计算设备中的任何一个的替代或补充,所述操作中的任何一个或组合:所述操作还包括:将所生成的安全性事件发送到远离实现容器的设备的计算设备;其中,该设备是计算设备企业内部的计算设备,而远程计算设备是该计算设备企业的中央服务器;其中,潜在恶意活动包括对容器的注册表进行的未经授权的改变,对容器的配置文件的未经授权的改变,对实现该容器的设备的文件系统进行的未经授权的改变,或者对容器内的应用过程的未经授权的启动;其中,安全性事件是由在容器中运行的容器事件管理器生成的,并且主机操作系统配置为生成描述潜在恶意活动的不同的安全性事件,并且将所述安全性事件与所述不同的安全性事件进行比较,以确定该容器事件管理器是否正常运作;所述操作还包括:生成多个安全性事件,所述多个安全性事件包括描述当应用访问资源时容器中的应用活动的信息,以及一起分析多个安全性事件,以确定在应用访问资源时与容器中的应用活动相关联的威胁等级;其中,潜在恶意活动包括要访问实现该容器的设备的存储器的未经授权的尝试;其中,潜在恶意活动包括容器中或实现该容器的设备中的未经授权的内核活动;其中,潜在恶意活动包括容器内的超出了容器中运行的应用的正常网络活动范围的网络活动;其中,资源是网络资源或实现容器的设备所托管的共享资源;其中,该应用包括操作系统或web浏览器。
尽管已经用特定于结构特性和/或方法动作的语言描述了本主题,但应当理解的是,在所附权利要求中定义的主题不一定限于在上文中所描述的具体特征或动作。相反,在上文中所描述的具体特性和动作是作为实现权利要求和实施例的示例形式而公开的。

Claims (12)

1.一种用于通过在与主机操作系统隔离的容器中运行的应用来确定潜在恶意活动的威胁等级的方法,所述方法包括:
通过容器事件管理器,检测所述应用对资源的访问;
通过在所述应用访问所述资源时监视所述容器中的应用活动来检测所述潜在恶意活动;
响应于检测到所述容器中的所述潜在恶意活动,通过在所述容器中运行的容器事件管理器来生成安全性事件,所述安全性事件包括描述所述潜在恶意活动的信息;
通过主机操作系统,分析所述安全性事件以确定与所述潜在恶意活动相关联的威胁等级;
生成描述所述潜在恶意活动的不同的安全性事件;以及
将所述安全性事件与所述不同的安全性事件进行比较以确定所述容器事件管理器是否正确地运行。
2.根据权利要求1所述的方法,还包括将所述安全性事件发送至与实现所述容器的主机计算设备远离的远程计算设备。
3.根据权利要求2所述的方法,其中,所述主机计算设备是计算设备企业内的计算设备,并且所述远程计算设备是所述计算设备企业的中央服务器。
4.根据权利要求1所述的方法,其中,所述潜在恶意活动包括对所述容器的注册表进行的未经授权的改变、对所述容器的配置文件进行的未经授权的改变、对实现所述容器的计算设备的文件系统进行的未经授权的改变、或者所述容器内的应用过程的未经授权的启动。
5.根据权利要求1所述的方法,还包括:生成多个安全性事件,所述多个安全性事件包括描述在所述应用访问所述资源时所述容器中的应用活动的信息;以及一起分析所述多个安全性事件以确定与在所述应用访问所述资源时所述容器中的所述应用活动相关联的威胁等级。
6.根据权利要求1所述的方法,其中,所述潜在恶意活动包括要访问实现所述容器的计算设备的存储器的未经授权的尝试。
7.根据权利要求1所述的方法,其中,所述潜在恶意活动包括所述容器中或者实现所述容器的计算设备中的未经授权的内核活动。
8.根据权利要求1所述的方法,其中,所述潜在恶意活动包括所述容器内的、在所述容器中运行的所述应用的正常网络活动的范围之外的网络活动。
9.根据权利要求1所述的方法,其中,所述资源是网络资源或者由实现所述容器的设备托管的共享资源。
10.根据权利要求1所述的方法,还包括:响应于确定与所述潜在恶意活动相关联的威胁等级满足威胁等级阈值,阻止所述应用访问所述资源。
11.根据权利要求1所述的方法,其中,所述应用包括操作系统或网络浏览器。
12.一种具有记录在其上的程序代码的计算机可读存储器设备,所述程序代码当由至少一个处理器运行时使得所述至少一个处理器执行用于通过在与主机操作系统隔离的容器中运行的应用来确定潜在恶意活动的威胁等级的操作,所述操作包括:
通过容器事件管理器,检测所述应用对资源的访问;
在所述应用访问所述资源时监视所述容器中的应用活动,以检测所述潜在恶意活动;
响应于检测到所述容器中的所述潜在恶意活动,通过在所述容器中运行的容器事件管理器来生成安全性事件,所述安全性事件包括描述所述潜在恶意活动的信息;
通过主机操作系统,分析所述安全性事件以确定与所述潜在恶意活动相关联的威胁等级;
生成描述所述潜在恶意活动的不同的安全性事件;以及
将所述安全性事件与所述不同的安全性事件进行比较以确定所述容器事件管理器是否正确地运行。
CN201880033637.7A 2017-05-22 2018-04-24 隔离的容器事件监视 Active CN110651269B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/601,759 2017-05-22
US15/601,759 US10885189B2 (en) 2017-05-22 2017-05-22 Isolated container event monitoring
PCT/US2018/028979 WO2018217368A1 (en) 2017-05-22 2018-04-24 Isolated container event monitoring

Publications (2)

Publication Number Publication Date
CN110651269A CN110651269A (zh) 2020-01-03
CN110651269B true CN110651269B (zh) 2023-09-05

Family

ID=62196704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880033637.7A Active CN110651269B (zh) 2017-05-22 2018-04-24 隔离的容器事件监视

Country Status (4)

Country Link
US (1) US10885189B2 (zh)
EP (1) EP3610403B1 (zh)
CN (1) CN110651269B (zh)
WO (1) WO2018217368A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10699003B2 (en) * 2017-01-23 2020-06-30 Hysolate Ltd. Virtual air-gapped endpoint, and methods thereof
US10880248B2 (en) * 2017-06-06 2020-12-29 Cisco Technology, Inc. Orchestrator agnostic application container visibility
US11669426B2 (en) * 2017-06-30 2023-06-06 International Business Machines Corporation Kernel-based power consumption and isolation and defense against emerging power attacks
US10382468B2 (en) * 2017-07-03 2019-08-13 Juniper Networks, Inc. Malware identification via secondary file analysis
US10659432B2 (en) * 2017-07-06 2020-05-19 Crowdstrike, Inc. Network containment of compromised machines
US10803177B2 (en) * 2017-07-19 2020-10-13 International Business Machines Corporation Compliance-aware runtime generation based on application patterns and risk assessment
US10565092B2 (en) * 2017-10-06 2020-02-18 Red Hat, Inc. Enabling attributes for containerization of applications
US10951651B1 (en) * 2017-10-30 2021-03-16 EMC IP Holding Company LLC Container life cycle management with retention rate adjustment based on detected anomalies
US10664592B2 (en) * 2018-03-22 2020-05-26 International Business Machines Corporation Method and system to securely run applications using containers
US11132293B2 (en) * 2018-04-10 2021-09-28 Red Hat Israel, Ltd. Intelligent garbage collector for containers
US10970396B2 (en) 2018-06-20 2021-04-06 Malwarebytes Inc. Intelligent event collection for rolling back an endpoint state in response to malware
US10922411B2 (en) * 2018-06-20 2021-02-16 Malwarebytes Inc. Intelligent event collection for cloud-based malware detection
US10924478B2 (en) * 2018-07-02 2021-02-16 Paypal, Inc. Identification based on snapshot of device memory
US11656924B2 (en) * 2018-08-03 2023-05-23 Samsung Electronics Co., Ltd. System and method for dynamic volume management
US11106784B2 (en) 2018-10-09 2021-08-31 NeuVector, Inc. Vertically integrated automatic threat level determination for containers and hosts in a containerization environment
EP3647980B1 (en) * 2018-10-30 2022-01-19 Hewlett-Packard Development Company, L.P. Response to an intrusion against a service of an operating system
US11108831B2 (en) * 2019-01-04 2021-08-31 Vmware, Inc. Machine policy configuration for managed devices
US11616787B1 (en) * 2019-06-28 2023-03-28 Amazon Technologies, Inc. Mechanism to manage group of resources using virtual resource containers
US11544091B2 (en) * 2019-07-08 2023-01-03 Hewlett Packard Enterprise Development Lp Determining and implementing recovery actions for containers to recover the containers from failures
US11256785B2 (en) * 2019-07-09 2022-02-22 Microsoft Technologly Licensing, LLC Using secure memory enclaves from the context of process containers
US11354145B2 (en) 2019-08-28 2022-06-07 International Business Machines Corporation Creating process fingerprints based on virtualized containers for determining software product usage
US11093610B2 (en) * 2019-09-11 2021-08-17 International Business Machines Corporation Mitigating threats to container-based workloads
US20220092180A1 (en) * 2019-11-22 2022-03-24 Pure Storage, Inc. Host-Driven Threat Detection-Based Protection of Storage Elements within a Storage System
US11601461B2 (en) * 2020-01-13 2023-03-07 Vmware, Inc. Risk-based cloud profile management for VDI in the cloud
US11328057B2 (en) * 2020-01-23 2022-05-10 Vmware, Inc. Detection of malicious data in a containerized environment
US12001542B1 (en) * 2020-01-31 2024-06-04 United Services Automobile Association (Usaa) Incident response for containers and serverless functions
US11477215B2 (en) * 2020-03-13 2022-10-18 International Business Machines Corporation Scaling a processing resource of a security information and event management system
US11880461B2 (en) * 2020-06-22 2024-01-23 Bank Of America Corporation Application interface based system for isolated access and analysis of suspicious code in a computing environment
US11269991B2 (en) * 2020-06-22 2022-03-08 Bank Of America Corporation System for identifying suspicious code in an isolated computing environment based on code characteristics
US11636203B2 (en) 2020-06-22 2023-04-25 Bank Of America Corporation System for isolated access and analysis of suspicious code in a disposable computing environment
US11797669B2 (en) 2020-06-22 2023-10-24 Bank Of America Corporation System for isolated access and analysis of suspicious code in a computing environment
US11574056B2 (en) * 2020-06-26 2023-02-07 Bank Of America Corporation System for identifying suspicious code embedded in a file in an isolated computing environment
US11507437B2 (en) * 2020-07-23 2022-11-22 Tracelink Inc. Deploying multiple different applications into a single short-lived container along with a master runtime
US20220300330A1 (en) * 2021-03-16 2022-09-22 Cisco Technology, Inc. Runtime Container Protection
US11989308B2 (en) * 2021-05-27 2024-05-21 EMC IP Holding Company LLC Method to intelligently manage the end to end container compliance in cloud environments
US12086262B2 (en) * 2021-07-28 2024-09-10 Red Hat, Inc. Secure container image builds
US12039324B2 (en) * 2022-04-22 2024-07-16 Sap Se High-performance computer system and method for improved software event management
US20230359751A1 (en) * 2022-05-09 2023-11-09 International Business Machines Corporation Safety-measure centric temporal containers for real-time creation during a digital meeting
US20240037229A1 (en) * 2022-07-28 2024-02-01 Pure Storage, Inc. Monitoring for Security Threats in a Container System

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102160048A (zh) * 2008-09-22 2011-08-17 微软公司 收集和分析恶意软件数据
US8205257B1 (en) * 2009-07-28 2012-06-19 Symantec Corporation Systems and methods for preventing threats originating from a non-process based component hosted by a trusted process
CN102930210A (zh) * 2012-10-14 2013-02-13 江苏金陵科技集团公司 恶意程序行为自动化分析、检测与分类系统及方法
WO2013164821A2 (en) * 2012-05-03 2013-11-07 Shine Security Ltd. Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention
CN104573507A (zh) * 2015-02-05 2015-04-29 浪潮电子信息产业股份有限公司 一种安全容器及其设计方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114672A1 (en) * 2003-11-20 2005-05-26 Encryptx Corporation Data rights management of digital information in a portable software permission wrapper
WO2007048062A2 (en) 2005-10-21 2007-04-26 Vir2Us, Inc. Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
WO2007147495A2 (en) * 2006-06-21 2007-12-27 Wibu-Systems Ag Method and system for intrusion detection
US8613080B2 (en) * 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US8010763B2 (en) 2007-08-02 2011-08-30 International Business Machines Corporation Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
US8220029B2 (en) 2007-11-13 2012-07-10 Samsung Electronics Co., Ltd. Method and system for enforcing trusted computing policies in a hypervisor security module architecture
DE112009002168A5 (de) * 2008-09-09 2012-03-15 Kace Networks, Inc. Auslieferung und Management von virtuellen Containern
US9098698B2 (en) * 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8352941B1 (en) 2009-06-29 2013-01-08 Emc Corporation Scalable and secure high-level storage access for cloud computing platforms
WO2011127488A2 (en) 2010-04-08 2011-10-13 Lynux Works, Inc. Systems and methods of processing data associated with detection and/or handling of malware
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
US9141458B2 (en) * 2011-05-09 2015-09-22 Cleversafe, Inc. Adjusting a data storage address mapping in a maintenance free storage container
US8713378B2 (en) * 2011-07-07 2014-04-29 Microsoft Corporation Health monitoring of applications in a guest partition
CN102254120B (zh) * 2011-08-09 2014-05-21 华为数字技术(成都)有限公司 恶意代码的检测方法、系统及相关装置
US8850512B2 (en) * 2011-10-13 2014-09-30 Mcafee, Inc. Security assessment of virtual machine environments
WO2013082437A1 (en) * 2011-12-02 2013-06-06 Invincia, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
US9069766B2 (en) * 2012-11-02 2015-06-30 Microsoft Technology Licensing, Llc Content-based isolation for computing device security
US8990944B1 (en) * 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US10075470B2 (en) * 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
WO2015072004A1 (ja) * 2013-11-15 2015-05-21 株式会社日立製作所 計算機、計算機制御方法、および計算機制御プログラム
US9825908B2 (en) 2013-12-11 2017-11-21 At&T Intellectual Property I, L.P. System and method to monitor and manage imperfect or compromised software
US9268935B2 (en) * 2014-02-24 2016-02-23 Ca, Inc. Smart containerization of mobile computing device resources
US9442752B1 (en) 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US9246690B1 (en) 2014-09-03 2016-01-26 Amazon Technologies, Inc. Secure execution environment services
US10944764B2 (en) * 2015-02-13 2021-03-09 Fisher-Rosemount Systems, Inc. Security event detection through virtual machine introspection
US10135861B2 (en) 2015-10-20 2018-11-20 Sophos Limited Mitigation of anti-sandbox malware techniques
US20170322824A1 (en) * 2016-05-05 2017-11-09 Microsoft Technology Licensing, Llc Cloning Computing Device Containers
EP3267349A1 (en) * 2016-07-04 2018-01-10 Cyan Security Group GmbH Method and computer system for determining a threat score
US20180027009A1 (en) * 2016-07-20 2018-01-25 Cisco Technology, Inc. Automated container security
US10460113B2 (en) * 2016-08-16 2019-10-29 International Business Machines Corporation Security fix of a container in a virtual machine environment
US10534909B2 (en) * 2017-03-02 2020-01-14 Fortinet, Inc. Multi-tiered sandbox based network threat detection
US10698714B2 (en) * 2017-04-07 2020-06-30 Nicira, Inc. Application/context-based management of virtual networks using customizable workflows
US10503895B2 (en) * 2017-04-11 2019-12-10 Red Hat, Inc. Runtime non-intrusive container security introspection and remediation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102160048A (zh) * 2008-09-22 2011-08-17 微软公司 收集和分析恶意软件数据
US8205257B1 (en) * 2009-07-28 2012-06-19 Symantec Corporation Systems and methods for preventing threats originating from a non-process based component hosted by a trusted process
WO2013164821A2 (en) * 2012-05-03 2013-11-07 Shine Security Ltd. Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention
CN102930210A (zh) * 2012-10-14 2013-02-13 江苏金陵科技集团公司 恶意程序行为自动化分析、检测与分类系统及方法
CN104573507A (zh) * 2015-02-05 2015-04-29 浪潮电子信息产业股份有限公司 一种安全容器及其设计方法

Also Published As

Publication number Publication date
EP3610403A1 (en) 2020-02-19
CN110651269A (zh) 2020-01-03
US10885189B2 (en) 2021-01-05
EP3610403B1 (en) 2022-09-14
WO2018217368A1 (en) 2018-11-29
US20180336351A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
CN110651269B (zh) 隔离的容器事件监视
CN109923522B (zh) 匿名容器
CN110168504B (zh) 虚拟环境中服务的分发和管理
CN109196505B (zh) 基于硬件的虚拟化安全隔离
US10776485B2 (en) Virtual machine security
US10003547B2 (en) Monitoring computer process resource usage
EP3289515B1 (en) Systems and methods for evaluating content provided to users via user interfaces
US7591002B2 (en) Conditional activation of security policies
US20220070206A1 (en) Secure device selection based on sensitive content detection
US7707619B2 (en) Method and system for troubleshooting when a program is adversely impacted by a security policy
US11706251B2 (en) Simulating user interactions for malware analysis
US9147066B1 (en) Systems and methods for providing controls for application behavior
CN116584086A (zh) 远程浏览器隔离系统中的内联文件下载控制
US12086233B2 (en) Lifecycle management of secrets on serverless platform
US11722566B2 (en) Propagating origin information for applications during application installation
US20170223056A1 (en) Securing internal services in an appliance
US9773108B1 (en) Systems and methods for performing operations on restricted mobile computing platforms
KR101397431B1 (ko) 격리된 실행 환경 제공 시스템 및 그 방법

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