CN102667712B - 用于同时定义和实行访问控制和完整性策略的***、方法和装置 - Google Patents

用于同时定义和实行访问控制和完整性策略的***、方法和装置 Download PDF

Info

Publication number
CN102667712B
CN102667712B CN201080052825.8A CN201080052825A CN102667712B CN 102667712 B CN102667712 B CN 102667712B CN 201080052825 A CN201080052825 A CN 201080052825A CN 102667712 B CN102667712 B CN 102667712B
Authority
CN
China
Prior art keywords
participant
value
security
computing system
rights label
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.)
Active
Application number
CN201080052825.8A
Other languages
English (en)
Other versions
CN102667712A (zh
Inventor
P·森通泽
Y·A·哈维
R·海
M·皮斯托亚
A·沙拉巴尼
O·特里普
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 CN102667712A publication Critical patent/CN102667712A/zh
Application granted granted Critical
Publication of CN102667712B publication Critical patent/CN102667712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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
    • H04L63/102Entity profiles
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

通过在用于在计算***上运行的应用的软件代码中检测安全性敏感汇点、并且从对计算***可访问的数据库获取访问控制策略来在计算***中实行访问控制和信息流完整性策略。访问控制策略将计算***内的访问权限集映射到多个参与方中的每个参与方。针对每个检测到的安全性敏感汇点,检测影响该安全性敏感汇点的所有参与方,并且通过取得每个安全性敏感汇点的所有有影响的参与方的访问权限集的交集,向该安全性敏感汇点分配总访问权限。如果这一权限集不充分,则报告完整性违规。此外,向在安全性敏感汇点中使用的变量的每个值分配权限标签。每个权限标签为权限集。

Description

用于同时定义和实行访问控制和完整性策略的***、方法和装置
技术领域
本发明涉及计算***中的访问控制和信息流完整性策略。
背景技术
现代编程运行时环境(诸如Java和Microsoft.NET公共语言运行时(CLR))赋予一种用于定义和实行访问控制策略的架构。运行时环境具有预定义的受保护资源的列表。这样的列表可以由个别***管理员扩展。每个受保护资源在运行时间受权限防护。当即将访问受保护资源时调用运行时中的特殊组件(Java中的AccessController.checkPermission和CLR中的Demand)。这一组件为“访问控制实行器”。访问控制实行器当在特定资源上被调用时遍历执行栈并且验证栈上的所有调用者已经被授予访问受保护资源的足够权限。
这一方式存在一个主要问题。访问控制策略没有被恰当地实行,因为访问控制实行器仅遍历当前执行栈,这要求栈上的参与方(principal)(即用户或者程序组件)出示必要的权限。然而,这一栈遍历不捕获已经影响了安全性敏感操作(例如被修改的文件的名称)的代码或者主体,除非那些代码或者主体仍然在栈上活跃。情况可能并非如此,因为代码可能已经被从它的栈弹出,但是可能已经在堆中记录了它的影响或者传递该影响作为来自不再在当前执行栈上的方法的返回值并且用于安全性敏感操作。
另一方面,存在其中有必要定义和实行信息流完整性策略的许多***。在信息流策略中,目标是防止非信任参与方影响受信任操作。其中必须实行完整性的***的典型示例为Web应用服务器。对于从潜在非信任用户持续接收非信任输入的Web应用,在安全性敏感操作中使用那些输入之前验证它们颇为重要。这些完整性策略存在两个问题。首先是它们难以定义,因为***管理员经常不知非信任输入来自何方以及流向何处。其次,它们难以实行,因为恰当的实行要求检测所有影响源并且跟踪那些影响直至值被使用。
另一难点是检测隐式信息流。在隐式流中,攻击者并不直接修改或者定义将在安全性敏感操作中使用的数据。相反,攻击者影响将使用哪个数据。
发明内容
本发明的示例性实施例集成访问控制和信息流完整性策略定义和实行。根据一个示例性实施例,本发明涉及一种用于在计算***中实行访问控制和完整性策略的方法。根据这一方法,在用于在计算***上运行的应用的软件代码中检测安全性敏感汇点(sink)。在一个实施例中,检测安全性敏感汇点包括对软件代码使用程序分析,这包括对代码和底层库使用静态程序分析。在一个实施例中,检测安全性敏感汇点包括分析软件代码并且标识软件代码中的、对计算***中的访问控制实行器的调用。在一个实施例中,访问控制实行器实行访问控制策略。
该方法还包括从对计算***可访问的数据库获取访问控制策略。访问控制策略将计算***内的访问权限集映射到多个参与方中的每个参与方。在一个实施例中,与软件代码独立地陈述性定义访问控制策略。对于每个检测到的安全性敏感汇点,确定影响该安全性敏感汇点的所有参与方,并且通过取得用于每个安全性敏感汇点的所有有影响的参与方的访问权限集的交集,向该安全性敏感汇点分配总访问权限。当给定安全性敏感汇点的总访问权限不足以满足来自计算***内的资源的所需权限时,报告完整性违规。在一个实施例中,每个访问权限包含计算***内的、已经向参与方授予的安全性敏感操作集。每个参与方是与计算***交互的实体,实体的身份可以通过认证来验证并且实体通过授权来被授予特权。在一个实施例中,多个参与方包括用户参与方、机器参与方或者服务参与方。
在一个实施例中,本发明的方法还包括:标识在安全性敏感汇点中使用的变量,每个变量具有可由一个或者多个参与方影响的值;以及向每个变量的每个值分配权限标签。每个权限标签包括向该值授予的权限集。在一个实施例中,分配权限标签出现于在计算***上运行的应用的软件代码的运行时间。在一个实施例中,根据映射到影响与每个权限标签相关联的值的参与方的权限集,推导该权限标签的权限集。
在一个实施例中,本发明的方法还包括:检测根据两个或者更多现有值创建的新值;以及使用与用来创建新值的每个值和定义新值的参与方相关联的权限集的交集来计算新值的权限标签。在一个实施例中,分配权限标签还包括使用控制条件语句的任何值的权限标签以约束用于对由条件语句主导的软件代码定义的任何值的权限标签。
本发明的示例性实施例还涉及一种用于通过以下操作在计算***中实行访问控制和完整性策略的方法:在用于在计算***上运行的应用的软件代码中检测安全性敏感汇点;从对计算***可访问的数据库获取访问控制策略;标识在安全性敏感汇点中使用的变量,每个变量具有可由一个或者多个参与方影响的值;向每个变量的每个值分配权限标签;以及使用所分配的权限标签以针对计算***内的安全性敏感汇点做出访问控制决策。访问控制策略将计算***内的访问权限集映射到多个参与方中的每个参与方,并且每个权限标签包括向该值授予的权限集。
在一个实施例中,分配权限标签出现于在计算***上运行的应用的软件代码的运行时间。在一个实施例中,根据映射到影响与每个权限标签相关联的值的参与方的权限集,推导该权限标签的权限集。该方法还包括:检测根据两个或者更多现有值创建的新值;以及使用与用来创建新值的每个值和定义新值的参与方相关联的权限集的交集来计算新值的权限标签。
在一个实施例中,分配权限标签的步骤还包括使用控制条件语句的任何值的权限标签,以约束用于对由条件语句主导的软件代码定义的任何值的权限标签。
附图说明
图1是基于栈的访问控制的示意表示;
图2是图示了基于栈的访问控制的问题的示意表示;
图3是图示了基于历史的访问控制的一个问题的示意表示;
图4是图示了基于历史的访问控制的另一问题的示意表示;以及
图5是根据本发明的访问控制和完整性实行的一个实施例的示意表示。
具体实施方式
根据本发明的***和方法的示例性实施例提供在计算***(诸如分布式计算***或者基于Web的计算***)中自动定义信息流策略。
对于许多计算***存在访问控制策略。这些访问控制策略附着到文件、目录或者资源并且支配计算***的参与方(即,使用计算***和在这些计算***上运行的应用的个人)对这些文件、目录和硬件组件(统称为资源)的访问。访问控制包括认证和授权,并且访问控制的目标之一是保护被访问的资源(例如数据)的完整性。
访问控制***利用权限以控制用户的资源访问。向用户分配权限。资源制定来自用户的权限需求。如果来自给定用户的权限满足需要的权限,则向该用户提供对该资源的访问。然而,访问控制***不利用信息流策略并且未考虑信息如何流过计算***。特别是,访问控制***无法考虑给定信息流中和针对多个信息流的多个施动者或者多个参与方。
在基于组件的***中,问题不仅关于谁执行代码而且关于谁拥有待执行代码,因为代码提供者也是在信息流中涉及到的参与方。当尝试访问受限制资源时,可能涉及到具有不同信任水平的不同组件。挑战用于验证负责该安全性敏感访问的所有组件具有访问该资源的足够的权利。
一种尝试的解决方案是基于栈的访问控制(SBAC)。参照图1,其图示了SBAC内的静态权限和动态权限。在方法调用栈110中,向栈内的每个所属参与方授予单独静态权限集120。这些静态权限集可以重叠,并且针对栈内的每个参与方基于用于该参与方和栈中更高的每个其它参与方的静态权限集的交集来确定动态权限140。因此,栈中的最后参与方代表所有静态权限120的交集,并且这代表栈的总权限160。
从负责调解计算***中的安全性敏感访问的受信任应用程序接口(API)调用专用测试函数。校验当前执行栈上的所有调用者(即参与方)的权限,并且计算复合参与方,该复合参与方的访问权是栈中的所有参与方的访问权或者权限集的交集。如图2中所示,SBAC中的授权决策仅依赖于当前嵌套调用系列220。SBAC不考虑其它参与方(例如其它嵌套调用系列240中的参与方)。不考虑在软件组件之间的其它种类的交互(包括使用从非信任代码返回的结果、可变状态、副作用和并行性)。例如,另一栈240中的给定参与方260可以向被校验的栈220中的参与方280提供文件270的名称。
应当校验与这一其它参与方260相关联的权限。如图所示,这一其它参与方260具有空权限集,并且这为攻击提供可以经过被校验的栈220的途径。然而,SBAC不校验与当前栈以外的参与方相关联的权限集,并且因此潜在地过于宽容。
基于历史的访问控制(HBAC)提供更有限制的访问控制机制,该机制校验与任何参与方和曾经被执行的任何代码相关联的权限。因此,HBAC比SBAC更有限制性,并且在图2的所示示例中将基于涉及到缺乏任何相关联权限集的其它参与方来拒绝访问。在HBAC中,计算具有如下访问权的复合参与方,这些访问权代表拥有曾经被执行的任何代码的所有参与方的访问权的交集(无论该代码是否对即将执行的安全性敏感操作具有影响)。
虽然HBAC可以是SBAC的安全备选,但是HBAC可能事实上过于限制性。如图3中所示,对于具有所有可能权限的给定参与方320,如果未向有兴趣的栈360以外的甚至从未影响这一栈的参与方340给予权限集,则该栈以外的参与方340将使HBAC拒绝来自该栈的给定调用。然而,如图4中所示,在拥有执行的代码的参与方的给定布置的时序给定时,HBAC可能表现不一致。如图所示,对于具有所有可能权限420的参与方、调用栈460和具有空权限集440的单独参与方的相似布置,HBAC将允许来自调用栈的期望的资源访问。这基于在调用栈之后执行由具有空权限集440的参与方执行的代码这样的事实。这一表现导致不一致的结果,因为可能出现同一安全性敏感动作在某些情形之下被允许而在其它情形之下原因不明地被拒绝。
参照图5,根据本发明的***和方法的示例性实施例考虑与影响安全性敏感操作的所有参与方相关联的权限。动态标签附着在值上和程序计数器上。值由代码组件生成,并且值代表与该值相关联的标签或者权限集。根据与生成该值的代码组件(即参与方)相关联的权限以及与代码组件用来生成该值的所有值相关联的标签来推导给定标签。在一个实施例中,与给定值相关联的权限或者标签是来自输入值和代码组件的权限的交集。
因此,用信息流跟踪来扩充动态栈检查,并且权限用来表达整个信息流中的完整性。对于给定调用栈510,提供对用于给定安全性敏感操作530的测试原语520的调用。所有权限集与调用栈510中上至第一授予调用540的所有调用者或者参与方相关联。此外,测试原语对从调用栈540、550、560以内和以外两者的参与方获得的值验证所有标签(即权限集),这些值被读取到由测试520保护或者防护的安全性敏感操作530中。将总权限集R表示为所有校验权限集的权限集的交集或者
由于对访问控制实行器的调用已经防护完整性使用,所以根据本发明示例性实施例的***和方法采用现有访问控制策略并且通过检测对访问控制实行器的调用来标识安全性敏感使用是什么。安全性敏感动作或者对安全敏感性信息的使用称为汇点,并且源是生成信息处或者信息进入程序处。在已经标识了汇点时,现有访问控制策略用来推断预期的信息流策略。在一个实施例中,安全性敏感操作由权限p防护。这是被访问的资源需要的用户权限。任何信息流必须仅受已经被授予至少权限p的参与方影响。这包括当前调用栈中的参与方(如同在栈检查中)和当前调用栈以外的参与方。
由于访问控制实行器仅考虑当前执行栈,所以根据本发明的***和方法的示例性实施例通过贯穿代码的执行而不仅仅在当前调用栈中检测对安全性敏感操作的所有数据依赖性和控制依赖性影响来扩充访问控制执行者的操作。每当未充分授权的参与方影响安全敏感性操作时报告违规,因为这将使权限交集缺乏所需权限。在一个实施例中,可以可选地忽略控制依赖性,因为通过控制依赖性的攻击通常不易利用,并且如果在统计上完成实行,则考虑控制依赖性可能生成大量误报。如果在向影响完整性敏感操作的主体授予的权限交集中检测到缺乏权限,则报告完整性违规。
在一个实施例中,通过使用程序分析并且标识对访问控制实行器的调用来检测安全性敏感汇点。获取程序的访问控制策略,该策略被陈述性地定义并且将参与方映射到向它们授予的安全性敏感操作。在运行时间,当代码组件构造值时,向该代码组件授予的权限形成附着到该值的标签。当两个或者更多值用来定义新值时,对所有定义值的标签和定义新值的组件的标签取交集,这是可能的,因为每个标签为权限集,并且交集附着到新值作为它的标签。相似规则适用于捕获控制依赖性,其中控制条件语句的值的标签用来经由交集来约束在由条件语句主导的代码中定义的任何值的标签。作为备选,有可能在使用程序切分来跟踪值流时静态实行。
在一个示例性实施例中,本发明涉及一种用于在计算***中实行访问控制和完整性策略的方法。这一方法的步骤可以由用户、管理员、程序员或者程序分析员执行或者可以由在其上执行应用的计算***内部或者外部的一个或者多个计算机或者组件执行。适当计算***包括分布式计算***和本地计算***,这些计算***包含跨一个或者多个局域网和广域网通信的多个组件。在计算***中的一个或者多个节点(即计算机和服务器)上或者跨这些节点运行应用,并且将这些应用表达为软件代码。由于这些应用可以对计算机***内的或者由计算***控制的资源进行安全敏感调用,所以评估了应用的完整性和应用满足计算***内的访问控制策略的能力。
分析用于在计算机***内运行的应用的软件代码,并且检测在用于在计算***上运行的应用的软件代码中的安全性敏感汇点。通过对软件代码(优选为全部软件代码)的程序分析来实现检测安全性敏感汇点。这一程序分析优选为在执行程序之前对软件代码和下层库执行的静态程序分析。分析软件代码以确定在哪里***了对计算***中的访问控制实行器的调用。访问控制实行器在计算***中实行访问控制策略并且可以位于计算***内或者计算***外部。对访问控制实行器的调用的位置称为汇点。
从计算***可访问的数据库获取访问控制策略。这一数据库可以在计算***内部或者外部并且可以包括多个访问控制策略。给定访问控制策略将计算***内的访问权限集映射到多个参与方中的每个参与方。与软件代码独立地陈述性地定义访问控制策略,并且每个访问权限包含计算***内的可以向零个、一个或者多个参与方授予的安全性敏感操作集。参与方是计算***内部或者外部的与计算***交互的实体。可以通过认证来验证参与方的身份,并且通过授权过程向参与方授予权限。这些参与方包括用户参与方(例如个人)、机器参与方(例如具有统一资源定位符的机器)和服务参与方(例如可执行程序)。
对于每个检测到的安全性敏感汇点,标识影响该安全性敏感汇点的所有参与方。无论这些参与方是否位于给定栈中都对参与方进行定位。这些参与方中的每个参与方将具有相关联的访问权限集。因此,通过取得用于每个安全性敏感汇点的所有有影响的参与方的访问权限集的交集向该安全性敏感汇点分配总访问权限。这一总访问权限将需要包含由计算***中的安全性敏感汇点尝试的任何资源访问所必需的所有权限。因此,比较每个总访问权限内的权限与安全性敏感汇点的资源访问所需要的权限,并且当用于给定安全性访问汇点的总访问权限不足以满足来自计算***内的资源的所需权限时报告完整性违规。
除了分析软件代码以标识用于安全性敏感汇点的总访问权限之外,根据本发明的方法的示例性实施例还分析在安全性敏感汇点的变量的值和影响这些值的参与方。这可以与分析安全性敏感汇点的总访问权限结合完成或者作为用于在计算***中实行访问控制和完整性策略的单独独立方法完成。
在一个实施例中,标识在安全性敏感汇点中使用的变量。每个变量具有一个或者多个参与方可以影响的值。向每个变量的每个值分配权限标签。每个权限标签是向该值授予的权限集。因此,权限标签随着值改变而改变。变量值赋值和权限标签分配出现于用于在计算***上运行的应用的软件代码的运行时间。由于变量值可能受各种参与方影响,所以根据如下权限集推导每个权限标签的权限集,这些权限集映射到影响与该权限标签相关联的值的参与方。
在运行时间,值可以改变。两个或者更多值可以由参与方组合以创建新值。例如“好”和“早上”可以组合形成“早上好”,或者名称可以与域组合形成电子邮件地址。由于权限标签为值特定的,所以向新值分配新权限标签。在一个实施例中,检测根据两个或者更多现有值创建的新值。使用与用来创建新值的每个值和限定新值的参与方相关联的权限集的交集来针对新值计算权限标签。
应用软件代码频繁使用条件语句(例如if-then-else语句)。一般而言,这称为捕获控制依赖性。这些语句使用条件语句中和由条件语句主导的代码中的值。根据本发明,这些值可以具有向它们分配的权限标签。在一个实施例中,用于控制条件语句的任何值的权限标签用来约束用于对由条件语句主导的软件代码定义的任何值的权限标签。因此,与控制条件语句的值相关联的权限用于条件语句中的其它值。除了在运行时间进行之外,静态实行机制也可以用来创建权限标签,其中使用程序切分来跟踪值流。
根据本发明示例性实施例的方法和***可以采用全硬件实施例、全软件实施例或者包含硬件和软件单元二者的实施例的形式。在一个优选实施例中,用软件实施本发明,该软件包括但不限于固件、常驻软件和微代码。此外,示例性方法和***可以采用可从计算机可用或者计算机可读介质访问的计算机程序产品的形式,该介质提供用于由计算机、逻辑处理单元或者任何指令执行***使用或者与计算机、逻辑处理单元或者任何指令执行***结合使用的程序代码。出于本说明书的目的,计算机可用或者计算机可读介质访问可以是任何如下装置,该装置可以包含、存储、传达、传播或者传送用于由指令执行***、装置或者设备使用或者与指令执行***、装置或者设备结合使用的程序。适当的计算机可用或者计算机可读介质包括但不限于电子、磁、光学、电磁、红外线或者半导体***(或者装置或者设备)或者传播介质。计算机可读介质的示例包括半导体或者固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。
用于存储和/或执行程序代码的适当数据处理***包括但不限于通过***总线直接或者间接耦合到存储器单元的至少一个处理器。存储器单元包括在实际执行程序代码期间运用的本地存储器、大容量存储器和高速缓冲存储器,这些高速缓存存储器提供对至少一些程序代码的暂时存储以便减少必须在执行期间从大容量存储器获取代码的次数。输入/输出或者I/O设备(包括但不限于键盘、显示器和指点设备)可以直接或者通过居间I/O控制器耦合到***。根据本发明的方法和***的示例性实施例还包括网络适配器,这些网络适配器耦合到***以使数据处理***能够变得通过居间专用或者公用网络耦合到其它数据处理***或者远程打印机或者存储设备。适当的当前可用网络适配器类型包括但不限于调制解调器、线缆调制解调器、DSL调制解调器、以太网卡及其组合。
在一个实施例中,本发明涉及一种包含机器可执行或者计算机可执行代码的机器可读或者计算机可读介质并且涉及该计算机可执行代码本身,该机器可执行或者计算机可执行代码在由机器或者计算机读取时使机器或者计算机执行根据本发明的示例性实施例在计算***中实行访问控制和完整性策略。机器可读或者计算机可读代码可以是能够由机器或者计算机读取和执行的任何类型的代码或者语言并且可以用本领域中已知和可用的任何适当语言或者语法(包括机器语言、汇编语言、高级语言、面向对象语言和脚本语言)来表达。计算机可执行代码可以存储在任何适当存储介质或者数据库(包括设置在根据本发明的***内、与这些***通信以及通过由这些***利用的计算机网络可访问的数据库)上并且可以在本领域中已知和可用的任何适当硬件平台(包括用来控制呈现本发明的控制***)上执行。
尽管明显地在此公开的本发明的例示性实施例实现本发明的目的,但是应理解本领域技术人员可以设计诸多修改和其它实施例。此外,来自任何实施例的特征和/或单元可以单独或者与其它实施例组合使用,并且可以按任何适当顺序执行或者实现来自根据本发明的方法的步骤或者单元。因此,将理解,所附权利要求旨在于覆盖将落入本发明的精神实质和范围内的所有此类修改和实施例。

Claims (38)

1.一种用于在计算***中实行访问控制和完整性策略的方法,所述方法包括:
在用于在所述计算***上运行的应用的软件代码中检测安全性敏感汇点;
从对所述计算***可访问的数据库获取访问控制策略,所述访问控制策略将所述计算***内的访问权限集映射到多个参与方中的每个参与方;
针对每个检测到的安全性敏感汇点,确定影响该安全性敏感汇点的所有参与方,所述参与方包括当前调用栈中的参与方和当前调用栈以外的参与方,并从所述当前调用栈中的参与方和当前调用栈以外的参与方获得值,所述值被读取到所述安全性敏感汇点;
通过取得每个安全性敏感汇点的所有有影响的参与方的所述访问权限集的交集,向所述安全性敏感汇点分配总访问权限;以及
当给定安全性敏感汇点的总访问权限不足以满足来自所述计算***内的资源的所需权限时,报告完整性违规。
2.根据权利要求1所述的方法,其中所述检测安全性敏感汇点的步骤还包括对所述软件代码使用程序分析。
3.根据权利要求2所述的方法,其中所述使用程序分析步骤还包括对所述代码和底层库使用静态程序分析。
4.根据权利要求1所述的方法,其中所述检测安全性敏感汇点的步骤还包括:
分析所述软件代码;以及
标识所述软件代码中的、对所述计算***中的访问控制实行器的调用。
5.根据权利要求4所述的方法,其中所述访问控制实行器实行所述访问控制策略。
6.根据权利要求1所述的方法,其中与所述软件代码独立地陈述性定义所述访问控制策略。
7.根据权利要求1所述的方法,其中每个访问权限包括所述计算***内的、已经向参与方授予的安全性敏感操作集。
8.根据权利要求1所述的方法,其中每个参与方包括与所述计算***交互的实体,所述实体的身份可以通过认证来验证并且所述实体通过授权来被授予特权。
9.根据权利要求1所述的方法,其中所述多个参与方包括用户参与方、机器参与方或者服务参与方。
10.根据权利要求1所述的方法,还包括:
标识在所述安全性敏感汇点中使用的变量,每个变量具有可由一个或者多个参与方影响的值;以及
向每个变量的每个值分配权限标签,每个权限标签包括向所述值授予的权限集。
11.根据权利要求10所述的方法,其中所述分配所述权限标签的步骤出现于在所述计算***上运行的所述应用的所述软件代码的运行时间。
12.根据权利要求10所述的方法,其中根据映射到影响与每个权限标签相关联的所述值的参与方的所述权限集,推导所述权限标签的所述权限集。
13.根据权利要求10所述的方法,还包括:
检测根据两个或者更多现有值创建的新值;以及
使用与用来创建所述新值的每个值和定义所述新值的所述参与方相关联的所述权限集的交集来计算所述新值的权限标签。
14.根据权利要求10所述的方法,其中所述分配所述权限标签的步骤还包括使用控制条件语句的任何值的所述权限标签,以约束用于对由所述条件语句主导的所述软件代码定义的任何值的权限标签。
15.一种用于在计算***中实行访问控制和完整性策略的方法,所述方法包括:
在用于在所述计算***上运行的应用的软件代码中检测安全性敏感汇点;
从对所述计算***可访问的数据库获取访问控制策略,所述访问控制策略将所述计算***内的访问权限集映射到多个参与方中的每个参与方;
标识在所述安全性敏感汇点中使用的变量,每个变量具有可由一个或者多个参与方影响的值,所述参与方包括当前调用栈中的参与方和当前调用栈以外的参与方,并从所述当前调用栈中的参与方和当前调用栈以外的参与方获得所述值;
向每个变量的每个值分配权限标签,每个权限标签包括向所述值授予的权限集;以及
使用所分配的权限标签以针对所述计算***内的所述安全性敏感汇点做出访问控制决策。
16.根据权利要求15所述的方法,其中所述分配所述权限标签的步骤出现于在所述计算***上运行的所述应用的所述软件代码的运行时间。
17.根据权利要求15所述的方法,其中根据映射到影响与每个权限标签相关联的所述值的参与方的所述权限集推导所述权限标签的所述权限集。
18.根据权利要求15所述的方法,还包括:
检测根据两个或者更多现有值创建的新值;以及
使用与用来创建所述新值的每个值和定义所述新值的所述参与方相关联的所述权限集的交集来计算所述新值的权限标签。
19.根据权利要求15所述的方法,其中所述分配所述权限标签的步骤还包括使用控制条件语句的任何值的所述权限标签,以约束用于对由所述条件语句主导的所述软件代码定义的任何值的权限标签。
20.一种用于在计算***中实行访问控制和完整性策略的***,所述***包括:
配置为在用于在所述计算***上运行的应用的软件代码中检测安全性敏感汇点的模块;
配置为从对所述计算***可访问的数据库获取访问控制策略的模块,所述访问控制策略将所述计算***内的访问权限集映射到多个参与方中的每个参与方;
配置为针对每个检测到的安全性敏感汇点,确定影响该安全性敏感汇点的所有参与方,所述参与方包括当前调用栈中的参与方和当前调用栈以外的参与方,并从所述当前调用栈中的参与方和当前调用栈以外的参与方获得值的模块,所述值被读取到所述安全性敏感汇点;
配置为通过取得每个安全性敏感汇点的所有有影响的参与方的所述访问权限集的交集,向所述安全性敏感汇点分配总访问权限的模块;以及
配置为当给定安全性敏感汇点的总访问权限不足以满足来自所述计算***内的资源的所需权限时,报告完整性违规的模块。
21.根据权利要求20所述的***,其中所述检测安全性敏感汇点的模块还包括对所述软件代码使用程序分析。
22.根据权利要求21所述的***,其中所述使用程序分析模块还包括对所述代码和底层库使用静态程序分析。
23.根据权利要求20所述的***,其中所述检测安全性敏感汇点的模块还包括:
配置为分析所述软件代码的模块;以及
配置为标识所述软件代码中的、对所述计算***中的访问控制实行器的调用的模块。
24.根据权利要求23所述的***,其中所述访问控制实行器实行所述访问控制策略。
25.根据权利要求20所述的***,其中与所述软件代码独立地陈述性定义所述访问控制策略。
26.根据权利要求20所述的***,其中每个访问权限包括所述计算***内的、已经向参与方授予的安全性敏感操作集。
27.根据权利要求20所述的***,其中每个参与方包括与所述计算***交互的实体,所述实体的身份可以通过认证来验证并且所述实体通过授权来被授予特权。
28.根据权利要求20所述的***,其中所述多个参与方包括用户参与方、机器参与方或者服务参与方。
29.根据权利要求20所述的***,还包括:
配置为标识在所述安全性敏感汇点中使用的变量的模块,每个变量具有可由一个或者多个参与方影响的值;以及
配置为向每个变量的每个值分配权限标签的模块,每个权限标签包括向所述值授予的权限集。
30.根据权利要求29所述的***,其中所述分配所述权限标签的模块被配置为出现于在所述计算***上运行的所述应用的所述软件代码的运行时间。
31.根据权利要求29所述的***,其中根据映射到影响与每个权限标签相关联的所述值的参与方的所述权限集,推导所述权限标签的所述权限集。
32.根据权利要求29所述的***,还包括:
配置为检测根据两个或者更多现有值创建的新值的模块;以及
配置为使用与用来创建所述新值的每个值和定义所述新值的所述参与方相关联的所述权限集的交集来计算所述新值的权限标签的模块。
33.根据权利要求29所述的***,其中所述分配所述权限标签的模块还包括配置为使用控制条件语句的任何值的所述权限标签,以约束用于对由所述条件语句主导的所述软件代码定义的任何值的权限标签的模块。
34.一种用于在计算***中实行访问控制和完整性策略的***,所述***包括:
配置为在用于在所述计算***上运行的应用的软件代码中检测安全性敏感汇点的模块;
配置为从对所述计算***可访问的数据库获取访问控制策略的模块,所述访问控制策略将所述计算***内的访问权限集映射到多个参与方中的每个参与方;
配置为标识在所述安全性敏感汇点中使用的变量,每个变量具有可由一个或者多个参与方影响的值,所述参与方包括当前调用栈中的参与方和当前调用栈以外的参与方,并从所述当前调用栈中的参与方和当前调用栈以外的参与方获得所述值的模块;
配置为向每个变量的每个值分配权限标签的模块,每个权限标签包括向所述值授予的权限集;以及
配置为使用所分配的权限标签以针对所述计算***内的所述安全性敏感汇点做出访问控制决策的模块。
35.根据权利要求34所述的***,其中所述分配所述权限标签的模块被配置为出现于在所述计算***上运行的所述应用的所述软件代码的运行时间。
36.根据权利要求34所述的***,其中根据映射到影响与每个权限标签相关联的所述值的参与方的所述权限集推导所述权限标签的所述权限集。
37.根据权利要求34所述的***,还包括:
配置为检测根据两个或者更多现有值创建的新值的模块;以及
配置为用与用来创建所述新值的每个值和定义所述新值的所述参与方相关联的所述权限集的交集来计算所述新值的权限标签的模块。
38.根据权利要求34所述的***,其中所述分配所述权限标签的模块还包括配置为使用控制条件语句的任何值的所述权限标签,以约束用于对由所述条件语句主导的所述软件代码定义的任何值的权限标签的模块。
CN201080052825.8A 2009-11-23 2010-09-14 用于同时定义和实行访问控制和完整性策略的***、方法和装置 Active CN102667712B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/624,172 2009-11-23
US12/624,172 US8572727B2 (en) 2009-11-23 2009-11-23 System, method and apparatus for simultaneous definition and enforcement of access-control and integrity policies
PCT/US2010/048797 WO2011062674A1 (en) 2009-11-23 2010-09-14 System, method and apparatus for simultaneous definition and enforcement of access-control and integrity policies

Publications (2)

Publication Number Publication Date
CN102667712A CN102667712A (zh) 2012-09-12
CN102667712B true CN102667712B (zh) 2015-07-22

Family

ID=44059909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080052825.8A Active CN102667712B (zh) 2009-11-23 2010-09-14 用于同时定义和实行访问控制和完整性策略的***、方法和装置

Country Status (5)

Country Link
US (3) US8572727B2 (zh)
CN (1) CN102667712B (zh)
DE (1) DE112010004526T5 (zh)
GB (1) GB2487862B (zh)
WO (1) WO2011062674A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572674B2 (en) 2008-08-13 2013-10-29 International Business Machines Corporation System, method, and apparatus for modular, string-sensitive, access rights analysis with demand-driven precision
US8893268B2 (en) * 2011-11-15 2014-11-18 Microsoft Corporation Permission re-delegation prevention
US8973131B2 (en) * 2012-11-02 2015-03-03 International Business Machines Corporation Refinement-based security analysis
US9275221B2 (en) * 2013-05-01 2016-03-01 Globalfoundries Inc. Context-aware permission control of hybrid mobile applications
US9171168B2 (en) 2013-09-30 2015-10-27 Hewlett-Packard Development Company, L.P. Determine anomalies in web application code based on authorization checks
US9807060B2 (en) * 2015-03-13 2017-10-31 International Business Machines Corporation Governed routing of enterprise data in hybrid mobile applications
US10484385B2 (en) * 2015-06-04 2019-11-19 Sap Se Accessing an application through application clients and web browsers
US9712513B2 (en) * 2015-10-05 2017-07-18 Kony, Inc. Identity management over multiple identity providers
US10614224B2 (en) * 2017-05-15 2020-04-07 International Business Machines Corporation Identifying computer program security access control violations using static analysis
US10868814B2 (en) 2018-04-30 2020-12-15 Samsung Electronics Co., Ltd. System and method for flow-based architecture
US10496842B1 (en) * 2018-07-16 2019-12-03 Didi Research America, Llc Multi-pronged file anomaly detection based on violation counts
US11297066B2 (en) 2020-01-20 2022-04-05 International Business Machines Corporation Constrained roles for access management
US11736525B1 (en) * 2020-06-17 2023-08-22 Amazon Technologies, Inc. Generating access control policies using static analysis
CN112100653B (zh) * 2020-08-21 2024-02-20 北京思特奇信息技术股份有限公司 一种前端敏感信息处理的方法和***
CN112597487B (zh) * 2020-12-24 2023-03-31 厦门海迈科技股份有限公司 一种基于.net访问权限管理方法和装置以及设备
US11804060B1 (en) * 2021-07-26 2023-10-31 Amazon Technologies, Inc. System for multi-modal anomaly detection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044466A (en) * 1997-11-25 2000-03-28 International Business Machines Corp. Flexible and dynamic derivation of permissions
CN101281577A (zh) * 2008-05-16 2008-10-08 北京工业大学 一种对bios进行保护的可信计算***及其应用方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076557B1 (en) 2000-07-10 2006-07-11 Microsoft Corporation Applying a permission grant set to a call stack during runtime
US20060230282A1 (en) * 2005-04-06 2006-10-12 Hausler Oliver M Dynamically managing access permissions
US7743414B2 (en) * 2006-05-26 2010-06-22 Novell, Inc. System and method for executing a permissions recorder analyzer
US20080072282A1 (en) * 2006-09-14 2008-03-20 Willis Ronald B Intelligent overlay for providing secure, dynamic communication between points in a network
CN101192193A (zh) * 2006-11-27 2008-06-04 国际商业机器公司 用于实现观察点的方法和***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044466A (en) * 1997-11-25 2000-03-28 International Business Machines Corp. Flexible and dynamic derivation of permissions
CN101281577A (zh) * 2008-05-16 2008-10-08 北京工业大学 一种对bios进行保护的可信计算***及其应用方法

Also Published As

Publication number Publication date
US20110126282A1 (en) 2011-05-26
US8572727B2 (en) 2013-10-29
US20170039375A1 (en) 2017-02-09
US9836608B2 (en) 2017-12-05
GB201206958D0 (en) 2012-06-06
WO2011062674A1 (en) 2011-05-26
DE112010004526T5 (de) 2012-10-31
US9607154B2 (en) 2017-03-28
GB2487862B (en) 2016-09-21
US20150089637A1 (en) 2015-03-26
CN102667712A (zh) 2012-09-12
GB2487862A (en) 2012-08-08

Similar Documents

Publication Publication Date Title
CN102667712B (zh) 用于同时定义和实行访问控制和完整性策略的***、方法和装置
Anderson Computer security technology planning study
CN110310205B (zh) 一种区块链数据监控方法、装置、设备和介质
Landwehr et al. A taxonomy of computer program security flaws
Linde Operating system penetration
CN104732147A (zh) 一种应用程序处理方法
CN104751050A (zh) 一种客户端应用程序管理方法
Van Landuyt et al. A descriptive study of assumptions made in linddun privacy threat elicitation
CN104732140A (zh) 一种程序数据处理方法
Wang et al. FSFC: An input filter-based secure framework for smart contract
Seifermann et al. A Unified Model to Detect Information Flow and Access Control Violations in Software Architectures.
Washizaki et al. Taxonomy and literature survey of security pattern research
Burns Threat modeling: A process to ensure application security
US10089463B1 (en) Managing security of source code
Zhu et al. Detecting privilege escalation attacks through instrumenting web application source code
Hadavi et al. Software security; a vulnerability activity revisit
Ayed et al. Security aspects: a framework for enforcement of security policies using AOP
Buyens et al. Least privilege analysis in software architectures
Whiting et al. Automated model-based attack tree analysis using HiP-HOPS
Bertolino et al. Testing access control policies against intended access rights
Chen et al. Coverage-based testing of obligations in ngac systems
O’Connor et al. Security awareness in the software arena
Shirazi A new model for secure software development.
Berger et al. Static Extraction of Enforced Authorization Policies SeeAuthz
Vetter Model-driven Security Engineering for FPGAs

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