1.Fuzz测试:提升自动驾驶安全性
2.honggfuzz漏洞挖掘技术深究系列(1)——反馈驱动
3.有什么常见的源码模糊测试工具?
4.记某次攻防演练:大战UEditor并突破
5.微软推出了新的开源错误发现工具ProjectOneFuzz
6.安全漏洞漏洞发掘方法
Fuzz测试:提升自动驾驶安全性
在汽车制造业的发展历程中,技术创新作为支撑,源码对世界经济、源码社会发展及人们的源码生产生活方式产生了深远影响。从福特公司的源码T型车生产流水线到本田雅阁汽车的车载导航系统,再到现在的源码opcclient.exe 源码泊车辅助系统,汽车产业在技术层面持续革新。源码然而,源码随着新技术的源码加速落地,安全漏洞问题也随之显现。源码通过物联网实现网络连接的源码汽车,正面临着与手机、源码笔记本电脑相似的源码网络安全威胁。
Fuzz测试,源码作为解决汽车安全问题的源码简单有效方法,提供了必要的预防措施。Fuzz测试,亦称模糊测试,是一种自动化软件测试技术,其核心是将自动或半自动生成的随机数据输入到被测设备中,监测异常情况以发现潜在错误。Fuzz测试可应用于白盒、灰盒或黑盒测试,通过变异测试(mutation-based)或生成测试(generation-based)工具,发现先前未能发现的漏洞,包括零日漏洞。
自动驾驶的出现,将汽车技术推向了新的高度。车联网这一概念,作为IoT(Internet of Things)的一种,为汽车带来了便利与快捷,同时也成为了黑客攻击汽车控制系统的主要渠道。黑客通过网络威胁,对车辆进行攻击,可能导致严重的安全漏洞。根据Upstream Security发布的《年全球汽车网络安全报告》,预计在未来几年内,网络黑客攻击可能导致汽车业损失近亿美元。如何做好源码这表明汽车生态中的网络威胁对道路使用者的安全构成严重威胁。
由于自动驾驶尚未广泛普及,汽车制造商通常在既定的平台标准上开发自己的安全协议,导致相对应的安全漏洞未得到充分研究与记录。美国国家标准与技术研究所(National Institute of Standards and Technology,NIST)在自动驾驶汽车系统和组件的漏洞检测(Common Vulnerabilities & Exposures,CVE)数据库中记录的问题数量虽然较少,但特斯拉等涉及智能驾驶的汽车事故频发,凸显了自动驾驶安全问题的紧迫性。
Fuzz测试在自动驾驶和车联网领域发挥着关键作用。通过模拟攻击场景,Fuzz测试能够确保每辆自动驾驶汽车具备抵御试图破坏程序、绕过登录进行远程操作的攻击者的攻击能力。Fuzz测试的几种方法包括基于变异、基于重放和基于语法生成。每种方法都有其优势,能够对通信特定部分进行测试,确保所有数据包不会立即被被测设备阻塞,避免产生序列错误。
Fuzz测试不仅是一种有效的测试方案,也是解决汽车自动驾驶安全问题的关键工具。它不依赖于被测设备的信息和源代码,能够对整个堆栈进行黑盒化处理,从而在开发阶段和预发布阶段发现潜在漏洞。Fuzz测试的优势在于能够通过需要串行连接的协议进行通信,为没有TCP/IP通信的产品提供强大的测试支持。
综上所述,Fuzz测试是提升自动驾驶安全性的有效途径。通过使用Fuzz测试,开发者能够重现安全攻击、理解协议结构,并据此判断哪些部分更容易受到攻击,从而采取更有效的解决措施。当前阶段,Fuzz测试无疑是解决汽车自动驾驶安全问题必要且有效的测试方案。
honggfuzz漏洞挖掘技术深究系列(1)——反馈驱动
honggfuzz漏洞挖掘技术详解(1)——反馈驱动
反馈驱动是漏洞挖掘技术中的关键策略,它通过追踪样本触发的神雕奇侠传源码代码覆盖率,优化输入样本以提升覆盖率,从而增加发现漏洞的可能性。在业界,AFL、libfuzzer和honggfuzz是基于代码覆盖率的三大著名Fuzzer,它们均开源,可在GitHub上获取。
honggfuzz尤其受到关注,其原理与应用将是我们系列探讨的重点。我曾深入研究过honggfuzz的源码并进行二次开发,实践证明其挖掘漏洞的效果显著。系列将详细解析honggfuzz的运作机制,从代码覆盖率的三种衡量标准——函数、基本块和边界,到实际应用中的反馈驱动原理。
在honggfuzz中,基本块覆盖率是主要的统计方式。通过编译选项,如添加`-fsanitize-coverage=bb`,可以生成`sancov.map`和`sancov.raw`文件,记录执行过的基本块信息。honggfuzz会分析这些文件,计算覆盖率,根据新路径或链接库加载情况,生成变异样本以触发更多未探索的路径。
honggfuzz诞生于年,与AFL同时期发布,AFL的出现极大地推动了安全领域的发展。尽管AFL源码分析众多,honggfuzz的深度剖析却相对较少,因此我决定编写这一系列文章。个人曾为honggfuzz贡献代码,但未被采纳,于是转向自行开发,为不同平台添加新功能,并借此发现了不少CVE。
后续文章将深入探讨honggfuzz的股票各种指标源码更多细节,感谢robertswiecki创建出这款强大的工具。这些内容源自公众号:漏洞战争。
有什么常见的模糊测试工具?
探索常见模糊测试工具:全面覆盖与定制化选择在当今复杂的软件环境中,确保应用安全至关重要。模糊测试工具作为一种强大的安全测试手段,能够发现潜在漏洞并帮助开发者提升软件质量。这里有几款备受瞩目的模糊测试工具,它们各具特色,满足不同场景的需求。
首先,beSTORM,由Beyond Security打造,作为一款功能强大的模糊测试器,它无需源代码即可运行,适用于各类硬件和软件。无论是物联网设备、航空航天工具,还是低功耗蓝牙设备,只要可编程,beSTORM都能无缝协作。它的广泛兼容性使其成为跨行业应用的理想选择。
紧随其后的是Code Intelligence Fuzz (CI Fuzz),这款预配置的Ubuntu VM,作为持续集成和持续交付(CI/CD)流程的得力助手,能自动检测并修复新代码引入的漏洞。CI Fuzz直接访问源代码,支持C、C++、Java和Go等语言,随着对.NET Core和Python框架的整合,它在漏洞检测方面日益成熟。
Synopsys则提供了定制化模糊测试工具套件,针对不同语言、协议和场景,让开发者能够根据具体需求选购。他们的工具集包括针对DNS服务器到专业应用(如CAN总线或IKEv2)的全方位解决方案,提供详细的直播源码优缺点文档和支持,确保深度覆盖。
对于免费或开源选项,Peach Fuzzer凭借其全面的安全覆盖,超越了简单的扫描器,用户可以发现已知和未知的威胁,确保了更高的安全防护。同时,Spike Proxy作为专业级Web应用漏洞检测工具,基于Python架构,适用于Linux和Windows,覆盖基础攻击手段如SQL注入和XSS。
而Webscarab,作为一款Java编写的拦截代理,能够深度分析HTTP和HTTPS通信,帮助检测和修复浏览器与服务器间的漏洞。最后,OWASP WSFuzzer,作为一款GPL许可的网络服务测试工具,聚焦于HTTP SOAP服务,为开发者提供了强大的网络服务漏洞检测平台。
无论你是寻求全面覆盖,还是针对性极强的解决方案,这些模糊测试工具都能在你的安全防护网中发挥关键作用,让软件安全无死角。
记某次攻防演练:大战UEditor并突破
参与某次攻防演练,目标单位存在公开的域名备案信息。通过FOFA搜索,发现该单位存在端口的开放子域名,启动渗透流程。目录扫描后,发现/bin.rar路径可以访问到一个压缩文件,下载解压缩后,初步判断为.NET形式的站点源代码,使用C#语言编写。进一步分析dll文件的命名规则和.NET格式,判断出主要的后端逻辑代码位于xxx.Application.Web.dll文件中。为了解读二进制dll文件,使用dnspy进行反编译。为帮助网安学习者,提供一套免费资料包,包括网安学习路径思维导图、工具包、SRC分析报告、攻防实战技术电子书、CISSP认证资料、CTF实战技巧、大厂面试题集、客户端安全检测指南等。
源码中发现使用UEditor。UEditor的路径为/Utility/UEditor/controller.ashx。尝试访问关键接口,发现返回错误,可能由于WAF或EDR拦截。通过Fuzz方法,发现通过访问/Utility/UEditor/.css?action=catchimage可以绕过拦截,成功访问关键接口。利用UEditor .net版本的任意文件上传漏洞,上传哥斯拉jsp webshell。漏洞利用参考链接:freebuf.com/vuls/...。在上传过程中遇到杀软拦截,使用github.com/Tas9er/ByPas...项目对webshell进行免杀处理,最终成功上传并连接,完成UEditor站点的利用。接下来,通过愉快地打内网进行后续操作。
传统的UEditor利用方式通常需要本地编写HTML文件,包含表单以提交马地址至目标服务器。不过,原理基于HTTP请求发送马地址,因此可以直接在Burp Suite中发送请求达到相同效果,省去制作HTML文件的步骤。请求发送后,服务器返回webshell路径。总结,攻防演练过程中,通过信息收集、渗透测试、代码分析、利用漏洞等步骤,成功完成目标系统的利用,展示了攻防技术的实战应用。
微软推出了新的开源错误发现工具ProjectOneFuzz
今天早些时候,Microsoft 更新了Visual Studio Code的C ++扩展,将其扩展到了1.0版。源代码编辑器是在标准MIT许可下可在GitHub上获得的几种Microsoft产品之一。
今天,该技术巨头已经在相同的许可下发布了一个新的开源工具-OneFuzz项目。该新平台将替代Microsoft已停产的安全风险检测服务,该平台被称为“ Azure的开源自托管开发人员测试平台”。
模糊测试本质上是通过严格的测试过程来消除可利用的安全漏洞,该过程涉及用大量随机数据泛滥相关程序。尽管非常有用,但执行起来也常常很复杂。OneFuzz项目试图利用开源LLVM编译器基础结构项目的最新进展,使模糊测试变得更轻松,更连续。
由于上述进步,以前必须连接到连续构建系统的相关机制现在可以直接烘焙到其中。例如,崩溃检测可以通过asan工具内置,而覆盖范围跟踪可以使用SanitizerCoverage(sancov)工具进行烘焙。展望未来,这些更改将使在单个可执行文件中内置多种模糊测试技术,从而可以开发单元测试二进制文件。
然后,Project OneFuzz允许将这些测试二进制文件构建到CI / CD管道和云中的大规模Fuzz工作流程中。该工具的突出功能包括:
可组合的模糊测试工作流程:开放源代码允许用户使用自己的模糊测试工具,交换仪器和管理种子输入。
内置的集成模糊测试:默认情况下,模糊测试器作为一个团队来共享优势,在模糊测试技术之间交换感兴趣的输入。
程序分类和结果重复数据删除:它提供了始终重复的独特缺陷案例。
按需实时发现已崩溃的调试:它使您可以按需或从构建系统中调用实时调试会话。
可观察和可调试:透明的设计允许自省每个阶段。
Windows和Linux操作系统上的模糊性:设计成多平台。使用您自己的OS构建,内核或嵌套的管理程序进行模糊测试。
崩溃报告通知回调:当前支持Azure DevOps工作项和Microsoft Teams消息
该测试框架已在包括Microsoft Edge和Windows在内的其他Microsoft服务和平台中使用。现在,随着OneFuzz项目的可用性扩展到全世界的开发人员,可以在GitHub上访问它。微软欢迎开源社区的贡献,该公司承诺将来会对该工具进行将来的更新。
安全漏洞漏洞发掘方法
在软件开发中,安全漏洞被视为软件错误的一种,所有软件测试方法都可以用于漏洞的发现。对于漏洞发掘,黑客们运用了一系列可遵循的策略: 首先,fuzz测试,也称为黑盒测试,通过构造可能引发程序错误的输入数据,进行自动化的测试,以此寻找漏洞。 源码审计,即白盒测试,利用现代工具如C语言编译器等,对程序内部进行检查,找出隐藏的安全问题。 IDA反汇编审计,类似于源码审计,但面对的是二进制代码,即使无法获得源码,IDA作为强大的反汇编工具,也能帮助我们基于汇编代码进行安全审查。 动态跟踪分析是另一种策略,它记录程序在不同条件下的执行行为,特别是与安全相关的操作,如文件操作,以此检测竞争条件类漏洞,包括污点传播跟踪。 最后,补丁比较也是一个实用的手段,通过对厂商发布补丁前后文件的源码或反汇编码进行对比,可以揭示漏洞的具体细节。 无论哪种方法,关键都在于人工分析,需要全面覆盖流程路径。这可能包括分析设计文档、深入源码、解析反汇编代码,甚至动态调试程序,以确保漏洞的完整发现和修复。扩展资料
漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。是受限制的计算机、组件、应用程序或其他联机资源的无意中留下的不受保护的入口点。LibFuzzer workshop学习之路(final)
libfuzzer workshop是一次深入的fuzzing学习之旅,本文精选最后两个案例 - 针对re2和pcre2的fuzz,深入探讨了链接库选择、插桩编译参数设置及max_len对结果的影响。
以pcre2为例,作为Perl兼容的正则表达式库,其在许多开源软件中被广泛使用。进行源码编译时,需注意通过特定插桩参数优化编译效率。设置如fuzzer-no-link参数来确保不链接主符号,尤其在处理大型项目时,能显著提升fuzz效率。
编译过程中,根据pcre2的特性添加了如--with-match-limit和--with-match-limit-recursion限制匹配操作的资源使用和递归深度,以及--enable-never-backslash-C禁用特定正则模式,优化匹配过程。之后,分析提供的harness实现逻辑,结合参数优化执行,很快得到了crash现象。研究崩溃发生的具体位置,定位漏洞所在函数,并一步步追溯其调用链,对整个过程的细节进行了详尽的剖析。
针对re2库的fuzzing,展示了max_len选择对fuzz过程的重要性。不同长度设置下的探测效果差异显著,max_len值决定样本长度范围,从而影响寻找覆盖点的速度。通过对比不同max_len的探测结果,可以清晰地看到其对fuzz效率的影响,合理选择max_len值可以显著提升发现crash的概率。
学习总结指出,在libfuzzer workshop中,libfuzzer作为强大而常用的fuzz工具,其对开源库接口函数的fuzz能力突出。然而,设计合适的harness是挑战,需要深入了解要fuzz的开源库接口,通过逐步优化来接近发现crash的目标。
本文展示了libfuzzer workshop的关键点,从源码准备、参数优化到harness的构造和性能调优,再到深入分析crash定位和漏洞修复策略,全面展示了学习libfuzzer的深度与广度。