CN101014959A - 应用执行装置及应用执行装置的应用执行方法 - Google Patents

应用执行装置及应用执行装置的应用执行方法 Download PDF

Info

Publication number
CN101014959A
CN101014959A CNA2005800239596A CN200580023959A CN101014959A CN 101014959 A CN101014959 A CN 101014959A CN A2005800239596 A CNA2005800239596 A CN A2005800239596A CN 200580023959 A CN200580023959 A CN 200580023959A CN 101014959 A CN101014959 A CN 101014959A
Authority
CN
China
Prior art keywords
mentioned
metamessage
class
application
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800239596A
Other languages
English (en)
Other versions
CN100465982C (zh
Inventor
中村智典
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101014959A publication Critical patent/CN101014959A/zh
Application granted granted Critical
Publication of CN100465982C publication Critical patent/CN100465982C/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/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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • G06F21/54Monitoring 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 by adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

在现有的应用保护技术中,通过使应用复杂化,使应用的分析困难。但是,在本方法中无论使应用多么复杂化,都能通过花费时间进行分析。而且,不能防止非法复制应用自身。由安全执行部中动作的元信息管理部,将应用的元信息存储到调试器不能访问的区域,在通常执行部中,需要用于执行应用时的元信息时,将使用元信息进行规定计算的结果通知给通常执行部,从而藏匿应用的元信息。

Description

应用执行装置及应用执行装置的应用执行方法
技术领域
本发明涉及执行应用程序(特别是用Java(注册商标)语言描述的程序)的应用执行装置,涉及在执行从因特网或DVD等外部媒体下载的应用时防止应用被非法盗听、篡改的技术。
背景技术
在现有的数字TV或便携式电话机等电子设备中,搭载着下载并执行用Java(注册商标)语言描述的应用程序的功能的设备正在增加。例如,在便携式电话机中,NTT DoCoMo提供被称作i-appli(注册商标)的服务。该服务是便携式电话终端从位于因特网上的应用分发服务器下载Java(注册商标)程序,并在终端上执行。
而且在欧洲,确定了被称作DVB-MHP(Digital VideoBroadcasting-Multimedia Home Platform)的规格,并已经开始了基于规格的运用。在基于DVB-MHP规格的数字广播中,数字TV接收被复用在广播波上的Java(注册商标)程序,并执行该程序。
在这样的应用程序分发服务器中,被分发的应用程序必须用该应用程序的研发者的知识产权来保护,防止有恶意的攻击者盗听该应用程序。而且,必须防止被有恶意的攻击者篡改的应用程序进行使用者或程序制作者未打算的动作。
近年的电子设备有多个软件模块构成。如果是具有专业知识的人,则可能通过滥用这些软件模块的缺陷(bug)来篡改电子设备内的软件。而且,使用调试器(debugger)或IEC(In-Circuit Emulator)等工具也能够实现同样的事情。因此,例如在Java(注册商标)程序中包含有著作权管理功能或收费功能的情况下,发生使这些功能无效的问题。预料今后随着利用网络等的Java(注册商标)应用程序的分发业务正式化,这样的应用程序的盗听、篡改的问题将变得严重。
以前,为了防止滥用软件模块的缺陷或使用调试器、ICE等工具分析、篡改存储器上的程序,对原来的程序使用复杂化和加密的方法。
所谓“复杂化”是指通过实施处理的分割、出现顺序的交换、条件的插入等处理,虽然动作与原来的程序相同,但变换为更复杂的程序,使程序本体复杂的方法,所谓“加密”是将程序加密,仅在执行时解密的方法。
专利文献1:(日本)特表2002-514333
但是,无论实施怎样复杂的变换,通过花时间进行分析,复杂化的方法总会在某时被分析出来。如果程序的商业价值变高,则无论多么复杂的程序,必然会出现负担用于分析该程序的成本的人。
而且,由于程序在执行中被解密,所以加密的方法存在其间被分析、盗听的可能性。
发明内容
本发明用于解决上述问题,其目的在于提供一种应用执行装置,防止滥用软件模块的缺陷或使用专业工具进行的应用程序的盗听、篡改。
为了解决上述问题,本发明的应用执行装置,以类为单位执行已取得的应用,其特征在于,具备:元信息存储单元,对类文件中所包含的元信息进行存储;指令序列存储单元,对类文件中所包含的指令序列进行存储;指令执行单元,没有要参照的信息时执行指令,有要参照的第1信息时请求并使用所通知的第2信息执行指令;以及元信息执行单元,按照上述指令执行单元的请求根据上述元信息生成第2信息,通知上述指令执行单元;仅上述元信息执行单元能读出存储在上述元信息存储单元中的元信息,上述元信息执行单元仅接受上述指令执行单元的请求。
本发明的效果如下。
通过上述构成,存在要参照的信息时,执行应用的指令的指令执行单元指示元信息执行单元通知需要的第2信息,所以例如即使使用调试器盗听指令执行单元,也不能看到存储在元信息存储单元中的元信息本身。因此,即使用指令执行单元盗听、篡改指令序列,应用的分析也是困难的,能防止盗听、篡改。
而且,上述元信息存储单元存储常数池和类结构信息,该常数池记载有索引和常数池的类型及其值,该类结构信息记载有项目及其值;上述指令序列存储单元存储由类定义的方法的字节码;在上述指令执行单元执行在字节码中指定作为第1信息的常数池的索引的指令时,上述元信息执行单元按照该指令的种类参照上述常数池和类结构信息生成第2信息。
这样一来,执行应用时也能防止应用被非法分析、篡改,保护强度提高。
而且,上述指令执行单元执行的字节码是新目标的生成时,上述元信息执行单元从上述常数池中检索与所指定的索引相对应的常数池的类型,参照上述类结构信息来生成存储器大小。
这样一来,指令执行单元得到目标的大小,成为目标的大小的计算的基础的、该类说明的元信息的域的数量和类型描述符,在指令执行单元中看不见。
而且,上述指令执行单元执行的字节码是方法的调用时,上述元信息执行单元从上述常数池中检索与所指定的索引相对应的常数池的类型,参照上述类结构信息来生成上述方法的地址。
这样一来,指令执行单元得到方法的地址,但在指令执行单元中看不见为了得到该地址而需要的元信息。
而且,上述指令执行单元执行的字节码是参照目标的域时,上述元信息执行单元从上述常数池中检索与所指定的索引相对应的常数池的类型,参照上述类结构信息来生成上述域的地址。
这样一来,指令执行单元得到方法的地址,但在指令执行单元中看不见为了得到该地址而需要的元信息。
而且,上述取得的应用被加密;还具备解密单元,该解密单元解密上述被加密的应用,将被解密的指令序列存储在上述指令序列存储单元中,将被解密的元信息存储在上述元信息存储单元中。
这样一来,在应用解密时,能保护应用的元信息,保护强度进一步提高。
而且,上述解密单元使用不能从外部直接访问的密钥存储单元中存储的解密密钥来解密上述应用。
这样一来,能防止应用被非法解密、分析、篡改,保护强度提高。
而且,上述应用是Java(注册商标)应用。
这样一来,能防止非法盗听、篡改Java(注册商标)应用。
而且,本发明的以类为单位执行已取得的应用的应用执行装置的应用执行方法,其特征在于,具备以下步骤:元信息记录步骤,对类文件中所包含的元信息进行记录;指令序列记录步骤,对类文件中所包含的指令序列进行记录;指令执行步骤,没有要参照的信息时执行指令,有要参照的第1信息时请求并使用所通知的第2信息执行指令;以及元信息执行步骤,按照上述指令执行步骤的请求根据上述元信息生成第2信息,通知上述指令执行步骤;记录在上述元信息记录步骤中的信息,仅上述元信息执行步骤能读出,上述元信息执行步骤仅接受上述指令执行步骤的请求。
通过上述方法,在执行应用时,即使利用调试器等工具在存储器上盗听、篡改应用的指令,由于不能从调试器访问应用的元信息,所以也难以分析应用,可以防止盗听、篡改。
附图说明
图1是本发明涉及的应用执行装置的实施方式1的构成图。
图2是表示上述实施方式的Java(注册商标)虚拟机的构成的图。
图3是表示上述实施方式的Java(注册商标)类文件的结构图。
图4是表示上述实施方式的第1ROM中存储的信息的一个例子的构成图。
图5是表示上述实施方式的应用取得程序的构成的一个例子的结构图。
图6是表示上述实施方式的元信息的处理步骤的流程图。
图7是表示上述实施方式的第2ROM中存储的信息的一个例子的构成图。
图8是表示上述实施方式的加载Java(注册商标)虚拟机的处理步骤的流程图。
图9是表示上述实施方式的解密的处理步骤的流程图。
图10是表示上述实施方式的加载类的处理步骤的流程图。
图11是表示上述实施方式的Java(注册商标)类的一个例子的图。
图12是表示上述实施方式的常数池的一个例子的图。
图13是表示上述实施方式的类结构信息的一个例子的图。
图14是表示上述实施方式的字节码的一个例子的图。
图15是表示上述实施方式的字节码的new指令的处理步骤的流程图。
图16是表示上述实施方式的类ID对应表的一个例子的图。
图17是表示上述实施方式的类ID对应表的另一个例子的图。
图18是表示上述实施方式的执行invokespecial指令时的字节码解释器和元信息管理部的流程图。
图19是表示上述实施方式的执行getfield指令时的字节码解释器和元信息管理部的流程图。
图20是表示本发明涉及的应用执行装置的实施方式2的构成图。
图21是表示上述实施方式的虚拟机的构成的图。
图22是表示上述实施方式的第1ROM中存储的信息的一个例子的构成图。
图23是表示上述实施方式的加载Java(注册商标)虚拟机的处理步骤的流程图。
图号说明
100,2000  能下载的程序;
110,2010  应用执行装置;
120,2020  通常执行部;
121,2021  应用取得程序;
122        Java(注册商标)虚拟机;
123,2023  OS;
124,2024  第1CPU;
125,2025  第1RAM;
126,2026  第1ROM;
130,2030  安全执行部;
131,2031  元信息(meta-information)管理部;
132,2033  Java(注册商标)虚拟机加载器;
133,2034  解密处理部;
134,2035  第2CPU;
135,2036  第2RAM;
136,2037  第2ROM;
201,2101  字节码解释器(bytecode interpreter);
202,2106  类加载器(class loader);
203,2107  检验器;
204,2103  Java(注册商标)堆(heap)管理部;
205,2104  Java(注册商标)本机库(native library);
206,2105  JIT编译器;
300        类文件;
301        类结构信息;
302        常数池(constant pool);
303        字节码(bytecode);
401        被加密的Java(注册商标)虚拟机;
402        被加密的应用取得程序;
403        被加密的元信息管理部;
404        启动类名;
501        被加密的子类;
701        解密密钥;
1100       使用Java(注册商标)语言的类定义文件;
1600       类ID对应表(例1);
1700       类ID对应表(例2);
2022       第1Java(注册商标)虚拟机;
2032       第2Java(注册商标)虚拟机。
具体实施方式
参照附图说明本发明涉及的应用执行装置的实施方式。
(实施方式1)
图1是本发明涉及的应用执行装置的实施方式1的构成图。
能下载的应用程序(以下简称为“应用”)100是能从应用执行装置110下载的应用,在本实施方式中,是被编译、被加密的Java(注册商标)的应用。
应用执行装置110具备通常执行部120和安全执行部130,由虚拟线140的上方的软件和下方的硬件构成。应用执行装置110被采用于例如数字电视机、置顶盒、DVD记录器、Blu-ray Disc(BD)记录器、汽车导航终端、便携式电话机、PDA等搭载了Java(注册商标)虚拟机的电子设备或终端。
通常执行部120由应用取得程序121、Java(注册商标)虚拟机122、OS123构成软件,由第1CPU124、第1RAM125、第1ROM126构成硬件。其中,应用取得程序121、Java(注册商标)虚拟机122、OS123的排列顺序表示从软件的阶层结构的上层开始的顺序,这些软件在第1CPU124中动作。
通常执行部120是与例如被搭载在通常的个人计算机或数字家电设备等中的程序执行单元相同的部件。而且,在权利要求的范围中,通常执行部120由指令执行单元和指令序列存储单元构成。
安全执行部130由元信息管理部131、Java(注册商标)虚拟机132、解密处理部133构成软件,由第2CPU134、第2RAM135、第2ROM136构成硬件。其中,元信息管理部131、Java(注册商标)虚拟机加载机132、解密处理部133的各软件在第2CPU124中动作。
安全执行部130能防御来自有恶意的第三者的攻击,同时安全地执行程序。也就是说,安全执行部130禁止从外部的装置直接访问,第2CPU134按照来自第1CPU124的指示将需要的信息通知给第1CPU124。而且,在权利要求的范围中,安全执行部130由元信息执行单元、元信息存储单元以及解密单元构成。
首先,说明有关各通常执行部120的各构成要素。
应用取得程序121从应用执行装置110的外部取得应用100,存储在第1RAM125中。应用取得程序121相当于例如从位于因特网上的服务器上依照TLS(Transport Layer SecUrity)、HTTP(Hyper TextTransfer Protocol)等协议下载Java(注册商标)应用100(被加密、类文件形式)的Java(注册商标)程序。
其中,TLS是通过加密来防止通信时的数据的盗听、篡改的数据传输方式。TLS详细记载在RFC2246中,在此省略详细的说明。
而且,HTTP是因特网上的数据通信中一般使用的数据传输方式。HTTP详细记载在RFC2216中,在此省略详细的说明。
而且,应用取得程序121也可以是作为数字广播的数据广播,将嵌入MPEG2传输流内的Java(注册商标)应用读出到应用执行装置110中的Java(注册商标)程序。MPEG2传输流详细记载在MPEG规格书ISO/IEC138181-1中,所以省略其说明。在MPEG2传输流内嵌入Java(注册商标)程序的方法,作为DSMCC方式描述在MPEG规格书ISO/IEC138181-6中。在此省略DSMCC的详细说明。DSMCC方式,在MPEG2传输流的包中,规定将由计算机使用的目录或文件构成的文件系统编码的方法。
而且,应用取得程序121也可以是将被记录在SD卡、CD-ROM、DVD、BD-ROM等可移动介质中的Java(注册商标)应用,写入第1RAM125中的Java(注册商标)程序。应用取得程序121使用OS123提供的文件操作功能,读出被记录在这些可移动介质中的Java(注册商标)应用。
而且,应用取得程序121也可以是将被记录在位于应用执行装置110内的第1ROM中的Java(注册商标)应用,写入第1RAM125中的Java(注册商标)程序。应用取得程序121使用OS123提供的文件操作功能,读出被记录在第1RAM126中的Java(注册商标)应用。
而且,在本实施方式中应用取得程序121为用Java(注册商标)语言描述的Java(注册商标)程序,但也可以用具有同等功能的、用本机(执行装置固有)语言描述的程序实现。
Java(注册商标)虚拟机122是逐次分析并执行用Java(注册商标)语言描述的程序的Java(注册商标)虚拟机。用Java(注册商标)语言描述的程序被编译为被称作字节码的、不依赖于硬件的中间码的指令序列(operation)。Java(注册商标)虚拟机122用分析、执行该字节码的软件实现。而且,一部分的Java(注册商标)虚拟机122是具有被称作将字节码翻译成第1CPU124能执行的执行形式的JIT(Just In Time)编译器的功能的部件。而且,一部分的Java(注册商标)虚拟机122由能直接执行一部分字节码的微处理器、及执行微处理器中不能直接执行的字节码的解释器构成。而且,在书籍《Java(注册商标)Language Specification(ISBN 0-201-63451-1)》等多部书籍中,详细地说明了Java(注册商标)语言,所以在此省略其详细说明。
Java(注册商标)虚拟机122由多个子程序构成。
图2是构成Java(注册商标)虚拟机122的子程序的一个例子。
如图2所示,Java(注册商标)虚拟机122由字节码解释器201、类加载器202、检验器203、Java(注册商标)堆管理器204、Java(注册商标)本机库205、JIT编译器206构成。
字节码解释器201是解释并执行被包含在类文件中的字节码的子程序,是在Java(注册商标)虚拟机122进行核心的处理的子程序。详细情况后述。
类加载器202从第1RAM125读出应用取得程序121已取得的Java(注册商标)应用100,变换成Java(注册商标)虚拟机122能执行的应用并再次写入第1RAM125,形成能执行类的状态。而且,类记载器202也进行类卸载处理。所谓“类卸载”处理,是从Java(注册商标)虚拟机122中去除执行结束而变为不需要的类的处理。
其中,所谓“类”是构成Java(注册商标)应用的基本单位,并被定义在书籍《Java(注册商标)Virtual Machine Specification(ISBN 0-201-63451-)》中。
图3是示出了被包含在类中的信息的概要的图。
在《Java(注册商标)Virtual Machine Specification》中的规定中,类也包括未表示在图3中的信息,但为了简化说明,在此仅说明与本发明有关的项目。
类结构信息301包括该类保持的域(field)、方法(method)、继承哪一类(class)等与类的结构有关的信息。
常数池302是将与用应用(类)定义的常数(constant)有关的数据汇总的数据,包含由类定义或从该类参照的其他类的域、方法、类的名称等信息。将类结构信息301和常数池302统称为类的元信息(或简单称作“元信息”)。
字节码303是将在类中执行的方法的处理描述为中间语言的指令的序列。在字节码303中不包含与应用所处理的数据有关的信息。因此,在Java(注册商标)应用的执行中,一般执行处理不能仅用字节码303,而是在具有定义了数据部分的常数池302后能够开始进行执行处理。有关类中包含的上述各信息的例子将以后说明。
返回图2,检验器203判断类的数据形式的不完备、或类中包含的字节码的安全性。由于用Java(注册商标)Virtual MachineSpecification定义,所以省略字节码的安全性的检查方法的详细说明。
类加载器202不加载被检验器203判断为不妥当的类。
Java(注册商标)堆管理部204进行被称作Java(注册商标)堆的、Java(注册商标)应用所使用的工作存储器的确保。Java(注册商标)堆被确保在第1RAM125内。而且,Java(注册商标)堆管理部204进行碎片收集。在此,所谓碎片收集(garbage collection),是指在应用执行中开放不需要的工作存储器、再用于其他用途的公知技术而言,省略其详细说明。
Java(注册商标)本机库205是由Java(注册商标)应用调用的库,向Java(注册商标)应用提供由OS123或应用执行装置110具备的图1中未记载的硬件、子程序等提供的功能。
JIT编译器206将字节码303翻译成第1CPU124或第2CPU134能理解的执行形式。
以上,结束了基于图2的Java(注册商标)虚拟机122的概要的说明。
再次回到图1,OS123是应用执行装置110的电源接通和第1CPU124启动的基本软件。OS123是操作系统的略语,Linux是一个例子。OS123是平行于程序并执行的内核和库构成的公知技术的总称,省略其详细说明。OS123将Java(注册商标)虚拟机122作为子程序执行。
第1CPU124按照Java(注册商标)虚拟机122、OS123、应用取得程序121、通过应用取得程序121的执行所取得的应用100的各程序执行处理。
第1RAM125将通过应用取得程序121的执行所取得的应用程序作为类文件存储,并存储被解密的Java(注册商标)虚拟机122。而且,第1CPU124进行处理时,暂时保存数据。而且,在从第1CPU124向第2CPU134委托执行时的、两CPU间的数据转交中使用。第1RAM125例如由SRAM、DRAM等一次存储构成。
第1ROM126对被加密的Java(注册商标)虚拟机401等进行存储。存储由第1CPU124指示的数据或程序。第1ROM126具体由闪速存储器或硬盘等非易失性存储器构成。
图4是表示第1ROM126存储着的内容的一个例子的图。
第1ROM126包括被加密的Java(注册商标)虚拟机401、被加密的应用取得程序402、被加密的元信息管理部403、启动类名404。
图5是表示应用取得程序402的构成的图。
应用取得程序402由子类501~503等多个类构成。各子类被加密。
启动类名404是作为Java(注册商标)虚拟机122启动时最初执行的程序的类的名称。在本实施方式中,在加密化启动类名404中指定着子类501。而且,第1ROM126也可以存储图4所示以外的数据。
接着,对安全执行部130的各构成要素进行说明。
元信息管理部131是对被加载到Java(注册商标)虚拟机122中的类所包含的元信息进行管理,根据字节码解释器201的请求来参照处理该信息,并提供其结果的程序。以后对元信息管理部131详细地说明。
Java(注册商标)虚拟机加载器132在应用执行装置110的电源接通后,第1CPU124进行用于成为能执行Java(注册商标)虚拟机122的状态的处理。以后对Java(注册商标)虚拟机加载器132详细地说明。
解密处理部133是对第1RAM125或第1ROM126存储的被加密的信息(应用、Java(注册商标)虚拟机122等)进行解密,并将解密结果写入第1RAM125的程序。用于加密的算法能使用任意的加密算法。
用于上述解密的密钥使用被存储在第2ROM136中的加密密钥701。
第2CPU134按照元信息管理部131、Java(注册商标)虚拟机加载器132、解密处理部133的各程序来执行处理。
第2RAM135存储后述的类结构信息301、常数池302和类ID对应表。而且,第2CPU134进行处理时,为了暂时保存数据而使用。
例如,仅能从由DRAM或SRAM等构成的第2CPU134访问第2RAM135,而不能从第1CPU124读取被存储在第2RAM135中的信息或者写入。而且,也可以在CPU134中混载着第2RAM135。
在通常执行部120动作的程序例如是在Java(注册商标)虚拟机122和安全执行部130动作的程序,例如,元信息管理部131为了共同动作而需要在两者之间交换信息。
图6是Java(注册商标)虚拟机122例如向元信息管理部131指示处理时的流程图。
在图6中,Java(注册商标)虚拟机122将交给元信息管理部131的信息存储到第1RAM125的预定地址(S601)。接着,Java(注册商标)虚拟机122通过第1CPU124向第2CPU134指示元信息管理部131的执行(S602)。元信息管理部131从第1RAM125的预定地址,读出Java(注册商标)虚拟机122在S601存储的数据(S603),使用该数据进行预定的处理(S604)。
接着,元信息管理部131将在S604得到的处理结果写入第1RAM125的预定地址(S605)。接着,元信息管理部131通过第2CPU134向第1CPU124指示Java(注册商标)虚拟机122的执行(S606)。接着,Java(注册商标)虚拟机122从第1RAM125的预定地址,读出元信息管理部131在S604进行的处理的结果。
通过如上所述地执行,将基于不能从第1CPU124直接参照的信息的处理,指示给在安全执行部130内动作的程序并接受信息。
第2ROM136由读出专用的非易失性存储器构成,保证不能从第2CPU134以外读出第2ROM136所存储的信息。
图7是表示第2ROM136存储的信息的一个例子的图。
在图7的第2ROM136中,第1ROM126存储的Java(注册商标)虚拟机401存储用于对被包含在应用取得程序402中的子类501~503进行解密的解密密钥701。在本实施方式中,解密Java(注册商标)虚拟机401、应用取得程序402、启动类名404的密钥仅为解密密钥701这一个,但本发明分别使用不同的密钥也能实施。而且,第2ROM136也可以存储图7未示出的其他数据。
而且,解密密钥701是为了对由应用取得程序121取得的被加密的应用100的解密用的被加密的解密密钥进行解密而使用的。应用100的被解密的解密密钥也存储在第2ROM136中。
而且,在本实施方式中,应用执行装置110虽然具备两个CPU,但一个CPU也可以通过切换动作模式等方法虚拟地实现两个CPU。在能改变动作模式的CPU中,例如有Intel公司的LaGrande。该CPU具有被称作通常模式和安全模式的两个动作模式。被构成为不能从以通常模式工作的程序盗听、篡改安全模式上动作的程序。ARM公司和AMD公司电发布了具有同样功能的CPU。
而且,在本实施方式中,元信息管理部131、Java(注册商标)虚拟机加载机132、解密处理部133作为在第2CPU134中执行的程序,但也可以用LSI实现这些功能。
而且,第1RAM125、第2RAM135也可以是将一个RAM虚拟地处理为两个RAM,而且,第1ROM126、第2ROM136也可以是将一个ROM虚拟地处理为两个ROM。
而且,也可以由硬件来实现安全执行部130的整体或部分。此时,第1CPU124和第2CPU134之间的数据通信加密进行,防止第三者的盗听。这通过将数据发送给连接两个CPU的数据总线(未图示)时进行加密并在发送数据后进行解密而进行。
而且,安全执行部130也可以像智能卡和IC卡那样是能从应用执行装置110取下的装置。智能卡、IC卡是卡内部包含CPU、存储器和安全电路的公知技术,省略其详细说明。此时,通常执行部120和安全执行部130之间的数据传输是使用SAC(Secure AuthenticatedChannel)等技术,防止第三者的盗听的同时进行的。SAC是用于安全地进行IC卡和外部设备的相互认证、以及加密密钥的共有的公知技术。
而且,安全执行部130的软件也可以是利用防篡改软件技术保护的软件。
接着,对应用执行装置110保护Java(注册商标)应用不被盗听、篡改的同时执行的方法进行说明。
Java(注册商标)应用执行装置110的电源通电后,第1CPU124启动OS123。OS123启动后,通过第1CPU124对第2CPU134指示加载Java(注册商标)虚拟机加载器132。通过第2CPU134启动的Java(注册商标)虚拟机加载器132按照一定顺序将Java(注册商标)虚拟机122加载至第1RAM125,将元信息管理部131加载至第2RAM135。
图8是表示加载Java(注册商标)虚拟机122和元信息管理部131的步骤的图。
在图8中,在S801,Java(注册商标)虚拟机加载器132使用解密处理部133,将被存储在第1ROM126中的Java(注册商标)虚拟机401解密至第1RAM125。
图9是表示解密处理部133对被加密的Java(注册商标)虚拟机401进行解密时的处理步骤的图。
在图9中,解密处理部133通过第2CPU133读出第1ROM126存储的被加密的Java(注册商标)虚拟机401(S901)。
解密处理部133从第2ROM136取得解密密钥701(S902),判定Java(注册商标)虚拟机401的解密结果的输出目的地(S903)。输出目的地是第1RAM时,将被解密的Java(注册商标)虚拟机122通过第2CPU134存储在第1RAM125中(S904),而输出目的地是第2RAM时,存储在第2RAM135中(S905)。
返回图8,Java(注册商标)虚拟机加载器132向解密处理部133指示,将被存储在第1RAM126中的元信息管理部404解密至第2RAM135(S802)。Java(注册商标)虚拟机加载器132向OS123通知加载的结束(S803)。
OS123从Java(注册商标)虚拟机加载器132接受加载结束通知,开始Java(注册商标)虚拟机122的执行。Java(注册商标)虚拟机122的执行开始时,调用类加载器202,类加载器202参照被存储在图4所示的第1RAM126中的启动类名404,加载由启动类名404指定的类。
图10是表示以指定了图5的应用取得程序402的子类501作为启动类名404时为例,类加载器202加载子类501的处理步骤的流程图。
首先,类加载器202向解密处理部133指示进行存储在第1RAM126中的被加密的子类501的解密处理(S1001)。接着,向检验器203指示检验第1RAM125的被解密的子类(S1002)。类加载器202从第1RAM125的被解密的子类抽取元信息(类结构信息301、常数池302)(S1003),抽取后从子类中删除元信息,将该元信息写出到第1RAM125,调用元信息管理部131(S1004)。元信息管理部131从第1RAM125读取元信息,复制至第2RAM135。基于元信息管理部131进行的元信息的复制结束时,类加载器202从第1RAM125中删除该元信息(S1005)。
如上所述,类加载器202不仅对应用取得程序,而且对由应用取得程序121取得的应用的类进行同样的处理,将类的元信息仅存储至安全的第2RAM135。
通过如上所述的构成,在应用执行时,类的元信息可以存储至不能用调试器等读出也不能写入的区域。
接着,对字节码解释器201、元信息管理部131保护类不被盗听、篡改的同时进行执行的处理的例子进行说明。而且,由于在《Java(注册商标)Virtual Machine Specification》中详细地说明了类的结构和字节码解释器201的动作,所以简单地说明与本实施方式关联深的地方。
图11是表示由Java(注册商标)语言描述的类文件的一个例子的图。
类名1101是该类的名称,例如类的名称是Sample。域1102是Sample类定义的域。域1102能作为对方法执行时的计算结果的值进行存储的区域。方法1103和方法1104是Sample类定义的两个域。其中,所谓“方法”是指定义了类的处理内容。
用Java(注册商标)语言定义了类的源文件1100通过Java(注册商标)编译器变换为类文件300。所变换的类文件300由类结构信息301、常数池302、字节码303构成。
图12是表示类1100被编译时的类文件300的常数池302的图。
列1201是表示常数池302的项目号码的索引,常数池302的参照由索引表现。列1202是常数池的类型。常数池根据记录的信息的种类确定类型。列1203是常数池的值。
例如,索引1意为在由索引3的类说明的类中,参照索引13表示的方法。索引3表示CONSTANT_Class参照类。索引3是参照具有索引15的名称的类,索引15的CONSTANT_Utf8表示类、方法、域的名称。在类15的例子中,类的名称是“Sample”。索引13的CONSTANT_NameAndType表示方法和域的名称与类型描述符的参照。所谓“类型描述符”是指用字符串来表现域的类型、方法的自变量、返回值的类型。在索引13的例子中,该常数池302的名称为索引18、类型描述符为索引18。其值分别为“<init>”、“()V”。也就是说,索引1的方法参照变为参照名称为“<init>”、类型描述符为“()V”的方法。而且,索引2的CONSTANT_FieldRef表示该常数池302参照域。索引2参照由类“Sample”定义的、名称为“field”、类型描述符为“I”的域。
图13是类1100的类结构信息301的一部分。this_class1301参照类1100的名称。类的名称被记录在常数池302的索引15中。super_class1302是类1100的母类。filed_count1303表示由类1100定义的域的数量。域是可以存储方法的处理结果等的区域。域信息1304记录着由类1100定义的域的名称、访问权等信息。method_count1305表示由类1100定义的方法的数量。方法信息1306记录着由类1100定义的方法的名称、字节码的地址等。
图14是由类1100定义的方法1104的字节码303。从字节码303使用常数池302访问类、域、方法。例如,指令1401参照索引3的常数池302。
在字节码303的执行时,若有参照常数池302的指令、即图14中通过#记号来指定常数池302的索引的指令,则字节码解释器201向元信息管理部131委托常数池解决处理,使用通过常数池解决处理得到的信息进行指令的处理。字节码解释器201单独地执行没有指定常数池302的索引的指令。其中,所谓“常数池解决处理”是指调查在常数池302中由字符串表现的类、域、分类存储在第1RAM125内的哪个地址的处理。
图15是执行图14的指令1401的处理的流程图。
在图15中,字节码解释器201取出指令1401。指令1402是生成被存储在常数池302的索引3的位置上的类型的目标的指令。由于第2RAM135存储着常数池302,所以字节码解释器201不能访问常数池302。因此,字节码解释器201向元信息管理部131通知指令1401的内容(S1501)。元信息管理部131读出指令1401,用指令1401参照的索引3,检索第2RAM135存储的常数池302(S1502)。在本实施方式中,得到类名“Sample”。
接着,元信息管理部131根据“Sample”类的类结构信息301计算目标的大小(S1503)。在此,根据该类说明的域的数量和类型描述符来计算目标的大小。例如,“Sample”类的情况下,具有一个int类型的域,所以目标大小变为4(字节)。
接着,元信息管理部131生成表示“Sample”类的类ID(S1504)。类ID是为了识别所生成的目标是从哪个类生成而使用的信息。类ID例如可以使用32比特的整数值实现。元信息管理部131将类ID与由类名代表的类结构信息301之间的对应关系,存储在第2RAM134所存储的类ID对应表中。
图16是表示类ID对应表的一个例子的图。列1610表示类名,列1611表示类ID。例如在行1601的例子中,由“Sample”的类名代表的类结构信息301表示类ID与“1”建立对应。
返回图15,元信息管理部131将在S1603计算的目标大小和在S1504生成的类ID存储至第1RAM126,通知至字节码解释器201(S1505)。然后,字节码解释器201确保所通知的目标大小的量的存储器(S1506),在目标头中记录所通知的类ID(S1507)。其中,目标头是记录与目标有关的各种信息的区域。
通过以上的处理,字节码解释器201不知道元信息而能执行指令1401。此时,即使有恶意的第三者尝试盗听常数池302的内容,由于常数池302记录在第2RAM135中,所以不能盗听。而且,即使有恶意的第三者尝试盗听字节码解释器201与元信息管理部131之间的通信内容,也仅能得到常数池302的索引和要确保的目标大小,常数池的内容不泄漏。也就是说,能对有恶意的第三者藏匿常数池302的内容。
而且,在类ID对应表1600中,类ID和类结构信息301的对应不需要一定一一对应。
图17是表示多个类ID对应于一个类结构信息301的例子的图。通过如上所述的构成,在调试器等工具盗听第1RAM125时,分析哪个目标对应于哪个类变得困难。
接着,指令1402~指令1403由于不含对常数池302的参照,所以字节码解释器201能不调用元信息管理部131地执行指令。指令1404是伴随对常数池132的参照的指令。指令1404是第2RAM135存储的常数池302的索引2的位置上的类名、用方法表示的方法的字节码的指令。
图18是字节码解释器201执行指令1404的处理的流程图。
字节码解释器201取得指令1404,向元信息管理部131通知指令1404的内容、接收目标的地址(S1801)。
在此,所谓“接收目标”是执行方法的对象的目标。在Java(注册商标)语言中,方法的处理使用接收目标存储的域进行。元信息管理部131从第2RAM134存储的类ID对应表1600中检索被存储在接收目标的目标头中的类ID,检索与类ID对应的类结构信息301(S1802)。如图16所示,由于类ID是“1”,所以图13的类结构信息301被检索。
接着,元信息管理部131从常数池302检索索引4,得到方法名“<init>”和类型描述符“()V”(S1803)。接着,元信息管理部131根据在S1802检索到的类结构信息301中所包含的方法信息1306,检索具有在S1803中检索到的方法名和类型描述符的方法,得到其字节码地址(S1804)。接着,元信息管理部131将在S1804中得到的字节码地址通知至解释器201(S1805)。字节码解释器201执行从元信息管理部131通知的字节码地址(S1806)。
通过以上的动作,字节码解释器201可以不知道元信息就能执行指令1404。此时,即使有恶意的第三者尝试盗听常数池302的内容,由于常数池302被记录在第2RAM135中,所以不能盗听。而且,即使有恶意的第三者盗听字节码解释器201和元信息管理部131间的通信内容,也仅得到常数池302的索引和接着要执行的字节码地址,常数池的内容不泄漏。也就是说,有恶意的第三者能藏匿常数池302的内容。
接着,指令1405~指令1406不含对常数池302的参照,所以字节码解释器201能不调用元信息管理部131地执行指令。
指令1407是伴随对常数池302的参照的指令。指令1407被存储在第2RAM135存储的常数池302的索引2的位置上。是读出类名、由域名表示的域的指令。由于第2RAM135存储常数池302,所以字节码解释器201不能访问常数池302。图19是字节码解释器201执行指令1407的处理的流程图。
字节码解释器取得指令1407后,调用元信息管理部131,通知指令1407的内容、以及处于指令1407即将执行之前的Java(注册商标)堆栈的最上位的目标的地址(S1901)。
在此,有关Java(注册商标)堆栈,请参照《Java(注册商标)Virtual Machine Specification》”。
元信息管理部131从第2RAM134存储的类ID对应表1600中检索所通知的目标的目标头中存储的类ID,检索与类ID对应的类结构信息301(S1902)。在本实施方式中,类ID是“1”,所以检索类结构信息301。
接着,元信息管理部131从常数池302检索索引2,得到域名“field”和类型描述符“I”(S1903)。接着,元信息管理部131根据在S1902中检索的类结构信息301中包含的域信息1304,检索具有在S1903中检索的域名和类型描述符的域,得到该域的地址(S1904)。接着,元信息管理部131向第1RAM125存储在S1904中得到的域地址,将该地址通知至字节码解释器201(S1905)。字节码解释器201读取从元信息管理部131通知的域地址(S1906)。
通过以上的动作,字节码解释器201不知道元信息也能执行指令1407。此时,即使有恶意的第三者尝试盗听常数池302的内容,由于常数池302被记录在第2RAM135中,所以不能盗听。而且,即使有恶意的第三者尝试盗听字节码解释器201和元信息管理部131间的通信的内容,也仅能得到常数池302的索引和用于读出数据的域的地址,常数池的内容不泄露。也就是说,可以对有恶意的第三者藏匿常数池302的内容。
如以上说明的那样,由于元信息(类结构信息301、常数池302)仅存储在调试器不能访问的第2RAM134中,所以即使有恶意的第三者使用调试器等工具尝试非法复制Java(注册商标)应用,也不能得到元信息。而且,在执行Java(注册商标)应用时,即使尝试盗听、篡改数据也不能读出元信息,所以无论盗听、篡改哪个方法和数据都可以,攻击变得非常困难。
而且,应用取得程序121、Java(注册商标)虚拟机122通过用第1CPU124执行的软件实现,但是当然也可以用LSI等硬件实现。
(实施方式2)
在上述实施方式中,类加载器202和检验器203作为Java(注册商标)虚拟机122的子程序由通常执行部120动作。因此,图10所示的类加载处理的S1001结束后到S1005之间,用调试器等工具盗听第1RAM125,从而存在元信息泄漏的问题。在本实施方式2中,通过用安全执行部130使类加载器203、检验器203动作来解决该问题。
图20是表示本实施方式2的应用执行装置的构成的框图。
本实施方式的应用执行装置2010与实施方式1的应用执行装置110相比较,第1Java(注册商标)虚拟机2022、第2Java(注册商标)虚拟机2032、解密处理部2034不同。其他结构要素与实施方式1相同,所以省略说明。
图21是表示第1Java(注册商标)虚拟机2022、第2Java(注册商标)虚拟机2032的子程序的构成的图。
为了通过安全执行部2030执行,设定类加载器2106、检验器2107为第2Java(注册商标)虚拟机2032的子程序。
而且,如图22所示,第1ROM2026存储第1Java(注册商标)虚拟机2201、第2Java(注册商标)虚拟机2202。
图23是表示Java(注册商标)虚拟机加载器2033加载第1Java(注册商标)虚拟机2022、第2Java(注册商标)虚拟机2032的处理步骤的流程图。
在图23的S2301中,Java(注册商标)虚拟机加载器2033指示向解密处理部2034解密第1Java(注册商标)虚拟机2201,并将结果输出到第1RAM2036。
然后,Java(注册商标)虚拟机加载器2033对解密处理部2034解密第2Java(注册商标)虚拟机2202,将结果输出至第2RAM2036(S2302)。最后,通知OS2023加载结束(S2303)。
以上,可以加载Java(注册商标)虚拟机。
类的加载处理在用安全执行部2010执行类加载器2106、检验器2107的动作以外,与实施方式1相同,所以省略说明。而且,类的执行处理也与实施方式1相同,所以省略说明。
通过以上这样的构成,类的加载处理的处理过程中也能防止被解密的元信息的基于调试器等工具的盗听、篡改。
而且,在实施方式1和实施方式2中,虽然以执行Java(注册商标)应用的应用执行装置为例进行了说明,但本发明也能适用于用具有元信息的其他语言描述的应用。例如,用ECMA标准化的C#语言采用如下方式:被称作CLI(Common Language Infrastructure)的虚拟机(相当于Java(注册商标)的Java(注册商标)虚拟机)执行被称作CLI(Common intermediate Language)的中间语言(相当于Java(注册商标)的字节码)。C#语言的元信息用ECMA-355规格的Partition II定义。
而且,在实施方式1、实施方式2中,将类文件所含所有元信息仅存储至第2RAM135中,但也可以将一部分元信息存储至第1RAM125。此时,有关存储至第1RAM125的信息,可能被调试器等工具分析,但由于能削减通常执行部120和安全执行部130的相互作用,所以可以更快地执行应用。
仅一部分元信息不能恢复完全的类,但通过根据得到的元信息推定其他的元信息,有可以恢复完全的类的可能性。隐藏多少的元信息就足够了,也可以根据执行程序所求得的保护要件决定。
产业上的利用可能性
本发明涉及的应用执行装置通过将应用的执行、分析所不可缺少的元信息隐蔽至盗听、篡改困难的安全执行部,可以保护执行应用时不被盗听、篡改,能在应用的下载分发业务中保护内容制作者的权利。

Claims (9)

1.一种应用执行装置,以类为单位执行已取得的应用,其特征在于,具备:
元信息存储单元,对类文件中所包含的元信息进行存储;
指令序列存储单元,对类文件中所包含的指令序列进行存储;
指令执行单元,没有要参照的信息时执行指令,有要参照的第1信息时请求并使用所通知的第2信息执行指令;以及
元信息执行单元,按照上述指令执行单元的请求根据上述元信息生成第2信息,通知上述指令执行单元;
仅上述元信息执行单元能读出存储在上述元信息存储单元中的元信息,上述元信息执行单元仅接受上述指令执行单元的请求。
2.如权利要求1记载的应用执行装置,其特征在于,
上述元信息存储单元存储常数池和类结构信息,该常数池记载有索引和常数池的类型及其值,该类结构信息记载有项目及其值;
上述指令序列存储单元存储由类定义的方法的字节码;
在上述指令执行单元执行在字节码中指定作为第1信息的常数池的索引的指令时,上述元信息执行单元按照该指令的种类参照上述常数池和类结构信息生成第2信息。
3.如权利要求2记载的应用执行装置,其特征在于,
上述指令执行单元执行的字节码是新目标的生成时,
上述元信息执行单元从上述常数池中检索与所指定的索引相对应的常数池的类型,参照上述类结构信息来生成存储器大小。
4.如权利要求2记载的应用执行装置,其特征在于,
上述指令执行单元执行的字节码是方法的调用时,
上述元信息执行单元从上述常数池中检索与所指定的索引相对应的常数池的类型,参照上述类结构信息来生成上述方法的地址。
5.如权利要求2记载的应用执行装置,其特征在于,
上述指令执行单元执行的字节码是参照目标的域时,
上述元信息执行单元从上述常数池中检索与所指定的索引相对应的常数池的类型,参照上述类结构信息来生成上述域的地址。
6.如权利要求1记载的应用执行装置,其特征在于,
上述取得的应用被加密;
还具备解密单元,该解密单元解密上述被加密的应用,将被解密的指令序列存储在上述指令序列存储单元中,将被解密的元信息存储在上述元信息存储单元中。
7.如权利要求6记载的应用执行装置,其特征在于,
上述解密单元使用不能从外部直接访问的密钥存储单元中存储的解密密钥来解密上述应用。
8.如权利要求1记载的应用执行装置,其特征在于,
上述应用是Java应用,上述Java是注册商标。
9.一种以类为单位执行已取得的应用的应用执行装置的应用执行方法,其特征在于,具备以下步骤:
元信息记录步骤,对类文件中所包含的元信息进行记录;
指令序列记录步骤,对类文件中所包含的指令序列进行记录;
指令执行步骤,没有要参照的信息时执行指令,有要参照的第1信息时请求并使用所通知的第2信息执行指令;以及
元信息执行步骤,按照上述指令执行步骤的请求根据上述元信息生成第2信息,通知上述指令执行步骤;
仅上述元信息执行步骤能读出在上述元信息记录步骤中记录的信息,上述元信息执行步骤仅接受上述指令执行步骤的请求。
CNB2005800239596A 2004-07-16 2005-07-14 应用执行装置及应用执行装置的应用执行方法 Expired - Fee Related CN100465982C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP210764/2004 2004-07-16
JP2004210764 2004-07-16

Publications (2)

Publication Number Publication Date
CN101014959A true CN101014959A (zh) 2007-08-08
CN100465982C CN100465982C (zh) 2009-03-04

Family

ID=35785194

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800239596A Expired - Fee Related CN100465982C (zh) 2004-07-16 2005-07-14 应用执行装置及应用执行装置的应用执行方法

Country Status (4)

Country Link
US (1) US20070271446A1 (zh)
JP (1) JPWO2006009081A1 (zh)
CN (1) CN100465982C (zh)
WO (1) WO2006009081A1 (zh)

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US9027135B1 (en) 2004-04-01 2015-05-05 Fireeye, Inc. Prospective client identification using malware attack detection
US8375444B2 (en) 2006-04-20 2013-02-12 Fireeye, Inc. Dynamic signature creation and enforcement
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8539582B1 (en) 2004-04-01 2013-09-17 Fireeye, Inc. Malware containment and security analysis on connection
WO2008010508A1 (fr) * 2006-07-18 2008-01-24 Panasonic Corporation dispositif de génération de commande
JP2009258772A (ja) * 2006-08-09 2009-11-05 Panasonic Corp アプリケーション実行装置
US8997219B2 (en) * 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9009822B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9824209B1 (en) 2013-02-23 2017-11-21 Fireeye, Inc. Framework for efficient security coverage of mobile software applications that is usable to harden in the field code
US9565202B1 (en) 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
WO2014145805A1 (en) 2013-03-15 2014-09-18 Mandiant, Llc System and method employing structured intelligence to verify and contain threats at endpoints
US9251343B1 (en) 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US9536091B2 (en) 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9888016B1 (en) 2013-06-28 2018-02-06 Fireeye, Inc. System and method for detecting phishing using password prediction
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US10089461B1 (en) 2013-09-30 2018-10-02 Fireeye, Inc. Page replacement code injection
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US10192052B1 (en) 2013-09-30 2019-01-29 Fireeye, Inc. System, apparatus and method for classifying a file as malicious using static scanning
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9292686B2 (en) 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
TWI502400B (zh) * 2014-07-30 2015-10-01 Elan Microelectronics Corp 微處理器及其資料保密方法
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10554507B1 (en) 2017-03-30 2020-02-04 Fireeye, Inc. Multi-level control for enhanced resource and object evaluation management of malware detection system
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
CN111159662A (zh) * 2019-12-25 2020-05-15 郑州阿帕斯数云信息科技有限公司 一种数据的处理方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3683031B2 (ja) * 1996-04-17 2005-08-17 株式会社リコー プログラム保護装置
US5940820A (en) * 1996-09-24 1999-08-17 Fujitsu Limited GUI apparatus for generating an object-oriented database application
AU7957998A (en) * 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
FR2790844B1 (fr) * 1999-03-09 2001-05-25 Gemplus Card Int Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme
JP4698182B2 (ja) * 2003-09-16 2011-06-08 株式会社リコー 電子装置、ネットワーク機器、管理方法、ソフトウェア更新方法、管理プログラム、ソフトウェア更新プログラム及び記録媒体
EP1783581A4 (en) * 2004-06-30 2010-08-25 Panasonic Corp PROVISION OF EXECUTION OF A PROGRAM AND METHOD OF EXECUTION
MX2007008543A (es) * 2005-01-13 2007-09-07 Samsung Electronics Co Ltd Dispositivo y metodo para manejo de derecho digital.

Also Published As

Publication number Publication date
WO2006009081A1 (ja) 2006-01-26
US20070271446A1 (en) 2007-11-22
JPWO2006009081A1 (ja) 2008-05-01
CN100465982C (zh) 2009-03-04

Similar Documents

Publication Publication Date Title
CN100465982C (zh) 应用执行装置及应用执行装置的应用执行方法
US20160364707A1 (en) Potentate: A Cryptography-Obfuscating, Self-Policing, Pervasive Distribution System For Digital Content
US8307215B2 (en) System and method for an autonomous software protection device
CN108491235B (zh) 结合动态加载和函数Native化的DEX保护方法
WO2013170724A1 (zh) 安卓系统中java应用程序的保护方法
EA012921B1 (ru) Способ и устройство защиты программного обеспечения от несанкционированного использования
WO1998011690A9 (en) Self-decrypting digital information system and method
WO1998011690A1 (en) Self-decrypting digital information system and method
CN106650327A (zh) 基于动态恢复so文件的Android应用加固方法
CN102118512A (zh) 一种手机应用程序防破解方法及系统
CN105683990A (zh) 用于保护动态库的方法和装置
CN109344616A (zh) 一种移动应用程序动态加载行为监控方法及装置
CN109657488A (zh) 一种资源文件加密处理方法、智能终端及存储介质
CN105303074A (zh) 一种保护Web应用程序安全的方法
US20130283396A1 (en) System and method for limiting execution of software to authorized users
KR20110013192A (ko) 실행형 컨텐츠의 분리 실행이 가능한 저장 장치 및 그의 네이티브 실행 환경 구현 장치
Castiglione et al. Automatic, selective and secure deletion of digital evidence
CN110597496B (zh) 应用程序的字节码文件获取方法及装置
CN109871327B (zh) 可信执行环境安全存储安全性测试方法及装置
US20190251232A1 (en) Software algorithm security
JP2008527518A (ja) 電子透かし機能を備えた携帯型データ担体
KR20160137222A (ko) 애플리케이션의 정보 은닉 방법 및 장치, 및 애플리케이션 실행 방법 및 장치
CN104866761B (zh) 一种高安全性安卓智能终端
CN104866760B (zh) 一种智能手机安全防护方法
JP6698775B2 (ja) 共有オブジェクトのコード保護のための保安提供装置と方法、及び保安実行装置と方法

Legal Events

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

Granted publication date: 20090304

Termination date: 20100714