代码编织梦想

具体内容可看 The Progress, Challenges, and Perspectives of Directed Greybox Fuzzing 论文笔记

术语缩写 :

  • PUT program under test
  • DSE directed symbolic execution 定向符号执行

DGF 现在的一些研究方向(内容):

  1. 设计新的 fitness
    1. 距离
    2. 相似度(比距离有优势:更能处理多目标拟合。)
    3. 脆弱性预测模型(脆弱概率)(目前精度不高)
  2. 实现多维度的 fitness 协调(感觉这个是比较好做的方向,堆料就行)
  3. 使用启发式算法来处理能量分配(本质上是在做优化,AFLgo 里面的模拟退火)
  4. Targets 预测
    • 可以从代码位置和程序行为两方面入手
  5. 生成合法输入、或者过滤无效输入
    1. 动态污点分析
    2. 语义信息
    3. 深度学习
    4. 静态分析
  6. 变异策略
  7. 符号执行解决复杂约束
  8. 检测 bug 类型
  • 前四项应该是属于 DGF 的特定任务,1-2 希望得到更有效的 fitness,3 希望能优化 fitness 的计算算法,第四项其实和 fitness 密切相关,往往 fitness 就是 targets 确定方法的一个量化。
  • 而后几项感觉算是 fuzzing 研究通用的问题,主要是用来优化 fuzzing,提高 fuzzing 的效率

挑战

  1. Fuzzing 性能下降,因为 DGF 有一些额外的处理
    1. 预处理
    2. 并行计算
    3. 提前过滤无效输入
    4. 轻量级算法
  2. 更加细粒度的调控
    1. 等加权指标偏差种子优先级
    2. 基于距离的度量的全局最优差异
    3. 勘探阶段和开发阶段的不灵活协调(EcoFuzz 解决了该问题)
  3. 过于依赖源代码(或者说二进制层次上的测试难以开展)
    1. 硬件辅助模拟
    2. 机器学习和启发式二进制差分法来识别 targets

应用

  • patch testing
  • bug reproduction
  • knowledge integration
  • result validation
  • energy saving dgf 的另一个有趣的应用是在测试资源有限的情况下。例如,当模糊物联网设备。在这种情况下,识别关键代码区域来指导测试比以无导向的方式测试整个程序更有效,这可以节省时间和计算资源花在没有 bug 的代码区域上。GREYHOUND[12]和 RVFUZZER[33]分别为 Wi-Fi 客户端和机器人车辆设计,均适用于此场景。
  • Special bug detection.

这部分启示性不大

未来趋势

  1. 多 targets 协调
  2. 多维度 fitness
  3. 多目标优化
  4. DGF 应用到其他领域(内核、协议等等)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29278173/article/details/128813596

序列化推荐系统总结:Sequential Recommender Systems: Challenges, Progress and Prospect-爱代码爱编程

作者:一元, 公众号:炼丹笔记, 特约审稿:杰少 背景 序列推荐系统(SRS)不同于传统推荐系统(RSs)包括协同过滤和基于内容的过滤,SRSs试图理解和建模用户的连续行为、用户与物品之间的交互作用以及用户偏好和商品流行度随时间的变化。SRS涉及到以上几个方面,以便更精确地描述用户上下文、意图和目标,以及物品消费趋势,从而得到更准确、定制和动

模糊测试研究方向上的挑战和机遇(Fuzzing: Challenges and Reflections论文笔记)-爱代码爱编程

前言 因想了解自动化模糊测试的研究现状,读了些相关综述。这篇《Fuzzing: Challenges and Reflflections》主要描述了当前fuzzing技术存在的问题,指明研究的热点。 Fuzzing简述 Fuzzing指一种自动挖掘漏洞的技术,其可不断产生输入值并报告那些可导致程序崩溃的点。Fuzzing分三种: 黑盒fuzzing

SoK: The Progress, Challenges, and Perspectives of Directed Greybox Fuzzing-爱代码爱编程

摘要 灰盒模糊已经成为最具可扩展性和实用性的软件测试方法。大多数灰盒模糊工具都是基于覆盖率的,因为代码覆盖率与bug覆盖率是紧密相关的。然而,由于大多数覆盖的代码可能不包含错误,盲目扩展代码覆盖的效率较低,特别是在角落的情况下。不像基于覆盖的fuzzer以一种无方向的方式扩展代码覆盖,有方向的fuzzer将大部分的时间预算花在到达特定的目标位置(例如,b

【论文分享】one fuzz doesn’t fit all: optimizing directed fuzzing via target-tailored program state...-爱代码爱编程

论文基本信息 发表会议或期刊(简称,CCF级别):ACSAC 2022 论文标题(论文简称):One Fuzz Doesn’t Fit All: Optimizing Directed Fuzzing via Target

【论文阅读】吴恩达分享的论文阅读方法-爱代码爱编程

Reading research papers 整合这个领域内比较有代表性的论文(不仅仅是论文,也可以是分享出来的blog)绘制一个资源表格,标记出自己阅读的进度,在阅读一篇论文的过程中如果发现这篇论文认可度低或者自己阅读