
论文阅读
文章平均质量分 84
学海无涯
席八
欢迎光临
展开
-
NSFuzz: Towards Eficient and State-Aware Network Service Fuzzing
然而,传统的灰箱模糊化方法不能直接很好地应用于网络服务,这是由于两个主要挑战(1)服务状态表示。大多数现有的灰盒模糊器主要是为无状态的本地应用程序设计的。对于基于协议的网络服务,一方面,当接收到相同的输入消息时,网络服务根据当前的会话状态做出不同的响应;另一方面,大多数bug是有状态的,只能由一系列特定的消息触发。因此,不知道服务状态的灰箱模糊解不能获得完整的反馈,这将误导遗传算法的进化方向。(2)测试效率。原创 2023-05-19 19:12:16 · 835 阅读 · 1 评论 -
Fuzzing Configurations of Program Options
大多数模糊器(及其科学评估)集中在给定单个固定程序配置(例如,引用[16,19]),因此可能无法正确测试程序功能的重要部分。因此,潜在的罕见缺陷可能会逃过检测,对模糊化性能的科学评估可能无法说明全貌。原创 2023-05-19 18:48:23 · 814 阅读 · 0 评论 -
Usenix Security 2022 FIXREVERTER A Realistic Bug Injection Methodology for
作者:ZenongZhang研究助理德克萨斯大学达拉斯分校的四年级博士生达拉斯, 德州, 美国。原创 2022-11-02 20:12:46 · 668 阅读 · 0 评论 -
Usenix Security 2022 Stateful Greybox Fuzzing
源码: https://github.com/bajinsheng/SGFuzz。作者:巴金声 新加坡国立大学(NUS)软件技术可信工程实验室。原创 2022-11-02 17:24:09 · 730 阅读 · 0 评论 -
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 · 671 阅读 · 0 评论 -
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 · 635 阅读 · 0 评论 -
2017 S&P-Skyfire: Data-Driven Seed Generation for Fuzzing
摘要:以高度结构化的文件作为输入的抽象程序通常分阶段处理输入:语法解析、语义检查和应用程序执行。深层bug通常隐藏在应用程序执行阶段,自动生成测试输入以触发它们并非易事。基于变异的模糊化通过随机或启发式修改格式良好的种子输入来生成测试输入。大多数输入在早期语法分析阶段被拒绝。不同的是,基于生成的模糊化从规范(例如语法)生成输入。它们可以快速地将模糊化带到语法分析阶段之外。然而,大多数输入无法通过语义检查(例如,违反语义规则),这限制了它们发现深层错误的能力。在本文中,我们提出了一种新的数据驱动种子生成方法原创 2022-03-09 17:37:05 · 2998 阅读 · 0 评论 -
2016-SeededFuzz: Selecting and Generating Seeds for Directed Fuzzing
摘要:作为对传统随机模糊的一种改进,定向模糊利用动态污点分析来定位种子输入中可能影响安全敏感程序点的区域,并重点对这些已识别区域进行变异,以生成揭示错误的测试用例。种子输入对于定向模糊非常重要,因为它们本质上决定了我们可以测试的安全敏感程序点的数量。在这篇文章中,我们提出了一种种子选择方法,作为对定向模糊的种子生成方法的补充。通过使用静态分析、动态监控和符号执行,我们的方法可以提供带有种子的定向模糊,以经济高效的方式覆盖更安全敏感的程序点。我们实现了一个名为SeedFuzz的原型,并将其应用于五个实际应用程原创 2022-03-09 16:48:18 · 252 阅读 · 0 评论 -
2020 S&P-SAVIOR: Towards Bug-Driven Hybrid Testing
摘要:混合测试结合了模糊测试和协同执行。它利用模糊测试来测试容易到达的代码区域,并使用concolic执行来探索由复杂分支条件保护的代码块。因此,与模糊测试或协同执行相比,混合测试能够深入到程序状态空间。最近,混合测试取得了重大进展。然而,其以代码覆盖率为中心的设计在漏洞检测方面效率低下。首先,它盲目地为concolic执行选择种子,并旨在不断探索新代码。然而,正如统计数据所显示的,大部分探索的代码通常都没有bug。因此,在混合测试期间对代码的每个部分给予同等关注是一种非最优策略。它将实际漏洞的检测速度降低原创 2022-03-06 15:50:38 · 2070 阅读 · 0 评论 -
2021-基于深度学习的混合模糊测试方法
摘 要: 随着软件技术的快速发展,面向领域的软件系统在广泛使用的同时带来了研究与应用上的新挑战.由于领域应用对安全性、可靠性有着很高的要求,而符号执行和模糊测试等技术在保障软件系统的安全性、可靠性方面已经发展了数十年,许多研究和被发现的缺陷表明了它们的有效性.但是,由于两者的优劣各有不同,将这两者相结合仍是近期热门研究的话题.目前的结合方法在于两者相互协助,例如,模糊测试不可达的区域交给符号执行求解.但是,这些方法只能在模糊测试(或符号执行)运行时判定是否应该借助符号执行(或模糊测试),无法同时利用原创 2022-03-05 17:24:11 · 1028 阅读 · 1 评论 -
2019-基于符号执行与模糊测试的混合测试方法
摘 要: 软件测试是保障软件质量的常用方法,如何获得高覆盖率是测试中十分重要且具有挑战性的研究问题.模糊测试与符号执行作为两大主流测试技术已被广泛研究并应用到学术界与工业界中,这两种技术都具有一定的优缺点:模糊测试随机变异生成测试用例并动态执行程序,可以执行并覆盖到较深的分支,但其很难通过变异的方法生成覆盖到复杂条件分支的测试用例.而符号执行依赖约束求解器,可以生成覆盖复杂条件分支的测试用例,但在符号化执行过程中往往会出现状态爆炸问题,因此很难覆盖到较深的分支.有工作已经证明,将符号执行与模糊测试相原创 2022-03-03 21:25:03 · 3250 阅读 · 0 评论 -
2018-可编程模糊测试技术
摘 要: 模糊测试是一种有效的漏洞挖掘技术.为了改善模糊测试因盲目变异而导致的效率低下的问题,需要围绕输入特征、变异策略、种子样本筛选、异常样本发现与分析等方面不断定制模糊测试器,从而花费了大量的定制成本.针对通用型模糊测试器(即支持多类输入格式及目标软件的模糊测试器)的低成本定制和高可扩展性需求,提出了一种可编程模糊测试框架,基于该框架,漏洞挖掘人员仅需编写模糊测试制导程序即可完成定制化模糊测试,在不降低模糊测试效果的基础上,可大幅提高模糊测试器开发效率.该框架包含一组涉及变异、监控、反馈等环节的模糊测试原创 2022-03-02 17:28:50 · 303 阅读 · 0 评论 -
2017-A Review of Fuzzing Tools and Methods
1 介绍识别软件漏洞的技术首先可以分为两种不同的方法:静态分析和动态分析。软件的静态分析涉及检查源代码或编译的二进制文件而不执行它的方法。动态分析涉及在运行时检查软件,通常在附加某种调试器之后。静态分析虽然有用,但通常会产生许多在实践中无法利用的误报,并且需要大量的手动验证工作来确定哪些问题是真正的漏洞。但是,它确实允许在检查整个应用程序时实现完整的代码覆盖率。这种方法有很多优点,因为自动化的易用性,并且能够测试代码审查过于耗时的非常大的应用程序。2 软件漏洞3 漏洞检测3.1 静态分析静态代原创 2021-12-28 20:01:56 · 1696 阅读 · 0 评论 -
IEEE T RELIAB2018-Fuzzing: State of the Art
摘要:模糊技术是目前最流行的软件测试技术之一,它可以通过生成大量的测试输入来发现程序中的各种缺陷,如软件bug和漏洞等。由于其有效性,模糊算法被认为是一种很有价值的bug搜索方法。在本文中,我们概述了模糊的一般过程和分类,然后详细讨论了关键的障碍和一些最新的技术,旨在克服或减轻这些障碍。我们进一步研究和分类几种广泛使用的模糊工具。我们的主要目标是让涉众更好地理解模糊化,以及改进软件测试和安全领域的模糊化方法的潜在解决方案。为启发今后的研究,本文还对未来的研究方向进行了展望。II. REVIEW METH原创 2021-12-28 18:58:53 · 2198 阅读 · 0 评论 -
2018Cybersecurity- Fuzzing: a survey
Abstract安全漏洞是网络安全威胁的根源之一。 为了发现漏洞并提前修复它们,研究人员提出了几种技术,其中模糊测试是最广泛使用的技术。 近年来,像AFL这样的模糊测试解决方案在漏洞发现方面取得了很大的进步。 本文概述了最近的进展,分析了它们如何改进模糊测试过程,并阐明了模糊测试的未来工作。 首先,我们通过比较不同的常用漏洞发现技术,讨论模糊测试流行的原因。 然后,我们概述了模糊测试解决方案,并详细讨论了一种最流行的模糊测试方法,即基于覆盖率的模糊测试。 然后,我们提出了其他技术,可以使模糊过程更智能,更原创 2021-12-27 19:26:53 · 1307 阅读 · 0 评论 -
TSE2019-The Art, Science, and Engineering of Fuzzing: A Survey
摘要— 在当今可用的众多软件测试技术中,模糊测试由于其概念简单、部署门槛低以及发现真实世界软件漏洞的大量经验证据而仍然非常受欢迎。在较高级别上,模糊测试是指重复运行程序的过程,生成的输入可能在语法上或语义上格式不正确。虽然近年来,研究人员和从业者都投入了大量不同的精力来改进fuzzing,但这种工作的激增也使得很难获得全面而一致的模糊测试视图。为了帮助保持和使大量的模糊文献具有连贯性,本文提出了一个统一的,通用的模糊化模型以及当前模糊文献的分类法。我们通过调查使现代模糊器有效的艺术,科学和工程方面的相关文献原创 2021-12-27 09:54:50 · 703 阅读 · 0 评论 -
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 · 371 阅读 · 0 评论 -
Smart Greybox Fuzzing
摘要基于覆盖范围的灰盒模糊测试(CGF)是自动化漏洞检测最成功的方法之一。给定一个种子文件(作为位序列),CGF 随机翻转、删除或复制一些位以生成新文件。CGF通过保留那些生成的文件来增强覆盖率,从而以迭代方式构造(和模糊)种子语料库。但是,对于处理复杂文件格式的应用程序,随机位翻转不太可能生成有效文件(或文件中的有效块)。在这项工作中,我们引入了智能灰盒模糊测试(SGF),它利用种子文件的高级结构表示来生成新文件。我们定义了创新的突变运算符,这些运算符在虚拟文件结构上而不是在位级别上工作,这使得SGF能原创 2021-12-09 21:32:12 · 525 阅读 · 0 评论 -
Mechanical Phish: Resilient Autonomous Hacking
The Mechanical Phish是开源的! The Mechanical Phish是由Shellphish创建的,作为我们在DARPA网络大挑战的CRS。它在最后的比赛中大放异彩,赢得了第三名,我们对此感到非常自豪。网络大挑战是安全领域第一次尝试这样的事情。因此,Mechanical Phish是一个极其复杂的软件,有大量的组件。在网络大挑战之前,没有做这个的蓝图,所以我们不得不边做边想。不幸的是,与其说我们是一个软件开发商店,不如说我们是一个 “神秘的黑客集体”。这意味着Mechanical原创 2021-12-08 11:26:48 · 277 阅读 · 0 评论 -
Rise of the HaCRS: Augmenting Autonomous Cyber Reasoning Systems with Human Assistance
摘要抽象软件渗透到我们世界的方方面面,从我们的家到提供关键任务服务的基础设施。随着软件系统规模和复杂性的增加,软件安全缺陷的数量和复杂性也随之增加。对这些缺陷的分析最初是以手动方法进行的,但很快就发现,单靠手动方法是无法扩展的,而且必须使用工具来协助人类专家完成这项任务,从而产生了许多技术和方法,使脆弱性分析过程的某些方面实现自动化。最近,DARPA开展了Cyber Grand Challenge,这是一项自主脆弱性分析系统之间的竞争,旨在将工具辅助的以人为中心的范式推进到完全自动化领域,希望通过消除人为原创 2021-12-07 19:04:53 · 3544 阅读 · 0 评论 -
FuzzFactory: Domain-Specific Fuzzing with Waypoints
参考https://www.cnblogs.com/fuhara/p/13246485.html摘要覆盖率引导的模糊测试作为一种在解析二进制数据的程序中发现安全漏洞(如缓冲区溢出)的高效方法,已经得到了重视。最近,研究人员针对不同的领域特定测试目标,对覆盖率引导的模糊算法进行了各种专门化,如发现性能瓶颈、生成有效输入、处理魔法字节比较,每一个这样的解决方案都可能需要非平凡的实现工作,并产生一个独特的模糊工具变体。我们观察到,许多特定于领域的解决方案遵循一种常见的解决方案模式。在本文中,我们提出了Fuzz原创 2021-12-07 15:52:05 · 922 阅读 · 0 评论 -
daikon开发者手册
1 简介这是Daikon不变量检测器的开发者手册。有关使用Daikon的信息,请参阅Daikon用户手册。本手册是为那些已经熟悉使用Daikon,但希望对其进行定制或扩展的人准备的。更多的信息可以从http://plse.cs.washington.edu/daikon/pubs/ 的技术文件中找到。2 扩展Daikon本章介绍如何定制或修改Daikon。编译Daikon。源代码(版本控制库)。使用Eclipse。新的不变量。新的派生变量。新的不变式格式化。新的前端。新的抑制器。原创 2021-12-02 20:39:10 · 691 阅读 · 0 评论 -
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 · 9129 阅读 · 0 评论 -
Dynamically Discovering Likely Program Invariants to Support Program Evolution
摘要明确声明的程序不变量可以帮助程序员识别修改代码时必须保留的程序属性。然而,在实践中,这些不变量通常是隐式的。期望程序员使用不变量对代码进行完全注释的另一种方法是自动从程序本身推断可能的不变量。本研究的重点是从执行跟踪中发现不变量的动态技术。本文报告了三个结果。首先,它描述了动态发现不变量的技术,以及体现这些技术的名为Daikon的实现。其次,报告了Daikon在两套目标计划中的应用。在Gries的程序推导工作中,系统重新发现了预定义的不变量。在缺少显式不变量的C程序中,系统发现了有助于软件演化任务的不原创 2021-12-01 17:24:27 · 168 阅读 · 0 评论 -
ARBITRAR: User-Guided API Misuse Detection
摘要软件api表现出丰富的多样性和复杂性,这不仅使它们成为编程错误的常见来源,而且阻碍了程序分析工具对它们进行检查。这类工具要么要求精确的API规范,这需要程序分析专家,要么假定正确的API用法遵循简单的习惯用法,可以从代码中自动挖掘,但准确性较差。我们提出了一种新的方法,允许普通程序员发现API的误用。我们的方法与用户交互,对每个目标API方法的有效和无效用法进行分类。它通过使用一种主动学习算法,根据API的无效可能性对其使用进行排序,从而最小化用户负担。我们在一个名为ARBITRAR的C/ c++程序原创 2021-11-29 16:50:54 · 401 阅读 · 0 评论 -
2020 A systematic review of fuzzing based on machine learning techniques
摘要——安全漏洞在网络安全体系中起着至关重要的作用。Fuzzing技术作为一种漏洞发现技术,被广泛应用于提前减少破坏。然而,传统的模糊技术面临许多挑战,如如何变异输入种子文件,如何增加代码覆盖率,以及如何有效地绕过验证。机器学习技术作为一种新方法被引入模糊测试,以缓解这些挑战。本文综述了近年来利用机器学习技术进行模糊测试的研究进展,分析了机器学习如何改进模糊过程和结果,并对未来的模糊测试工作进行了展望。首先,本文讨论了机器学习技术可以用于模糊场景的原因,并确定了机器学习已经被使用的六个不同阶段。然后从机器学原创 2021-11-18 20:58:58 · 8638 阅读 · 0 评论 -
The Daikon system for dynamic detection of likely invariants
摘要Daikon是动态检测可能不变量的实现;也就是说,Daikon不变量检测器报告可能的程序不变量。不变量是在程序中的某个点或多个点上保持不变的属性;这些通常用于断言语句、文档和正式规范中。示例包括常数(x=a)、非零(x6=0)、在范围(a)内≤十、≤b) ,线性关系(y=axb),排序(x≤y) ,来自库的函数(x=fn(y)),包含(x∈y) ,分类(x被排序),等等。用户可以扩展Daikon以检查其他不变量。动态不变检测运行程序,观察程序计算的值,然后报告在观察到的执行过程中为真的属性。动态不变检原创 2021-11-14 21:20:47 · 638 阅读 · 0 评论 -
USENIX 2021-The Use of Likely Invariants as Feedback for Fuzzers
摘要虽然模糊测试被证明是发现软件缺陷的一种非常有效的技术,但开放性挑战仍然存在。它的一个主要局限性是,流行的覆盖率引导设计经过优化,可以覆盖受测程序的不同部分,但当仅可访问性不足以触发漏洞时,这种设计会遇到困难。实际上,许多bug需要一个特定的程序状态,该状态不仅涉及控制流,还涉及一些程序变量的值。不幸的是,过去提出的用于捕获项目状态的替代勘探策略在实践中几乎没有帮助,因为它们会立即导致状态爆炸。在本文中,我们提出了一种新的反馈机制,通过考虑程序变量之间的常用值和关系来增加代码覆盖率。为此,我们在基本块原创 2021-11-03 20:41:58 · 459 阅读 · 0 评论 -
2019 A Review of Machine Learning Applications in Fuzzing
摘要在过去的几十年中,模糊在改进软件开发和测试方面发挥了重要作用。最近对模糊化的研究集中在机器学习(ML)的应用上,为克服模糊化过程中的挑战提供了有用的工具。本文综述了最大似然法在模糊化中的应用研究现状。具体来说,本综述讨论了ML在模糊化中的成功应用,简要探讨了遇到的挑战,并推动了未来解决模糊化瓶颈的研究。内容在本次调查中,我们重点关注三种主要的ML类型,每种类型都适用于不同类型的任务。监督学习用于训练模型以识别给定数据点的类标签,例如图像是否包含特定对象。这种类型的ML需要数据集,其中每个数据点都有原创 2021-11-02 19:24:24 · 293 阅读 · 0 评论 -
2018 Survey of Directed Fuzzy Technology
摘要模糊测试技术可以有效地检测出漏洞。基于有向符号执行(DSE)模糊和有向灰盒模糊(DGF),能够快速有效地到达指定目标位置并扫描漏洞。本文介绍了有向模糊测试技术的理论知识,以及几种先进的模糊测试工具,阐述了它们的优点内容大多数定向模糊器都基于符号执行[8]。基于目标的定向模糊识别和模糊设定中的特定输入字节,以获得给定程序位置的特定值。它使用经典染色分析[9]来确定种子输入的某些部分,这些部分应优先考虑,以提高生成观察目标位置漏洞所需值的概率(例如,除法运算符分母中的零值[10]),这可以极大地减少搜原创 2021-11-02 16:11:16 · 172 阅读 · 0 评论 -
2021 SoK: The Progress, Challenges, and Perspectives of Directed Greybox Fuzzing
摘要灰盒模糊已经成为最具可扩展性和实用性的软件测试方法。大多数灰盒模糊工具都是基于覆盖率的,因为代码覆盖率与bug覆盖率是紧密相关的。然而,由于大多数覆盖的代码可能不包含错误,盲目扩展代码覆盖的效率较低,特别是在角落的情况下。不像基于覆盖的fuzzer以一种无方向的方式扩展代码覆盖,有方向的fuzzer将大部分的时间预算花在到达特定的目标位置(例如,bug倾向区)而不会浪费资源去强调不相关的部分。因此,直接灰盒模糊特别适合于补丁测试、bug复制和特殊bug查找等场景。本文首次对定向灰盒模糊进行了深入的研究原创 2021-11-01 21:46:20 · 551 阅读 · 0 评论 -
2021 Fuzzing: Challenges and Reflections
变异器更多的软件我们如何有效地模糊更多类型的软件系统?我们已经知道如何模糊命令行工具(AFL和KLEE)和应用程序编程接口(api) (LibFuzzer)。fuzzer产生输入并观察程序的输出。社区正在积极地研究如何模糊那些具有高度结构化输入的程序,比如文件解析器或面向对象的程序。然而,作为其执行的一部分与环境进行交互的模糊网络物理系统,或由其训练数据决定行为的机器学习系统,都是一个探索不足的领域。我们如何模糊有状态的软件,比如协议实现,它可以为相同的输入产生不同的输出?大多数灰盒和白盒模糊器都是用一原创 2021-10-28 19:52:59 · 247 阅读 · 0 评论 -
MOPT: Optimize Mutation Scheduling for Fuzzers
MOPT:优化模糊器的变异调度摘要基于变异的模糊化是最流行的漏洞发现解决方案之一。它生成有趣测试用例的性能在很大程度上取决于变异调度策略。然而,现有的模糊程序通常遵循一个特定的(例如,统一的)分布来选择变异算子,这在发现一般程序上的漏洞方面效率很低。因此,在本文中,我们提出了一种新的变异调度方案MOPT,它使基于变异的模糊器能够更有效地发现漏洞。MOP实现了一种定制的粒子群优化(PSO)算法,以找到与模糊有效性相关的算子的最优选择概率分布,并提供了一种起搏器模糊模式,以加快PSO的收敛速度。我们将MOP原创 2021-10-21 16:48:27 · 3149 阅读 · 0 评论 -
Coverage-based Greybox Fuzzing as Markov Chain
基于覆盖的灰盒模糊马尔可夫链摘要基于覆盖率的灰盒模糊(CGF)是一种不需要程序分析的随机测试方法。一个新的测试是通过稍微改变一个种子输入来生成的。如果测试练习了一条新的有趣的路径,它将被添加到种子集中;否则,它将被丢弃。我们观察到,大多数测试采用相同的少数“高频”路径,并制定策略,通过向低频路径倾斜,探索更多具有相同测试次数的路径。我们使用马尔可夫链模型解释CGF的挑战和机遇,马尔可夫链模型规定了模糊化执行路径的种子生成执行路径J的输入的概率。每个状态(即种子)都有一个能量,指定从该种子生成的输入数量原创 2021-10-21 15:27:06 · 470 阅读 · 0 评论 -
学会阅读论文
参考知乎《如何在计算机应用领域寻找研究想法》提示1:学会阅读论文,培养品味《how to read a paper》THE THREE-PASS APPROACH关键的想法是,你应该把论文读三遍,而不是从头读到尾。每一关都完成了特定的目标并建立在前一关的基础上:第一关让你对论文有一个大致的了解。第二关让你掌握论文的内容,而不是细节。第三关帮助你深入理解论文。第一关第一步是快速扫描,以便鸟瞰纸张。你还可以决定是否需要再传球。此过程大约需要5到10分钟,包括以下步骤:1.仔细阅读标题、摘要和导言原创 2021-10-19 16:23:39 · 146 阅读 · 0 评论 -
USENIX2021-SELECTIVE TAINT: Efficient Data Flow Tracking With Static Binary Rewriting
SELECTIVE TAINT:静态二进制重写的高效数据流跟踪摘要污染分析已广泛应用于漏洞检测、信息流跟踪、恶意软件分析和协议逆向工程等安全应用领域。最先进的污染分析工具通常构建在动态二进制检测之上,动态二进制检测在每一条可能的指令上进行检测,并依赖运行时信息来决定特定指令是否涉及污染,因此通常具有高性能开销。本文提出了一种有效的二进制可执行文件选择性污点分析框架SelectionTaint。关键思想是使用静态二进制重写而不是动态二进制插入,选择性地插入涉及污染分析的指令。在较高级别上,选择性地静态扫描原创 2021-10-14 20:42:40 · 371 阅读 · 0 评论 -
IEEE2020-IJON: Exploring Deep State Spaces via Fuzzing
https://www.cnblogs.com/xuesu/p/14551924.htmlhttp://www.hackdig.com/03/hack-77659.htm摘要目前fuzzing的技术仍无法全自动地、高效地解决复杂状态机的问题。当前大多数方法仅限于添加字典或新的种子作为输入来引导fuzzer。在处理复杂程序时,这些“人机交互”机制无法发现代码库的新部分。在本文中,作者提出了IJON,这是一种注释机制(annotation mechanism),分析人员可以使用它来指导fuzzer。与上原创 2021-10-13 20:13:55 · 1076 阅读 · 0 评论 -
AFL++: Combining Incremental Steps of Fuzzing Research
AFL++:结合模糊化研究的增量步骤摘要在本文中,我们介绍了AFL++,一个社区驱动的开源工具,它结合了最先进的模糊研究,使研究具有可比性、可复制性、可组合性,最重要的是可使用性。它提供了多种新颖的特性,例如它的定制变异器api,能够在许多阶段扩展模糊化过程。有了它,经验丰富的安全测试人员也可以编写特定目标的变体。我们希望AFL++不仅能成为当前研究的一个新的基线工具,也能成为未来研究的一个新的基线工具,因为它可以快速测试新技术,不仅可以评估单一技术相对于现有技术的有效性,还可以与其他技术相结合。本文对原创 2021-10-13 15:36:49 · 8025 阅读 · 0 评论 -
STOCHFUZZ: Sound and Cost-effective Fuzzing of Stripped Binaries by Incremental and Stochastic Rewri
通过增量和随机重写对剥离二进制文件进行合理且经济高效的模糊化摘要模糊化剥离的二进制文件带来了许多困难的挑战,因为模糊程序需要检测二进制文件来收集运行时反馈,以指导输入变异。然而,由于缺少符号信息,在剥离的二进制文件上很难进行正确的检测。现有技术要么依赖硬件和昂贵的动态二进制翻译引擎(如QEMU),要么做出不切实际的假设(如二进制文件没有内联数据)。我们观察到,模糊化是一个高度重复的过程,提供了大量的尝试和错误机会。因此,我们提出了一种新的增量随机重写技术STOCHFUZZ,它借助于模糊化过程。它生成许多原创 2021-10-12 21:07:30 · 295 阅读 · 0 评论 -
One Engine to Fuzz ’em All: Generic Language Processor Testing with Semantic V alidation
摘要抽象语言处理器,如编译器和解释器,在构建现代软件中是不可或缺的。语言处理器中的错误可能导致严重后果,如功能不正确,甚至恶意攻击。然而,自动测试语言处理器以发现bug并非易事。现有的测试方法(或模糊程序)要么无法生成高质量(即语义正确的)测试用例,要么只支持有限的编程语言。在本文中,我们提出了POLYGLOT,这是一个通用的模糊框架,可以生成高质量的测试用例,用于探索不同编程语言的处理器。为了实现通用性,Polyglot通过**统一的中间表示(IR)**消除了编程语言在语法和语义上的差异。为了提高语言原创 2021-10-12 16:10:09 · 1811 阅读 · 0 评论