CN109923522A - 匿名容器 - Google Patents

匿名容器 Download PDF

Info

Publication number
CN109923522A
CN109923522A CN201780068884.6A CN201780068884A CN109923522A CN 109923522 A CN109923522 A CN 109923522A CN 201780068884 A CN201780068884 A CN 201780068884A CN 109923522 A CN109923522 A CN 109923522A
Authority
CN
China
Prior art keywords
container
operating system
anonymous
host operating
user
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.)
Granted
Application number
CN201780068884.6A
Other languages
English (en)
Other versions
CN109923522B (zh
Inventor
B·M·舒尔茨
F·J·史密斯
D·瓦斯克斯·洛佩斯
A·米什拉
I·J·麦卡迪
J·A·斯塔克斯
J·D·埃伯索尔
A·斯里瓦斯塔瓦
H·R·普拉帕卡
M·埃伊根
S·E·本斯利
G·维斯瓦南坦
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 CN109923522A publication Critical patent/CN109923522A/zh
Application granted granted Critical
Publication of CN109923522B publication Critical patent/CN109923522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L63/1491Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文讨论匿名容器。在计算设备上运行的操作***(在本文中也被称为在主机设备上运行的主机操作***)通过激活与主机操作***隔离的匿名容器来防止应用访问个人信息(例如,用户信息或公司信息)。为了创建和激活匿名容器,容器管理器匿名化主机操作***的配置和设置数据,并将匿名配置和设置数据注入匿名容器。作为示例而非限制,这种匿名配置和设置数据可以包括应用数据、机器配置数据和用户设置数据。然后,主机操作***允许应用在匿名容器中运行。

Description

匿名容器
背景技术
我们生活在信息和数据将我们定义为人的时代。例如,银行数据定义了我们的财务状况并跟踪我们的资产,而政府数据则跟踪我们的税务信息、我们的驾驶执照、我们的法庭记录等。***支持在线购物和在实体店购物。有关我们健康的信息由医生、医院和药房存储。信息补充了我们的沟通,实现语音、视频和图片的共享。这种无缝的信息流改进了我们的生活方式,为生活和工作创造了便利的环境。
然而,该信息不应该是全局可访问的,并且在许多情况下,这种信息是在不知不觉中或非法获取或被盗的。信息泄漏(也称为信息批露)是使用技术时的关键问题。信息泄漏可能通过多种机制产生,并且可能是有意的也可能是无意的。这样的示例包括用户动作,其中用户通过诸如键盘的人机界面向应用输入信息。另外,诸如社交工程等技术可能会诱使用户泄漏信息。在一些情况下,即使是合法的应用也会访问用户的信息并泄漏此信息,或者使用该信息来创建用户的数字“足迹”。例如在一些情况下,在用户批露诸如用户的当前位置的个人信息之前,不允许用户使用应用。或者,除非用户向应用提供此类信息,否则应用可能无法正常运行。另外,恶意软件或攻击软件可以访问信息然后将其泄漏,并且许多这类攻击都未被用户检测到,并且一些复杂的攻击甚至可能无法***作***和防病毒软件检测到。附加地,计算设备感染通常发生在当用户浏览因特网到不受信任的网站时或者当他们下载或打开诸如应用和文档的不受信任的网络资源时。这些感染允许攻击者窃取用户的凭据,或者甚至可以控制计算设备,以使该计算设备重新用于攻击者自己的方式。
虽然对抗这些信息攻击的一种解决方案是关闭对计算设备的网络访问,但这严重限制了许多现代计算设备的功能。附加地,在工作场所环境中,禁用网络访问会妨碍员工的工作效率和工作满意度。作为妥协手段,许多雇主通过阻止员工访问不受信任的网络资源来实现有限的网络访问。然而,这种有限的网络访问会导致雇主的管理成本增加,因为雇主必须不断更新定义哪些网络资源不受信任的策略。这可能导致用户和雇主均对计算设备的使用感到沮丧。此外,用户希望定期利用的许多合法应用仍然可以访问个人或敏感信息,因此,可能难以限制对具有网络访问的每种类型的应用的使用。
发明内容
本文讨论了匿名容器。在计算设备上运行的操作***,本文也称为在主机设备上运行的主机操作***,通过激活与主机操作***隔离的匿名容器来防止应用访问个人信息(例如用户信息或公司信息)。为了创建和激活匿名容器,容器管理器匿名化主机操作***的配置和设置数据,并将匿名配置和设置数据注入匿名容器中。通过示例而非限制,这种匿名配置和设置数据可以包括应用数据、机器配置数据和用户设置数据。然后,主机操作***允许应用在匿名容器中运行。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在用以帮助确定所要求保护的主题内容的范围。
附图说明
参考附图描述了详细描述。在附图中,附图标记的最左边的(多个)数字标识首次出现附图标记的图。在说明书和附图中的不同实例中使用相同的附图标记可以指示相似或完全相同的项目。附图中所表示的实体可以指示一个或多个实体,并且因此可以在讨论中将单个或多个形式的实体互换地引用。
图1图示了根据一个或多个实施例的实现匿名容器的示例***。
图2图示了根据一个或多个实施例的用于实现匿名容器的示例***架构。
图3图示了可以生成匿名容器的示例环境。
图4是使用配置文件包重新生成匿名容器的示例环境。
图5是使用重置机器重新生成匿名容器的示例环境。
图6图示了实现凭证代理以管理在匿名容器中所录入的凭证的示例环境。
图7图示了可以实现保护用户数据的流水线处理方法的环境。
图8图示了实现配置存储库以存储可用于使容器熟悉的信息的环境。
图9是图示根据一个或多个实施例的用于实现匿名容器的示例过程的流程图。
图10图示了包括示例计算设备的示例***,该示例计算设备表示可以实现本文所描述的各种技术的一个或多个***和/或设备。
具体实施方式
本文讨论匿名容器。在计算设备上运行的操作***(在本文中也被称为在主机设备上运行的主机操作***)通过激活与主机操作***隔离的匿名容器来防止应用访问个人信息(例如用户信息或公司信息)。
为了创建和激活匿名容器,容器管理器匿名化主机操作***的配置和设置数据,并将匿名配置和设置数据注入匿名容器中。通过示例而非限制,这种匿名配置和设置数据可以包括应用数据、机器配置数据和用户设置数据。
在一些情况下,容器管理器生成具有“原始”配置的匿名容器,该“原始”配置是从主机操作***的预安装版本创建的。这样做,使应用看起来好像正在与从未使用过的操作***交互。备选地或附加地,容器管理器可以被实现为“随机化”匿名配置和设置数据,以便使匿名容器作为随机用户的计算设备出现在应用、恶意软件或攻击软件中。备选地或附加地,容器管理器可以被实现为利用故意误导应用、恶意软件或攻击软件的信息来“欺骗”匿名配置和设置数据。例如,容器管理器可以生成匿名配置和设置数据以指示匿名容器在日本东京,而主机操作***实际上在纽约。
然后,主机操作***允许应用在匿名容器中运行。通过能够访问匿名配置和设置数据,应用能够正常运行,但由于数据对应于原始操作***、随机数据或欺骗性数据,因此应用无法访问用户或企业的个人信息。
根据一个或多个方面,主机操作***被配置为出于各种不同的原因(诸如操作***服务事件或应用更新)终止或挂起匿名容器。然后,主机操作***可以利用相同的匿名配置和设置数据来重新生成匿名容器。
作为所描述的技术的示例,考虑使用web浏览器导航到诸如Facebook的社交联网网站的用户。当前,这样的社交联网网站可以向用户询问用户的位置,并且用户通常诸如通过允许应用访问他们的GPS位置来提供该信息。但是,现在,web浏览器在匿名容器中启动,并且因此web浏览器可以访问匿名配置和设置数据。例如,匿名配置和设置数据可以指示用户的位置在东京,而实际上用户实际上在纽约。因此,如果社交联网网站询问用户的位置,则将向网站提供与用户的实际位置不对应的该欺骗性位置。此外,如果web浏览器最终导航到包括恶意软件或攻击软件的网站,则恶意软件或攻击软件仅能够访问匿名配置和设置数据,并且因此不能窃取用户的个人信息。此外,在容器被感染的情况下,通过简单地挂起、暂停和/或停止匿名容器,可以容易地终止web浏览器、恶意软件或攻击软件。
然而,如果容器被挂起以终止恶意软件,或者响应于服务事件,则可以在下次启动web浏览器时容易地删除和重新生成匿名容器。例如,下次用户启动web浏览器时,容器管理器会注入被注入初始匿名容器中的相同匿名配置和设置数据。例如,即使用户仍在纽约,容器管理器也可以注入指示用户在东京的相同位置信息。
图1图示了根据一个或多个实施例的实现匿名容器的示例***100。***100至少部分地由主机设备实现。可以使用各种不同类型的计算设备中的任何一种来实现***100,诸如服务器计算机、台式计算机、膝上型计算机或上网本计算机、移动设备(例如平板电脑或平板设备、蜂窝电话或其他无线电话(例如智能手机)、记事本计算机、移动台)、可穿戴设备(例如眼镜、头戴式显示器、手表、手镯、虚拟现实眼镜或耳机、增强现实耳机或眼镜)、娱乐设备(例如娱乐装备、通信地耦合到显示设备的机顶盒、游戏控制台)、物联网(IoT)设备(例如具有允许与其他设备通信的软件、固件和/或硬件的物体或物品)、电视或其他显示设备、汽车计算机等。因此,计算设备实现***100的范围可以从具有大量存储器和处理器资源的完整资源设备(例如个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如传统机顶盒、手持式游戏机控制台)。
***100包括主机操作***102、管理和监视服务104以及web代理106。管理和监视服务104表示为实现主机操作***102的计算设备提供一个或多个管理策略的服务,如本文所讨论的。Web代理106表示控制对从实现主机操作***102的计算设备远程访问的一个或多个网络资源122(1),...,122(m)的访问的功能。例如在一个或多个实施例中,web代理106通过要求来自主机操作***102的认证来控制对从网络108访问的一个或多个资源的访问,如下面进一步详细讨论的。备选地,在一个或多个实施例中,实现主机操作***102的计算设备经由独立于web代理的网络108访问网络资源。网络108表示数据网络的功能,诸如因特网、局域网(LAN)、公共电话网络、内联网、其他公共和/或专有网络、其组合等。这样,经由网络108访问的网络资源122(1)、...、122(m)可以包括网站、web应用、电子邮件、文档等。
在一个或多个实施例中,主机操作***102、管理和监视服务104以及web代理106被实现为相同计算设备的一部分。备选地,管理和监视服务104和/或web代理106的至少一部分可以在与实现主机操作***102的设备分离且远离的设备上实现。例如在一个或多个实施例中,管理和监视服务104被实现为远离实现主机操作***102的计算设备定位的移动设备管理(MDM)服务。备选地或附加地,管理和监视服务104可以被实现为轻量级目录访问协议(LDAP)服务器,其远离实现主机操作***102的计算设备。类似地,web代理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)并允许一个或多个已激活的容器访问不受信任的网络资源。在一个或多个实现中,无论应用是否可信,都为应用激活匿名容器130。下面在标题为“匿名容器”的章节中更详细地讨论匿名容器的激活。HVSI子***110的功能将在下面进一步详细讨论。根据一个或多个实施例,HVSI子***110通过与策略管理器112通信来确定所请求的网络资源是否可信。
策略管理器112表示用于获得并存储针对实现主机操作***102的计算设备的一个或多个策略的功能。例如在一个或多个实施例中,策略管理器112获得并存储一个或多个管理策略,其为主机操作***102定义一个或多个可信网络资源。根据一个或多个实现,策略管理器112从管理和监视服务104获得并存储管理策略。备选地或附加地,策略管理器112获得并存储诸如来自网络108的来自远程源的一个或多个管理策略。附加地或备选地,策略管理器112从实现主机操作***102的设备的用户接收并存储一个或多个管理策略。
应用114包括由实现主机操作***102的计算设备的一个或多个处理器可执行的一个或多个应用。例如,应用114可包括web浏览器应用。备选地或附加地,应用114可以包括诸如电子邮件应用、文字处理应用、电子表格应用、视觉呈现应用、用于移动设备的“应用(app)”等应用。
网络过滤器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)的调度并确定哪些容器130(1),......,130(n)在什么时间在主机操作***102上运行。容器管理器118还负责为***100的个体用户激活一个或多个容器130(1),...,130(n)并确保***100的其他用户不能访问为单独用户创建的一个或多个容器130(1),...,130(n)。容器管理器118还被配置为从任何一个或多个所创建的容器130(1),...,130(n)收集用于遥测和安全指示符的日志和踪迹。例如在一个或多个实施例中,容器管理器118咨询(consult)被安装在主机操作***102上的防病毒应用来解释所收集的信息并将所监视的数据提供给HVSI子***110。取决于运行在主机操作***102的计算设备中的物理处理器和/或处理器核的数目,可以一次运行单个容器130(1),......,130(n)(例如在具有单个核的单个处理器的情况下)或者备选地多个容器130(1),...,130(n)可以同时运行(例如在多个处理器和/或多个处理器核的情况下)。附加地,在一个或多个实施例中,容器管理器118被配置为监视在一个或多个容器130(1),...,130(n)内被执行的用户配置改变。例如,容器管理器118被配置为检测与在容器130(1),...,130(n)之一中被访问的网站相关联的对用户偏好的改变。主机操作***102被配置为使用容器中的这些检测到的变化并将它们应用于在主机操作***中被访问的一个或多个相关网站。附加地,在一个或多个实施例中,容器管理器118被配置为针对应用激活匿名容器130,而不管应用是否可信。
安全子***120表示用于在主机操作***102上强制实施安全策略的功能。安全子***120被配置为核实用户登录到实现主机操作***102的设备、处理针对登录的用户的密码更改、为登录的用户创建访问令牌、等等。
每个容器130(1),......,130(n)可以以不同的方式来实现。容器130可以被实现为的一种类型的容器被称为过程容器。对于过程容器,容器内的应用过程就像它们在各自的***(例如计算设备)上操作一样运行,这是使用命名空间隔离来完成的。主机操作***102实现命名空间隔离。命名空间隔离向容器中的过程提供组合视图,该组合视图包括主机操作***102的共享部分和操作***的隔离部分,这些部分对于每个容器是特定的,诸如文件***、配置、网络等。
容器130可以被实现为的另一种类型的容器被称为虚拟化容器。对于虚拟化容器,虚拟化容器在轻量级虚拟机中运行,该虚拟机不具有被分配给虚拟机的特定主机物理存储器,而是具有虚拟地址支持的存储器页面(memory page)。因此,分配给虚拟机的存储器页面可以被换出到页面文件。轻量级虚拟机的使用在运行于容器中的过程之间提供附加的安全性和隔离。因此,虽然过程容器使用过程隔离或基于silo的过程隔离来实现其包容(containment),但虚拟化容器使用基于虚拟机的保护来实现超出正常过程边界所能够提供的更高级别的隔离。也可以使用物理存储器在虚拟机中运行容器。
在一个或多个实施例中,每个容器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隔离,以保护主机操作***免受不受信任的网络资源可能导致的攻击或感染。
主机操作***102被图示为包括HVSI子***110、策略管理器112、网络过滤器116、容器管理器118和安全子***120。附加地,主机操作***102包括应用202,其可以是图1中所图示的应用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被启动时,如果针对用户的容器尚不存在,则它调用容器管理器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使用远程桌面协议(RDP)的远程应用本地集成(RAIL)模式,该模式使用虚拟机总线216。以这种方式,主机操作***102可以在实现主机操作***102的设备的显示设备处显示虚拟应用206的接口。在一个或多个实施例中,接口被配置为使得主机操作***102的用户感知到接口是主机操作***本身的一部分。备选地,HVSI子***110被配置为显示与虚拟应用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。
下表提供了策略对象和对应的安全性参数的示例性集合,诸如上面讨论的那些。根据标准安全程序,该示例策略具有隐含的默认拒绝规则,其未被示出。然而,应该了解和理解,所讨论的策略对象和对应的安全性参数是示例性的而不是在范围上穷举的。
当主机操作***102启动时,HVSI子***110联系策略管理器112以获得针对主机操作***的可信网络资源列表,以及任何策略对象和对应的安全性参数。HVSI子***110聚合这些可信网络资源、策略对象和对应的安全性参数,并将该聚合策略应用于主机操作***102。在一个或多个实施例中,每次主机操作***102请求执行动作或尝试访问网络资源时,查询该聚合策略。例如,当主机操作***102请求打开在与策略对象“用于容器隔离的虚拟应用”相对应的安全性参数中所包括的应用202时,HVSI子***110使主机操作***102打开在隔离容器130中的该应用206的虚拟版本。
HVSI子***110附加地被配置为监视一个或多个隔离容器130内的活动,以确保容器不能访问任何可信网络资源。例如,如果web浏览器的虚拟版本在隔离容器130中运行,并且HVSI子***110检测到虚拟web浏览器正在尝试访问由策略管理器112指示为可信网络资源的网络资源,则HVSI子***110可以防止虚拟web浏览器打开或以其他方式访问该可信网络资源,并且相反地使得可信网络资源在主机操作***102上的对应web浏览器内被打开。通过对主机操作***102限制对可信网络资源的访问和打开,并且对一个或多个隔离容器130限制对不可信网络资源的访问和打开,HVSI子***110确保可信网络资源不被任何不可信网络资源破坏。
除了从策略管理器112接收可信网络资源、策略对象和对应安全性参数的列表之外,主机操作***102还被配置为观察可能影响针对主机操作***的策略的一个或多个本地事件。例如,考虑虚拟web浏览器在隔离容器130内运行的场景。HVSI子***110监视由隔离容器130内的虚拟web浏览器访问的每个网络资源的行为。当虚拟Web应用导航到不受信任的网络资源时,下载不可信网络资源可能导致容器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中所观察到的活动相匹配的策略模板或签名的模式来计算所需的策略。例如,如果虚拟web应用正在容器130中运行,并且虚拟web应用正尝试访问作为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查找期间被查询的网络资源处发起或终止的。为实现此目的,基于允许的网络资源的标识符在容器内被探测(plumb)到并与一个或多个网络资源名称相关联。容器中的网络堆栈在网络业务中包括这些标识符。网络过滤器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利用一个或多个web代理执行HTTP头检查,以促进主机操作***102和/或任何一个或多个隔离容器130之间的网络业务,诸如图1中所示的web代理106。备选地,根据一个或多个实施例,网络过滤器116被配置为实现其自己的HTTP代理。
为了支持代理环境中和网络变化中的网络通信功能,网络过滤器116包括网络地址转换器(NAT)。NAT向容器130提供专用网络和到达主机操作***102外部网络的网关。根据一个或多个实施例,NAT被配置为转发外部网络代理配置并将外部网络改变通知转发到主机操作***102。例如在一个或多个实施例中,当网络连接状态改变时,诸如当Wi-Fi(IEEE 802.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交互以执行根据一个或多个实施例的web代理认证。例如,许多企业***使用一个或多个web代理来控制针对企业的各个用户的因特网访问。这些web代理在允许各个用户或应用通过提示诸如用户名和相关联的密码的用户凭据来访问诸如网站的网络资源之前需要进行认证。相应地,网络过滤器116被配置为标识促进访问网站所需的web代理,诸如图1中所示的web代理106。然而,在隔离容器中运行的虚拟应用需要web代理认证的场景中,安全问题出现了。例如,在隔离容器130中打开并运行的一个或多个不可信网络资源可能获得对用户凭证的未授权访问并损害相关联用户帐户的安全性。
为了为在容器130中运行的需要web代理认证的虚拟应用206提供无缝的用户体验,HVSI子***110被配置为从主机操作***102向web代理提供用户凭证而不向容器130提供用户凭证。HVSI子***110被配置为通过在隔离容器内实现虚拟安全子***210来为在容器130中运行的虚拟应用206向web代理提供用户凭证。虚拟安全子***210被配置为与主机操作***102的安全子***120接口连接。例如在一个或多个实施例中,HVSI子***110检测到虚拟web应用206正在调用需要web代理认证的网络资源。HVSI子***110被配置为在隔离容器内实现虚拟安全子***210,使得虚拟安全子***210能够与主机操作***102的安全子***120接口连接。虚拟安全子***210和安全子***120之间的通信可以通过由HVSI子***110建立的连接来执行,诸如经由虚拟机总线216。
当容器130中的虚拟web应用206尝试经由web代理访问网络资源时,web代理返回对用户凭证的质询(challenge)。在该场景中,虚拟安全子***210被配置为调用主机操作***102的安全子***120以向web代理提供认证。响应于接收到该调用,安全子***120被配置为生成虚拟凭证blob,其指示用户凭证的所有权,而实际上不包含凭证blob内的用户凭证。如本文所讨论的,虚拟blob还可以被称为用户凭证的伪认证。安全子***120将所生成的虚拟凭证blob返回到虚拟安全子***210。然后,虚拟安全子***210将虚拟凭证blob提供给虚拟web应用206,使得虚拟web应用能够将虚拟凭证blob嵌入对web代理的HTTP响应中。以这种方式,容器130被配置为在不从主机操作***102接收实际用户凭证的情况下证明用户凭证的所有权。根据一个或多个实施例,通过向实际凭证应用散列(hash)安全功能并将散列凭证包括在虚拟blob内来执行虚拟blob内的凭证所有权的证明。这确保了用户凭证不会被可能在容器130中运行的任何不可信网络资源所损害。
备选地,如果虚拟安全子***210将用于用户凭证的web代理请求转发到主机操作***102的安全子***120,则安全子***120被配置为生成两个凭证blob。由安全子***120生成的第一凭证blob是如上所述的虚拟凭证blob。由安全子***120生成的第二凭证blob包含由web代理请求的实际用户凭证。在该场景中,虚拟凭证blob被提供给容器130中的虚拟安全子***210,并且包含实际用户凭证的blob被提供给主机操作***102中的网络过滤器116。如上所述,虚拟web应用206被配置为从虚拟安全子***210接收虚拟凭证blob,并将虚拟凭证blob嵌入对web代理的HTTP响应中。因为来自主机操作***102和容器130两者的所有网络业务都是通过网络过滤器116过滤的,所以网络过滤器116被配置为拦截来自容器的HTTP响应,并在向web代理传送HTTP响应之前将虚拟blob替换为实际用户凭证blob。根据一个或多个实施例,其中主机操作***102在嵌套计算环境中运行,可以在嵌套环境的每一层多次执行该凭证blob替换。备选地,在一个或多个实施例中,网络过滤器116探测容器130内所允许的网络资源标识符,以验证网络业务在DNS查找期间被查询的网络资源处发起和终止,如上所述。
当HVSI子***110确定主机操作***102使用如本文所讨论的策略管理器112、网络过滤器116和安全子***110来试图访问不可信网络资源时,HVSI子***110与容器管理器118通信以管理和监视一个或多个容器130以用于访问不可信的网络资源。
容器管理器
容器管理器118负责激活与主机操作***102隔离的一个或多个容器130以访问不受信任的网络资源。如本文所讨论的,激活诸如容器130的容器包括创建一个或多个新容器或恢复一个或多个挂起的容器的运行。根据各种实现,容器管理器118还被配置为匿名化一个或多个容器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,以确定是否存在容器基础映像(image)。如果容器管理器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)信息,以改进一个或多个隔离容器内的web浏览性能或其他网络活动。在一个或多个实施例中,容器管理器118维持从容器130访问了网络资源的早期实例进行的DNS查询的高速缓存,以及诸如因特网数据文件或网站cookie的HTTP数据,其使得容器中的未来请求能够访问不可信任的网站,以记住先前的用户偏好、配置或设置中的一个或多个。
除了从容器管理器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。
已经考虑了***的***架构,该***用于实现基于硬件的虚拟化安全隔离以保护计算设备免受与不可信网络资源相关联的攻击或感染,现在考虑根据一个或多个实施例的示例程序。
匿名容器
在一个或多个实现中,容器管理器118被配置为对容器130进行匿名化,使得应用不能访问敏感信息,诸如个人或公司信息。例如,公司或企业可以定义策略,该策略使所有应用在匿名容器中启动,以使应用不能够访问或收集敏感信息。同时,以应用能够正常运行的方式生成匿名容器。
作为示例,考虑图3,其图示了可以生成匿名容器的示例环境300。在环境300中,主机操作***102被图示为包括配置和设置数据302,在该示例中,配置和设置数据302包括应用配置数据304、机器配置数据306和用户设置308。应用配置数据304包括指示主机操作***102上的应用安装和更新的数据。机器配置数据306包括与在其上实现主机操作***102的计算设备的配置相对应的数据,诸如时间、日期、时区、驱动程序安装和更新、操作***设置、和传感器输入。用户设置数据308包括计算设备102的用户的个人信息,诸如用户名、用户元数据、用户文件等。
响应于在主机操作***102中接收到运行应用的请求,容器管理器118生成与主机操作***102隔离的匿名容器310,一个或多个应用312可以在主机操作***102中执行。为了创建和激活匿名容器310,容器管理器118匿名化主机操作***102的配置和设置数据304,并将匿名配置和设置数据318注入匿名容器310中。在该示例中,匿名配置和设置数据318包括匿名应用配置数据320、匿名机器配置数据322和匿名用户设置数据324。然而,值得注意的是,匿名容器310可以被注入各种不同类型的匿名数据。一般而言,匿名配置和设置数据318包括与主机操作***102的配置和设置数据302相同类型的数据。然而,数据是匿名的,并且因此不能被用来标识用户。以这种方式,如果应用312包括恶意软件314或攻击软件316,则它们被限制在匿名容器310内执行,并且因此不能损害主机操作***102。此外,因为配置和设置数据是匿名的,所以应用312、恶意软件314和攻击软件316不能访问或窃取来自用户的个人信息,或者可以被利用以标识用户位置的信息,或者生成用户的数字足迹。在一个或多个实现中,匿名配置和设置数据318以可以被添加到操作***映像的格式被存储(例如在稍后的时间),以便对操作***映像进行匿名化。备选地,匿名配置和设置数据318被存储为匿名操作***映像的一部分。
在一些情况下,容器管理器118生成具有“原始”配置的匿名容器310,该“原始”配置是从主机操作***102的预安装版本创建的。这样做使得它看起来像应用312一样正在与从未使用过的操作***进行交互。为了生成具有原始配置的匿名容器310,容器管理器118生成与新安装的主机操作***102对应的匿名配置和设置数据318的原始集合(例如,对应于主机操作***的注册表配置单元和文件)。然后,匿名配置和设置数据318的原始集合被存储在主机操作***102上。随后,每次为应用312激活新的匿名容器310时,容器管理器118访问匿名配置和设置数据318的原始集合,并将原始配置和设置数据318注入到匿名容器310中。这样做,使匿名容器310对应用312以及与应用312相关联的任何恶意软件314或攻击软件316呈现为主机操作***102的干净地构建的安装。
在一些情况下,为了确保配置和设置数据的原始集合包含适当的设置,容器管理器118可以在构建环境中离线地创建和预先提供配置和设置数据的原始集合。在一些实施例中,可以在主机操作***102上创建配置和设置数据的原始集合。当主机操作***102在安装之后首先启动时,可以在主机操作***102上创建配置和设置数据的原始集合。在此期间,主机操作***102具有配置和设置数据的原始集合(因为它尚未被使用),并且因此可以保存配置和设置数据的原始集合的副本或快照。备选地,在主机操作***102上,可以首先启动容器或虚拟机,并且因此该容器或虚拟机将具有配置和设置数据的原始集合,并且因此可以保存这些容器或虚拟机的副本或快照。备选地,主机或访客(虚拟机或容器)可以应用重置机制(例如重置为出厂默认值),以便生成配置和设置数据的原始集合。
备选地或附加地,容器管理器118可以使动态映像创建引擎供应知晓,将默认设置作为输入并使用原始配置和文件作为输入,在创建时将这些包括在映像中。在一些实施例中,操作***是组件化的。
在一些情况下,容器管理器118可以被实现为“随机化”匿名配置和设置数据318。例如,容器管理器118可以随机化配置和设置数据304以生成随机化的匿名配置和设置数据318,其然后被注入到匿名容器310中。例如,随机用户名、随机位置和随机设备类型可以被创建并被注入到匿名容器310中。因此,随机化的匿名配置和设置数据318使容器310向应用312、恶意软件314或附加软件316呈现为随机用户的个人计算设备。
在一些情况下,容器管理器118可以被实现为“欺骗”匿名配置和设置数据318。例如,容器管理器118可以利用关于用户或计算设备的、故意误导应用312、恶意软件314和攻击软件316的信息来“欺骗”匿名配置和设置数据318。欺骗性信息可以包括欺骗性传感器输入(例如位置、加速计、光检测)、欺骗性用户身份(例如用户名和用户元数据)、欺骗性机器配置、欺骗性应用信息等。例如,容器管理器118可以生成匿名配置和设置数据318,以指示匿名容器310在日本的东京(具有正确的位置、时间、日期、键盘输入和其他相关设置),而主机操作***102实际上是在纽约。在一些实施例中,VPN可以被用来将容器连接到也代理日本东京的网络连接性的VPN服务。作为另一示例,组织可以欺骗匿名配置和设置数据以指示主机操作***配置有特定语言,以便检测攻击特定语言的某个恶意软件和攻击软件。
在一些实施例中,配置和设置数据(例如原始数据、随机数据或欺骗性数据)必须被服务。这可能是由于所需的改变以确保与更新的操作***或应用的兼容性。如果要求服务,则将需要重建配置和文件,如上所述。如果配置和文件的重新生成不是主机本地的,则可以实现客户端服务510(图5)以将更新的数据下载到主机。在组件化操作***中,配置和文件可以被捆绑在由主机操作***102和/或更新服务508和客户端服务510识别的组件中。
容器管理器118可以有多种不同的方式来确定如何对容器进行匿名化。在一些情况下,容器管理器118可以通过使用户能够控制或设置该配置和设置数据来匿名化该配置和设置数据。在其他情况下,配置和设置数据可以每次匿名或随机被生成。在其他情况下,企业或公司控制和供应针对用户的配置和设置数据。
如图3所示,应用312以及任何恶意软件314或攻击软件316可以经由接口326访问随机化配置和设置数据318。因此,应用312、恶意软件314和攻击软件316能够正常运行,因为它们被允许访问配置和设置数据,但是他们不知道该信息不是与公司、用户或设备相关联的准确配置或设置数据。因此,如果匿名容器310被危害,则主机操作***102的文件的配置不会受到在匿名容器310中运行的恶意软件314或攻击软件316所创建的数据泄露(breach)的危害。此外,如在全文中所讨论的,在会话结束之后,可以破坏匿名容器310,这会破坏在匿名容器310中执行的恶意软件314或攻击软件316。
在一些情况下,容器管理器118还被配置为实现应用运行时分发方法,其中应用312分布在多个不同的匿名容器310上。例如,可以为每个应用312激活分离的匿名容器310,或者可以限制在匿名容器310中运行的应用的数目以防止主机操作***102的所有应用在单个匿名容器310中运行。这样做防止应用312检测到在主机操作***102上安装的其他应用,并且因此应用不能基于主机操作***102上所安装的应用的类型来生成用户或设备的指纹。
在各种实例中,匿名容器310由主机操作***102终止。存在主机操作***102可以终止匿名容器310的各种原因,包括操作***服务请求、应用更新或为了破坏在匿名容器中执行的恶意软件或攻击软件。
容器管理器118被配置为在终止之后通过对在终止时容器内存在的任何配置和设置进行分层来重新生成匿名容器310。例如,如果配置和设置数据已被欺骗以指示用户在东京(而用户实际上是在纽约),则这些设置可以被复制并被注入到重新生成的新匿名容器中。
在一个或多个实现中,容器管理器118使用配置文件包来重新生成匿名容器310,该配置文件包包括可用以重新生成新匿名容器的设置和配置。
作为示例,考虑图4,其示出了示例环境400,其中使用配置文件包来重新生成匿名容器。在该示例中,当前匿名容器402由主机操作***102终止。随后,为了重新生成匿名容器,容器管理器118使用配置文件包406重新生成新的匿名容器404。值得注意的是,新的匿名容器404包括在被终止的当前匿名容器402中所包括的相同匿名配置和设置数据318。在一些情况下,可以就地完成新匿名容器404的生成,并且可以应用新配置文件包406和当前匿名容器402之间的差异。
该配置文件包406包括在每个构建上重新创建的容器注册表配置单元的原始集合,以及标识主机操作***102上的可重用文件的配方文件。因此,配置文件包406支持新匿名容器404的快速有效的重新生成,也称为动态映像创建。值得注意的是,这种独特的方法保持容器的安全性和访客的用户匿名性两者,同时将访客设置无缝地转移到新的容器映像。
备选地,为了重新生成匿名容器,容器管理器118可以利用重置机器,该重置机器利用主机操作***102上的服务工件。作为示例,考虑图5,其图示了示例环境500,其中匿名容器使用重置机器来重新生成。在该示例中,当前匿名容器502由主机操作***102终止。随后,为了重新生成匿名容器,容器管理器118使用重置机器506重新生成新的匿名容器504。为了高效地实现该重新生成的过程并且在最短时间内,重置机器506可以利用更新服务508(位于远离主机操作***102的位置)和客户端服务510之间的API调用。
在这种情况下,重置机器通过重置主机操作***102来生成可适应的基础层。然后,来自当前匿名容器502的配置和设置数据(例如用户设置和应用数据)的另一层是基层之上的层。这样做保证了新匿名容器504的匿名性和安全性两者,同时保留可变设置。
在许多环境中,用户的身份和凭证(例如名称、密码等)是非常有价值的。然后,能够偷盗此类凭证的有效观察者可以欺骗用户的身份,以便获得对受保护信息的无限制访问。因此,在一个或多个实现中,容器管理器118被配置为通过创建凭证代理来保护用户的控制信道信息,诸如用户凭证,凭证代理被配置为管理在匿名容器中被录入的凭证。
作为示例,考虑图6,其图示了示例环境600,其中实现凭证代理以管理在匿名容器中被录入的凭证。在该示例中,凭证代理602在主机操作***102中被实现,并且被配置为管理在匿名容器中被录入的用户凭证604,在该示例中,匿名容器包括第一匿名容器606和第二匿名容器608。图6中还图示了凭证存储库610,其存储用户凭证608和可以由用户凭证604访问的资源(其被图示为第一资源612和第二资源614)。
在一个或多个实现中,凭证代理602由可信平台模块(TPM)支持,该可信平台模块包括被用来标识***的证书和关联密钥对,证明主机操作***102实际上具有TPM和与证书相关联的私钥,并且然后将用户凭证604提供给该***。
在该示例中,对给定资源集612和614的用户凭证604由主机操作***102的凭证代理602管理,并且该信任关系集合在主机操作***102和资源集之间被预先注册。因此,为了访问给定资源,用户经由主机操作***102录入PIN或一次性密码,这使得主机操作***102上的凭证代理602录入实际用户凭证604,从而允许访问来自该组资源的数据,而不将实际用户凭证604从凭证存储库610传送到匿名容器。
例如在图6中,为了使第一容器606访问第一资源612,第一容器606查询凭证代理602。响应于该查询,凭证代理602利用第一资源612进行认证。这样做使得第一匿名容器606能够访问第一资源612而不将用户凭证604传送到第一匿名容器606。类似地,为了使第二容器608访问第二资源614,第二容器608查询凭证代理602。然后,凭证代理602利用第二资源614进行认证。这样做使得第二容器608能够访问第二资源614而无需将用户凭证604传送到第二匿名容器608。在一个或多个实现中,凭证代理602和/或凭证存储库610可以被实现为远离主机操作***102运行的服务。
在一些环境中,除了用户的名称和凭证之外,保护用户的数据是至关重要的。因此,在一个或多个实现中,容器管理器118还被配置为保护用户的数据。为此,容器管理器118实现了将与凭证代理602结合使用的流水线处理方法。这样做为潜在感染的匿名容器提供了安全传输。
例如,考虑图7,其图示了可以实现保护用户数据的流水线处理方法的环境700。在该示例中,第一匿名容器606被图示为可能被感染,而第二匿名容器608被图示为是干净的。为了中继用户凭证604和用户数据,在第二容器608和凭证代理602之间创建第一安全信道702(例如HTTP或IPsec)。这样做对第一资源612进行认证。然后,第二安全信道704是通过第一容器606向第一资源612创建的。第二安全通道704看起来好像它起源于第一容器606,因为它具有第一匿名容器的相同的IP地址和其他设置,而事实上它实际上源自第二容器608。然后,数据从第一资源612被共享到第二容器608,并经由基于主机的输入和显示应用706被显示在主机操作***102上。在其他实现中,可以通过直接打开第二容器608来并行化容器,以访问第一资源612,从而绕过第一容器606。在一些实现中,将应用策略来保护来自第一匿名容器606的某些数据,同时丢弃在第一匿名容器606中的其他数据。一个示例可以包括使用第一匿名容器606作为隔离(quarantine)。在第一匿名容器606中打开并验证某些有风险的数据,第一匿名容器606可能潜在地感染第一匿名容器606,但不会感染***的其余部分。另一示例可以包括利用若干容器实现的多级隔离,以处理多个数据类别,诸如企业数据、个人数据、匿名数据等。这些容器可以具有不同的用户简档、所安装的不同应用等。这些容器之间的路由可以是串行的、并行的或遵循确保隔离保持有效的任何其他结构,从而最大限度地减少对恶意行为者的数据暴露。
容器管理器118可以确保匿名容器保持干净的其他方式可以包括:给容器短暂的使用期,对可以在容器中运行什么类型的应用或可执行文件施加限制,对什么类型的应用或者可执行文件可以被安装在容器中施加限制,或利用阻止所有未知应用安装的防病毒软件。
在一个或多个实现中,容器管理器118被配置为分散观察者的注意力以便实现匿名性。观察者可以被分散注意力的一种方式是使容器“熟悉”,从而引起“识别错误”。
可以以各种不同方式使容器熟悉。使容器熟悉的一种方式是通过使设置熟悉,通过示例而非限制,其可以包括:用户名中的文本串、用户的图片、用户的生物特征信息、用户的区域或位置、匿名容器的语言、在用户的区域或位置中所使用的公共硬件和/或驱动程序、或在用户的区域或位置中所使用的公共应用。可以从因特网、“最受欢迎的应用”的出版物和遥测中收集可用于使容器熟悉的信息。可以人工生成某些类型的信息,诸如映像。还可以向映像添加噪声或“斑点”以使标识更加困难。
该信息可以被收集在配置存储库中并被存储在用户简档集合中。例如,考虑图8,其图示了环境800,其中实现配置存储库以存储可用于使容器熟悉的信息。在该示例中,可用于使匿名容器802熟悉的信息作为用户简档806的集合而被存储在配置存储库804中。配置存储库804被通信地耦合到企业管理服务803,企业管理服务803还可以与主机操作102通信。可以将用户简档806中的一个或多个提供给主机操作***102。然后,容器管理器118可以将用户简档806注入一个或多个匿名容器802中。在一个或多个实现中,这可以包括预安装公共应用和驱动程序
在一些实现中,主机操作***102可以具有其自己的本地配置存储库808。容器管理器118可以使用户能够选择用于在匿名容器中使用的用户简档。在一些情况下,容器管理器118保留用户简档以确保不同时应用两个用户简档。
在一个或多个实现中,可以通过使“用法(usage)”熟悉来使容器熟悉。这样做会使观察者察觉到一个人正在使用正在运行的公共应用集合和与这些应用的事务,以及发送和接收预期输入和输出的设备和驱动程序的集合。
可以经由遥测或其他手段收集使容器熟悉的信息。该信息可以驻留在上面讨论的配置存储库804中,或者驻留在分离的配置存储库中。它还可以被存储在用户简档806中,或者被存储在不同的数据结构中。容器管理器118读取信息,并根据该信息来创建活动用户的仿真。在一些实现中,这可以包括与真实用户帐户和云服务交互,包括但不限于社交网络、电子邮件和在线购物。
示例程序
图9是图示根据一个或多个实施例的用于实现匿名容器的示例过程900的流程图。过程900由诸如图1的***100的***执行,并且可以用软件、固件、硬件或其组合来实现。过程900被示为动作的集合,并且不限于所示的用于执行各种动作的操作的顺序。过程900是用于实现匿名容器的示例过程;本文参考不同附图包括实现匿名容器的附加讨论。
在902处,接收请求以运行应用。当用户、管理员、程序、应用或***的其他实体运行诸如web浏览器的应用时,主机操作***102检测该请求。
在904处,响应于该请求,激活匿名容器。例如,容器管理器118激活与主机操作***102隔离的匿名容器310。为了创建和激活匿名容器310,容器管理器118匿名化主机操作***102的配置和设置数据304,并且将匿名配置和设置数据318注入匿名容器310中。匿名配置和设置数据318包括匿名应用配置数据320、匿名机器配置数据322和匿名用户设置数据324。
在一些情况下,容器管理器118生成具有“原始”配置的匿名容器310,该“原始”配置是从主机操作***102的预安装版本被创建的。备选地或附加地,容器管理器118可以被实现为“随机化”或“欺骗”匿名配置和设置数据318。
在906处,允许应用在匿名容器中运行。例如,允许应用312在匿名容器310中运行,并且任何恶意软件314或攻击软件316也限于在匿名容器310中运行。如此,应用312、恶意软件314和攻击软件316被限制为访问匿名配置和设置数据318。
在908处,终止匿名容器。例如,容器管理器118响应于操作***服务请求、应用更新或者为了破坏在匿名容器中执行的恶意软件或攻击软件而终止匿名容器310。
在910处,重新生成匿名容器。例如,容器管理器118在终止之后通过对终止时在容器内存在的任何配置和设置进行分层来重新生成匿名容器310。例如,如果配置和设置数据已被欺骗以指示用户在东京(而实际上用户是在纽约),则这些设置可以被复制并被注入到被重新生成的新匿名容器中。
示例***
尽管本文参考特定模块讨论了特定功能,但是应当注意,本文所讨论的各个模块的功能可以分离成多个模块,和/或多个模块的至少一些功能可以被组合成单个模块。附加地,本文所讨论的作为执行动作的特定模块包括执行动作的特定模块本身,或者备选地,特定模块调用或以其他方式访问执行动作(或者结合该特定模块执行动作)的另一组件或模块。因此,执行动作的特定模块包括执行动作的特定模块本身和/或由执行动作的特定模块调用或以其他方式访问的另一模块。
图10图示了通常在1000处的示例***,其包括示例计算设备1002,该示例计算设备1002表示可以实现本文所描述的各种技术的一个或多个***和/或设备。例如,计算设备1002可以是服务提供商的服务器、与客户端相关联的设备(例如客户端设备)、片上***和/或任何其他合适的计算设备或计算***。
如图所示的示例计算设备1002包括处理***1004、一个或多个计算机可读介质1006、以及彼此通信地耦合的一个或多个I/O接口1008。虽然未示出,但是计算设备1002还可以包括***总线或其他数据和命令传输***,其将各种组件彼此耦合。***总线可以包括任何一个总线结构或不同总线结构的组合,诸如存储器总线或存储器控制器、***总线、通用串行总线、和/或利用各种总线架构中的任何总线架构的处理器或本地总线。还构想了各种其他示例,诸如控制和数据线。
处理***1004表示使用硬件执行一个或多个操作的功能。相应地,处理***1004被图示为包括可以被配置为处理器、功能块等的硬件元件1010。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体来形成的其他逻辑器件。硬件元件1010不受形成它们的材料或其中采用的处理机构的限制。例如,处理器可以包括(多个)半导体和/或晶体管(例如电子集成电路(IC))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质1006被图示为包括存储器/存储装置1012。存储器/存储装置1012表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置1012可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、电阻RAM(ReRAM)、闪存、光盘、磁盘等)。存储器/存储装置1012可以包括固定介质(例如RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如闪存、可移除硬盘驱动器、光盘等)。计算机可读介质1006可以以各种其他方式来配置,如下面进一步描述的。
一个或多个输入/输出接口1008表示允许用户向计算设备1002录入命令和信息、并且还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风(例如用于语音输入)、扫描仪、触摸功能(例如电容式传感器或被配置为检测物理触摸的其他传感器)、相机(例如其可以采用可见波长或诸如红外频率的不可见波长来检测不涉及作为姿势的触摸的移动)、传感器(例如环境光传感器或运动传感器)等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备1002可以以如下面进一步描述的各种方式被配置以支持用户交互。
计算设备1002还包括主机操作***1014。主机操作***1014提供基于硬件的虚拟化安全隔离的各种管理,如上所述。主机操作***1014可以实现例如图1的主机操作***102。
本文可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。通常,这样的模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或其组合。本文所描述的技术的特征是平台无关的,意味着可以在具有各种处理器的各种计算平台上实现这些技术。
所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质被传送。计算机可读介质可以包括可以由计算设备1002访问的各种介质。通过示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”是指实现信息的持久存储的介质和/或设备、和/或有形的存储装置,与仅仅信号传输、载波或信号本身相反。因此,计算机可读存储介质指的是非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移除和不可移除介质的硬件、和/或以适于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据的信息的方法或技术实现的存储设备。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储器、硬盘、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或适于存储期望信息并且可以由计算机访问的其他存储设备、有形介质或制品。
“计算机可读信号介质”指的是信号承载介质,其被配置为诸如经由网络将指令传送到计算设备1002的硬件。信号介质通常可以实施计算机可读指令、数据结构、程序模块或经调制的数据信号中的其他数据,诸如载波、数据信号或其他运输机制。信号介质还包括任何信息递送介质。术语“经调制的数据信号”表示以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质、以及诸如声学、RF、红外和其他无线介质的无线介质。
如前所述,硬件元件1010和计算机可读介质1006表示以硬件形式实现的指令、模块、可编程设备逻辑和/或固定设备逻辑,其可以在一些实施例中被采用以实现本文所描述的技术的至少一些方面。硬件元件可以包括集成电路或片上***的组件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅或其他硬件设备的其他实现。在该上下文中,硬件元件可以作为处理设备操作,该处理设备执行由该硬件元件实施的指令、模块和/或逻辑所限定的程序任务,以及该硬件元件可以操作作为被用来存储用于执行的指令的硬件设备,例如先前所描述的计算机可读存储介质。
还可以采用前述的组合来实现本文所描述的各种技术和模块。相应地,软件、硬件或程序模块和其他程序模块可以被实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1010实施的一个或多个指令和/或逻辑。计算设备1002可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。相应地,作为由计算设备1002作为软件可执行的模块的模块的实现可以至少部分地以硬件实现,例如通过处理***的计算机可读存储介质和/或硬件元件1010的使用。指令和/或功能可以由一个或多个制品(例如一个或多个计算设备1002和/或处理***1004)可执行/可操作,以实现本文所描述的技术、模块和示例。
如图10中进一步所示,示例***1000使得无处不在的环境能够在个人计算机(PC)、电视设备和/或移动设备上运行应用时实现无缝的用户体验。服务和应用在所有三种环境中运行时基本相似,以便在利用应用、玩视频游戏、观看视频等时从一个设备转换到下一个设备时获得共同的用户体验。
在示例***1000中,多个设备通过中央计算设备互连。中央计算设备可以是多个设备的本地设备,或者可以远离多个设备。在一个或多个实施例中,中央计算设备可以是通过网络、因特网或其他数据通信链路被连接到多个设备的一个或多个服务器计算机的云。
在一个或多个实施例中,该互连架构使得能够跨多个设备递送功能,以向多个设备的用户提供共同且无缝的体验。多个设备中的每一个可以具有不同的物理要求和能力,并且中央计算设备使用平台来实现向设备递送体验,该体验既适合于设备又是所有设备共有的。在一个或多个实施例中,创建一类目标设备,并且为通用类设备定制体验。可以由设备的物理特征、使用类型或其他共同特征来定义一类设备。
在各种实现中,计算设备1002可以采用各种不同的配置,诸如用于计算机1016、移动设备1018和电视1020的使用。这些配置中的每一个包括可以具有通常不同的构造和能力的设备,并且因此可以根据一个或多个不同的设备类来配置计算设备1002。例如,计算设备1002可以被实现为计算机1016类设备,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备1002还可以被实现为包括移动设备的移动1018类的设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板电脑、多屏幕计算机等等。计算设备1002还可以被实现为电视1020类的设备,其包括在休闲观看环境中具有或被连接到通常更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。
本文所描述的技术可以由计算设备1002的这些各种配置支持,并且不限于本文所描述的技术的特定示例。该功能还可以全部或部分地通过使用分布式***来实现,诸如经由如下所述的平台1024在“云”1022上被实现。
云1022包括和/或代表用于资源1026的平台1024。平台1024抽象云1022的硬件(例如服务器)和软件资源的底层功能。资源1026可以包括在远离计算设备1002的服务器上执行计算机处理时可以被利用的应用和/或数据。资源1026还可以包括通过因特网和/或通过诸如蜂窝网络或Wi-Fi网络的订户网络提供的服务。
平台1024可以抽象资源和功能以将计算设备1002与其他计算设备连接。平台1024还可以用于抽象资源的规模以提供对应的规模级别,以满足经由平台1024实现的对资源1026的需求。相应地,在互连的设备实施例中,本文所描述的功能的实现可以分布在整个***1000中。例如,该功能可以部分地在计算设备1002上以及经由抽象云1022的功能的平台1024来实现。应该注意,云1022可以被安排在无数的配置中。例如,云1022可以被实现为单个云,被实现为云1022的多个实例(都表现为单个云),或者利用在云1022后面实现的平台1024的一个或多个实例来实现,并且表现得好像平台1024的一个或多个实例是在云中被实现的。
在本文的讨论中,描述了各种不同的实施例。应当了解和理解的是,本文所描述的每个实施例可以单独使用或与本文所描述的一个或多个其他实施例结合使用。
结论和示例实现
本文所描述的示例实现包括但不限于以下示例中的一个或多个示例的一个或任何组合:
在一个或多个示例中,一种方法包括:接收在主机操作***中运行应用的请求;由主机操作***激活匿名容器,该匿名容器与主机操作***隔离,并且包括匿名配置和设置数据;并且允许应用在匿名容器中运行。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中匿名配置和设置数据包括匿名应用配置数据、匿名机器配置数据或匿名用户设置数据中的一种或多种。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中匿名配置和设置数据包括与新安装的主机操作***相对应的配置和设置数据的原始集合。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中配置和设置数据的原始集合被创建为操作***编译和介质创建的一部分。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中配置和设置数据的原始集合是在主机操作***上本地被创建的。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中匿名配置和设置数据是随机化或欺骗性的。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中匿名配置和设置数据以可以被添加到操作***映像的格式来存储,以便对操作***映像进行匿名化,或其中匿名配置和设置数据被存储作为匿名操作***映像的一部分。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中主机操作***还被配置为响应于从至少一个附加应用接收在主机操作***中运行的请求,为至少一个附加应用激活分离的匿名容器。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,还包括响应于操作***服务请求、应用更新或在匿名容器中执行的恶意软件或攻击软件的检测,终止匿名容器。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,还包括利用匿名配置和设置数据重新生成新的匿名容器,并且允许应用在新的匿名容器中运行。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中主机操作***的匿名配置和设置数据被与VPN服务配对以欺骗网络位置。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,还包括通过与在主机操作***中被实现的凭证代理交互来访问一个或多个资源,该凭证代理被配置为访问被存储在凭证存储库中的用户凭证,并且将用户凭证提供给一个或多个资源以用于访问,而无需用户凭证从凭证存储库被传送到匿名容器。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,还包括使匿名容器的设置熟悉。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中设置包括以下中的一个或多个:用户名的文本串、用户的图片、用户的生物特征信息、用户的区域或位置、匿名容器的语言、在用户的区域或位置中被使用的公共硬件或驱动程序、或在用户的区域或位置中被使用的公共应用。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,还包括收集可用于使匿名容器的设置熟悉的信息,以及将信息存储在配置存储库中的一个或多个用户简档中。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中使匿名容器的设置熟悉进一步包括将用户简档中的一个用户简档注入到匿名容器中。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中使匿名容器的设置熟悉进一步包括预安装公共应用和驱动程序。
单独描述或与上文或下文描述的任何其他示例组合描述的示例还包括通过与一个或多个用户帐户或云服务交互来使匿名容器的使用熟悉。
单独描述或与上文或下文描述的任何其他示例组合描述的示例,其中主机操作***还被配置为激活一个或多个其他匿名容器,以与主机操作***中的匿名容器同时运行。
在一个或多个示例中,一种***包括:主机操作***;至少一个存储器和一个处理器,用以实现在主机操作***中被实现的容器管理器,该容器管理器被配置为:接收在主机操作***中运行应用的请求;激活匿名容器,该匿名容器与主机操作***隔离并且包括匿名配置和设置数据;并且允许应用在匿名容器中运行。
尽管已经用结构特征和/或方法动作专用的语言描述了示例实现,但是应该理解,所附权利要求中定义的实现不一定限于所描述的特定特征或动作。相反,公开了特定特征和动作作为实现所要求保护的特征的示例形式。

