作者:

历史paper:Chenyang Lyu, Shouling Ji, Chao Zhang, Yuwei Li, Wei-Han Lee,
Yu Song, Reheem Beyah (2019). MOPT:Optimized mutation scheduling for fuzzers. USENIX Security 2019

背景

•变异过程中的高度随机性导致对触发唯一路径或崩溃的测试用例的有限探索,从而导致发现漏洞的低效率。
•虽然现有的模糊器很好地探索了触发唯一路径和崩溃的测试用例,但是它们缺乏对模糊历史的细粒度重用来构造这些测试用例。

动机:

•1)CMP使用的大多数直接操作数在一个程序中都是重复的;
•2)不同的程序具有相同的直接操作数,这是所有操作数中的大多数。因此,当前路径约束中的直接操作数可能与其他约束中的操作数是相同的,这些操作数可能在试验内和试验间解决。
重用实践:即相同/相似的程序逻辑(通常被包装在函数和库中)在单个程序中或跨不同程序重复使用。

来自同一厂商的三个程序中触发的共享基本块和唯一基本块的数量
•试验内和试验间的模糊化历史包含丰富的关键突变策略的知识,导致发现独特的路径和崩溃。这些变异策略隐含地携带部分路径约束解,并可用于加速共享相似部分路径约束的新路径和崩溃的发现。

挑战:

如何从试验内和试验间历史中捕获触发独特路径和崩溃的突变策略。

核心思想:

利用提出的概率字节定向模式(PBOM)作为附加的变异操作符,来分别从试验间和试验内历史中学习有效的突变策略,根据输入字节值和长度从概率上提供所需的变异字节值和变异类型。然后,调用PBOM来重用高效突变策略。
具体来说,我们首先将所有变异操作符分为三种类型:覆盖、删除和插入。对于用于变异一个测试用例的每个操作符,我们临时记录输入字节值、字节长度、变异类型和相应的变异字节值。如果变异的测试用例触发了新的唯一路径或崩溃,我们将记录的数据存储到训练集中。然后,我们利用训练集中存储的数据来构建PBOM。本质上,PBOM使用散列映射将输入字节值映射到相应的高效变异策略。每个突变策略包含突变类型、突变的字节值、这种突变的频率和这种突变的选择概率。注意,突变的选择概率是根据它在历史上的频率计算的。



1)在模糊化开始时:EMS使用PBOM间初始化来构建PBOM间,并为每个唯一的in更新选择概率分布,这是整个模糊化过程中唯一的PBOM间更新。
2)在模糊化过程中:如图5所示,EMS分两个阶段调用PBOM算子。在每个变异测试用例的生成中,它不断地调用操作符分析和数据收集。PBOM内部更新将在工作流中定期调用。

评估

我们将EMS与最先进的模糊器(包括AFL、QSYM、MOPT、MOPT-dict、EcoFuzz和AFL++)在9个真实世界的程序上进行评估。结果显示,EMS发现的独特漏洞比基线多4.91倍,并且在大多数程序中比其他模糊器发现更多的线路覆盖。我们向供应商报告了所有发现的新漏洞,并将在GitHub上开放EMS的原型源代码。

不足及未来方向

•变异算子开发:EMS利用触发唯一路径和崩溃的有效变异策略来更新作为变异算子的PBOM。此外,可以对有效的变异策略进行分类,以构造不同的细粒度变异算子。
•突变位置选择:突变位置也可以由模糊历史来引导。
•机器学习的应用:机器学习算法不适合用作变异算子,因为它们会被频繁调用,从而降低执行速度。相反,对于具有高执行测试用例延迟的目标程序,例如模糊服务,机器学习算法可能因为其高拟合能力而更有潜力。

