CN110168504A - 虚拟环境中服务的分发和管理 - Google Patents

虚拟环境中服务的分发和管理 Download PDF

Info

Publication number
CN110168504A
CN110168504A CN201780082640.3A CN201780082640A CN110168504A CN 110168504 A CN110168504 A CN 110168504A CN 201780082640 A CN201780082640 A CN 201780082640A CN 110168504 A CN110168504 A CN 110168504A
Authority
CN
China
Prior art keywords
service
container
client
operating system
host
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
CN201780082640.3A
Other languages
English (en)
Other versions
CN110168504B (zh
Inventor
H·R·普拉帕卡
M·S·晨切弗
B·M·舒尔茨
J·D·维斯瓦尔
F·J·史密斯
J·A·斯塔克斯
R·O·沃尔科特
M·B·埃伯索尔
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 CN110168504A publication Critical patent/CN110168504A/zh
Application granted granted Critical
Publication of CN110168504B publication Critical patent/CN110168504B/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/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept
    • 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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

本文描述了在虚拟环境中分发和管理服务。在一个或多个实现中,服务分发和管理模型被实现,其中系统服务和应用无缝地跨多个容器被分发,该多个容器各自实现不同的运行时环境。在一个或多个实现中,用于在计算设备的主机操作系统中分发对服务的访问的系统包括:主机操作系统,该主机操作系统被配置为实现主机运行时环境;以及,一个或多个服务,该一个或多个服务由主机操作系统实现。该系统还包括:服务控制管理器,该服务控制管理器被配置为实现被实现在客户端运行时环境中的服务的客户端存根与被实现在与第一客户端运行时环境分离的服务运行时环境中的服务的服务提供者之间的通信。

Description

虚拟环境中服务的分发和管理
背景技术
基于虚拟机的虚拟化提供与物理机相同的隔离,同时提供灵活性和密度。现今,许多服务器场景在企业和云中都采用容器。在企业和云计算获利的同时,容器也有希望用于客户端设备。
发明内容
本文描述了在虚拟环境中的分发和管理服务。在一个或多个实现中,实现了服务分发和管理模型,其中系统服务和应用无缝地跨多个容器被分发,该多个容器各自实现不同的运行时环境。
在一个或多个实现中,一种用于在计算设备的主机操作系统中分发对服务的访问的系统,包括:主机操作系统,该主机操作系统被配置为实现主机运行时环境;以及,一个或多个服务,该一个或多个服务由主机操作系统实现。该系统还包括:服务控制管理器,该服务控制管理器被配置为实现服务的客户端存根与服务的服务提供者之间的通信,服务的客户端存根被实现在客户端运行时环境中,该服务的服务提供者被实现在与第一客户端运行时环境分离的服务运行时环境中。
在一个或多个实现中,在主机运行时环境中提供服务控制管理器,该服务控制管理器被配置为跨容器分发和管理服务。在服务控制管理器处从被实现在第一容器的客户端运行时环境中的客户端的客户端存根接收访问服务的请求。针对安全规则和策略集验证请求,并且如果基于该安全规则和策略集,客户端被许可访问服务,则向客户端授予对服务的访问。接下来,如果服务的服务提供者是可用的,则向客户端返回连接信息。服务提供者可以被实现在与第一容器分离的第二容器的服务运行时环境中。备选地,如果服务的服务提供者是不可用的,则在新的服务运行时环境中启动服务提供者的新实例并且向客户端返回连接信息。
提供本发明内容是以简化形式来介绍一系列构思,下面在具体实施方式中进一步描述了这些构思。本发明内容不旨在标识所要求保护的主题的关键特征或者必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
参照附图描述了具体实施方式。在附图中,附图标记的(多个)最左边的数字表示其中附图标记首次出现的附图。在本说明书和附图中的不同实例中使用相同的附图标记可以指示相似或者相同的项。在附图中表示的实体可以指示一个或多个实体,并且因此,在讨论中,可以互换地引用实体的单数形式或者复数形式。
图1图示了根据一个或多个实施例的在虚拟环境中实现分发和管理服务的示例系统。
图2图示了根据一个或多个实施例的用于在虚拟环境中分发和管理服务的示例系统架构。
图3图示了由主机操作系统实现的、在其中服务被分离成服务提供者和客户端存根的主机运行时环境。
图4图示了由主机操作系统实现的、在其中实现集中式服务分发和管理模型的主机运行时环境。
图5图示了由主机操作系统实现的、在其中将主机服务控制管理器和服务提供者提供至客户端存根作为高度可用的服务端点的主机运行时环境。
图6图示了向组件对象模型(COM)服务应用服务分发和管理模型的示例。
图7图示了向域名系统(DNS)服务应用安全模型的示例。
图8图示了其中服务控制管理器和服务提供者与主机运行时环境被解耦的主机运行环境的示例。
图9是图示了根据一个或多个实施例的用于在虚拟环境中实现分发和管理服务的示例过程的流程图。
图10图示了包括代表可以实现本文所描述的多种技术的一个或多个系统和/或设备的示例计算设备的示例系统。
具体实施方式
基于虚拟机的虚拟化提供与物理机相同的隔离,同时提供灵活性和密度。基于容器的虚拟化提供更轻量的虚拟化环境、改进的兼容性和更低的操作成本。现今,许多服务器场景在企业和云中采用容器。在企业和云计算获利的同时,容器也有希望用于客户端。不止于提供极好的软件开发环境,容器还将提供有关安全和隔离的特征的下一代。容器通过共享操作系统的方面来达成其轻量级属性。这可以包括:共享文件和文件夹、共享配、共享设备、以及共享操作系统服务。在一些环境(诸如,友好的多租户托管)中,可以对重叠过程进行“去除重复”,从而实现更有效的资源利用。
本文描述了在虚拟环境中分发和管理服务。在一个或多个实现中,服务分发和管理模型被实现,其中系统服务和应用无缝地跨多个容器被分发,该多个容器各自实施不同的运行时环境。与现有的容器模型相比较,该服务分发和管理模型向应用提供相似级别的服务,但是显著降低了每个运行时环境的开销,使得容器的客户操作系统使用更少的硬件资源。
为了实现轻量级运行时环境并且降低复杂度,服务分发和管理模型将每个服务分成两个组件:服务提供者和客户端存根。服务提供者和客户端存根可以被实现在单独的容器中,或者它们可以被实现在主机运行时环境中。因此,如果特定容器需要访问服务,则容器托管服务的客户端存根,该客户端存根被配置为与可以在不同的容器中或者在主机运行时环境中运行的服务提供者通信。值得注意的是,通过将服务分离成客户端存根和服务提供者,服务分发和管理模型使特定的服务将能跨不同的容器和运行时环境被共享。例如,单个服务提供者可以被实现在第一容器中并且由多个不同客户端存根共享,该多个不同的客户端存根各自被实现在单独的容器中。
图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站点、web应用、电子邮件、文档等。
在一个或多个实施例中,主机操作系统102、管理和监测服务104以及web代理106被实现为相同计算设备的一部分。备选地,管理和监测服务104和/或web代理106的至少一部分可以被实现在与实现主机操作系统102的设备分离并且远离该设备的设备上。例如,在一个或多个实施例中,管理和监测服务104被实现为远离实现主机操作系统102的计算设备定位的移动设备管理(MDM)服务。备选或者附加地,管理和监测服务104可以被实现为远离实现主机操作系统102的计算设备定位的轻量级目录访问协议(LDAP)服务器。同样,可以远离实现主机操作系统102的设备实现web代理106。
管理和监测服务104被配置为向主机操作系统102提供(例如,推送)策略。在一个或多个实施例中,管理和监测服务104被配置为以规则的间隔(诸如,当系统启动时、每天等)来向主机操作系统102推送策略。备选地,管理和监测服务104可以被配置为每当存在对用于主机操作系统的策略的更新时向主机操作系统102推送策略。虽然本文参考的是策略被推送至主机操作系统102,但是管理和监测服务104被配置为经由任何合适的数据传输方法(例如,串流、基于文件的更新等)来向主机操作系统提供策略。备选地,在一个或多个实施例中,主机操作系统102被配置为从管理和监测服务104获得(例如,拉取)策略。一些实现可以组合推送技术和拉取技术来获得策略。管理和监测服务104具有两个角色。首先,管理和监测服务104接收针对通常对主机操作系统102的用户可访问的个体网络资源122(1)、...、122(m)的管理配置。在一个或多个实施例中,这些网络资源与个体的信任级别相关联。例如,雇主可以将与雇主的web站点相关联的任何网络资源定义为具有较高的信任级别。相应地,用于主机操作系统102的策略指示与雇主的web站点相关联的任何网络资源是受信任网络资源。管理和监测服务104的第二个角色是从主机操作系统102接收有关与个体的网络资源相关联的、监测到的活动的反馈,并且将该监测到的信息编译成针对管理员的报告。该编译的报告可以由管理员使用来更新与主机操作系统102的受信任网络资源有关的策略。
管理和监测服务104可以被配置为从实现主机操作系统102的设备的管理员接收策略配置数据。如本文讨论的,策略描述与受信任网络资源(诸如,受信任web站点、受信任网络位置、受信任网络等)有关的信息。当管理和监测服务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)以确定所请求的网络资源是否受信任的功能。通过例如,策略管理器112公开这些网络隔离查询API。如果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还负责激活一个或多个容器130(1)、...、130(n)以用于系统100的个体用户,并且负责确保系统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)中的一个中访问的web站点相关联的用户偏好的改变。主机操作系统102被配置为使用容器中的这些检测到的改变,并且将它们应用于在主机操作系统中访问的一个或多个相关web站点。附加地,在一个或多个实施例中,容器管理器118被配置为激活用于应用的匿名容器130,不管应用是否受信任。
安全子系统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至少部分地由主机设备实现。与上面有关可以被用于实现图1所示系统100的类型的讨论类似,各种不同类型的计算设备中的任何计算设备可以被用于实现系统架构200。
在图示的示例中,实现系统架构200的计算设备包括主机操作系统102和容器130。主机操作系统102与任何一个或多个容器130被隔离以保护主机操作系统免于受到可能由不受信任网络资源而引起的攻击或者影响。
主机操作系统102被图示为包括HVSI子系统110、策略管理器112、网络过滤器116、容器管理器118和安全子系统120。附加地,主机操作系统102包括应用202,该应用202可以是在图1中图示的应用114中的一个应用。应用202包括HVSI库204,将在下面进一步详细讨论该HVSI库204的功能。
容器130包括虚拟应用206,该虚拟应用206表示被包括在主机操作系统102中的应用202的实例。容器130附加地包括虚拟安全子系统210,在下面进一步详细讨论了该虚拟安全子系统210的功能。附加地,容器130包括登录系统214,该登录系统214表示用以管理和监测由实现系统架构200的设备激活的一个或多个容器130内的网络资源活动的内容管理器118的功能。
主机操作系统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子系统在其它时间被启动,诸如,由应用202的HVSI库204在主机操作系统启动应用202时启动。
当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正请求导航到特定web页面,则HVSI子系统110将与特定web页面相关联的信息与来自策略管理器112的一个或多个策略相比较,并且响应于确定特定web页面受信任而许可应用202访问特定web页面。例如,HVSI子系统110基于以下中的一项或多项来确定特定web页面受信任:特定web页面的完全限定域名(FQDN)、利用域名服务器(DNS)的根站点域名、互联网协议(IP)地址、或者相似的统一资源定位符(URL)寻址方法。根据一个或多个实施例,HVSI子系统110附加地被配置为通过从远离计算设备102实现的、维护恶意网络资源列表的基于云的服务接收信息来确定网络资源是否受信任。例如,如果HVSI子系统110断定应用202正请求导航到特定web页面,则HVSI子系统110经由网络108来咨询基于云的服务以将特定web页面与被存储在基于云的服务上的潜在恶意网络资源的列表相比较。如果基于云的服务指示特定web站点包括在潜在恶意网络资源的列表中,则将特定web页面确定为不受信任。
备选地,如果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)模式,该远程桌面协议(RDP)使用虚拟机总线216。以这种方式,主机操作系统102可以在实现主机操作系统102的设备的显示设备处显示虚拟应用206的界面。在一个或多个实施例中,界面被配置成使得主机操作系统102的用户将界面认知为主机操作系统本身的一部分。备选地,HVSI子系统110被配置为显示与虚拟应用206对应的界面,该虚拟应用206具有对所显示的界面与一个或多个不受信任网络资源相对应的视觉指示。在其它实施例中,HVSI子系统110使用X Window系统或者备选远程桌面实现来显示与虚拟应用206对应的界面。
在容器130被容器管理器118激活之后,网络过滤器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中打开的虚拟应用的打印设定(print setting)。针对该策略对象的对应安全参数指示在隔离容器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检测到虚拟网络浏览器正在尝试访问由策略管理器112指示为受信任网络资源的网络资源,则HVSI子系统110可以防止虚拟web浏览器打开或者以其它方式访问该受信任网络资源,并且替代地使得受信任的网络资源将在主机操作系统102上的对应web浏览器内被打开。通过对主机操作系统102限制对受信任网络资源的访问和打开,并且对一个或多个隔离容器130限制对不受信任网络资源的访问和打开,HVSI子系统110确保受信任网络资源不被任何不受信任网络资源破坏。
除了从策略管理器112接收受信任网络资源列表、策略对象和对应的安全参数之外,主机操作系统102被配置为观察可能影响用于主机操作系统的策略的一个或多个本地事件。例如,考虑虚拟web浏览器正在隔离容器130内运行的场景。HVSI子系统110监测隔离容器130内的由虚拟web浏览器所访问的每个网络资源的行为。当虚拟web应用导航到不受信任网络资源时,下载不受信任网络资源可能引起容器130的注册表被以不期望的方式写入。使用容器管理器118(在下面进一步详细讨论了该容器管理器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中运行,并且在URL与策略模板中的模式相匹配时虚拟web应用尝试访问网络资源,则HVSI子系统110计算风险级别并且更新策略。这动态地引起被应用于容器130中的虚拟应用的特定动作,诸如,允许动作、阻止动作或者重新重定向动作。在该实施例中,策略是动态的,将本地评估和策略从管理和监测服务104卸载到HVSI子系统110。
作为备选示例,考虑用户从容器130内的不受信任web站点下载并且安装新应用的场景。在该示例中,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的计算设备的防火墙或者其它安全软件中。根据一个或多个实施例,当在主机操作系统102处接收到策略时,将网络过滤器116安装在主机操作系统上。例如,当策略管理器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),该一个或多个(IOCTL)被配置为允许或者阻止用于主机操作系统102和任何一个或多个容器130两者的网络流量。在其它实现中,通过API、文件或者命令外壳(command shell)来执行该配置。
网络过滤器116被配置为监测网络流量(例如,HTTP流量)以确保主机操作系统102和容器130没有访问针对相应的该主机操作系统或者容器不被允许的网络资源。为了监测HTTP流量,网络过滤器116利用促进主机操作系统102和/或任何一个或多个隔离容器130之间的网络流量的一个或多个web代理(诸如,在图1中图示的web代理106)来执行HTTP报头检查。备选地,根据一个或多个实施例,网络过滤器116被配置为实现其自己的HTTP代理。
为了在代理环境中和跨网络变化地支持网络通信功能,网络过滤器116包括网络地址转换器(NAT)。NAT向容器130提供专用网络和网关以到达在主机操作系统102外部的网络。根据一个或多个实施例,NAT被配置为转发外部web代理配置并且将外部网络改变通知转发到主机操作系统。例如,在一个或多个实施例中,当网络连接状态改变时(诸如,当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代理需要通过向用户提示凭证(诸如,用户名和相关联的密码)来在允许个体用户或者应用访问网络资源(诸如,web站点)之前进行认证。相应地,网络过滤器116被配置为标识促进访问web站点所需的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进行接口连接。可以通过由HVSI子系统110建立的连接(诸如,经由虚拟机总线216)来执行虚拟安全子系统210与安全子系统120之间的通信。
当容器130中的虚拟web应用206尝试经由web代理来访问网络资源时,web代理返回针对用户凭证的质询(challenge)。在该场景中,虚拟安全子系统210被配置为调用主机操作系统102的安全子系统120以向web代理提供认证。响应于接收到该调用,安全子系统120被配置为生成虚设凭证二进制团块(dummy credential blob),该虚设凭证二进制团块指示用户凭证的所有权,但是实际上不将用户凭证包含在凭证二进制团块内。如本文讨论的,虚设二进制团块还可以被称为用户凭证的伪认证。安全子系统120将生成的虚设凭证二进制团块返回到虚拟安全子系统210。然后,虚拟安全子系统210将虚设凭证二进制团块提供给虚拟web应用206,使得虚拟web应用可以将虚设凭证二进制团块嵌入在去往web代理的HTTP响应中。以这种方式,容器130被配置为在不从主机操作系统102接收实际用户凭证的情况下证明用户凭证的所有权。根据一个或多个实施例,通过向实际凭证应用散列安全函数并且将散列凭证包括在虚设二进制团块中来执行对虚设二进制团块内的凭证所有权的证明。这确保了用户凭证不会被可以在容器130中运行的任何不受信任网络资源所损害。
备选地,如果虚拟安全子系统210将针对用户凭证的web代理请求转发到主机操作系统102的安全子系统120,则安全子系统120被配置为生成两个凭证二进制团块。由安全子系统120生成的第一个凭证二进制团块是如上面描述的虚设凭证二进制团块。由安全子系统120生成的第二个凭证二进制团块包含web代理所请求的实际用户凭证。在该场景中,虚设凭证二进制团块被提供至容器130中的虚拟安全子系统210,而包括实际用户凭证的二进制团块被提供给主机操作系统102中的网络过滤器116。如上面讨论的,虚拟web应用206被配置为从虚拟安全子系统210接收虚设凭证二进制团块,并且将虚设凭证二进制团块嵌入在去往web代理的HTTP响应中。由于是通过网络过滤器116来对来自主机操作系统102和容器130的所有网络流量进行过滤,因此网络过滤器116被配置为拦截来自容器的HTTP响应并且在将HTTP响应传输至web代理之前利用实际用户凭证二进制团块来替换虚设二进制团块。根据一个或多个实施例,其中主机操作系统102在嵌套的计算环境中运行,在嵌套的环境的每一层可以执行多次这种凭证二进制团块替换。备选地,在一个或多个实施例中,如上面讨论的,网络过滤器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。如果容器管理器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可以创建容器相比,容器管理器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维护从早期实例进行的DNS查询的缓存以记住以前的用户偏好、配置或者设定中的一个或多个,在早期实例中,容器130访问网络资源以及HTTP数据,诸如,互联网数据文件或者实现容器中对访问不受信任web站点的未来请求的web站点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。
已经考虑了用于实现基于硬件的虚拟化安全隔离以保护计算设备免于受到与不受信任网络资源相关联的攻击或者影响的系统的系统架构,现在考虑根据一个或多个实施例的示例过程。注意,虽然本说明书为基于硬件的虚拟化安全隔离提供了系统架构,但是其它系统也可以被配置为利用本文所讨论的技术,诸如,服务器和云系统。
在虚拟环境中分发和管理服务
本文描述了在虚拟环境中分发和管理服务。在一个或多个实现中,容器管理器118实现服务分发和管理模型,在该服务分发和管理模型中,系统服务和应用无缝地跨多个容器被分发,该多个容器各自实现不同的运行时环境。与现有的容器模型相比较,该服务分发和管理模型向应用提供相似级别的服务,但是显著降低了每个运行时环境的开销,使得容器的客户操作系统使用较少的硬件资源。
为了达成轻量级运行时环境并且降低复杂度,服务分发和管理模型将每个服务分成两个组件:服务提供者和客户端存根。服务提供者和客户端存根可以被实现在单独的容器中,或者它们可以被实现在主机运行时环境中。因此,如果特定容器需要访问服务,则容器托管服务的客户端存根,该客户端存根被配置为与可以在不同的容器中或者在主机运行时环境中运行的服务提供者通信。值得注意的是,通过将服务分离成客户端存根和服务提供者,服务分发和管理模型支持在不同的容器和运行时环境中共享特定服务。例如,单个服务提供者可以被实现在第一容器中并且由各自被实现在单独的容器中的多个不同客户端存根共享。
作为示例,考虑图示了由主机操作系统102实现的在其中服务被分成服务提供者和客户端存根的主机运行时环境300的图3。在该示例中,在容器305的服务运行时环境304中执行服务的服务提供者302,并且在与容器305分离的容器310的客户端运行时环境308中执行服务的客户端存根306。虽然本文将运行时环境讨论为被实现在单独的容器中,但是要了解,客户端运行时环境可以备选地被实现在单独的虚拟机中。
如本文描述的,服务提供者302和客户端存根306各自与服务相关联。通过示例的方式而非限制,这些服务可以包括:活动目录服务、应用层网关服务、应用管理服务、浏览器服务、分发式链路追踪服务、分发式事务协调器服务、DNS客户端、事件日志、可扩展认证协议、索引服务、互联网连接共享服务、网络位置意识服务、网络商店接口服务、NTLM安全支持提供者、对等名称解析协议、即插即用服务、打印机后台处理程序服务、远程过程调用、路由和远程访问服务、二次登录服务、安全账户管理器、系统事件通知服务、任务调度器、音频服务、防火墙服务、扫描仪和摄像头输入服务、定时器服务、更新服务或者消息传送服务。
为了配置和监测服务的到达和离开,容器管理器118可以利用“基于连接的”服务分发和管理模型或者“集中式”服务分发和管理模型。在“基于连接的”模型中,基于每个连接来配置通信参数,并且通信的发起方负责配置。这种配置类型的示例是套接字通信。在“集中式”模型中,基于规则和策略集以集中的方式来配置通信参数。这种配置的示例是的视窗防护。
作为集中式服务分发和管理模型的示例,考虑图示了由主机操作系统102实现的在其中实现集中式服务分发和管理模型的主机运行时环境400的图4。在该示例中,实现集中式服务分发和管理模型以通过利用主机服务控制管理器402来控制服务提供者302与客户端存根306之间的通信。主机服务控制管理器402被实现为支持被实现在容器305的服务运行时环境304中的服务提供者与被实现在容器310的客户端运行时环境308中的客户端存根306之间的通信。
为了访问服务,客户端使用客户端存根306来请求对该服务的访问。主机服务控制管理器402接收并且处理来自客户端存根306的客户端请求,该主机服务控制管理器402针对安全规则和策略集404来验证客户端请求。主机服务控制管理器402实施安全规则和策略404以便确定是否许可客户端或者运行时环境访问特定服务。安全规则和策略404可以被存储为主机服务控制管理器402的一部分,被单独地存储在主机操作系统102上,或者被存储在一些其它位置(诸如,文件服务器或者云可访问的存储装置)中。
如果主机服务控制管理器402确定许可客户端或者运行时环境访问服务,则主机服务控制管理器402向客户端授予访问权限。然后,主机服务控制管理器402检查服务提供者302的可用性,并且如果服务提供者302是可用的,则主机服务控制管理器402向客户端返回连接信息,该连接信息使客户端和服务提供者302能够通过直接连接406来通信。备选地,如果主机服务控制管理器402确定服务提供者302是不可用的,则主机服务控制管理器402可以使用由主机计算服务408提供的功能来在主机运行时环境400中或者在新的运行时环境中启动服务提供者302的新实例。
在一个或多个实现中,主机服务控制管理器402被配置为基于需求来管理服务提供者302。如果针对特定服务提供者302不存在需求,则主机服务控制管理器402可以终止特定服务提供者302以节省系统资源。
在一些情况下,可以采用容器来支持许多不同的客户端运行时环境。为了有效地管理同时实现的多个不同客户端运行时环境,服务分发和管理模型可以启用服务提供者302的多个实例和/或主机服务控制管理器402的多个实例。在这种情况下,可以预先将每个运行时环境和每个容器提供给特定服务提供者302和主机服务控制管理器402。这可以通过主机服务控制管理器容量规划被预先确定并且被存储在安全规则和策略404中。
服务分发和管理模型提供服务,这些服务对依赖于它们的进程是可发现的并且高度可用的。图5图示了由主机操作系统102实现的在其中将主机服务控制管理器402和服务提供者302提供给客户端存根306作为高度可用的服务端点502的主机运行时环境500。为了确保服务端点502是可发现的,服务端点502可以被实现为标准的名称。然而,存在服务端点502可以由客户端动态地发现(诸如,通过查询/响应、查找、预配置等)的许多可能的方式。在一些情况下,当客户端存根306查询服务端点502的标准名称时,服务端点502标识可用的主机服务控制管理器402并且将其与客户端存根306相关联。可用的主机服务控制管理器402然后标识适当的服务提供者302并且遵循上面关于图4讨论的技术。注意,在一些实现中,可以在给定主机运行时环境500中提供多个服务端点502。
服务端点502监测对服务提供者302和主机服务控制管理器402实例的利用。当服务提供者302或者主机服务控制管理器402实例不满足性能阈值时,服务端点502联系主机计算服务408以添加另一服务提供者302或者主机服务控制管理器402实例。当联系主机计算服务408时,主机服务控制管理器402可以查询安全规则和策略404以确保新的请求符合安全规则和策略404。
在一个或多个实现中,服务提供者302可以被配置有附加属性,诸如,其托管的服务的特殊集合或者其服务的客户端存根组306。当这是真实情况时,服务端点502可以将这些属性与服务提供者302相关联,同时还监测服务提供者302并且联系主机计算服务408以请求主机服务控制管理器402或者服务提供者302的附加实例。还可以将服务提供者302的附加属性添加到安全规则和策略404。重要的是要注意,容器的一些分发式部署可以跨越多个主机运行时环境。这将取决于服务要求(诸如,延迟和吞吐量)以及基础架构满足这些要求的能力。
图6图示了向组件对象模型(COM)服务应用服务分发和管理模型的示例600。
在该示例中,被实现在容器310中的客户端运行时环境308包括与组件对象模型(COM)602服务相关联的客户端存根306、客户端服务控制管理器(服务控制管理器)604、远程过程调用(RPC)606和客户端注册表608。被实现在容器305中的服务运行时环境304包括与组件对象模型602服务相关联的服务提供者302、服务器服务控制管理器(服务控制管理器)610、远程过程调用(RPC)612和服务器注册表614。
在该示例中,当在容器310中创建了客户端运行时环境308时,客户端注册表608被配置使得客户端服务控制管理器604知道如何访问主机服务控制管理器402以请求对服务的访问。针对每个COM 602服务,在HKEY_CLASSES_ROOT\CLSID\{CLSID}和HKEY_CLASSES_ROOT\AppID\{CLSID}中存在配置信息。客户端注册表608被填充有有关被许可使用的服务的信息,但是不包括有关不许可访问的服务的信息。主机注册表616被配置使得主机服务控制管理器402知道允许管理哪些服务提供者302。
当在主机注册表616中注册了新的服务提供者时,主机服务控制管理器402更新CLSID注册数据库,同时还处理针对COM对象实例的客户端请求。客户端通过调用诸如具有COM对象的CLSID的CoCreateInstance的函数来从COM库请求对COM对象的接口指针。COM库查询主机服务控制管理器402以找到与所请求的CLSID对应的服务器。主机服务控制管理器402使用CLSID注册数据库并且对服务器进行定位并且请求创建来自服务器所提供的类工厂的COM对象。如果没有启动服务,则服务控制管理器可以决定使用主机计算服务408来启动托管所请求的服务提供者的新服务运行时环境。如果成功,则COM库向客户端返回接口指针。然后,客户端能够直接与服务提供者302通信。
更详细地,考虑COM服务的客户端存根请求服务的访问权限的以下示例。首先,客户端存根306通过调用CoCreateInstance({CLSID})来请求对服务的访问。该请求由客户端服务控制管理器604处理,该客户端服务控制管理器604使用客户注册表608和RPC 606来连接至主机服务控制管理器402(例如,通过VmBus)。接下来,客户端服务控制管理器604将服务{CLSID}传递到主机服务控制管理器402。基于安全规则和策略404,主机服务控制管理器402接受或者拒绝访问服务的请求。如果准许访问,则主机服务控制管理器402检查主机注册表616以找出如何提供与{CLSID}对应的服务。如果服务已经启动并且运行,则主机服务控制管理器402可以决定重新使用服务提供者302的该实例。这样,主机服务控制管理器402可以执行负载平衡功能。然而,如果主机服务控制管理器402决定启动服务提供者302的新实例,则主机服务控制管理器402在新的容器中创建新的服务运行时环境,在该新的服务运行时环境中注入并且启动服务提供者302,并且向客户端服务控制管理器604返回连接信息。然后,客户端服务控制管理器402将连接信息提供给客户端存根604,并且向COM 602服务指示如何直接连接至服务提供者302。值得注意的是,必须特别注意新运行时环境的寿命,因为所提出的设计引入了容器间依赖关系。然而,使用IUnknown接口(AddRef和Release),服务提供者302知道其参考计数下降至零的时间。在这种情况下,服务提供者302可以决定关闭其本身以节省系统资源。因此,所描述的技术使现有的COM客户端和COM服务提供者能无缝地跨不同的运行时环境通信。
值得注意的是,在单独的运行时环境中运行服务提供者302通过隔离提供了增强的安全性。该设计不仅保护主机运行时环境免于受到内核攻击和利用,而且其还确保服务可用性。例如,利用一个服务提供者将不会导致被另一服务提供者拒绝服务。附加地,在单独的运行时环境中运行客户端为友好的多租户托管提供了极好的平台。只运行小存根并且共享服务会引起轻量级运行时环境,较高的密度和降低成本的机会。
图7图示了向域名系统(DNS)服务应用安全模型的示例700。在示例700中,客户端运行时环境308中的客户端应用702需要解析URL。在利用主机服务控制管理器402进行认证之后,客户端应用702向DNS存根704发送DNS解析请求。DNS存根704将DNS解析请求转发到DNS提供者706。在这种情况下,在单独的服务运行时环境304处实现DNS提供者。然而,如自始至终讨论的,也可以在主机运行时环境中实现DNS提供者706。DNS提供者706检查本地缓存,并且如果所请求的URL不在本地缓存中,则DNS提供者706将DNS解析请求转发到外部DNS服务器。在已经满足DNS解析请求之后,将对应的IP地址返回到客户端应用702。值得注意的是,可以将这些相同的构思应用于任何类型的服务,诸如,web服务、FTP服务、时间服务、邮件服务等。
可以在各种不同的位置中实施安全规则和策略404,包括主机运行时环境、客户运行时环境或者在主机服务控制管理器402处。安全规则和策略404还可以包括以下属性中的一个或多个属性:容器标识符、容器组、服务类型、进程ID和/或对象ID。
在一些混合部署中(诸如,在公共云或者共享主机中),可能存在共享同一基础架构的敌对方。此处,客户端运行时环境308可能不希望其它实体(诸如,主机运行时环境或者其它客户端运行时环境)能够访问、修改或者查看服务之间的通信。因此,在一个或多个实现中,可以使用VPN来保护客户端存根与服务提供者之间的通信。在其它实现中,可以使用专有授权和加密方法来保护客户端与服务提供者之间的通信。可以在客户操作系统映像时创建这种提供,或者由提供服务(诸如,轻量级目录访问协议(LDAP)或者移动设备管理(MDM))来提供。
在一些混合部署中,客户端可能需要完全控制主机服务控制管理器和服务提供者。在这种情况下,可以使主机服务控制管理器和服务提供者与主机运行时环境解耦。作为示例,考虑图示了在其中服务控制管理器和服务提供者从主机运行时环境被解耦的主机运行时环境800的示例800的图8。在该示例中,客户端存根306、服务端点502、服务提供者302、服务控制管理器802和客户端管理服务804通过被实现在单独的运行时环境和容器中而都从主机运行时环境被解耦。在该环境中,客户端管理服务804从主机运行时环境800获取资源,并且在系统的整个寿命中维护(例如,分配、监测和解除分配)这些资源。
在一个或多个实现中,从一个或多个服务端点502获取监测数据。客户端管理服务804的活动可以包括:测量服务可用性的各个方面(例如,响应性、能力等)并且作为响应,客户端管理服务804可以添加更多的资源,诸如,一个或多个服务提供者302。客户端管理服务804的活动还可以包括:在过度供应的情况下,解除分配资源。可以在时间间隔内收集服务可用性测量,并且可以向客户端管理服务802提供容量规划模型以使该过程自动化。一个或多个实现可以基于一组测量来在本地计算容量规划模型。
由于许多公共云都托管多个租户,因此,可能会存在该场景的被部署在相同主机运行时环境基础架构上的多个实例。在一个或多个实现中,分发式部署可以跨越多个主机运行时环境。这将取决于服务要求(诸如,延时和吞吐量)以及基础架构满足这些要求的能力。在一个或多个实现中,支持组件可以跨过所有权和/或管理边界。例如,服务存根306的实例可以具有对托管基础架构的商业订阅。有关用户的订阅的信息将被并入规则和策略404。系统的其余部分将如上面描述的那样工作。
示例过程
图9是图示了根据一个或多个实施例的针对在虚拟环境中实现分发和管理服务的示例过程900的流程图。过程900由系统(诸如,图1所示系统100)执行,并且可以被实现在软件、固件、硬件或者其组合中。过程900被示出为动作集合,并且不限于针对执行各个动作的操作所示出的顺序。过程900是针对在虚拟环境中实现分发和管理服务的示例过程;本文中参照不同的附图而包括对在虚拟环境中实现分发和管理服务的附加讨论。
在902中,被配置为在容器上分发和管理服务的服务控制管理器被提供在主机运行时环境中。例如,主机服务控制管理器402被提供在主机运行时环境400中,并且被配置为跨容器分发服务。
在904中,在服务控制管理器处接收到访问服务的请求。该请求是从被实现在第一容器的客户端运行时环境中的客户端的客户端存根接收到的。例如,主机服务控制管理器402从被实现在容器310的客户端运行时环境308中的客户端的客户端存根306接收请求。
在906中,针对规则和策略集验证请求。例如,主机服务控制管理器402针对规则和策略集404验证请求。
在908中,如果基于该安全规则和策略集,客户端被许可访问服务,则向客户端授予对服务的访问。例如,如果基于该安全规则和策略集404,客户端被许可访问服务,则主机服务控制管理器402向客户端授予对服务的访问。注意,在一些实现中,可以在一段时间内维持服务提供者访问,但是在一些情况下,可以基于每个事务来授予服务提供者访问权限。一些实现可以根据策略集(诸如,客户端运行时环境308的身份、客户端存根306的类型、服务端点502的类型等)来组合这两者。
在910中,如果服务的服务提供者是可用的,则向客户端返回连接信息。服务的服务提供者被实现在第二容器的服务运行时环境中。例如,如果服务提供者302可用,则主机服务控制管理器402向客户端返回连接信息。客户端的服务提供者302被实现在与客户端运行时环境308中的容器310分离的容器305的服务运行时环境304中。
备选地,如果服务的服务提供者是不可用的,则在912中,在新的服务运行时环境中启动服务提供者的新实例并且向客户端返回连接信息。例如,如果服务提供者是不可用的,则主机服务控制管理器402在新的服务运行时环境中启动服务提供者302的新实例并且向客户端返回连接信息。
示例系统
虽然本文参考特定模块讨论了特定功能,但是应该注意,本文讨论的个体模块的功能可以被分成多个模块,和/或多个模块的至少一些功能可以被组合成单个模块。附加地,在本文中被讨论为执行动作的特定模块包括执行动作的该特定模块本身,或者备选地,包括调用或者以其它方式访问执行动作(或者结合该特定模块执行动作)的另一组件或者模块的该特定模块。因此,执行动作的特定模块包括执行动作的该特定模块本身和/或由执行动作的该特定模块调用或者以其它方式访问的另一模块。
图10在1000处总体上图示了包括示例计算设备1002的示例系统,该示例计算设备1002表示可以实现本文所描述的各种技术的一个或多个系统和/或设备。例如,计算设备1002可以是服务提供者的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统和/或任何其它合适的计算设备或者计算系统。
如图所示示例计算设备1002包括处理系统1004、一个或多个计算机可读介质1006和彼此通信地耦合的一个或多个I/O接口1008。虽然未示出,但是计算设备1002可以进一步包括系统总线或者将各种组件彼此耦合的其它数据和命令传输系统。系统总线可以包括不同总线结构中的任何一个总线结构或者其组合,诸如,存储器总线或者存储器控制器、外围总线、通用串行总线和/或利用各种总线架构中的任何总线架构的处理器或者本地总线。还预期了各种其它示例,诸如,控制线和数据线。
处理系统1004表示用于使用硬件来执行一个或多个操作的功能。相应地,处理系统1004被图示为包括硬件元件1010,该硬件元件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中进一步图示的,当在个人计算机(PC)、电视设备和/或移动设备上运行应用时,示例系统1000实现无处不在的环境以用于无缝的用户体验。服务和应用在所有三种环境中基本相似地运行以用于在利用应用、玩视频游戏、观看视频等时,在从一个设备转换到下一设备时有共同的用户体验。
在示例系统1000中,多个设备通过中央计算设备互连。中央计算设备可以在多个设备的本地,或者可以远离多个设备定位。在一个或多个实施例中,中央计算设备可以是通过网络、互联网或者其它数据通信链路被连接到多个设备的一个或多个服务器计算机的云。
在一个或多个实施例中,该互连架构支持在多个设备上传递功能以向多个设备的用户提供共同的并且无缝的体验。多个设备中的每个设备可以具有不同的物理要求和能力,并且中央计算设备使用平台来实现向设备传递体验,该体验适合于设备并且是所有设备共有的。在一个或多个实施例中,创建目标设备的类,并且使体验适合于设备的一般类。可以通过物理特征、使用类型或者设备的其它共同特点来定义设备的类。
在各种实现中,计算设备1002可以假设各种不同的配置,诸如,以用于计算机1016、移动电话1018和电视机1020使用。这些配置中的每个配置包括可以具有通常不同的构造和能力的设备,并且因此,可以根据不同的设备类中的一个或多个类来配置计算设备1002。例如,计算设备1002可以被实现为设备的计算机1016类,该计算机1016类包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备1002还可以被实现为设备的移动电话1018类,该移动电话1018类包括移动设备,诸如,移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备1002还可以被实施为设备的电视机1020类,该电视机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被用于保护客户端存根与服务提供者之间的通信。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,进一步包括:客户端管理服务,该客户端管理服务被配置为:在主机运行时环境中提供对服务需求的监测;响应于监测到服务需求增加,分配资源以满足服务需求;以及,响应于监测到服务需求减少,解除分配资源以满足服务需求。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,其中客户端管理服务基于对服务需求的监测来在本地计算容量模型。
在一个或多个示例中,计算机实现的方法包括:在主机运行时环境中提供服务控制管理器,该服务控制管理器被配置为跨容器分发和管理服务;在服务控制管理器处接收访问服务的请求,该请求是从被实现在第一容器的客户端运行时环境中的客户端的客户端存根接收到的;针对安全规则和策略集验证请求;如果基于该安全规则和策略集,客户端被许可访问服务,则向客户端授予对服务的访问;如果服务的服务提供者是可用的,则向客户端返回连接信息,服务的服务提供者被实现在与第一容器分离的第二容器的服务运行时环境中;以及,如果服务的服务提供者是不可用的,则在新的服务运行时环境中启动服务提供者的新实例并且向客户端返回连接信息。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,其中服务控制管理器被配置为基于该安全规则和策略集来允许或者限制对客户端的访问。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,进一步包括:在服务端点处标识服务控制管理器;以及将服务控制管理器与客户端存根相关联。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,其中服务端点是由客户端存根可发现的。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,进一步包括:由服务控制管理器基于来自客户端的需求来管理服务提供者。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,进一步包括:如果不存在针对服务提供者的需求,则终止特定服务提供者。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,进一步包括:使用VPN来保护客户端存根与服务提供者之间的通信。
如单独地或者结合上文或者下文所描述的其它示例中的任何示例描述的示例,进一步包括:在主机运行时环境中提供对服务需求的监测;响应于监测到服务需求增加,分配资源以满足服务需求;以及响应于监测到服务需求减少,解除分配资源以满足服务需求。
虽然已经针对结构特征和/或方法动作对示例实现进行了语言描述,但是要明白,在所附权利要求书中定义的实现不必限于上面描述的特定特征或者动作。相反,公开特定特征和动作作为实施所要求保护的特征的示例形式。

Claims (15)

1.一种用于在计算设备的主机操作系统中分发对服务的访问的系统,所述系统包括:
主机操作系统,所述主机操作系统被配置为实现主机运行时环境;
一个或多个服务,所述一个或多个服务由所述主机操作系统实现;以及
服务控制管理器,所述服务控制管理器被配置为实现服务的客户端存根与所述服务的服务提供者之间的通信,所述服务的客户端存根在在客户端运行时环境中被实现,所述服务的服务提供者在与所述第一客户端运行时环境分离的服务运行时环境中被实现。
2.根据权利要求1所述的系统,其中所述客户端运行时环境被实现在第一容器中,并且所述服务运行时环境被实现在与所述第一容器分离的第二容器中。
3.根据权利要求2所述的系统,其中所述服务控制管理器被实现在与所述第一容器和所述第二容器分离的第三容器中。
4.根据权利要求1所述的系统,其中所述客户端运行时环境被实现在第一虚拟机中,并且所述服务运行时环境被实现在与所述第一虚拟机分离的第二虚拟机中。
5.根据权利要求1所述的系统,其中所述服务控制管理器被实现在所述主机运行时环境中。
6.根据权利要求1所述的系统,其中所述服务控制管理器被配置为基于安全规则和策略集来允许或者限制对所述客户端存根的访问。
7.根据权利要求1所述的系统,还包括:服务端点,所述服务端点被配置为标识所述服务控制管理器,并且将所述服务控制管理器与所述客户端存根相关联。
8.根据权利要求7所述的系统,其中所述服务端点是由所述客户端存根可发现的。
9.根据权利要求1所述的系统,其中所述服务控制管理器被配置为基于来自客户端的需求来管理所述服务提供者,并且如果不存在针对特定服务提供者的需求,则终止所述特定服务提供者。
10.根据权利要求1所述的系统,其中VPN被用于保护所述客户端存根与所述服务提供者之间的通信。
11.根据权利要求1所述的系统,还包括:客户端管理服务,所述客户端管理服务被配置为:
在所述主机运行时环境中提供对服务需求的监测;
响应于监测到服务需求增加,分配资源以满足所述服务需求;以及
响应于监测到服务需求减少,解除分配资源以满足所述服务需求。
12.根据权利要求11所述的系统,其中所述客户端管理服务基于对服务需求的所述监测来在本地计算容量模型。
13.一种计算机实现的方法,包括:
在主机运行时环境中提供服务控制管理器,所述服务控制管理器被配置为跨容器分发和管理服务;在所述服务控制管理器处接收访问服务的请求,所述请求从被实现在第一容器的客户端运行时环境中的客户端的客户端存根被接收到;
针对安全规则和策略集而验证所述请求;
如果基于所述安全规则和策略集,所述客户端被许可访问所述服务,则向所述客户端授予对所述服务的访问;
如果所述服务的服务提供者是可用的,则向所述客户端返回连接信息,所述服务的所述服务提供者被实现在与所述第一容器分离的第二容器的服务运行时环境中;以及
如果所述服务的所述服务提供者是不可用的,则在新的服务运行时环境中启动所述服务提供者的新实例,并且向所述客户端返回连接信息。
14.根据权利要求13所述的计算机实现的方法,其中所述服务控制管理器被配置为基于所述安全规则和策略集来允许或者限制对所述客户端的访问。
15.根据权利要求13所述的计算机实现的方法,还包括:在服务端点处标识所述服务控制管理器,并且将所述服务控制管理器与所述客户端存根相关联。
CN201780082640.3A 2017-01-09 2017-12-28 虚拟环境中服务的分发和管理 Active CN110168504B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762444209P 2017-01-09 2017-01-09
US62/444,209 2017-01-09
US15/460,599 2017-03-16
US15/460,599 US10333985B2 (en) 2017-01-09 2017-03-16 Distribution and management of services in virtual environments
PCT/US2017/068614 WO2018128898A1 (en) 2017-01-09 2017-12-28 Distribution and management of services in virtual environments

Publications (2)

Publication Number Publication Date
CN110168504A true CN110168504A (zh) 2019-08-23
CN110168504B CN110168504B (zh) 2023-06-30

Family

ID=62783689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780082640.3A Active CN110168504B (zh) 2017-01-09 2017-12-28 虚拟环境中服务的分发和管理

Country Status (4)

Country Link
US (4) US10333985B2 (zh)
EP (2) EP4030286A1 (zh)
CN (1) CN110168504B (zh)
WO (1) WO2018128898A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111464648A (zh) * 2020-04-02 2020-07-28 聚好看科技股份有限公司 一种分布式本地dns系统及域名查询方法
CN114946164A (zh) * 2020-01-15 2022-08-26 三星电子株式会社 用于mec网络的微服务的改进和与其相关的改进的方法和系统
TWI802163B (zh) * 2021-12-22 2023-05-11 竹陞科技股份有限公司 基於腳本的控制系統和控制方法

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949533B2 (en) 2017-03-24 2021-03-16 DISH Technologies L.L.C. Systems and methods for a virus scanning router
US11140455B1 (en) * 2017-06-09 2021-10-05 Amazon Technologies, Inc. Video encoder network sandboxing
US10789104B2 (en) * 2017-06-30 2020-09-29 Vmware, Inc. Methods and apparatus for deploying a distributed system using operating system virtualization
US11240207B2 (en) * 2017-08-11 2022-02-01 L3 Technologies, Inc. Network isolation
US10805419B2 (en) * 2017-08-21 2020-10-13 Ribbon Communications Operating Company, Inc. Web application configuration management
US11601467B2 (en) 2017-08-24 2023-03-07 L3 Technologies, Inc. Service provider advanced threat protection
US20190079788A1 (en) * 2017-09-08 2019-03-14 Cisco Technology, Inc. Predictive image storage system for fast container execution
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
US11374906B2 (en) 2017-09-28 2022-06-28 L3 Technologies, Inc. Data exfiltration system and methods
US11336619B2 (en) 2017-09-28 2022-05-17 L3 Technologies, Inc. Host process and memory separation
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
US11159627B1 (en) * 2017-10-20 2021-10-26 Parallels International Gmbh Seamless remote network redirection
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
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
US11409569B2 (en) * 2018-03-29 2022-08-09 Xilinx, Inc. Data processing system
US10762202B2 (en) * 2018-04-11 2020-09-01 Crowdstrike, Inc. Securely and efficiently providing user notifications about security actions
US10476745B1 (en) * 2018-05-31 2019-11-12 Illumio, Inc. Infrastructure-agnostic network-level visibility and policy enforcement for containers
US11924641B2 (en) * 2018-06-29 2024-03-05 Nokia Technologies Oy Security management for service access in a communication system
US11677713B2 (en) * 2018-10-05 2023-06-13 Vmware, Inc. Domain-name-based network-connection attestation
WO2020112029A1 (en) * 2018-11-30 2020-06-04 Purple Ds Private Ltd. System and method for facilitating participation in a blockchain environment
FR3091368B1 (fr) * 2018-12-27 2021-12-24 Bull Sas PROCEDE DE FABRICATION D’UNE APPLICATION MATERIELLE METIER SPECIFIQUE SECURISEE ET MODULAIRE ET système D’EXPLOITATION ASSOCIE
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
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
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
US20210064416A1 (en) * 2019-09-03 2021-03-04 Netflix, Inc. Techniques for executing serverless functions on media items
US11354402B2 (en) * 2019-11-01 2022-06-07 Microsoft Technology Licensing, Llc Virtual environment type validation for policy enforcement
FR3103042A1 (fr) 2019-11-12 2021-05-14 Orange Procédés de commande d’un réseau informatique de périphérie à accès multiple
US11601461B2 (en) * 2020-01-13 2023-03-07 Vmware, Inc. Risk-based cloud profile management for VDI in the cloud
US11368361B2 (en) 2020-06-05 2022-06-21 Microsoft Technology Licensing, Llc Tamper-resistant service management for enterprise systems
US11113177B1 (en) * 2020-07-23 2021-09-07 Tracelink, Inc. Securely debugging different applications in a single short-lived container
US11789764B2 (en) * 2020-08-04 2023-10-17 Dell Products L.P. Systems and methods for multi-link platform configuration with containerized compute instances
EP3962026A1 (de) * 2020-08-31 2022-03-02 Siemens Aktiengesellschaft Verfahren und system zur bereitstellung von zeitkritischen diensten
US11700274B1 (en) * 2021-02-04 2023-07-11 Cisco Technology, Inc. Systems and methods for protecting pod deployment
EP4064053A1 (en) * 2021-03-26 2022-09-28 Aptiv Technologies Limited Managing inter-service communication
US11700266B2 (en) * 2021-06-01 2023-07-11 Mirrortab Corp. Virtual browser application systems and methods
US20230035594A1 (en) * 2021-08-02 2023-02-02 Dell Products L.P. Managing peripherals in a containerized environment
EP4250147A1 (de) * 2022-03-25 2023-09-27 Siemens Aktiengesellschaft Verfahren und system zur einräumung von zugriffsrechten an steuerungsanwendungen eines industriellen automatisierungssystems
EP4290397A1 (de) * 2022-06-08 2023-12-13 Siemens Aktiengesellschaft Verfahren und system zur bereitstellung von steuerungsanwendungen
US11979291B1 (en) 2022-10-27 2024-05-07 Red Hat, Inc. Cluster boundary enforcer service

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986608A (zh) * 2014-05-29 2014-08-13 浪潮电子信息产业股份有限公司 一种基于安腾Linux应用容器的J2EE应用虚拟化管理方法
US20150229656A1 (en) * 2014-02-11 2015-08-13 Choung-Yaw Michael Shieh Systems and methods for distributed threat detection in a computer network
US20160105408A1 (en) * 2014-10-10 2016-04-14 Adp, Llc Securing application programming interfaces (apis) through infrastructure virtualization
CN106031122A (zh) * 2014-02-21 2016-10-12 戴尔产品有限公司 一般代码转换服务

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015578A1 (en) * 2002-02-22 2004-01-22 Todd Karakashian Web services runtime architecture
US8619971B2 (en) 2005-04-01 2013-12-31 Microsoft Corporation Local secure service partitions for operating system security
US7987432B1 (en) 2006-04-25 2011-07-26 Parallels Holdings, Ltd. Seamless integration and installation of non-native application into native operating system
US7633864B2 (en) 2006-12-20 2009-12-15 Sun Microsystems, Inc. Method and system for creating a demilitarized zone using network stack instances
US20090241194A1 (en) 2008-03-21 2009-09-24 Andrew James Thomas Virtual machine configuration sharing between host and virtual machines and between virtual machines
US8726334B2 (en) 2009-12-09 2014-05-13 Microsoft Corporation Model based systems management in virtualized and non-virtualized environments
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US9104514B2 (en) 2011-01-11 2015-08-11 International Business Machines Corporation Automated deployment of applications with tenant-isolation requirements
US9891939B2 (en) 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US9075638B2 (en) 2012-08-14 2015-07-07 Atlassian Corporation Pty Ltd. Efficient hosting of virtualized containers using read-only operating systems
US20140089661A1 (en) * 2012-09-25 2014-03-27 Securly, Inc. System and method for securing network traffic
EA201301283A1 (ru) 2013-11-26 2015-05-29 Общество С Ограниченной Ответственностью "Параллелз" Способ целевой виртуализации ресурсов в контейнере
US9361163B2 (en) * 2013-11-28 2016-06-07 Good Technology Corporation Managing containerized applications on a mobile device while bypassing operating system implemented inter process communication
US9973472B2 (en) * 2015-04-02 2018-05-15 Varmour Networks, Inc. Methods and systems for orchestrating physical and virtual switches to enforce security boundaries
US10218633B2 (en) 2014-03-28 2019-02-26 Amazon Technologies, Inc. Implementation of a service that coordinates the placement and execution of containers
US9600312B2 (en) * 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9462427B2 (en) 2015-01-14 2016-10-04 Kodiak Networks, Inc. System and method for elastic scaling using a container-based platform
US10623481B2 (en) * 2015-04-27 2020-04-14 Microsoft Technology Licensing, Llc Balancing resources in distributed computing environments
US10110418B2 (en) * 2015-11-03 2018-10-23 Rancher Labs, Inc. Cloud computing service architecture
US10180886B2 (en) * 2015-11-16 2019-01-15 Red Hat, Inc. Recreating a computing environment using tags and snapshots
US10063469B2 (en) * 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150229656A1 (en) * 2014-02-11 2015-08-13 Choung-Yaw Michael Shieh Systems and methods for distributed threat detection in a computer network
CN106031122A (zh) * 2014-02-21 2016-10-12 戴尔产品有限公司 一般代码转换服务
CN103986608A (zh) * 2014-05-29 2014-08-13 浪潮电子信息产业股份有限公司 一种基于安腾Linux应用容器的J2EE应用虚拟化管理方法
US20160105408A1 (en) * 2014-10-10 2016-04-14 Adp, Llc Securing application programming interfaces (apis) through infrastructure virtualization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
方彦: "基于RMI的集群计算平台的研究与实现", 《万方数据知识服务平台》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114946164A (zh) * 2020-01-15 2022-08-26 三星电子株式会社 用于mec网络的微服务的改进和与其相关的改进的方法和系统
CN111464648A (zh) * 2020-04-02 2020-07-28 聚好看科技股份有限公司 一种分布式本地dns系统及域名查询方法
TWI802163B (zh) * 2021-12-22 2023-05-11 竹陞科技股份有限公司 基於腳本的控制系統和控制方法

Also Published As

Publication number Publication date
US20190297116A1 (en) 2019-09-26
WO2018128898A1 (en) 2018-07-12
US20190182295A1 (en) 2019-06-13
US20180198824A1 (en) 2018-07-12
US11290488B2 (en) 2022-03-29
EP4030286A1 (en) 2022-07-20
CN110168504B (zh) 2023-06-30
US20220224726A1 (en) 2022-07-14
US11363067B2 (en) 2022-06-14
EP3566137A1 (en) 2019-11-13
US10333985B2 (en) 2019-06-25

Similar Documents

Publication Publication Date Title
CN110168504A (zh) 虚拟环境中服务的分发和管理
CN109923522B (zh) 匿名容器
US10686758B2 (en) Elastic outbound gateway
CN109196505A (zh) 基于硬件的虚拟化安全隔离
JP6397957B2 (ja) 管理されたブラウザの提供
CN105308923B (zh) 对具有多操作模式的应用的数据管理
EP3049985B1 (en) A separate, disposable execution environment for accessing unverified content
JP6374953B2 (ja) コンテキストによるモバイルデバイスのロック
US20140297859A1 (en) Providing mobile device management functionalities for a managed browser
CN106471783A (zh) 经由网关的企业系统认证和授权
CN106031128B (zh) 移动设备管理的方法和装置
CN105247526A (zh) 提供企业应用商店
US8813179B1 (en) Providing mobile device management functionalities
US20220070206A1 (en) Secure device selection based on sensitive content detection

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