Claims (15)

1.一种方法,包括:
接收在主机操作***中运行应用的请求;
由所述主机操作***激活匿名容器,所述匿名容器与所述主机操作***隔离并且包括匿名配置和设置数据;以及
允许所述应用在所述匿名容器中运行。
2.根据权利要求1所述的方法,其中所述匿名配置和设置数据包括以下中的一种或多种:匿名应用配置数据、匿名机器配置数据、或匿名用户设置数据。
3.根据权利要求1所述的方法,其中所述匿名配置和设置数据包括与新安装的主机操作***相对应的所述配置和设置数据的原始集合。
4.根据权利要求3所述的方法,其中所述配置和设置数据的所述原始集合被创建作为操作***编译和介质创建的一部分。
5.根据权利要求3所述的方法,其中所述配置和设置数据的所述原始集合是在所述主机操作***上本地被创建的。
6.根据权利要求1所述的方法,其中所述匿名配置和设置数据是随机化的或欺骗性的。
7.根据权利要求1所述的方法,其中所述匿名配置和设置数据以能够被添加到操作***映像的格式被存储,以便匿名化所述操作***映像,或者其中所述匿名配置和设置数据被存储作为匿名操作***映像的部分。
8.根据权利要求1所述的方法,其中所述主机操作***还被配置为:响应于从至少一个附加应用接收在所述主机操作***中运行的请求,为所述至少一个附加应用激活分离的匿名容器。
9.根据权利要求1所述的方法,还包括响应于操作***服务请求、应用更新、或在所述匿名容器中执行的恶意软件或攻击软件的检测,终止所述匿名容器。
10.根据权利要求9所述的方法,还包括利用所述匿名配置和设置数据来重新生成新的匿名容器,并且允许所述应用在所述新的匿名容器中运行。
11.根据权利要求1所述的方法,其中所述主机操作***的所述匿名配置和设置数据被与VPN服务配对以欺骗网络位置。
12.根据权利要求1所述的方法,还包括通过与在所述主机操作***中被实现的凭证代理交互来访问一个或多个资源,所述凭证代理被配置为访问在凭证存储库中被存储的用户凭证,并且将所述用户凭证提供给所述一个或多个资源以用于访问,而无需所述用户凭证从所述凭证存储库被传送到所述匿名容器。
13.根据权利要求1所述的方法,还包括使所述匿名容器的设置熟悉。
14.根据权利要求13所述的方法,其中所述设置包括以下中的一个或多个:用户名的文本串、用户的图片、所述用户的生物特征信息、所述用户的区域或位置、所述匿名容器的语言、在所述用户的所述区域或所述位置中被使用的公共硬件或驱动程序、或在所述用户的所述区域或所述位置中被使用的公共应用。
15.根据权利要求13所述的方法,还包括:
收集可用以使所述匿名容器的所述设置熟悉的信息;
将所述信息存储在配置存储库中的一个或多个用户简档中;以及
将所述用户简档中的一个用户简档注入到所述匿名容器中。
CN201780068884.6A 2016-11-12 2017-11-07 匿名容器 Active CN109923522B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662421254P 2016-11-12 2016-11-12
US62/421,254 2016-11-12
US15/430,301 US10375111B2 (en) 2016-11-12 2017-02-10 Anonymous containers
US15/430,301 2017-02-10
PCT/US2017/060260 WO2018089318A1 (en) 2016-11-12 2017-11-07 Anonymous containers

