Fuzzing:它是什么以及如何保护自己免受它的伤害?

测试软件的压力来了!

如果您是一名开发人员,您可能遇到过严重缺陷这毁了你的代码。因此,你应该采用一种测试方法发布前,模糊是这些测试技术中的一种.这是一个将已知数据输入系统的过程,以查看产生的结果是否如预期的那样。软件开发人员使用这个过程来测试系统中的bug网络罪犯可以利用以后。

在本文中,您将了解模糊是什么,它是如何工作的,以及如何在编码中实现它。首先,让我们看看fuzzing是什么!

绒毛面是什么?

模糊测试是一个允许软件开发人员和网络犯罪分子检查程序或系统的可利用漏洞的过程。要理解毛毛,你可以想一个黑盒图.输入将通过隐藏在盒子里的迷宫,而解决方案将从另一端出来。

您可以将程序分解为许多函数和逻辑过程。每一个都可以有自己的黑体图。如果您了解该软件,您应该能够在纸上绘制出它。之后,您就可以理解每个输入应该发生什么。

然而,输入并不总是产生预期的结果。事实上,一个程序可以有很多缺陷,程序员甚至可能遗漏了一些东西。此外,程序与环境的交互可能会产生缺陷。即使是简单的程序也可能有缺陷

这个测试过程从那时起就存在了1988.最初,它旨在测试操作系统的可靠性威斯康辛大学通过给它们随机输入。不幸的是,当测试时,这些随机输入破坏了大学的系统在一个三分之一的时间

在看到这些大量的崩溃后,科技行业开始更加关注软件测试。这样,网络罪犯就不会轻易发现漏洞,软件也不会在野外崩溃。

说了这么多,我们可以进一步深入不同世代的绒毛方法。这将帮助您理解模糊测试实际上是如何工作的。

绒毛是如何工作的?

随着时间的推移,毛毛已经演变成3不同的一代。每一代人都比另一代人进步。让我们每一代人都过一遍。

一个齿轮拿着放大镜聚焦在笔记本电脑屏幕上的瓢虫的图像。
改变你的方式,找到你的bug !

第一代:随机模糊

随机起毛原始技术。它只是美联储随机数据并寻找意想不到的结果。例如,假设你在计算器中输入2+2,得到的答案是5。显然,答案不应该是5,但这种错误可能是由许多原因造成的,甚至对于基本的计算器程序也是如此。例如,您可以使用浮点变量而不是整数。

第二代:基于语法的模糊

基于语法的起毛进入程序的输入数据是用什么构造的规则.许多不同的起毛软件目前市场上使用的是这种工艺。与随机模糊处理不同,基于语法的模糊处理只在逻辑上通过每条路线一次。但是,如果规则的逻辑过于严格,您可能会错过程序的大部分内容。

第三代:仪器导向模糊

Instrument-guided起毛也被称为人工智能(AI)引导起毛。该方法使用一个监视实用程序来记录每个探测的位置,并确保路由不会重复。当然,你并不真的需要使用AI。但这种选择也越来越受欢迎使过程更有效率.这样的公司谷歌正在用这个第三代程序来测试他们正在开发的软件。与基于语法或随机模糊处理不同,仪器引导模糊处理在软件中错过路线的几率更小。

网络罪犯如何使用Fuzzing

网络犯罪分子使用模糊技术来发现程序的弱点。对于网站来说,这可能是通过的输入随机字符进入一个页面扩展找到一个SQL数据库开发.事实上,这是渗透测试人员使用的一个常见过程。它帮助他们评估安全威胁或利用公司的奖励。大多数公司都有某种形式的零日漏洞奖励这使得测试人员之间的过程具有竞争性。此外,渗透测试人员在这个阶段经常使用网络刮刮工具。通过这种方式,他们获得信息添加他们的模糊查询

国家安全局(NSA)在他们开发的一个叫做嵌合体.这个软件已经有一段时间了。它可以接受已经编译成“不可读”结构语言的程序。然后,它对它们进行逆向工程。许多不同的团体——包括网络罪犯——都知道这个软件。结果,美国国家安全局在其网站上公布了它帮助渗透测试人员

网络罪犯可以在许多其他方面使用这种技术。但从根本上说,他们的目标是找到他们可以利用的漏洞.在可能的情况下,网络罪犯也会使用第三代毛毡在他们的功绩。自动化过程和使用映射特性可以大大减少寻找有用漏洞所需的时间或计算。

如何保护自己不被毛弄脏

根据攻击表面的不同,模糊测试可能是一个大问题。对于网站,您可以为查询添加超时或延迟。这将阻止自动化工具破坏平台。通常,你也可以用a非军事区(DMZ)将核心业务信息与直接的业务级数据库查询分开。即使网络犯罪分子获得了进入DMZ的权限,他们也需要与一个零信任区作战,才能进入该公司的内部工作。

最终的想法

当你开发一款软件时,你必须测试它对于bug—理想情况下,使用第三代解决方案。它能提供最多的东西高效和实用的bug发现方法

无论您的软件是web应用程序,还是在自动构建解决方案中构建的,您都必须测试它。这一点对你很重要不必写过多的数量补丁一旦你发布了软件。另外,如果你使用SCRUM逐步地释放,你仍然需要这样做在每个阶段进行测试

您对模糊处理方法还有什么问题吗?检查常见问题解答而且资源在下面部分!

常见问题解答

绒毛面是什么?

软件开发人员而且网络犯罪使用起毛检查一个程序或系统是否存在可采错误.要理解这一点,您可以将程序想象为一个黑盒图。基本上,输入将通过隐藏在盒子中的迷宫,然后解决方案从另一边出来。

使用哪种模糊方法最好?

如果可能,使用最新版本第三代方法称为instrument-guided起毛.这种方法不存在重复走同一条路的问题随机起毛。它也不会因为有缺陷的规则而错过程序的整个部分。

什么是随机模糊?

随机起毛是通过向系统输入随机数据来测试软件的过程。然后,您将看到什么输入将破坏它或导致错误。是伟大的验证程序的逻辑和安全性。然而,这个过程可以允许相同的路由测试重复,这意味着这不是一个有效的方法。

什么是基于语法的模糊?

基于语法的起毛定义规则,以帮助确保测试的路由不会重复随机起毛.然而,如果规则太严格或有缺陷,那么程序的大部分就可以被跳过。如果要用模糊测试来测试软件的可靠性,你最好使用仪器引导的模糊。

什么是仪器引导模糊?

Instrument-guided起毛有效地监视和映射过程中的输入路由。这样可以防止重复测试路由。因此,这是非常有效的,有助于确保你不会错过部分软件.仪器引导模糊是模糊您的软件的最新和最好的方法。

资源

万博注册入口关于自动化软件开发工具的文章

发现自动化可以帮助改进软件开发过程

万博注册入口关于基于云的软件开发的文章

学习在云中开发软件的好处和挑战

万博注册入口关于软件测试趋势的文章

找出最新的软件测试趋势

万博注册入口关于软件开发管道优化的文章

学习如何优化您的软件开发过程

万博注册入口TechGenix:来自4个科技巨头的开源软件文章

了解最新的新闻四家科技巨头正在开发开源软件

留下你的评论

您的电邮地址将不会公布。

此站点受reCAPTCHA和谷歌隐私政策而且服务条款适用。

滚动到顶部
Baidu