CN109196505B - 基于硬件的虚拟化安全隔离 - Google Patents

基于硬件的虚拟化安全隔离 Download PDF

Info

Publication number
CN109196505B
CN109196505B CN201780033267.2A CN201780033267A CN109196505B CN 109196505 B CN109196505 B CN 109196505B CN 201780033267 A CN201780033267 A CN 201780033267A CN 109196505 B CN109196505 B CN 109196505B
Authority
CN
China
Prior art keywords
container
operating system
network
host operating
network resource
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
CN201780033267.2A
Other languages
English (en)
Other versions
CN109196505A (zh
Inventor
N·N·帕伊
C·G·杰弗里斯
G·维斯瓦纳坦
B·M·舒尔茨
F·J·史密斯
L·鲁瑟
M·B·埃伯索尔
G·迪亚兹奎利亚尔
I·D·帕绍夫
P·R·加德奥苏尔
H·R·普拉帕卡
V·M·拉奥
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 CN109196505A publication Critical patent/CN109196505A/zh
Application granted granted Critical
Publication of CN109196505B publication Critical patent/CN109196505B/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

在计算设备上运行的主机操作系统监测所述计算设备的网络通信,以识别由所述计算设备请求的网络资源。所述主机操作系统将所请求的网络资源与安全策略进行比较,以确定所请求的网络资源是否受信任。当识别出不受信任的网络资源时,所述主机操作系统使用本文中讨论的技术在与所述主机操作系统内核相隔离的容器内访问不受信任的网络资源。通过将对不受信任的网络资源的访问限制到隔离的容器,所述主机操作系统被保护免受可能由不受信任的网络资源引起的甚至内核级攻击或感染。

Description

基于硬件的虚拟化安全隔离
背景技术
当用户浏览互联网到不受信任的网站或当他们下载或打开不受信任的网络资源(如应用和文档)时,通常会发生计算设备感染。这些感染允许攻击者窃取用户的凭证,甚至可以控制计算设备,将其改用于攻击者自己的目的。虽然用于抵抗这些内核级攻击的一种解决方案是关闭对计算设备的网络访问,但这严重限制了许多现代计算设备的功能。另外,在工作场所环境中,禁用网络访问会妨碍雇员的工作效率和工作满意度。作为妥协,许多雇主通过防止雇员访问不受信任的网络资源来实现有限的网络访问。然而,这种有限的网络访问导致雇主的管理成本增加,这是因为雇主必须不断更新定义哪些网络资源是不受信任的策略。这可能导致用户和雇主二者都对计算设备的使用感到沮丧。
发明内容
提供本发明内容以便以简化的形式对下面在具体实施方式中进一步描述的构思的选择进行介绍。本发明内容并不旨在标识要求保护的主题的关键特征或重要特征,也不旨在用于限制要求保护的主题的范围。
根据一个或多个方面,应用在主机操作系统中运行。响应于检测到所述应用正在尝试访问网络资源,所述主机操作系统确定所述网络资源是受信任的网络资源还是不受信任的网络资源。响应于确定所述网络资源是不受信任的网络资源,所述主机操作系统激活与所述主机操作系统相隔离并被配置为运行容器内的所述应用的版本的容器。然后所述主机操作系统允许在所述容器中运行的所述应用的所述版本访问所述不受信任的网络资源。
根据一个或多个方面,检测到主机操作系统的启动。响应于检测到所述主机操作系统的启动,确定所述主机操作系统是否包括容器基础映像(base image)。如本文所讨论的,容器基础映像指的是所述主机操作系统的版本、补丁级别和配置的接近副本。响应于确定所述主机操作系统不包括容器基础映像,创建容器基础映像。在创建了容器基础映像之后,检测到用户登录到所述主机操作系统。响应于检测到所述用户登录到所述主机操作系统,激活与所述容器基础映像相对应的容器,并且暂停所激活的容器。响应于检测到对不受信任的网络资源的访问,恢复被暂停的容器并允许所恢复的容器访问不受信任的网络资源。
根据一个或多个方面,网络应用在设备的主机操作系统上运行。如本文中所讨论的,网络应用被配置为:访问远离运行所述主机操作系统的设备存储的一个或多个网络资源。响应于检测到所述网络应用正在访问网络资源,通过将所述网络资源与从远离所述设备的管理和监测服务接收的策略进行比较来确定所述网络资源是不受信任的资源。响应于确定所述网络资源是不受信任的网络资源,所述主机操作系统激活被配置为运行所述网络应用的版本并与所述主机操作系统相隔离的容器。在所述容器被激活之后,所述主机操作系统允许在所述容器中运行的所述网络应用的所述版本访问所述不受信任的网络资源。所述主机操作系统允许在所述容器中运行的所述网络应用的所述版本访问另外的不受信任的网络资源,以及防止在所述容器中运行的所述网络应用的所述版本访问受信任的网络资源。
附图说明
参考附图描述了具体实施方式。在附图中,附图标记的最左边的数字标识该附图标记首次出现的附图。相同的附图标记在描述和附图中的不同实例中的使用可以指示相似或相同的项目。附图中表示的实体可以指示一个或多个实体,因此可以在讨论中对单个或多个形式的实体进行互换地引用。
图1根据一个或多个实施例示出了实现基于硬件的虚拟化安全隔离的示例系统。
图2根据一个或多个实施例示出了用于基于硬件的虚拟化安全隔离的示例系统架构。
图3是根据一个或多个实施例示出用于实现基于硬件的虚拟化安全隔离的示例过程的流程图。
图4是根据一个或多个实施例示出用于激活用于基于硬件的虚拟化安全隔离的容器的示例过程的流程图。
图5是根据一个或多个实施例示出用于管理用于基于硬件的虚拟化安全隔离的容器的示例过程的流程图。
图6是根据一个或多个实施例示出用于实现基于硬件的虚拟化安全隔离的示例过程的流程图。
图7示出了包括表示可以实现本文中描述的各种技术的一个或多个系统和/或设备的示例计算设备的示例系统。
具体实施方式
本文中讨论了基于硬件的虚拟化安全隔离。在计算设备上运行的操作系统(在本文中也被称为在主机设备上运行的主机操作系统)使用容器进行硬件资源划分。与许多基于虚拟机或沙盒方法相反,使用容器结合本文描述的基于硬件的虚拟化安全隔离技术通过将网络浏览器、相关应用以及操作系统组件(如内核、文件系统和网络)与不受信任的网络资源隔离来保护计算设备免受攻击。通过一个或多个操作系统过滤器和策略管理器来实施和监测对不受信任的网络资源的隔离。以这种方式,当主机设备请求访问不受信任的网络资源时,主机设备包含提供与主机操作系统的完全内核隔离的一个或多个容器内的不受信任的网络资源。如本文所讨论的,网络资源指的是主机设备可以经由网络访问的位置(例如,设备的位置或数据驻留的位置),以及由这些位置中的一个或多个位置提供的数据、可执行文件或网络连接中的一者或多者。例如,网络资源可以是文件、应用、电子邮件、文档、统一资源定位符(URL)、互联网协议(IP)地址、传输控制协议(TCP)端口、域名系统(DNS)名称、数据存储、硬件设备或者它们的组合。受信任的网络资源指的是信任其不具有恶意软件或被恶意用户使用,并且由主机设备的一个或多个策略识别的网络资源。不受信任的网络资源指的是不受信任的网络资源(例如,可能具有恶意软件或被恶意用户使用)。
为了保护主机设备免受恶意攻击,使用策略来定义受信任的网络资源的枚举列表。在企业的多个用户被连接并共享对公共企业数据和/或网络的访问的企业环境中,该策略可以由企业的管理员定义,以确保各个用户以及企业的共享数据和网络仍然受到保护。当主机设备的用户请求访问网络资源时,将所请求的网络资源与策略进行比较,以确定所请求的网络资源是否是受信任的网络资源。如果策略指示所请求的网络资源是受信任的网络资源,则本文中描述的基于硬件的虚拟化安全隔离技术允许受信任的网络资源被主机操作系统访问。通过限制主机设备的一个或多个网络通信对不受信任的网络资源的访问,可以进一步利用该策略来隔离实现本文中描述的虚拟化安全隔离技术的计算设备的网络接口。例如,如果主机设备支持无线局域网(WLAN)通信、移动宽带通信、拨号连接、虚拟专用网络(VPN)连接以及直接连接(如串行布线、直接布线或红外链路),则与不受信任的网络资源有关的网络通信可以限于WLAN通信。
当所请求的网络资源未被策略定义为受信任的网络资源时,所请求的网络资源被确定为是不受信任的。响应于确定网络资源是不受信任的,本文中描述的基于硬件的虚拟化安全隔离技术激活与主机操作系统相隔离的容器。然后从容器访问不受信任的网络资源,以便隔离与不受信任的网络资源相关联的任何危险活动。由于隔离,由不受信任的网络资源导致的任何恶意内容或攻击都将无法冲破容器来感染主机操作系统。本文中描述的基于硬件的虚拟化安全隔离技术还被配置为:监测容器内的活动以确保容器不能访问任何受信任的网络资源。
因此,通过激活容器以访问不受信任的网络资源,本文描述的基于硬件的虚拟化安全隔离技术创建操作系统或包含的运行时环境的两个或更多个分开的实例,每个实例都具有网络连接。通过监测在这些包含的运行时环境内执行的数据和操作,本文描述的基于硬件的虚拟化安全隔离技术被配置为:防止任何不受信任的网络资源被主机操作系统访问。本文描述的基于硬件的虚拟化安全隔离技术另外使得主机系统能够扫描和共享来自安全主机操作系统的DNS以及超文本传输协议(HTTP)信息,以改善隔离的容器中的一个或多个隔离的容器内的网络浏览性能或其他网络活动。
本文描述的基于硬件的虚拟化安全隔离技术另外允许主机操作系统隔离地下载和访问文件,例如在与主机操作系统的内核分开的一个或多个容器中。这允许主机操作系统扫描对各个网络资源(如文件、应用、网站等)进行扫描,以确定与扫描的网络资源中的各个网络资源相关联的风险级别。
本文讨论的基于硬件的虚拟化安全隔离技术还被配置为:节省主机设备的系统资源。例如,当容器内的一个或多个不受信任的网络资源不活动时,容器仍然可以对系统资源(例如,存储器)施加压力并影响在主机设备上运行的竞争这些资源的任何其他容器或过程的性能。因此,通过监测各个容器内的活动,本文描述的基于硬件的虚拟化安全隔离技术被配置为:暂停或重置各个容器,以便在容器内的不受信任的网络资源不活动时减小容器对主机设备资源施加的压力。可以保留被暂停的容器内的任何一个或多个网络资源的状态,使得用户可以快速返回以便与被暂停的容器内的一个或多个不受信任的网络资源进行交互。
响应于触发事件(如当主机设备的用户注销时),本文描述的基于硬件的虚拟化安全隔离技术丢弃容器和与其相关联的所有数据。以这种方式,容器可能被一个或多个不受信任的网络资源破坏,而对主机设备的操作系统没有任何负面影响。
基于硬件的虚拟化安全隔离系统
图1根据一个或多个实施例示出了实现基于硬件的虚拟化安全隔离的示例系统100。系统100至少部分由主机设备实现。可以使用各种不同类型的计算设备中的任何一种计算设备来实现系统100,这些计算设备例如服务器计算机、桌面式计算机、膝上型计算机或上网本计算机、移动设备(例如,平板电脑或平板设备、蜂窝电话或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、头戴式显示器、手表、手镯、虚拟现实眼镜或耳机、增强现实耳机或眼镜)、娱乐设备(例如,娱乐电器、通信地耦合到显示设备的机顶盒、游戏控制台)、物联网(IoT)设备(例如,具有允许与其他设备通信的软件、固件和/或硬件的对象或物体)、电视或其他显示设备、汽车计算机等等。因此,实现系统100的计算设备的范围可以从具有大量存储器和处理器资源的完整资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如,传统机顶盒、手持游戏控制台)。
系统100包括主机操作系统102、管理和监测服务104以及网络代理106。管理和监测服务104表示为实现主机操作系统102的计算设备提供一个或多个管理策略的服务,如本文所讨论的。网络代理106表示控制对从实现主机操作系统102的计算设备远程访问的一个或多个网络资源122(1)、......、122(m)的访问的功能。例如,在一个或多个实施例中,网络代理106通过要求来自主机操作系统102的认证来控制对从网络108访问的一个或多个资源的访问,如下文进一步详细讨论的。替代地,在一个或多个实施例中,实现主机操作系统102的计算设备经由网络108独立于网络代理访问网络资源。网络108表示数据网络(如互联网、局域网(LAN)、公共电话网络、内联网、其他公共和/或专有网络,它们的组合等等)的功能。如此,经由网络108访问的网络资源122(1)、......、122(m)可以包括网站、网络应用、电子邮件、文档等等。
在一个或多个实施例中,主机操作系统102、管理和监测服务104以及网络代理106被实现为相同计算设备的一部分。替代地,管理和监测服务104和/或网络代理106的至少一部分可以在与实现主机操作系统102的设备分开且远离的设备上实现。例如,在一个或多个实施例中,管理和监测服务104被实现为远离实现主机操作系统102的计算设备的移动设备管理(MDM)服务。替代地或另外地,管理和监测服务104可以被实现为远离实现主机操作系统102的计算设备的轻量级目录访问协议(LDAP)服务器。类似地,网络代理106可以远离实现主机操作系统102的设备来实现。
管理和监测服务104被配置为向主机操作系统102提供(例如,推送)策略。在一个或多个实施例中,管理和监测服务104被配置为:以规则的间隔(如在系统启动时、每天等)向主机操作系统102推送策略。替代地,管理和监测服务104可以被配置为:每当存在对主机操作系统的策略的更新时向主机操作系统102推送策略。虽然本文中参考了被推送到主机操作系统102的策略,但是管理和监测服务104被配置为:经由任何合适的数据传输方法(例如,流式传输)向主机操作系统提供策略。替代地,在一个或多个实施例中,主机操作系统102被配置为:从管理和监测服务104获得(例如,拉取)策略。管理和监测服务104具有两种作用。首先,管理和监测服务104接收通常可由主机操作系统102的用户访问的各个网络资源122(1)、......、122(m)的管理配置。在一个或多个实施例中,这些网络资源与各个信任级别相关联。例如,雇主可以将与雇主的网站相关联的任何网络资源定义为具有高信任级别。因此,主机操作系统102的策略指示与雇主的网站相关联的任何网络资源都是受信任的网络资源。管理和监测服务104的第二个作用是从主机操作系统102接收关于与各个网络资源相关联的被监测活动的反馈,并将该被监测信息编译成给管理员的报告。管理员可以使用该编译的报告来更新与主机操作系统102的受信任的网络资源有关的策略。
管理和监测服务104可以被配置为:从实现主机操作系统102的设备的管理员接收策略配置数据。如本文所讨论的,策略描述了与受信任的网络资源(例如,受信任的网站、受信任的网络位置、受信任的网络等等)有关的信息。当管理和监测服务104从管理员接收到策略时,管理和监测服务104被配置为:向目标计算设备集合发送策略更新。根据一个或多个实施例,管理和监测服务104向其发送策略更新的目标计算设备集合由管理员来定义。例如,在如上文讨论的企业环境中,管理和监测服务104被配置为向与企业相关联的每个计算设备发送策略更新。接收到策略更新的每个计算设备被配置为在尝试访问网络资源时对策略进行本地存储以供使用。
如下面进一步详细讨论的,实现主机操作系统102的计算设备被配置为:动态地监测与所访问的网络资源122(1)、......、122(m)相关联的活动。与网络资源相关联的所监测的活动在主机操作系统102处被本地更新,并传送回管理和监测服务104。以这种方式,可以不断更新管理和监测服务104,以向主机操作系统102的用户提供受信任的网络资源的准确列表。
主机操作系统102还包括基于硬件的虚拟化安全隔离(HVSI)子系统110、策略管理器112、一个或多个应用114、网络过滤器116、容器管理器118和安全子系统120。主机操作系统102还管理一个或多个容器,示为多个(n)容器130(1)、......、130(n)。
HVSI子系统110表示用于调用网络隔离查询应用编程接口(API)以确定所请求的网络资源是否是受信任的功能单元。这些网络隔离查询API由例如策略管理器112显露。如果HVSI子系统110确定所请求的网络资源是受信任的,则HVSI子系统110允许所请求的网络资源被主机操作系统102访问。替代地,如果HVSI子系统110确定所请求的网络资源不受信任,则HVSI子系统110使主机操作系统102激活容器130(1)、......、130(n)中的一个或多个容器,并允许一个或多个激活的容器来访问不受信任的网络资源。HVSI子系统110的功能将在下面进一步详细讨论。根据一个或多个实施例,HVSI子系统110通过与策略管理器112通信来确定所请求的网络资源是否是受信任的。
策略管理器112表示用于获得并存储实现主机操作系统102的计算设备的一个或多个策略的功能单元。例如,在一个或多个实施例中,策略管理器112获得并存储定义用于主机操作系统102的一个或多个受信任的网络资源的一个或多个管理策略。根据一种或多种实施方式,策略管理器112从管理和监测服务104获得并存储管理策略。替代地或另外地,策略管理器112从远程源(如从网络108)获得并存储一个或多个管理策略。另外地或替代地,策略管理器112从实现主机操作系统102的设备的用户接收并存储一个或多个管理策略。
应用114包括可由实现主机操作系统102的计算设备的一个或多个处理器执行的一个或多个应用。例如,应用114可以包括网络浏览器应用。替代地或另外地,应用114可以包括诸如电子邮件应用、文字处理应用、电子表格应用、视觉呈现应用等的应用。
网络过滤器116表示用于将实现主机操作系统102的设备连接到网络(如网络108)的功能单元。网络过滤器116包括至少一个物理网络接口卡和至少一个主机虚拟网络接口卡。网络过滤器116另外包括过滤器驱动器,其被配置为:在所请求的网络资源从网络108向主机操作系统102发送时对所请求的网络资源进行拦截。然后,HVSI子系统110将这些被拦截的网络资源与存储在策略管理器112中的一个或多个策略进行比较。以这种方式,网络过滤器116确保防止主机操作系统102访问任何不受信任的网络资源。类似地,网络过滤器116确保容器130(1)、......、130(n)中的一个或多个容器无法访问任何受信任的网络资源。例如,在一个或多个实施例中,网络过滤器116被配置为:改变与受信任的网络资源的各个分组相关联的数据,以确保受信任的网络资源仅被主机操作系统102访问,并且防止被容器130(1)、......、130(n)中的一个或多个容器中的任何一个容器访问。
主机操作系统102另外包括容器管理器118。容器管理器118管理对系统100中的容器130(1)、......、130(n)的调度,并确定在什么时候在主机操作系统102上运行哪些容器130(1)、......、130(n)。容器管理器118还负责针对系统100的个体用户激活一个或多个容器130(1)、......、130(n),并确保系统100的其他用户不能访问为该个体用户创建的一个或多个容器130(1)、......、130(n)。容器管理器118还被配置为:从任何一个或多个创建的容器130(1)、......、130(n)收集用于遥测和安全指示符的日志和踪迹。例如,在一个或多个实施例中,容器管理器118咨询安装在主机操作系统102上的防病毒应用来解释所收集的信息并向HVSI子系统110提供所监测的数据。取决于运行主机操作系统102的计算设备中的物理处理器和/或处理器内核的数量,可以一次运行单个容器130(1)、......、130(n)(例如,在具有单个内核的单个处理器的情况下),或者替代地,可以同时运行多个容器130(1)、......、130(n)(例如,在多个处理器和/或多个处理器内核的情况下)。另外,在一个或多个实施例中,容器管理器118被配置为:监测在容器130(1)、......、130(n)中的一个或多个容器内执行的用户配置变化。例如,容器管理器118被配置为:检测与在容器130(1)、......、130(n)中的一个容器中访问的网站相关联的用户偏好的变化。主机操作系统102被配置为:使用容器中的这些检测到的变化并将它们应用于在主机操作系统中访问的一个或多个相关网站。
安全子系统120表示用于在主机操作系统102上实施安全策略的功能单元。安全子系统120被配置为:验证登录到实现主机操作系统102的设备的用户、处理登录用户的密码变化、创建针对登录用户的访问令牌等等。
每个容器130(1)、......、130(n)可以用不同的方式来实现。容器130可以实现为的一种类型的容器被称为过程容器。对于过程容器,容器内的应用过程就像它们在它们自己的个体系统(例如,计算设备)上操作一样运行,这是使用命名空间隔离来完成的。主机操作系统102实现命名空间隔离。命名空间隔离为容器中的过程提供组合视图,该视图包括主机操作系统102的共享部分和该操作系统的隔离部分,这些部分是特定于每个容器(如文件系统、配置、网络等)的。
容器130可以被实现为的另一种类型的容器被称为虚拟化容器。对于虚拟化容器,虚拟化容器在轻量级虚拟机中运行,该虚拟机不具有分配给虚拟机的特定主机物理存储器,而是具有支持虚拟地址的存储页面。因此,分配给虚拟机的存储页面可以换出到页面文件。轻量级虚拟机的使用在容器中运行的过程之间提供另外的安全性和隔离。因此,虽然过程容器使用过程隔离或基于silo的过程隔离来实现其包容,但虚拟化容器使用基于虚拟机的保护来实现超出正常过程边界所能提供的更高级别的隔离。也可以使用物理存储器在虚拟机中运行容器。
在一个或多个实施例中,每个容器130(1)、......、130(n)包括一个或多个虚拟应用132(1)、......、132(n)。一个或多个虚拟应用132(1)、......、132(n)中的各个虚拟应用与主机操作系统102上的应用114中的各个应用的实例相对应。因此,虚拟应用132(1)、......、132(n)可用于以与应用114中的一个应用将如何访问主机操作系统102上的受信任的网络资源的方式类似的方式来访问容器130(1)、......、130(n)中的一个或多个容器中的不受信任的网络资源。
已经考虑了用于实现基于硬件的虚拟化安全隔离的示例系统,现在考虑根据一个或多个实施例的用于实现基于硬件的虚拟化安全隔离的系统的示例架构。
系统架构
图2根据一个或多个实施例示出了用于基于硬件的虚拟化安全隔离的示例系统架构200。虽然本文中讨论为基于硬件的虚拟化安全隔离,但是应当领会和理解的是,本文中讨论的技术也可以被称为基于虚拟化的隔离(VBI)。系统架构200至少部分由计算设备实现。可以使用各种不同类型的计算设备中的任何一种计算设备来实现系统架构200,类似于上面关于可以用于实现图1的系统100的类型的讨论。
在所示示例中,实现系统架构200的计算设备包括两个分开且隔离的部分:主机操作系统102和容器130。主机操作系统102与任何一个或多个容器130相隔离,以保护主机操作系统免受可能由不受信任的网络资源引起的攻击或感染,如图2中的虚线所示。
主机操作系统102被示为包括HVSI子系统110、策略管理器112、网络过滤器116、容器管理器118和安全子系统120。另外,主机操作系统102包括应用202,其可以是图1中所示的应用114中的一个应用114。应用202包括HVSI库204,其功能将在下面进一步详细讨论。
容器130包括虚拟应用206,虚拟应用206表示包括在主机操作系统102中的应用202的实例。容器130另外包括虚拟安全子系统210,其功能在下面进一步详细讨论。另外,容器130包括记录系统214,其表示内容管理器118管理和监测由实现系统架构200的设备激活的一个或多个容器130内的网络资源活动的功能单元。
主机操作系统102和容器130虽然彼此隔离,但是经由虚拟机总线216通信地连接。虚拟机总线216是允许主机和容器部分彼此通信的通信信道。另外地或替代地,主机操作系统102和容器130经由其他手段(如物理网络、虚拟网络、简单消息块(SMB)协议或远程过程调用(RPC)互连)通信地连接。
已经考虑了用于实现基于硬件的虚拟化安全隔离的系统的系统架构,现在考虑在系统架构200的主机部分和容器部分中示出的各个组件的功能。
HVSI子系统
HVSI子系统110表示用于在实现系统架构200的计算设备中实现基于硬件的虚拟化安全隔离的功能单元。为了实现基于硬件的虚拟化安全隔离,HVSI子系统110被配置为:与策略管理器112、网络过滤器116、容器管理器118、安全子系统120、应用202和任何一个或多个容器130通信。在一个或多个实施例中,HVSI子系统110在启动实现系统架构200的计算设备时自动启动。替代地,HVSI子系统110在其他时间启动,如在主机操作系统启动应用202时由应用202的HVSI库204启动。
当HVSI子系统110被启动时,HVSI子系统110调用容器管理器118来为登录到实现系统架构200的计算设备的用户创建容器,如果用于该用户的容器尚不存在的话。容器管理器118将创建用于连接到容器的随机或伪随机唯一本地帐户凭证。该本地帐户凭证仅对主机操作系统102是已知的,并且用于将主机操作系统102连接到容器。主机操作系统102和容器之间的本地帐户凭证的事务对于主机操作系统102的用户是透明的,并且防止恶意攻击或感染通过主机操作系统102的物理网络互联网连接来连接到容器。在主机操作系统102具有多个用户的实施例中,容器管理器118被配置为:为各个用户创建分开的容器。每个分开的容器具有不同的随机或伪随机唯一本地帐户凭证,使得主机操作系统102被限制访问不是针对登录用户创建的任何容器。容器管理器118通过在允许对一个或多个容器的访问之前验证相关联的用户凭证来确保该容器分开。
然后,HVSI子系统110指示容器管理器118暂停容器,直到HVSI子系统110检测到在实现系统架构200的计算设备上运行的应用正在尝试访问一个或多个不受信任的网络资源为止。HVSI子系统110被配置为:基于由网络过滤器116向HVSI子系统110提供的信息来监测主机操作系统与一个或多个远程资源位置之间的通信。
当主机操作系统102尝试访问网络资源时,HVSI子系统110与策略管理器112通信以确定所请求的网络资源是否是受信任的网络资源。如果HVSI子系统110确定所请求的网络资源是受信任的网络资源,则HVSI子系统110允许受信任的网络资源被主机操作系统102中的应用(如应用202)访问。与HVSI子系统110可以用于确定网络资源是否是受信任的相关联的信息包括文件类型、应用类型、网络资源的防病毒扫描结果、病毒签名、电子邮件源信息、文档元数据、URL、IP地址、TCP端口、DNS名称、硬件设备标识符或者它们的组合。例如,如果HVSI子系统110查明应用202正在请求导航到特定网页,则HVSI子系统110将与该特定网页相关联的信息与来自策略管理器112的一个或多个策略进行比较,并响应于确定该特定网页是受信任的,允许应用202访问该特定网页。HVSI子系统110例如基于以下各项中的一项或多项来确定该特定网页是受信任的:该特定网页的完全合格域名(FQDN)、使用域名服务器(DNS)的根站点域名、互联网协议(IP)地址或类似的统一资源定位符(URL)寻址方法。根据一个或多个实施例,HVSI子系统110另外被配置为:通过从远离保持恶意网络资源列表的计算设备102实现的基于云的服务接收信息来确定网络资源是否受信任。例如,如果HVSI子系统110查明应用202正在请求导航到特定网页,则HVSI子系统110经由网络108咨询基于云的服务,以将该特定网页与存储在基于云的服务处的潜在恶意网络资源的列表进行比较。如果基于云的服务指示该特定网站包括在潜在恶意网络资源的列表中,则该特定网页被确定为是不受信任的。
替代地,如果HVSI子系统110确定所请求的网络资源不是受信任的网络资源,则HVSI子系统110使容器管理器118激活容器130以处理不受信任的网络资源。基于正在主机系统中请求不受信任的网络资源的应用的类型,HVSI子系统110指示容器管理器118在容器130内启动应用的虚拟版本。例如,如果HVSI子系统110确定应用202正在请求访问不受信任的网络资源,则HVSI子系统110指示容器管理器118在容器130内创建虚拟应用206。以这种方式,容器130被配置为:就像主机操作系统102与一个或多个受信任的网络资源交互那样与一个或多个不受信任的网络资源交互。在一个或多个实施例中,容器130由实现主机操作系统102的设备激活并在其上实现。替代地,容器130由与实现主机操作系统102的设备不同的设备激活并在其上实现。替代地,容器130由与实现操作系统102的设备不同但由实现主机操作系统102的设备激活的设备实现。
为了使实现主机操作系统102的计算设备的用户查看容器130内的虚拟应用访问的任何一个或多个不受信任的网络资源并与之交互,HVSI子系统110被配置为:与容器130通信,以促使显示虚拟应用206的接口。例如,在一个或多个实施例中,HVSI子系统110使用虚拟机总线216来使用远程桌面协议(RDP)的远程应用本地集成(RAIL)模式。以这种方式,主机操作系统102可以在实现主机操作系统102的设备的显示设备处显示虚拟应用206的接口。在一个或多个实施例中,接口被配置为:使得主机操作系统102的用户感知该接口是主机操作系统自身的一部分。替代地,HVSI子系统110被配置为:显示与虚拟应用206相对应的接口,虚拟应用206具有关于所显示的接口与一个或多个不受信任的网络资源相对应的视觉指示。在其他实施例中,HVSI子系统110使用X Window系统或替代远程桌面实施方式来显示与虚拟应用206相对应的接口。
在容器管理器118激活容器130之后,网络过滤器116对来自主机操作系统102和容器130的所有网络资源调用进行过滤。例如,HVSI子系统110指示网络过滤器116阻止来自主机操作系统102的对不受信任的网络资源的所有调用,并且仅允许来自主机操作系统102的受信任的网络资源调用。类似地,HVSI子系统110指示网络过滤器116允许来自容器130的对不受信任的网络资源的所有调用,并阻止来自容器130的对受信任的网络资源的所有调用。
HVSI子系统110被配置为:指示容器管理器118监测与容器130访问的不受信任的网络资源相关联的所有活动。当HVSI子系统110从容器管理器118接收到关于在容器130中运行的虚拟应用206的所有实例被终止的指示时,HVSI子系统110终止主机操作系统102与主机操作系统102正在访问的任何容器130之间的任何连接。然后,HVSI子系统110将暂停或终止一个或多个容器130。例如,在一个或多个实施例中,当HVSI子系统110查明虚拟应用206的处理已经结束时,HVSI子系统110终止与容器130的连接并暂停容器以等待对不受信任的网络资源的进一步请求。替代地,如果HVSI子系统110确定用户已经注销了实现系统架构200的设备,则HVSI子系统110终止由主机操作系统102激活的任何一个或多个容器130。
通过与主机操作系统102的组件(如策略管理器112、网络过滤器116、容器管理器118和安全子系统120)的通信,HVSI子系统110被配置为:确定所请求的网络资源是否受信任,限制不受信任的网络资源向隔离的容器的开放,以及管理在隔离的容器内运行的一个或多个过程。这允许HVSI子系统110执行基于硬件的虚拟化安全隔离技术,以便保护实现主机操作系统102的设备免受可能由不受信任的网络资源引起的内核级攻击或感染。
已经考虑了执行基于硬件的虚拟化安全隔离的主机操作系统的示例系统架构,现在考虑根据一个或多个实施例的主机操作系统的各个组件。
策略管理器
策略管理器112表示主机操作系统102用于获得并存储实现主机操作系统的计算设备的一个或多个策略的功能。例如,策略管理器112被配置为:从图1中所示的管理和监测服务104获得并存储一个或多个策略。一个或多个策略中的每个策略指定主机操作系统102被允许访问的一个或多个受信任的网络资源。另外,策略可以指定一个或多个策略对象以及策略对象的一个或多个相应安全参数。这些策略对象和相应安全参数提供了定义主机操作系统可以如何与一个或多个不受信任的网络资源交互的约束。
例如,策略对象可以识别主机操作系统102是否被允许在隔离的容器(如容器130)中实现虚拟应用。如果该策略对象的相应安全参数指示主机操作系统102被允许实现虚拟应用和隔离的容器,则主机操作系统可以在隔离的容器130的虚拟应用206中打开一个或多个不受信任的网络资源。替代地或另外地,策略对象指示被允许在隔离的容器中打开的特定虚拟应用。该策略对象的相应安全参数可以标识被允许在隔离的容器中虚拟打开的一个或多个特定应用。替代地或另外地,策略对象指示哪个主机操作系统102可以在隔离的容器130和主机操作系统102自身之间进行复制。相应安全参数指定可以在隔离的容器130和主机操作系统102之间复制的一个或多个文件类型。替代地或另外地,策略对象指示在隔离的容器130中打开的虚拟应用的打印设置。该策略对象的相应安全参数指示在隔离的容器130中运行的虚拟应用206是否可以打印,并且如果是,则指示允许虚拟应用206打印到的一个或多个打印机、应用或文件类型。替代地或另外地,策略对象指示是否允许用于虚拟应用206的网络业务。该策略对象的相应安全参数可以指定在隔离的容器内允许其网络业务的一个或多个虚拟应用。替代地或另外地,策略对象指示虚拟应用206的后台任务是否被允许。相应安全参数指定在隔离的容器130内允许其后台任务的一个或多个虚拟应用。替代地或另外地,策略对象指示在容器中运行的虚拟应用206是否被允许利用实现主机操作系统102的计算设备的一个或多个硬件资源,如计算设备的用于图形加速的GPU。
下表提供了策略对象和相应安全参数(如上文讨论的那些)的示例集合。根据标准安全过程,该示例策略具有默认的暗示拒绝规则,其未示出。然而,应当领会和理解的是,所讨论的策略对象和相应安全参数在范围上是示例性的而不是穷举性的。
Figure BDA0001884621270000151
Figure BDA0001884621270000161
当主机操作系统102启动时,HVSI子系统110联系策略管理器112以获得主机操作系统的受信任的网络资源的列表,以及任何策略对象和相应安全参数。HVSI子系统110对这些受信任的网络资源、策略对象和相应安全参数进行聚合,并将该聚合的策略应用于主机操作系统102。在一个或多个实施例中,每当主机操作系统102请求执行动作或尝试访问网络资源时,对该聚合的策略进行查询。例如,当主机操作系统102请求打开包括在与策略对象“用于容器隔离的虚拟应用”相对应的安全参数中的应用202时,HVSI子系统110使主机操作系统102在隔离的容器130中打开该应用206的虚拟版本。
HVSI子系统110另外被配置为;监测一个或多个隔离的容器130内的活动,以确保这些容器不能访问任何受信任的网络资源。例如,如果网络浏览器的虚拟版本在隔离的容器130中运行,并且HVSI子系统110检测到该虚拟网络浏览器正在尝试访问由策略管理器112指示为受信任的网络资源的网络资源,则HVSI子系统110可以防止虚拟网络浏览器打开或以其他方式访问该受信任的网络资源,而是使该受信任的网络资源在主机操作系统102上的相应网络浏览器内打开。通过将对受信任的网络资源的访问和打开限制到主机操作系统102并将对不受信任的网络资源的访问和打开限制到一个或多个隔离的容器130,HVSI子系统110确保受信任的网络资源不被任何不受信任的网络资源破坏。
除了从策略管理器112接收受信任的网络资源的列表、策略对象和相应安全参数之外,主机操作系统102还被配置为:观察可能影响主机操作系统的策略的一个或多个本地事件。例如,考虑虚拟网络浏览器在隔离的容器130内运行的场景。HVSI子系统110监测由隔离的容器130内的虚拟网络浏览器访问的每个网络资源的行为。当虚拟网络应用导航到不受信任的网络资源时,下载不受信任的网络资源可能导致容器130的注册表以意外的方式被写入。使用在下文进一步详细讨论的容器管理器118,HVSI子系统110从容器130获得数据并计算针对不受信任的网络资源的更新的本地策略。例如,在一个或多个实施例中,HVSI子系统110通过禁用与不受信任的网络资源相关联的打印和复制设置来更新针对不受信任的网络资源的本地策略。然后,HVSI子系统110被配置为:对该获得的数据进行聚合,并将获得的数据报告给远程服务,如图1中所示的管理和监测服务104。根据一个或多个实施例,HVSI子系统110咨询主机操作系统102的本地安装的应用(如防病毒应用),以获得更新该本地策略的另外的信息。例如,HVSI子系统110使用一个或多个防病毒应用来扫描容器130中的不受信任的网络资源,并向不受信任的网络资源分配安全级别。以这种方式,HVSI子系统110被配置为:对策略进行连续更新,以及进一步保护实现主机操作系统102的计算设备免于不受信任的网络资源。
在一个或多个实施例中,HVSI子系统110实现独立的基于主机的策略引擎,其对主机操作系统102和容器130处的本地活动进行响应。这种独立的基于主机的策略引擎减少了到管理和监测服务104的往返,从而使管理和监测服务能够管理许多客户端。在一个或多个实施例中,策略管理器112从管理和监测服务104获得模板或签名。策略管理器112向HVSI子系统110提供该模板或签名。当容器130被激活时,HVSI子系统110基于来自策略模板或签名的与在容器130中观察到的活动匹配的模式来计算所要求的策略。例如,如果虚拟网络应用在容器130中运行,并且虚拟网络应用正在试图访问的网络资源作为URL与策略模板中的模式相匹配,则HVSI子系统110计算风险级别并更新策略。这动态地导致应用于容器130中的虚拟应用的特定动作,如允许动作、阻止动作或重新定向动作。在该实施例中,策略是动态的,将本地评估和策略从管理和监测服务104卸载到HVSI子系统110。
作为替代示例,考虑用户从容器130内的不受信任的网站下载并安装新应用的场景。在该示例中,HVSI子系统110针对现有策略来对下载的应用进行评估,并计算应用于隔离的容器130中的下载的应用的策略。在一个或多个实施例中,该计算出的策略基于类似应用的一个或多个策略对象和相应安全参数。例如,如果下载的应用是电子邮件应用,则HVSI子系统110识别与其他电子邮件应用有关的一个或多个策略对象和相应安全参数,并对下载的电子邮件应用类似的策略设置。HVSI子系统110被配置为:监测与容器130内的下载的应用相关联的活动,并且被配置为:基于该观察到的活动来重新计算本地策略。另外地或替代地,描述容器130内的任何一个或多个下载的应用或访问的网络资源的观察到的活动的信息被聚合并传送到远程服务,如图1中所示的管理和监测服务104。在一些实施例中,主机操作系统102对描述容器130内的观察到的活动的信息执行本地分析,并计算另外的安全策略。例如,如果下载的应用表现出异常行为,则可以终止下载的应用,并且在下载应用之前将容器重置为其先前的操作状态。如本文中所讨论的,容器中的异常行为指的是例如由HVSI子系统110解释为尝试危害容器130的内核或操作系统的指示符。
为了对主机操作系统102实施策略,HVSI子系统110采用一个或多个网络过滤器,如网络过滤器116。
网络过滤器
网络过滤器116表示用于拦截和检查主机操作系统102的入向和出向网络业务的功能单元。网络过滤器116具有用于网络业务的实施功能,包括转发、阻止和/或修改网络业务以及其他功能。例如,网络过滤器116被配置为:拦截和检查主机操作系统102与任何一个或多个隔离的容器130之间的所有网络业务和数据通信。类似地,网络过滤器116被配置为:拦截和检查主机操作系统102与经由网络(如图1中所示的网络108)访问的任何远程资源位置之间的所有网络业务和数据通信。在一个或多个实施例中,为了将主机操作系统102与任何一个或多个隔离的容器130对接,网络过滤器116包括虚拟交换机、用于主机操作系统的至少一个网络接口卡、以及用于一个或多个隔离的容器的一个或多个虚拟网络接口卡。
使用从策略管理器112接收的策略,HVSI子系统110与网络过滤器116对接,以确保容器130无法访问受信任的网络资源。类似地,HVSI子系统110与网络过滤器116对接,以确保主机操作系统102无法访问或以其他方式打开任何一个或多个不受信任的网络资源。在一个或多个实施例中,网络过滤器116被配置为:改变与受信任的网络资源相关联的各个分组的数据,以确保受信任数据保留在主机操作系统102上并且不流到容器130。如下文进一步详细讨论的,在代理认证场景中,网络过滤器116将凭证信息注入网络业务中,以确保代理遍历并防止凭证泄漏到容器中或以其他方式被容器访问。在一些实施例中,网络过滤器116确证网络业务是在DNS查找期间查询的网络资源处发起或终止的。为实现此目的,基于允许的网络资源的标识符在容器内部被探测到并与一个或多个网络资源名称相关联。容器中的网络栈包括网络业务中的这些标识符。网络过滤器116确证标识符是否与网络资源名称相匹配。如果确证成功,则转发业务;如果确证失败,则业务被丢弃。在一些实施例中,网络过滤器116从转发的网络业务中剥离标识符。
根据一个或多个实施例,网络过滤器116被实现为虚拟交换机扩展。替代地,网络过滤器116被实现为具有多种能力的任何模块,这些能力包括拦截、检查、转发、修改和阻止网络业务。在其他实施例中,网络过滤器被内置到实现主机操作系统102的计算设备的防火墙或其他安全软件中。根据一个或多个实施例,当在主机操作系统处接收到策略时,网络过滤器116被安装在主机操作系统102上。例如,当策略管理器112从图1所示的管理和监测服务104接收到策略时,可以安装网络过滤器116。然而,因为网络过滤器116需要实现主机操作系统102的设备的资源(例如,存储器),所以在一个或多个实施例中,当主机操作系统上不存在策略时,不安装网络过滤器116。以这种方式,当没有策略将不受信任的网络资源转移到隔离的容器(如容器130)时,不安装网络过滤器116以减少资源开销。
在一些实施例中,网络过滤器116实施哪个网络接口用于连接到资源。例如,当主机操作系统102在企业中时,假设是安全的。在企业中,在主机操作系统102上运行的应用202可以简单地使用任何可用的物理接口(例如,以太网、Wi-Fi等)。然而,当主机操作系统102在公共网络(例如,在企业外部在咖啡店的公共Wi-Fi)上时,网络过滤器116可以仅允许应用202和在主机操作系统102上运行的其他应用使用特定网络接口(如VPN接口),从而提高网络安全性。在一些配置中,网络过滤器116允许在容器130中运行的一个或多个应用在不使用VPN的情况下访问公共网络。在一个网络接口被隔离用于主机操作系统102通信并且不同的网络接口被隔离用于容器130通信的实施例中,网络过滤器116被配置为:向容器130的网络栈提供关于该容器的网络通信被隔离到不同的网络接口的指示。
HVSI子系统110调用网络过滤器116,并使网络过滤器116将其自身附接到实现主机操作系统102的设备的网络端口。一旦网络过滤器116被附接到网络端口,它就能够监测、过滤和/或阻止网络业务。在一个或多个实施例中,网络过滤器116包括本地DNS服务器以进一步实施用于主机操作系统102的策略。例如,在一个或多个实施例中,网络过滤器116的DNS服务器将网络资源映射到相应IP地址以验证各个网络资源的来源。在一种或多种实施方式中,网络过滤器116包括一个或多个输入/输出控制系统(IOCTL),其被配置为允许或阻止主机操作系统102和任何一个或多个容器130二者的网络业务。在其他实施方式中,该配置通过API、文件或命令shell来执行。
网络过滤器116被配置为:监测网络业务(例如,HTTP业务),以确保主机操作系统102和容器130不访问不允许用于相应主机操作系统或容器的网络资源。为了监测HTTP业务,网络过滤器116利用一个或多个网络代理来执行HTTP报头检查,以促进主机操作系统102和/或任何一个或多个隔离的容器130(如图1中所示的网络代理106)之间的网络业务。替代地,根据一个或多个实施例,网络过滤器116被配置为实现其自己的HTTP代理。
为了支持代理环境中和跨越网络变化的网络通信功能,网络过滤器116包括网络地址转换器(NAT)。NAT为容器130提供专用网络和网关以到达主机操作系统102外部的网络。根据一个或多个实施例,NAT被配置为:向主机操作系统102转发外部网络代理配置并转发外部网络变化通知。例如,在一个或多个实施例中,当网络连接状态变化时,如当Wi-Fi(IEEE802.11)网络适配器离开或进入Wi-Fi网络的范围时,网络过滤器116使用NAT将网络变化通知转发到主机操作系统102。另外,网络过滤器116的NAT被配置为:模拟外部网络标识,以确保容器130可以正确地识别不同的网络。例如,NAT可以获取主机的外部网络网关的介质访问控制(MAC)地址,并将其重新用作由NAT提供的专用网络网关MAC地址。这确保容器130的HTTP软件将适当地对齐HTTP高速缓存,并确保在重新连接到相同网络时不重复代理发现。通过模拟外部网络标识,网络过滤器116的NAT显著改善了网络重新连接性能并改善主机操作系统102的用户的用户体验。另外,网络过滤器116的NAT被配置为向主机操作系统102转发“低功率连接待机”设置,用于在一个或多个隔离的容器(如容器130)中运行的一个或多个虚拟应用206。这使得主机操作系统102能够使在一个或多个活动的隔离的容器130中运行的任何虚拟应用206保持活跃。在一个或多个实施例中,NAT的功能被卸载到主机操作系统102的不同组件。例如,供应专用网络和网关以到达主机操作系统102外部的网络、转发网络变化通知、模拟外部网络标识、以及转发低功率连接的待机设置可以由网络过滤器116、HVSI子系统110或容器管理器118中的一者或者它们的组合来执行。
根据一个或多个实施例,HVSI子系统110被配置为:与网络过滤器116交互以执行网络代理认证。例如,许多企业系统使用一个或多个网络代理来控制企业的各个用户的互联网接入。这些网络代理在允许单个用户或应用访问网络资源(如网站)之前需要通过提示用户凭证(如用户名和相关联密码)进行认证。因此,网络过滤器116被配置为:识别便于访问网站所需的网络代理,如图1中所示的网络代理106。然而,在隔离的容器中运行的虚拟应用需要网络代理认证的场景中,会出现安全问题。例如,在隔离的容器130中打开并运行的一个或多个不受信任的网络资源可能获得对用户凭证的未授权访问并危害相关联用户帐户的安全。
为了向在容器130中运行的需要网络代理认证的虚拟应用206提供无缝的用户体验,HVSI子系统110被配置为:从主机操作系统102向网络代理提供用户凭证,而不向容器130提供用户凭证。HVSI子系统110被配置为:通过在隔离的容器内实现虚拟安全子系统210来向在容器130中运行的虚拟应用206的网络代理提供用户凭证。虚拟安全子系统210被配置为:与主机操作系统102的安全子系统120对接。例如,在一个或多个实施例中,HVSI子系统110检测到虚拟网络应用206正在调用需要网络代理认证的网络资源。HVSI子系统110被配置为:在隔离的容器内实现虚拟安全子系统210,使得虚拟安全子系统210可以与主机操作系统102的安全子系统120对接。虚拟安全子系统210和安全子系统120之间的通信可以通过由HVSI子系统110建立的连接来执行,如经由虚拟机总线216。
当容器130中的虚拟网络应用206尝试经由网络代理访问网络资源时,网络代理返回对用户凭证的质询。在该场景中,虚拟安全子系统210被配置为:调用主机操作系统102的安全子系统120以向网络代理提供认证。响应于接收到该调用,安全子系统120被配置为:生成伪凭证二进制大对象(blob),其指示用户凭证的所有权,而实际上不包含凭证二进制大对象内的用户凭证。如本文所讨论的,伪二进制大对象还可以被称为用户凭证的伪认证。安全子系统120将生成的伪凭证二进制大对象返回到虚拟安全子系统210。然后,虚拟安全子系统210将伪凭证二进制大对象提供给虚拟网络应用206,使得虚拟网络应用可以将伪凭证二进制大对象嵌入到对网络代理的HTTP响应中。以这种方式,容器130被配置为:在不从主机操作系统102接收实际用户凭证的情况下证明用户凭证的所有权。根据一个或多个实施例,通过将散列安全函数应用于实际凭证并且在假二进制大对象内包括经散列的凭证来执行对假二进制大对象内的凭证所有权的证明。这确保了用户凭证不被可能在容器130中运行的任何不受信任的网络资源危害。
替代地,如果虚拟安全子系统210将针对用户凭证的网络代理请求转发到主机操作系统102的安全子系统120,则安全子系统120被配置为:生成两个凭证二进制大对象。由安全子系统120生成的第一凭证二进制大对象是如上所述的伪凭证二进制大对象。由安全子系统120生成的第二凭证二进制大对象包含网络代理所请求的实际用户凭证。在该场景中,伪凭证二进制大对象被提供给容器130中的虚拟安全子系统210,并且包含实际用户凭证的二进制大对象被提供给主机操作系统102中的网络过滤器116。如上所述,虚拟网络应用206被配置为:从虚拟安全子系统210接收伪凭证二进制大对象,并将伪凭证二进制大对象嵌入到对网络代理的HTTP响应中。因为来自主机操作系统102和容器130二者的所有网络业务都是通过网络过滤器116过滤的,所以网络过滤器116被配置为:对来自容器的HTTP响应进行拦截,以及在向网络代理发送HTTP响应之前,将假二进制大对象替换为实际用户凭证二进制大对象。根据其中主机操作系统102在嵌套计算环境中起作用的一个或多个实施例,可以在嵌套环境的每一层多次执行该凭证二进制大对象替换。替代地,在一个或多个实施例中,网络过滤器116探测容器130内的允许的网络资源标识符,以确证网络业务在DNS查找期间所查询的网络资源处发起和终止,如上文所讨论的。
当HVSI子系统110确定主机操作系统102正在尝试访问不受信任的网络资源时,使用如本文所讨论的策略管理器112、网络过滤器116和安全子系统110,HVSI子系统110与容器管理器118通信以管理和监测一个或多个容器130以访问不受信任的网络资源。
容器管理器
容器管理器118负责激活与主机操作系统102相隔离的一个或多个容器130,以访问不受信任的网络资源。如本文所讨论的,激活容器(如容器130)包括创建一个或多个新容器或恢复一个或多个被暂停的容器的运行。容器管理器118另外被配置为:针对登录到主机操作系统102的个体用户激活一个或多个容器,以及确保主机操作系统的任何其他用户被限制访问针对该个体用户激活的一个或多个容器。容器管理器118确保登录到主机操作系统102的用户到容器130的映射。在存在主机操作系统102的多个用户的和多个容器一些实施例中,容器管理器118被配置为:察看登录用户的身份并将其与一个或多个相应容器直接关联。此限制防止其他用户查看容器或以其他方式与容器交互。
容器管理器118还被配置为:收集描述容器130内的活动的日志和踪迹。容器管理器118被配置为:使用这些日志和踪迹来监测遥测和安全指示符的容器使用情况。根据一个或多个实施例,容器管理器118咨询安装在主机操作系统102上的本地应用(如防病毒应用),以便解释与容器130中所监测的活动相关联的任何安全问题。容器管理器118被配置为:对该监测的信息进行聚合,并将监测的信息提供给HVSI子系统110。替代地或另外地,容器管理器118被配置为:将该监测的信息提供给一个或多个远程源,如图1中所示的管理和监测服务104。
当主机操作系统102启动时,HVSI子系统110确定是否存在策略。在一个或多个实施例中,HVSI子系统110通过与策略管理器112通信来确定是否存在策略,如本文所讨论的。如果HVSI子系统110确定主机操作系统102上存在策略,则容器管理器118被配置为:激活容器130以处理主机操作系统所请求的任何不受信任的网络资源。容器管理器118被配置为:通过与主机操作系统102通信来激活容器130,以确定是否存在容器基础映像。如果容器管理器118确定不存在容器基础映像,则容器管理器118被配置为:创建容器基础映像。如果容器管理器118确定存在容器基础映像,或者在容器管理器118创建了容器基础映像之后,容器管理器118等待用户登录到主机操作系统102。
容器基础映像包含创建和激活包括其自己的操作系统的隔离的容器(如容器130)所需的信息。例如,在一个或多个实施例中,容器基础映像包含描述主机操作系统102如何为容器设置注册表设置的信息。需要关于注册表设置的信息,这是因为在容器130内部打开的一些虚拟应用的行为与将在主机操作系统102上打开的应用的版本不同。另外地或替代地,容器基础映像包括描述如何在容器130中执行的虚拟应用内创建用户帐户的信息。另外地或替代地,容器基础映像包括关于分配的资源(如容器130在活动时可能需要的存储器,处理器、磁盘或网络)的量的信息。
当用户登录到主机操作系统102时,容器管理器118确定是否存在与容器基础映像相对应的容器。如果容器管理器118确定不存在针对容器基础映像的容器,则容器管理器118可以创建容器,如容器130。为了确保容器基础映像准确地表示主机操作系统102,容器管理器118被配置为:使任何现有容器基础映像无效,以及在操作系统更新之后创建一个或多个新的容器基础映像。以这种方式,容器管理器118确保容器基础映像包括任何更新的主机操作系统二进制文件,从而使从容器基础映像创建的容器与主机操作系统102保持同步。在主机操作系统102更新的情况下,容器管理器118被配置为:强制关闭任何打开的容器或等待直到容器中的用户活动已经停止,以删除容器基础映像并创建新的容器基础映像。在创建了容器之后,容器管理器118将容器置于暂停模式。当容器处于暂停模式时,容器消耗实现主机操作系统102的设备的较少资源,从而减少资源开销。容器管理器118被配置为:将一个或多个隔离的容器130保持在暂停模式,直到主机操作系统102请求访问一个或多个不受信任的网络资源。
当HVSI子系统110检测到主机操作系统102正在请求访问一个或多个不受信任的网络资源时,HVSI子系统110指示容器管理器118激活一个或多个暂停的容器以便处理一个或多个不受信任的网络资源。在一个或多个实施例中,一个或多个容器托管在实现主机操作系统102的计算设备上。替代地,一个或多个容器中的至少一个容器可以托管在远离实现主机操作系统102的计算设备的计算设备上。在容器托管在不同计算设备上的场景中,容器管理器118被配置为与不同计算设备通信以管理和监测远程容器。因为容器管理器118可以比它可以创建容器更快地激活暂停的容器,所以保持一个或多个暂停的容器允许主机操作系统102对针对不受信任的网络资源的请求进行快速响应。
响应于确定主机操作系统102正在请求访问一个或多个不受信任的网络资源,容器管理器118被配置为:识别主机操作系统上正在请求不受信任的网络资源的应用。容器管理器118被配置为:在容器130内启动应用的虚拟版本以处理不受信任的网络资源。在容器管理器118激活了容器130内的应用的虚拟版本之后,HVSI子系统110被配置为:远程进入容器130,以在实现主机操作系统102的设备的显示器处显示虚拟应用的接口。
容器管理器118被配置为:与HVSI子系统110通信,以确保如果容器由远程计算设备托管,则在主机操作系统102上以及在容器130中存在适当的硬件虚拟化技术。为了使容器管理器118正常工作,容器管理器118被配置为:验证主机操作系统102的应用编程接口(API)可用于管理隔离的容器生命周期和相关联的网络栈。
容器管理器118被配置为:使用记录系统214来监测容器130内的活动。以这种方式,容器管理器118被配置为:检测在容器130内访问的网络或网络资源的任何可疑行为,容器130是否占用太多磁盘空间,等等。基于从记录系统214获得的信息,容器管理器118能够向HVSI子系统110告知如何管理一个或多个容器130。例如,在一个或多个实施例中,容器管理器118查明对容器130内的一个或多个不受信任的网络资源的访问已经完成,并向HVSI子系统110传送该信息。响应于接收到该信息,HVSI子系统110将容器130置于暂停模式,直到随后需要处理另外的不受信任的网络资源为止。
容器管理器118还被配置为:监测和确定主机操作系统102的用户何时注销。响应于确定主机操作系统102的用户已经注销,容器管理器118将该信息提供给HVSI子系统110。HVSI子系统110被配置为:响应于用户注销而删除一个或多个容器130。如本文所讨论的,删除容器还清除容器内包括的任何信息。
容器管理器118还被配置为:从主机操作系统102共享DNS和超文本传输协议(HTTP)信息,以改善一个或多个隔离的容器内的网络浏览性能或其他网络活动。在一个或多个实施例中,容器管理器118保持从容器130访问网络资源的早期实例做出的DNS查询的高速缓存、以及HTTP数据(如互联网数据文件或网站cookie),其使得容器中的用于访问不受信任的网站的未来请求能够记住先前的用户偏好、配置或设置中的一项或多项。
除了从容器管理器118接收关于容器130内的所监测的活动的信息之外,HVSI子系统110还被配置为:从一个或多个HVSI库208接收关于容器活动的信息。
HVSI库
如本文所讨论的,HVSI库是小型轻量级异步库,其被配置为:在应用内静态地或动态地链接。例如,在图2所示的系统架构200中,应用202包括HVSI库204,并且虚拟应用206包括虚拟HVSI库208。每个HVSI库被配置为:在其相应的应用内部运行,并且负责拦截和转发从应用到HVSI子系统110的网络资源调用。
当主机操作系统102的用户尝试经由应用202打开网络资源时,HVSI库204将关于所请求的网络资源的信息传送到HVSI子系统110。HVSI子系统110将该信息与从策略管理器112获得的一个或多个策略进行比较,以确定所请求的网络资源是否是受信任的网络资源。如果HVSI子系统110确定所请求的网络资源是受信任的网络资源,则HVSI子系统110允许应用202访问所请求的网络资源。替代地,如果HVSI子系统110确定所请求的网络资源不是受信任的网络资源,则HVSI子系统110将不受信任的网络资源转发到容器130中的虚拟应用206。
容器130中的虚拟HVSI库208被配置为:拦截来自虚拟应用206的网络资源请求,并将关于所请求的网络资源的信息传送到HVSI子系统110。HVSI子系统110类似地被配置为:将该信息与主机操作系统102的任何策略进行比较,以确保不向容器130提供受信任的网络资源。在一个或多个实施例中,虚拟应用将不链接到虚拟HVSI库208以确保兼容性。在这些实施例中,记录系统214和网络过滤器116用于拦截来自虚拟应用的网络资源请求,并将关于所请求的网络资源的信息传送到HVSI子系统110。
已经考虑了用于实现基于硬件的虚拟化安全隔离以保护计算设备免受与不受信任的网络资源相关联的攻击或感染的系统的系统架构,现在考虑根据一个或多个实施例的示例过程。
示例过程
图3是根据一个或多个实施例示出用于实现基于硬件的安全隔离的示例过程300的流程图。过程300由系统(如图1的系统100)执行,并且可以用软件、固件、硬件或它们的组合来实现。过程300被示为动作的集合,并且不限于所示的用于执行各个动作的操作的顺序。过程300是用于实现基于硬件的虚拟化安全隔离的示例过程;本文中参考不同附图包括实现基于硬件的虚拟化安全隔离的另外的讨论。
在过程300中,检测到对网络资源的尝试的访问(动作302)。当用户、管理员、程序、应用或系统的其他实体从远离系统的一个或多个位置请求一个或多个网络资源时,检测到尝试的访问。例如,当系统的用户尝试使用网络应用导航到网页时,检测到对网络资源的尝试的访问。
响应于检测到对网络资源的尝试的访问,过程300继续以确定网络资源是否受信任(动作304)。通过将网络资源与存储在主机操作系统上或由主机操作系统远程访问的策略进行比较来执行关于网络资源是否受信任的确定。例如,在一个或多个实施例中,主机操作系统本地存储策略(如在图1的策略管理器112中,其枚举了受信任的网络资源的列表)。替代地或另外地,从远离主机操作系统的管理和监测服务(如从图1的管理和监测服务104)接收策略。另外地或替代地,主机操作系统基于与主机操作系统和相关联的容器处的网络资源活动相关联的监测的活动来更新本地策略。如本文所讨论的,可以不断更新策略以保持受信任的网络资源的当前列表。
响应于确定网络资源是受信任的网络资源,过程300允许网络资源被主机操作系统上的应用访问(动作312)。例如,如果过程300由图1的系统100执行,并且确定网络资源是受信任的网络资源,则过程300将允许主机操作系统102上的应用114中的一个应用访问受信任的网络资源。
响应于确定网络资源不是受信任的网络资源,过程300确定是否在主机操作系统上启用基于硬件的虚拟化安全隔离(动作306)。如果过程确定未启用基于硬件的虚拟化安全隔离,则过程允许主机操作系统上的应用访问不受信任的网络资源(动作312)。因此,如本文所讨论的不启用基于硬件的虚拟化安全隔离的主机操作系统允许不受信任的网络资源被主机操作系统上的应用访问,从而使实现主机操作系统的设备暴露于来自不受信任的网络资源的恶意攻击或感染。
替代地,如果过程300确定启用了基于硬件的虚拟化安全隔离,则该过程继续以激活容器(动作308)。如本文所讨论的,根据一个或多个实施例,激活容器包括创建容器。替代地或另外地,激活容器包括识别暂停的容器和恢复对暂停的容器的处理。如本文所讨论的,容器表示与主机操作系统(如主机操作系统102)分开的隔离的运行时环境。容器包括其自己的内核,其与主机操作系统的内核分开,因此防止与可以被引导到主机操作系统的不受信任的网络资源相关联的内核级攻击。因此,即使容器受到危害,主机操作系统也被隔离,并被保护免受与不受信任的网络资源相关联的任何感染或攻击。
响应于激活容器,主机操作系统允许容器访问网络资源(动作310)。主机操作系统继续监测与网络资源相关联的容器中的活动以及容器所调用的任何一个或多个另外的网络资源,以确保容器不访问任何受信任网络资源。类似地,系统确保主机操作系统不访问任何不受信任的网络资源。
已经考虑了用于在主机操作系统处实现基于硬件的虚拟化安全隔离以保护实现主机操作系统的设备免受与不受信任的网络资源相关联的攻击或感染的示例过程,现在考虑可以用于激活用于基于硬件的虚拟化安全隔离的容器的示例过程。
图4是根据一个或多个实施例示出用于激活用于基于硬件的虚拟化安全隔离的容器的示例过程400的流程图。
过程400由主机操作系统(如图1的主机操作系统102)执行,并且可以用软件、固件、硬件或它们的组合来实现。过程400被示为动作的集合,并且不限于所示的用于执行各个动作的操作的顺序。过程400是用于激活用于基于硬件的虚拟化安全隔离的容器的示例过程;本文中参考不同附图包括激活用于基于硬件的虚拟化安全隔离的容器的另外的讨论。
在过程400中,主机操作系统启动(动作402)。在主机操作系统已经启动之后,主机操作系统继续以确定是否存在容器基础映像(动作404)。
如果主机操作系统确定不存在容器基础映像,则主机操作系统继续以创建容器基础映像(动作406)。如果主机操作系统确定存在容器基础映像,或者响应于创建了容器基础映像,主机操作系统等待直到用户登录(动作408)。用户可以通过输入与用户唯一关联的一个或多个凭证(如用户名、密码等)来登录到主机操作系统。
在用户登录之后,主机操作系统确定是否存在针对登录用户的容器(动作410)。如本文所讨论的,容器对于个体用户是唯一的,并且允许用户在与主机操作系统分开的隔离的运行时环境中与不受信任的网络资源交互。
如果主机操作系统确定不存在针对登录用户的容器,则主机操作系统继续以创建针对登录用户的容器(动作412)。主机操作系统被配置为:根据本文所讨论的任何一种或多种技术来创建针对登录用户的容器。
如果主机操作系统确定存在针对登录用户的容器,或者在主机操作系统已经创建了针对登录用户的容器之后,主机操作系统继续以激活针对登录用户的容器(动作414)。以这种方式,当用户登录到准备处理主机操作系统所请求的任何不受信任的网络资源的主机操作系统时,主机操作系统激活容器。
已经考虑了用于激活用于基于硬件的虚拟化安全隔离的容器以保护主机操作系统免于不受信任的网络资源的示例过程,现在考虑用于管理用于基于硬件的虚拟化安全隔离的容器的示例过程。
图5是根据一个或多个实施例示出用于管理用于基于硬件的虚拟化安全隔离的容器的示例过程500的流程图。
过程500由主机操作系统(如图1的主机操作系统102)执行,并且可以用软件、固件、硬件或它们的组合来实现。过程500被示为动作的集合,并且不限于所示的用于执行各个动作的操作的顺序。过程500是用于管理用于基于硬件的虚拟化安全隔离的容器的示例过程;本文中参考不同附图包括管理用于基于硬件的虚拟化安全隔离的容器的另外的讨论。
在过程500中,在用户已经登录到主机操作系统并且容器已经针对登录用户激活之后,主机操作系统暂停容器(动作502)。通过暂停容器,主机操作系统减少了实现主机操作系统的设备的保持活动容器所需的系统资源量。因为恢复暂停的容器可以比创建容器更快地执行,所以实现过程500的主机操作系统被配置为:对用于访问不受信任的网络资源的请求进行快速响应。
实现过程500的主机操作系统继续以监测对网络资源的请求,直至其检测到对不受信任的网络资源的尝试的访问为止(动作504)。如本文所讨论的,检测对不受信任的网络资源的尝试的访问是通过将描述所请求的网络资源的信息与实现过程500的主机操作系统的策略进行比较来执行的。例如,在一个或多个实施例中,实现过程500的主机操作系统的用户尝试访问未被策略定义为受信任的网站的网站。
响应于检测到对不受信任的网络资源的访问,实现过程500的主机操作系统激活暂停的容器(动作506)。一旦暂停的容器被激活,主机操作系统就允许在容器中运行的应用的虚拟实例访问不受信任的网络资源。主机操作系统可以被配置为:经由虚拟机总线与容器通信以安装和激活应用的虚拟实例,并且促使显示应用的虚拟实例的接口。以这种方式,容器允许实现过程500的主机操作系统的用户与一个或多个不受信任的网络资源对接,同时这一个或多个不受信任的网络资源在与主机操作系统相隔离的所包含的运行时环境内操作。
实现过程500的主机操作系统被配置为:将容器保持在活动状态,直到检测到触发事件(动作508)或者直到主机操作系统确定对任何一个或多个不受信任的网络资源的访问已经结束为止(行为510)。例如,如果实现过程500的主机操作系统将在网络应用中打开的一个或多个网站识别为不受信任的网络资源,则系统可以响应于用户关闭网络应用来识别对该一个或多个不受信任的网络资源的访问已经结束。如果主机操作系统确定对一个或多个不受信任的网络资源的访问已经结束,则主机操作系统暂停容器(动作502)。通过在容器没有在访问任何不受信任的网络资源时暂停容器,主机操作系统减少了保持活动容器所需的系统资源量。类似地,通过暂停容器而不是删除容器,主机操作系统可以在检测到对一个或多个另外的不受信任的网络资源的尝试的访问时容易地激活被暂停的容器。
响应于检测到触发事件,主机操作系统被配置为:删除容器(动作512)。如本文所讨论的,触发事件可以指检测到实现过程500的主机操作系统的用户已经注销。另外地或替代地,当在容器中检测到异常行为时,检测到触发事件。
已经考虑了用于管理用于基于硬件的虚拟化安全隔离的容器以保护实现主机操作系统的设备免受与不受信任的网络资源相关联的攻击和感染的示例过程,现在考虑可以用于在主机操作系统上实现基于硬件的虚拟化安全隔离的示例过程。
图6是根据一个或多个实施例示出用于实现主机操作系统上的基于硬件的虚拟化安全隔离的过程600的流程图。
过程600由主机操作系统(如图1的主机操作系统102)执行,并且可以用软件、固件、硬件或它们的组合来实现。过程600被示为动作的集合,并且不限于所示的用于执行各个动作的操作的顺序。过程600是用于使用用于硬件的虚拟化安全隔离的一个或多个容器的示例过程;本文中参考不同附图包括使用用于硬件的虚拟化安全隔离的一个或多个容器的另外的讨论。
在过程600中,主机操作系统运行应用(动作602)。应用可以是任何类型的应用,如网络应用、文字处理应用、电子邮件应用等等。
主机操作系统检测到应用正在尝试访问网络资源(动作604)。主机操作系统被配置为:通过使用网络过滤器监测网络通信来检测应用正在请求访问网络资源,如本文所讨论的。
响应于检测到在主机操作系统中运行的应用正在请求访问网络资源,主机操作系统确定网络资源是不受信任的网络资源(动作606)。主机操作系统被配置为:通过将网络资源与主机操作系统的一个或多个策略进行比较来确定网络资源是不受信任的,如本文所讨论的。
响应于确定网络资源是不受信任的网络资源,主机操作系统被配置为:激活与主机操作系统相隔离的容器(动作608)。如本文所讨论的,与主机操作系统相隔离的容器包括其自己的内核,其与主机操作系统的内核分开并隔离,从而保护主机操作系统免受内核攻击。
在主机操作系统激活隔离的容器之后,主机操作系统启动在隔离的容器内请求不受信任的网络资源的应用的虚拟版本(动作610)。在隔离的容器内启动的应用的虚拟版本被配置为:以与在主机操作系统上运行的应用将如何处理所请求的网络资源类似的方式来处理所请求的网络资源。
响应于在隔离的容器中启动应用的虚拟版本,主机操作系统将不受信任的网络资源传递到隔离的容器,并允许在隔离的容器中运行的应用的版本访问不受信任的网络资源(动作612)。响应于在隔离的容器中启动应用的版本,主机操作系统还被配置为:在实现主机操作系统的设备的显示器处显示在隔离的容器内操作的应用的版本的接口(动作614)。因此,主机操作系统使得用户能够与在隔离的容器内启动的应用的虚拟版本对接,而不将主机操作系统暴露给被隔离的容器访问的一个或多个不受信任的网络资源。
在隔离的容器内的应用的虚拟版本正在运行的同时,主机操作系统被配置为:允许隔离的容器中的应用的虚拟版本访问一个或多个另外的不受信任的网络资源(动作618)。主机操作系统被配置为:通过监测隔离的容器与一个或多个网络资源位置之间的网络通信,允许在隔离的容器内运行的应用的版本访问不受信任的网络资源。
类似地,在隔离的容器内的应用的虚拟版本正在运行的同时,主机操作系统被配置为:防止隔离的容器中的应用的虚拟版本访问一个或多个受信任的网络资源(动作620)。以这种方式,主机操作系统被配置为:确保仅受信任的网络资源被主机操作系统访问,并且任何不受信任的网络资源仅被一个或多个隔离的容器访问。
响应于确定在隔离的容器内运行的应用的虚拟版本不再访问一个或多个不受信任的网络资源,或者响应于确定主机操作系统的用户已经注销,主机操作系统被配置为:暂停或删除一个或多个隔离的容器(动作622)。例如,响应于确定容器内的应用的版本不再访问一个或多个不受信任的网络资源,主机操作系统暂停容器,直到需要处理一个或多个另外的不受信任的网络资源为止。如果主机操作系统检测到用户已经注销,则主机操作系统将删除这一个或多个容器,无论这些容器是活动的还是暂停的。
示例系统
虽然本文中参考特定模块讨论了特定功能,但应当指出的是,本文中讨论的各个模块的功能可以分成多个模块,和/或多个模块的至少一些功能可以组合成单个模块。另外,本文中讨论的执行动作的特定模块包括:特定模块本身执行动作,或者替代地,特定模块调用或以其他方式访问执行动作的另一个组件或模块(或者结合该特定模块来执行动作)。因此,执行动作的特定模块包括执行动作的特定模块本身和/或由执行动作的该特定模块调用或以其他方式访问的另一个模块。
图7示出了概括在700处的包括表示可以实现本文中描述的各种技术的一个或多个系统和/或设备的示例计算设备702的示例系统。计算设备702可以是例如服务提供商的服务器、与客户端(例如,客户端设备)相关联的设备、片上系统和/或任何其他合适的计算设备或计算系统。
如图所示的示例计算设备702包括处理系统704、一个或多个计算机可读介质706、以及彼此通信地耦合的一个或多个I/O接口708。虽然未示出,但是计算设备702还可以包括将各种组件彼此耦合的系统总线或其他数据和命令传输系统。系统总线可以包括任何一个总线结构或不同总线结构的组合,如存储器总线或存储器控制器、外围总线、通用串行总线,和/或使用各种总线架构中的任何总线架构的处理器或本地总线。还构想了各种其他例子,如控制和数据线。
处理系统704表示使用硬件来执行一个或多个操作的功能。因此,处理系统704被示为包括可以被配置为处理器、功能块等的硬件单元710。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件单元710不受形成它们的材料或其中采用的处理机制的限制。例如,处理器可以包括半导体和/或晶体管(例如,电子集成电路(IC))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质706被示为包括存储器/存储设备712。存储器/存储设备712表示与一个或多个计算机可读介质相关联的存储器/存储设备能力。存储器/存储设备712可以包括易失性介质(如随机存取存储器(RAM))和/或非易失性介质(如只读存储器(ROM)、电阻性RAM(ReRAM)、闪存、光盘、磁盘等等)。存储器/存储设备712可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质706可以以各种其他方式来配置,如下文进一步描述的。
一个或多个输入/输出接口708表示以下功能:允许用户向计算设备702输入命令和信息,并且还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或设备。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容性或其他传感器),相机(例如,其可以采用可见或不可见波长(如红外频率)来检测不涉及作为手势的触摸的运动)、传感器(例如,环境光传感器或运动传感器)等等。输出设备的示例包括显示设备(例如,显示器或投影仪)、扬声器、打印机、网卡、触觉响应设备等等。因此,可以以下文进一步描述的各种方式来配置计算设备702以支持用户交互。
计算设备702还包括主机操作系统714。主机操作系统714提供如上文所讨论的对基于硬件的虚拟化安全隔离的各种管理。例如,主机操作系统714可以实现图1的主机操作系统102。
在本文中可以在软件、硬件单元或程序模块的一般上下文中描述各种技术。一般而言,这样的模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等等。本文中所使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或者它们的组合。本文中描述的技术的特征是独立于平台的,意指这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实施方式可以存储在某种形式的计算机可读介质上或者跨越某种形式的计算机可读介质来发送。计算机可读介质可以包括可以由计算设备702访问的各种介质。通过举例而非限制的方式,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”指的是能够实现信息的持久存储和/或有形存储的介质和/或设备,不同于仅仅是信号传输、载波波形或信号本身。因此,计算机可读存储介质指的是非信号承载介质。计算机可读存储介质包括硬件,如用适用于存储诸如计算机可读指令、数据结构、程序模块、逻辑单元/电路或其他数据之类的信息的方法或技术实现的易失性和非易失性、可移动和不可移动介质和/或存储设备。计算机可读存储介质的示例包括但不限于:RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储设备、硬盘、磁带盒、磁带、磁盘存储设备或其他磁性存储设备,或者适用于存储所需信息并且可由计算机访问的其他存储设备、有形介质或制品。
“计算机可读信号介质”指的是信号承载介质,其被配置为向计算设备702的硬件发送指令(如经由网络)。信号介质通常可以体现计算机可读指令、数据结构、程序模块或经调制的数据信号中的其他数据,如载波波形、数据信号或其他传输机制。信号介质还包括任何信息递送介质。术语“经调制的数据信号”意指其一个或多个特性以用于对信号中的信息进行编码的方式来设置或改变的信号。通过举例而非限制的方式,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声音、RF、红外线和其他无线介质之类的无线介质。
如前所述,硬件单元710和计算机可读介质706表示以硬件形式实现的指令、模块、可编程设备逻辑单元和/或固定设备逻辑单元,其可以在一些实施例中采用以实现本文描述的技术的至少一些方面。硬件单元可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及用硅或其他硬件设备的其他实施方式的组件。在该上下文中,硬件单元可以充当处理设备,其执行通过硬件单元体现的指令、模块和/或逻辑单元定义的程序任务以及用于存储用于执行的指令(例如,上文所述的计算机可读存储介质)的硬件设备。
还可以采用前述的组合来实现本文描述的各种技术和模块。因此,软件、硬件或程序模块和其他程序模块可以实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件单元710体现的一个或多个指令和/或逻辑单元。计算设备702可以被配置为:实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,将模块实现为可由计算设备702作为软件执行的模块可以至少部分用硬件实现,例如,通过使用处理系统的计算机可读存储介质和/或硬件单元710。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备702和/或处理系统704)执行/操作,以实现本文中描述的技术、模块和示例。
如图7中进一步所示,示例系统700实现了无处不在的环境使得当在个人计算机(PC)、电视设备和/或移动设备上运行应用时能获得无缝的用户体验。在使用应用、玩视频游戏、观看视频等的同时从一个设备转换到下一个设备时,服务和应用在所有三种环境中基本相似地运行,以获得共同的用户体验。
在示例系统700中,多个设备通过中央计算设备互连。中央计算设备可以本地于多个设备,或者可以远离多个设备。在一个或多个实施例中,中央计算设备可以是通过网络、互联网或其他数据通信链路连接到多个设备的一个或多个服务器计算机的云。
在一个或多个实施例中,该互连架构使得能够跨多个设备递送功能,以便向多个设备的用户提供共同且无缝的体验。多个设备中的每个设备可以具有不同的物理要求和能力,并且中央计算设备使用平台来实现向设备递送既针对设备定制又对所有设备共用的体验。在一个或多个实施例中,创建目标设备的类别,并且为通用类设备定制体验。可以通过物理特征、使用类型或设备的其他共同特性来定义设备类别。
在各种实施方式中,计算设备702可以采用各种不同的配置,如针对计算机716、移动设备718和电视机720用途。这些配置中的每种配置包括可以具有通常不同的构造和能力的设备,因此可以根据一个或多个不同的设备类别来配置计算设备702。例如,计算设备702可以实现为计算机716类设备,其包括个人计算机、桌面式计算机、多屏幕计算机、膝上型计算机、上网本等等。
计算设备702还可以实现为移动718类设备,其包括移动设备,例如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等等。计算设备702还可以实现为电视机720类设备,其包括具有或连接到休闲观看环境中的通常更大屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等等。
本文描述的技术可以由计算设备702的这些各种配置支持,并且不限于本文中描述的技术的具体示例。该功能还可以全部或部分地通过使用分布式系统来实现,如经由如下所述的平台724在“云”722上实现。
云722包括和/或代表用于资源726的平台724。平台724抽象出云722的硬件(例如,服务器)和软件资源的底层功能。资源726可以包括在远离计算设备702的服务器上执行计算机处理的同时可以使用的应用和/或数据。资源726还可以包括通过互联网和/或通过订户网络(如蜂窝或Wi-Fi网络)提供的服务。
平台724可以对资源和功能进行抽象以便将计算设备702与其他计算设备连接。平台724还可以用于资源的抽象缩放以向针对资源726所遇到的需求提供经由平台724实现的相应的缩放级别。因此,在互连设备实施例中,本文中描述的功能的实施方式可以分布在整个系统700中。例如,功能可以部分地在计算设备702上实现以及经由对云722的功能进行抽象的平台724来实现。应当注意,云722可以布置成无数种配置。例如,云722可以实现为单个云,因为云722的多个实例都表现为单个云,或者在云722后面实现平台724的一个或多个实例并且表现得好像平台724的一个或多个实例是在云中实现的一样。
在本文的讨论中,描述了各种不同的实施例。应当领会和理解的是,本文描述的每个实施例可以分开使用或与本文描述的一个或多个其他实施例结合使用。本文讨论的技术的其他方面涉及以下一个或多个实施例。
一种方法包括:在主机操作系统中运行应用;检测所述应用对网络资源的访问;确定所述网络资源是受信任的网络资源还是不受信任的网络资源;以及响应于确定所述网络资源是不受信任的网络资源:由所述主机操作系统激活与所述主机操作系统相隔离并被配置为运行所述应用的版本的容器;以及由所述主机操作系统允许在所述容器中运行的所述应用的所述版本访问所述不受信任的网络资源。
替代或除了上述方法中的任何一种方法,以下各项中的任何一项或者它们的组合:所述方法还包括:允许在所述容器中运行的所述应用的所述版本访问一个或多个另外的不受信任的网络资源,以及防止在所述容器中运行的所述应用访问受信任的网络资源;所述方法还包括:检测所述主机操作系统对文件或应用的访问,以及响应于确定所述文件或所述应用是不受信任的网络资源,允许所述文件或所述应用在所述容器内被打开;其中,所述容器包括所述主机操作系统的实例,以及与所述主机操作系统的内核分开且隔离的内核;所述方法还包括:接收至少包括受信任的网络资源的枚举列表的至少一个策略,其中,确定所述网络资源是受信任的网络资源还是不受信任的网络资源包括:将所述网络资源与所述受信任的网络资源的枚举列表进行比较,所述受信任的网络资源的枚举列表是基于以下各项中的一项或多项识别的:所述网络资源的文件类型、与所述网络资源相关联的网络位置,或者正在尝试访问所述网络资源的应用类型;其中,所述容器是针对登录到所述主机操作系统的用户激活的,所述方法还包括:确定不同的用户登录到所述主机操作系统,以及针对所述不同的用户激活与所述主机操作系统和所述容器相隔离的不同容器;所述方法还包括:确定对所述网络资源的所述访问是通过不受信任的网络接口请求的,以及响应于确定对所述网络资源的所述访问是通过所述不受信任的网络接口请求的:将所述主机操作系统中的所述应用的网络通信限制为虚拟专用网络(VPN)接口;允许在所述容器中运行的所述应用的所述版本通过所述不受信任的网络接口执行网络通信;以及向所述容器的网络栈指示所述容器的网络通信被隔离到所述不受信任的网络接口;所述方法还包括:由所述主机操作系统拦截对用户凭证的网络代理提示的响应,以及将一个或多个用户凭证插入到所述网络代理提示的所述响应中,而不将所述一个或多个用户凭证传递给所述容器;所述方法还包括:扫描在所述容器中访问的一个或多个不受信任的网络资源,以及使用所述主机操作系统中的防病毒软件为所述一个或多个不受信任的网络资源分配一个或多个风险级别,并且如果所分配的风险级别指示所述不受信任的网络资源是恶意的,则分离、清除或删除所述一个或多个不受信任的网络资源中的一个不受信任的网络资源;所述方法还包括:监测与所述容器中的所述不受信任的网络资源相关联的活动,并基于所监测的活动来更新主所述机操作系统上的本地策略;其中,所述应用是网络应用并且所述不受信任的网络资源是网页;其中,所述容器是针对第一网络通信接口上的网络资源通信激活的,所述方法还包括:针对第二网络通信接口上的网络资源通信来激活第二容器;所述方法还包括:检测到在所述容器中运行的所述应用的所述版本已经停止处理,响应于检测到在所述容器中运行的所述应用的所述版本已经停止处理,由所述主机操作系统暂停所述容器,以减少由所述容器使用的系统资源量,检测所述应用对另外的网络资源的另外的访问,响应于确定所述另外的网络资源是不受信任的资源来激活暂停的容器,允许在所述容器中运行的所述应用的所述版本访问所述另外的不受信任的网络资源,检测到所述主机操作系统的所述用户已经注销,以及响应于检测到所述用户已经注销来删除所述容器;所述方法还包括:检测所述主机操作系统的更新,以及响应于检测到所述主机操作系统的更新,删除所述容器并创建反映所述主机操作系统的一个或多个更新的二进制文件的新容器;其中,所述主机操作系统被配置为:基于所述网络资源的文件类型、与所述网络资源相关联的网络位置、正在尝试访问所述网络资源的应用类型、对所述网络资源的防病毒扫描中的一项或多项,或者基于咨询保持恶意网络资源列表的基于云的服务来确定所述网络资源是否是受信任的网络资源;其中,所述容器是针对登录到所述主机操作系统的用户激活的,所述方法还包括:针对所述用户激活一个或多个另外的容器,以及防止所述主机操作系统的其他用户访问所述容器和所述一个或多个另外的容器;所述方法还包括:从在所述容器中运行的所述应用的所述版本接收针对用户凭证的请求,以及向在所述容器中运行的所述应用的所述版本提供伪认证,所述伪认证包括:在不向所述容器提供所述用户凭证的情况下证明所述用户凭证的所有权的信息;所述方法还包括:由所述主机操作系统识别本地网络并模拟所述容器的所述本地网络;所述方法还包括:识别本地网络并在所述容器的网络地址转换器(NAT)后面模拟所述本地网络;所述方法还包括:在所述主机操作系统和所述容器之间共享域名系统(DNS)和超文本传输协议(HTTP)信息;所述方法还包括:由所述主机操作系统跟踪由在所述容器中运行的所述应用的所述版本执行的一个或多个配置变化;所述方法还包括:由所述主机操作系统从所述容器获得遥测并基于所获得的遥测来分析容器活动;所述方法还包括:在所述主机操作系统处实现策略引擎,所述策略引擎被配置为:基于所述容器内的被监测的活动来计算用于针对容器的策略,所计算的策略基于一个或多个策略模板或策略签名。
一种方法包括:检测主机操作系统的启动;响应于检测到所述主机操作系统的启动,确定所述主机操作系统中是否存在容器基础映像;响应于确定所述主机操作系统中不存在所述容器基础映像,从所述主机操作系统创建容器基础映像;检测用户登录到所述主机操作系统;响应于检测到用户登录到所述主机操作系统,激活与所述容器基础映像相对应的容器并暂停所激活的容器;响应于检测到对不受信任的网络资源的访问,恢复被暂停的容器;以及允许所恢复的容器访问所述不受信任的网络资源。
替代或除了上述方法中的任何一种方法,以下各项中的任何一项或者它们的组合:其中,所述容器基础映像是从以下各项中的一项创建的:所述主机操作系统、与所述主机操作系统不同的操作系统、或者所述主机操作系统和与所述主机操作系统不同的所述操作系统的组合。
一种设备包括:一个或多个处理器;以及存储计算机可读指令的一个或多个计算机可读存储介质,所述计算机可读指令可由所述一个或多个处理器执行以执行包括以下各项的操作:在所述设备的主机操作系统上运行网络应用;检测所述网络应用对网络资源的访问;通过将所述网络资源与从远离所述设备的管理和监测服务接收的策略进行比较来确定所述网络资源是不受信任的资源;响应于确定所述网络资源是不受信任的网络资源:由所述主机操作系统激活与所述主机操作系统相隔离并被配置为运行所述网络应用的版本的容器;由所述主机操作系统允许在所述容器中运行的所述网络应用的所述版本访问所述不受信任的网络资源;允许在所述容器中运行的所述网络应用的所述版本访问一个或多个另外的不受信任的网络资源;以及防止在所述容器中运行的所述网络应用的所述版本访问受信任的网络资源。
虽然已经以特定于结构特征和/或方法动作的语言对主题进行了描述,但应当理解的是,所附权利要求书中定义的主题并不一定受限于上述特定特征或动作。确切地说,上述具体特征或动作是作为实现权利要求书的示例形式而公开的。

