首页
社区
课程
招聘
[原创]各类漏洞挖掘方法辨析
发表于: 2019-10-10 08:33 8810

[原创]各类漏洞挖掘方法辨析

2019-10-10 08:33
8810

各类漏洞挖掘方法辨析

林孟尼朗曦科技1周前



朗曦科技

       很多人都知道黑盒测试,白盒测试;还有动态分析,静态分析;还有所谓调试.但是,这些技术有什么关系?它们在漏洞挖掘中处于什么地位和作用?还有那些方法?优缺点如何?实际应用如何?

1黑盒/白盒

        黑盒测试,是指不了解软件的内部结构,通过外部输入的不同,分析软件的输出反馈,从而判定软件的漏洞.黑盒测试的应用场景是没有源代码,这大大提高了测试的应用范围.

         白盒测试通常是指通过分析软件的源代码,取得软件的内部逻辑结构特征,从而分析软件的漏洞.白盒测试的应用场景是有源代码,这大大限制了测试的应用范围.近年出现了二进制代码的白盒分析.

        从功效来看,黑盒测试准确,但发现问题不全面,不系统,不能发现深层次的漏洞.同时,黑盒测试的测试用例编写对人员要求也很高.相反,白盒测试分析更全面,更具体.但由于受制于白盒分析工具开发人员的技术水平限制,还有软件分析技术本身的限制,白盒分析的误报率较高.

2动态/静态

        动态分析一般是指通过运行程序,发现程序中的漏洞.静态分析则不需要运行程序.显然,黑盒测试属动态分析,白盒测试属静态分析.调试也属动态分析.一般情况下,动态分析受限于运行路径单一,每次只能执行一个路径,显然发现的漏洞的概率就大大减少.而静态分析靠程序算法遍历路径,覆盖率高,发现漏洞的概率大大加大.但与黑盒/白盒一样,动态分析费时,对人工要求高,不能发现深层次\复杂漏洞.静态分析对人工要求相对低,但误报率高.

          静态分析有静态的源代码分析和二进制代码分析.当前国内源代码静态分析工具有几家,国外商业化工具也不少,开源工具也有很多,但性能参差不齐.

3典型的分析技术定位分析

3.1调试

              首先说调试技术,这在国内漏洞挖掘,恶意代码分析中占主要地位.该技术发现问题准确.但费时,费力,且不能发现深层次复杂问题.毕竟通过调试遍历所有程序路径不可能.

3.2插桩

         插桩有静态插桩,也有动态插桩.静态插桩是指在源代码或二进制代码中插入代码,而后在代码运行时看程序的不同反馈.动态插桩是指在程序运行时,暂停程序运行,插入/修改代码,查看程序的反馈.

3.3模糊测试

         模糊测试是通过输入不同来分析,其实质仍然是黑盒测试.随着技术的发展,模糊测试也加入了静态分析的元素,具体如借助静态分析找出给定路径的约束,从而实现精准的路径分析.当前模糊测试一般考虑在插桩工具的基础上作分析.

3.4样本分析

        顾名思义,样本分析通过匹配代码样本,从而分析漏洞.当然,样本特征可以是源代码,也可以是二进制代码,样本的载体可以是01代码,也可以是系统调用函数,内存/外设操作,也可以是函数序列,二进制代码的指令序列等,还有前两年流行的基于着色图的样本,基因样本分析等等.显而易见,样本分析的先天不足是很难分析全面的内部逻辑结构;此外,对未知漏洞无能为力.要知道,在国家间对抗中,很多未知漏洞可能除了一招制敌时使用外,其它时间是永远不会出现的.

3.5人工智能分析/大数据分析

         近两年,人工智能分析/大数据分析很流行.老实说我对此并不了解.但所有分析都要求有数据来源,软件漏洞信息来源无怪乎源代码,二进制代码,需求分析设计文档,通过社会工程等这些方面的信息.但能深入到软件内部发现内部逻辑的信息是最最关键的,特别是二进制代码所展示的内部逻辑.毕竟,软件的最终形式是二进制代码.但是从国内众多人工智能分析/大数据分析的研究机构来看,核心数据来源的采集技术水平还有待提高,否则,人工智能分析/大数据分析只能是无源之水,无本之木.

3.6二进制代码的静态分析

         二进制代码的静态分析在国内很少有人提及.究其原因在于其技术含量高,难度复杂.与源代码静态分析相比,二进制代码没有类型信息,没有变量信息,指令操作的逻辑元素单元更小,也就是所谓的粒度更细,这些都为分析增加了难度.此外,二进制分析一般涉及系统软件或后台服务程序,软件本身的逻辑结构复杂,从业人数大大减少.由于二进制分析难度大,现在国内大多以黑盒动态分析为主,效率低,对人工要求高,且不能发现深层次复杂漏洞。但是,二进制代码分析是发现软件漏洞的最重要信息来源,特别是系统底层的软件二进制代码漏洞,显得尤为重要。在网络安全领域,二进制代码分析必将是国内安全漏洞分析从业人员绕不开的坎。

 当前国外有少数二进制代码分析工具,一般是静态分析与动态分析结合.在国内,朗曦科技开发了二进制代码静态分析工具crystal,当前仅能分析PE结构的文件,仅能发现除0,堆溢,栈溢,未初始化,各类指针误用等.

朗曦科技 林孟尼

2019/9/29


前面写了关于复杂漏洞的讨论,很多人有疑惑,在此统一回复。更多技术讨论可将 “朗曦科技”微信公众号  


[课程]Linux pwn 探索篇!

最后于 2019-10-10 08:44 被internetH编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (5)
雪    币: 630
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果有不对的,骂出来。谢谢。
2019-10-10 08:42
0
雪    币: 495
活跃值: (147)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
你那个工具给个下载连接可以不?
2019-10-11 10:01
0
雪    币: 630
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
虫子回归 你那个工具给个下载连接可以不?
关注公众号吧。工具的保护还没有做好,暂不提供下载试用
2019-10-12 07:15
0
雪    币: 1700
活跃值: (676)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你说二进制是比汇编还底层的010101这个?还是说就到汇编这一层
2019-12-2 04:18
0
雪    币: 630
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
弱冠甕卿还仓 你说二进制是比汇编还底层的010101这个?还是说就到汇编这一层
反汇编的
2019-12-2 19:58
0
游客
登录 | 注册 方可回帖
返回
//