CN101443746A - 用于保护客户端及服务器的方法 - Google Patents

用于保护客户端及服务器的方法 Download PDF

Info

Publication number
CN101443746A
CN101443746A CNA200780017193XA CN200780017193A CN101443746A CN 101443746 A CN101443746 A CN 101443746A CN A200780017193X A CNA200780017193X A CN A200780017193XA CN 200780017193 A CN200780017193 A CN 200780017193A CN 101443746 A CN101443746 A CN 101443746A
Authority
CN
China
Prior art keywords
client
operating system
protected location
virtual machine
service
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
CNA200780017193XA
Other languages
English (en)
Other versions
CN101443746B (zh
Inventor
李尚奎
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority claimed from PCT/KR2007/002411 external-priority patent/WO2007136192A1/en
Publication of CN101443746A publication Critical patent/CN101443746A/zh
Application granted granted Critical
Publication of CN101443746B publication Critical patent/CN101443746B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

服务提供者使用基于客户端/服务器模式并在诸如因特网、内联网、外联网等网络上执行的系统为服务使用者提供服务。如果服务使用者向服务提供者请求服务,服务提供者便在服务使用者的系统中安装保护区并在该保护区内执行服务使用者所请求的程序,从而使服务使用者的系统及服务提供者的系统都得到安全地保护。基于虚拟机分配的软件分发使得不熟悉计算机的使用者也能容易、快捷地使用个人计算机。

Description

用于保护客户端及服务器的方法
技术领域
本发明涉及一种用于保护客户端/服务器模式的服务提供系统免受外部黑客攻击的方法,其构建并运行于网络环境中,包括内联网或外联网环境。具体地说,在客户端系统中创建一独立于现有操作系统环境的保护区,并且客户端应用程序都只在该保护区内运行。服务器应用程序仅信任那些由运行于保护区的客户端应用程序创建的网络数据包。因此,服务器系统和/或客户端系统可以免受外部黑客的攻击。
背景技术
一般来说,执行于网络环境的服务提供系统包括配置客户端的服务使用者(以下称为用户)及配置服务器的服务提供者(以下称为提供者)。提供者在服务器中安装服务器应用程序;用户则在其系统中安装由提供者分发的客户端应用程序,以使用提供者的服务。服务器应用程序与客户端应用程序进行交互以提供服务。然而,在许多情况下,用户并不能信任提供者,反过来,提供者也不能信任用户。这种信任的缺乏阻碍了基于信息科技(IT)的服务业的发展,而且有时还作为犯罪手段被滥用。
由于提供者分发的应用程序可能是一种恶意程序,例如间谍软件、广告软件或是一些可能感染电脑病毒的配置文件,所以用户不能信任提供者。在这种情况下,如果安装了恶意程序或感染病毒的文件,用户系统也会被恶意程序或病毒感染。
反过来说,由于用户系统在安全性方面通常是脆弱的,所以提供者不能够信任用户。提供者系统会由于用户系统的漏洞而变得脆弱。有时,用户可以通过逆向工程技术分析由提供者分发的应用程序并攻击重要逻辑。在诸如网上银行或类似的金融交易服务中,内部逻辑应该得到保护免受黑客攻击,并且一个通过外联网向合作企业提供商业服务的企业应该保护自身服务系统不会由于合作企业系统的安全漏洞而变得不稳定。
已提出多种用于在此类客户端及服务器之间建立相互可靠性的方法。在通过网络环境提供的常规服务中,客户端防止黑客攻击的安全防护设备包括防病毒产品、补丁管理系统等等,而服务器或网络侧的安全防护设备则包括网络防火墙、WEB(应用)防护墙、漏洞扫描工具、源代码分析工具等等。以下将对各种技术的细节及局限性加以说明。
防病毒产品利用列举有知名恶意代码的签名清单来诊断每个文件,并确定该文件是否感染了恶意代码。然而,由于恶意代码是直到其为众所周知并被向呼叫中心报告后才包含在该签名清单中,因此其在诊断恶意代码上存在局限性。
补丁管理系统将最新的安全补丁应用于操作系统或应用程序,从而将个人计算机(PC)保持在一个安全的状态。然而,一个没有对应补丁发布的漏洞则不能得到保护。
网络防火墙拦截外部黑客利用存在于网络层及传输层的漏洞所进行的攻击,网络层即OSI(Open Systems Interconnection,开放系统互联)7层中的层3,传输层即OSI7层中的层4。
图1概念性地显示了网络防火墙150的功能,图中用户以网络防火墙为基础使用IP(Inernet Protocol,互联网协议)地址及端口号建立了一个访问控制规则151,并拦截了来自未经授权攻击者的网络数据包。
例如,如果一个经授权使用FTP(File Transfer Protocol,文件传输协议)服务的用户100尝试连接到FTP服务160,网络防火墙150会允许相应的连接;而如果一个未经授权使用FTP服务的人110尝试连接到FTP服务160,网络防火墙150会拦截相应的连接。然而,由于在启用防火墙时,基于IP地址及端口号允许或拒绝连接,因此,如果黑客攻击进入一个授权用户的机器并使用授权用户的机器进行攻击,或者授权用户恶意进行攻击,则无法对此类攻击进行防护。
另一方面,由于所有用户120都被允许访问网络服务170,网络防火墙150会允许所有指向网络服务170的数据包。然而,如果类似网络服务这样属于一个向外界开放的服务器的网络应用程序易受攻击,则任何人都可以攻击对应的漏洞,因此网络防火墙150不能防护该漏洞免受外部黑客的攻击。也就是说,网络防火墙150可以控制被允许的服务及不被允许的服务,但不能防护对被允许服务漏洞的攻击。
为解决上述问题提出了应用防火墙。应用防火墙运行于应用层,也即OSI7层中的层7,从而可以识别各种协议,例如HTTP(hyper texttransfer protocol,超文本传输协议)、文件传输协议FTP、SMTP(simple message transfer protocol,简易消息传输协议)等等,并且能防护对存在于对应程序上的漏洞的攻击。
图2显示了网络应用防火墙220,其是一种典型的应用防火墙。网络应用防火墙220提供了数据包过滤系统222并以数据包过滤的方式运行,在该方式中接收的数据包要与预先确定的格式221比较。如果接收的数据包为恶意数据包200,则会被拦截;如果接收端的数据包为正常数据包210,则会被转发给网络服务器230。
然而,由于网络应用服务器220是基于已知的攻击技术来创建上述格式221,因此存在的问题是,攻击者可以通过稍微转换现有的攻击技术来绕过格式过滤系统222,未知的攻击技术则得不到防护。由于所有传入的数据包都需要与数以万计预先确定的格式221进行比较,因此网络服务的速度会显著变慢。此外,如果一个正常的数据包210偶然地与预先确定的格式221匹配,该数据包会被误认为恶意数据包,从而可能存在正常用户被拦截而无法使用网络服务的副作用。
另外,因为网络应用服务器220仅能监视普通攻击方式,所以定位于某个具体网站的漏洞则难于防护。例如,由于一种针对与家庭购物有关的网站将商品价格由10,000韩元修改为1,000韩元的攻击,仅仅对相应的网站有意义,这样网络应用服务器220不能有效地防护这种攻击。
网络应用防火墙220是一种拦截针对应用程序漏洞进行攻击的方法,而不对相应的漏洞进行处理。相反地,漏洞扫描工具或源代码分析工具使用的是消除漏洞本身的方法。
漏洞扫描工具通过从应用程序服务器外部传送用于诊断漏洞的数据包并确认其响应来检测漏洞的存在,源代码分析工具则直接检查源代码并确定漏洞的存在。
图3显示了使用漏洞扫描工具及源代码分析工具的过程。如果步骤300开始应用程序的开发,通常要进行设计及编码步骤310。如果应用程序的某一部分完成,则进行漏洞分析步骤320,在该步骤中漏洞扫描工具或源代码分析工具被执行用于确认目前为止所创建的代码中是否存在漏洞。此时,如果发现漏洞,则应用程序执行修改步骤330,并重复执行直到消除所有漏洞,然后是步骤340的开发完成。
一般来说,漏洞扫描工具及源代码分析工具仅显示安全性漏洞的存在,而安全性漏洞的消除则是开发人员的工作。因此,开发人员应该具备与高级黑客同等的专业漏洞知识,以消除安全性漏洞,而且消除漏洞需要消耗相当多的费用及时间。另外,漏洞扫描工具或源代码分析工具也存在与应用防火墙相同的缺陷,其都不能找出定位于一具体网站的漏洞,例如将商品价格由10,000韩元修改为1,000韩元。
考虑到这些原因,根据传统技术难于创建一基础安全系统来加强基于网络的客户端/服务器系统的可靠性。以下将详细描述一种用于克服上述传统安全系统存在的技术局限性的新方法。
另一方面,在客户端/服务器服务提供系统中,提供者通常会向用户分发提供服务所需的客户端应用程序,并指导用户使用该客户端应用程序。然而,虽然客户端应用程序的分发对于提供服务是必不可少的,但安全性的处理措施却还不足,因此目前分发客户端应用程序的方法尚不稳定。从而,目前的分发方法也成为降低服务提供系统相互可靠性的另一重要因素。
一种以传统方式向服务使用者分发提供服务所需应用程序的典型方法包括Active-X控件方法、程序直接安装方法及数据流方法。以下将描述各种技术的细节及局限性。
Active-X控件方法常常应用于网络服务。服务提供者以Active-X控件的形式创建提供服务所需的软件,并将该软件记录在网页上。如果用户访问相应的网页,用户的网络浏览器会询问用户是否在PC中安装Active-X控件,如果用户同意,则安装该Active-X控件。
Active-X控件方法在程序便捷安装上较为有利。然而,用于安装的Active-X控件有时恰恰是诸如广告软件或间谍软件的恶意代码。由于这个原因,其存在的问题是,PC在网上冲浪时会毫不知情地被恶意代码感染。为解决该问题,一种基于是否有可靠认证机构签发的证书来检测控件安全性的系统在国内被广发采用。然而,系统终归存在漏洞,即使是广告软件制造商,只要支付一定金额的费用都能获得证书;并且如果在网络浏览器中确认电子签名的选择被关闭,这种系统也毫无作用。另外,如果正常的Active-X控件存在安全性漏洞,则有可能通过这样的漏洞来攻击用户的电脑。
程序直接安装方法是由用户下载诸如Setup.exe的安装程序,并通过执行下载的安装程序以安装软件。这种程序安装方法从根本上存在与Active-X方法同样的问题。
由于Active-X控件方法或程序安装方法是直接在客户端系统中安装软件,因此会出现版本冲突、安装复杂、系统容量等等的问题。为解决这些问题,提出了数据流型软件分发方法。
版本冲突的问题,例如,当软件A和B同时使用共享数据库ab.dll时,如果安装了不兼容目前使用版本的软件或另一款软件更新了对应的文件,该文件将运行异常。
在数据流方法中,不是直接在客户端操作系统中安装客户端/服务器软件,而是改为使用软件安装在其中的数据流镜像。如果一个进程要求访问ab.dll,数据流客户端会从数据流镜像搜寻ab.dll并将找到的文件返回给该进程,从而模拟ab.dll好像存在,尽管实际上在操作系统中并不存在ab.dll。这样,由于文件不是直接安装在操作系统中,所以可解决版本冲突、安装复杂等类似问题。另外,由于系统不是完全安装,而是由数据流服务器获取当前需要的文件或注册表,所以系统容量的问题也得以解决。
然而,数据流方法仅仅是模拟在操作系统中不存在的文件或注册表等在应用层上的存在,而并不提供操作系统层面上的虚拟化。因此,应用程序直接在操作系统中执行,并且系统进程、服务进程及操作系统内核由执行于数据流服务器中的进程及普通进程所共享。从而,如果采用了数据流方法,可以防护由于应用程序安装给操作系统带来的修改。然而,在安全性方面,服务提供者或服务使用者不能有效地被保护于免受应用程序执行进程中发生的问题。
结果表明,提供者在基于客户端/服务器模式的服务提供系统中向用户分发所需的应用程序,这一传统方法存在不能构建相互可靠性的问题。本发明提出一种新的克服上述传统客户端应用程序分发方法的技术局限性的方法,在下文中将详细描述。
另一方面,最近,虚拟机的研究在积极展开。虚拟机是一种在20世纪60年代提出的将一台主机分为多个虚拟机器的概念。然而,随着微机或PC价格的降低,采购多台PC在成本方面还优于分配一台主机,因此虚拟机技术在20世纪80年代很少得到应用。然而,在90年代,使用多台小容量的电脑增加了管理及维护成本。此外,计算资源的有效利用已经成为一个问题(例如,有时候,服务器A使用10%的CPU资源而服务器B使用多达99%的CPU资源),因此虚拟化技术再次引起关注。然而,主流的虚拟化技术是用于大型服务器资源的有效管理,而用于客户端系统虚拟化技术的研究还是不足。
先前提到,在本发明中,虚拟机运行于客户端系统以安装并执行客户端应用程序。
虚拟机的实施方法多种多样。对至今为止所知的虚拟化实施方法进行排列,包括命令集级虚拟化、半虚拟化、数据库级虚拟化、应用程序级虚拟化、操作系统级虚拟化等等。
在命令集级虚拟化方法中,中央处理单元、内存、芯片组、总线及各种外围设备(网卡、硬盘、软盘及CD-ROM)在软件中虚拟以创建虚拟机。在命令集级虚拟化方法中,虚拟机中创建的所有命令都由软件处理,因此在性能上存在许多问题,例如处理速度的降低。
与命令集级虚拟方法相反,在半虚拟化方法中,并不是虚拟命令,而是通过修改操作系统的源代码或二进制码以在一个硬件机器中运行多个操作系统。最近还开发出一种允许在单个硬件机器中运行多个操作系统而无需修改操作系统的CPU。在半虚拟化中,由于命令集不是在软件中进行再分析,因此处理速度得以提升。
因为每个虚拟机中都能安装一个完全独立的操作系统,所以命令集级虚拟化方法及半虚拟化方法适合于服务器虚拟化,例如VPS(Virtual Private Server,虚拟个人服务器)、服务器集合等等,并可应用于软件开发、测试等领域。然而,将这些方法应用于本发明所追求的客户端系统虚拟化却存在一些问题。其不便之处在于,在每个虚拟机中都要安装一个新的操作系统,而且需要购买与虚拟机数量一样多的操作系统证书。
数据库级虚拟化方法是在一个操作系统内部虚拟多个数据库。具体地说,是虚拟APIs(Application Program Interface,应用程序接口)。例如,WINE(Windows Emulator,Windows仿真器)在UNIX/X系统中实现Win32 API从而在UNIX中运行Window程序,或反过来,该Windows中提供POSIX或OS/2子系统。
应用程序级虚拟化方法是以字节码的形式创建应用程序,例如由Sun MicroSystems开发的Java虚拟机,可以允许应用程序在各种不同种类的硬件和软件环境中运行。
最后,操作系统级虚拟化方法是虚拟操作系统的每个构成元素(处理器、文件系统、网络资源、系统调用接口、命名空间等等)。传统的操作系统级虚拟化方法主要被开发用于服务器虚拟化,例如虚拟专用服务器VPS。
当使用完全虚拟化或半虚拟化方法实施VPS时,虚拟机所需的内存及硬盘资源与真正的机器相同,因此要在一个物理机器上创建多个虚拟机就比较困难。然而,由于使用操作系统级虚拟化时所有的虚拟服务器都可以由一个操作系统驱动,而在单个虚拟机中驱动操作系统的资源不是必需的,所以与完全虚拟化或半虚拟化相比,多个虚拟机可以由少量的资源驱动。或相反,出于软件开发及测试目的而需要多个操作系统环境的用户,将操作系统级虚拟化作为提供独立操作系统空间的有效方法。
虚拟化技术目前多用于服务器集合、软件开发和测试、及虚拟主机这些领域。在安全领域的研究方向,主要是在虚拟机中执行不可靠程序的方式,也即,在虚拟机中执行不可靠程序以保护主机操作系统或检测是否隐藏有恶意程序。然而,在用于基于客户端/服务器模式的服务提供系统的方法中,关于使用虚拟机的客户端应用程序及服务器应用程序的安全技术研究还没有进展。另外,如下所述,任何传统的虚拟方法都不完全适于基于客户端/服务器模式的服务提供系统。在本说明书中,提出了一种与传统虚拟化技术不同的新虚拟化方法。
另一方面,传统来说,要使用一台个人电脑都需要一定知识,例如操作系统、程序安装及程序设置的知识,获取这些知识对于一个对电脑完全无知的普通人来说多少有点复杂。个人电脑属于只有那些专业人员才能自由使用的个人财产。如果个人电脑成为像电视机或冰箱那样的家用电器,那使用起来比现在要方便的多。以电视机为例,使用者只要会使用遥控器调台就可以方便、快捷地观看想要的节目。计算环境也应改变以使计算机使用起来像电视机那样方便。
为了方便地分发计算环境,已提出包括GUI(graphic userinterface,图形用户界面)在内的多种技术。然而,即使在今天,安装及设置程序的方法对于一个普通人来说仍然不易入门,并且各种各样的病毒和恶意程序使得普通人使用电脑更加困难。
发明内容
(一)技术问题
本发明的目的在于解决上述问题,并且涉及一种用于提供对于服务使用者及服务提供者均为安全的计算环境的系统及方法。
本发明技术的基本配置可简要描述为以下步骤。即:第一,用户请求使用来自提供者的服务;第二,提供者自动创建独立于用户系统的保护区;及第三,所需的应用程序仅在创建的保护区内运行;从而提供一种对于用户及提供者均为安全、方便的计算环境。基于这种配置,本发明致力于如下所述的多个目的。
本发明的第一个目的是安全地保护服务使用者系统。具体地说,由于提供者分发的客户端应用程序仅在保护区内安装及运行,即使分发的客户端应用程序中存在恶意代码,保护区外的系统或其他保护区也不会被感染。因此,用户可以向提供者请求服务而无需担心,用户系统可以被安全地保护。
本发明的第二个目的是安全地保护服务提供者系统。具体地说,如果用户请求服务,提供者会强制地和自动地在用户系统中创建保护区。应用程序仅在该保护区内安装及运行,并且传送至服务器的数据包与各种存在于用户系统中保护区外的危险因素是隔离开的。优选地,由服务提供者自身在服务使用者的机器中创建保护区。然而,也可由第三人按照服务提供者的指令在用户机器内创建保护区。在本说明书中,这种技术上的修改均视为保护区由服务提供者创建。优选地,对客户端对象进行校验使得用户无法操控客户端应用程序。优选地,对数据包等传输数据的完整性进行附加校验以防止黑客在网络上的拦截攻击。从而,提供者系统可安全地防护黑客攻击。
本发明的第三个目的是同时安全地保护提供者系统及用户系统。传统的客户端安全产品包括防病毒工具、反键盘记录器、PC防火墙等等,其保护客户端系统免受黑客攻击或恶意代码的感染,并保护客户端系统存储的重要信息免遭泄露。传统的服务器安全产品包括网络防火墙、应用防火墙、漏洞扫描工具、源代码分析工具等等,其阻止在网络层传输至服务器的数据包或者确认服务器应用程序是否存在漏洞。
传统的客户端安全产品仅保护客户端系统,而传统的服务器安全产品也仅保护服务器系统。然而,本发明中保护区、客户端对象校验及完整性校验相互补充,从而可以同时保护客户端系统及服务器系统。另外,客户端系统及服务器系统甚至可以有效地防护未知类型的攻击及零时差攻击。
本发明的第四个目的是将虚拟化技术应用于在用户系统中创建保护区的方法及由提供者分发客户端应用程序的方法。如果提供者分发的虚拟机镜像中存储或预安装有使用服务所需的一个或多个应用程序,就可以同时、安全、方便地完成保护区的创建及程序的分发。预安装的虚拟机镜像是指镜像中已经安装有程序或包括有安装所需的数据。
本发明的第五个目的是使用虚拟机镜像方便、快捷地接收多个应用程序。传统上,用户应该由他/她自己创建使用服务所需要的计算环境。安装要使用的程序或调整各项设置需要专业人员的知识。然而,这里需要的环境是,任何对电脑一无所知的人都能在其中方便、容易地访问一个安装有用户所需程序的环境。另外,还需要提供这样一种计算环境,其中所有繁琐的传统采购、安装、程序设置过程都被省略,而仅需一些点击操作就可安装用户需要的所有程序。
在本发明中,使用服务所需的计算环境不是由用户创建,而是由服务提供者创建。由于用户仅需使用提供的计算环境即可,因此用户可以像给电视机调台一样方便、安全地使用提供者的服务,而无需个人电脑或安全方面的专业知识。具体地说,用户不是一个接一个地安装软件,而是下载提供有使用服务所需所有软件及环境的虚拟机镜像,从而用户能够以方便、快捷的方式使用服务。
(二)技术方案
为实现本发明的上述目的,现提供一种服务使用者及服务提供者都可以信任的服务提供系统。
根据本发明的一个方面,保护区安装在用户系统中,并且客户端应用程序仅在该保护区内运行。在本发明中,保护区是指一个防护包括诸如间谍软件或广告软件的恶意代码以及病毒在内的各种黑客攻击的区域。也就是说,如果客户端系统中创建了保护区,保护区之外的黑客攻击就无法侵入保护区,反过来,针对保护区内的攻击也无法攻击到保护区的外部。也即,两个或更多表面上的不同系统共存于一个物理系统之中。通过虚拟化技术已经表明这种创建保护区的方法的可行性。然而,在本发明中,并非由用户于接收服务的准备中在用户系统安装虚拟机,而本发明的特色在于由服务提供者自动并强制地在用户系统中安装虚拟机。根据实施类型,可以在用户批准保护区的安装后进行虚拟机的安装。
然而,仅仅使用虚拟机或类似等创建保护区并不能很好地保护整个客户端/服务器系统。保护区一旦建立,即使是恶意客户端应用程序在保护区中运行,客户端系统除保护区外也不会受影响,从而客户端系统可视为受到保护。此外,客户端应用程序可通过客户端对象校验得到保护,甚至服务器系统也可通过完整性校验得到保护,这将在下文中详述。在这些方面,本发明中使用的保护区可视为一个用于保护客户端系统、客户端应用程序和/或服务器系统的区域。
一种隔离系统资源的方法可用作创建保护区的方法。由于恶意应用程序,例如黑客工具、蠕虫、病毒等等,以及客户端应用程序和普通应用程序都在同一个操作系统空间中运行,恶意应用程序得以对客户端应用程序和普通应用程序进行攻击。在这点上,针对客户端应用程序的攻击可通过隔离操作系统资源进行拦截。可通过拦截恶意应用程序访问用于客户端应用程序的操作系统资源,例如进程、注册表、文件、网络、内存等等,来实现操作系统资源的隔离。此外,隔离的方法可包含防止应用程序重要算法或数值的窃取及使用类似防反向工程、调试等技术拦截操控程序数据或数据流的尝试的功能。
然而,在本说明书中,主要描述虚拟化方法作为一种创建保护区的方法。优选地,使用操作系统级虚拟化方法。传统操作系统级虚拟化方法的一个主要目的,如上所述,是用于服务器虚拟化以向多个用户提供完全独立的操作系统区域。然而,本发明将使用的操作系统级虚拟化方法与传统的操作系统级虚拟化方法的不同之处在于,其主要目的是使用户有效联合并使用多个虚拟机的桌面虚拟化。
如果应用了操作系统级虚拟化,客户端系统可分为宿主操作系统及客户操作系统。宿主操作系统是指由用户在物理系统中安装的操作系统,客户操作系统是指在虚拟机中安装或创建的操作系统。为了将操作系统级虚拟化高效地用于桌面虚拟化,客户操作系统可以使用宿主操作系统中安装的应用程序,并且存在于宿主操作系统及客户操作系统中的数据应该有效地共享。然而,在这种情况下,为了使客户操作系统可靠地作为保护区,应该提供在客户操作系统使用资源宿主操作系统的资源时确认这些资源是否安全的方法。其原因在于客户操作系统中运行的客户端应用程序可能被寄身于宿主操作系统中的黑客攻击。此外,最好准备方法校验创建于客户操作系统的数据包是否确实创建于客户操作系统中,而不是创建于宿主操作系统中;或校验该数据包是否在网络中被操控。
根据本发明的另一方面,使用服务所需的步骤如下所述。
第一步,用户(客户端)请求使用来自提供者(服务器)的服务。
第二步,提供者在用户系统中创建保护区并在客户端的保护区中创建对应的虚拟机实例。
第三步,通过安装并运行于上述虚拟机中的客户端应用程序为用户提供服务。
这里,用户不需要辨认或确认是否有诸如虚拟机等的保护区安装在他/她的系统中,用户仅需要确认安装并运行客户端应用程序就够了。然而,如果需要的话,虚拟机的安装可以通知用户,或者可以从用户获得安装的批准。如果有保护提供者系统的请求,当用户在虚拟机安装中并没有感觉到不便时,则有时并不需要向用户通知虚拟机的安装。
为了创建保护区,提供者最好向客户端传送预先安装有使用服务所需客户端应用程序的虚拟机镜像。显然,也可以通过仅传送虚拟机镜像来创建空的保护区并选择性地安装客户端应用程序,或者可以传送仅包括那些安装所需数据的虚拟机镜像。
根据本发明的一个方面,创建保护区需要安全的虚拟机系统。为证明客户操作系统中创建的数据的可靠性,可以校验客户端对象来确认是否使用了安全宿主操作系统的资源。此外,可以实施用于安全传送及接收数据的完整性校验,在其中确认传送至服务器的数据是否由客户操作系统而不是由宿主操作系统创建,或者确认传送至服务器的数据是否被操控于网络中。
如图4所示,服务提供系统包括服务器、服务镜像、和全部或部分服务器侧完整性验证装置;及服务使用者系统包括虚拟机、客户端对象校验装置、服务镜像、和全部或部分客户端侧完整性校验装置。后面将详细描述实施每个组成元素的方法。需要说明的是,说明书中的技术用语并不是为了制约或限制本发明的技术范围。
虚拟机系统
通过在保护区中创建独立的虚拟机实例可以实现安全虚拟机。使用操作系统分区技术可创建独立于宿主操作系统的客户操作系统,该虚拟机实例可随相应操作系统的系统启动进程创建并随系统关机进程而消失。
本说明书中独立使用的条件是指在一定范围内的独立,在该范围中虚拟机的操作犹如在一个独立操作系统中安装多个物理主机而在宿主操作系统与客户操作系统之间不存在资源冲突。因此,为有效地使用系统资源,宿主操作系统及客户操作系统可共享资源,如果需要的话,其应保证在不影响安全性的范围内。
传统虚拟化技术中的完全虚拟化方法是一种硬件级虚拟化方法,其模拟所有组成计算机的硬件(中央处理器、内存、控制器等等),并且应在模拟的机器中安装新的操作系统。相反,操作系统分区方法是一种操作系统级虚拟化方法,因此并不安装新操作系统,而是将已经安装的操作系统分为多个虚拟的操作系统。
另外,根据完全虚拟化方法,安装在宿主操作系统中的程序不能在客户操作系统中使用,而安装在客户操作系统中的程序也不能在其他客户操作系统中使用,因此这种方法从技术及管理的角度都不适合于实现本发明的目的。
虚拟机的运行环境
图6所示为根据本发明一优选实施方案的虚拟化方法的设置。一个独立客户操作系统的运行环境包括虚拟内核、运行空间及虚拟机数据。
一个实现虚拟内核的实施方案是模拟宿主操作系统中内核执行单元的每个组成元素。内核执行单元的组成元素包括文件、注册表、内核对象、进程、线程、虚拟内存管理器、配置管理器、I/O(输入/输出)管理器等等,并且这些组成元素可根据操作系统而变化。
一般来说,当应用程序进程或设备驱动程序需要使用文件、注册表或对象并向内核执行单元请求调用这些元素,内核执行单元则执行相应进程。内核执行单元的每一元素均有一个独特标识。如果是文件,则诸如\Device\HarddiskVolumel\windows\system32\notepad.exe的文件名为标识;如果是注册表,则键名即为标识,例如\Registry\Machine\software。如果是进程或线程,则被称为进程标识ID或线程ID的数字即为标识。
为了虚拟内核执行单元的每个组成元素,应使每个标识均为独立,并为每个虚拟机分配一存储空间。例如,空间\VM1被分配用于第一虚拟机实例的文件系统,空间\VM2被分配用于第二虚拟机实例的文件系统。如果一个应用程序进程或设备驱动程序要求访问一个文件,则VM(虚拟机)内核管理器将文件名修改为对应虚拟机文件系统的文件名,并将修改后的文件名转发给内核执行单元。例如,如果VM1中的一个进程要求访问文件\Device\HarddiskVolumel\windows\system32\notepad.exe,则VM内核管理器将文件名修改为\VM1\Device\Harddisk Volumel\windows\system32\notepad.exe,并将修改后的文件名转发给内核执行单元,内核执行单元则在存储空间\VM1中创建一个对应的文件。结果,虽然要求访问的文件名在每个虚拟机中同为\Device\HarddiskVolumel\windows\system32\notepad.exe,但各个虚拟机中的文件却互不相同。其他组成元素,例如注册表、内核对象等等都以相同的方式进行虚拟。
在实现虚拟机的另一实施方案中,并不是将内核执行单元的组成元素虚拟化分成多个,而是对应每个虚拟机创建一个内核执行单元自身。
一般来说,运行于支持保护模式及虚拟地址的CPU中的操作系统提供了用户模式及内核模式。用户模式的虚拟地址空间在每个进程中是独立的,而内核模式的虚拟地址空间则在所有进程中是通用并共享的。例如,因为诸如记事本的用户进程运行于用户模式,所以可运行多个相同的程序,并且每个进程具有一个独立的虚拟内存空间,从而在相同的虚拟内存地址可存储独立的数据。然而,由于内核执行单元是运行于内核模式,同一虚拟内存地址中仅能存储一个数据,并且不能运行多个内核执行单元。
在本发明中,内核管理器在物理内存与内核执行单元之间设置一VM引擎内存管理器以解决该问题。该VM引擎内存管理器将除内核执行单元之外的内核模式元素的虚拟内存空间置于通用状态,并像用户模式下那样在每个虚拟机中单独具有一个内核执行单元的虚拟内存空间,从而允许不同的值存储在同一内存地址中并使在每个虚拟机中运行一个内核执行单元成为可能。当然,为有效利用内存资源,可共享部分虚拟内存。
通过利用以上实施方案中描述的技术在每个虚拟机中创建虚拟内核之后的系统启动进程,完整的客户操作系统环境便最终准备完毕。该启动进程与宿主操作系统的启动进程同步。一般来说,启动进程包括所有或部分这些进程:检查每个虚拟机中使用的硬件、装载子系统、延迟更新、运行系统进程、运行服务进程、运行用户进程及装载设备驱动程序。
延迟更新是指一个资源,例如文件等等,无法在使用时删除或更新,则该资源通常会在系统关闭后的下一次启动进程中删除或更新。系统进程是提供操作系统环境所需的核心进程,其负责用户帐号管理、登录进程、会话管理、服务管理等等。举例来说,在微软的Windows操作系统中系统进程对应这些进程:lsass.exe、winlogon.exe及smss.exe。服务进程是在后台运行并提供其他应用程序所需的功能,包括DCOM/RPC(分布式对象模型/远程过程调用)服务、打印服务(printer spooler)等等。
虽然系统进程或服务进程可运行虚拟机中的所有进程,但为了有效利用整个系统资源它们仍可以共享在宿主操作系统或其他虚拟机中已经运行的进程。例如,如果每个虚拟机中都运行一个帐号管理系统进程,则每个虚拟机中都存在一个独立的帐号。然而,如果帐号管理进程共享一个宿主操作系统进程,则宿主操作系统的ID/密码信息可在客户操作系统中共享。
为了共享系统进程或服务进程,应该将对存在对应进程中所有通用对象的访问映射到共享进程的一个对象。例如,打印后台服务进程中用于控制打印机的命名管道或类似等等,如果客户操作系统中的记事本进程请求打印一个文档,会试图连接至客户操作系统中后台服务的命名管道。然而,客户操作系统中并不存在后台服务,而是由宿主操作系统共享后台服务,从而上述打印请求会映射到宿主操作系统的后台服务。
诸如设备驱动程序等的内核应用程序可加载在每个客户操作系统上。对于内核应用程序,与内核执行单元一样会出现通用虚拟地址空间问题。为解决该问题,如果需要的话,VM内核管理器中的VM引擎内存管理器可定位虚拟地址空间。
在运行用户进程的步骤中,服务提供者的应用程序或者用户的应用程序会在客户操作系统中运行。
系统关闭进程与宿主操作系统的关闭进程同步。该系统关闭进程需要终止用户进程、终止服务及系统进程、卸载设备驱动程序及释放各种资源。
如果采用本发明的虚拟化方法,能可观地减少虚拟机镜像的大小。传统虚拟化方法中虚拟机镜像的实现需要用于创建操作系统的数据。微软Windows目前需要600M至4G字节的数据来创建操作系统,Linux则需要几十M到几个G字节的数据。然而,根据本发明的虚拟化方法,创建操作系统不需要数据。因此,由提供者在用户系统中强制创建保护区的技术较为实用。
虚拟机的组成元素
虚拟机的组成元素包括设置管理器、桌面环境、应用程序模板、用户数据、临时数据,并且虚拟机是通过将这些组成元素放到一起而构建的。
所述设置管理器管理虚拟机的各种设置。设置项目由用户输入或由提供者提供。
桌面环境包括背景屏幕、主题、视窗风格、背景音乐等等。多个虚拟机及客户操作系统可同时在一个用户系统中运行,因此桌面环境应该提供桌面集成功能。桌面集成功能是指将存在于每个客户操作系统中的开始菜单、背景屏幕图标等集成到宿主操作系统之中,并显示完整的菜单、背景屏幕图标等等。背景图像、背景音乐、视窗风格等等都从运行中的客户操作系统中选择。
应用程序模板包括由标准平台提供者管理的预安装应用程序镜像及共享数据库镜像。使用提供者的服务所需的应用程序安装在应用程序模板中,当用户请求使用提供者的服务时,应用程序模板从服务服务器中传送至用户系统。
传统上,要使用应用程序需要一个安装过程。例如,安装MicrosoftOffice时,office应用程序应该通过执行一个来自安装压缩盘(CD)的诸如setup.exe或autorun.exe的安装文件而直接安装在用户的PC中。使用本发明,无需这样一个安装过程就能使用程序。例如,如果office应用程序以传统方法安装于虚拟机中用于创建应用程序模板,其结果则存储于应用程序镜像中。如果在通用虚拟机中装载该应用程序镜像,即可立即使用该office应用程序而无需安装。
通常,为了运行应用程序,需要其他应用程序或者共享的数据库。例如,使用涉及Microsoft Office的程序需要使用IE浏览器、NET结构或其他类似等等。如果采用了创建共享数据库镜像及将该共享数据库镜像与应用程序关联的方法,而替代在每个应用程序镜像中共享数据库的冗余安装,就可以有效地利用资源。
每个用户都使用不同的虚拟机环境。例如,某个特定机器可能已经具有一个具体的共享数据库镜像,而其他机器则可能没有。宿主操作系统可能是基于Windows XP或者Windows 2000。因此,为了使用于创建模板的虚拟机中所创建的模板能够稳定的运行于各种虚拟机中,标准平台提供者应该提供标准的虚拟机环境,并且应用程序模板应该在标准平台上运行。
用户数据镜像存储用户在使用提供者的服务过程中通过虚拟机创建的数据,例如各种档案文件、用户定义文件、属于用户他/她自身安装的软件的文件及注册表,等等。
临时数据镜像存储虚拟机运行过程中创建的数据,其可以在临时使用该数据后删除。桌面环境、应用程序模板及用户数据可加载在不同的虚拟机上或共享。然而,临时数据则是在运行某个具体虚拟机的过程中创建,因此不能被共享。
如图7所示,应用程序模板、用户数据及临时数据是分等级的。例如,以文件系统为例,宿主操作系统文件、标准平台提供者的文件、应用程序镜像的文件、用户数据文件及临时数据文件堆叠在文件系统栈中。如果一个应用程序请求文件c:\windows\system32\notepad.exe,则从临时数据中搜索对应的文件;如果临时数据中不存在该文件,则从用户数据文件中搜索该文件;如果用户数据文件中不存在该文件,则从应用程序数据文件中搜索该文件;如果应用程序数据文件不存在该文件,则从宿主操作系统文件中搜索该文件。其他内核组成元素,例如注册表、内核对象等都以相同的方式操作。
文件、注册表、内存及其他数据可存储在应用程序模板、用户数据镜像或临时数据镜像中。每个镜像可以单个或多个文件的形式存储,或者直接记录在物理存储介质的扇区中。存储空间可以按初始创建镜像所需的大小预先分配,或者按照使用虚拟机时的需要动态增加。
整个或部分虚拟机镜像可存储或缓存于固定硬盘、移动硬盘、通过网络连接的文件存储服务器或其他类似等等之中。如果用户选择便携式磁盘或通过网络连接的文件存储服务作为镜像存储装置,并且除目前使用系统之外的另一个系统也使用相同的服务,则用户可以通过连接便携式存储装置或文件存储服务器并装在数据镜像或应用程序镜像来复制及使用一个正在现有系统中使用的环境。使用应用程序镜像可以复制应用程序安装环境,进程中的文件档案及其他数据可以像通过用户数据镜像那样使用。标准平台提供者为不同系统之间的差别提供补偿。
使用镜像缓存功能,只能从服务器向客户端传送目前需要的一部分完整镜像,使用传送的部分可运行虚拟机。如果多个服务提供者使用相同的应用程序模板,用户则可利用在使用其他提供者服务的过程中传送的镜像缓存,从而提高网络的传输效率。如果用户没有将缓存的镜像存储在固定硬盘,而是存储在诸如USB盘的便携式存储设备中,当用户使用在其他系统中使用的相同服务时,用户可通过便携式存储设备中缓存的镜像快捷地使用服务。
客户端对象校验
对客户端对象进行校验以提供安全的客户操作系统环境,其中处理的校验列表包括可以在客户操作系统上装载的诸如执行文件、档案文件、对象、DLLs等等。根据传统的完全虚拟化技术,作为虚拟机创建的客户操作系统和宿主操作系统相对被视为完全独立并不共享任何资源的两个系统。然而,根据本说明书中使用的操作系统级虚拟化方法,由于客户操作系统共享宿主操作系统的一部分资源,因此需要客户端对象的校验来检查宿主操作系统的共享资源是否安全。
客户端对象校验防止知悉客户端应用程序共享宿主操作系统资源的恶意用户访问客户端应用程序所使用的宿主操作系统资源及对数据进行操控,从而防止对传送至服务器的数据包进行操控。反过来,由于数据要求得到安全保护,例如私密档案或半导体设计电路图等,可存在宿主操作系统中,如果客户操作系统要求访问的宿主操作系统的一个对象是不被允许的,则可通过客户端校验阻止访问。
虚拟机设置管理器可设置虚拟机的安全等级,安全性选项可分为全允许、宿主校验及全校验。如果是全允许,任何文件都可在客户操作系统上运行或装载。如果是宿主校验,则与宿主操作系统共享的对象,例如文件、注册表或类似等等,在客户操作系统使用之前要进行可用性校验。如果要访问的属于宿主操作系统的对象是服务提供者无权访问的对象,例如私密材料、用户屏幕或类似等等,则访问会被阻止。如果要访问的属于宿主操作系统的对象是恶意代码或已被恶意代码感染,或者该对象是未列在信任名单中的文件,则访问会基于虚拟机设置管理器的安全策略而被阻止。在这种情况下,提供服务的服务器则向虚拟机拷贝未被恶意代码感染的安全文件,并使用拷贝的文件进行下一个步骤。在全校验中,客户操作系统中的对象,连同诸如文件、注册表或类似等等与宿主操作系统共享的那些对象,使用之前都需要经过校验。
上述校验的一个实施方案是使用电子签名。如果文件的特定部分附有关于文件内容的电子签名值,则可通过校验对应的电子签名数值来确认文件是否可靠。可以不将电子签名记录在文件的特定部分中,而可以管理一个将电子签名及文件名记录在一起的校验列表。
上述校验的另一个实施方案是使用哈希hash值。如果文件的特定部分附有关于文件内容的哈希hash值,则可以通过使用相同算法重新计算对应的哈希hash值并校验哈希hash值是否匹配来确认文件是否可靠。可以不将哈希hash值记录在文件的特定部分中,而可以管理一个将哈希hash值与文件名记录在一起的校验列表。
上述校验的再一个实施方案是使用诸如文件名、创建时间及类似等等的简易信息来校验对象。
作为校验的结果,如果对象不安全,则会基于访问控制规则阻止访问,或者服务器在客户操作系统中安装安全资源,并且使用该安全资源。在服务器向客户端传送安全资源之后,客户操作系统便使用传送的资源。
完整性校验
完整性校验是为了给用户及提供者提供一个安全的服务环境,在其中客户端侧完整性校验与服务器侧完整性校验进行交互,从而校验服务器与客户端之间传送及接收的数据。完整性校验在服务器与客户端之间创建了一个安全通道,从而拦截针对客户端及服务器的攻击。
如果仅按上述对客户端对象进行校验,无法防护针对服务器的攻击。为了安全地保护虚拟机中运行的服务提供者的软件,应该使虚拟机中仅运行相应的软件,而不应在其中运行恶意代码或类似等等。因此,服务提供者软件的细节记录在一个校验列表中,只有经过校验的对象才能允许使用。在这种情况下,无论何时软件进行更新,则校验列表也应该进行更新,这样管理起来较为不便。
因此,如果采用了完整性校验,就可保护服务器免受攻击,也可保护服务提供者的客户端应用程序。
参照图5所示,将描述本发明采用完整性校验的一个实施方案。通常,客户端/服务器系统包括客户端侧系统500及服务器侧系统550,并且客户端侧系统通过网络532与服务器侧系统连接。客户端侧系统500包括客户端应用程序521及可以运行该客户端应用程序的操作系统,并且应用程序运行空间被分为普通应用程序运行区510及保护区520。普通应用程序511、黑客工具512及其他软件513可运行于普通应用程序运行区510中,客户端应用程序521及完整性校验装置522运行于保护区520中。迄今为止,针对服务器侧系统550的攻击实施方式均表现为黑客533操控客户端应用程序521或运行黑客工具512来创建恶意数据包531并通过传送该恶意数据包传对服务器侧系统550进行攻击。因此,如上所述,设置在服务器一端的现有服务器系统安全产品检查收到的网络数据包并决定是否接收该数据包,或者自身消除服务程序551的漏洞。
在普通应用程序运行区510中,黑客可自由操控正在运行的应用程序及运行该区内的任何应用程序。然而,在保护区520中仅仅能运行预先确认的客户端应用程序521,黑客工具、恶意代码或广告软件则不能侵入保护区中,从而客户端应用程序521可被保护免受黑客攻击。
然而,当只有由客户端应用程序521在保护区520内创建的数据包被允许传送至服务器侧系统并且所有由其他应用程序511、512及513创建的网络数据包均被拦截时,服务器侧系统550便可在某种程度上得到保护。另外,虽然在保护区520中创建的网络数据包530是安全的,但该数据包是通过各种网络传输部件532传送到服务器侧系统550,所以黑客533可以在网络传输部件532中伪造该数据包或插入恶意代码。因此,需要进行完整性校验,其保证由客户端应用程序521在保护区520中创建的数据包在经过网络传输部件532时黑客533没有对其进行伪造。
完整性校验分为客户端侧完整性校验522及服务器侧完整性校验540,两部分通过彼此交互实现完整性的校验。
完整性校验的一个实施方案是加密。图8所示为完整性校验的一个优选实施方案。为了阻止黑客860操控数据包,进而攻击客户端应用程序800及服务器应用程序850,在传送由保护区520中运行的客户端应用程序800创建的网络数据包及由服务器应用程序850创建的数据包的过程中,客户端与服务器间传送及接收的数据经过了加密。客户端应用程序800创建的网络数据包经过客户端侧加密装置810进行加密并传送至服务器侧。传送的数据包由服务器侧解密装置840进行解密并转发给服务器应用程序850。服务器应用程序850创建的网络数据包由服务器侧加密工具830进行加密并传送至客户端侧。传送的数据包由客户端侧解密装置820进行解密并转发给客户端应用程序800。在这种情况下,黑客绝对不可能在客户端与服务器之间的网络传输部件中伪造或仿造传送的网络数据包。
图9所示为完整性校验的另一实施方案,其使用hash值进行。当客户端应用程序900创建的网络数据包传送至服务器应用程序930,客户端侧完整性信息附加模块910为网络数据包附加上使用传送网络数据包计算的完整性校验值并,将附加有该完整性校验值的数据包传送至服务器侧。如果黑客940在传送过程中对数据包进行仿造或伪造941,则由服务器侧完整性信息确认模块921使用该数据包计算的完整性校验值将不同于由客户端侧完整性信息附加模块910使用该数据包计算并附加的完整性校验值。在这种情况下,服务器侧完整性信息确认模块921确认传送的网络数据包是仿造或伪造的并丢弃该数据包。如果完整性校验值相同,则将传送的数据包转发给服务器应用程序930。
当网络数据包是从服务器应用程序930传送至客户端应用程序900时,服务器侧完整性信息附加模块920为网络数据包附加上一个使用传送网络数据包计算的完整性校验值并将附加有该完整性校验值的数据包传送至客户端侧。如果黑客940在传送过程中对数据包进行仿造或伪造941,则由客户端侧完整性信息确认模块911使用该数据包计算的完整性校验值将不同于由服务器侧完整性信息附加模块920使用该数据包计算并附加的完整性校验值。在这种情况下,客户端侧完整性信息确认模块911确认传送的网络数据包是仿造或伪造的并丢弃该数据包。如果完整性校验值相同,则将传送的数据包转发给客户端应用程序900。
在目前的服务器应用程序安全系统中,所有传送的数据包均在OSI7层的7层(应用层)进行检测以确认数据包中是否包含恶意内容,因而需要很多的计算时间,从而降低了服务器系统的性能。然而,在本发明中,不需要这种计算,因而服务器系统可受到保护而无需降低系统性能。
(三)有益效果
本发明的目的之一,保护服务使用者的系统,是通过上述的保护区创建实现的。即使服务提供者的软件为恶意代码或被恶意代码感染,或在服务提供者软件中隐藏有用于漏洞攻击的未知代码,主机操作系统也能受到保护免受感染。用户系统可通过附加的客户端对象校验进一步得到安全地保护。如果客户操作系统要访问的属于主机操作系统的对象(例如,私密文件)不被允许,可通过客户端对象校验阻止该访问。
本发明的另一目的,保护服务提供者系统,是通过上述的保护区创建及完整性校验实现的。服务提供者在用户系统中创建一个安全的客户操作系统环境并在该客户操作系统中运行客户端应用程序,从而保护客户端应用程序免疫于主机操作系统中恶意代码及黑客程序。另外,只有那些在安全应用操作系统中创建的网络数据包才能通过完整性校验被接受,从而服务器能保护自身免受外部攻击。另外对客户端对象进行校验以防止恶意用户操控客户端应用程序,从而长期安全地保护提供者系统。
本发明的再一个目的,同时对服务提供者系统及服务使用者系统进行保护,是通过上述的保护区创建、客户端对象校验及完整性校验实现的。从而,完成了一个本发明所追求的最理想的安全系统。
本发明的另一个目的,便利地分发软件并使用户方便、快捷地使用软件,是通过虚拟机镜像的传送实现的。为了使一人能由他/她自己安装个别需要的软件并调整各种程序配置,需要专业人员的知识。在本发明中,服务使用者并非由他/她自己创建用于使用服务的软件环境,而是由服务提供者创建最适宜于该服务的环境,并且允许用户使用创建的环境。因此,哪怕是一个对电脑不熟悉的用户也可以通过由服务提供者传送的应用程序模板直接地使用该服务,而无需复杂的传统软件安装过程,并且用户可使用缓存功能及一个便携式磁盘或文件服务器存储功能而快捷、方便地享用服务。
附图说明
参考以下结合相应图示进行的详细说明可进一步充分理解本发明的目的及优点。
图1为传统网络防火墙的运行示意图;
图2为传统WEB应用防火墙的运行示意图;
图3为使用传统漏洞扫描工具及源代码分析工具进行程序开发的流程示意图;
图4为本发明服务器系统及客户端系统的一个优选实施方案图示;
图5为本发明系统完整性校验的一个优选实施方案图示;
图6为本发明操作系统级虚拟化方法的一个优选实施方案图示;
图7为根据本发明一个优选实施方案的分层数据图示;
图8为本发明一个实现完整性校验的优选实施方案图示;以及
图9为本发明另一个实现完整性校验的优选实施方案图示。
具体实施方式
实施本发明的最优方式
根据本发明的一个优选实施方案,如果用户请求使用服务,则提供者向用户系统传送一个虚拟机镜像。传送的虚拟机镜像创建一个虚拟机实例,并且预先安装在服务镜像中的客户端应用程序开始运行。
由于客户端应用程序在虚拟机中执行,即使该软件为恶意代码或被恶意代码感染,用户系统也能得到安全地保护,并且用户可以容易、快捷、便利地使用该服务而无需复杂的安装过程。
特别地,通过因特网虚拟客户服务环境是有益的。例如,在传统技术的网上银行方法中,如果用户要使用网上银行就需要安装证书程序及各种安全程序。然而,各种安装的安全程序也不能有效地保护用户或提供者的信息免受攻击。可是,如果使用预先安装有网上银行所需各种应用程序的虚拟机,用户就可以容易、快捷的方式使用提供者的服务并安全的保护系统免受攻击。相同的方法可应用到使用因特网的大多数客户服务中,例如网上银行、网上购物、网上证券交易等等。
本发明的方式
在本发明的一个实施方案中,上述的一个优选实施方案额外有客户端对象校验。通过客户端对象校验,可创建一个安全的客户操作系统环境,并且可防止客户操作系统中的进程访问宿主操作系统中的重要资源,反过来亦可。另外,可保护客户端应用程序免疫于恶意代码或宿主操作系统中安装的黑客程序,或免受黑客的操控。
在本发明的另一实施方案中,上述的一个优选实施方案额外有完整性校验。通过完整性校验,可防止利用网络对服务器及客户端的攻击,从而可提供一个最大安全的系统。通过完整性校验,服务器仅接收那些在保护区中创建并且未在传送期间被操控的数据。
根据本发明的另一实施方案,预先安装有用户所需多种程序的虚拟机镜像由提供者传送至用户系统。传统上,软件的分发方式为:软件生厂商或分配者在网上或网下商店中销售软件,购买者通过邮件、电子文件下载或类似等等接收软件的安装CD,再由他/她自己在他/她的PC中安装该软件,并使用该软件。如果软件销售者以虚拟机镜像的形式或者以在虚拟机中包含有一组所需软件的标准虚拟机的形式分发软件,那么即使是不熟悉计算机的用户也能像使用普通电器那样以容易、快捷的方式使用PC机。用户的请求包括预先确定要安装的一个或多个程序的类型以及每个程序的特定设置细节。提供者在虚拟机中按照用户的要求预先安装一个或多个程序及在其中设置细节,并在用户请求时将其传送至用户系统中。
按照用户要求定制的每个用户的虚拟机镜像可单独存储在服务器中。因此,如果用户由于系统崩溃或操作系统故障而需要重新安装程序,系统只需通过从服务器重新传送存储的虚拟机镜像即可快速恢复。
根据本发明的另一实施方案,使用企业内部的内联网环境及企业外部的外联网环境对一个企业的工作环境进行虚拟化。在这种情况下,用户可能是企业的职工、合作公司的外部人力或类似等等,而提供者则是企业内负责IT的人士。传统上,该用户应该获取业务所需的软件并分别地安装软件以构建工作环境。然而,使用本发明的系统,该用户可以容易地通过由提供者为该业务创建的虚拟机来使用一个预先设置的工作环境。该提供者可容易地管理企业内将要分发的应用程序的版本控制及维护,从而节省企业的IT管理开销。另外,如果工作区域进行了虚拟化,则创建的商业资料将仅仅在虚拟机内保存,从而可防止资料的泄露。此外,当用户在商务旅行中或在企业外部工作而需要在网吧、饭店或类似等等使用公共PC机时,用户可以使用虚拟机镜像迅速地复制出相同的工作环境。如果用户在工作后将虚拟机镜像存储在镜像服务器并从公共PC机中删除该虚拟机镜像,所有的工作细节都会从PC中删除,从而可防止企业资料泄露给其他用户。即使是该公共PC机中安装有黑客工具,由于虚拟机内部是安全的,用户也可以放心地专注于业务。
尽管本发明结合多个优选实施方案进行描述,然而该描述仅用于本发明的说明而不能解释为对本发明进行限制。本领域的技术人员可联想到多种修饰或改变,其仍不脱离本发明所附权利要求限定的范围。
工业实用性
本发明可应用于多种领域,包括:使用因特网环境以服务器-客户端模式运行的各种电子商务系统,例如家庭购物或家庭银行;用于保护企业或政府机构的资料或其他数据的安全产品;各种软件的分发;以及其他等等。

Claims (23)

1、一种由服务提供者通过网络向服务使用者提供服务的方法,该方法包括以下步骤:
接收所述服务使用者的服务请求;
由所述服务提供者通过网络在所述服务使用者的系统中创建保护区;及
在所述保护区内运行由所述服务提供者提供的服务应用程序,
其中,所述保护区独立于服务使用者系统中保护区以外的区域。
2、如权利要求1所述的方法,其特征在于,所述保护区是通过传送虚拟机的镜像创建的。
3、如权利要求2所述的方法,其特征在于,所述虚拟机的镜像包括至少一部分提供服务所需的应用程序。
4、如权利要求2所述的方法,其特征在于,所述保护区是通过虚拟化操作系统创建的,从而所述服务使用者系统被分为宿主操作系统及客户操作系统,并且所述客户操作系统形成所述保护区。
5、如权利要求4所述的方法,其特征在于,所述方法还包括:
校验所述宿主操作系统的对象是否为可访问的;
其中,如果为可访问的,则所述宿主操作系统的对象在所述客户操作系统中是可用的。
6、如权利要求4所述的方法,其特征在于,所述方法还包括:
校验所述宿主操作系统的资源是否是安全的;
其中,如果是安全的,则所述宿主操作系统的资源共享于所述客户操作系统。
7、如权利要求1所述的方法,其特征在于,所述服务提供者仅接收从所述保护区中创建的数据。
8、如权利要求1或7所述的方法,其特征在于,所述方法还包括:
校验所述服务提供者传送或接收的数据的完整性。
9、如权利要求8所述的方法,其特征在于,所述数据完整性的校验是通过在一端对数据进行加密并在另一端对数据进行解密而实现的。
10、如权利要求8所述的方法,其特征在于,所述数据完整性的校验是通过在一端为数据附加哈希值并对接收数据所附加的哈希值进行确认而实现的。
11、一种分发程序的方法,该方法包括以下步骤:
接收服务使用者对至少一个程序的请求;
向所述服务使用者传送虚拟机镜像;及
在所述服务使用者的系统中安装所述虚拟机镜像;
其中所述服务使用者请求的至少一个程序预安装在所述虚拟机镜像中。
12、如权利要求11所述的方法,其特征在于,所述虚拟机是通过操作系统级虚拟化方法创建的。
13、如权利要求11或12所述的方法,其特征在于,所述服务使用者的请求中包括列有程序及每个程序设置的清单。
14、如权利要求11、12或13所述的方法,其特征在于,传送至服务使用者的虚拟机镜像的拷贝存储于服务提供者的系统或外部存储空间,从而可将虚拟机镜像传送至服务使用者。
15、一种保护具有服务器及客户端的网络系统的系统,该系统包括:
用于在客户端中创建保护区的装置,所述保护区保护客户端应用程序;
用于校验完整性的装置,在客户端侧和/或服务器侧提供,所述用于校验完整性的装置确保在服务器及客户端之间传送的网络数据包未被操控。
16、如权利要求15所述的系统,其特征在于,在服务器侧提供的所述用于校验完整性的装置被设定成仅允许接收由在所述保护区中运行的客户端应用程序创建的网络数据包。
17、如权利要求15或16所述的系统,其特征在于,所述用于创建保护区的装置为虚拟机。
18、如权利要求15或16所述的系统,其特征在于,所述用于创建保护区的装置是用于创建操作系统隔离资源的装置。
19、如权利要求18所述的系统,其特征在于,所述用于创建操作系统隔离资源的装置阻止执行于保护区中的进程对资源的访问,所述资源不允许执行于保护区中的进程进行访问;并阻止执行于保护区外的进程对执行于保护区内的进程的资源的访问。
20、如权利要求19所述的系统,其特征在于,所述对资源的访问包括访问以下至少其中之一:内存、文件、目录、注册表、句柄、进程及网络。
21、如权利要求15所述的系统,其特征在于,所述用于校验完整性的装置包括用于创建完整性信息的装置及用于确认完整性信息的装置。
22、如权利要求21所述的系统,其特征在于,所述用于创建完整性信息的装置对数据包进行加密,所述用于确认完整性信息的装置对所述数据包进行解密。
23、如权利要求21所述的系统,其特征在于,所述用于创建完整性信息的装置为数据包附加哈希值,所述用于确认完整性信息的装置确认所述哈希值。
CN200780017193XA 2006-05-18 2007-05-17 用于保护客户端及服务器的方法 Expired - Fee Related CN101443746B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
KR1020060044601 2006-05-18
KR10-2006-0044601 2006-05-18
KR1020060044601A KR20070111603A (ko) 2006-05-18 2006-05-18 클라이언트 및 서버의 보안시스템
KR1020070027161 2007-03-20
KR10-2007-0027161 2007-03-20
KR20070027161 2007-03-20
PCT/KR2007/002411 WO2007136192A1 (en) 2006-05-18 2007-05-17 Method for protecting client and server

Publications (2)

Publication Number Publication Date
CN101443746A true CN101443746A (zh) 2009-05-27
CN101443746B CN101443746B (zh) 2012-12-26

Family

ID=39090381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780017193XA Expired - Fee Related CN101443746B (zh) 2006-05-18 2007-05-17 用于保护客户端及服务器的方法

Country Status (2)

Country Link
KR (1) KR20070111603A (zh)
CN (1) CN101443746B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073536A (zh) * 2011-01-11 2011-05-25 济南银泉科技有限公司 利用云平台实现模板编辑入库及批量生成虚拟机的方法
CN101706851B (zh) * 2009-11-03 2012-07-04 广州广电运通金融电子股份有限公司 自助终端的进程控制方法及系统
CN102667791A (zh) * 2009-11-20 2012-09-12 西门子公司 用于根据提供的权限信息访问控制数据的方法和装置
CN102707971A (zh) * 2012-04-26 2012-10-03 广东电子工业研究院有限公司 一种在虚拟机中自动获取和安装软件的方法
CN102754092A (zh) * 2009-12-14 2012-10-24 思杰系统有限公司 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统
CN103098043A (zh) * 2010-09-10 2013-05-08 国际商业机器公司 随需虚拟机映像流式传输
CN103164467A (zh) * 2011-12-15 2013-06-19 英顺源(上海)科技有限公司 存取映射档案的系统及其方法
CN102754092B (zh) * 2009-12-14 2016-11-30 思杰系统有限公司 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统
CN106487850A (zh) * 2015-08-29 2017-03-08 华为技术有限公司 一种云环境下获取镜像的方法、装置和系统
CN111143857A (zh) * 2019-12-27 2020-05-12 深圳前海达闼云端智能科技有限公司 一种数据分享方法、机器人控制器及存储介质
TWI743773B (zh) * 2019-11-22 2021-10-21 大陸商支付寶(杭州)信息技術有限公司 基於隱私資料保護的異常採集行為識別方法和裝置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101478619B1 (ko) 2008-02-27 2015-01-06 삼성전자주식회사 가상화 기술을 이용한 데이터 입출력 방법 및 장치
KR101069500B1 (ko) * 2008-09-12 2011-09-30 포항공과대학교 산학협력단 네크워크 시스템에서 가상화 및 신뢰 플랫폼 모듈을 이용한데이터 보안 처리 방법 및 기록매체
KR100985074B1 (ko) * 2009-02-05 2010-10-04 주식회사 안철수연구소 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US8539583B2 (en) 2009-11-03 2013-09-17 Mcafee, Inc. Rollback feature
KR101089157B1 (ko) * 2010-03-05 2011-12-02 주식회사 안철수연구소 클라이언트 가상화를 이용한 서버의 논리적 망분리 시스템 및 방법
KR101107056B1 (ko) * 2011-07-07 2012-01-25 이니텍(주) 클라우드 컴퓨팅 환경에서 가상 머신의 보안 정보 처리 방법
KR101415403B1 (ko) * 2012-08-31 2014-07-04 이병환 공유 가능한 보안공간 제공시스템 및 그 방법
KR102116902B1 (ko) * 2018-02-20 2020-05-29 고려대학교 산학협력단 Https에서의 쿠키 무결성 검증 방법
KR102247621B1 (ko) * 2019-10-28 2021-04-30 숭실대학교산학협력단 손상된 스위치와 우회 공격을 탐지하는 네트워크 환경 관리 시스템 및 방법
CN118296593B (zh) * 2024-06-06 2024-08-20 北京长亭科技有限公司 一种网络安全靶场的实操结果验证方法及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706851B (zh) * 2009-11-03 2012-07-04 广州广电运通金融电子股份有限公司 自助终端的进程控制方法及系统
CN102667791A (zh) * 2009-11-20 2012-09-12 西门子公司 用于根据提供的权限信息访问控制数据的方法和装置
CN102754092B (zh) * 2009-12-14 2016-11-30 思杰系统有限公司 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统
CN102754092A (zh) * 2009-12-14 2012-10-24 思杰系统有限公司 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统
CN103098043B (zh) * 2010-09-10 2015-04-22 国际商业机器公司 随需虚拟机映像流式传输的方法和系统
CN103098043A (zh) * 2010-09-10 2013-05-08 国际商业机器公司 随需虚拟机映像流式传输
CN102073536A (zh) * 2011-01-11 2011-05-25 济南银泉科技有限公司 利用云平台实现模板编辑入库及批量生成虚拟机的方法
CN103164467A (zh) * 2011-12-15 2013-06-19 英顺源(上海)科技有限公司 存取映射档案的系统及其方法
CN103164467B (zh) * 2011-12-15 2016-03-02 英顺源(上海)科技有限公司 存取映射档案的系统及其方法
CN102707971A (zh) * 2012-04-26 2012-10-03 广东电子工业研究院有限公司 一种在虚拟机中自动获取和安装软件的方法
CN106487850A (zh) * 2015-08-29 2017-03-08 华为技术有限公司 一种云环境下获取镜像的方法、装置和系统
CN106487850B (zh) * 2015-08-29 2019-10-25 华为技术有限公司 一种云环境下获取镜像的方法、装置和系统
TWI743773B (zh) * 2019-11-22 2021-10-21 大陸商支付寶(杭州)信息技術有限公司 基於隱私資料保護的異常採集行為識別方法和裝置
CN111143857A (zh) * 2019-12-27 2020-05-12 深圳前海达闼云端智能科技有限公司 一种数据分享方法、机器人控制器及存储介质

Also Published As

Publication number Publication date
CN101443746B (zh) 2012-12-26
KR20070111603A (ko) 2007-11-22

Similar Documents

Publication Publication Date Title
CN101443746B (zh) 用于保护客户端及服务器的方法
US8738786B2 (en) Method for protecting client and server
KR101179849B1 (ko) 가상머신 템플릿 이미지의 구동방법
JP6591678B2 (ja) チェーン接続セキュリティシステム
JP6347831B2 (ja) ハイパーバイザに制御されるシステムにおいてゲスト・イベントを処理するための方法、データ処理プログラム、コンピュータ・プログラム製品、およびデータ処理システム
KR101332135B1 (ko) Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들
Gray et al. D’Agents: Security in a multiple-language, mobile-agent system
US7478246B2 (en) Method for providing a scalable trusted platform module in a hypervisor environment
US7836303B2 (en) Web browser operating system
CN101512512B (zh) 利用软件名声的软件授权
US20150212842A1 (en) On-demand disposable virtual work system
CN102420846A (zh) 企业用户对主存的虚拟机的远程访问
US20090276774A1 (en) Access control for virtual machines in an information system
US20080216096A1 (en) Virtual Computer System Supporting Trusted Computing and Method for Implementing Trusted Computation Thereon
JPH10313309A (ja) 国際暗号法フレームワークでアプリケーションが一定のサービスクラスを合法的に実行することを認証する装置
EP3534583A1 (en) Secure processor chip and terminal device
US20050005101A1 (en) Kernel cryptographic module signature verification system and method
WO2011145199A1 (ja) 外部ブートデバイス、外部ブート方法、情報処理装置及びネットワーク通信システム
CN104871174A (zh) 用于“自带”管理的引导机制
JP3630087B2 (ja) 自動データ処理装置
Wang et al. TVIDS: Trusted virtual IDS with SGX
Peinado et al. An overview of NGSCB
Yao et al. Virtual Firmware
Liu et al. TZEAMM: An Efficient and Secure Active Measurement Method Based on TrustZone
Cooper Towards a trusted grid architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121226

Termination date: 20140517