CN1964359B - 用于远程验证系统完整性的方法和系统 - Google Patents

用于远程验证系统完整性的方法和系统 Download PDF

Info

Publication number
CN1964359B
CN1964359B CN200610153806XA CN200610153806A CN1964359B CN 1964359 B CN1964359 B CN 1964359B CN 200610153806X A CN200610153806X A CN 200610153806XA CN 200610153806 A CN200610153806 A CN 200610153806A CN 1964359 B CN1964359 B CN 1964359B
Authority
CN
China
Prior art keywords
information flow
access control
control policy
trusted subjects
integrality
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.)
Expired - Fee Related
Application number
CN200610153806XA
Other languages
English (en)
Other versions
CN1964359A (zh
Inventor
T·R·耶格尔
R·赛勒
L·P·范多恩
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1964359A publication Critical patent/CN1964359A/zh
Application granted granted Critical
Publication of CN1964359B publication Critical patent/CN1964359B/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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种用于远程验证(例如,分析)系统完整性的计算机实现的方法、系统和程序产品。具体地,在系统启动时,读取在系统内阐明信息流的访问控制策略和决定与系统中的目标应用相互作用的可信主体组。基于访问信息流和可信主体组,构造系统的信息流图形。在目标应用的运行时间,测量运行时间信息和装载到可信主体组中的程序代码。测量装载的程序代码允许远程方验证程序代码是用于可信主体组的“预期”程序代码。

Description

用于远程验证系统完整性的方法和系统
技术领域
本发明总体上涉及系统完整性验证。具体地,本发明涉及用于远程验证(例如,分析)系统完整性的计算机实现的方法、系统和程序产品。
背景技术
随着计算机基础结构的普及和性能日益增长,能够验证在其中运行的软件完整性的需要也增长。传统方法集中于本地检查在系统上运行的程序代码,以试图检验正确的执行。尽管对于系统的用户或管理员来说,在安全性关键的应用上执行完整性验证是重要的,允许远程方验证系统的完整性可以具有附加的益处。例如,人们连接网址可能需要某些保证:在揭示个人信息之前正确地设置系统。网络管理员可能希望检查在膝上型电脑被允许连接到局域网之前,它们被适当地配置。
不幸地,现有的方法未能提供系统完整性(例如,分析)的远程验证。亦即现有方法未能考虑许多因数如信息流、可信主体等。
发明内容
一般而言,本发明提供了一种用于远程验证(例如,分析)系统完整性(即,其目标应用)的计算机实现的方法、系统和程序产品。具体地,在启动系统时,读取在系统内阐明信息流的访问控制策略和决定与系统中的目标应用相互作用的可信主体组。访问控制策略中的信息流典型地是系统的应用和文件之间的信息流,以及基于相应的主体标记和对象标记定义在访问控制策略中。无论如何,基于信息流和可信主体组,构造系统的信息流图形。这允许远程方验证进入目标应用的所有“边缘(edge)”源于可信主体组的一个或通过过滤接口源于不可信主体。然后,在目标应用的运行时间,测量运行时间信息和装载到可信主体组中的程序代码。测量装载的程序代码允许远程方验证程序代码是用于可信主体组的“预期”程序代码。基于信息流图形、运行时间信息和装载的程序代码,可以进行(例如,分析)完整性决定。
本发明的第一方面提供一种用于远程验证系统完整性的计算机实现的方法,包括:读取在系统内阐明信息流的访问控制策略;决定与系统中的目标应用相互作用的可信主体组;基于访问控制策略和可信主体组,构造系统的信息流图形;以及测量装载到可信主体组中的程序代码。
本发明的第二方面提供一种用于远程验证系统完整性的系统,包括:用于读取在系统内阐明信息流的访问控制策略的策略系统;用于决定与系统中的目标应用相互作用的可信主体组的主体系统;基于访问控制策略和可信主体组构造系统的信息流图形的图形系统;以及用于测量装载到可信主体组中的程序代码的代码系统。
本发明的第三方面提供一种在计算机可用介质上存储的程序产品,用于远程地验证系统的完整性,该程序产品包括用于使得计算机系统执行下列步骤的程序代码:读取在系统内阐明信息流的访问控制策略;决定与系统中的目标应用相互作用的可信主体组;基于访问控制策略和可信主体组构造系统的信息流图形;测量系统的运行时间信息;以及测量装载到可信主体组中的程序代码。
本发明的第四方面提供一种用于配置用于远程验证系统完整性的应用的方法,包括提供一计算机基础结构,可操作用于:读取在系统内阐明信息流的访问控制策略;决定与系统中的目标应用相互作用的可信主体组;基于访问控制策略和可信主体组构造系统的信息流图形;以及测量装载到可信主体组中的程序代码。
本发明的第五方面提供嵌入用于远程验证系统完整性的传播信号中的计算机软件,该计算机软件包括用于使得计算机系统执行下列步骤的指令:读取在系统内阐明信息流的访问控制策略;决定与系统中的目标应用相互作用的可信主体组;基于访问控制策略和可信主体组构造系统的信息流图形;测量系统的运行时间信息;以及测量装载到可信主体组中的程序代码。
因此,本发明提供一种用于远程验证(例如,分析)系统完整性的计算机实现的方法、系统和程序产品。
附图说明
结合附图从本发明的各个方面的下列详细描述将更容易理解本发明的这些及其他特点,附图描绘了本发明的各个实施例,其中:
图1描绘了根据本发明用于远程验证系统完整性的系统。
注意本发明的附图没有按比例。该附图仅仅用来描绘本发明的典型方面,因此不应该被认为是限制本发明的范围。在附图中,相同的数字表示附图之间相同的元素。
具体实施方式
为了方便,本发明的详细描述将具有以下部分:
I.概述
II.定义
III.典型实施例
IV.计算机控制的实施
I.概述
本发明提供一种用于远程验证(例如,分析)系统的完整性(即,其目标应用)的计算机实现的方法、系统和程序产品。具体地,在启动系统时,读取在系统内设置信息流的访问控制策略和决定与系统中的目标应用相互作用的可信主体组。访问控制策略中的信息流典型地是系统的应用和文件之间的信息流,以及基于相应的主体标记和对象标记被限定在访问控制策略中。无论如何,基于信息流和可信主体组,构造系统的信息流图形。这允许远程方验证进入目标应用的所有“边缘”源于可信主体组的一个或通过过滤接口源于不可信主体。然后,在目标应用的运行时间,测量装载到可信主体组中的运行时间信息和程序代码。测量装载的程序代码允许远程方验证程序代码是用于可信主体组的“预期”程序代码。基于信息流图形、运行时间信息和装载的程序代码,可以进行(例如,分析)完整性决定。
II.定义
在更详细地描述本发明的教导之前,将给出某些基本的定义和相关的说明。如上所指出,本发明允许(例如,分析)远程验证系统的完整性。至此,本部分将论述分析完整性和其其他原理的使用如MAC策略、信息流、过滤接口、Biba完整性、Clark-Wilson完整性等。
通常,分析完整性是Clark-Wilson完整性模型的适应版本。具体地,分析完整性与Clark-Wilson的不同之处在于至少两个关键方法:(1)仅仅接受不可信输入的接口要求具有过滤能力;以及(2)分析完整性典型地要求开发人员明确哪个接口执行过滤。
A.基础信息流完整性
在基础信息流完整性模型中,根据信息流定义与低完整性数据的相关性。这种模型要求低完整性信息流不可以被输入到高完整性主体。本发明以基于双运算符的信息流的定义为起点,修改和观察:(1)mod(s,o)是修改运算符,其中具有主体标记s的主体(例如,过程或用户)写入具有对象标记o的对象(例如,文件或套接字(socket))和(2)obs(s,o)是观察运算符,从对象标记o的实体读取主体标记s的主体。随后,si用来指任意主体和S={si}作为主体组。类似地,Oj是一个对象类型,O={oj)是对象组。
A1.定义1(基础信息流)
在本发明下,flow(si;s)表示信息从主体si流到主体s。
flow(si,s):=mod(si,o)^obs(s,o)
接下来,运算符int(x)定义x的完整性级别,其中它可以是主体或对象。在信息流完整性模型中,完整性级别与网格(lattice)相关,int(x)>int(y),意味着y可以取决于x,但是不是反之亦然。对于本发明的目的,这意味着可信过程可以不取决于不可信过程。在完整性模型中,特殊种类的主体可以接受低-至-高完整性流。例如,Biba完整性模型允许多级保证过程以提高输入的完整性。这些多级保证过程是通过准确地升级信息流来进行委托的高保证(即,程序正确性的形式、全面的验证,如公共标准EAL7评估)程序。这种保证是费时的、主要是人工的任务。
A2.定义2(Biba完整性)
为主体s保持Biba完整性,如果:(1)所有高完整性对象最初满足完整性需要;以及(2)流向主体s的所有信息是来自等于或更高完整性的主体:
Figure 200610153806X10000210003_0
si∈S,flow(si,s)
Figure 200610153806X10000210003_1
(int(si)≥int(s))
其他基于完整性模型的信息流如LOMAC,不同地工作,但是它们具有与上面定义相同的信息流完整性语义。
注意到尽管信息流通常是传递的,仅仅非传递的信息流需要被检查,以探测Biba完整性违规。例如,假如A和B是不可信的和X和Y是可信的。如果有从A至B至X至Y的传递信息流,那么仅仅从B至X的流需要触发Biba完整性违规。不影响Biba完整性,进一步信息可以通过B至X从其他低完整性主体流出。从B至X的流需要触发违规。
B.Clark-Wilson完整性
Clark-Wilson完整性模型提供相关性的不同视图。安全-关键性过程可以接受低完整性信息流,但是整体程序必须被形式上验证。具体,它必须从所有输入接口放弃或升级所有低完整性数据。消除与低完整性信息流的相关性的关键是过滤接口的存在,该过滤接口执行低完整性数据的放弃或升级。在程序接口中不区分Clark-Wilson完整性模型,但是处理整个安全-关键性程序作为高度保证的黑盒子。结果,所有接口应该是过滤接口。
B1.定义3(Clark-Wilson完整性)
为主体s保持Clark-Wilson完整性,如果:(1)所有高完整性对象最初满足完整性需要;(2)主体S的程序行为保证是正确的;以及(3)所有接口过滤(即升级或放弃)低完整性信息流。
尽管Clark-Wilson模型不需要分开的多级保证过程,但是它需要重要的保证努力。要点是注意,由于Clark-Wilson应用程序员事先不得知系统的信息流,所有接口必须保证是过滤接口。实际上,在实际系统的环境中,常常仅仅少量接口实际上需要能过滤。这些设置可以源自于分析系统的安全策略。在开发分析完整性中这些观察归属于本发明。
C.分析完整性
现在将定义根据主体标记和它们的程序接口之间的连接的信息流。为此,需要更精确的obs运算符:obs(s,I,o)意味着主体s读取接口I上的对象类型o。用于主体的接口是输入信息,例如程序中的特定读取()请求的点。
C1.定义4(接口信息流)
flow(si,s,I)规定在作为主体s运行的程序中信息通过接口I从主体si流到主体s。
flow(si,s;I):=mod(Si,o)^obs(s,I,o)
至此,现在将定义依据接口信息流的分析完整性。
C2.定义5(分析完整性)
为主体s保持分析完整性,如果:(1)所有高完整性对象最初满足完整性需要;(2)所有可信代码可被识别为高完整性(例如,至于NGSCB,从其散列(hash)值);以及(3)所有流向s的信息来自等于或高于完整性的主体,除非它们通过程序员-注释的过滤接口I发生,这些由表述f(s;I)识别。
flow(si,s,I)^
Figure 200610153806X10000210003_2
f(s,I)→(int(si)≥int(s))
亦即,分析完整性要求目标应用的信息流附着于传统的完整性或通过过滤接口处理不可信(低-完整性)输入。
D.开发分析完整性系统
在本部分中,论述由上面论述暗示的分析完整性任务。通常,该任务在应用开发人员和系统管理员之间被如下拆分:
应用开发人员应该:(1)假定某些可信计算机基础(TCB)和应用配置,识别到程序的不可信输入并为每个执行过滤接口;(2)用DO FILTER注释来注释那些接口;以及(3)(可能与分配维护人员结合)对于具有两个主体类型的应用构成缺省的安全策略:缺省值仅仅允许来自TCB的输入以及其他,用于过滤接口,也允许需要类型的不可信输入。由于应用开发人员无论如何应该清洁它们的不可信输入,这表示仅仅少量附加的工作允许系统级完整性验证。
系统管理员必须:(1)(仅仅一次)选择系统TCB;(2)运行用于目标应用的安全策略分析工具;(3)如果没有探测到完整性-违犯许可,那么跳跃下一步骤;以及(4)分类由工具发现的每个完整性-违犯许可,以决定怎样除去非法的流。
本发明的方法允许每个系统管理员决定他/她的系统上可信什么。管理员可以依据必须可信什么以运行它,来评估运行特定的应用的风险。
E.SELinux
SELinux模块是使用LSM构架提供细粒度(fine-grained)、全面MAC强制的Linux安全性模块(LSM)。SELinux具有细粒度缺省值策略模型,具有区域转变的类型强制(TE)的延伸形式,允许策略的表达式用每个大约10个操作覆盖30个不同类型的对象。SELinux是全面的,因为它针对控制访问所有安全性相关的系统对象的所有程序。
SELinux中的关键概念是主体类型和对象类型的概念。过程安全性环境由其主体类型决定,虽然普通UNIX过程的安全性环境由其有效的UID决定。同样,非过程对象如文件与对象类型有关。许可附属于策略文件中的主体类型;如果Apache过程具有主体类型apache t,以及其配置文件具有对象类型apache_config-t,那么可以提出如下声明:
Allow apache_t pache_config_t:file
             {stat read}
以允许Apache调用其配置文件上的stat(),或从其配置文件读取。尽管除通过对象上的主体允许许可之外,在SELinux策略模型中有几种访问控制原理,但是仅仅一个其他原理与信息流有关。重标记操作允许主体改变对象的对象标记。这允许信息从老的对象标记流到新的对象标记。尽管它提供大的控制和灵活性,但是这种细粒度,全面控制导致非常大的和复杂的访问控制策略。在策略本身中(在文件policy.conf中)有超过5,000个许可任务规则(允许)。注意该策略仅仅包含基本主体。包括用于所有运送应用的策略的完全策略,约为十倍更大的尺寸。结果,理解策略暗示的高级别性能如信息流难以被人工地执行。
F.支持MAC策略中的过滤接口
不幸地,在单个过程中SELinux不能在输入接口中区分。某些接口可以仅仅必须处理高完整性数据,如读取配置文件的接口。其它接口必须能够验证和升级某些类型的低完整性数据如网络输入:这些是过滤接口。为了支持过滤接口(因此检查分析完整性),根据本发明修改SELinux用户间隔(space)程序库和核心模块,以支持每个过程两个主体类型而不是一个。缺省的主体类型用于普通的操作并在应用的TCB中仅仅允许来自主体的输入;这些被策略分析强制执行。新的过滤主体类型,具有附加的许可,用于具有合适的DO FILTER过滤注释的接口。使用于每个应用的附加主体类型允许如下所述的POLICE工具被重使用。
下面给出需要改变程序的例子和用于过滤接口的安全策略:
Before                     After
Source Code                Source Code
conn=accept()             DO FILTER(conn=accept())
//accept()fails            //accept()succeeds
get http  request(conn)    get http request sanitized(conn)
Security Policy            Security Policy
Apache:DENY accept         Apache:DEN accept
//network 62 TCB           Apache-filter:ALLOW accept
在左边示出了原始程序和策略。在右边,添加DO FILTER()注释,以表示accept()调用将被允许,通常它不允许(由于网络输入是低完整性且因此在TCB外面)。更确切地说,DO FILTER()调用允许许可检查特殊过滤主体类型。该注释是由程序员声明,接口上的输入被清洁。注意accept()系统调用还被用于过滤主体类型的MAC策略约束,它还可能被限制。例如,用于应用的过滤主体类型许可可以允许接收来自一个网络接口的连接,而不是另一个。人们可能设想该概念,进一步利用用于每个输入接口分开的主体类型。这些当然是可能的,但是将增加程序员注释和安全策略的复杂性。在本发明的当前模型中,利用表示程序中的所有过滤接口的单个主体类型。
G.MAC策略分析
根据本发明,采用POLICE工具计算来自SELinux MAC策略的信息流。POLICE表示访问控制策略作为节点是SELinux主体类型和许可(例如,允许写到/tmp文件)的图形,以及边缘是到主体类型许可分配。基于该许可是否允许mod操作、obs操作或都允许,POLICE计算表示所有flow(si;s)关系的信息流图形。
因为SELinux策略模型也允许对象重标记,我们必须考虑由修改对象和重标记它为另一个对象类型引起的信息流。re-label(s,obj,o,o′)操作使主体s能够使对象obj的标记从o变为o′。由于重标记不改变对象的内容,我们实际上不关注谁做重标记,仅仅注意它可能发生。此外,由于从信息流观点,相同对象类型的所有对象是等效的,因此那个特定的对象可能被重标记通常不是问题。因此,我们使用精确确定(predicate)的re-label(o,o′)。接下来,我们考虑连续的重标记操作o1→o2→…→oi。重标记操作的传递闭合由re-label(o1;oi)定义。重标记信息流规则状态:
mod(s1;o1)^re-label(o1;oi)^obs(si;I;oi)→flow(s1;si;I)
POLICE解决由于任意重标记的信息流。给出信息流组,本发明使用POLICE计算从低完整性主体流到其完整性被验证的目标主体的信息,如专用的OpenSSH过程。专用的过程由两个主体类型表示,一个用于其非过滤接口和一个用于其过滤接口。一些非目标主体可以被指定作为可信。该主体组在此称作可信主体,它们形成系统的TCB。TCB包括主体如引导系统(例如,核心和初始化)、定义MAC策略(例如,装载策略)和执行管理(例如,sysadm)的那些。POLICE使用其信息图形计算非法的信息流。当不可信主体写入目标应用通过非过滤接口读取的对象时产生这种流。
H.发现过滤接口
尽管根据本发明修改SELinux,以支持调解用于与其他接口分开地过滤接口,开发人员还需要进行注释以告诉SELinux在运行时间给定的接口执行过滤与否。作为该过程的一部分,开发人员需要决定哪个接口需要过滤。这可以通过在部分G中在缺省的策略上运行策略分析来执行,以及分析用于应用的所有完整性-违规流。如果某些流需要过滤,下一步将是发现应用中在哪里发生流。决定程序中在哪里使用许可的问题是超出SELinux的目标范围,因此根据本发明执行新的机构。为此,SELinux中的新操作被定义使用“sysfs”接口调用“settraceonerror”。SELinux的用户库及其核心模块都进行合适的改变。当从用户空间调用新的settraceonerror(真)函数时,只要SELinux策略的违规被发现,修改的SELinux模块发信号过程。当该信号被捕捉时,用户库捕获该过程变成分开的xterm查错程序(gdb)。如果该过程派生指令(fork),运行在子进程上具有查错程序的附加xterm窗口。一旦在查错程序中,它使用层叠迹线和数据检查更容易决定在哪里和为什么许可错误发生和采取合适的动作,除去违反操作或执行过滤接口的任何一个。注意某些过滤接口可能不需要实际过滤输入数据,由于实际上某些读取不涉及输入数据的解释。例如,“logrotate”能够自动循环记录文件,但是不取决于文件中的数据。同样,cp利用复制文件,但是不考虑它们的内容。这样的话,DO FILTER注释还是合适的,只要注意输入代码,以避免例如,由于输入数据的长度或其他性能的缓冲溢流。如果过滤接口组改变,开发人员或其他应用维护人员应该进行合适的转变为用于应用的标准(运送)安全策略。
I.处理非法的信息流
如果策略分析工具探测到由一组许可暗示的非法信息流,那么就sysadmin而言需要一些动作。某些这种许可是简单地不需要的和可以被除去。某些信息流可以由低完整性的程序需要,但是对于系统可选择。除去该信息流的一种方法是从系统排除违规的代码和运行该代码的主体。某些许可被目标应用的可选元件需要,该选择可以被禁止,以及许可可以被除去。如果该许可由core应用使用,那么sysadmin可以假定是比开发人员更小的TCB或开发人员没有增加DO FILTER注释。该sysadmin可以不运行该程序或使得开发人员写或注释附加的过滤接口。
III.典型的实施例
在本部分中,将描述本发明的典型实施例。如上所指出,本发明通常允许(例如,分析)系统的完整性(即,其目标应用)被远程地验证。分析完整性的益处是由于它针对可计量的完整性,它在下面被使用,以构成其性能的证明。证明是从系统的可信硬件根目录的声明,远程方可以用来判断那些系统的完整性。尽管对于系统的用户或管理员来说,在系统的安全性-关键应用上执行完整性验证是重要的,但是允许远程方验证系统的完整性可以具有附加的益处。例如,人们连接网址可以需要某些保证,在揭示人员信息之前适当地建立该系统。网络管理员可以想检查在允许他们连接局域网之前适当地配置膝上型电脑。
其中,本发明利用可信硬件根目录,如可信计算机组(TCG)的可信平台模块(TPM),以给远程方证明系统的完整性,即,证明在那个系统上已经运行过程组。因此通过收集系统上装载的所有代码(可执行,程序库和核心模块)及其他文件的测量(二进制上的散列),可以有助于系统的完整性,如配置文件。这是系统完整性可以源自于系统上运行的代码的测量和证明给远程方(例如,用于远距访问公司的内部网)。
认证允许核心收集调用测量列表的散列链中单个测量,并保持散列委托给TPM中的列表,每次测量被添加到列表。各种任务可以被执行,以保证根据需要更新测量列表。例如,如果它们还被使用,核心重测量修改的文件。最终,TPM可以发出带符号的认证,包括请求上的当前散列链值。简要地,远程方可以验证测量列表中的每个项目对应于可接受文件和认证保证测量列表本身的完整性。
分析完整性有助于认证的这些形式的自然延伸。除公知运行什么代码之外,分析完整性认证需要知道怎样依据信息流处理相互作用,以便远程方可以推论他想信赖的应用是否与系统中的所有不可信过程隔离。然而,本发明还利用用于远程方的下列附加测量组,以验证分析完整性。
1.MAC(在下文中称为“访问控制”)策略:访问控制策略阐明系统信息流。具体地,访问控制策略阐明应用和文件(包括目标应用)之间的信息流。根据本发明,应用由主体定义。因而,每个应用具有至少一个主体标记。此外,文件由对象定义,从主体读出/写入主体。至此,访问控制策略通过主体标记和对象标记阐明信息流。
2.可信主体:与目标应用相互作用的可信主体组(TCB)。远程方必须同意该组仅仅包含它可信的主体。
3.代码-主体映射:对于测量的所有代码,在代码和它被装载的主体类型之间映射的运行时间被记录。例如,′1s’可以由普通用户或可信管理员运行,以便我们可以想要仅仅信赖由可信用户运行的可信程序的输出。如果在两个主体类型之下运行相同代码,那么可以采取两个测量。但是,在预先使用的主体类型下的后续装载不被测量。
为了利用这些原理远程地验证分析完整性,根据本发明将跟随以下过程。在系统启动时,访问控制策略和可信主体组被读取/测量。由这些,远程方将构造信息流图形。远程方可以从图形验证,进入目标应用的所有“边缘”源于可信主体(亦即仅仅在运行时间验证,以运行可信代码)或通过过滤接口源于不可信主体。接下来,选择性地测量运行时间信息,即,与测量的程序代码(例如,用户/组标识符、标记、过程配置数据)相关的附加信息。由于信息流图形,远程方仅仅需要测量可信代码(即,可信主体的代码)。所有其它主体被假定不可信。此外,在装载的(程序)代码和其中装载代码的可信主体之间映射的运行时间被测量。这允许远程方验证为主体执行预期的代码。这类似于测量UID,在传统的UNIX中运行程序。重要问题是代码测量足以调整分析完整性的接口性能。过滤接口和泄漏防止的验证与代码有关,这可以通过远程方用它希望的无论怎样的方法来检查。因此,代码的分类表示其完整性和其完整性保护性能。对于记录具体接口性能附加测量不是必需的。
IV.计算机化的实施方式
现在参考图1,示出了本发明的更特定的计算机化的实施方式10。如所描绘,实施方式10包括计算机系统/环境12,与远程计算机系统14连通。应当理解系统12是用来表示任意计算机系统、计算机环境等等,包含文件20A-B和应用22A-C,以及用于远程地验证(例如,由远程方24通过远程计算机系统14)分析完整性。无论如何,系统12和14典型地在可以利用通信链接的各种类型的任意结合的网络(例如,互联网、广域网(WAN)、局域网(LAN)、虚拟专用网络(VPN)等)上连通。例如,该通信链接可以包括可以利用有线和/或无线传输方法的任意结合的可寻址连接。在通过互联网发生通信的地点,可以通过常规基于TCP/IP套接字的协议提供连接性,以及互联网服务供应商可用来建立到互联网的连接。然而,尽管未示出,实施方式10的某些或所有元件可以在计算机基础结构(未示出)内配置、管理、服务等等,通过为用户提供远程验证系统的分析完整性(例如,其中的目标应用)的服务供应商。
如图所示,远程计算机系统14包括处理单元30、存储器32、总线34以及输入/输出(I/O)接口36。此外,远程计算机系统14被示出与外部I/O装置/资源38和存储系统40连通。通常,处理单元30执行计算机程序代码,如被存储在存储器32和/或存储系统40中的验证系统50。在执行计算机程序代码的同时,处理单元30可以从存储器32、存储系统40和/或I/O接口36读取数据和/或写数据到存储器32、存储系统40、和/或I/O接口36。总线34在远程计算机系统14中的每个元件之间提供通信链接。外部装置38可以包括允许用户与远程计算机系统14相互作用的任意装置(例如,键盘、指示装置、显示器等)和/或允许远程计算机系统14与一个或多个其他计算装置连通的任意装置(例如,网卡、调制解调器等)。
远程计算机系统14仅仅代表各种可能的计算机系统,可以包括硬件的大量组合。至此,在其他实施例中,远程计算机系统14可以包括任意特定的计算制品,包括用于执行特殊功能的硬件和/或计算机程序代码,以及任意计算制品,包括特定目的和通用的硬件/软件的组合,等等。在每一种情况下,分别可以使用标准编程和工程技术创建程序代码和硬件。而且,处理单元30可以包括单个处理单元,或在一个或多个位置中,例如,在客户机和服务器上跨越一个或多个处理单元分布。类似地,存储器32和/或存储系统40可以包括驻留在一个或多个物理位置的各种类型的数据存储和/或传输媒介的任意组合。此外,I/O接口36可以包括用于与一个或多个外部装置38交换信息的任意系统。此外,不用说在远程计算机系统14中可以包括图1中未示出的一个或多个附加元件(例如,系统软件、数学协处理器等)。但是,如果远程计算机系统14包括手持装置等,不用说在远程计算机系统14内可以包含一个或多个外部装置38(例如,显示器)和/或存储系统40,未示出。
根据本发明,存储系统40可以是任意类型的系统(例如,数据库),其能够提供根据本发明的信息存储、访问控制策略、可信主体的目录、运行时间信息、装载的代码、信息流图形等。至此,存储系统40可以包括一个或多个存储设备,如磁盘驱动器或光盘驱动器。在另一个实施例中,存储系统40包括跨越例如局域网(LAN)、广域网(WAN)或存储区域网络(SAN)(未示出)分布的数据。尽管未示出,但是附加元件如高速缓冲存储器、通信系统、系统软件等可以被引入远程计算机系统14中。此外,应当理解系统12可以包括类似于远程计算机系统14的计算机化的元件。
远程计算机系统14的存储器32中所示的是验证系统50,验证系统50是将提供本发明的功能的软件程序,包括策略系统52、主体系统54、图形系统56、运行时间信息系统58和代码系统60。通常,这些系统表示进行如上所述的本发明步骤的程序代码。具体地,假定应用22A是远程验证分析完整性的目标应用。在系统12的启动时,策略系统52将测量/读取在系统12中阐明信息流的访问控制策略。如上所指出,这种信息流通常发生在应用22A-C和/或文件20A-B之间,以及基于主体和对象阐述。还在启动时,主体系统54将识别用于目标应用22A的可信主体组。每个应用22A-C可以具有固有可信的一个或多个其他应用,以与此连通。基于主体,每个这种可信应用将被主体系统54识别。应该理解访问控制策略和可信主体组可以从系统12提供,或可以通过远程计算机系统14从另一个位置/源访问。
基于访问控制策略和可信主体组,图形系统56将构造描绘信息流的信息流图形,然后验证从可信主体组的一个或从不可信主体通过过滤接口进入目标应用22A的所有“边缘”。然后,在目标应用22A的运行时间,运行时间信息系统58将选择性地测量运行时间“环境”信息的事项,即,与测量的程序代码(例如,用户/组标识符、标记、过程配置数据)相关的附加信息,以及代码系统60将测量装载到可信主体组中的程序代码。共同地,信息流图形、运行时间信息和装载的程序代码将用来验证目标应用22A的分析完整性。该完整性决定62可以由远程方/管理员24独立地进行或通过验证系统50内的决定系统(未示出)独立地进行。在后一种情况下,一组标准可以被提供至远程计算机系统14,用于比较目标应用22A的细节。基于该比较,可以进行完整性决定62。
尽管在此示出和描述作为远程验证完整性的方法和系统,不用说本发明还提供各种选择性的实施例。例如,在一个实施例中,本发明提供一种计算机可读/可用介质,包括计算机程序代码,以允许计算机基础结构远程验证完整性。至此,计算机可读/可用介质包括执行本发明的每个各种工序步骤程序代码。不用说术语计算机可读介质或计算机可用介质包括程序代码的一个或多个任意类型的物理实施例。具体,计算机可读/可用介质可以包括嵌入如下的程序代码,在一个或多个便携式存储制品(例如,光盘、磁盘、带等)上,在计算装置的一个或多个数据存储部分如存储器32和/或存储系统40(例如,固定盘、只读存储器、随机存取存储器、高速缓冲存储器等)上和/或作为数据信号(例如,传播信号)越过网络(例如,在程序代码的有线/无线的电子分布过程中)。
在另一个实施例中,本发明提供一种基于订阅、广告和/或付费执行本发明的工序步骤的商业方法。亦即,服务供应商如Solution Integrator,可以提供远程验证分析完整性。在此情况下,服务供应商可以为一个或多个用户创建、保持、支持等等,执行本发明的工序步骤的计算机基础结构。回过来,服务供应商可以根据订阅和/或付费协议接收来自顾客的报酬,和/或服务供应商可以接收来自一个或多个第三方广告内容的出售的报酬。
在再一实施例中,本发明提供用于远程验证完整性的计算机实现的方法。在此情况下,计算机基础结构可以被提供和可以获得(例如,创建、购买、使用、修改等)用于执行本发明的工序步骤的一个或多个系统,并配置为计算机基础结构。至此,系统的配置包括一个或多个(1)从计算机可读取介质在计算装置,如远程计算机系统14上安装程序代码;(2)增加一个或多个计算装置到计算机基础结构;以及(3)引入和/或修改计算机基础结构的一个或多个现有系统,以允许计算机基础结构执行本发明的工序步骤。
如在此使用的,应当理解术语“程序代码”和“计算机程序代码”是同义的以及意味着用任意语言、代码或注释的任意表达式,使得计算装置具有信息处理性能的一组指令,以直接或在下面的任何一个或两个之后执行特定的功能:(a)转变为另一种语言、代码或注释;和/或(b)用不同的材料形式再现。至此,程序代码可以被嵌入为一个或多个:应用/软件程序、元件软件/程序库、操作系统、用于特定的计算的基础I/O系统/驱动器和/或I/O装置等等。
为了说明和描述给出了本发明的各个方面的上述描述。不旨在详尽或限制本发明为所公开的精确形式,以及显然,许多改进和变化是可能的。所属领域的技术人员可以明白这种改进和变化旨在包括在由所附权利要求定义的本发明的范围内。

Claims (15)

1.一种用于远程验证系统的完整性的计算机实现的方法,包括:
读取在所述系统内阐明信息流的访问控制策略;
决定与所述系统中的目标应用相互作用的可信主体组;
基于所述访问控制策略和所述可信主体组构造所述系统的信息流图形;以及
测量装载到所述可信主体组中的程序代码。
2.根据权利要求1的计算机实现的方法,其中所述访问控制策略中的信息流是所述系统的应用和文件之间的信息流,以及基于主体在所述访问控制策略中定义所述信息流。
3.根据权利要求1的计算机实现的方法,其中所述信息流图形用于远程验证进入所述目标应用的边缘源于所述可信主体组的一个或通过过滤接口源于不可信主体。
4.根据权利要求1的计算机实现的方法,还包括基于所述测量步骤,远程验证装载到所述可信主体组中的程序代码是用于所述可信主体组的预期代码。
5.根据权利要求1的计算机实现的方法,其中在所述系统启动时执行所述读取和决定步骤。
6.根据权利要求1的计算机实现的方法,其中在所述目标应用的运行时间执行所述测量步骤。
7.根据权利要求1的计算机实现的方法,还包括测量所述系统的运行时间信息。
8.一种用于远程验证系统的完整性的系统,包括:
策略系统,用于读取在所述系统内阐明信息流的访问控制策略;
主体系统,用于决定与所述系统中的目标应用相互作用的可信主体组;
图形系统,用于基于所述访问控制策略和所述可信主体组构造所述系统的信息流图形;以及
代码系统,用于测量装载到所述可信主体组中的程序代码。
9.根据权利要求8的系统,其中所述访问控制策略中的信息流是所述系统的应用和文件之间的信息流,以及基于主体在所述访问控制策略中定义所述信息流。
10.根据权利要求8的系统,其中所述信息流图形用于远程验证进入所述目标应用的边缘源于所述可信主体组的一个或通过过滤接口源于不可信主体。
11.根据权利要求8的系统,其中在所述系统启动时,读取所述访问控制策略并决定所述可信主体组。
12.根据权利要求8的系统,其中在所述目标应用的运行时间测量所述程序代码。
13.根据权利要求8的系统,还包括信息系统,用于测量所述系统的运行时间信息。
14.一种用于配置远程验证系统完整性的应用的方法,包括:
提供一计算机系统,可操作用于:
读取在所述系统内阐明信息流的访问控制策略;
决定与所述系统中的目标应用相互作用的可信主体组;
基于所述访问控制策略和所述可信主体组构造所述系统的信息流图形;以及
测量装载到所述可信主体组中的程序代码。
15.根据权利要求14的方法,其中所述计算机系统还可操作用于测量所述系统的运行时间信息。
CN200610153806XA 2005-11-07 2006-09-12 用于远程验证系统完整性的方法和系统 Expired - Fee Related CN1964359B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/268,220 US8434147B2 (en) 2005-11-07 2005-11-07 Method, system and program product for remotely verifying integrity of a system
US11/268,220 2005-11-07

Publications (2)

Publication Number Publication Date
CN1964359A CN1964359A (zh) 2007-05-16
CN1964359B true CN1964359B (zh) 2010-08-25

Family

ID=38005285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610153806XA Expired - Fee Related CN1964359B (zh) 2005-11-07 2006-09-12 用于远程验证系统完整性的方法和系统

Country Status (2)

Country Link
US (1) US8434147B2 (zh)
CN (1) CN1964359B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266702B2 (en) * 2006-10-31 2012-09-11 Microsoft Corporation Analyzing access control configurations
WO2008126773A1 (ja) * 2007-04-05 2008-10-23 Nec Corporation 情報処理システム、情報処理方法
GB2457645B (en) * 2007-10-17 2012-05-16 Vodafone Plc Access control
US8272025B1 (en) * 2007-12-18 2012-09-18 Lockheed Martin Corporation Policy deconfliction
US8302151B2 (en) * 2008-06-02 2012-10-30 International Business Machines Corporation Improving comprehension of information in a security enhanced environment by representing the information in audio form
US8732451B2 (en) * 2009-05-20 2014-05-20 Microsoft Corporation Portable secure computing network
US8797864B2 (en) * 2010-01-21 2014-08-05 International Business Machines Corporation Adaptive traffic management via analytics based volume reduction
US8667584B2 (en) * 2010-12-15 2014-03-04 International Business Machines Corporation Formal analysis of the quality and conformance of information flow downgraders
WO2013028059A1 (en) * 2011-08-25 2013-02-28 Mimos Berhad Verification system for trusted platform
US8769696B2 (en) 2011-09-29 2014-07-01 International Business Machines Corporation Automated detection of flaws and incompatibility problems in information flow downgraders
KR101441527B1 (ko) * 2012-05-31 2014-09-17 주식회사 코아로직 차량 주행 정보 관리 및 검증 방법, 장치 및 이를 이용한 차량 주행 정보 관리 시스템
KR102125923B1 (ko) * 2013-10-24 2020-06-24 삼성전자 주식회사 전자 장치의 운영체제 업그레이드 방법 및 장치
JP6260283B2 (ja) * 2014-01-07 2018-01-17 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US9531715B1 (en) 2014-05-07 2016-12-27 Skyport Systems, Inc. Method and system for protecting credentials
US10552638B2 (en) * 2015-05-13 2020-02-04 Intel Corporation Integrity protection of a mandatory access control policy in an operating system using virtual machine extension root operations
US10116533B1 (en) 2016-02-26 2018-10-30 Skyport Systems, Inc. Method and system for logging events of computing devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1537260A (zh) * 2001-03-09 2004-10-13 皇家菲利浦电子有限公司 带有用于验证新部件的服务器的系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US7591017B2 (en) * 2003-06-24 2009-09-15 Nokia Inc. Apparatus, and method for implementing remote client integrity verification
US7577992B2 (en) * 2005-01-14 2009-08-18 Microsoft Corporation Software security based on control flow integrity
US20060195732A1 (en) * 2005-02-11 2006-08-31 Joerg Deutschle Method and system for executing test cases for a device under verification
US7676845B2 (en) * 2005-03-24 2010-03-09 Microsoft Corporation System and method of selectively scanning a file on a computing device for malware

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1537260A (zh) * 2001-03-09 2004-10-13 皇家菲利浦电子有限公司 带有用于验证新部件的服务器的系统

Also Published As

Publication number Publication date
US8434147B2 (en) 2013-04-30
US20070107046A1 (en) 2007-05-10
CN1964359A (zh) 2007-05-16

Similar Documents

Publication Publication Date Title
CN1964359B (zh) 用于远程验证系统完整性的方法和系统
Grishchenko et al. Foundations and tools for the static analysis of ethereum smart contracts
JP6966474B2 (ja) デジタル資産のモデリング
Pistoia et al. A survey of static analysis methods for identifying security vulnerabilities in software systems
US7340469B1 (en) Implementing security policies in software development tools
Seifermann et al. Data-driven software architecture for analyzing confidentiality
US20090178102A1 (en) Implementing Security Policies in Software Development Tools
Demir et al. Security smells in smart contracts
Praitheeshan et al. Security evaluation of smart contract-based on-chain ethereum wallets
Tsankov Security analysis of smart contracts in datalog
Faily et al. Contextualisation of data flow diagrams for security analysis
Nehaï et al. Deductive proof of industrial smart contracts using Why3
Agarwal et al. Cyclomatic complexity analysis for smart contract using control flow graph
Kang et al. CIA-level driven secure SDLC framework for integrating security into SDLC process
Myllärniemi et al. Representing and configuring security variability in software product lines
Boockmann et al. Generating inductive shape predicates for runtime checking and formal verification
Ghorbanzadeh et al. ANOVUL: Detection of logic vulnerabilities in annotated programs via data and control flow analysis
Matulevičius et al. An approach to assess and compare quality of security models
Pierro A User-Centered Perspective for the blockchain Development
Misra et al. Software design
Li et al. Towards a general-purpose dynamic information flow policy
Mann et al. Secure data processing in the cloud
Olivieri et al. On-Chain Smart Contract Verification over Tendermint
Satapathy et al. Automated software engineering: a deep learning-based approach
Llanos et al. Using the blockchain to enable transparent and auditable processing of personal data in cloud-based services: Lessons from the Privacy-Aware Cloud Ecosystems (PACE) project

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100825

Termination date: 20200912