- 博客(77)
- 资源 (11)
- 收藏
- 关注
原创 NSFuzz: Towards Eficient and State-Aware Network Service Fuzzing
然而,传统的灰箱模糊化方法不能直接很好地应用于网络服务,这是由于两个主要挑战(1)服务状态表示。大多数现有的灰盒模糊器主要是为无状态的本地应用程序设计的。对于基于协议的网络服务,一方面,当接收到相同的输入消息时,网络服务根据当前的会话状态做出不同的响应;另一方面,大多数bug是有状态的,只能由一系列特定的消息触发。因此,不知道服务状态的灰箱模糊解不能获得完整的反馈,这将误导遗传算法的进化方向。(2)测试效率。
2023-05-19 19:12:16
821
1
原创 Fuzzing Configurations of Program Options
大多数模糊器(及其科学评估)集中在给定单个固定程序配置(例如,引用[16,19]),因此可能无法正确测试程序功能的重要部分。因此,潜在的罕见缺陷可能会逃过检测,对模糊化性能的科学评估可能无法说明全貌。
2023-05-19 18:48:23
806
原创 Usenix Security 2022 FIXREVERTER A Realistic Bug Injection Methodology for
作者:ZenongZhang研究助理德克萨斯大学达拉斯分校的四年级博士生达拉斯, 德州, 美国。
2022-11-02 20:12:46
659
原创 Usenix Security 2022 Stateful Greybox Fuzzing
源码: https://github.com/bajinsheng/SGFuzz。作者:巴金声 新加坡国立大学(NUS)软件技术可信工程实验室。
2022-11-02 17:24:09
723
原创 NDSS 2022 EMS: History-Driven Mutation for Coverage-based Fuzzing
作者:历史paper:Chenyang Lyu, Shouling Ji, Chao Zhang, Yuwei Li, Wei-Han Lee,
2022-11-02 16:51:47
656
原创 SP22 BEACON :Directed Grey-Box Fuzzing with Provable Path Pruning
源码:https://hub.docker.com/r/yguoaz/beacon.作者:huangheqing 香港科技大学网络安全实验室历史作品:Pangolin: Incremental Hybrid Fuzzing via Polyhedral Path Abstraction S&P’20。
2022-11-02 15:18:24
626
原创 黑盒模糊测试之AFL++
运行 1 个带有 LAF ( + ) 的 afl-fuzz -Q 实例,或者您可以使用 FRIDA 模式,只需切换并删除 LAF 实例AFL_PRELOAD=libcmpcov.soAFL_COMPCOV_LEVEL=2-Q-O。然后运行尽可能多的实例,只要你有-Q模式的内核,或者 - 甚至更好 - 使用二进制重写器,如Dyninst,RetroWrite,ZAFL等。如果二进制重写器适用于您的目标,那么您可以正常使用afl-fuzz,并且它的速度将是QEMU模式的两倍(但比QEMU持久模式慢)。
2022-09-08 11:26:25
1531
翻译 通过 bncov 和覆盖率分析了解测试结果
https://dzone.com/articles/how-much-testing-is-enoughbncov的核心是一个代码覆盖率分析工具。虽然有几个众所周知的工具可以提供对代码覆盖率的可见性,但我们希望构建一个解决方案,以增强和/或扩展以下领域的功能:易于编写脚本。可编写脚本性是与大型分析工作保持一致并与其他工具结合使用的关键功能。强大的数据呈现。良好的可视化可以加快并增强理解。兼容模糊测试/测试工作流程。完全符合您需求的工具可提高生产率和速度。支持二进制目标。有时你没有原始源代码。虽
2022-04-22 16:39:30
235
原创 afl-cov实践
fuzz upx首先拉取upx代码并切换到3.94版本git clone https://github.com/upx/upx.gitcd upxgit checkout v3.94拉取依赖(在当前目录下运行)git submodule update --init --recursive上面这一步是为了拉取src/lzma-sdk/目录下的代码vim src/Makefile # toolchainCC = /home/yan/fuzz/ijon/afl-gcc
2022-04-21 15:28:51
3721
4
原创 ijon辅助函数解读
1) IJON-ENABLE:为了实现IJON-ENABLE,我们引入了一个应用于所有位图索引计算的掩码。如果掩码设置为零,则只能寻址和更新第一个位图条目。如果设置为0xFFFF,则使用原始行为。这样,我们可以有效地随意禁用和启用覆盖率跟踪。afl-llvm-rt.o.cvoid ijon_enable_feedback(){ __afl_mask = 0xffffffff;}void ijon_disable_feedback(){ __afl_mask = 0x0;}2) IJON-I
2022-04-07 17:27:17
852
原创 fuzzwatch复现
https://github.com/mechanicalnull/fuzzwatchgit clone https://github.com/mechanicalnull/fuzzwatchcd fuzzwatchpip install -r requirements.txt# This script builds an example target. It assumes you have afl-clang-fast,# you can do `apt install -y afl++-cl
2022-04-07 16:15:46
323
原创 fuzzfactory源码阅读(三)特定领域的实现
4.1 slow:最大执行路径长度我们的第一个特定于域的模糊测试应用程序是将 SlowFuzz 移植到我们的框架。此应用程序的目标是生成输入,以最大化被测程序中的执行路径长度。我们想要定义 is_waypoint(i,S,d) 谓词如下:如果输入 i 的执行导致路径长度高于 S 中的任何其他输入,则应保存该输入。特定于域的反馈映射 dsf 将单键 0 (K = {0}) 映射到自然数 (V = N)。在映射中,dsf (0) 表示测试输入 i 的执行路径长度。这些值聚合为一个数字(A =N),表示在一组
2022-04-01 18:58:57
485
原创 fuzzfactory源码阅读(二)afl-fuzz.c
afl-fuzz.c/* Compute size of DSF map based on DSF_MAX items of MAP_SIZE 4-byte records */根据MAP_SIZE 4字节记录的DSF_MAX项计算DSF地图的大小#define DSF_LEN (DSF_MAX * MAP_SIZE)EXP_ST u32* dsf_map; /* DSF - SHM与附加地图 */EXP_ST u32 dsf_cumulated[DSF_L
2022-04-01 16:56:09
407
原创 fuzzfactory源码阅读(一)代码总览
FuzzFactory 中,特定于域的模糊测试应用程序是通过检测测试程序来实现的。表 1 描述了实现本文中描述的六个域中的每个域所需的代码行。在我们的应用程序中,我们使用 LLVM 执行检测。伪代码中用于特定领域模糊化的API。 类型dsf_t; /* 特定于域的反馈图 */ /* 注册一个新域。在初始化期间调用一次。*/ dsf_t new_域(int key_size, function reduce, int a_0);/* 对 DSF 映射的更新。在测试执行期间调用。*/ int dsf_
2022-03-31 19:41:56
280
原创 ijon源码阅读
ijon对afl的修改主要在llvm-mode文件夹和afl-ijon-min.h,afl-ijon-min.cafl-ijon-min.h定义了ijon_input_info和ijon_min_state这两个struct和四个函数ijon_min_state* new_ijon_min_state();u8 ijon_should_schedule(ijon_min_state* self);ijon_input_info* ijon_get_input(ijon_min_state* sel
2022-03-30 19:11:05
374
原创 fuzzfactory复现记录
git clone https://github.com/rohanpadhye/FuzzFactory选项1:通过基于LLVM的工具进行特定领域的反馈在根目录makemake llvm-domains然后cd demoWAYPOINTS=mem ../afl-clang-fast demo.c -o demo../afl-fuzz -p -i seeds -o results ./demo其余的模糊测试环节与平时运行AFL类似。按CTRL+C来停止模糊测试。在摸索过程中,会创建以下
2022-03-29 18:15:24
3514
原创 用 AFL和ijon工具进行 Fuzz
参考【AFL(八)】用 AFL 对 LAVA-M 进行 Fuzz(LAVA上)下载 && 前期准备wget http://panda.moyix.net/~moyix/lava_corpus.tar.xzsudo apt-get install libacl1-dev设置环境export CC=afl-gccexport CXX=afl-g++运行脚本 ./validate.sh 这里没成功下载 iJon 和 iJon-data 数据集git clone h
2022-03-24 20:10:17
2972
原创 2017 S&P-Skyfire: Data-Driven Seed Generation for Fuzzing
摘要:以高度结构化的文件作为输入的抽象程序通常分阶段处理输入:语法解析、语义检查和应用程序执行。深层bug通常隐藏在应用程序执行阶段,自动生成测试输入以触发它们并非易事。基于变异的模糊化通过随机或启发式修改格式良好的种子输入来生成测试输入。大多数输入在早期语法分析阶段被拒绝。不同的是,基于生成的模糊化从规范(例如语法)生成输入。它们可以快速地将模糊化带到语法分析阶段之外。然而,大多数输入无法通过语义检查(例如,违反语义规则),这限制了它们发现深层错误的能力。在本文中,我们提出了一种新的数据驱动种子生成方法
2022-03-09 17:37:05
2993
原创 2016-SeededFuzz: Selecting and Generating Seeds for Directed Fuzzing
摘要:作为对传统随机模糊的一种改进,定向模糊利用动态污点分析来定位种子输入中可能影响安全敏感程序点的区域,并重点对这些已识别区域进行变异,以生成揭示错误的测试用例。种子输入对于定向模糊非常重要,因为它们本质上决定了我们可以测试的安全敏感程序点的数量。在这篇文章中,我们提出了一种种子选择方法,作为对定向模糊的种子生成方法的补充。通过使用静态分析、动态监控和符号执行,我们的方法可以提供带有种子的定向模糊,以经济高效的方式覆盖更安全敏感的程序点。我们实现了一个名为SeedFuzz的原型,并将其应用于五个实际应用程
2022-03-09 16:48:18
243
原创 2020 S&P-SAVIOR: Towards Bug-Driven Hybrid Testing
摘要:混合测试结合了模糊测试和协同执行。它利用模糊测试来测试容易到达的代码区域,并使用concolic执行来探索由复杂分支条件保护的代码块。因此,与模糊测试或协同执行相比,混合测试能够深入到程序状态空间。最近,混合测试取得了重大进展。然而,其以代码覆盖率为中心的设计在漏洞检测方面效率低下。首先,它盲目地为concolic执行选择种子,并旨在不断探索新代码。然而,正如统计数据所显示的,大部分探索的代码通常都没有bug。因此,在混合测试期间对代码的每个部分给予同等关注是一种非最优策略。它将实际漏洞的检测速度降低
2022-03-06 15:50:38
2067
原创 2021-基于深度学习的混合模糊测试方法
摘 要: 随着软件技术的快速发展,面向领域的软件系统在广泛使用的同时带来了研究与应用上的新挑战.由于领域应用对安全性、可靠性有着很高的要求,而符号执行和模糊测试等技术在保障软件系统的安全性、可靠性方面已经发展了数十年,许多研究和被发现的缺陷表明了它们的有效性.但是,由于两者的优劣各有不同,将这两者相结合仍是近期热门研究的话题.目前的结合方法在于两者相互协助,例如,模糊测试不可达的区域交给符号执行求解.但是,这些方法只能在模糊测试(或符号执行)运行时判定是否应该借助符号执行(或模糊测试),无法同时利用
2022-03-05 17:24:11
1009
1
原创 2019-基于符号执行与模糊测试的混合测试方法
摘 要: 软件测试是保障软件质量的常用方法,如何获得高覆盖率是测试中十分重要且具有挑战性的研究问题.模糊测试与符号执行作为两大主流测试技术已被广泛研究并应用到学术界与工业界中,这两种技术都具有一定的优缺点:模糊测试随机变异生成测试用例并动态执行程序,可以执行并覆盖到较深的分支,但其很难通过变异的方法生成覆盖到复杂条件分支的测试用例.而符号执行依赖约束求解器,可以生成覆盖复杂条件分支的测试用例,但在符号化执行过程中往往会出现状态爆炸问题,因此很难覆盖到较深的分支.有工作已经证明,将符号执行与模糊测试相
2022-03-03 21:25:03
3243
原创 2018-可编程模糊测试技术
摘 要: 模糊测试是一种有效的漏洞挖掘技术.为了改善模糊测试因盲目变异而导致的效率低下的问题,需要围绕输入特征、变异策略、种子样本筛选、异常样本发现与分析等方面不断定制模糊测试器,从而花费了大量的定制成本.针对通用型模糊测试器(即支持多类输入格式及目标软件的模糊测试器)的低成本定制和高可扩展性需求,提出了一种可编程模糊测试框架,基于该框架,漏洞挖掘人员仅需编写模糊测试制导程序即可完成定制化模糊测试,在不降低模糊测试效果的基础上,可大幅提高模糊测试器开发效率.该框架包含一组涉及变异、监控、反馈等环节的模糊测试
2022-03-02 17:28:50
298
原创 2017-A Review of Fuzzing Tools and Methods
1 介绍识别软件漏洞的技术首先可以分为两种不同的方法:静态分析和动态分析。软件的静态分析涉及检查源代码或编译的二进制文件而不执行它的方法。动态分析涉及在运行时检查软件,通常在附加某种调试器之后。静态分析虽然有用,但通常会产生许多在实践中无法利用的误报,并且需要大量的手动验证工作来确定哪些问题是真正的漏洞。但是,它确实允许在检查整个应用程序时实现完整的代码覆盖率。这种方法有很多优点,因为自动化的易用性,并且能够测试代码审查过于耗时的非常大的应用程序。2 软件漏洞3 漏洞检测3.1 静态分析静态代
2021-12-28 20:01:56
1693
原创 IEEE T RELIAB2018-Fuzzing: State of the Art
摘要:模糊技术是目前最流行的软件测试技术之一,它可以通过生成大量的测试输入来发现程序中的各种缺陷,如软件bug和漏洞等。由于其有效性,模糊算法被认为是一种很有价值的bug搜索方法。在本文中,我们概述了模糊的一般过程和分类,然后详细讨论了关键的障碍和一些最新的技术,旨在克服或减轻这些障碍。我们进一步研究和分类几种广泛使用的模糊工具。我们的主要目标是让涉众更好地理解模糊化,以及改进软件测试和安全领域的模糊化方法的潜在解决方案。为启发今后的研究,本文还对未来的研究方向进行了展望。II. REVIEW METH
2021-12-28 18:58:53
2192
原创 2018Cybersecurity- Fuzzing: a survey
Abstract安全漏洞是网络安全威胁的根源之一。 为了发现漏洞并提前修复它们,研究人员提出了几种技术,其中模糊测试是最广泛使用的技术。 近年来,像AFL这样的模糊测试解决方案在漏洞发现方面取得了很大的进步。 本文概述了最近的进展,分析了它们如何改进模糊测试过程,并阐明了模糊测试的未来工作。 首先,我们通过比较不同的常用漏洞发现技术,讨论模糊测试流行的原因。 然后,我们概述了模糊测试解决方案,并详细讨论了一种最流行的模糊测试方法,即基于覆盖率的模糊测试。 然后,我们提出了其他技术,可以使模糊过程更智能,更
2021-12-27 19:26:53
1302
原创 TSE2019-The Art, Science, and Engineering of Fuzzing: A Survey
摘要— 在当今可用的众多软件测试技术中,模糊测试由于其概念简单、部署门槛低以及发现真实世界软件漏洞的大量经验证据而仍然非常受欢迎。在较高级别上,模糊测试是指重复运行程序的过程,生成的输入可能在语法上或语义上格式不正确。虽然近年来,研究人员和从业者都投入了大量不同的精力来改进fuzzing,但这种工作的激增也使得很难获得全面而一致的模糊测试视图。为了帮助保持和使大量的模糊文献具有连贯性,本文提出了一个统一的,通用的模糊化模型以及当前模糊文献的分类法。我们通过调查使现代模糊器有效的艺术,科学和工程方面的相关文献
2021-12-27 09:54:50
697
原创 VUzzer: Application-aware Evolutionary Fuzzing
Vuzzer 是由计算机科学机构 Vrije Universiteit Amsterdam、Amsterdam Department of Informatics 以及 International Institute of Information Technology, Hyderabad 共同开发的工具。项目来源 : https://github.com/vusec/vuzzer参考资料 :《VUzzer: Application-aware Evolutionary Fuzzing》VUzzer
2021-12-16 19:40:42
369
原创 AFLsmart实践记录
下载安装 automake 及一些其他的包sudo apt-get install build-essential automake libtool libc6-dev-i386 python-pip g++-multilib报错:E: Package ‘python-pip’ has no installation candidatesudo apt-get install build-essential automake libtool libc6-dev-i386 python3-pip
2021-12-15 19:07:12
1887
原创 INVSCOV实践记录2.0
Usage实验环境:Ubuntu20.04实验对象:Xpdf4.03先构造初始语料库:使用从24小时覆盖率引导模糊会话生成的种子sudo apt-get install afl++export CC=afl-clangexport CXX=afl-clang++mkdir buildcd buildcmake ../makeafl-fuzz -i /home/yan/fuzzing_xpdf/in -o /home/yan/fuzzing_xpdf/out -d -- ./pdfin
2021-12-13 18:57:00
214
原创 Smart Greybox Fuzzing
摘要基于覆盖范围的灰盒模糊测试(CGF)是自动化漏洞检测最成功的方法之一。给定一个种子文件(作为位序列),CGF 随机翻转、删除或复制一些位以生成新文件。CGF通过保留那些生成的文件来增强覆盖率,从而以迭代方式构造(和模糊)种子语料库。但是,对于处理复杂文件格式的应用程序,随机位翻转不太可能生成有效文件(或文件中的有效块)。在这项工作中,我们引入了智能灰盒模糊测试(SGF),它利用种子文件的高级结构表示来生成新文件。我们定义了创新的突变运算符,这些运算符在虚拟文件结构上而不是在位级别上工作,这使得SGF能
2021-12-09 21:32:12
513
原创 Mechanical Phish: Resilient Autonomous Hacking
The Mechanical Phish是开源的! The Mechanical Phish是由Shellphish创建的,作为我们在DARPA网络大挑战的CRS。它在最后的比赛中大放异彩,赢得了第三名,我们对此感到非常自豪。网络大挑战是安全领域第一次尝试这样的事情。因此,Mechanical Phish是一个极其复杂的软件,有大量的组件。在网络大挑战之前,没有做这个的蓝图,所以我们不得不边做边想。不幸的是,与其说我们是一个软件开发商店,不如说我们是一个 “神秘的黑客集体”。这意味着Mechanical
2021-12-08 11:26:48
272
原创 Rise of the HaCRS: Augmenting Autonomous Cyber Reasoning Systems with Human Assistance
摘要抽象软件渗透到我们世界的方方面面,从我们的家到提供关键任务服务的基础设施。随着软件系统规模和复杂性的增加,软件安全缺陷的数量和复杂性也随之增加。对这些缺陷的分析最初是以手动方法进行的,但很快就发现,单靠手动方法是无法扩展的,而且必须使用工具来协助人类专家完成这项任务,从而产生了许多技术和方法,使脆弱性分析过程的某些方面实现自动化。最近,DARPA开展了Cyber Grand Challenge,这是一项自主脆弱性分析系统之间的竞争,旨在将工具辅助的以人为中心的范式推进到完全自动化领域,希望通过消除人为
2021-12-07 19:04:53
3541
原创 FuzzFactory: Domain-Specific Fuzzing with Waypoints
参考https://www.cnblogs.com/fuhara/p/13246485.html摘要覆盖率引导的模糊测试作为一种在解析二进制数据的程序中发现安全漏洞(如缓冲区溢出)的高效方法,已经得到了重视。最近,研究人员针对不同的领域特定测试目标,对覆盖率引导的模糊算法进行了各种专门化,如发现性能瓶颈、生成有效输入、处理魔法字节比较,每一个这样的解决方案都可能需要非平凡的实现工作,并产生一个独特的模糊工具变体。我们观察到,许多特定于领域的解决方案遵循一种常见的解决方案模式。在本文中,我们提出了Fuzz
2021-12-07 15:52:05
914
原创 daikon开发者手册
1 简介这是Daikon不变量检测器的开发者手册。有关使用Daikon的信息,请参阅Daikon用户手册。本手册是为那些已经熟悉使用Daikon,但希望对其进行定制或扩展的人准备的。更多的信息可以从http://plse.cs.washington.edu/daikon/pubs/ 的技术文件中找到。2 扩展Daikon本章介绍如何定制或修改Daikon。编译Daikon。源代码(版本控制库)。使用Eclipse。新的不变量。新的派生变量。新的不变式格式化。新的前端。新的抑制器。
2021-12-02 20:39:10
676
原创 daikon用户手册
http://plse.cs.washington.edu/daikon/download/doc/daikon.html1 引言Daikon是对可能的不变量的动态检测的实现;也就是说,Daikon不变量检测器报告可能的程序不变量。不变量是指在程序中的某一点或几点保持的属性;这些属性经常出现在断言语句、文档和正式规范中。不变量在程序理解和其他许多应用中都很有用。例子包括’x.field > abs(y)’;‘y = 2*x+3’;‘数组a被排序’;对于所有列表对象lst,‘lst.next.pre
2021-12-02 17:47:57
9092
中南大学移动应用开发实验报告一
2019-04-19
信息安全课程设计报告
2019-03-12
中南大学网络安全实验报告
2019-03-12
中南大学操作系统实验报告
2018-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人