你数学好吗?

刚刚过去的十一假期,大家都在忙着四处玩耍,我们京东安全的研究员心中却只有工作,远赴比利时,参加了年度黑客大会BRUCON。并在大会现场分享了牧者实验室正在研究的新成果。

这是一个怎样的研究成果呢?要从一道高中数学题讲起。

有红、蓝、黄三种颜色的球各7个,每种颜色的7个球分别标有数字1、2、3、4、5、6、7,从中任取3个标号不同的球,这3个颜色互不相同且所标数字互不相邻的取法有多少种?

熟悉不?会做不?

反正我不会,学生时期就是数学黑洞。

你数学好吗?

记得高中刚接触排列组合时,遇到刚入门的题目,比较笨的办法是把所有的可能组合项都在草稿纸上列出来,然后统计总共有多少种答案。

这个笨办法有几个的问题。

一、费纸(主要还是费时间);

二、容易漏算;

还有一个致命的问题,应对最基础的题目尚可,稍微增加难度,就废了!

所以,老师教了我们应对各种排列组合问题的解题思路和公式。

你数学好吗?

啰嗦这么多,是要讲数学么?

本着爱岗敬业的态度,当然还是要一本正经把安全故事进行到底。今天要说的是一种操作,跟排列组合题有些类似。这种操作就是白帽子非常熟悉的模糊测试。

模糊测试 (fuzztesting, fuzzing)是将自动或半自动的生成随机数据输入到一个程序中,并监视程序异常,如崩溃,以发现可能的程序错误。

检测软件或计算机系统的安全漏洞比较常用的办法就是模糊测试。 这个模糊测试的过程比较像用笨方法做排列组合题。先列举所有可能导致系统崩溃的数据,然后输入系统不断试错。

所以,笨办法的弊端也是显而易见的,不仅费时、容易遗漏,还有致命的缺点,不能支持多系统架构。

做题可以套公式,模糊测试当然也有得有套路,因此,京东安全牧者实验室研究了一种操作,并在BRUCON大会的现场分享了这个操作。这套操作可以让模糊测试支持多CPU架构,还解决了现有fuzzer对非开源程序不友好,处理速度非常慢的问题。

看到这,恐怕很多同学会不屑,市场上的自动测试程序已经很成熟了,你们研究的这个没啥新鲜。

你数学好吗?

这里,必须要插播一句,现有的模糊测试工具我们统称为fuzzer,现有的fuzzer有三个比较鸡肋的问题。

第一、对非开源程序非常不友好;

第二、对非开源程序处理非常慢;

第三、除了X86系统不支持其他架构。

当然,不屑的不止是你,还有BRUCON现场的黑客们,对此,KJ老师这么说。

敲 · 黑 · 板

在X86架构下,对于有源代码和开源的软件,现有的fuzzer可以说足够用。但是,在没有源代码的情况下,现有的fuzzer只能依靠虚拟机来指挥,这势必会大大降低fuzzer的速度,同时也带给系统不必要的负荷。此外,现有的fuzzer仅支持X86系列系统,对于IoT的处理器框架并不支持。

而IoT安全是京东安全牧者实验室重点研究的方向,为了解决这些问题,我们就需要在技术上动些“手脚”,给模糊测试的过程做些改良。

改良版还是用了老招牌的AFL,但是中间的接口和指挥程序(instrumentation) 都是由京东安全KJ和南洋理工的Quynh博士共同研究的,而接口和指挥程序上的改良,让fuzzer的处理速度更快、兼容更多CPU架构(如:X86 、X86_64 、ARM 、ARM 64、MIPS、SPARC)。

KJ和Quynh博士有多年合作关系,他们合作的项目有业界称之为逆向三套件 capstone engine, unicorn engine, keystone engine。

对于白帽子而言,这个改良操作可以说是继DEFCON GROUP上推出的固件分析方式之后的又一福音,不了解上一次福音的点这里

新操作,了解一下?

BRUCON是一个年度安全和黑客的会议,汇集国际黑客、安全从业者,聚焦最新的安全技术,到今年已经举办了10年,在欧洲享有盛誉。

今年10周年纪念版长这样

你数学好吗?

你数学好吗?

我们热爱工作的安全研究员KJ长这样

你数学好吗?

你数学好吗?

KJ透露,DEFCON GROUP和BRUCON上分享这俩研究项目,将在10月29日-11月2日的#2018 JD-HITB安全峰会#上公开更多进展。

所以,是不是期待一下!

“2018 JD-HITB安全峰会”早鸟购票扫描下方二维码

你数学好吗?

点击“阅读原文”了解BRUCON发言详情~


分享到:


相關文章: