Fuzzing in QA: finding previously undiscovered security vulnerabilities

Fuzzing as a fundamental software security test

下彩网昂 www.1ikyk.com.cn The goal of fuzzing is to perform an exhaustive analysis and uncover new and unknown vulnerabilities in applications, files and hardware. True fuzzing does not work from a pre-designed set of test cases, look for certain attack signatures or attempt to locate known vulnerabilities in products.

Fuzzing is used during the development process (in the QA phase) to automatically discover the security holes that remain in the product, allowing the developer to fix those vulnerabilities before the product is shipped. For use in enterprise, a fuzzer must be an automated tool that does an exhaustive search of input combinations to test for weaknesses. To cover all input combinations is not practical for complicated products. So fuzzing must be based on prioritization algorithms to focus on inputs that are likely to 'trigger' a security hole.

Although there is a nearly infinite number of possible inputs to any given application, certain inputs that are likely to lead to the exposure of a security hole can be isolated. This is what security researchers do. However, this is a costly procedure requiring expertise and time. Developers don’t have that time, even if they have the funds. And yet, if not done by the developer some smart hacker with plenty of time on their hands will do the fuzzing for the fame and glory that comes with finding such security holes.

Making fuzzing automatic and removing the need for security expertise, is vital for standardizing the security checking phase of product development.

Fuzzing goals

There is an obvious need for enterprise grade fuzzing tools. Developers must apply this technology before release – because it is certain that many will use them on products after release.

Fuzzing before release is vital because application developers are not experts in writing secure code that is resilient to malicious intent. There are hundreds of scripts whose purpose is to break the security barriers posed by existing applications. This creates a situation where vendors must now regularly check whether its product can be attacked.

Automated fuzzing replaces manual testing

An application with about half a million lines of code will take 500 days to assess by a security specialist scanning over eight hundred lines of code per day. This could cost hundreds of thousands of dollars. And this process needs to be repeated whenever a new version of the product comes out, which can be several times a year. There is a clear need for fuzzing tools that will automate this.

Due to time constraints many vendors release their products prior to conducting a proper security audit, exposing their customers to potential vulnerabilities. This is becoming unacceptable to customers who now demand that vendors conduct security testing of their products prior to deployment or purchase.

When a security vulnerability is discovered after product delivery, a major problem arises - the vendor has the responsibility to fix the problem in the field without causing damage to the customer’s systems. But vulnerabilities are discovered daily. As hackers get better at finding vulnerabilities, and the number of vulnerabilities steadily increase, the rise in awareness on the part of customers will inevitably cause them to demand higher standards of security from vendors' products.

To summarize, there is a need for an automated fuzzing tool that provides detailed information on different types of vulnerabilities, on multiple protocols. The tool will conduct product audits, discover known and previously unknown vulnerabilities by doing a thorough test of all possible combinations, and allow for prioritization. All this, without consuming excessive time or resources.

This is where beSTORM enters the picture.

Fuzzing, a functional description

Fuzzing, also referred to as black box testing or dynamic application security testing (DAST), has been slow to be picked up by Developers because the tools are often are not supported and are single purpose in their design.

To interface with an application, a file or hardware, the fuzzer will need to speak the language it uses. This language is the protocol. In many cases a fuzzer may have been created to test a single protocol. Beyond Security’s beSTORM uses modules to do this. These modules are programmed per known protocol standards such as HTTP, FTP, SMTP, IMAP, POP3, DNS, DHCP or VOIP. More than 200 modules are programmed to accommodate nearly every protocol.

Use of these modules provides two key benefits: First, it simplifies the adjustments needed to test each new product. For example, most network devices use HTTP. Regardless of whether the network device uses a known web server for HTTP communication or if the programmers developed an HTTP-compatible application from scratch, the same module can be used for fuzzing.

Second, fuzzing modules facilitate quantification of the level of security of the product. By systematically checking the application, we can indicate how secure a certain product really is, by measuring the number of checks we have done compared with other products in the same category. This enables an actual security certification of products, based on an objective and automated scaling - as opposed to today's manual and error-prone evaluation.

A typical fuzzing application

Based on the protocol used by the target application, the correct module is selected. The user will then set beSTORM to monitor the target and provide the necessary details for the attack: IP address and port (if the attack is on a remote machine). The attack can be paused and resumed. A status bar indicates the current test that is being done, and the percentage of the attack that has been completed.

Most vulnerabilities that a full scale manual test might ever reveal are often discovered within the first 24 hours of fuzzing. The full test is expected to take several days to several weeks - depending on the size and complexity of the application and processing power available. Distributed capabilities enable to shorten this time considerably by sharing the task between multiple machines. In any event, the fuzzing is completely automated and requires no manual intervention.

For more information, please call, email, or use the form on this page.

For More Info re:
Fuzzing in QA

  • “有个景区叫宁夏”2018景区推介及产品政策在太原发布 2019-04-23
  • 工厂暴力拆解蓄电池50吨硫酸排地下 14名嫌犯被抓 2019-04-22
  • 争议!日球员破门前手球在先 竟无上港球员抗议 2019-04-22
  • 全军启动826门军事职业教育重点课程建设任务 2019-04-21
  • 打造“互联网+”,共享经济改变百姓生活 2019-04-21
  • 天津自贸试验区机场片区:融合联动 特色发展 2019-04-20
  • 金华:舞动世界杯 我是颠球王 2019-04-20
  • 端午期间 南昌站与南昌西站共加开旅客列车45列 2019-04-19
  • An advance booking of two hours can be made for Yangtze River Cableway tickets - Chongqing News - CQNEWS 2019-04-19
  • 长治旅游推介会走进晋城、郑州、安阳 2019-04-18
  • 一“证”在手  产品畅行海内外 2019-04-17
  • 庆祝中国人民解放军建军90周年阅兵在朱日和联合训练基地隆重举行 2019-04-17
  • 看见什么有用?[猜想] 2019-04-16
  • 青春建功新时代 2018年“创青春”浙江省青年创新创业大赛启动 2019-04-16
  • 马克思主义何以改变人类历史发展进程 2019-04-15
  • 29| 61| 485| 82| 288| 653| 117| 558| 374| 1000|