NDSS 2022 EMS: History-Driven Mutation for Coverage-based Fuzzing相关推荐

  1. 百度安全研究成果亮相 NDSS 2022

    百度安全将于 2022 年 4 月 24 至 28 日举办的 NDSS 中介绍最新安全研究成果.NDSS 为"网络和分布式安全研讨会" (The Network and Distr ...

  2. NDSS 2022 接收的列表

    ✅作者简介:大家好我是王大梨,是一名虽然菜但是爱分享的程序员.架构师.信息安全爱好者

  3. 医学自然语言处理(NLP)相关论文汇总之 ACL 2022

    医学自然语言处理(NLP)相关论文汇总之 ACL 2022 更多关于中文医疗自然语言处理的资源和论文汇总,请访问我的GitHub相关主页https://github.com/NiceSkyWang/C ...

  4. 建造更安全的SGX区块链共识机制 Proof-of-Elapsed-Time,百度安全论文入选安全顶会NDSS...

    百度安全在系统安全领域深耕多年,成果产出持续在多个世界顶会亮相.近日,百度安全有一最新研究成果在信息安全四大顶会之一NDSS 2022发表.文章聚焦在新型区块链共识机制PoET的安全问题以及解决方案. ...

  5. [论文分享] PATA: Fuzzing with Path Aware Taint Analysis

    PATA: Fuzzing with Path Aware Taint Analysis [S&P 2022] 清华和南大合作的一篇fuzzing结合污点分析的论文, 发在今年的S&P ...

  6. 【ECCV2020】完整论文集part2

    ECCV2020将于2020年8月23-28日在线上举行,今年共接受了1361篇论文,本文是接收论列表的第二部分,第一部见链接 Paper ID Paper Title Category 2515 T ...

  7. 程序自动修复相关工作总结

    思维导图 原文出处 0.背景 (1) 传统维护面临成本和维护能力不足问题 软件维护占用了软件开发成本的 50%~75%[1],其中,成本消耗最大的就是程序错误定位和修复 (2) 不可控条件下无法维护问 ...

  8. 当前的程序自动修复(automated program repair)工具介绍

    文章目录 前言 基本概念 参考文献 2008 co-evolutionary approach 2009 Genprog 2010 MutRepair(基于变异操作的修复) 2011 JAFF 201 ...

  9. Recent Fuzzing Papers

    Recent Papers Related To Fuzzing 原文在GitHub上进行更新: https://github.com/wcventure/FuzzingPaper All Paper ...

最新文章

  1. java一个点向着另一个点移动_java – 在线性路径中从一个点移动一个对象
  2. Rsync服务让SLB下多台centos服务器文件同步更新
  3. 《穿越计算机的迷雾》读书笔记三
  4. react方法返回html_React全家桶之React基础(推荐新手必看)
  5. 还不会使用linux?快来通过VMware安装centos系统吧~
  6. ActiveMQ学习总结(1)——ActiveMQ快速入门
  7. php中ci框架分页,Codeigniter(CI)框架分页函数及相关知识
  8. [Python]从哪里开始学习写代码(未完待续)
  9. js基础-16-继承
  10. 计算机网络实用技术教程txt,计算机网络实用技术教程
  11. mysql pdo连接不上_通过PDO连不上数据库
  12. 达梦 DCA 培训总结
  13. Lecture 005-Duality theory
  14. Python -- 列表解析式习题:九九乘法表、ID号
  15. 大工之星编程挑战赛第一周题解
  16. UVA 10526 - Intellectual Property (后缀数组)
  17. 计算机仿真技术生物,基于计算机仿真技术的人体生理特性和病理机制研究
  18. 前端进阶第三天进阶 HTTP协议、页面渲染、数据驱动、模板引擎、路由库
  19. 【对标TensorFlow】阿里公开内部超大规模分布式机器学习平台
  20. 华为校招java笔试题库_华为校招Java笔试题库,看你会不会做

热门文章

  1. iperf测试带宽的问题 -- 上下行带宽差距大
  2. 什么是进程? 进程具有哪些主要特性? 比较进程与程序之间相同点与不同点
  3. 机器学习中的数学——激活函数(十):Softplus函数
  4. 【Pytorch(七)】基于 PyTorch 实现残差神经网络 ResNet
  5. 看源码,搞明白Logback是如何自动生效的?
  6. 汇编语言--8251串行接口应用试验
  7. 牛客网|面试必刷TOP101
  8. oracle数组越界,为什么栈中的数组越界后经常不崩溃,还可以正常的操作呢
  9. windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流
  10. 【巨杉数据库SequoiaDB】巨杉Tech | 巨杉数据库数据高性能数据导入迁移实践