Publications (2)

Publication Number Publication Date
CN109923522A true CN109923522A (zh) 2019-06-21
CN109923522B CN109923522B (zh) 2023-09-22

Family

ID=62108870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780068884.6A Active CN109923522B (zh) 2016-11-12 2017-11-07 匿名容器

Country Status (4)

Country Link
US (1) US10375111B2 (zh)
EP (1) EP3538994A1 (zh)
CN (1) CN109923522B (zh)
WO (1) WO2018089318A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427758A (zh) * 2019-08-08 2019-11-08 北京智游网安科技有限公司 位置欺骗检测方法、智能终端及存储介质
CN114072797A (zh) * 2019-07-22 2022-02-18 国际商业机器公司 互联网活动划分
US20230011468A1 (en) * 2021-07-06 2023-01-12 Dell Products L.P. Mapping container user and group ids to host

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10764572B2 (en) * 2016-10-13 2020-09-01 Hewlett-Packard Development Company, L.P. Monitor usage information
US20180248770A1 (en) 2017-02-28 2018-08-30 Arista Networks, Inc. System and method of network operating system containers
US11423140B1 (en) * 2017-03-27 2022-08-23 Melih Abdulhayoglu Auto-containment of guest user applications
US10951644B1 (en) * 2017-04-07 2021-03-16 Comodo Security Solutions, Inc. Auto-containment of potentially vulnerable applications
US10503895B2 (en) * 2017-04-11 2019-12-10 Red Hat, Inc. Runtime non-intrusive container security introspection and remediation
US10796591B2 (en) * 2017-04-11 2020-10-06 SpoonRead Inc. Electronic document presentation management system
US10904278B2 (en) 2017-05-26 2021-01-26 Alien Vault, Inc. Detection system for network security threats
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
US11223601B2 (en) 2017-09-28 2022-01-11 L3 Technologies, Inc. Network isolation for collaboration software
US11374906B2 (en) 2017-09-28 2022-06-28 L3 Technologies, Inc. Data exfiltration system and methods
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
US11159627B1 (en) * 2017-10-20 2021-10-26 Parallels International Gmbh Seamless remote network redirection
US11550898B2 (en) 2017-10-23 2023-01-10 L3 Technologies, Inc. Browser application implementing sandbox based internet isolation
US10664592B2 (en) * 2018-03-22 2020-05-26 International Business Machines Corporation Method and system to securely run applications using containers
US10992519B2 (en) * 2018-03-26 2021-04-27 Alien Vault, Inc. Storage system for network information
US10635428B2 (en) 2018-03-30 2020-04-28 Arista Networks, Inc. System and method for in-service update of software
US10887287B2 (en) * 2018-05-11 2021-01-05 Citrix Systems, Inc. Connecting client devices to anonymous sessions via helpers
CN110737926B (zh) * 2018-07-19 2022-03-25 华为技术有限公司 一种显示方法、装置及存储介质
US11656924B2 (en) * 2018-08-03 2023-05-23 Samsung Electronics Co., Ltd. System and method for dynamic volume management
US11677713B2 (en) * 2018-10-05 2023-06-13 Vmware, Inc. Domain-name-based network-connection attestation
US11025672B2 (en) * 2018-10-25 2021-06-01 Palantir Technologies Inc. Approaches for securing middleware data access
US10846179B2 (en) 2018-11-05 2020-11-24 Arista Networks, Inc. Hitless repair for network device components
US11327814B2 (en) * 2018-11-28 2022-05-10 International Business Machines Corporation Semaphores for serverless computing
US11301231B2 (en) 2019-04-05 2022-04-12 Arista Networks, Inc. Dynamic run time programming of hardware tables
US11392467B2 (en) 2019-04-17 2022-07-19 Microsoft Technology Licensing, Llc Failover between decentralized identity stores
US11190512B2 (en) 2019-04-17 2021-11-30 Microsoft Technology Licensing, Llc Integrity attestation of attestation component
US11429743B2 (en) 2019-04-29 2022-08-30 Microsoft Technology Licensing, Llc Localization of DID-related claims and data
US11381567B2 (en) 2019-04-29 2022-07-05 Microsoft Technology Licensing, Llc Execution of an application within a scope of user-granted permission
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
US11126540B2 (en) 2019-06-13 2021-09-21 Paypal, Inc. Big data application lifecycle management
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
US11271958B2 (en) 2019-09-20 2022-03-08 International Business Machines Corporation Efficient unsupervised anomaly detection on homomorphically encrypted data
US10614213B1 (en) * 2019-11-18 2020-04-07 Clean.io, Inc. Detecting malicious code existing in internet advertisements by ongoing sandbox monitoring
US11057381B1 (en) * 2020-04-29 2021-07-06 Snowflake Inc. Using remotely stored credentials to access external resources
US11632294B2 (en) * 2020-05-19 2023-04-18 Microsoft Technology Licensing, Llc Configuration techniques for managed host operating systems and containerized applications instantiated thereby
US11689505B2 (en) * 2021-06-28 2023-06-27 Cisco Technology, Inc. Dynamic proxy response from application container
US20230036739A1 (en) * 2021-07-28 2023-02-02 Red Hat, Inc. Secure container image builds
US20230105105A1 (en) * 2021-10-06 2023-04-06 Numecent Holdings, Inc. User environment management
US20240037229A1 (en) * 2022-07-28 2024-02-01 Pure Storage, Inc. Monitoring for Security Threats in a Container System

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1846393A (zh) * 2003-09-05 2006-10-11 斯科特·R·科普兰 个人计算机因特网安全***
US20090125902A1 (en) * 2007-03-01 2009-05-14 Ghosh Anup K On-demand disposable virtual work system
US20090217351A1 (en) * 2008-02-25 2009-08-27 Lloyd Leon Burch Techniques for anonymous internet access
CN101673215A (zh) * 2008-09-09 2010-03-17 联想(北京)有限公司 一种计算机和虚拟环境中用户管理方法
CN101827101A (zh) * 2010-04-20 2010-09-08 中国人民解放军理工大学指挥自动化学院 基于可信隔离运行环境的信息资产保护方法
US20110047613A1 (en) * 2009-08-21 2011-02-24 Walsh Daniel J Systems and methods for providing an isolated execution environment for accessing untrusted content
US20110296412A1 (en) * 2010-05-28 2011-12-01 Gaurav Banga Approaches for securing an internet endpoint using fine-grained operating system virtualization
US20130191924A1 (en) * 2012-01-25 2013-07-25 Gianni Tedesco Approaches for Protecting Sensitive Data Within a Guest Operating System
CN103620613A (zh) * 2011-03-28 2014-03-05 迈克菲股份有限公司 用于基于虚拟机监视器的反恶意软件安全的***和方法
CN103812862A (zh) * 2014-01-23 2014-05-21 厦门密安信息技术有限责任公司 可信安全云计算构成方法
CN103914647A (zh) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 基于本地虚拟化机制的程序隔离运行方法
US20140278972A1 (en) * 2013-03-15 2014-09-18 Liveramp, Inc. Anonymous information management
CN104268484A (zh) * 2014-09-24 2015-01-07 科云(上海)信息技术有限公司 一种基于虚拟隔离机制的云环境下数据防泄漏方法
CN104737517A (zh) * 2012-09-07 2015-06-24 甲骨文国际公司 基于ldap的多客户云内身份管理***
US20150235052A1 (en) * 2014-02-17 2015-08-20 Samsung Electronics Co., Ltd. Electronic device and method for protecting users privacy
US9148428B1 (en) * 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
CN105453097A (zh) * 2013-05-31 2016-03-30 微软技术许可有限责任公司 受约束驱动程序平台在用户模式下在沙箱中运行驱动程序
GB201607545D0 (en) * 2016-04-29 2016-06-15 Fujitsu Ltd System, method, and program for storing and controlling access to anonymous behavioural data
US20160170651A1 (en) * 2014-12-11 2016-06-16 Guangzhou Ucweb Computer Technology Co., Ltd. Method, apparatus, and system for reducing memory usage of a browser in a portable terminal device
US20160188909A1 (en) * 2014-12-31 2016-06-30 Google Inc. Trusted computing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078740B2 (en) 2005-06-03 2011-12-13 Microsoft Corporation Running internet applications with low rights
US9552497B2 (en) 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US8640187B2 (en) 2010-05-28 2014-01-28 Red Hat, Inc. Systems and methods for providing an fully functional isolated execution environment for accessing content
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
WO2012167529A1 (zh) 2011-10-24 2012-12-13 华为技术有限公司 在Linux容器中启动应用程序的方法和***
US9645861B2 (en) 2014-04-29 2017-05-09 Good Technology Holdings Limited Method and system for managing and presenting multiple application containers as a single logical container
SG10201500698YA (en) 2015-01-29 2016-08-30 Huawei Internat Pte Ltd Method for data protection using isolated environment in mobile device
US9537873B2 (en) 2015-02-20 2017-01-03 Authentic8, Inc. Secure analysis application for accessing web resources
US9582268B2 (en) 2015-05-27 2017-02-28 Runnable Inc. Automatic communications graphing for a source application

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1846393A (zh) * 2003-09-05 2006-10-11 斯科特·R·科普兰 个人计算机因特网安全***
US20090125902A1 (en) * 2007-03-01 2009-05-14 Ghosh Anup K On-demand disposable virtual work system
US20090217351A1 (en) * 2008-02-25 2009-08-27 Lloyd Leon Burch Techniques for anonymous internet access
CN101673215A (zh) * 2008-09-09 2010-03-17 联想(北京)有限公司 一种计算机和虚拟环境中用户管理方法
US20110047613A1 (en) * 2009-08-21 2011-02-24 Walsh Daniel J Systems and methods for providing an isolated execution environment for accessing untrusted content
CN101827101A (zh) * 2010-04-20 2010-09-08 中国人民解放军理工大学指挥自动化学院 基于可信隔离运行环境的信息资产保护方法
US20110296412A1 (en) * 2010-05-28 2011-12-01 Gaurav Banga Approaches for securing an internet endpoint using fine-grained operating system virtualization
CN103620613A (zh) * 2011-03-28 2014-03-05 迈克菲股份有限公司 用于基于虚拟机监视器的反恶意软件安全的***和方法
US9148428B1 (en) * 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
US20130191924A1 (en) * 2012-01-25 2013-07-25 Gianni Tedesco Approaches for Protecting Sensitive Data Within a Guest Operating System
CN104737517A (zh) * 2012-09-07 2015-06-24 甲骨文国际公司 基于ldap的多客户云内身份管理***
US20140278972A1 (en) * 2013-03-15 2014-09-18 Liveramp, Inc. Anonymous information management
CN105453097A (zh) * 2013-05-31 2016-03-30 微软技术许可有限责任公司 受约束驱动程序平台在用户模式下在沙箱中运行驱动程序
CN103812862A (zh) * 2014-01-23 2014-05-21 厦门密安信息技术有限责任公司 可信安全云计算构成方法
US20150235052A1 (en) * 2014-02-17 2015-08-20 Samsung Electronics Co., Ltd. Electronic device and method for protecting users privacy
CN103914647A (zh) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 基于本地虚拟化机制的程序隔离运行方法
CN104268484A (zh) * 2014-09-24 2015-01-07 科云(上海)信息技术有限公司 一种基于虚拟隔离机制的云环境下数据防泄漏方法
US20160170651A1 (en) * 2014-12-11 2016-06-16 Guangzhou Ucweb Computer Technology Co., Ltd. Method, apparatus, and system for reducing memory usage of a browser in a portable terminal device
US20160188909A1 (en) * 2014-12-31 2016-06-30 Google Inc. Trusted computing
GB201607545D0 (en) * 2016-04-29 2016-06-15 Fujitsu Ltd System, method, and program for storing and controlling access to anonymous behavioural data

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
JOANNA: "Qubes OS Architecture", 《ARCHIVE网页》 *
JOANNA: "Qubes OS Architecture", 《ARCHIVE网页》, 1 January 2010 (2010-01-01), pages 5 - 36 *
RANKIN KYLE: "Secure Desktops with Qubes: Compartmentalization", 《LINUX JOURNAL》, no. 266, pages 1 - 8 *
RANKIN KYLE: "Secure Desktops with Qubes: Installation", 《LINUX JOURNAL》, no. 265, pages 1 - 8, XP093032902 *
匿名者: "Anonymizing your MAC Address", 《ARCHIVE网页》 *
匿名者: "Anonymizing your MAC Address", 《ARCHIVE网页》, 17 August 2016 (2016-08-17), pages 1 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114072797A (zh) * 2019-07-22 2022-02-18 国际商业机器公司 互联网活动划分
CN114072797B (zh) * 2019-07-22 2022-10-21 国际商业机器公司 用于web容器的方法和***
US11979334B2 (en) 2019-07-22 2024-05-07 International Business Machines Corporation Internet activity compartmentalization
CN110427758A (zh) * 2019-08-08 2019-11-08 北京智游网安科技有限公司 位置欺骗检测方法、智能终端及存储介质
US20230011468A1 (en) * 2021-07-06 2023-01-12 Dell Products L.P. Mapping container user and group ids to host
US11995199B2 (en) * 2021-07-06 2024-05-28 Dell Products L.P. Mapping container user and group IDs to host

Also Published As

Publication number Publication date
EP3538994A1 (en) 2019-09-18
US20180139238A1 (en) 2018-05-17
US10375111B2 (en) 2019-08-06
WO2018089318A1 (en) 2018-05-17
CN109923522B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN109923522A (zh) 匿名容器
ES2806379T3 (es) Aislamiento de seguridad virtualizado basado en hardware
US20220224726A1 (en) Distribution and Management of Services in Virtual Environments
US10708304B2 (en) Honeypot network services
US10686758B2 (en) Elastic outbound gateway
US11281775B2 (en) Cloud storage scanner
US9672360B2 (en) Secure computer architectures, systems, and applications
US10762209B2 (en) Boot security
CA3113673C (en) Systems and methods for consistent enforcement policy across different saas applications via embedded browser
GB2551813A (en) Mobile device policy enforcement
Dubrawsky Eleventh Hour Security+: Exam SY0-201 Study Guide
Mooney et al. Your guide to authenticating mobile devices

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