Fuzzing in QA: finding previously undiscovered security vulnerabilities

Fuzzing as a fundamental software security test

河北20选5走势图表 www.pc5a.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

  • 游江:游江闲画——猫的心事 2019-04-20
  • 第二章 在土地革命战争中开辟农村包围城市的道路 2019-04-20
  • 我相信“交警雨中护送高考生”是真,“交警雨中护送高考生”反被该高考生家长投诉是假。 2019-04-19
  • 6个关键词 教你读懂最新癌症预防报告 2019-04-16
  • 湖南衡阳一科目三考场请高僧开光祈福被责令整顿 2019-04-14
  • 端午假期国内游客超8900万人次 2019-04-14
  • 40载情定广彩 终练就“国大师” 2019-04-13
  • 孙实的专栏作者中国国家地理网 2019-04-13
  • 信息网络传播视听节目许可证 2019-04-09
  • 中国经济充当了世界经济发展的火车头。但是,作为世界经济火车头的中国,在世界主要经济体股市都走牛的情况下,为何熊途漫漫?这种不正常的现象,背后是我们资本市场的投融 2019-04-09
  • 入梅,湖北防汛如何应对 2019-04-07
  • 南宁市启用新能源汽车专用号牌 2019-04-07
  • 以古鉴今,习近平多次提及屈原 2019-04-07
  • 一粒红枸杞 父子两代情 2019-04-04
  • 【惊坛投稿】帮你上头条!来给“一语惊坛”投稿,下一个头条就是你! 2019-04-03
  • 354| 131| 263| 583| 842| 916| 151| 278| 813| 830|