WO2017049800A1 - 检测应用漏洞代码的方法和装置 - Google Patents

检测应用漏洞代码的方法和装置 Download PDF

Info

Publication number
WO2017049800A1
WO2017049800A1 PCT/CN2015/099900 CN2015099900W WO2017049800A1 WO 2017049800 A1 WO2017049800 A1 WO 2017049800A1 CN 2015099900 W CN2015099900 W CN 2015099900W WO 2017049800 A1 WO2017049800 A1 WO 2017049800A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
vulnerability
application
statement
preset
Prior art date
Application number
PCT/CN2015/099900
Other languages
English (en)
French (fr)
Inventor
夏良钊
包沉浮
施敏
贾志军
Original Assignee
百度在线网络技术(北京)有限公司
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 百度在线网络技术(北京)有限公司 filed Critical 百度在线网络技术(北京)有限公司
Publication of WO2017049800A1 publication Critical patent/WO2017049800A1/zh

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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

一种检测应用漏洞代码的方法和装置,包括:获取所述应用的应用代码(201);将所述应用代码进行反编译,生成预定格式的中间代码(202);基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码(203);对所述中间代码执行针对所述可疑漏洞代码预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码(204)。可以提高检测应用漏洞代码的有效性。

Description

检测应用漏洞代码的方法和装置
相关申请的交叉引用
本申请要求于2015年09月23日提交的中国专利申请号为“201510613310.5”的优先权,其全部内容作为整体并入本申请中。
技术领域
本申请涉及计算机技术领域,具体涉及代码检测技术领域,尤其涉及检测应用漏洞代码的方法和装置。
背景技术
漏洞是指一个系统存在的弱点或缺陷,系统对特定威胁攻击或危险事件的敏感性,或进行攻击的威胁作用的可能性。漏洞可能来自应用软件或操作系统设计时的缺陷或编码时产生的错误,也可能来自业务在交互处理过程中的设计缺陷或逻辑流程上的不合理之处。这些缺陷、错误或不合理之处可能被有意或无意地利用,从而对一个组织的资产或运行造成不利影响,如信息系统被攻击或控制,重要资料被窃取,用户数据被篡改,系统被作为入侵其他主机系统的跳板。其中,产生这些缺陷、错误或不合理之处的代码可以被称作漏洞代码。
然而,现有的检测应用漏洞代码的方法,一般限于通过静态分析或动态分析方法发现漏洞代码,而对于漏洞代码的检验和修复,往往缺乏有效的机制。对于应用的开发者不能及时发现或修复漏洞代码,运行存在漏洞代码的应用的终端将面临被攻击或控制的威胁。因此,这种检测应用漏洞代码的方法存在漏洞代码检测的有效性较低的问题。
发明内容
本申请的目的在于提出一种改进的检测应用漏洞代码的方法和装 置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种检测应用漏洞代码的方法,所述方法包括:获取所述应用的应用代码;将所述应用代码进行反编译,生成预定格式的中间代码;基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码;对所述中间代码执行针对所述可疑漏洞代码预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码。
在一些实施例中,所述基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码包括:根据所述中间代码的函数调用关系生成调用路径;按照各调用路径上的调用关系,对所述中间代码的语句与预设的漏洞特征语句进行匹配;如果在一条调用路径上匹配到预设数量的漏洞特征语句,确定所述中间代码中包含与预设的漏洞特征语句相匹配的语句,并确定所述应用包含可疑漏洞代码。
在一些实施例中,所述方法还包括:如果确定所述可疑漏洞代码为确切漏洞代码,基于预设的修复规则修复所述中间代码。
在一些实施例中,所述方法进一步包括:如果确定所述可疑漏洞代码为确切漏洞代码,呈现所述确切漏洞代码的漏洞名称;响应于确定对所述确切漏洞代码进行修复的操作,基于预设的修复规则修复所述中间代码。
在一些实施例中,所述预设的修复规则包括:将所述中间代码中与预设的漏洞特征语句相匹配的语句修改为预设的修复语句;和/或,在中间代码中增加预设的语句;和/或,在中间代码中删除与预设的漏洞特征语句相匹配的代码。
在一些实施例中,所述方法还包括:对修复后的中间代码进行编译,生成修复应用代码。
在一些实施例中,所述对所述中间代码执行针对所述可疑漏洞代码预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码包括:对所述中间代码执行针对所述可疑漏洞代码预设的验 证代码;检验所述执行结果是否为漏洞行为结果,若是,确定所述可疑漏洞代码为确切漏洞代码。
在一些实施例中,所述应用代码包括以下至少一项:源代码、安装包代码或软件工具开发包代码。
第二方面,本申请提供了一种检测应用漏洞代码的装置,所述装置包括:获取模块,配置用于获取所述应用的应用代码;反编译模块,配置用于将所述应用代码进行反编译,生成预定格式的中间代码;检测模块,配置用于基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码;验证模块,配置用于对所述中间代码执行针对所述可疑漏洞代码预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码。
在一些实施例中,所述检测模块包括:调用路径生成单元,配置用于根据所述中间代码的函数调用关系生成调用路径;匹配单元,配置用于按照各调用路径上的调用关系,对所述中间代码的语句与预设的漏洞特征语句进行匹配;确定单元,配置用于如果在一条调用路径上匹配到预设数量的漏洞特征语句,确定所述中间代码中包含与预设的漏洞特征语句相匹配的语句,并确定所述应用包含可疑漏洞代码。
在一些实施例中,所述装置还包括:修复模块,配置用于如果确定所述可疑漏洞代码为确切漏洞代码,基于预设的修复规则修复所述中间代码。
在一些实施例中,所述修复模块进一步包括:呈现单元,配置用于如果确定所述可疑漏洞代码为确切漏洞代码,呈现所述确切漏洞代码的漏洞名称;修复单元,配置用于响应于确定对所述确切漏洞代码进行修复的操作,基于预设的修复规则修复所述中间代码。
在一些实施例中,所述预设的修复规则包括:将所述中间代码中与预设的漏洞特征语句相匹配的语句修改为预设的修复语句;和/或,在中间代码中增加预设的语句;和/或,在中间代码中删除与预设的漏洞特征语句相匹配的代码。
在一些实施例中,所述装置还包括:编译模块,配置用于对修复 后的中间代码进行编译,生成修复应用代码。
在一些实施例中,所述验证模块包括:执行单元,配置用于对所述中间代码执行针对所述可疑漏洞代码预设的验证代码;检验单元,配置用于检验所述执行结果是否为漏洞行为结果,若是,确定所述可疑漏洞代码为确切漏洞代码。
在一些实施例中,所述应用代码包括以下至少一项:源代码、安装包代码或软件工具开发包代码。
本申请提供的检测应用漏洞代码的方法和装置,通过获取所述应用的应用代码,接着将应用代码进行反编译,生成预定格式的中间代码,然后,基于中间代码中的函数调用关系,检测中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定应用包含可疑漏洞代码,并对中间代码执行针对可疑漏洞代码预设的验证代码,根据执行结果确定可疑漏洞代码是否为确切漏洞代码,由于通过静态的代码语句匹配和动态的验证代码验证相结合的检测方法,可以提高检测应用漏洞代码的有效性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了可以应用本申请实施例的示例性系统架构;
图2是根据本申请的检测应用漏洞代码的方法的一个实施例的流程图;
图3是根据本申请的检测应用漏洞代码的方法的一个应用场景的流程图;
图4是根据本申请的检测应用漏洞代码的方法的又一个实施例的流程图;
图5是根据本申请的检测应用漏洞代码的装置的一个实施例的结构示意图;
图6示出了适于用来实现本申请实施例的各装置的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、网络103和服务器104。网络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102可以通过网络103与服务器104交互,以接收或发送消息等。终端设备101、102上可以安装有各种通讯客户端应用,例如漏洞代码检测类应用、杀毒类应用、搜索类应用、社交平台应用、邮箱客户端、即时通信工具等。
终端设备101、102可以是支持漏洞代码检测类应用、杀毒类应用等安装于其上的各种电子设备,包括但不限于智能手机、智能手表、平板电脑、个人数字助理、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器104可以是提供各种服务的服务器。例如对终端设备101、102的检测应用漏洞代码类应用、杀毒类应用等提供支持的后台服务器等。服务器可以对接收到的数据进行存储、生成等处理,并将处理结果反馈给终端设备。
需要说明的是,本申请实施例所提供的检测应用漏洞代码的方法可以由终端设备101、102执行,也可以由服务器104执行,还可以由 终端设备101、102和服务器104分别执行其中的部分步骤,例如,可以通过终端设备101、102执行“获取应用的应用代码”,由服务器104执行“将应用代码进行反编译,生成预定格式的中间代码”等。相应地,检测应用漏洞代码的装置可以设置在终端设备101、102中,也可以设置在服务器104中,还可以在终端设备101、102和服务器104中分别设置其中的部分模块。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
请参考图2,其示出了检测应用漏洞代码的方法的一个实施例的流程200。该检测应用漏洞代码的流程200具体可以应用于电子设备中,该电子设备可以是具有运行终端应用能力的终端设备(例如图1所示的终端设备101、102),也可以是为终端设备上运行的检测应用漏洞代码类应用提供支持的后台服务器(例如图1所示的服务器104)中,本申请对此不做限定。该流程200包括以下步骤:
步骤201,获取应用的应用代码。
在本实施例中,电子设备可以从本地或远程地获取应用的应用代码。具体而言,当电子设备时检测应用漏洞代码类应用运行于其上的终端设备时,其可以直接从本地获取上述应用代码;而当电子设备是对检测应用漏洞代码类应用进行支持的后台服务器时,其可以通过有线连接方式或者无线连接方式从终端设备获取上述应用代码。上述无线连接方式包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
在本实施例的一些可选实现方式中,电子设备所获取的应用代码可以是应用的源代码、安装包代码或软件工具开发包代码。其中,源代码是开发者编写应用的初始代码,如由C++编程语言表达的语句组成的代码;应用的安装包代码是用于在终端设备的操作系统中安装并执行的代码,如将应用的源代码编译形成的可执行代码(即机器语言代码,一般为二进制代码,例如安卓系统的安装包AndroidPackage,APK代码);工具开发包(Software Development Kit,SDK)是为特定 的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合,软件工具开发包往往封装了许多应用程序开发调用的函数,并通过应用程序编程接口(Application Programming Interface,API)的形式提供给编程者,软件工具开发包代码可以包括这些函数和接口。
步骤202,将应用代码进行反编译,生成预定格式的中间代码。
在本实施例中,电子设备接着可以通过静态分析手段将所获取应用代码进行编译或反编译,从而生成预定格式的中间代码。
编译可以是利用编译程序从源代码产生目标代码的过程。编译可以通过编译器来实现。编译器可以将汇编语言或高级计算机语言表达的源代码(Source program),翻译成目标语言(Target language)表达的机器代码。源代码一般为高级语言(High-level language),如Pascal、C、C++、Java、汉语编程语言或汇编语言等等,而机器语言也称作机器代码(Machine code),一般是二进制文件。编译器可以通过应用程序来实现,也可以通过硬件结构来实现。进一步地,反编译可以是编译的逆过程。
中间代码可以是通过某一种预定的编程语言表示的代码,例如Java语言表示的应用代码;也可以是能够表现应用代码的数据逻辑关系的其他代码。在一些实现中,应用代码可以是应用的源代码,此时,电子设备可以对应用代码进行编译,转换成中间格式代码。在另一些实现中,应用代码可以是应用的安装包代码,此时,电子设备可以对应用代码进行反编译,从而将应用代码转换成中间格式代码。对于应用代码包括软件工具开发包代码(可以为机器代码)的情况,电子设备可以对应用代码进行反编译,从而将应用代码转换成中间格式代码。
步骤203,基于中间代码中的函数调用关系,检测中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定上述应用包含可疑漏洞代码。
在本实施例中,电子设备接着可以通过各种静态分析方法对中间代码进行,生成中间代码的函数调用关系,进而根据这些函数调用关系检测中间代码中是否包含与预设的漏洞特征语句相匹配的语句。
在本实施例中,电子设备可以通过静态分析方法在不执行代码的 情况下对代码可能产生的行为进行分析。静态分析方法例如可以包括但不限于不可达代码(在任何情况下都运行不到的代码)去除方法、常量传播(constant propagation)方法等。其中,以不可达代码去除方法的一种实现为例,电子设备可以建立以数据结构链的形式表示的中间代码的控制流程图(Control flow graph,CFG),根据控制流程图确定孤立的节点部分的代码为不可达代码,进而将不可达代码去除。其中,数据结构链可以通过以下方法生成:从左至右按字符依次读入中间代码,对中间代码的字符流进行扫描,通过使用正则表达式匹配方法将应用代码转换为等价的符号流。这里,正则表达式匹配方法是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串的匹配方法。
进一步地,电子设备可以根据对中间代码的静态分析过程获取中间代码中所包含的函数之间的调用关系,并按照函数调用顺序将中间代码的语句与预设的漏洞特征语句进行匹配。其中,漏洞特征语句可以预先存储在电子设备上。漏洞特征语句可以与中间代码具有一致的语言规则和格式,例如两者都是通过Java语言代码表达的语句。这里,中间代码的语句与漏洞特征语句的匹配可以通过字符串匹配实现,可以将中间代码的语句与漏洞特征语句进行匹配,也可以是在中间代码的语句中查找漏洞特征语句的关键字,当查找到关键字时再进行整个语句的匹配,本申请对此不做限定。如果在中间代码的语句中检测到与漏洞特征语句相匹配的语句,电子设备可以确定所检测的应用包含可疑漏洞代码。可选地,电子设备可以保存所匹配到的漏洞特征语句的漏洞名称或类型,以及中间代码中包含的与漏洞特征语句相匹配的语句所在的位置等等。
漏洞特征语句可以通过多种途径获得,例如,通过对已知的漏洞代码及引起的漏洞行为进行分析,确定代码中引发漏洞行为的根源所在的代码语句,作为漏洞特征语句;或者,从现有的漏洞代码数据库中直接获取漏洞特征语句,等等,本申请对此不做限定。其中,在一些实现中,漏洞特征语句可以是代码中可以被利用以对系统进行攻击或控制的语句。例如,WINDOWS操作系统的USER32库的图像加载 (LoadImage)应用程序编程接口(Application Programming Interface,API)允许加载一个bmp、cur、ico或ani格式的图标来进行显示,并根据图片格式里给出的图片大小加4来进行数据的复制,如果将所给出的图片大小为0xfffffffc-0xffffffff的bmp、cur、ico或ani格式的文件嵌入到超文本标记语言(HyperText Markup Language,HTML)页面或邮件中,加载HTML页面或接受邮件的终端系统将由于触发整数溢出导致堆缓冲区被覆盖,进而系统权限可以被轻易获取。在该类型的漏洞中,可以将实现“API允许加载一个bmp、cur、ico或ani格式的图标来进行显示,并根据图片格式里给出的图片大小加4来进行数据的复制”的语句作为漏洞特征语句。在另一些实现中,漏洞特征语句也可以是不正确的参数设置语句,例如对于用于创建文件的API“openFileOutput(String name,int mode)”而言,如果应用开发者把mode参数设为MODE_WORLD_READABLE,则所创建的文件在创建之后可以被任意应用读取。在该漏洞代码中,可以将实现“把mode参数设为MODE_WORLD_READABLE”的语句作为漏洞特征语句。在实践中,还有其他多种类型的漏洞特征语句,在此不再一一例举。
步骤204,对上述中间代码执行针对可疑漏洞代码预设的验证代码,根据执行结果确定可疑漏洞代码是否为确切漏洞代码。
在本实施例中,由于静态分析误报率较高,如果确定所检测的应用包含可疑漏洞代码,电子设备可以进一步通过动态测试手段对该可疑漏洞代码进行验证,以确定其是否为确切漏洞代码。这里,确切漏洞代码可以表示真实存在的、在运行时可以使应用产生漏洞行为的代码。
其中,动态测试方法是通过运行代码对代码进行分析的方法。电子设备可以通过模拟器(simulator,例如仿真应用)、虚拟机或物理设备(physical device,包括硬件和操作系统所挂接的各种设备)运行所检测应用的应用代码或者根据应用代码生成的中间代码。
验证代码是对可疑漏洞代码进行验证的代码,例如是可以利用漏洞特征语句对应用代码进行攻击或破坏的代码。举例而言,对于拒绝服务的漏洞,例如安卓系统中,如果开发者使用了获取传入数据的API “getSerializableExtra()”,而没有对获取的传入数据做异常判断,则当该API“getSerializableExtra()”接收到应用代码中没有定义的对象时,会导致应用本地拒绝服务,则针对该漏洞代码的验证代码可以是向该API“getSerializableExtra()”传入空数据的Intent(意图,用于安卓应用的各项组件之间的通讯)。
电子设备可以根据对中间代码执行验证代码的执行结果与预设的执行结果相比较,以确定可疑漏洞代码是否为真实存在的漏洞代码,即确切漏洞代码。这里,预设的执行结果可以是可疑漏洞代码的漏洞行为结果,即应用代码包含漏洞代码时的执行结果,此时,如果执行结果包括预设的执行结果,则确定可疑漏洞代码为确切漏洞代码,否则,确定所检测的应用不包括通过静态分析方法获取的可疑漏洞代码;也可以是应用代码不包含漏洞代码时的执行结果,此时,如果执行结果包括预设的执行结果,则确定所检测的应用不包括漏洞代码,否则,确定可疑漏洞代码为确切漏洞代码。
在本实施例的一些可选实现方式中,对步骤203可以通过以下方法实现:首先,电子设备可以根据中间代码的函数调用关系生成调用路径,其中,每个函数可以调用多个函数,除了主函数外,每个函数也可以被多个函数调用,每条调用路径形成“函数A调用函数B—函数B调用函数C—函数C调用函数D……”的调用关系;接着,电子设备可以按照各调用路径上的调用关系,对中间代码的语句与预设的漏洞特征语句进行匹配,这里的匹配可以沿着调用路径进行,匹配方法与前述的匹配方法一致;然后,如果电子设备在一条调用路径上匹配到预设数量(如3条)的漏洞特征语句,则确定中间代码中包含与预设的漏洞特征语句相匹配的语句,并确定应用包含可疑漏洞代码。可选地,当电子设备在一条调用路径上匹配到的漏洞特征语句包括属于同一漏洞的预设数量的漏洞特征语句时,确定中间代码中包含与预设的漏洞特征语句相匹配的语句,并确定应用包含可疑漏洞代码。
继续参见图3,图3是根据本实施例的检测应用漏洞代码方法的应用场景的一个示意图。在图3的应用场景中,在步骤3001中,用户首先发起通过终端设备301向后台服务器302发起检测应用漏洞代码 的请求,在一些实现中,后台服务器302也可以主动请求检测终端设备301中的终端应用的应用漏洞代码,此时,步骤3001不是必需的;接着,通过步骤3002,后台服务器302从终端设备301获取待检测的终端应用的应用代码;然后通过步骤3003,后台服务器302对所获取的应用代码进行反编译,生成预定格式的中间代码;接着,通过步骤3004,后台服务器302通过静态分析手段获取中间代码中的函数调用关系,并将中间代码中的语句与预设的漏洞特征语句进行匹配,若匹配到与漏洞特征语句相同的语句,确定终端应用中包含可疑漏洞代码;然后,在步骤3005中,后台服务器302通过动态分析方法对中间代码执行针对检测到的可疑漏洞代码预设的验证代码,根据执行结果确定可疑漏洞代码是否为确切漏洞代码,并且,在一些实现中,后台服务器302可以通过步骤3006向终端设备301呈现验证结果。
本申请的上述实施例提供的方法通过静态检测可疑漏洞代码和动态验证可疑漏洞代码相结合,提高了检测应用漏洞代码的有效性。
进一步参考图4,其示出了检测应用漏洞代码方法的又一个实施例的流程400。该检测应用漏洞代码方法的流程400,包括以下步骤:
步骤401,获取应用的应用代码。
在本实施例中,电子设备可以从本地或远程地获取应用的应用代码。具体而言,当电子设备时检测应用漏洞代码类应用运行于其上的终端设备时,其可以直接从本地获取上述应用代码;而当电子设备是对检测应用漏洞代码类应用进行支持的后台服务器时,其可以通过有线连接方式或者无线连接方式从终端设备获取上述应用代码。
步骤402,将应用代码进行反编译,生成预定格式的中间代码。
在本实施例中,电子设备接着可以通过静态分析手段将所获取应用代码进行编译或反编译,从而生成预定格式的中间代码。这里,中间代码可以是通过某一种预定的编程语言表示的代码,例如Java语言表示的应用代码;也可以是能够表现应用代码的数据逻辑关系的其他代码。电子设备可以对应用代码进行编译或反编译,从而转换成中间格式代码。
步骤403,基于中间代码中的函数调用关系,检测中间代码中是 否包含与预设的漏洞特征语句相匹配的语句,若是,确定上述应用包含可疑漏洞代码。
在本实施例中,电子设备接着可以通过各种静态分析方法对中间代码进行,生成中间代码的函数调用关系,进而根据这些函数调用关系检测中间代码中是否包含与预设的漏洞特征语句相匹配的语句。电子设备可以通过静态分析方法在不执行代码的情况下对代码可能产生的行为进行分析。静态分析方法例如可以包括但不限于不可达代码(在任何情况下都运行不到的代码)去除方法、常量传播(constant propagation)方法等。进一步地,电子设备可以根据对中间代码的静态分析过程获取中间代码中所包含的函数之间的调用关系,并按照函数调用顺序将中间代码的语句与预设的漏洞特征语句进行匹配。
步骤404,对上述中间代码执行针对可疑漏洞代码预设的验证代码,根据执行结果确定可疑漏洞代码是否为确切漏洞代码。
在本实施例中,电子设备可以进一步通过动态测试手段对该可疑漏洞代码进行验证,以确定其是否为确切漏洞代码。这里,确切漏洞代码可以表示真实存在的、在运行时可以使应用产生漏洞行为的代码。其中,动态测试方法是通过运行代码对代码进行分析的方法。电子设备可以通过模拟器、虚拟机或物理设备运行所检测应用的应用代码或者根据应用代码生成的中间代码。验证代码是对可疑漏洞代码进行验证的代码,例如是可以利用漏洞特征语句对应用代码进行攻击或破坏的代码。在一些实现中,如果电子设备对上述中间代码执行针对可疑漏洞代码预设的验证代码的执行结果为漏洞行为结果,则确定可疑漏洞代码为确切漏洞代码。
步骤405,如果确定可疑漏洞代码为确切漏洞代码,基于预设的修复规则修复中间代码。
在本实施例中,在经过验证步骤404确定应用中的可疑漏洞代码为确切漏洞代码之后,电子设备可以借助预设的修复规则对中间代码进行修改,从而修复确切漏洞代码。
其中,电子设备可以针对不同的漏洞特征语句,预存有与其对应 的修复规则,使代码不再产生漏洞行为。修复规则可以包括但不限于以下至少一项:将中间代码中与预设的漏洞特征语句相匹配的语句修改为预设的修复语句;在中间代码中增加预设的语句;在中间代码中删除与预设的漏洞特征语句相匹配的代码。例如,对于用于创建文件的API“openFileOutput(String name,int mode)”,mode参数被设为MODE_WORLD_READABLE的确切漏洞代码,预设的修复规则可以为将mode参数由“MODE_WORLD_READABLE”修改为“MODE PRIVATE”,则所创建的文件不能被任意读取;对于安卓系统的应用中的“使用了API“getSerializableExtra()”,而没有对获取的传入数据做异常判断“的确切漏洞代码,预设的修复规则可以为:增加try catch语句对“getSerializableExtra()”获取的传入数据做异常判断,等等,在此不再一一列举。
在实践中,用户(例如开发人员)也可能有意利用一些确切漏洞代码来实现一些特殊的功能。例如,某公司内部使用一个应用来共享文件,可以通过在该应用的应用代码中通过调用创建文件的API“openFileOutput(String name,int mode)”,把mode参数设为MODE_WORLD_READABLE,则所创建的文件在创建之后可以被任意应用读取,从而达到文件共享的目的。此时,如果电子设备从应用的中间代码中检测到漏洞代码并进行修复,则该应用共享文件的功能就没有了。因此,电子设备在确定存在确切漏洞代码之后,可以先向用户呈现(例如通过对话框、语音呈现)确切漏洞代码的漏洞信息,例如包括但不限于以下至少一项:漏洞名称、漏洞代码在应用代码中出现的位置(如某个函数中)等等。电子设备所呈现的漏洞信息可以接受用户的预定操作,例如确定对确切漏洞代码进行修复的操作、禁止对确切漏洞代码进行修复的操作等。响应于接收到确定对确切漏洞代码进行修复的操作,电子设备可以基于预设的修复规则修复上述的中间代码。
在本实施例的一些可选实现方式中,还包括:
步骤406,对修复后的中间代码进行编译,生成修复应用代码。
这里,电子设备可以进一步对修复确切漏洞代码后的中间代码进 行重新编译,生成修复的应用代码。修复的应用代码可以是与电子设备所获取的应用代码使用相同编程语言表达的代码,也可以是由中间代码编译形成的可执行代码,本申请对此不做限定。
在图4的实施例中,上述实现流程中的步骤401、步骤402、步骤403和步骤404分别与前述实施例中的步骤201、步骤202、步骤203和步骤204基本相同,在此不再赘述。
从图4中可以看出,与图2对应的实施例不同的是,本实施例中的检测应用漏洞代码的方法的流程400多出了基于预设的修复规则修复中间代码的步骤405,还可以包括对修复后的中间代码进行编译,生成修复应用代码的步骤406。通过增加的步骤405,本实施例描述的方案有助于提高应用漏洞代码修复的智能化。本实施例还可以通过增加步骤406,将修复后的中间代码重新编译,节约了人工参与成本,从而有助于对检测应用漏洞代码方法的功能进行扩展,进一步提高检测应用漏洞代码的有效性。
请进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种检测应用漏洞代码的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于电子设备中。
如图5所示,检测应用漏洞代码的装置500包括:获取模块501、反编译模块502、检测模块503和验证模块504。其中,获取模块501可以配置用于获取应用的应用代码;反编译模块502可以配置用于将应用代码进行反编译,生成预定格式的中间代码;检测模块503可以配置用于基于上述中间代码中的函数调用关系,检测上述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定上述应用包含可疑漏洞代码;验证模块504可以配置用于对上述中间代码执行针对上述可疑漏洞代码预设的验证代码,根据执行结果确定可疑漏洞代码是否为确切漏洞代码。
检测应用漏洞代码的装置500中记载的诸模块与参考图2描述的方法中的各个步骤相对应。由此,上文结合图2所描述的针对检测应用漏洞代码的方法描述的操作和特征同样适用于检测应用漏洞代码的装置500及其中包含的模块或单元,在此不再赘述。
本领域技术人员可以理解,上述检测应用漏洞代码的装置500还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图5中未示出。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块,反编译模块,检测模块和验证模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“配置用于获取应用的 应用代码的模块”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端或服务器中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取所述应用的应用代码;将所述应用代码进行反编译,生成预定格式的中间代码;基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码;对所述中间代码执行针对所述可疑漏洞代码预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (18)

  1. 一种检测应用漏洞代码的方法,其特征在于,所述方法包括:
    获取所述应用的应用代码;
    将所述应用代码进行反编译,生成预定格式的中间代码;
    基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码;
    对所述中间代码执行针对所述可疑漏洞代码预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码。
  2. 根据权利要求1所述的方法,其特征在于,所述基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码包括:
    根据所述中间代码的函数调用关系生成调用路径;
    按照各调用路径上的调用关系,对所述中间代码的语句与预设的漏洞特征语句进行匹配;
    如果在一条调用路径上匹配到预设数量的漏洞特征语句,确定所述中间代码中包含与预设的漏洞特征语句相匹配的语句,并确定所述应用包含可疑漏洞代码。
  3. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    如果确定所述可疑漏洞代码为确切漏洞代码,基于预设的修复规则修复所述中间代码。
  4. 根据权利要求3所述的方法,其特征在于,所述方法进一步包括:
    如果确定所述可疑漏洞代码为确切漏洞代码,呈现所述确切漏洞代码的漏洞名称;
    响应于确定对所述确切漏洞代码进行修复的操作,基于预设的修 复规则修复所述中间代码。
  5. 根据权利要求3或4所述的方法,其特征在于,所述预设的修复规则包括:
    将所述中间代码中与预设的漏洞特征语句相匹配的语句修改为预设的修复语句;和/或
    在中间代码中增加预设的语句;和/或
    在中间代码中删除与预设的漏洞特征语句相匹配的代码。
  6. 根据权利要求3或4所述的方法,其特征在于,所述方法还包括:对修复后的中间代码进行编译,生成修复应用代码。
  7. 根据权利要求1所述的方法,其特征在于,所述对所述中间代码执行针对所述可疑漏洞代码预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码包括:
    对所述中间代码执行针对所述可疑漏洞代码预设的验证代码;
    检验所述执行结果是否为漏洞行为结果,若是,确定所述可疑漏洞代码为确切漏洞代码。
  8. 根据权利要求1所述的方法,其特征在于,所述应用代码包括以下至少一项:源代码、安装包代码或软件工具开发包代码。
  9. 一种检测应用漏洞代码的装置,其特征在于,所述装置包括:
    获取模块,配置用于获取所述应用的应用代码;
    反编译模块,配置用于将所述应用代码进行反编译,生成预定格式的中间代码;
    检测模块,配置用于基于所述中间代码中的函数调用关系,检测所述中间代码中是否包含与预设的漏洞特征语句相匹配的语句,若是,确定所述应用包含可疑漏洞代码;
    验证模块,配置用于对所述中间代码执行针对所述可疑漏洞代码 预设的验证代码,根据执行结果确定所述可疑漏洞代码是否为确切漏洞代码。
  10. 根据权利要求9所述的装置,其特征在于,所述检测模块包括:
    调用路径生成单元,配置用于根据所述中间代码的函数调用关系生成调用路径;
    匹配单元,配置用于按照各调用路径上的调用关系,对所述中间代码的语句与预设的漏洞特征语句进行匹配;
    确定单元,配置用于如果在一条调用路径上匹配到预设数量的漏洞特征语句,确定所述中间代码中包含与预设的漏洞特征语句相匹配的语句,并确定所述应用包含可疑漏洞代码。
  11. 根据权利要求9所述的装置,其特征在于,所述装置还包括:
    修复模块,配置用于如果确定所述可疑漏洞代码为确切漏洞代码,基于预设的修复规则修复所述中间代码。
  12. 根据权利要求11所述的装置,其特征在于,所述修复模块进一步包括:
    呈现单元,配置用于如果确定所述可疑漏洞代码为确切漏洞代码,呈现所述确切漏洞代码的漏洞名称;
    修复单元,配置用于响应于确定对所述确切漏洞代码进行修复的操作,基于预设的修复规则修复所述中间代码。
  13. 根据权利要求11或12所述的装置,其特征在于,所述预设的修复规则包括:
    将所述中间代码中与预设的漏洞特征语句相匹配的语句修改为预设的修复语句;和/或
    在中间代码中增加预设的语句;和/或
    在中间代码中删除与预设的漏洞特征语句相匹配的代码。
  14. 根据权利要求11或12所述的装置,其特征在于,所述装置还包括:
    编译模块,配置用于对修复后的中间代码进行编译,生成修复应用代码。
  15. 根据权利要求9所述的装置,其特征在于,所述验证模块包括:
    执行单元,配置用于对所述中间代码执行针对所述可疑漏洞代码预设的验证代码;
    检验单元,配置用于检验所述执行结果是否为漏洞行为结果,若是,确定所述可疑漏洞代码为确切漏洞代码。
  16. 根据权利要求9所述的装置,其特征在于,所述应用代码包括以下至少一项:源代码、安装包代码或软件工具开发包代码。
  17. 一种设备,包括:
    处理器;和
    存储器,
    所述存储器中存储有能够被所述处理器执行的计算机可读指令,在所述计算机可读指令被执行时,所述处理器执行权利要求1至8中任一项所述的方法。
  18. 一种非易失性计算机存储介质,所述计算机存储介质存储有能够被处理器执行的计算机可读指令,当所述计算机可读指令被处理器执行时,所述处理器执行权利要求1至8中任一项所述的方法。
