CN1815483B - 一种计算机实现的方法和装置 - Google Patents

一种计算机实现的方法和装置 Download PDF

Info

Publication number
CN1815483B
CN1815483B CN2006100025786A CN200610002578A CN1815483B CN 1815483 B CN1815483 B CN 1815483B CN 2006100025786 A CN2006100025786 A CN 2006100025786A CN 200610002578 A CN200610002578 A CN 200610002578A CN 1815483 B CN1815483 B CN 1815483B
Authority
CN
China
Prior art keywords
code
data
critical
container
critical data
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
CN2006100025786A
Other languages
English (en)
Other versions
CN1815483A (zh
Inventor
M·A·阿尔卡扎
V·R·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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1815483A publication Critical patent/CN1815483A/zh
Application granted granted Critical
Publication of CN1815483B publication Critical patent/CN1815483B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment 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
    • 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)

Abstract

所描述的是用于平台代码的安全性关键容器,包括Get容器和Set容器,它们允许对该数据的关键使用将数据标记为安全性关键的,但对于非关键使用保持未标记。减少了代码中的关键方法的数量,从而便于进行更好的代码分析。容器的方法可被标记为安全性关键的,只能通过该方法来访问数据。通过使用Get容器的范型类,对关键数据的访问仅通过该类上被标记为关键的属性发生。指向范型类实例的字段无需是关键的,由此初始化或存在检查可保持为非关键的。Set容器处理诸如控制代码是否可提升许可的数据等安全性关键的情形;set方法被标记为关键的,而其它方法可由非关键代码来访问。

Description

