最新消息:

Mozilla推出FuzzDB,安全测试用例数据库

安全知识 admin 2399浏览 0评论

Mozilla 推出了 FuzzDB 开源项目,这是一个用于对应用程序进行 Fuzz 安全测试的攻击模式和发现模式数据库,也就是一个包含了各种安全攻击模式的测试用例集合。其中包括可用于识别特殊的服务器响应和文档资源的攻击模式、可预 测的资源名称、正则表达式模式等等。 FuzzDB 可以用来做什么? 你可以使用 FuzzDB 来测试 Web 应用程序的安全性,比如:

  • 可结合流行的渗透测试工具(如 OWASP Zap 或 Burp Suite Web)对应用进行渗透测试
  • 作为一个标准的 ZAP Intercepting Proxy 插件
  • 构建新的自动扫描器和自动化渗透测试工具
  • 通过使用 HTTP 语义以外的东西来测试 Web 服务
  • 可作为恶意输入内容,来测试 GUI 或命令行软件
  • 使你的开源或商业应用程序安全性更高
  • 识别你的探测器中的特殊响应
  • 可通过这些测试用例来模拟攻击你的 Web 服务器,以测试 IDS 或 IPS
  • Web 安全产品测试
  • 测试自定义的 Web 服务器或其他网络服务中的漏洞
  • 构建入侵识别和响应系统
  • 可作为一个学习工具,帮你更好地理解各种不同的、恶意的、能导致漏洞的字节组合

对于推出 FuzzDB 的原因,开发者 Amuntner 表示:

在网络安全方面,大多数人只关注攻击表面的东西,而很少去关注攻击模式库的开发。当我们动态测试 Web 应用程序的安全漏洞时,我们所使用的测试用例是否足够好?是否足够全面?
因此我将精力放在了找某些类型安全漏洞的速度和准确性上,并开始对各种攻击字符串、攻击文件和词典进行收集和分类,然后重新组织,就诞生了 FuzzDB。

FuzzDB 既然是一个安全测试用例集合,那么也不排除别有用心的人会利用它进行破坏。对此 Amuntner 认为,该项目的根本目的是用来进行安全测试,如果开发人员和测试人员在软件开发周期中使用了 FuzzDB,那么其他人就不会有机会找到漏洞。
Amuntner 表示,FuzzDB 的终极目标是——作为一个攻击工具,FuzzDB 已经过时了。因为 Web 应用程序都已变得更加安全了,攻击者通过 FuzzDB 也找不到类似的漏洞了。

详细信息:Introducing FuzzDB

项目地址:https://github.com/rustyrobot/fuzzdb

Introducing FuzzDB

FuzzDB is an open source database of attack patterns, predictable resource names,  regex patterns for identifying interesting server responses, and documentation resources. It’s most often used testing the security of web applications but can be useful for many other things. FuzzDB started off as years of my own personal documentation and research notes and gradually evolved into its current form.
This is the first of a series of blog posts about FuzzDB. It discusses:

  • The problem that led to the creation of FuzzDB
  • What kinds of things are in FuzzDB
  • The different ways in which FuzzDB could be used
  • The future of FuzzDB

FuzzDB, is hosted at Google Code: https://code.google.com/p/fuzzdb/

Thinking About Test Cases

A lot of attention has been paid to identifying attackable surface areas, but less to the development of attack pattern libraries. When we dynamically test web applications for security vulnerabilities, how good are the test cases we’re using?

 

