现在的位置: 首页资讯>正文
Windows 漏洞自动化挖掘系统 Digtool,可以自动捕捉程序执行过程中的漏洞
2017年08月24日 作者: 暂无评论 529+ 0

几十年前,两颗原子弹爆炸,人们在可怕的蘑菇云中,被核武器的威力所震慑。

在看不见敌人的神秘网络世界里,有一种武器堪比核武器。

几个月前,“永恒之蓝”从美国国家安全局的军方军火库泄露,威力巨大的武器落到了一群毛贼手中,被利用做了一次低俗的敲诈勒索。但那一次,也许是全世界人民再一次深刻体会到这种武器的可怕。

它就是漏洞武器。

漏洞武器

网络世界的暗黑力量瞅准了漏洞,安全守卫者也看到了漏洞的价值。不过,在安全研究人员看来,抢先一步发现漏洞,填上它,就是一种胜利。

不过,从开始渗透测试网站到发现漏洞,然后提交给厂商,整个过程会耗费安全研究人员大量的时间精力,甚至不得不连续几个日夜守在电脑面前反复测试。何况,漏洞挖掘技术有高低,天赋、时间、经验……都是一道道关卡。

最近,有人告诉我们编辑,他们研发了一款 Windows 漏洞自动化挖掘系统 Digtool,可捕获程序执行过程中触发的漏洞。

咦?Windows 系统的漏洞挖掘,由于微软没有提供源码,人工挖掘需要逆向分析。这个漏洞工具到底是怎么实现的?听说 Google project zero 也开发了类似工具,相比之下,效果几何?

该工具的开发人之一 、360 冰刃实验室负责人潘剑锋接受了我们的采访。

“淘金者”Digtool “以静制动”

在冰刃实验室提供的资料中,提到 Digtool 的工作流程就像挖沙淘金一样:首先,Digtool 可以记录内存访问等行为日志,这就实现了第一步挖沙的过程;进而,Digtool 的分析模块会进行分析,一旦符合主要的六种漏洞行为特征规则,便实现了一次“淘金”,也就意味着找到一个漏洞。

事实上, Digtool 并不是机器人,下达一声命令,它就勤勤恳恳地开始自动“淘金”。

至少,你得先开机。

曾有一计谋称为“以静制动”,也就是我们通常所说的:我就静静看你装逼,然后一切真相了然于胸。

只有在系统在任务执行的动态过程中,Digtool 才会像灵敏的猎犬,嗅出一切可疑的破绽。

他们造了一个自动挖掘工具,能找到比核武器更可怕的漏洞

此前介绍的 Digtool 的工作流程其实分为两个步骤。

第一部分是指路径探测模块。因为程序运行会有大量的路径产生,有些路径是正常的,只有某些路径才会出错。如果你探测不了这个路径,根本发现不了这个漏洞,因为其他路径跑出来的结果是正常的。

Digtool 在这个过程中产生的最大作用是,尽量引导执行更多的路径。

他们造了一个自动挖掘工具,能找到比核武器更可怕的漏洞

读万卷书,行万里路,找“一万条”路,才能获得人生真谛。Digtool 不断尝试从 A 点到 B 点的可能路径,就像那个把巨石一直推向山顶,巨石掉落,又往山顶推的人。只是,不走寻常路。

因为漏洞本身就是罕见的,很可能在一万条路里,才能找出一条通向成功,哦不,是漏洞的路。

从这个意义上来说,Digtool 深刻地领悟了人生(漏洞)哲学。

第二,错误捕获,跑到这条特殊的路径上算是成功了一半,捕获到错误是成功的另一半。

潘剑锋指出,软件漏洞是程序的与安全性相关的错误或缺陷,有漏洞的程序在动态运行时会产生各种异常行为,比如有UAF的程序执行时产生访问已释放内存的行为;再如有内核的信息泄露漏洞的内核程序段,会产生把应用层不应该知道的地址写到应用层地址空间的行为,Digtool 可以捕获这些异常行为从而发现背后的漏洞。

至此,Digtool 才算在一个漏洞的挖掘上功德圆满。

白帽子暂时不会失业

Digtool 目前擅长挖掘六类漏洞,而且针对的是 Windows系统。

第一类, OOB越界访问漏洞。

第二类,UAF释放后使用漏洞。

第三类,TOCTTOU即time-of-check-to-time-of-use漏洞,这里指来自用户的不可信参数在被系统(如内核)检查和使用之间,可被用户篡改的漏洞。它本也属于竞争条件型,但可由 Double Fetch检测方法高效发现,故单列出。

以一个程序为例,来了一个用户层的内存 A,系统访问了里面一个指针读出来,它确实是一个合法的指针,后来要使用这个指针时,却直接从用户内存取这个指针,前面取出来检查,后面又取出来使用,在这个过程中,别的用户可以修改指针,漏洞就产生了。

“以前,Windows 也出现过很多类似的漏洞,Project zero 的研究员就报了几十个这类漏洞给微软。”潘剑锋说。

第四类,参数未检查。

第五类,信息泄露。随着各OS平台漏洞缓解机制的加强,漏洞的成功利用越来越依赖于关键信息的泄露。比如对内核信息泄露,在最新的 Win10 上以前可供利用的各种信息泄露几乎都封杀了,个别漏网之鱼可以预计也会很快补掉。因此,原本看上去不重要这一类型的漏洞,正在变得越来越重要。

