CN1690957B - 通过安全虚拟机器实施安全政策的方法和*** - Google Patents

通过安全虚拟机器实施安全政策的方法和*** Download PDF

Info

Publication number
CN1690957B
CN1690957B CN2005100626459A CN200510062645A CN1690957B CN 1690957 B CN1690957 B CN 1690957B CN 2005100626459 A CN2005100626459 A CN 2005100626459A CN 200510062645 A CN200510062645 A CN 200510062645A CN 1690957 B CN1690957 B CN 1690957B
Authority
CN
China
Prior art keywords
security
instruction
data
virtual machine
equipment
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
CN2005100626459A
Other languages
English (en)
Other versions
CN1690957A (zh
Inventor
A·H·贝克
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 CN1690957A publication Critical patent/CN1690957A/zh
Application granted granted Critical
Publication of CN1690957B publication Critical patent/CN1690957B/zh
Active 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01HSTREET CLEANING; CLEANING OF PERMANENT WAYS; CLEANING BEACHES; DISPERSING OR PREVENTING FOG IN GENERAL CLEANING STREET OR RAILWAY FURNITURE OR TUNNEL WALLS
    • E01H5/00Removing snow or ice from roads or like surfaces; Grading or roughening snow or ice
    • E01H5/04Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material
    • E01H5/06Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades
    • E01H5/065Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades characterised by the form of the snow-plough blade, e.g. flexible, or by snow-plough blade accessories
    • E01H5/066Snow-plough blade accessories, e.g. deflector plates, skid shoes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种用于实施以安全虚拟机器的指令集编码的安全政策的方法和***。安全***提供了执行以安全虚拟机器的指令集表达的安全程序的安全虚拟机器。安全***将安全程序储存在安全虚拟机器的指令存储中。当发生安全实施事件时,安全虚拟机器使用安全实施事件的数据执行其指令存储的指令,以实施安全政策。

Description

通过安全虚拟机器实施安全政策的方法和***
技术领域
所描述的技术一般涉及实施安全政策来阻挡计算机程序的不合需要的行为。
背景技术
诸如操作***和文件***等软件***提供了应用编程接口,应用程序通过其能够访问软件***的服务。应用程序接口可向函数提供用于执行制定服务的参数。例如,文件***可具有用于创建文件的函数(也称为“***调用”)。该函数可具有指定要创建的文件的文件位置、文件名、文件类型、文件大小等的参数。当应用程序调用一函数时,它传递对应于为该函数定义的形式参数的实际参数。函数可在实际参数上执行某些核查,以确保它们是有效的。例如,创建文件函数可确保指定的文件类型是有效的。如果参数无效,则函数向应用程序返回一出错。
由于各种原因,软件***可以极其复杂。软件***可寻求与该软件***的所有现有版本后向兼容。在这一情况下,软件***可能需要支持现有版本的应用程序接口的所有函数。由于通常向每一版本添加新函数,因此函数的数量可能相当大,并且其交互十分复杂。某些软件***也可包括由同一公司的不同部门或不同的公司开发的软件组件。这些组件的交互也可以相当复杂。
对软件***越来越重要的是确保其应用编程接口对无意的误用或有意的攻击都不是易破坏的。软件***的一个易破坏性可以通过其应用编程接口的参数。当现有版本的函数与较新版本的函数组合时,并且当集成来自不同开发者的组件时,由函数执行的现有参数确认可能不足以确保函数的正确行为。例如,由一个公司开发的文件***的应用编程接口可以与由另一公司开发的文件服务器集成、应用编程接口的最大文件大小参数可以大于文件服务器支持的参数。在这一情况下,应用编程接口可接受的文件大小可导致文件服务器的问题。作为另一示例,***管理员可能希望进一步限制最大文件大小,但是***管理员可能没有可用的手段来实施该限制。
需要的是一种用于实施安全政策,尤其是为应用程序接口的参数指定有效条件的安全政策的机制。
发明内容
用于实施安全政策的方法和***是由一安全虚拟机器提供的。该安全虚拟机器包括处理器引擎、指令存储、数据存储和指令指针。该安全虚拟引擎执行使用从安全政策的高级语言表示所编译的中间语言指定的安全程序。该安全程序被加载到指令存储用于执行。当出现安全实施事件时,诸如调用应用编程接口的函数,将来自安全实施事件的数据储存在数据存储中,并且处理器引擎开始从指令存储中取出并执行用于安全程序的指令。指令指定了要采取的行动,以基于安全实施事件的数据实施安全政策。
附图说明
图1所示是一个实施例中安全***的组件的框图。
图2所示是一个实施例中数据存储的数据结构的框图。
图3所示是一个实施例中安全虚拟机器的指令的布局的图示。
图4所示是一个实施例中加载程序组件的处理的流程图。
图5所示是一个实施例中***调用截取组件的处理的流程图。
图6所示是一个实施例中安全虚拟机器的处理器引擎的处理的流程图。
图7所示是一个实施例中安全虚拟机器的解除引用(dereference)组件的处理的流程图。
图8所示是一个实施例中安全虚拟机器的求值测试组件的处理的流程图。
图9所示是一个实施例中安全虚拟机器的测试组件的处理的流程图。
图10所示是一个实施例中安全虚拟机器的匹配字符串组件的处理的流程图。
图11所示是一个实施例中安全虚拟机器的非测试(nontest)组件的处理的流程图。
具体实施方式
提供了一种在计算机***中用于实施以安全虚拟机器的指令集编码的安全政策的方法和***。在一个实施例中,安全***提供了一安全虚拟机器,它执行以安全虚拟机器的指令集(即,中间语言)表达的安全程序。安全***可包括一编译器,它接受以高级语言表示的安全政策,并生成以安全虚拟机器的中间语言表达的安全政策表示的安全程序。安全***在安全虚拟机器的指令存储中储存安全程序。当发生安全实施事件时(即,需要核查一行动来确保它遵循安全政策),则安全虚拟机器使用来自安全实施事件的数据执行来自其指令存储的安全程序的指令,以实施该安全政策。如果安全实施事件表明正在试图执行不合需要的行为(如,可能会恶意利用操作***的易破坏性的行动),则安全程序可阻挡该尝试。在一个实施例中,安全***的安全虚拟机器在操作***的内核模式中执行,以标识并防止应用程序和外部***对执行安全***的计算机***执行不合需要的行为的尝试。
在一个实施例中,安全***标识由应用程序向***服务(如,文件***和存储器管理***)发出的***调用的参数何时可能导致不合需要的行为。安全政策包含规则,其每一个规则都指定了基于***调用的参数的条件,以及当满足该条件时要采取的行动。例如,当用指定大于1GB的文件大小的参数发出一文件创建***调用时,可满足规则的条件。与该规则相关联的行动可阻挡文件的创建。高级语言可以是基于XML的语言,并且每一规则可以由规则条件和行动标签来标识。当编译以高级语言表示的安全政策规则时,将每一规则转换成中间语言的指令以形成安全程序。例如,规则可被转换成一系列指令。一个指令将***调用与表明函数是“文件创建”的值进行比较,一个指令将文件大小参数与其值为1GB的常量进行比较,一个指令输出指示来阻挡***调用。
在一个实施例中,安全虚拟机器包括处理器引擎、指令存储、指令指针和数据存储。当初始化安全虚拟机器来实施安全政策时,安全***用实现安全政策的安全程序加载指令存储。安全***也将安全程序的数据加载到数据存储中。当接收***调用时,安全***将***调用的参数(包括标识***调用的值)储存在数据存储中。安全***也可将发出***调用的进程的进程控制信息储存在数据存储中。安全***初始化指令指针以指向安全程序的起始指令。处理器引擎通过取出并执行由指令指针指向的起始指令来开始安全程序。所执行的每一指令修改指令指针以指向要执行的下一指令。指令引用数据存储中的数据以实施安全政策。安全程序的执行生成一输出行动集,它指定了为实施安全政策而要采取的行动(如,阻挡***调用)。
在一个实施例中,安全政策可包括要对其核查参数的每一***调用的子政策。安全***可将每一子政策编译成一单独的安全子程序,它可与其它安全子程序无关地加载到指令存储中。每一子政策可对应于单个***调用的安全实施。安全***可维护每一***调用到指令存储中的指令指针以及指向对应的安全子程序的数据存储中的数据的起始数据指针的映射。当在***调用上实施安全政策时,安全***将指令指针初始化成对应的起始指令指针,并将数据指针初始化成对应的起始数据指针。安全子程序可使用与指令指针和数据指针有关的指令和数据引用技术。以这一方式,每一安全子程序的指令和数据都是可重定位的。在以下描述中,单个安全程序通过解码每一***调用并跳转到适当的指令位置以处理该***调用,来处理所有的***调用。本领域的技术人员可以理解,所描述的***可适用于支持每一***调用的子程序。
图1所示是一个实施例中安全***的组件的框图。该安全***包括在用户模式100中执行的某些组件,以及在内核模式120中执行的其它组件。政策编译器102是在用户模式中执行的组件,以将政策存储103的安全政策编译成可由安全虚拟机器执行的安全程序。内核模式组件包括***调用截取组件121、加载程序组件122和安全虚拟机器125。安全虚拟机器包括指令指针126、处理器引擎127、指令存储128和数据存储129。加载程序组件将由政策编译器编译的安全程序加载到安全虚拟机器的指令存储中、将程序数据储存到数据存储中、并设置起始指令指针。***调用截取组件截取由应用程序101发出的***调用,并将每一***调用的参数和应用程序的进程控制信息储存到数据存储中。在截取了***调用并储存了其参数之后,***调用截取组件指令处理器引擎执行指令存储的安全程序。处理器引擎通过取出由指令指针指向的指令并执行由指令指定的操作来执行安全程序。操作包括将为实施安全政策而采取的行动储存在数据存储的输出行动集中。在完成了安全程序的执行以后,***调用截取组件执行输出行动集的行动。
实现安全***的计算装置可包括中央处理单元、存储器、输入设备(如,键盘和定位设备)、输出设备(如,显示设备)和存储设备(如,盘驱动器)。存储器和存储设备是可包含实现安全***的指令的计算机可读介质。另外,数据结构和消息结构可通过诸如通信链路上的信号等数据传输介质来储存或发送。可使用各种通信链路,如因特网、局域网、广域网或点对点拨号连接。
图1示出了其中可实现安全***的合适的操作环境的一个示例。该操作环境仅是合适的操作环境的一个示例,并非暗示对安全***的使用范围或功能的任何局限。适合使用的其它众所周知的计算***、环境和配置包括个人计算机、服务器计算机、手持式或膝上设备、多处理器***、基于微处理器的***、可编程消费者电子设备、网络PC、小型机、大型机、包括上述***或设备的任一个的分布式计算环境等等。
安全***可以在诸如由一个或多个其它设备执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。通常,如各个实施例中所需要的,程序模块的功能可以组合或分布。
图2所示是一个实施例中数据存储的数据结构的框图。该数据结构包括文字数据结构201、动态数据结构211、***调用参数数据结构221、进程控制块数据接口231以及行动输出集241。文字数据结构包括文字数据表202和文字数据存储203。文字数据表包含引用储存在文字数据存储中的文字数据的固定大小的条目。“文字数据”指对于当前加载的安全政策的生命周期恒定不变的安全程序的数据。文字数据只能通过加载新的安全政策来改变。动态数据结构具有与文字数据结构相似的组织,但是它储存“动态”数据而非“文字数据”。“动态数据”指可在不加载新安全政策的情况下修改的安全程序的数据。例如,动态数据可包括免除安全政策的应用程序名。文字和动态数据表的每一条目指向对应的数据存储中的数据。文字和动态数据存储的数据以自描述格式来表示。该格式包括数据类型和数据大小信息。在一个实施例中,安全虚拟机器支持布尔型、整型、字符串和原始二进制(也称为“二进制大对象(blob)”)数据类型,以及整型、字符串和二进制大对象的数组。指令使用对文字和动态表的索引而引用文字和动态数据。当执行指令时,安全虚拟机器通过检索索引的条目并使用其值作为指向文字或动态数据存储中的数据项的起始的指针,来对到文字和动态表的索引解除引用。由于数据是自描述的,因此可确定数据的类型和大小。***调用参数数据结构包括字符串表222、整型表223和原始二进制表224。***调用的参数依照其数据类型储存在这些表中。进程控制块数据结构是包含了对安全虚拟机器可用的每一条进程控制信息的条目的表。在一个实施例中,进程控制信息包括应用程序标识符和线程标识符。行动输出集可以是一组行动标记,它在执行安全程序的过程中生成,并表明为在***调用上实施安全政策而采取的行动。行动可包括阻挡***调用和通知用户。
图3所示是一个实施例中安全虚拟机器的指令的布局的图示。每一指令包括操作字段310、参数1字段320、真分支字段330、假分支字段340和参数2字段350。参数1字段引用与***调用相关联的数据(即,储存在***调用数据结构中或进程控制数据结构中),参数2字段引用与安全程序相关联的数据(即,直接数据或储存在文字或动态数据结构中的数据)。操作字段包括参数2描述符311(“m”)和操作码312。参数2描述符指定了如何解释参数2。参数2可包含直接数据、对动态数据的引用或对文字数据的引用。当指定引用时,安全虚拟机器在执行指令的操作之前对参数2解除引用。操作码标识了如下文更详细定义的指令的操作。参数1字段包含参数1描述符321(“s”)和索引322。参数1描述符表明参数1是涉及***调用参数还是涉及进程控制信息。如果参数1描述符指示***调用参数,则索引的较高位指定了是要索引***调用参数数据结构的字符串表、整型表还是原始二进制表,而较低位指示了表的索引的条目。如果参数1描述符指示进程控制信息,则索引指示特定的进程控制信息。真分支字段和假分支字段包含偏移,它根据该指令的条件码被求值为真还是为假来指定要执行的下一指令。该偏移被添加到当前指令指针,以指向要执行的下一指令。
表1和2示出了一个实施例中安全虚拟机器的指令。指令可被分类为在数据上执行测试的指令和不执行测试的指令。表1示出了非测试指令。
表1
  操作码   描述   参数
  HALT   停止处理   p2:状态码
  ACTION   将行动码添加到输出行动集   p2:行动码
  JMP   跳转到新的指令   p2:从当前位置的跳转偏移
  RESET   将输出行动集清零   p2:忽略
表2示出了测试指令。该模式指令可定义用于比较两个字符串的正则表达式,它可用于文件名的通配符类型比较(如,“*.DAT”)。
表2
  操作码   描述
  TEST   布尔型:测试p2是否为TRUE
  CMPEQ   整型:比较p1=p2
  CMPNE   整型:比较p1!=p1
  CMPLT   整型:比较p1<p2
  CMPLE   整型:比较p1<=p2
  CMPGE   整型:比较p1>=p2
  CMPGT   整型:比较p1>p2
  BLOB_MATCH 二进制大对象:p1==p2
  STRING_MATCH 字符串:p1==p2
  PATTERN_MATCH 字符串:p1与p2匹配通配符模式
  BLOB_MEMBEROF 二进制大对象:p1==p2[i]
  INT_MEMBEROF 整型:p1==p2[i]
  操作码   描述
  STRING_MEMBEROF 字符串:p1==p2[i]
  PATTERN_MEMBEROF 字符串:p1与p2[i]匹配通配符模式
图4所示是一个实施例中加载程序组件的处理的流程图。当要将安全程序加载到安全虚拟机器中时,调用该组件。安全程序包含虚拟指令、文字数据块和动态数据块。文字数据块包括文字数据表的信息,后面跟随文字数据存储的信息。组件将文字数据块复制到在起始位置处开始的文字存储中。组件然后将该基本位置添加到文字数据表中的每一偏移,以将偏移转换成指针。组件以类似的方式处理动态数据块。虚拟指令包含与文字存储和动态存储有关的偏移。在块401,组件识别文字存储内的起始位置,并复制在该起始位置开始的安全程序的文字数据块。在块402,组件将起始位置添加到文字数据表的每一偏移,以将安全程序的偏移转换成指针。在块403,组件标识动态存储内的起始位置,并复制在该起始位置处开始的安全程序的动态数据块。在块404,组件将起始位置添加到动态数据表的每一偏移,以将安全程序的偏移转换成指针。在块405,组件将安全程序的虚拟指令复制到指令存储,然后完成。
图5所示是一个实施例中***调用截取组件的处理的流程图。当***调用被截取时调用该组件。该组件初始化***调用参数数据结构以及进程控制数据结构,然后启动安全虚拟机器。该组件也可提供一指令的指令指针,该指令用于启动执行来处理***调用。当使用安全子程序时,该组件可具有***调用到起始指令指针和指向该***调用的文字和动态数据结构的起始数据指针的映射。加载程序组件可被多次调用,以加载安全程序的不同子程序用于处理不同的***调用。由于指令和数据是基于偏移的,指令和数据可被储存在指令存储和数据存储的下一可用位置。在块501,组件将当前指令指针设为安全程序的起始指令指针,并将行动输出集复位成初始状态(如,空)。在块502-504,组件循环将***调用的参数储存到***调用参数数据结构中。在块502,组件选择***调用的下一参数。在判别块503,如果已选择了***调用的所有参数,则组件在块505继续,否则组件在块504继续。在块504,组件将所选择的参数储存在***调用参数数据结构的适当表中,然后循环到块502以选择***调用的下一参数。在块505-507,组件循环将进程控制信息储存在进程控制数据结构中。在块505,组件为发出***调用的进程选择下一进程控制信息。在判别块506,如果已选择了所有的进程控制信息,则组件在块508继续,否则组件在块507继续。在块507,组件将所选择的进程控制信息储存到进程控制数据结构中,然后循环到块505以选择下一进程控制信息。或者,与使用并初始化内部进程控制数据结构相反,安全***可在需要时直接从进程控制块检索进程控制信息。本领域的技术人员可以理解,进程控制块由操作***在创建进程时创建。在块508,组件启动安全虚拟机器以在截取的***调用上实施安全政策。在由安全虚拟机器完成了安全程序的执行之后,组件执行行动输出集的行动。
图6所示是一个实施例中安全虚拟机器的处理器引擎的处理的流程图。处理器引擎基于截取的***调用而初始化***调用参数存储、运行安全虚拟机器、并执行输出行动集的行动。在块601-607,处理器引擎循环加载并执行储存在指令存储中的安全程序的指令,直到执行了停止指令。在一个实施例中,安全政策可定义为,只要满足一规则的条件,就不测试其它规则。在块601,处理器引擎取出由当前指令指针指向的指令。在块602,处理器引擎调用组件以对参数1和参数2解除引用。在判别块603,如果指令的操作码是测试操作,则处理器引擎在块604继续。如果指令的操作码是非测试操作(除停止操作之外),则处理器引擎在块608继续。如果指令的操作码是停止操作,则处理器引擎在块609继续。在块604,处理器引擎调用求值测试组件来确定测试操作是求值为真还是假。调用的组件将条件码标志设为真或假。在判别块605,如果条件码为真,则处理器引擎在块607继续,否则处理器引擎在块606继续。在块606,处理器引擎将假分支字段的偏移添加到当前指令指针,然后循环到块601以取出下一指令。在块607,处理器引擎将真分支字段的偏移添加到当前指令指针,然后循环到块601以取出下一指令。在块608,处理器引擎调用执行非测试组件,然后循环到块601以取出下一指令。执行非测试组件执行指令的操作,并将当前指令指针设为指向要执行的下一指令。执行非测试组件将指令的真分支的偏移(或在跳转指令的情况下为参数2)添加到指令指针。在块609,组件执行停止指令,然后完成。
图7所示是一个实施例中安全虚拟机器的解除引用组件的处理的流程图。该组件对取出的指令的参数1和参数2解除引用。在块701-708,组件对参数1解除引用。在判别块701,如果参数1是如由参数1描述符指示的***调用参数,则组件在块703继续,否则组件在块702继续。在块702,组件将解除引用的参数1设为由参数1的索引指定的进程控制信息,然后在块709继续。在判别块703,如果参数1的索引指示该***调用参数是整型,则组件在块704继续,否则组件在块705继续。在块704,组件将解除引用的参数1设为由索引指定的整型,并在块709继续。在判别块705,如果参数1的索引指示***调用参数是字符串,则组件在块706继续,否则组件在块707继续。在块706,组件将解除引用的参数1设为由索引指定的字符串,并在块709继续。在判别块707,如果参数1的索引指示***调用参数是原始二进制,则组件在块708继续,否则发生错误。在块708,组件将解除引用的参数1设为由索引指定的原始二进制,并在块709继续。在块709-714,组件对参数2解除引用。在判别块709,如果参数2描述符指示直接数据,则组件在块710继续,否则组件在块711继续。在块710,组件将解除引用的参数2设为取出的指令中的参数2的值,然后返回。在判别块711,如果参数2描述符指示文字数据,则组件在块712继续,否则组件在块713继续。在块712,组件将解除引用的参数2设为由取出的指令中的参数2指示的文字数据,然后返回。在判别块713,如果参数2描述符指示动态数据,则组件在块714继续,否则发生错误。在块714,组件将解除引用的参数2设为由取出的指令中的参数2指定的动态数据,然后返回。
图8所示是一个实施例中安全虚拟机器的求值测试组件的处理的流程图。该组件对加载的指令的操作码进行解码,并调用一组件实现对该操作码的测试。调用的组件将条件码设为真或假。在判别块801-803,组件对加载的指令的操作码进行解码。在块804-806,该组件调用实现该经解码的操作码的组件,然后返回。
图9所示是一个实施例中安全虚拟机器的测试组件的处理的流程图。测试组件实现测试操作码。在901,组件将条件码设为解除引用的参数2的值,然后返回。
图10所示是一个实施例中的安全虚拟机器的匹配字符串组件的处理的流程图。该组件确定解除引用的参数1是否与解除引用的参数2相匹配。在一个实施例中,安全虚拟机器可使用模式匹配。例如,参数可包括“通配符”规范或更一般地包括正则表达式。在判别块1001,如果参数1和参数2的长度相匹配,则组件在块1003继续,否则解除引用的参数不能匹配,并且组件在块1002继续。在块1002,组件将条件码设为假然后返回。在块1003-1006,组件循环核查解除引用参数的字符串的每一字符。在块1003,组件选择每一字符串的下一字符。在判别块1004,如果已选择了该字符串的所有字符,则组件在块1008继续,否则组件在块1005继续。在块1005,组件归一化所选择的字符。例如,组件可将每一字符设为小写以实现大小写不敏感比较。在判别块1006,如果所选择的字符相匹配,则组件循环到块1003以选择该字符串的下一字符,否则组件在块1007继续。在块1007,组件将条件码设为假然后返回。在块1008,该字符串的所有字符相匹配,组件将条件码设为真然后返回。
图11所示是一个实施例中安全虚拟机器的非测试组件的处理的流程图。该组件执行取出的指令的非测试操作码的操作,包括将当前指令指针设为指向要执行的下一指令。在判别块1101,如果操作码是行动操作,则组件在块1102继续,否则组件在块1103继续。在块1102,组件将取出的指令的参数2添加到行动输出集,然后在块1107继续。在判别块1103,如果操作码是复位操作,则组件在块1104继续,否则组件在块1105继续。在块1104,组件将行动输出集清零,然后在块1107继续。在判别块1105,如果操作码是跳转操作,则组件在块1106继续,否则组件继续解码更多的操作码。在块1106,组件将参数2添加到当前指令指针,然后返回。在块1107,组件将真分支字段的值添加到当前指令指针,然后返回。
本领域的技术人员可以理解,尽管此处为说明目的描述了安全***的特定实施例,然而可在不脱离本发明的精神和范围的情况下作出各种修改。本领域的技术人员可以理解,使用安全虚拟机器的安全***可用于实施各种各样的安全政策。例如,安全***可用于实施通过网络接收的消息、由交易处理器接收的交易、以及更一般地提供应用编程接口的任何应用程序的安全。另外,本发明不受权利要求书以外的任何内容的限制。

Claims (34)

1.一种计算机***中用于实施安全政策的方法,其特征在于,所述方法包括:
提供一安全政策;
基于一安全虚拟机器的指令集将所述安全政策编译成一安全程序;
将所述安全程序加载到所述安全虚拟机器的指令存储器中;以及
在出现一安全实施事件时,所述安全实施事件出现在所述安全虚拟机器外部的一应用程序的执行期间,基于所述安全实施事件的数据执行被加载到所述指令存储器中的安全程序的指令,以实施所述安全政策。
2.如权利要求1所述的方法,其特征在于,所述安全政策为***调用指定了安全性。
3.如权利要求1所述的方法,其特征在于,所述安全实施事件是所述应用程序发出一***调用。
4.如权利要求3所述的方法,其特征在于,所述***调用的参数是所述安全实施事件的数据。
5.如权利要求3所述的方法,其特征在于,发出所述***调用的应用程序的进程控制信息是所述安全实施事件的数据。
6.如权利要求1所述的方法,其特征在于,所述安全程序的数据被储存在一文字数据结构中。
7.如权利要求6所述的方法,其特征在于,所述指令包含对储存在所述文字数据结构中的文字数据的引用。
8.如权利要求1所述的方法,其特征在于,所述安全程序的数据被储存在一动态数据结构中。
9.如权利要求8所述的方法,其特征在于,所述指令包含对储存在所述动态数据结构中的动态数据的引用。
10.如权利要求1所述的方法,其特征在于,所述指令标识要执行的下一指令的位置。
11.如权利要求1所述的方法,其特征在于,所述安全虚拟机器支持布尔型、整型、字符串和原始二进制数据类型。
12.如权利要求1所述的方法,其特征在于,所述安全虚拟机器支持正则表达式模式匹配比较。
13.如权利要求1所述的方法,其特征在于,所述安全程序的执行创建一输出行动集,所述输出行动集指定了如何处理所述安全实施事件。
14.如权利要求1所述的方法,其特征在于,所述指令的执行是在内核模式中执行的。
15.如权利要求1所述的方法,其特征在于,所述指令包括操作码、参数和分支字段。
16.如权利要求15所述的方法,其特征在于,所述分支字段包括一真分支字段,所述真分支字段指定了当所述指令的条件求值为真时的下一指令;以及一假分支字段,所述假分支字段指定了当所述指令的条件求值为假时的下一指令。
17.如权利要求1所述的方法,其特征在于,所述安全实施事件指定了要阻挡的行为。
18.一种计算机***中用于实施安全政策的设备,其特征在于,所述设备包括:
用于提供一安全政策的装置;
用于基于一安全虚拟机器的指令集将所述安全政策编译成一安全程序的装置;
用于将所述安全程序加载到所述安全虚拟机器的指令存储器中的装置;以及
用于在出现一安全实施事件时、基于所述安全实施事件的数据执行被加载到所述指令存储器中的安全程序的指令以实施所述安全政策的装置,其中,所述安全实施事件出现在所述安全虚拟机器外部的一应用程序的执行期间。
19.如权利要求18所述的设备,其特征在于,所述安全政策为***调用指定了安全性。
20.如权利要求18所述的设备,其特征在于,所述安全实施事件是所述应用程序发出一***调用。
21.如权利要求20所述的设备,其特征在于,所述***调用的参数是所述安全实施事件的数据。
22.如权利要求20所述的设备,其特征在于,发出所述***调用的应用程序的进程控制信息是所述安全实施事件的数据。
23.如权利要求18所述的设备,其特征在于,所述安全程序的数据被储存在一文字数据结构中。
24.如权利要求23所述的设备,其特征在于,所述指令包含对储存在所述文字数据结构中的文字数据的引用。
25.如权利要求18所述的设备,其特征在于,所述安全程序的数据被储存在一动态数据结构中。
26.如权利要求25所述的设备,其特征在于,所述指令包含对储存在所述动态数据结构中的动态数据的引用。
27.如权利要求18所述的设备,其特征在于,所述指令标识要执行的下一指令的位置。
28.如权利要求18所述的设备,其特征在于,所述安全虚拟机器支持布尔型、整型、字符串和原始二进制数据类型。
29.如权利要求18所述的设备,其特征在于,所述安全虚拟机器支持正则表达式模式匹配比较。
30.如权利要求18所述的设备,其特征在于,所述安全程序的执行创建一输出行动集,所述输出行动集指定了如何处理所述安全实施事件。
31.如权利要求18所述的设备,其特征在于,所述指令的执行是在内核模式中执行的。
32.如权利要求18所述的设备,其特征在于,所述指令包括操作码、参数和分支字段。
33.如权利要求32所述的设备,其特征在于,所述分支字段包括一真分支字段,所述真分支字段指定了当所述指令的条件求值为真时的下一指令;以及一假分支字段,所述假分支字段指定了当所述指令的条件求值为假时的下一指令。
34.如权利要求18所述的设备,其特征在于,所述安全实施事件指定了要阻挡的行为。
CN2005100626459A 2004-04-27 2005-03-29 通过安全虚拟机器实施安全政策的方法和*** Active CN1690957B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/832,798 US8607299B2 (en) 2004-04-27 2004-04-27 Method and system for enforcing a security policy via a security virtual machine
US10/832,798 2004-04-27

Publications (2)

Publication Number Publication Date
CN1690957A CN1690957A (zh) 2005-11-02
CN1690957B true CN1690957B (zh) 2010-06-09

Family

ID=34939240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100626459A Active CN1690957B (zh) 2004-04-27 2005-03-29 通过安全虚拟机器实施安全政策的方法和***

Country Status (17)

Country Link
US (1) US8607299B2 (zh)
EP (1) EP1596298B1 (zh)
JP (1) JP4902129B2 (zh)
KR (1) KR101143154B1 (zh)
CN (1) CN1690957B (zh)
AU (1) AU2005200911B2 (zh)
BR (1) BRPI0501171A (zh)
CA (1) CA2499688C (zh)
CO (1) CO5680123A1 (zh)
MX (1) MXPA05003403A (zh)
MY (1) MY147383A (zh)
NO (1) NO336813B1 (zh)
NZ (1) NZ539022A (zh)
RU (1) RU2390837C2 (zh)
SG (1) SG116580A1 (zh)
TW (1) TWI423040B (zh)
ZA (1) ZA200502451B (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
US8607299B2 (en) 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine
JP5021475B2 (ja) * 2004-08-03 2012-09-05 マイクロソフト コーポレーション コンテキストポリシー制御によるアプリケーション間の関連付けの制御のためのシステムおよび方法
US7913092B1 (en) * 2005-12-29 2011-03-22 At&T Intellectual Property Ii, L.P. System and method for enforcing application security policies using authenticated system calls
US7725614B2 (en) * 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
US20080127142A1 (en) * 2006-11-28 2008-05-29 Microsoft Corporation Compiling executable code into a less-trusted address space
US20080250407A1 (en) * 2007-04-05 2008-10-09 Microsoft Corporation Network group name for virtual machines
US8397216B2 (en) * 2008-02-29 2013-03-12 International Business Machines Corporation Compiler for a declarative event-driven programming model
US8627299B2 (en) * 2008-02-29 2014-01-07 International Business Machines Corporation Virtual machine and programming language for event processing
US8365149B2 (en) * 2008-02-29 2013-01-29 International Business Machines Corporation Debugger for a declarative event-driven programming model
US8533833B2 (en) * 2008-07-14 2013-09-10 Nyotron Information Security Ltd. System, a method, and a data-structure for processing system calls in a computerized system that implements a kernel
US9940181B2 (en) * 2008-07-14 2018-04-10 Nyotron Information Security Ltd. System and method for reacting to system calls made to a kernal of the system
EP2194456A1 (en) * 2008-12-05 2010-06-09 NTT DoCoMo, Inc. Method and apparatus for performing a file operation
US20100162240A1 (en) * 2008-12-23 2010-06-24 Samsung Electronics Co., Ltd. Consistent security enforcement for safer computing systems
US8561090B2 (en) * 2009-02-26 2013-10-15 Red Hat, Inc. Method and an apparatus to implement secure system call wrappers
EP2237200A1 (en) * 2009-04-01 2010-10-06 Alcatel Lucent Method for filtering the streaming of virtual environment content assets, a related system, network element and a related virtual environment content asset
US8429648B2 (en) * 2009-05-28 2013-04-23 Red Hat, Inc. Method and apparatus to service a software generated trap received by a virtual machine monitor
US8813069B2 (en) * 2009-05-29 2014-08-19 Red Hat, Inc. Migration of functionalities across systems
KR101113820B1 (ko) * 2010-03-16 2012-02-29 소프트캠프(주) 응용프로그램의 파일 입출력 보안방법과 보안시스템
JP2012084071A (ja) 2010-10-14 2012-04-26 Toshiba Corp デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
US9129138B1 (en) * 2010-10-29 2015-09-08 Western Digital Technologies, Inc. Methods and systems for a portable data locker
US8566899B2 (en) * 2011-03-16 2013-10-22 Symantec Corporation Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
WO2013074041A1 (en) 2011-11-16 2013-05-23 V-Key Pte. Ltd. Cryptographic system and methodology for securing software cryptography
JP5204290B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5204291B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
JP5275482B2 (ja) 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
US8966574B2 (en) * 2012-02-03 2015-02-24 Apple Inc. Centralized operation management
CN102831342B (zh) * 2012-07-28 2016-01-06 北京深思数盾科技有限公司 一种提高安卓***中应用程序保护强度的方法
US9087191B2 (en) * 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US10402584B1 (en) * 2015-10-01 2019-09-03 Hrl Laboratories, Llc System and method for translating security objectives of computer software to properties of software code
US10289853B2 (en) * 2016-03-31 2019-05-14 Microsoft Technology Licensing, Llc Secure driver platform
US10650138B2 (en) * 2017-01-27 2020-05-12 Hewlett Packard Enterprise Development Lp System call policies for containers
US11831655B2 (en) 2017-10-02 2023-11-28 Qualcomm Incorporated Incorporating network policies in key generation
CN109639449B (zh) * 2017-10-09 2021-09-03 中兴通讯股份有限公司 虚拟化流镜像策略自动化管理的方法、设备及介质
CN109992974B (zh) * 2017-12-29 2023-04-14 中兴通讯股份有限公司 虚拟机字节码文件的保护方法、设备及可读存储介质
US10747711B2 (en) * 2018-03-20 2020-08-18 Arizona Board Of Regents On Behalf Of Northern Arizona University Dynamic hybridized positional notation instruction set computer architecture to enhance security
US11108823B2 (en) 2018-07-31 2021-08-31 International Business Machines Corporation Resource security system using fake connections
US11500665B2 (en) * 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11481241B2 (en) * 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11182507B2 (en) * 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US10452868B1 (en) 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
US11698980B2 (en) * 2019-09-12 2023-07-11 Arm Limited System, devices and/or processes for secure computation on a virtual machine
US11588859B2 (en) * 2021-03-15 2023-02-21 Zscaler, Inc. Identity-based enforcement of network communication in serverless workloads
EP4361860A1 (en) 2021-06-22 2024-05-01 Digital Information Technologies Corporation Program, information processing device, and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2365561A (en) * 1999-12-14 2002-02-20 Ibm Conditional access control
WO2002097594A2 (en) * 2001-05-30 2002-12-05 Sun Microsystems Inc Method and apparatus for a secure virtual machine

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
KR100373526B1 (ko) 1997-01-17 2003-02-25 인터내셔널 비지네스 머신즈 코포레이션 분산 네트워크 시스템에서의 액세스 제어 시스템 및 자원 보호 방법
US6370571B1 (en) * 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US5974549A (en) 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6125447A (en) 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6505300B2 (en) 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6170009B1 (en) 1998-07-17 2001-01-02 Kallol Mandal Controlling devices on a network through policies
US6658571B1 (en) 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US6546546B1 (en) 1999-05-19 2003-04-08 International Business Machines Corporation Integrating operating systems and run-time systems
US6560774B1 (en) 1999-09-01 2003-05-06 Microsoft Corporation Verifier to check intermediate language
US6567974B1 (en) * 2000-02-25 2003-05-20 Sun Microsystems, Inc. Small memory footprint system and method for separating applications within a single virtual machine
AU2001243365A1 (en) 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
US6973493B1 (en) * 2000-05-09 2005-12-06 Sun Microsystems, Inc. Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
CA2315449A1 (en) 2000-08-10 2002-02-10 Ibm Canada Limited-Ibm Canada Limitee Generation of runtime execution traces of applications and associated problem determination
KR20020033859A (ko) 2000-10-30 2002-05-08 송영호 리눅스 보안 커널
JP3786644B2 (ja) * 2001-04-23 2006-06-14 アトメル・コーポレイション バイトコンパイルされたJava(R)コードを実行するためのマイクロプロセッサ
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
GB2376761A (en) 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
US7698713B2 (en) 2001-09-20 2010-04-13 Google Inc. Altered states of software component behavior
GB2381092B (en) 2001-10-19 2005-10-19 Ibm Object locking in a shared VM environment
JP2003173301A (ja) * 2001-12-07 2003-06-20 Hitachi Ltd ネットワーク,サーバおよびストレージのポリシーサーバ
WO2003050662A1 (fr) 2001-12-13 2003-06-19 Japan Science And Technology Agency Systeme d'execution securisee d'un logiciel
US7536181B2 (en) * 2002-02-15 2009-05-19 Telefonaktiebolaget L M Ericsson (Publ) Platform system for mobile terminals
US7415270B2 (en) * 2002-02-15 2008-08-19 Telefonaktiebolaget L M Ericsson (Publ) Middleware services layer for platform system for mobile terminals
US7178049B2 (en) 2002-04-24 2007-02-13 Medius, Inc. Method for multi-tasking multiple Java virtual machines in a secure environment
US20030204500A1 (en) * 2002-04-25 2003-10-30 Jean-Francois Delpech Process and apparatus for automatic retrieval from a database and for automatic enhancement of such database
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US7149510B2 (en) * 2002-09-23 2006-12-12 Telefonaktiebolaget Lm Ericsson (Publ) Security access manager in middleware
JP2004126854A (ja) 2002-10-01 2004-04-22 Mitsubishi Electric Corp 攻撃対策装置
US7117481B1 (en) * 2002-11-06 2006-10-03 Vmware, Inc. Composite lock for computer systems with multiple domains
US7657937B1 (en) * 2003-01-02 2010-02-02 Vmware, Inc. Method for customizing processing and response for intrusion prevention
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7478388B1 (en) * 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US8607299B2 (en) 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2365561A (en) * 1999-12-14 2002-02-20 Ibm Conditional access control
WO2002097594A2 (en) * 2001-05-30 2002-12-05 Sun Microsystems Inc Method and apparatus for a secure virtual machine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VENNERS, B.Java security : How to install the security manager andcustomize your security policy.http://www.javaworld.com/javaworld/jw-11-1997/jw-11-hood.html.1997,1-4. *

Also Published As

Publication number Publication date
SG116580A1 (en) 2005-11-28
TWI423040B (zh) 2014-01-11
ZA200502451B (en) 2006-12-27
NO336813B1 (no) 2015-11-02
BRPI0501171A (pt) 2006-01-10
US8607299B2 (en) 2013-12-10
CA2499688A1 (en) 2005-10-27
CO5680123A1 (es) 2006-09-29
MY147383A (en) 2012-11-30
TW200617702A (en) 2006-06-01
RU2390837C2 (ru) 2010-05-27
MXPA05003403A (es) 2005-10-31
AU2005200911A1 (en) 2007-02-15
US20050257243A1 (en) 2005-11-17
CN1690957A (zh) 2005-11-02
NZ539022A (en) 2007-05-31
KR101143154B1 (ko) 2012-05-08
AU2005200911B2 (en) 2010-10-21
JP2005316964A (ja) 2005-11-10
KR20060044764A (ko) 2006-05-16
NO20051525D0 (no) 2005-03-22
EP1596298B1 (en) 2017-02-08
CA2499688C (en) 2014-02-25
NO20051525L (no) 2005-10-28
EP1596298A1 (en) 2005-11-16
JP4902129B2 (ja) 2012-03-21
RU2005107408A (ru) 2006-08-27

Similar Documents

Publication Publication Date Title
CN1690957B (zh) 通过安全虚拟机器实施安全政策的方法和***
Kwon et al. Ravenscar-Java: A high integrity profile for real-time Java
CN102592082B (zh) 通过操作码随机化的安全
US11875180B2 (en) Systems and methods for stalling host processor
AU2004216596B2 (en) Programming interface for licensing
CN104205064A (zh) 将程序事件记录事件向运行时间检测事件的变换
CN102460381A (zh) 软件扩展分析
WO2001052055A2 (en) System and method for implementing a flexible data-driven target object model
CN102841785B (zh) 一种文件句柄关闭操作的方法及装置
JPH09171473A (ja) エラーを管理するための方法およびデータ処理システム
US20080209265A1 (en) Information-Processing Method and Apparatus
CN110764745B (zh) 变量的传输和收集方法、装置及计算机可读存储介质
US20060101412A1 (en) Method to bridge between unmanaged code and managed code
Cohen et al. EventScript: an event-processing language based on regular expressions with actions
CN103164325A (zh) 一种控制编码的方法和装置
Larsen ANALYSIS OF PARALLEL PRE-PROCESSING OF MALWARE DATA FOR MACHINE LEARNING IN PYTHON
CN115618358A (zh) 应用文件的安全性检测方法、装置和服务器
Abbas et al. LEARN. NET WITH PROGRAMMING (3-in-1): Covers. NET using C#, Visual Basic ASP. NET
CN114880632A (zh) 获取混淆资源的方法、智能终端及计算机可读存储介质
Dhanjani et al. Kernel korner: Loadable kernel module programming and system call interception
CN114756244A (zh) 一种日志处理方法、装置、计算机设备及存储介质
Cooper Jr Basic Lisp Techniques
BRPI0501171B1 (pt) Method in a computing device to enforce a security policy
Wainwright Debugging, Testing, and Profiling
Zhou et al. BSD/I18N—Internationalization of the 4.3 BSD UNIX system

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.