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-06-24
  • 俄罗斯金融寡头放弃奢华生活 甘愿当农民[组图] 2019-06-24
  • 我的这五年 幸福在这里 2019-06-17
  • 新疆规范法律服务事中事后监管 实现科学有效监管 2019-06-16
  • 关于《中华人民共和国监察法(草案)》的说明 2019-06-13
  • [微笑]因为人的基本需求是存在边际的,不会出现你所谓的无限制消费!比如坐公交,你会因为不要钱就一天到晚呆在公汽上么? 2019-06-07
  • 回应美方制裁 俄国家杜马酝酿对美反制法案 2019-06-07
  • 北京百子湾车祸致2死3伤 小客车女司机系无证驾驶 2019-06-06
  • 2018海创会带你领略黑科技产品 2019-06-05
  • 【扎实推进重大项目落地见效】重庆经开区发展再提速 东港片区路网工程打通“交通动脉” 2019-06-04
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-06-01
  • 光明在线培训管理平台 2019-05-27
  • 儿童掉进冰窟 小伙用双手砸出“生命通道” 2019-05-25
  • 安检不用摸 登机刷脸过 智能技术抢眼民航成果展 2019-05-14
  • 推动发展文化产业与其他关联产业深度融合 2019-05-05
  • 北京快3走势图表形态 福建时时彩赔率 lh特码资料 海南私彩合法吗 抓码王论坛383|8| 微信金豆双色球||www.fdaoxc.com.cn/ 吉林快3历史开奖走是 江苏体彩排列五走势图 总进球数难于上青天 辽宁十一选五直播 3D奖号两码积分布图 bodog娱乐城21点 乒乓球教程 一头一尾中特公开版 超级大乐透走势图综合版