第六类,竞争条件型漏洞,这里指多线程访问共享内存,而最后的结果取决于线程运行的精确时序导致的错误。

不过,针对这六大类型的漏洞,Digtool 也会报“假警”。

潘剑锋解释道:“如 OOB 或 UAF 只要报出来就是漏洞,误报率是 0。对 TOCTTOU 和参数未检查是有不少误报的,因此,这种就需要人工来筛选,根据漏洞不同类型有不同的误报率。”

Digtool离全能的“人形漏洞挖掘机器”还有相当的距离,挖掘漏洞的白帽子完全不用担心“失业”问题。

比如,Digtool 暂时还无法处理逻辑类型的漏洞。程序逻辑是程序员自己的思考与设计,如果没有额外的信息,程序并不知道你的逻辑到底是 A 还是B,有可能在你看来 B 是错的,但程序并不知道,有可能认为你就是想写成 B。

我们了解到,也不能说 Digtool 完全不能发现这类逻辑型的漏洞,程序难以直接了解程序员的思维逻辑(除非把思维逻辑直接写入错误检测工具,这样是完全不通用的),但是依然可以通过意外逻辑发生时的副作用发现它,比如,错误的逻辑导致程序访问非法内存,工具可以捕获访问非法内存的错误,通过人工反推出真正逻辑错误的地点。

这意味着,Digtool 在一定程度上暂时干不掉挖掘逻辑漏洞的大神,但能成为大神挖洞的亲密小助手。

他们造了一个自动挖掘工具,能找到比核武器更可怕的漏洞

准确地说,在一定条件下,Digtool 有希望让没培训或简单培训的人在短时间内比经过严格培训的人还能挖到更多特定类型的漏洞,潘剑锋相信,这也是自动化挖掘的意义。

“跑一局游戏,十几个漏洞就挖到了”?

我们了解到,目前,与 Digtool 类似的工具还有 Project Zero 制造出来的 bochspwn。

bochspwn 可以检测两种类型的漏洞,一种是信息泄露,一种是 TOCTTOU,但 bochspwn 跑得非常慢,是解释型的模拟器。

与 bochspwn 相比, Digtool 可仅在需要关注的线程或系统调用开启检测,在不检测的情况几乎不影响系统的运行,当然检测的时候也会比真实系统慢不少,但还是比 bochspwn 快很多。

“跑一局游戏,十几个漏洞就挖到了”——在 360 提供的背景资料中,是这样写的。

但是,潘剑锋表示,这是第一次运行游戏所经过的执行路径上,捕获的内核信息泄露漏洞,第二次运行自然不会有这么好的效果,因为绝大多数路径已经跑过了,只有探索到新路径才可能捕获新的漏洞;另外不同类型的漏洞存在的概率也差别很大。他们造了一个自动挖掘工具,能找到比核武器更可怕的漏洞

接下来,Digtool 将朝着优化漏洞挖掘率,扩大漏洞挖掘类型等进行提升,不排除将增加挖掘其他系统的功能。

原文链接:http://www.eeboard.com/news/digtool/

搜索爱板网加关注,每日最新的开发板、智能硬件、开源硬件、活动等信息可以让你一手全掌握。推荐关注!

【微信扫描下图可直接关注】

科技早知道:

一个字“乱”:你们耳机圈能不能不要太精彩!

魅蓝Note6发布,搭载骁龙625并不是亮点,这个配置才是亮点!

三星:Note7爆炸赖中国企业!网友:设计电路不对,无论找谁生产电池都一样会炸!

想喝冰镇饮料,没有冰箱怎么办?那就做一个USB迷你电冰箱

Raspberry-Pi机器海龟不仅可以排雷,还能用于外星探索

相关文章

英特尔又曝新漏洞:CPU的错误,与用户的操作系统无关

英特尔再度公布了一个新的处理器漏洞:Lazy FP。这一处理器将影响全系列基于英特尔酷睿处理器的英特尔微处理器。

联想发布ThinkPad P52移动工作站:指纹传感器+720p 网络摄像头

联想刚刚发布了一款 VR-ready 的移动工作站新品,它就是采用了英特尔八代至强(Xeon)六核处理器和 Nvidia Quadro P3200 独显的 ThinkPad P52 。该机可选配 15 英寸 @ 10-bit 的 4K 超高清触...

微软秘密开发云计算AI芯片 提升云业务服务

对于现在的微软来说,Windows业务早已经不是他们的重心,去相关业务已经被边缘化。

苹果未来让开发者更顺手,整合iOS和Mac应用程序?

根据NetMarketShare的数据,MacOS拥有9%的计算机操作系统市场份额,而微软公司的Windows操作系统市场份额为89%,Linux为2%。尽管如此,MacOS操作系统是苹果在iPhone,iPad,Apple Watch和A...

设计师打造微软折叠概念机Surface Phone

相信随着Surface Phone传闻的不断增多微软很有可能会对外发表声明。然而截止到目前微软方面给出的最接近官方声明则是微软中国在今年1月对该款设备存在的证实,不过该证实很快就被官方修正。

给我留言

您必须 [ 登录 ] 才能发表留言!