漏洞利用是漏洞研究中最具挑战性的问题,在实践中主要依靠安全人员的经验和高超技术编写。最近发布在 SpringerOpen 期刊 Cybersecurity 上的研究提出了一个新的技术方案生成漏洞利用样本。
Cybersecurity
软件安全漏洞是目前网络安全面临的重大威胁,NVD漏洞库仅在2018年就收录了16,555条CVE漏洞信息。而这些已公开的漏洞仅仅是漏洞总量的冰山一角。这些漏洞的分析和修补工作耗费了大量的人力,业界需要一种自动化的威胁评估方法以优先处理高威胁漏洞。
漏洞的可利用性是评估漏洞威胁的重要指标,大家普遍认为生成实际的漏洞利用样本是最准确的可利用性评估方法,但目前漏洞利用主要依靠经验丰富的安全研究人员手工编写。因此,业界需要一种自动化的漏洞利用生成技术去应对当前的网络安全形势。
DARPA(美国国防高级研究计划局)基于同样的考虑于2016年举办了网络安全超级挑战赛(Cyber Grand Challenge,CGC)。这是历史上第一次完全由计算机自动化攻防的竞赛,比赛中无任何人为干预。参赛者以CMU的David Brumley团队为代表,均为自动化漏洞利用领域的顶尖研究团队。CGC比赛将自动化软件漏洞分析与利用推向了一个新的高峰。
目前的自动化漏洞利用方案通常只会深入分析 PoC中的崩溃路径,然后在路径上寻找可利用的状态。但PoC中通常并没有可利用状态。因此当前的技术适用性存在很大的局限性。现有技术方案的另一个问题是过于依赖符号执行去探索程序路径或求解程序输入。由于符号执行的性能瓶颈,在实际的应用中并没有很好的效果。
本文中,通过内存布局制导的定向模糊测试在崩溃路径之外的替代路径(diverging path)中搜索可利用状态,对于用户层的程序,使用控制流拼接技术把PoC样本和替代路径样本组合起来,生成漏洞利用样本;对于操作系统内核这类的复杂软件,则通过部分符号执行寻找漏洞利用原语,辅助人工快速生成漏洞利用样本。
漏洞点定位与分析
对于用户层程序,本研究使用了内存标签技术( MT, Memory Tagging)去定位定位点。具体而言,本研究使用了影子内存技术去无损的记录通过内存申请获取的内存标签和内存状态。同时使用了污点传播技术,在malloc等内存申请函数返回的内存块地址指针上打上一个污点标签。然后在每一个内存读写操作时,进行内存访问安全性检测。检测的原则是每一个内存块地址指针只能访问含有相同标签的且在正确状态的内存块。如果在程序运行时,一个指针访问了含有不同标签或处于错误状态的内存,当前操作即是一个内存违例操作,当前的这条指令就是漏洞点。
在定位到漏洞点后,本研究会进一步分析受漏洞影响的内存对象,并获取内存对象的内存布局信息,生成内存布局贡献图和相关的指令序列。
对于内核漏洞的PoC,本研究基于Kernel AddressSanitizer,获取漏洞相关的关键要素信息。
替代路径探索
为了解决“漏洞利用可派生性”难题,需要崩溃路径之外的替代路径中搜索可利用状态。当前的自动化利用生成技术,如 AEG 和 Mayhem过于依赖符号执行去探索崩溃路径并寻找可利用状态。但是符号执行存在性能瓶颈而且只依赖路径约束去求解输入,这使其并不适用于可利用状态探索和漏洞利用生成。因此本研究采用模糊测试技术去探索替代路径。
用户层的替代路径探索
内存布局制导的定向模糊测试
我们通过扩展AFL来实现内存布局制导的定向模糊测试。AFL仅仅以代码覆盖率为导向进行路径探索。我们在原有的覆盖率导向基础上,以指令序列为额外的导向,不断的修正样本的变异方向,以探索那些能构造出和崩溃路径漏洞点内存布局相似的替代路径。然后本研究在替代路径中通过污点传播技术寻找可利用状态。
内核层的替代路径探索
本研究利用内核模糊测试来探索异常对象相关的系统调用,从而在替代路径寻找可利用的漏洞利用原语,辅助人工编写漏洞利用。
基于漏洞分析获取的漏洞关键要素信息,本研究构建和PoC中相似的上下文,然后通过基于漏洞上下文的内核模糊测试探索异常对象的解引用操作,并通过部分符号执行搜索路径中的可利用状态。
漏洞利用生成
基于控制流拼接的漏洞利用生成
对于用户层程序,我们通过内存布局制导的模糊测试可以获得含有可利用状态的替代路径。本研究最后通过路径拼接的方式把替代路径和PoC对应的崩溃路径组合起来,生成可利用路径。并最终通过约束求解生成程序输入,该输入即为漏洞利用样本。
实验验证
针对用户层程序和操作系统内核,我们基于开源二进制程序分析引擎angr分别实现了两个原型系统——Revery和FUZE。实验结果证明,对于造成堆错误、内存读错误、甚至不造成崩溃的PoC,Revery可生成劫持控制流或触发可利用状态的漏洞利用代码。FUZE可以有效的评估内核UAF漏洞的可利用性并提供漏洞利用原语辅助分析人员编写漏洞利用代码。
https://cybersecurity.springeropen.com/articles/10.1186/s42400-019-0028-9
声明:本文来自Springer,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。