[发明专利]一种基于虚拟执行模式的Flash漏洞检测方法有效

专利信息
申请号: 201210190206.6 申请日: 2012-06-11
公开(公告)号: CN102693396A 公开(公告)日: 2012-09-26
发明(设计)人: 王建新;彭程;聂石婧;董苹苹 申请(专利权)人: 中南大学
主分类号: G06F21/22 分类号: G06F21/22
代理公司: 长沙市融智专利事务所 43114 代理人: 黄美成
地址: 410083 湖南*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 虚拟 执行 模式 flash 漏洞 检测 方法
【说明书】:

技术领域

发明涉及一种基于虚拟执行模式的Flash漏洞检测方法。

背景技术

Adobe公司的Flash Player是一款目前使用极为广泛的客户端播放器,能够在各种主流操作系统、浏览器、移动电话和移动设备上提供功能强大与内容丰富的视频体验。现在,几乎绝大部分PC机或其它终端都装有Flash Player,但与此同时,Flash Player漏洞也日益增多,并对互联网的安全造成了严重的威胁。

根据CVE公布的漏洞报告,Flash漏洞数量目前仍呈增长趋势,Flash Player已成为高危漏洞最多的黑客攻击重灾区。而2011年十大安全漏洞当中,Flash Player共曝出四次高危漏洞,其危险程度已超过微软Windows操作系统。鉴于Flash Player饱受诟病的安全性,IOS等操作系统甚至已拒绝支持Flash,以保证客户端安全。

Flash漏洞检测是对目标Flash文件是否为利用Flash漏洞编写的恶意文件进行检测的一种方法,通过检测,可以事先发现恶意Flash文件,阻止用户访问,从而保证用户的网络安全。

目前传统的Flash漏洞检测方法主要有三种:

(1)基于特征码匹配的Flash漏洞文件扫描

此方法类似于传统杀毒软件的文件扫描,即将待检测的Flash文件以二进制流的形式打开,通过匹配事先设定的特征码来确定该文件是否具有漏洞。这种对包含漏洞的Flash文件进行扫描的方法,适用面较窄,且效果不佳。

(2)基于静态分析代码的Flash漏洞检测

此方法首先将Flash文件中的ActionScript代码进行反编译,然后再对其代码进行静态分析,检测是否具有触发某一漏洞的特定条件。如根据CVE-2011-2134的漏洞描述,当代码中包含一个深度大于16的表达式时,会导致溢出并触发漏洞,例如:A.match(/(((((((((((((((((.*)))))))))))))))).)*/g);。因此当检测到具有该类表达式时,则成功检测出漏洞。

由于大部分Flash漏洞需要根据变量值等当前状态信息进行匹配,而静态分析代码无法得到此类执行Flash代码后的状态信息,故该方法效果不佳。

(3)基于虚拟执行的Flash漏洞检测

该方案的原理主要是将Flash文件在Flash播放器的虚拟机(即AVM2,已开源)中执行,通过其行为来检测是否具有漏洞。如大部分缓冲区溢出漏洞,就可根据Flash是否崩溃,堆或栈是否溢出来判定。

但该方案仍存在问题。如怎样实现执行Flash文件中的所有ActionScript代码尚需解决,因为攻击者可以将漏洞利用代码编写成需要特定触发条件才会执行,如点击Flash中某一按钮,或使用Firefox浏览器打开时才会执行等。此外,传统虚拟执行方法需要运行Flash文件,则在对大量Flash文件进行漏洞检测时,效率较低。

发明内容

本发明所要解决的技术问题是提供一种基于虚拟执行模式的Flash漏洞检测方法,该基于虚拟执行模式的Flash漏洞检测方法具有误判率低,执行效率高的特点。

发明的技术解决方案如下:

一种基于虚拟执行模式的Flash漏洞检测方法,包括以下步骤:

步骤1:将待检测的Flash文件进行反编译,得到ActionScript代码;

步骤2:对ActionScript代码进行单词扫描及词法分析,即将ActionScript代码转换成单词流,并对每个单词的类型进行分析,单词的类型包括保留字、标识符、符号、数字;

步骤3:构建生成树:

以生成树存储ActionScript代码:生成树中每个结点用于存储ActionScript的一行语句,若某结点具有子结点,则每个子结点存储的ActionScript语句是其父节点的ActionScript语句的子语句;

步骤4:对每个结点中的语句进行结构分析,得到类结构信息,其中语句结构包括类定义语句、类成员变量定义语句及类的成员函数定义语句;在分析ActionScript代码结构时,对代码逐行进行扫描,若发现关键字“class”则为类定义语句,关键字“function”则为类的成员函数定义语句;若找到关键字“var”或“const”则为类成员变量定义语句;

标记所有函数的状态为“未执行”;

步骤5:基于类结构信息生成虚拟执行流程,并将虚拟执行流程放入虚拟执行流程栈中;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学,未经中南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210190206.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top