Claims (15)

1.一种由在主机设备上执行的主机操作系统执行的方法,包括:
检测在所述主机操作系统上运行的应用正在尝试访问网络资源,所述网络资源是所述主机设备经由网络能够访问的;
响应于检测到所述应用正在尝试访问所述网络资源,确定所述网络资源是否是不受信任的网络资源;以及
响应于确定所述网络资源是不受信任的网络资源:
激活与所述主机操作系统相隔离的容器,所述容器被配置为运行所述应用的版本;
将所述不受信任的网络资源传递到所述容器,从而允许在所述容器中运行的所述应用的所述版本访问所述不受信任的网络资源;以及
响应于确定对所述不受信任的网络资源的访问已经结束,暂停所述容器。
2.根据权利要求1所述的方法,还包括:允许在所述容器中运行的所述应用的所述版本访问一个或多个另外的不受信任的网络资源,以及防止在所述容器中运行的所述应用访问受信任的网络资源。
3.根据权利要求1或2所述的方法,还包括:检测所述主机操作系统对文件或应用的访问,以及响应于确定所述文件或所述应用是不受信任的网络资源,允许在所述容器内打开所述文件或所述应用。
4.根据权利要求1所述的方法,其中,所述容器包括所述主机操作系统的实例、以及与所述主机操作系统的内核分开且隔离的内核。
5.根据权利要求1所述的方法,还包括:接收至少包括受信任的网络资源的枚举列表的至少一个策略,其中,确定所述网络资源是受信任的网络资源还是不受信任的网络资源包括:将所述网络资源与所述受信任的网络资源的枚举列表进行比较,所述受信任的网络资源的枚举列表是基于以下各项中的一项或多项识别的:所述网络资源的文件类型、与所述网络资源相关联的网络位置、或者正在尝试访问所述网络资源的应用类型。
6.根据权利要求1所述的方法,其中,所述容器是针对登录到所述主机操作系统的用户激活的,所述方法还包括:确定不同的用户登录到所述主机操作系统,以及针对所述不同的用户激活与所述主机操作系统和所述容器相隔离的不同容器。
7.根据权利要求1所述的方法,还包括:确定对所述网络资源的所述访问是通过不受信任的网络接口请求的,以及响应于确定对所述网络资源的所述访问是通过不受信任的网络接口请求的:
将所述主机操作系统中的所述应用的网络通信限制为虚拟专用网络(VPN)接口;
允许在所述容器中运行的所述应用的所述版本通过所述不受信任的网络接口执行网络通信;以及
向所述容器的网络栈指示所述容器的网络通信被隔离到所述不受信任的网络接口。
8.根据权利要求1所述的方法,还包括:由所述主机操作系统拦截对用户凭证的网络代理提示的响应,以及将一个或多个用户凭证插入到对所述网络代理提示的所述响应中,而不将所述一个或多个用户凭证传送给所述容器。
9.根据权利要求1所述的方法,还包括:扫描在所述容器中访问的一个或多个不受信任的网络资源;以及使用所述主机操作系统中的防病毒软件向所述一个或多个不受信任的网络资源分配一个或多个风险级别,并且如果所分配的风险级别指示所述不受信任的网络资源是恶意的,则分离、清除或删除所述一个或多个不受信任的网络资源中的一个不受信任的网络资源。
10.根据权利要求1所述的方法,还包括:监测与所述容器中的所述不受信任的网络资源相关联的活动,以及基于所监测的活动来更新所述主机操作系统处的本地策略。
11.根据权利要求1所述的方法,其中,所述应用是网络应用,并且所述不受信任的网络资源是网页。
12.根据权利要求1所述的方法,其中,所述容器是针对第一网络通信接口上的网络资源通信激活的,所述方法还包括:针对第二网络通信接口上的网络资源通信激活第二容器。
13.一种设备,包括:
一个或多个处理器;以及
存储计算机可读指令的一个或多个计算机可读存储介质,所述计算机可读指令可由所述一个或多个处理器执行以执行包括以下各项的操作:
检测在主机操作系统上运行的应用正在尝试访问网络资源,所述网络资源是所述设备经由网络能够访问的;
响应于检测到所述应用正在尝试访问所述网络资源,确定所述网络资源是否是不受信任的网络资源;以及
响应于确定所述网络资源是不受信任的网络资源:
激活与所述主机操作系统相隔离的容器,所述容器被配置为运行所述应用的版本;
将所述不受信任的网络资源传递到所述容器,从而允许在所述容器中运行的所述应用的所述版本访问所述不受信任的网络资源;以及
响应于确定对所述不受信任的网络资源的访问已经结束,暂停所述容器。
14.根据权利要求13所述的设备,所述操作还包括:检测对所述主机操作系统的更新,以及响应于检测到对所述主机操作系统的所述更新,删除所述容器并创建反映所述主机操作系统的一个或多个更新的二进制文件的新容器。
15.根据权利要求13或权利要求14所述的设备,其中,所述主机操作系统被配置为:基于所述网络资源的文件类型、与所述网络资源相关联的网络位置、正在尝试访问所述网络资源的应用类型、对所述网络资源的防病毒扫描中的一项或多项,或者基于咨询保持恶意网络资源列表的基于云的服务,来确定所述网络资源是不受信任的。
CN201780033267.2A 2016-06-02 2017-05-25 基于硬件的虚拟化安全隔离 Active CN109196505B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/171,917 2016-06-02
US15/171,917 US10855725B2 (en) 2016-06-02 2016-06-02 Hardware-based virtualized security isolation
PCT/US2017/034354 WO2017210065A1 (en) 2016-06-02 2017-05-25 Hardware-based virtualized security isolation