PCT/CN2015/099900 2015-09-23 2015-12-30 检测应用漏洞代码的方法和装置 WO2017049800A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510613310.5 2015-09-23
CN201510613310.5A CN106548076A (zh) 2015-09-23 2015-09-23 检测应用漏洞代码的方法和装置

Publications (1)

Publication Number Publication Date
WO2017049800A1 true WO2017049800A1 (zh) 2017-03-30

Family

ID=58365085

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/099900 WO2017049800A1 (zh) 2015-09-23 2015-12-30 检测应用漏洞代码的方法和装置

Country Status (2)

Country Link
CN (1) CN106548076A (zh)
WO (1) WO2017049800A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066302A (zh) * 2017-04-28 2017-08-18 北京邮电大学 缺陷检测方法、装置及服务终端
CN109344611A (zh) * 2018-09-06 2019-02-15 平安普惠企业管理有限公司 应用的访问控制方法、终端设备及介质
CN110363004A (zh) * 2018-04-10 2019-10-22 腾讯科技(深圳)有限公司 一种代码漏洞检测方法、装置、介质及设备
CN110991147A (zh) * 2019-12-19 2020-04-10 五八有限公司 一种字体检测方法、装置、电子设备及存储介质
CN111090860A (zh) * 2019-12-10 2020-05-01 北京邮电大学 一种基于深度学习的代码漏洞检测方法及装置
CN112711424A (zh) * 2019-10-25 2021-04-27 腾讯科技(深圳)有限公司 应用程序的风险问题确定方法、装置及存储介质
CN113946830A (zh) * 2021-10-09 2022-01-18 暨南大学 基于多模态检测的Android APP漏洞细粒度检测方法
CN116383834A (zh) * 2023-06-02 2023-07-04 北京邮电大学 针对源码漏洞检测工具异常的检测方法以及相关设备
US11741238B2 (en) * 2017-11-27 2023-08-29 Lacework, Inc. Dynamically generating monitoring tools for software applications

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632901A (zh) * 2017-09-25 2018-01-26 青岛海信移动通信技术股份有限公司 一种应用程序运行异常的自修复方法及装置
CN108416216A (zh) * 2018-02-28 2018-08-17 阿里巴巴集团控股有限公司 漏洞检测方法、装置及计算设备
CN111125644B (zh) * 2018-11-01 2022-05-27 百度在线网络技术(北京)有限公司 应用产品的信息隐藏方法和装置
CN109829298A (zh) * 2018-11-26 2019-05-31 努比亚技术有限公司 内存泄露风险检测方法、终端及计算机可读存储介质
CN110188544A (zh) * 2019-05-30 2019-08-30 北京百度网讯科技有限公司 漏洞检测方法及装置、设备及存储介质
CN110619215B (zh) * 2019-08-23 2021-08-20 苏州浪潮智能科技有限公司 一种代码安全扫描方法及系统
CN110968874B (zh) * 2019-11-28 2023-04-14 腾讯科技(深圳)有限公司 一种漏洞检测方法、装置、服务器及存储介质
CN111177733B (zh) * 2019-12-30 2022-06-21 北京航空航天大学 一种基于数据流分析的软件补丁检测方法及装置
CN113672929A (zh) * 2020-05-14 2021-11-19 阿波罗智联(北京)科技有限公司 漏洞特征获取方法、装置及电子设备
CN112346818A (zh) * 2020-11-02 2021-02-09 北京新媒传信科技有限公司 一种容器应用部署方法、装置、电子设备和存储介质
CN112541179A (zh) * 2020-11-27 2021-03-23 国网河南省电力公司电力科学研究院 一种Android应用数字证书校验漏洞检测系统及方法
CN112528290B (zh) * 2020-12-04 2023-07-18 扬州大学 漏洞定位方法、系统、计算机设备和存储介质
CN112632563B (zh) * 2020-12-29 2023-11-21 北京梆梆安全科技有限公司 一种漏洞检测方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240215A1 (en) * 2006-03-28 2007-10-11 Blue Coat Systems, Inc. Method and system for tracking access to application data and preventing data exploitation by malicious programs
CN103793650A (zh) * 2013-12-02 2014-05-14 北京邮电大学 Android应用程序的静态分析方法及装置
CN104021346A (zh) * 2014-06-06 2014-09-03 东南大学 基于程序流程图的Android恶意软件检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240215A1 (en) * 2006-03-28 2007-10-11 Blue Coat Systems, Inc. Method and system for tracking access to application data and preventing data exploitation by malicious programs
CN103793650A (zh) * 2013-12-02 2014-05-14 北京邮电大学 Android应用程序的静态分析方法及装置
CN104021346A (zh) * 2014-06-06 2014-09-03 东南大学 基于程序流程图的Android恶意软件检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHEN, PING;: "Detecting Integer Bugs Based on Static and Dynamic Program Analysis", ACTA ELECTRONICA SINICA, vol. 38, no. 8, 31 August 2010 (2010-08-31) *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066302A (zh) * 2017-04-28 2017-08-18 北京邮电大学 缺陷检测方法、装置及服务终端
CN107066302B (zh) * 2017-04-28 2019-11-05 北京邮电大学 缺陷检测方法、装置及服务终端
US11741238B2 (en) * 2017-11-27 2023-08-29 Lacework, Inc. Dynamically generating monitoring tools for software applications
CN110363004A (zh) * 2018-04-10 2019-10-22 腾讯科技(深圳)有限公司 一种代码漏洞检测方法、装置、介质及设备
CN109344611A (zh) * 2018-09-06 2019-02-15 平安普惠企业管理有限公司 应用的访问控制方法、终端设备及介质
CN109344611B (zh) * 2018-09-06 2024-02-27 天翼安全科技有限公司 应用的访问控制方法、终端设备及介质
CN112711424A (zh) * 2019-10-25 2021-04-27 腾讯科技(深圳)有限公司 应用程序的风险问题确定方法、装置及存储介质
CN111090860A (zh) * 2019-12-10 2020-05-01 北京邮电大学 一种基于深度学习的代码漏洞检测方法及装置
CN110991147B (zh) * 2019-12-19 2023-07-07 五八有限公司 一种字体检测方法、装置、电子设备及存储介质
CN110991147A (zh) * 2019-12-19 2020-04-10 五八有限公司 一种字体检测方法、装置、电子设备及存储介质
CN113946830A (zh) * 2021-10-09 2022-01-18 暨南大学 基于多模态检测的Android APP漏洞细粒度检测方法
CN113946830B (zh) * 2021-10-09 2024-05-07 暨南大学 基于多模态检测的Android APP漏洞细粒度检测方法
CN116383834A (zh) * 2023-06-02 2023-07-04 北京邮电大学 针对源码漏洞检测工具异常的检测方法以及相关设备
CN116383834B (zh) * 2023-06-02 2023-08-08 北京邮电大学 针对源码漏洞检测工具异常的检测方法以及相关设备

