具体实施方式
以下描述陈述了用于通过网络将操作系统和更新安全地部署到空服务器,使得它不再易受恶意的基于网络的入侵的影响的技术。该技术可以用许多方法来实现,包括(但不限于)程序模块、通用和专用计算系统、网络服务器和设备、专用电子设备和硬件、以及作为一个或多个计算机网络的一部分。
这些技术的一个示例性实现可被称为易受攻击且新部署的软件的示例性隔离器,或简称为“示例性隔离器”。
示例性操作环境
通过自动化的软件部署服务,数据中心能够通过网络基于传输基准“映像”来迅速地部署软件(例如,操作系统)。迅速系统部署对于数据中心操作员而言是一种极大的好处;然而,迅速部署新服务器却仅仅使它立即遭受攻击,这是一个很严重的缺点。
图1揭示了其中自动部署软件的操作环境100(或“体系结构”)。这也是其中该示例性隔离器可操作的一个示例性操作环境。
该示例性操作环境100被示出为具有通过中央和安全网络120耦合的若干组件。这些网络耦合的组件包括部署服务器102、更新服务器104和网络交换机130。该操作环境100也被示出为具有通过可交换且可能安全的网络122耦合的若干组件,且这些组件是安装了机架的空服务器114(安装在机架108中的一个或若干个服务器)、空服务器116和空台式计算机118。此外,该环境也被示出为具有不可信网络140(例如,因特网),它通过网络交换机130可交换地耦合至两个其它网络(120和122)。
部署服务器102执行软件部署的动作。部署服务器102包括能够执行以下描述的一个或多个过程的计算机可读介质。这些介质可包含例如部署应用程序110。
如图1所示,示例性隔离器由部署服务器102的部署应用程序110来实现。它也可至少部分地由网络交换机130来实现。
更新服务器104也包括此处能够部署软件补丁、修补等的计算机可读介质,如更新过时的操作系统以改进其操作,例如改进其安全性能。这些更新可提高对于稍后由空服务器接收的各种恶意代码的抵抗力,如在下文更详细描述的那样。
还示出三个示例性空计算机,即机架108中的空服务器114、空的独立服务器116和空台式机118。这些空计算机的每一个具有软件或硬件应用程序,足以使空计算机能够请求、接收和遵循诸如来自部署应用程序110的基本指令。
操作环境100通过网络120和122进行通信。这些网络是易受诸如基于网络的攻击等恶意通信影响的通信网络。特别是,这种恶意通信可以来自不可信网络140(例如,因特网或具有被破坏的计算机的内联网,该被破坏的计算机能够通过网络发送恶意代码)。
这些网络120、122和140可交换地通过网络交换机130耦合在一起。该交换机能够从服务器(诸如部署服务器102)接收指令,以选择哪些网络(以及实际上网络上的哪些设备)能够彼此通信。
例如,可指示网络交换机130将网络122与不可信网络140隔离。以此方式,网络122上的设备可与网络120上的设备通信,但不能与不可信网络140上的设备通信,反之亦然。
方法实现
图2A和2B示出了易受攻击且新部署的软件的示例性隔离器的方法实现。该方法实现可以用软件、硬件或其组合来执行。为易于理解,方法步骤被描绘为单独的步骤;然而,这些单独描绘的步骤不应当被解释为在其性能方面必须在顺序上相关。
图2A和2B的方法被示出为表示由部署服务器102(诸如用部署应用程序110)、网络交换机130和空服务器(例如,服务器116)执行的各个操作或动作的一系列框。
在标题“部署服务器/部署应用程序”下示出了由部署服务器102执行的那些示例性操作和动作,以当新部署的空服务器在其更新之前和更新期间保持不受保护时有效地隔离新部署的空服务器。
在标题“空服务器”下示出了由空服务器(例如,服务器116)执行的那些示例性操作和动作,用于安全地接收所部署的映像并更新操作系统。
在标题“网络交换机”下示出了由网络交换机130执行的那些示例性操作和动作,以当新部署的空服务器在其更新之前和更新期间保持不受保护时选择性地隔离(响应于完成该动作的指令)该空服务器。
在图2A的202,将空计算机连接到网络122。例如,空服务器114经由机架108插入到网络,尽管诸如独立服务器116或台式机118等其它空计算机也可替代地连接到网络。
在204,空服务器通过网络(例如,网络122和经由交换机130的网络120)进行通信,以请求操作系统。如果没有操作系统,空服务器通常还未易受网络上的恶意代码的攻击。
在206,部署服务器102接收对操作系统的请求。在208,部署服务器102向网络交换机发送将空服务器与非安全网络(例如,不可信网络140)有效地隔离的指令。
在图2A的210,网络交换机140接收指令,且在212,它将空服务器从非安全网络(诸如不可信网络140)有效地隔离。
交换机可有许多方式来完成这一过程。一种强力方法是关闭来自不可信网络140的所有传入通信量。另一种方法可以是防止网络122和不可信网络140之间的通信。一种更复杂的方法涉及监视通过交换机的通信量,并防止在不可信网络140与正被部署的空服务器之间的来往通信量。
通过可信网络,新部署的空服务器可与部署服务器、更新服务器和诸如动态主机配置协议(DHCP)和域名系统(DNS)服务器的可能的其它网络基础结构服务进行通信。
在214,部署服务器通过部署应用程序110将具有操作系统映像的映像安全地部署到空服务器。
在图2A的216,空服务器通过网络安全地接收映像并将其保存到存储器。在218,空服务器传达它已接收到该映像。在220,部署服务器从空服务器接收指示已接收到该映像的传达。在222,部署服务器通过部署应用程序指令空服务器引导该映像。
在图2A的224,空服务器重启,由此运行具有操作系统及其配置设置的映像。在引导过程结束之后,空服务器(现在不再为空,因为它具有操作系统)运行且是可操作的。
除有效地将其从不可信网络隔离的网络交换机130之外,具有过时操作系统的空服务器将易受通过网络发送的恶意干扰和通信的攻击。空服务器中没有一样东西能够保护它免遭恶意攻击。相反,外部组件(即,部署服务器和交换机)的动作在它仍易受攻击时隔离它。
该方法现在继续到图2B。
在图2B的226,空服务器114通知部署服务器,操作系统正在运行和/或引导成功。
在228,部署服务器102接收该信息。在230,部署服务器通过部署应用程序110指令空服务器接收和/或安装更新。
在一个实施例中,部署服务器指令空服务器启动与更新服务器104的通信。在另一实施例中,部署服务器向空服务器的操作系统发送更新,并指令它添加这些更新。
在图2B的232,空服务器接收接收更新的指令。在234,空服务器启动通信以接收更新。例如,空服务器向更新服务器104请求通信。
在236,空服务器接收更新并将其应用于其操作系统。例如,这些更新可通过网络从234处请求的更新服务器接收,或直接从部署服务器接收。
在图2B的238,空服务器传达它已更新其操作系统。在240,部署服务器接收该传达。
在242,部署服务器指令网络交换机停止空服务器的隔离。换言之,由于空服务器已经被完全更新且假定为不再易受恶意攻击,应当允许它通过诸如因特网等非安全网络自由支配。
在图2B的244,网络交换机140接收指令。在246,交换机将空服务器移除隔离。交换机现在允许空服务器和非安全网络(诸如不可信网络140)之间的通信量。
此处,部署服务器、部署应用程序和网络交换机的大多数(如果不是全部)动作能够被自动执行而无需用户交互。
这使用户能够将空服务器或其它空计算机连接到网络而不用进一步的交互,令空服务器用更新的操作系统操作,而不会使空服务器在更新操作系统之前易受通过网络的恶意代码的影响。
替换操作环境
图3揭示了其中示例性隔离器可操作的另一示例性操作环境300(或“体系结构”)。该操作环境300被示出为具有通过网络320耦合的若干组件。
这些网络耦合的组件包括部署服务器302和更新服务器203。同样附加到网络320的是不可信网络140(例如,因特网)。还存在许多其它网络耦合的设备,此处未示出。
“虚拟服务器”350是图3中被示出为耦合至网络320的另一组件。该虚拟服务器是主控一个或多个虚拟机实例的服务器。该虚拟服务器是虚拟局域网(“虚拟LAN”)360的出发点。该虚拟LAN物理上不存在,而是相反,它是由虚拟服务器350来模拟的。为清楚起见,实际物理网络320此处被称为“外部”网络,而虚拟LAN360此处被称为“内部”网络。
或者,部署服务器302和更新服务器304可以是虚拟服务器350内的虚拟机,并且可以是内部网络360内的虚拟可信网络的一部分。
该内部网络360具有虚拟网络交换机462(它是图1所示的交换机130的模拟版本)以及多个虚拟机(例如,366和368)。此外,内部网络360被示出为虚拟地具有虚拟不可信网络364,它可交换地耦合到内部网络360的剩余部分。
为示出虚拟交换机362能够虚拟地打开/关闭对虚拟不可信网络364的访问的目的起见,虚拟不可信网络364在图3中被示出为在内部网络360的环境内。然而,图3所示的虚拟不可信网络364仅是实际不可信网络340的一种表示。该交换机可以虚拟地交换来往实际不可信网络340的访问。
在这一替换实施例中,目标空服务器是虚拟服务器(诸如服务器368)。上文在一个物理网络和物理空服务器的环境中所描述的操作和动作直接类似于图3所示的实施例中的内部网络360的环境内的操作。
示例性计算系统和环境
图4示出了其中可(完全或部分地)实现此处所描述的示例性隔离器的合适的计算环境400的一个示例。计算环境400可在此处所描述的计算机和网络体系结构中使用。
示例性计算环境400仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将计算环境400解释为对示例性计算环境400中示出的任一组件或其组合具有任何依赖或需求。
示例性隔离器可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置包括但不限于:个人计算机、服务器计算机、瘦客户机、胖客户机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、个人数字助理(PDA)、电器、专用电子设备(例如,DVD播放器)、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
示例性隔离器可在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。示例性隔离器也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
计算环境400包括计算机402形式的通用计算设备。计算机402的组件可包括但不限于,一个或多个处理单元404、系统存储器406以及将包括处理器404的各类系统组件耦合至系统存储器406的系统总线408。
系统总线408表示若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例,这类体系结构包括插件总线(CardBus)、个人计算机存储卡国际协会(PCMCIA)、加速图形端口(AGP)、小型计算机系统接口(SCSI)、通用串行总线(USB)、IEEE 1394、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机402通常包括各种处理器可读介质。这类介质可以是可由计算机402访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器406包括诸如随机存取存储器(RAM)410等易失性存储器,和/或诸如只读存储器(ROM)412等非易失性存储器形式的计算机存储介质。基本输入/输出系统(BIOS)414包括如在启动时帮助在计算机402内的元件之间传输信息的基本例程,通常储存在ROM412中。RAM410通常包含处理单元404立即可访问或者当前正在操作的数据和/或程序模块。
计算机402也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图4示出了对不可移动、非易失性磁介质(未示出)进行读写的硬盘驱动器416、对可移动、非易失性磁盘420(如,“软盘”)进行读写的磁盘驱动器418以及对可移动、非易失性光盘424,如CD-ROM、DVD-ROM或其它光介质进行读写的光盘驱动器422。硬盘驱动器416、磁盘驱动器418和光盘驱动器422的每一个通过一个或多个数据介质接口425连接到系统总线408。或者,硬盘驱动器416、磁盘驱动器418和光盘驱动器422可通过一个或多个接口(未示出)连接到系统总线408。
盘驱动器及其相关联的计算机可读介质为计算机402提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管示例示出了硬盘416、可移动磁盘420和可移动光盘424,然而可以理解,可储存可由计算机访问的数据的其它类型的计算机可读介质,如磁带盒或其它磁存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等,也可用于实现示例性计算系统和环境。
任何数量的程序模块可储存在硬盘416、磁盘420、光盘424、ROM 412和/或RAM410中,作为示例,包括操作系统426、一个或多个应用程序428、其它程序模块430以及程序数据432。
用户可以通过诸如键盘434和定位设备436(如,“鼠标”)向计算机402输入命令和信息。其它输入设备438(未具体示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪和/或其类似物。这些和其它输入设备通常通过耦合至系统总线408的输入/输出接口440连接到处理单元404,但也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器442或其它类型的显示设备也通过接口,如视频适配器444连接到系统总线408。除监视器442之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机446等组件,它们可通过输入/输出接口440连接到计算机402。
计算机402可以在使用到一个或多个远程计算机,如远程计算设备448的逻辑连接的网络化环境中操作。作为示例,远程计算设备可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或其它公用网络节点、部署服务器102、更新服务器104等等。远程计算设备448被示出为可包括此处相对于计算机402所描述的许多或所有元件和特征的便携式计算机。
计算机402和远程计算机448之间的逻辑连接被描述为局域网(LAN)450和通用广域网(WAN)452。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。这类网络环境可以是有线或无线的。
当在LAN网络环境中实现时,计算机402通过网络接口或适配器454连接至局域网450。当在WAN网络环境中使用时,计算机402通常包括调制解调器456或用于通过广域网452建立通信的其它装置。调制解调器456可以对计算机402是内置或外置的,通过输入/输出接口440或其它适当的机制连接至系统总线408。可以理解,示出的网络连接是示例性的,也可以使用在计算机402和448建立通信链路的其它装置。
在诸如用计算环境400示出的网络化环境中,相对于计算机402描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例,远程应用程序458驻留在远程计算机448的存储器设备中。为说明目的,应用程序和诸如操作系统等其它可执行程序组件在此处被示出为离散的框,尽管可以认识到,这些程序和组件在不同的时刻驻留在计算设备402的不同存储组件中,并由计算机的数据处理器执行。
处理器可执行指令
示例性隔离器的一个实现可在诸如由一个或多个计算机或其它设备执行的程序模块等处理器可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。通常,程序模块的功能可如各实施例中所需的组合或分布。
示例性操作环境
图4示出了其中可实现示例性隔离器的合适的操作环境400的一个示例。具体地,如此处所描述的示例性隔离器可以由图4中的任何程序模块428-430和/或操作系统426或其部分来(完全或部分地)实现。
该操作环境仅是合适的操作环境的一个示例,且并非对此处所描述的示例性隔离器的使用范围和功能提出任何局限。适合使用的其它公知的计算系统、环境和/或配置包括但不限于,个人计算机(PC)、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、可编程消费者电子产品、无线电话和设备、通用和专用设备、应用专用集成电路(ASIC)、网络PC、小型机、大型机、包括以上任何系统或设备的分布式计算环境等等。
处理器可读介质
示例性隔离器的一个实现可以储存在某一形式的处理器可读介质上或通过其来传输。处理器可读介质可以是可由计算机访问的任何可用介质。作为示例,处理器可读介质可包括但不限于“计算机存储介质”和“通信介质”。
“计算机存储介质”包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。
通信介质通常具体化为诸如载波或其它传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据。通信介质也包括任一信息传送介质。
结论
尽管上述一个或多个实现是以对结构特征和/或方法步骤专用的语言来描述的,然而可以理解,可以不采用所描述的具体特征或步骤来实施其它实现。相反,揭示了具体特征和步骤作为一个或多个实现的较佳形式。