Publications (2)

Publication Number Publication Date
CN109196505A CN109196505A (zh) 2019-01-11
CN109196505B true CN109196505B (zh) 2022-04-19

Family

ID=59014799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780033267.2A Active CN109196505B (zh) 2016-06-02 2017-05-25 基于硬件的虚拟化安全隔离

Country Status (19)

Country Link
US (1) US10855725B2 (zh)
EP (1) EP3465517B1 (zh)
JP (1) JP6982006B2 (zh)
KR (1) KR102386560B1 (zh)
CN (1) CN109196505B (zh)
AU (1) AU2017275464B2 (zh)
BR (1) BR112018074347A8 (zh)
CA (1) CA3023472A1 (zh)
CL (1) CL2018003297A1 (zh)
CO (1) CO2018012982A2 (zh)
ES (1) ES2806379T3 (zh)
IL (1) IL263152B (zh)
MX (1) MX2018014912A (zh)
NZ (1) NZ747895A (zh)
PH (1) PH12018550196A1 (zh)
RU (1) RU2755880C2 (zh)
SG (1) SG11201810295UA (zh)
WO (1) WO2017210065A1 (zh)
ZA (1) ZA201807411B (zh)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2984580B1 (en) 2013-04-10 2018-12-19 Illumio, Inc. Distributed network management system using a logical multi-dimensional label-based policy model
US9882919B2 (en) 2013-04-10 2018-01-30 Illumio, Inc. Distributed network security using a logical multi-dimensional label-based policy model
EP3143502A4 (en) * 2014-05-14 2017-12-27 Hay, Peter, Mcclelland Systems and methods for ensuring computer system security via a virtualized layer of application abstraction
US9928377B2 (en) 2015-03-19 2018-03-27 Netskope, Inc. Systems and methods of monitoring and controlling enterprise information stored on a cloud computing service (CCS)
US10397255B1 (en) * 2015-09-23 2019-08-27 StackRox, Inc. System and method for providing security in a distributed computation system utilizing containers
US11405423B2 (en) * 2016-03-11 2022-08-02 Netskope, Inc. Metadata-based data loss prevention (DLP) for cloud resources
US11425169B2 (en) 2016-03-11 2022-08-23 Netskope, Inc. Small-footprint endpoint data loss prevention (DLP)
US11403418B2 (en) 2018-08-30 2022-08-02 Netskope, Inc. Enriching document metadata using contextual information
US11019101B2 (en) 2016-03-11 2021-05-25 Netskope, Inc. Middle ware security layer for cloud computing services
US10459823B1 (en) * 2016-06-29 2019-10-29 EMC IP Holding Company LLC Debugging using dual container images
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
US10505830B2 (en) * 2016-08-11 2019-12-10 Micro Focus Llc Container monitoring configuration deployment
US20180082053A1 (en) * 2016-09-21 2018-03-22 Telefonaktiebolaget Lm Ericsson (Publ) Application token through associated container
US10592664B2 (en) * 2017-02-02 2020-03-17 Cisco Technology, Inc. Container application security and protection
US11165825B2 (en) * 2017-02-16 2021-11-02 Emerald Cactus Ventures, Inc. System and method for creating encrypted virtual private network hotspot
US11122013B2 (en) 2017-02-16 2021-09-14 Emerald Cactus Ventures, Inc. System and method for encrypting data interactions delineated by zones
US11165751B2 (en) * 2017-02-16 2021-11-02 Emerald Cactus Ventures, Inc. System and method for establishing simultaneous encrypted virtual private networks from a single computing device
US10691816B2 (en) * 2017-02-24 2020-06-23 International Business Machines Corporation Applying host access control rules for data used in application containers
US10613885B2 (en) 2017-02-24 2020-04-07 International Business Machines Corporation Portable aggregated information calculation and injection for application containers
WO2018208669A1 (en) 2017-05-08 2018-11-15 KnowBe4, Inc. Systems and methods for providing user interfaces based on actions associated with untrusted emails
US10719603B2 (en) * 2017-05-16 2020-07-21 Vmware, Inc. Methods and apparatus for sandboxed code execution using containers
US10726121B2 (en) * 2017-05-16 2020-07-28 Vmware, Inc. Methods and apparatus for improving sandboxed code execution by caching container image templates
WO2018226790A1 (en) * 2017-06-09 2018-12-13 ORock Holdings, LLC Secure network-accessible system for executing remote applications
US11240207B2 (en) * 2017-08-11 2022-02-01 L3 Technologies, Inc. Network isolation
US11601467B2 (en) * 2017-08-24 2023-03-07 L3 Technologies, Inc. Service provider advanced threat protection
US10528733B2 (en) * 2017-08-31 2020-01-07 International Business Machines Corporation Integrity, theft protection and cyber deception using a deception-based filesystem
US11178104B2 (en) 2017-09-26 2021-11-16 L3 Technologies, Inc. Network isolation with cloud networks
US11223601B2 (en) * 2017-09-28 2022-01-11 L3 Technologies, Inc. Network isolation for collaboration software
US10931669B2 (en) * 2017-09-28 2021-02-23 L3 Technologies, Inc. Endpoint protection and authentication
US11374906B2 (en) 2017-09-28 2022-06-28 L3 Technologies, Inc. Data exfiltration system and methods
US11184323B2 (en) * 2017-09-28 2021-11-23 L3 Technologies, Inc Threat isolation using a plurality of containers
US11552987B2 (en) * 2017-09-28 2023-01-10 L3 Technologies, Inc. Systems and methods for command and control protection
US11336619B2 (en) * 2017-09-28 2022-05-17 L3 Technologies, Inc. Host process and memory separation
US11550898B2 (en) 2017-10-23 2023-01-10 L3 Technologies, Inc. Browser application implementing sandbox based internet isolation
US11120125B2 (en) 2017-10-23 2021-09-14 L3 Technologies, Inc. Configurable internet isolation and security for laptops and similar devices
US11170096B2 (en) 2017-10-23 2021-11-09 L3 Technologies, Inc. Configurable internet isolation and security for mobile devices
US10001990B2 (en) * 2017-10-26 2018-06-19 Iomaxis, Llc Method and system for enhancing application container and host operating system security in a multi-tenant computing environment
US11516252B2 (en) * 2017-10-31 2022-11-29 Cable Television Laboratories, Inc. Systems and methods for internet of things security environment
US11503051B2 (en) 2018-01-11 2022-11-15 Perspecta Labs Inc. Migration of traffic flows
US10664592B2 (en) * 2018-03-22 2020-05-26 International Business Machines Corporation Method and system to securely run applications using containers
US11409569B2 (en) * 2018-03-29 2022-08-09 Xilinx, Inc. Data processing system
US20190362075A1 (en) * 2018-05-22 2019-11-28 Fortinet, Inc. Preventing users from accessing infected files by using multiple file storage repositories and a secure data transfer agent logically interposed therebetween
KR101959544B1 (ko) * 2018-06-01 2019-03-18 주식회사 에프원시큐리티 웹 공격 탐지 및 차단 시스템 및 그 방법
US11012310B2 (en) * 2018-06-05 2021-05-18 Illumio, Inc. Managing containers based on pairing keys in a segmented network environment
US10958480B2 (en) * 2018-07-19 2021-03-23 Vmware, Inc. Per-app virtual private network tunnel for multiple processes
EP3844923A1 (en) * 2018-08-30 2021-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for restricting access to a management interface using standard management protocols and software
US11036856B2 (en) * 2018-09-16 2021-06-15 Fortinet, Inc. Natively mounting storage for inspection and sandboxing in the cloud
US11677713B2 (en) * 2018-10-05 2023-06-13 Vmware, Inc. Domain-name-based network-connection attestation
CN109301936B (zh) * 2018-10-11 2022-03-08 云南电网有限责任公司红河供电局 一种基于容器调度架构的智能变电站运维信息监视系统
EP3644206A1 (en) 2018-10-22 2020-04-29 Koninklijke Philips N.V. A container builder for individualized network services
CN109522760B (zh) * 2018-10-29 2020-08-14 北京博衍思创信息科技有限公司 一种基于硬件控制逻辑的数据转发控制方法及系统
US10785166B1 (en) 2018-11-29 2020-09-22 Cox Communications, Inc. Resource assignment protocol-implemented policy-based direction of a client to an edge-compute resource
US11601787B2 (en) 2018-12-31 2023-03-07 T-Mobile Usa, Inc. Using a blockchain to determine trustworthiness of messages between vehicles over a telecommunications network
US11159945B2 (en) 2018-12-31 2021-10-26 T-Mobile Usa, Inc. Protecting a telecommunications network using network components as blockchain nodes
US11329982B2 (en) 2018-12-31 2022-05-10 T-Mobile Usa, Inc. Managing internet of things devices using blockchain operations
US11159322B2 (en) * 2019-01-31 2021-10-26 Baidu Usa Llc Secure multiparty computing framework using a restricted operating environment with a guest agent
US11775475B2 (en) 2019-03-05 2023-10-03 Microsoft Technology Licensing, Llc Deferred path resolution during container deployment
CN110059453B (zh) * 2019-03-13 2021-02-05 中国科学院计算技术研究所 一种容器虚拟化安全加固装置及方法
US10942855B2 (en) * 2019-03-18 2021-03-09 Microsoft Technology Licensing, Llc Contextual loading based on dynamic context
US11190512B2 (en) 2019-04-17 2021-11-30 Microsoft Technology Licensing, Llc Integrity attestation of attestation component
US11392467B2 (en) 2019-04-17 2022-07-19 Microsoft Technology Licensing, Llc Failover between decentralized identity stores
US11381567B2 (en) 2019-04-29 2022-07-05 Microsoft Technology Licensing, Llc Execution of an application within a scope of user-granted permission
US11429743B2 (en) 2019-04-29 2022-08-30 Microsoft Technology Licensing, Llc Localization of DID-related claims and data
US11222137B2 (en) 2019-05-03 2022-01-11 Microsoft Technology Licensing, Llc Storing and executing an application in a user's personal storage with user granted permission
US11411959B2 (en) * 2019-05-03 2022-08-09 Microsoft Technology Licensing, Llc Execution of application in a container within a scope of user-granted permission
US11003771B2 (en) 2019-05-03 2021-05-11 Microsoft Technology Licensing, Llc Self-help for DID claims
US11876798B2 (en) * 2019-05-20 2024-01-16 Citrix Systems, Inc. Virtual delivery appliance and system with remote authentication and related methods
US11190514B2 (en) * 2019-06-17 2021-11-30 Microsoft Technology Licensing, Llc Client-server security enhancement using information accessed from access tokens
US11533312B2 (en) * 2019-07-10 2022-12-20 ColorTokens, Inc. Dynamically enforcing context sensitive network access control policies
US11470017B2 (en) * 2019-07-30 2022-10-11 At&T Intellectual Property I, L.P. Immersive reality component management via a reduced competition core network component
US11556367B2 (en) * 2019-08-06 2023-01-17 Microsoft Technology Licensing, Llc Dynamic image composition for container deployment
CN110955886B (zh) * 2019-11-08 2022-06-21 广州供电局有限公司 基于沙箱的数据安全融合服务装置及其方法
CN111008041B (zh) * 2019-12-04 2022-03-11 北京百度网讯科技有限公司 用于主机的命令处理方法、装置、电子设备和存储介质
US11314614B2 (en) 2020-01-02 2022-04-26 Sri International Security for container networks
US20210216343A1 (en) 2020-01-09 2021-07-15 International Business Machines Corporation Safely processing integrated flows of messages in a multi-tenant container
US11601461B2 (en) * 2020-01-13 2023-03-07 Vmware, Inc. Risk-based cloud profile management for VDI in the cloud
US11856022B2 (en) 2020-01-27 2023-12-26 Netskope, Inc. Metadata-based detection and prevention of phishing attacks
US11232198B2 (en) * 2020-01-28 2022-01-25 Cyberark Software Ltd. Dynamic visualization of scripts based on centralized security assessments
US11233805B2 (en) 2020-01-28 2022-01-25 Cyberark Software Ltd. Centralized security assessments of scripts in network environments
US11394750B1 (en) 2020-02-28 2022-07-19 Red Hat, Inc. System and method for generating network security policies in a distributed computation system utilizing containers
US11539738B1 (en) * 2020-03-24 2022-12-27 Mcafee, Llc Methods, systems, and media for mitigating damage resulting from a website being an intermediary in a cyberattack
US11176247B2 (en) * 2020-04-02 2021-11-16 Aqua Security Software, Ltd. System and method for container assessment using sandboxing
NL2025327B1 (nl) * 2020-04-10 2021-10-26 Mobuyou B V Werkwijze voor veilige overdacht van gegevens.
US20220060513A1 (en) * 2020-08-21 2022-02-24 Oracle Intenational Corporation Centralized request processing and security zone policy enforcement in a cloud infrastructure system
US20220159029A1 (en) * 2020-11-13 2022-05-19 Cyberark Software Ltd. Detection of security risks based on secretless connection data
US11683331B2 (en) * 2020-11-23 2023-06-20 Juniper Networks, Inc. Trust scoring of network entities in networks
US11580230B2 (en) * 2020-11-30 2023-02-14 Aqua Security Software, Ltd. System and method for assessing software containers for vulnerabilities
US11811804B1 (en) 2020-12-15 2023-11-07 Red Hat, Inc. System and method for detecting process anomalies in a distributed computation system utilizing containers
US11848949B2 (en) 2021-01-30 2023-12-19 Netskope, Inc. Dynamic distribution of unified policies in a cloud-based policy enforcement system
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
US11831688B2 (en) * 2021-06-18 2023-11-28 Capital One Services, Llc Systems and methods for network security
US11689505B2 (en) * 2021-06-28 2023-06-27 Cisco Technology, Inc. Dynamic proxy response from application container
US11651089B2 (en) * 2021-07-13 2023-05-16 Graphcore Ltd. Terminating distributed trusted execution environment via self-isolation
US12074879B2 (en) 2021-09-14 2024-08-27 Juniper Networks, Inc. Inferring trust in computer networks
US20240037229A1 (en) * 2022-07-28 2024-02-01 Pure Storage, Inc. Monitoring for Security Threats in a Container System

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620956B2 (en) * 2003-06-11 2009-11-17 Symantec Corporation Portable memory storage devices with application layers
US8418234B2 (en) * 2005-12-15 2013-04-09 International Business Machines Corporation Authentication of a principal in a federation
US7716240B2 (en) 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
US8544058B2 (en) * 2005-12-29 2013-09-24 Nextlabs, Inc. Techniques of transforming policies to enforce control in an information management system
WO2007120360A2 (en) * 2005-12-29 2007-10-25 Blue Jungle Information management system
US8151337B2 (en) 2006-06-30 2012-04-03 Microsoft Corporation Applying firewalls to virtualized environments
US8612971B1 (en) * 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US8769268B2 (en) 2007-07-20 2014-07-01 Check Point Software Technologies, Inc. System and methods providing secure workspace sessions
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
CN101730451B (zh) * 2008-10-24 2013-02-20 富准精密工业(深圳)有限公司 散热装置
US8341749B2 (en) * 2009-06-26 2012-12-25 Vmware, Inc. Preventing malware attacks in virtualized mobile devices
US8627451B2 (en) 2009-08-21 2014-01-07 Red Hat, Inc. Systems and methods for providing an isolated execution environment for accessing untrusted content
US8479286B2 (en) * 2009-12-15 2013-07-02 Mcafee, Inc. Systems and methods for behavioral sandboxing
US8776169B2 (en) 2010-03-30 2014-07-08 Authentic8, Inc. Disposable browsers and authentication techniques for a secure online user environment
US9116733B2 (en) * 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9104837B1 (en) 2012-06-18 2015-08-11 Bromium, Inc. Exposing subset of host file systems to restricted virtual machines based on upon performing user-initiated actions against host files
US9609619B2 (en) * 2010-08-31 2017-03-28 William E. Woodcock, IV Geolocation
US9027151B2 (en) * 2011-02-17 2015-05-05 Red Hat, Inc. Inhibiting denial-of-service attacks using group controls
US8839245B1 (en) 2012-06-18 2014-09-16 Bromium, Inc. Transferring files using a virtualized application
RU2460133C1 (ru) 2011-06-28 2012-08-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ защиты компьютерных приложений
US8886925B2 (en) 2011-10-11 2014-11-11 Citrix Systems, Inc. Protecting enterprise data through policy-based encryption of message attachments
US9245108B1 (en) 2012-03-13 2016-01-26 Bromium, Inc. Dynamic adjustment of the file format to identify untrusted files
US9032506B2 (en) 2012-08-09 2015-05-12 Cisco Technology, Inc. Multiple application containerization in a single container
US9087191B2 (en) 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9460283B2 (en) * 2012-10-09 2016-10-04 Dell Products L.P. Adaptive integrity validation for portable information handling systems
US9344762B2 (en) * 2012-10-18 2016-05-17 Broadcom Corporation Integration of untrusted applications and frameworks with a secure operating system environment
WO2014094653A1 (zh) 2012-12-20 2014-06-26 北京奇虎科技有限公司 一种用于检测恶意链接的设备、方法及系统
JP6070355B2 (ja) * 2013-03-28 2017-02-01 富士通株式会社 仮想マシン制御プログラム,仮想マシン制御方法,仮想マシン制御装置及びクラウドシステム
US9716996B2 (en) 2013-05-21 2017-07-25 Brocade Communications Systems, Inc. Method and system for selective and secure interaction of BYOD (bring your own device) with enterprise network through mobile wireless networks
GB201318723D0 (en) 2013-10-23 2013-12-04 Avecto Ltd Computer device and method for isolating untrusted content
CN103914647A (zh) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 基于本地虚拟化机制的程序隔离运行方法
CO6950443A2 (es) 2014-05-13 2014-05-20 Sicpa Holding Sa Patrón para codificar información digital sobre una superficie, y métodos de marcación y lectura
US20160342801A1 (en) * 2014-06-25 2016-11-24 defend7, Inc. Containerized security as a service
US9246690B1 (en) 2014-09-03 2016-01-26 Amazon Technologies, Inc. Secure execution environment services
US10516733B2 (en) * 2014-11-25 2019-12-24 Auth0, Inc. Multi-tenancy via code encapsulated in server requests
CN105138905A (zh) * 2015-08-25 2015-12-09 中国科学院信息工程研究所 Linux应用程序的隔离运行方法
US10635509B2 (en) * 2016-11-17 2020-04-28 Sung Jin Cho System and method for creating and managing an interactive network of applications

