设为首页 - 加入收藏 - 网站地图 SecYe安全 Www.SecYe.Com - 国内网络信息安全IT技术门户网
当前位置:SecYe > 网络安全 > 系统和服务器安全 > 正文

漫谈漏洞挖掘之文件解析型漏洞

时间:2013-12-26 09:38 来源:未知 作者:www.secye.com 阅读:

[目录]

1 - 前言

2 - 文件Fuzz简介

3 - 文件Fuzz风云录

4 – 展望

5 - 结语

[1] - 前言

 

 

\"\"

 

 

 

 

\"\"

 

 

 

自2010年Google承认遭受严重黑客攻击之后,APT高级持续性威胁便成为安全圈子人尽皆知的“时髦名词”,当然对于像Google、RSA、Comodo等深受其害的公司而言,APT无疑是一场噩梦。其中,文件解析型漏洞在APT攻击中承担了重型武器的功能。

 

 

不管是IE还是Office,它们都有一个共同点,那就是用文件作为程序的主要输入。不少程序员会存在惯性思维,即假设他们所使用的文件是严格遵守软件规定的数据格式。但是攻击者往往会挑战程序员的假定假设,尝试对软件所约定的数据格式进行稍微修改,观察软件是否在解析这种“畸形文件”时是否会发生崩溃或者溢出。

 

 

[2] – 文件Fuzz简介

文件格式Fuzz(File Fuzz)就是这种利用“畸形文件”测试软件鲁棒性的方法。

 

 

\"\"

 

 

 

FileFuzz可以分为Blind Fuzz和Smart Fuzz。Blind Fuzz即通常所说的“盲测”,就是在随机位置修改数据来生成畸形文件。然而现在的文件格式越来越复杂,Blind Fuzz的代码覆盖率偏低,会产生大量的无用测试用例。针对Blind Fuzz的不足,Smart Fuzz被越来越多地提出和应用。Smart Fuzz即智能Fuzz,通过解析文件格式,然后基于样本和变异来生成畸形文件。它能够识别不同的数据类型,并且能够针目标数据的类型按照不同规则来生成畸形数据。跟Blind Fuzz相比,Smart Fuzz能大大减少无效畸形文件的数量。

 

 

[3] – 文件Fuzz风云录

下面,笔者将根据自己的一些经验,介绍常见的文件Fuzz思想。

 

 

[3.1] – Blind Fuzz

Blind Fuzz的代表就是著名的iDefense lab出品的Filefuzz。

 

 

FileFuzz的变异策略分为4种:All Bytes、Range、Depth、Math。All Bytes即对整个文件按字节进行修改,修改为我们指定的4X00或者4XFF或者3XFF。Range即针对某一个范围进行按字节进行修改,方便我们进行针对性测试,如只对某个文件头进行测试。Depth即深度测试,对某个偏移的数据进行,比如对偏移为0x2的数据修改为0x00-0xFF这个范围。Match即将符合条件的数据修改为相应的数据。

 

 

原始版的Filefuzz略显简陋,幸好Filefuzz是开源的,我们可以根据自己定的策略来修改相应的生成策略。我们可以建立自己的“智能数据”,修改的数据可以不仅限于0x00、0xFF,可以是0x3F、0x7F、0x01、0x02、0x80、0xFE、0x10、0x20、0x40、0x60等等。如果是想测整数溢出,可以修改为一些边界数据,如0xFFFFFFFF-1、0xFFFFFFFF-2、0xFFFFFFFF-3等等。

 

 

个人认为,FileFuzz比较适合有经验的人士,FileFuzz完全具备“快、准、狠”的能力。只要策略设置得好,文件格式脆弱点寻找的好,用FileFuzz挖洞是件很惬意的事。“简单的是最美的”,FileFuzz虽然很简单,但是只要策略够猥琐,FileFuzz就是神器。

 

 

[3.2] – File FormatBased Smart Fuzz

\"\"

 

 

 

本节介绍的智能文件Fuzz是基于文件格式规范的,大体的流程如上图所示。该类文件Fuzz系统中最为出名非Peach莫属。Peach采取xml格式来定义文件格式规范,称为Peach Pit文件。

 

 

使用Peach的难度在于Peach Pit文件的编写,当遇到比较复杂的文件格式时,用xml定义文件格式会略显无力。“Peach虐我千百遍,我待Peach如初恋”。我们必须以这样的心态来使用Peach,即使被Peach虐得体无完肤,但依然钟爱Peach。

 

 

基于Peach,我们实现了25种常见文件格式的文件格式规范,对公司产品及外部产品进行测试,效果显著,发现了公司产品的N多个漏洞。此外,也展现了不错的历史漏洞发现能力和0day发现能力。

 

 

1)已知漏洞测试结果

本文来源:SecYe安全网[http://www.secye.com] (责任编辑:SecYe安全)

点击复制链接 与好友分享!

顶一下
(1)
100%
踩一下
(0)
0%