Also Published As

Publication number Publication date
CN106548076A (zh) 2017-03-29

Similar Documents

Publication Publication Date Title
WO2017049800A1 (zh) 检测应用漏洞代码的方法和装置
CN109255234B (zh) 机器学习模型的处理方法、装置、介质及电子设备
US9680864B2 (en) Remediating rogue applications
Octeau et al. Effective {Inter-Component} communication mapping in android: An essential step towards holistic security analysis
US20180260199A1 (en) Method and apparatus for intermediate representation of applications
CN105068932B (zh) 一种Android应用程序加壳的检测方法
US20190005239A1 (en) Electronic device for analyzing malicious code and method therefor
US10152591B2 (en) Protecting against malware variants using reconstructed code of malware
JP5654944B2 (ja) アプリケーション解析装置およびプログラム
Yang et al. Automated generation of event-oriented exploits in android hybrid apps
KR20160046640A (ko) 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법
Zhang et al. Ripple: Reflection analysis for android apps in incomplete information environments
Rizzo et al. Babelview: Evaluating the impact of code injection attacks in mobile webviews
JP6434646B2 (ja) 解析装置、解析方法、および解析プログラム
US11609985B1 (en) Analyzing scripts to create and enforce security policies in dynamic development pipelines
Huang et al. Code coverage measurement for Android dynamic analysis tools
KR102011725B1 (ko) 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치
Alfalqi et al. Android platform malware analysis
KR20120078017A (ko) 클라우드 컴퓨팅 기반 악성코드 분석 지원 시스템과 이를 사용하는 분석가 단말
Elsayed et al. IFCaaS: information flow control as a service for cloud security
Pandey et al. A framework for producing effective and efficient secure code through malware analysis
US11392686B2 (en) Detecting stack cookie utilization in a binary software component using binary static analysis
Xu et al. Security analysis and protection based on smali injection for android applications
JP2012113693A (ja) コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム
CN107368713B (zh) 保护软件的方法和安全组件

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15904674

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15904674

Country of ref document: EP

Kind code of ref document: A1