一种计算机实现的方法和装置
版权声明 
本专利文档的公开内容的一部分包含服从版权保护的材料。版权所有者不反对任何人如在(美国)专利和商标局文件或记录中出现的那样对本专利文档或专利公开内容的复制,但无论如何保留所有版权。 
技术领域
本发明一般涉及计算机系统,尤其涉及计算机系统安全性。 
背景技术
在当代计算中,计算机应用程序和其它代码可以从因特网上下载并安装。当从未知的或不可信的来源下载时,这一代码可能是故意恶意的,或可能能够危害重要数据或提供对其的非授权访问。然而,由于存在计算机用户从无需提示就下载代码和执行代码的能力中获益的许多情况,因此完全阻止下载并不是对该问题的可行的解决方案。 
在某些环境中,诸如基于微软公司的.NET技术的环境中,试图通过限制代码被准许干什么来解决运行未知或不可信代码的问题。例如,底层平台可要求其调用者具有特定的许可,且尽管代码可请求它执行所需的许可,运行库仍仅基于评估该代码有多少是可信的策略来向代码授予许可。这一许可包括诸如访问文件和数据库、连接到因特网、通过用户界面与用户交互、调用非受管代码等的能力等内容。当代码请求这一许可时提示用户是一种基于策略的解决方案,但是并非是非常合乎需要的,因为典型的用户在被提示时通常没有准备好做出正确的安全决策。 
为平台编写使应用程序能够从因特网下载并安装而无需提示的安全代码是一个及其困难的问题。这是因为平台本身需要具有提升的特权来正确地运作。如果编写平台代码的任一部分使得它会无意地展示以提升的特权运行不可信代码的内部方式,从而允许不可信代码执行不安全的操作,则会存在安全性缺陷。作为示例,平台代码需要能够为诸如在窗口上呈现文本等操作系统服务调用非受管代码,而不 允许不可信代码如此做,但是如果平台代码被无意地编写使得不可信代码可通过对平台代码的内部方法的调用来调用非受管代码,则存在安全性缺陷。 
提高平台代码被安全地编写的可能性的一种解决方案是允许开发者标记(例如,使用元数据)平台代码汇中需要提升的许可来运行的任一部分,或控制是否可运行提升的许可,即,元数据指示平台代码是执行非安全操作的“关键”代码。安全组和静态代码分析工具(例如,FxCop是检查.NET受管代码程序集的一个这样的代码分析工具),然后识别元数据,由此可开发平台特征,使得显著地降低用提升的特权运行的平台代码被展示给不可信代码的可能性。 
然而,尽管有很高的价值,但是将这一代码和数据标记为关键会导致复杂的代码审阅过程,这会对具有需要审阅代码的许多关键方法的安全组造成负担。所需要的是一种当较少的复杂审阅会提高在平台代码中找到任何安全性问题的可能性时,减少需要审阅关键性的方法的数量的安全方法。 
发明内容
简言之,本发明针对一种系统和方法,通过该系统和方法,描述“关键性”的元数据可被附加到类上的任何数据字段,而无需做出对关键数据的存在/初始化做出检查,且同时仍允许以类型安全的方式来访问数据。此外,对于控制提升的许可的关键数据,通过标记将数据值设置为关键的方法而非数据本身,该数据可被认为在设置的容器中是关键的。由此,仅使用(获得)值的其它代码无需是关键的。结果,平台代码中需要被审阅的关键方法和数据字段的数量可被显著减少,而不会损害安全性。 
在一个实现中,基于范型的类(其中范型是类似于C++模板的.NET框架语言构造)为关键数据提供了容器。对范型类的使用意味着对关键数的Get访问仅可通过该类上被标记为关键的属性发生。然而,指向范型类实例的实际字段无需是关键的,且由此可以用透明的方式从代码中安全地检查。因此,本发明使得对数据内容的访问能够被跟踪为关键的,而对数据的初始化或存在的检查保持非关键的。 
为此,本发明提供了一种“Get”(获取)容器,通过该容器,可访问关键数据(诸如当数据提供对关键资源的访问时,如到关键资源的文件句柄)。检索容器中的数据的值的get方法用指示它是安全性关键的元数据来标记,由此静态分析工具可检测是否存在允许不可信代码访问该数据的程序缺陷。然而,由于get方法被标记,因此可检查数据的存在/初始化(例如,可做出空检查),而无需检查其本 身是否为关键的。结果,进行检查的代码无需被标记为关键的,这显著地减少了需要进行安全性审阅的平台代码的量。 
本发明也提供了一种“Set”(设置)容器,以处理使用布尔或其它变量来指示代码提升许可的情况。由于这一数据控制了代码是否提升许可,因此设置该数据变为关键的,否则从不可信代码的调用将会提升许可。不调用set方法的其它代码,诸如如果正确地设置了值则实际上提升许可的代码只需获得该值(例如,通过get方法),且由此无需是关键代码。作为Set容器的结果,平台代码中关键方法的数量也可被显著减少。 
当结合附图阅读以下详细描述时,可以清楚其它优点,附图中: 
附图说明
图1是概括地示出其中可结合本发明的计算环境的框图; 
图2A和2B是依照本发明的各方面包含set和get容器的平台代码的表示。 
图3是依照本发明的各方面表示分析具有安全性关键数据容器的平台代码的代码工具的框图;以及 
图4是依照本发明的各方面表示运行在基于具有安全性关键数据容器的代码的已编译平台代码上的不可信代码的框图。 
具体实施方式
示例性操作环境
图1示出了适合在其中实现本发明的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有任何依赖或需求。 
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适用于本发明的众所周知的计算系统、环境和/或配置包括但不限于:个人计算机、服务器计算机、手持式或膝上设备、图形输入板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。 
本发明可以在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等, 它们执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和/或远程计算机存储介质中。 
参考图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件包括,但不限于处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。 
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。 
系统存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。 
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141、对可移动、非易失性磁盘152进行读写的磁盘驱动器151以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。 
上文讨论并在图1示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如图形输入板或电子数字化仪164、话筒163、键盘162和定位设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。图1未示出的其它输入设备可包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。监视器191可与触摸屏面板或其类似物集成。注意,监视器和/或触摸屏面板可以在物理上耦合到其中包含计算设备110的外壳,诸如在图形输入板类型的计算机中。另外,诸如计算设备110等计算机也可包括其它外围输出设备,如扬声器195和打印机196,它们通过输出外围接口194等连接。 
计算机110可以使用到一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机110所描述的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。 
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,通过用户输入接口160或其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例,而非局限,图1示出远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。 
安全性关键数据容器
本发明一般针对一种系统和方法,通过该系统和方法,描述“关键性”的元数据被附加到数据,而无需做出对要变得关键的数据的存在/初始化的检查。如可以理解的,本发明主要是参考使用C#代码示例用于平台代码的范型(类似于C++模板的.NET框架语言构造)类容器来描述的。然而,这些仅是示例,本发明不限于.NET、C#、平台代码或此处所示的任何示例。可容易地理解,实现本发明的众多方法作为替换是可行的,且因此,本发明不限于此处所使用的任何特定示例,而是相反,可以按一般提供计算上的益处和优点的各种方法来使用。 
图2A和2B示出了具有带有可由包括不可信代码的其它代码调用的内部方法的各种对象204-208的平台代码202。某些代码可以是非关键的,如通过对象205所表示的,而其它代码可以是安全性关键的,如通过对象204和206-208所表示的。如可以容易地理解的,不应当存在内部方法诸如通过无意地允许对非关键代码205的调用以进而调用安全性关键代码(诸如对象208中的代码的一个子集)而直接或间接违反关键性规则的方法。 
依照本发明的一方面,为关键数据提供了容器,其中一个或多个方法根据调用者所请求的内容选择性地控制数据是否为关键的。一个这样的容器是get(获取)容器,且包括可被标记为关键的get方法,由此,将检查代码,使得不可信代码无法获得数据值。 
更具体地,通过为Get容器使用范型类,对关键数据的访问仅可通过类上被标记为关键的属性发生。然而,由于指向范型类实例的实际字段无需是关键的,因此可以用非关键的方式从代码中安全地检查数据的存在/初始化,即,通过用对于应用程序的许可而运行的代码来检查。由此,本发明使得对数据内容的访问可以被 跟踪为关键的,同时允许对数据的初始化或存在进行非关键检查。 
作为示例,考虑关键数据,诸如提供对关键资源的访问的数据。如果不可信程序可获得该数据,则违反了关键性规则。然而,将数据标记为关键的意味着分析工具要求涉及关键数据的每一操作都必须是关键的,从而甚至在其它操作不请求数据本身,而是仅检查数据是否存在(例如,空检查)时也增加了复杂性。考虑以下用于在没有本发明的关键容器的情况下获取值的代码示例;如可以见到的,由于variable_bar是关键的,因此空检查也是关键的: 
本发明的容器提供了在Get请求和涉及数据的其它请求之间进行区分的方法。考虑以下Get容器中的代码示例(C#),它例示了Get类的实现(在图2A中由对象206表示): 
Figure S06102578620060127D000081
如可以见到的,该容器中的Get方法用指示获取数据(value)是安全性关键的元数据([SecuriyCritical]标签)来标记,从而静态分析工具可检查是否存在允许不可信代码访问该数据的缺陷。由此,在上述文件句柄示例中,分析工具将检查仅具有提升的特权的可信代码能够获取文件句柄的值。 
声明(图2A中由框210表示): 
Figure S06102578620060127D000082
初始化(图2A中由框212表示): 
Figure S06102578620060127D000083
Figure S06102578620060127D000091
获取关键数据时的使用(图2A中由框214表示): 
由于Get方法被标记为安全性关键而非数据(值),因此可检查数据的存在/初始化(例如,可做出空检查),而无需检查其本身是否是关键的。被标记为关键的方法数量的减少显著地减少了需要进行安全性审阅的平台代码的量。以下示例进行空检查(图2A中由框216和217表示): 
依照本发明的另一方面,提供了“Set”容器,诸如用于处理使用布尔或其它变量来指示代码是否提升许可的情况。由于该数据的值控制代码是否提升许可,因 此设置数据变为关键的。不调用set方法的其它代码(例如,read方法)不能改变该值,因此不是关键的。作为set容器的结果,平台代码中的关键方法的数量也被显著减少。 
作为一个相反的示例,考虑设置关键值而不是本发明的关键容器;如可以见到的,读是关键的: 
依照本发明的关键容器方面,  改为考虑以下用于Set容器SecurityCriticalDataSetter(SCDS,在图2B中由对象208表示)的示例代码: 
Figure S06102578620060127D000102
Figure S06102578620060127D000111
注意,该代码包括设置被认为是安全性关键的值的方法。结果,set方法用[SecurityCritical]元数据来标记。 
对SecurityCriticalDataSetter的声明在图2B中由框220来表示: 
初始化(在图2B中由框222来表示);注意,初始化设置isWindowsFont的值,并且因此是安全性关键的。这防止不可信代码使用除基于所安装的 的字体之外的任何其它字体: 
Figure S06102578620060127D000121
注意,其它平台代码可设置_isWindowsFont的值,如图2B中由框224所表示的。这一代码也需要被标记为安全性关键的。 
读(获取)isWindowsFont的值不被认为是关键的,因此对对象的get方法的使用可以由不包括安全性关键元数据的代码(在图2B中由框226和227来表示)来完成: 
图3示出了当分析工具330评估平台代码202,以确保当通过方法对数据的访问通过安全性关键的元数据标签而受限时,仅安全性关键的代码可使用安全性关键的数据容器中的数据。结果332可以由安全性组和/或开发者审阅以消除代码中的任何缺陷。 
图4示出了用不可信代码440操作的已编译平台402。如果开发者依照本发明的各方面将关键数据正确地放置在Get或Set容器中,则不可信代码440不能不正确地访问安全地包含的数据来执行不安全的操作。注意,对非安全操作执行运行时检查是可行的,例如,通过对已编译代码402维护指示代码、数据和/或方法何时为关键的属性等来执行。 
如可以从上述详细描述中见到的,提供了Get容器和Set容器,它们允许数据本质上对该数据的关键使用被标记为安全性关键,但对非关键使用不如此标记。这是通过标记容器中的个别方法而非独立于使用将数据作为整体来标记来实现的。因此,本发明减少了需要审阅的平台代码的量,从而提高了找出平台代码中任何安全性问题的可能性。 
尽管本发明容许各种修改和替换构造,然而附图中示出且在上文详细描述了其某些实施例。然而,应当理解,并不旨在将本发明限于所公开的具体形式,而是相反,本发明旨在覆盖落入本发明的精神和范围内的所有这样修改、替换构造和等效技术方案。 

Claims (9)

1.在计算机系统中,一种计算机实现的方法,用于配置平台代码来简单检查安全性问题,该计算机实现的方法包括:
为关键数据提供容器;以及
使用一个或多个方法根据所请求的内容选择性地控制数据是否作为关键数据来对待,使得所述关键数据只能由具有提升的许可的代码通过get方法来访问,包括:
对关键数据的访问仅可通过类上被标记为关键的属性发生;以及
用非关键的方式从代码中安全地检查数据的存在/初始化。
2.如权利要求1所述的方法,其特征在于,所述容器包括get容器,所述关键数据只能由具有提升的许可的代码通过get方法来访问,而存在/初始化检查可由没有提升到的许可的代码来执行。
3.如权利要求2所述的方法,其特征在于,所述关键数据包括提供对关键资源的访问的值。
4.如权利要求1所述的方法,其特征在于,所述容器是在允许下载的代码被执行的平台代码中实现的,且所述方法还包括通过分析工具来分析所述平台代码。
5.在计算机系统中,一种计算机实现的装置,用于配置平台代码来简单检查安全性问题,该计算机实现的装置包括:
为关键数据提供容器的装置;以及
使用一个或多个方法根据所请求的内容选择性地控制数据是否作为关键数据来对待的装置,使得所述关键数据只能由具有提升的许可的代码通过get方法来访问,其中:
对关键数据的访问仅可通过类上被标记为关键的属性发生;以及
用非关键的方式从代码中安全地检查数据的存在/初始化。
6.在计算机系统中,一种计算机实现的装置,用于配置平台代码来简单检查安全性问题,该计算机实现的装置包括:
提供给关键数据的get容器,包括get方法;
使用一个或多个方法根据所请求的内容选择性地控制数据是否作为关键数据来对待的装置,使得所述关键数据只能由具有提升的许可的代码通过get方法来访问,该装置包括:
将get方法标记为关键的方法的装置;
用非关键的方式从代码中安全地检查数据的存在/初始化的装置;
使得所述关键数据只能由具有提升的许可的代码通过get方法来读取,且存在/初始化检查可由没有提升的许可的代码来执行。
7.如权利要求6所述的装置,其特征在于,所述关键数据包括提供对关键资源的访问的值。
8.如权利要求6所述的装置,其特征在于,还包括接收从具有提升的许可的代码获得值的请求,以及返回对应于所述值的数据。
9.如权利要求6所述的装置,其特征在于,所述get容器是在允许下载的代码要被执行的平台代码中实现的,且还包括通过分析工具分析所述平台代码。
CN2006100025786A 2005-02-04 2006-01-04 一种计算机实现的方法和装置 Expired - Fee Related CN1815483B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/051,808 2005-02-04
US11/051,808 US7600256B2 (en) 2005-02-04 2005-02-04 Security critical data containers

Publications (2)

Publication Number Publication Date
CN1815483A CN1815483A (zh) 2006-08-09
CN1815483B true CN1815483B (zh) 2012-10-10

Family

ID=36642771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100025786A Expired - Fee Related CN1815483B (zh) 2005-02-04 2006-01-04 一种计算机实现的方法和装置

Country Status (5)

Country Link
US (1) US7600256B2 (zh)
EP (1) EP1688856A3 (zh)
JP (1) JP5208367B2 (zh)
KR (1) KR101220014B1 (zh)
CN (1) CN1815483B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996866B2 (en) * 2009-12-22 2015-03-31 Microsoft Technology Licensing, Llc Unobtrusive assurance of authentic user intent
US10025688B2 (en) 2010-03-14 2018-07-17 Virtual Forge GmbH System and method for detecting data extrusion in software applications
US9659041B2 (en) * 2012-01-30 2017-05-23 Oracle International Corporation Model for capturing audit trail data with reduced probability of loss of critical data
EP2709033B1 (en) * 2012-09-17 2017-01-04 Virtual Forge GmbH System and method for detecting data extrusion in software applications

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398645B1 (en) * 1989-05-15 1997-08-06 International Business Machines Corporation System for controlling access privileges
GB9003112D0 (en) 1990-02-12 1990-04-11 Int Computers Ltd Access control mechanism
US5765152A (en) * 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US6047377A (en) * 1997-12-11 2000-04-04 Sun Microsystems, Inc. Typed, parameterized, and extensible access control permissions
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
JP2004110415A (ja) * 2002-09-18 2004-04-08 Toshiba Solutions Corp ソフトウェア開発支援装置とコンピュータプログラム
US8156558B2 (en) 2003-05-17 2012-04-10 Microsoft Corporation Mechanism for evaluating security risks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GOMES B, STOUTAMIE D, VAYSMAN B, KLAWITTER H.A Language Manual For Sather 1.1.http://www.icsi.berkeley.edu/~sather/Documentation/LanguageDescription/Descript.pdf.gz>.1996,13-38. *

Also Published As

Publication number Publication date
JP5208367B2 (ja) 2013-06-12
US7600256B2 (en) 2009-10-06
EP1688856A2 (en) 2006-08-09
EP1688856A3 (en) 2006-09-06
KR101220014B1 (ko) 2013-01-09
US20060179482A1 (en) 2006-08-10
JP2006216038A (ja) 2006-08-17
CN1815483A (zh) 2006-08-09
KR20060089618A (ko) 2006-08-09

Similar Documents

Publication Publication Date Title
CN102521081B (zh) 修复遭破坏的软件
US9251339B2 (en) Core dump privacy during application failure
Lin et al. Automated forensic analysis of mobile applications on Android devices
JP5346386B2 (ja) ソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体
US20030028742A1 (en) Method for securing a typed data language, particularly in an embedded system, and embedded system for implementing the method
CN102246157A (zh) 隔离由插件代码主存的应用程序
US7805758B2 (en) Information processing apparatus
CN101221499A (zh) 用于配置应用软件的方法和设备
CN110050258B (zh) 用于防止应用程序盗版的设备、系统和方法
CN102422299A (zh) 信息设备、程序、防止执行不正当程序代码的方法、及计算机能够读取的记录介质
CN1815483B (zh) 一种计算机实现的方法和装置
US20230297348A1 (en) Method for operating second system application on first system, terminal device and storage medium
US20170249143A1 (en) Detecting open source components built into mobile applications
US7950057B1 (en) Driver load manager and method
CN101853345B (zh) 用于处理存储在外部存储装置中的数据的方法和设备
CN102236698B (zh) 可嵌入的项目数据
CN104036193A (zh) 一种应用程序的本地跨域漏洞检测方法及装置
CN108460254B (zh) 固件保护方法及装置
US20050289358A1 (en) Method and system for sensitive information protection in structured documents
Tiwari et al. Malware detection in android application by rigorous analysis of decompiled source code
CN112559980A (zh) 一种可内嵌众多任意app的小程序运行时
CN107533614B (zh) 用于存储数据的装置和存储介质
US9064134B1 (en) Method and apparatus for mitigating software vulnerabilities
CN113139190A (zh) 程序文件检测方法、装置、电子设备及存储介质
CN112131612B (zh) 一种cf卡数据防篡改方法、装置、设备及介质

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121010

Termination date: 20210104

CF01 Termination of patent right due to non-payment of annual fee