丁丁在上海

看懂当下和未来的三件事

关于北京科兴生物违法犯罪的举报信

朝鲜如何在72小时内从“新冠零病例”增至120万例

中国驻乌克兰前大使高玉生:俄已败!

分享到微信朋友圈

点击图标下载本文截图到手机
即可分享到朋友圈。如何使用?

自由微信安卓APP发布,立即下载!
查看原文

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

2017-08-24 李勤 宅客频道

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

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

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

它就是漏洞武器。

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

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

最近,有人告诉宅客频道编辑,他们研发除了一款 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 将朝着优化漏洞挖掘率,扩大漏洞挖掘类型等进行提升,不排除将增加挖掘其他系统的功能。

注:冰刃实验室的该研究成果《Digtool:A Virtualization-Based Framework for Detecting Kernel Vulnerabilities》被 USENIX Security 收录。

蓝字查看更多精彩内容


探索篇

  暗网【上】|  暗网【下

草榴社区 女鉴黄师 | 以图搜图

心脏滴血 撞库攻击 | 潜行追踪

刷票 | 人肉 | 勒索 | 内鬼

超级欺骗系统


真相篇

战斗民族野生聊天 App

草榴社区这类色情网站为什么封不掉

什么样的漏洞买得起北京二环一套房?

上了个“假”黄网,误入了7亿黑产的大门

48 31963 48 15534 0 0 3072 0 0:00:10 0:00:05 0:00:05 307213岁小黑客自学一年挖到了微软、谷歌的漏洞

中学教材现黄色网站 人教社回应遭网友质疑

干货!top白帽子 Gr36_ 手把手教你挖漏洞

我们可以用“免疫系统”对抗黑客入侵吗?

这位叔叔要教勒索软件一些做人的道理

有个网站叫“我知道你下载了什么”

无线电攻击居然还能用来打飞机

“道哥”透露从业初心


人物篇


道哥:重回阿里的29个月

黑客老王:一个人的黑客史

吴石:站在0和1之间的男人

黑客衰大:45天攻入姑娘的心

黑客段子手“呆子不开口”

“特斯拉破解第一人”刘健皓

唐青昊:虚拟世界的越狱者

MOSEC:盘古团队的野心优雅

让周鸿祎“三顾茅庐” 的 黑客 MJ

美女黑客张婉桥的“爱丽丝奇遇记”

TK教主和玄武实验室的几个小故事

把老婆训练成女黑客的漏洞大神黄正

“真爱”黑客 Fooying 手把手教你追妹子


更多精彩正在整理中……

---

“喜欢就赶紧关注我们”

宅客『Letshome』

雷锋网旗下业界报道公众号。

专注先锋科技领域,讲述黑客背后的故事。

长按下图二维码并识别关注


文章有问题?点此查看未经处理的缓存