Commercial web scanning tool vendors put significant research effort into this problem, but the product of this research is considered intellectual property and locked up inside the application. As users, in order to learn what kinds of test cases are being generated we would need to painstakingly record and analyze its traffic. At the time I initially released FuzzDB, most open source web fault injection tools had sets of test cases which were woefully incomplete and inadequate. There are too many permutations of symbols and encodings used in web protocols for anyone to reliably and repeatably recall all of them. As for the commercial tools, how complete are their sets of test cases, anyway? It’s not always easy to tell. What were they actually testing for? These tools aren’t just test case lists, they’re lists wrapped in complex sets of rules that determine which test cases to use when  and where. After considering these details, I had some doubts about the effectiveness of the typical application testing process.
My thoughts turned to increasing the speed and accuracy with which I could find certain classes of vulnerabilities during assessments. I began collecting, categorizing, and using lists of attack strings and of common file and directory names. Eventually I organized them into what is now FuzzDB and made it freely available under an Open Source license, the Creative Commons Attribution license.
As with any tool, an individual with malicious intent could potentially use FuzzDB in bad ways. However, I believe that it’s better to provide this information for the security of all. More importantly, if developers and testers have access to a good set of test cases, software will be released that has already passed this list of test cases.
That’s my ultimate goal for FuzzDB: for it to become obsolete as an attack tool because the applications become more secure. When applications and frameworks are inoculated against its patterns through testing and secure coding techniques, bad actors will no longer find the patterns in FuzzDB to be useful.

What’s in FuzzDB?

Predictable Resource Locations – Because there are a small number of popular server OS and infrastructure application packaging systems, resources such as logfiles and administrative directories are typically located in a small number of predictable locations. FuzzDB contains a comprehensive database of these, categorized by OS platform, web server, and  application. The intent is for a tester to use these lists to be able to make educated rather than brute-force guesses, significantly increasing the likelihood of successfully forcible browsing interesting and vulnerable resources. Also, they’re appropriate to be used in creating automated scanners as well as IDS/IPS signatures.
Attack Patterns – The attack pattern test-case sets are categorized by platform, language, and attack type. These are malicious and malformed inputs known to cause information leakage and exploitation. FuzzDB contains comprehensive lists of attack payloads known to cause issues like OS command injection, directory listings, directory traversals, source exposure, file upload bypass, authentication bypass, http header crlf injections, and more.
When I say “malicious inputs,” I mean it. Downloading the project may cause antivirus alerts or trigger pattern-based malicious code sensors. While FuzzDB is itself nothing but a collection of text files that are harmless on their own, some of the patterns included in the files have been used extensively in worms, malware, and other exploits.
Response Analysis – Since system responses also contain predictable strings, FuzzDB contains a set of regex pattern dictionaries such as interesting error messages to aid detection software security defects, lists of common Session ID cookie names, regex for numerous Personally Identifiable Information, and more.
Documentation – Helpful documentation and cheatsheets sourced from around the web that are relevant to the payload categories are provided.
Other useful stuff – Webshells, common password and username lists, and some handy wordlists.
You can browse it’s contents using Google Code’s Source browser.

What can FuzzDB be used for?

  • Web application penetration testing using popular penetration testing tools like OWASP Zap or Burp Suite
  • A standard ZAP Intercepting Proxy add-on
  • Building new automated scanners and automation-assisted manual penetration test tools
  • Testing network services that use something other than HTTP semantics
  • As malicious inputs for testing GUI or command-line software
  • Using the patterns to make your open source or commercially licensed application better
  • Identifying interesting responses to your probes. Here is a screenshot illustrating how this looks in Burp Suite
  • Testing your IDS or IPS by using these test cases to “attack” your web server
  • Testing during a bake-off of web security product vendors
  • Testing a new custom web server or other network service for vulnerability to the patterns that have worked on one or more other platforms in the past
  • Building intrusion identification and response systems
  • Winning app security Capture the Flag competitions
  • As a learning tool for better understanding various different malicious byte combinations which can cause the same vulnerability

If you’re using FuzzDB in a novel way, I’d love to hear about it!

The Future of FuzzDB

There is still a lot of work to be done to improve FuzzDB. My plan for the upcoming year includes:

  • Respond to the outstanding bugs
  • Come up with a consistent naming structure (this is actually one of the bugs)
  • Write more documentation, such as these blog posts
  • Update the Discovery files, they’re still very useful, but a few years old.
  • Improve some of the Attack payload categories
  • Help it work better with OWASP Zap and Minion

In addition, FuzzDB will move into a wiki that will allow discussion of the contents and permit collaboration on new items.
If you’re interested in helping in any of these areas or have suggestions such as a consistent directory and name format for FuzzDB or have more  fuzz files to send, I’d love to hear from you.

转载请注明:jinglingshu的博客 » Mozilla推出FuzzDB,安全测试用例数据库

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址