Also Published As

Publication number Publication date
AU2017275464B2 (en) 2021-08-12
US20170353496A1 (en) 2017-12-07
WO2017210065A1 (en) 2017-12-07
KR102386560B1 (ko) 2022-04-13
CO2018012982A2 (es) 2018-12-14
SG11201810295UA (en) 2018-12-28
AU2017275464A1 (en) 2018-11-22
RU2018142303A3 (zh) 2020-07-24
BR112018074347A2 (pt) 2019-03-06
RU2018142303A (ru) 2020-06-01
JP6982006B2 (ja) 2021-12-17
CL2018003297A1 (es) 2019-03-01
BR112018074347A8 (pt) 2023-01-31
US10855725B2 (en) 2020-12-01
KR20190015273A (ko) 2019-02-13
ES2806379T3 (es) 2021-02-17
NZ747895A (en) 2022-07-01
EP3465517B1 (en) 2020-05-13
IL263152B (en) 2021-12-01
RU2755880C2 (ru) 2021-09-22
PH12018550196A1 (en) 2019-09-30
CA3023472A1 (en) 2017-12-07
EP3465517A1 (en) 2019-04-10
MX2018014912A (es) 2019-05-06
ZA201807411B (en) 2020-01-29
IL263152A (en) 2018-12-31
CN109196505A (zh) 2019-01-11
JP2019517694A (ja) 2019-06-24

Similar Documents

Publication Publication Date Title
CN109196505B (zh) 基于硬件的虚拟化安全隔离
CN109923522B (zh) 匿名容器
US11290488B2 (en) Distribution and management of services in virtual environments
EP3610403B1 (en) Isolated container event monitoring
US10089458B2 (en) Separate, disposable execution environment for accessing unverified content
US10055231B1 (en) Network-access partitioning using virtual machines
US7966643B2 (en) Method and system for securing a remote file system
US11711345B2 (en) Split tunnel-based security
US11599675B2 (en) Detecting data leakage to websites accessed using a remote browsing infrastructure
US10078751B2 (en) Computer device and method for controlling untrusted access to a peripheral device
US9602538B1 (en) Network security policy enforcement integrated with DNS server
US11403397B2 (en) Cache system for consistent retrieval of related objects

Legal Events

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

Ref country code: HK

Ref legal event code: DE

Ref document number: 1263045

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant