如果软件出现错误,你唯一能做的就是尽最大努力消除它,除了“杀死程序员,牺牲上天”。"。毕竟,bug不仅会使软件崩溃,还可能被黑客用于恶意攻击。
因此,如果有人告诉你保留一个bug实际上是个好主意,你肯定会嘲笑它。一项新的研究表明,bug实际上可以充当诱饵,显著转移黑客的注意力,并阻止软件受到攻击。
这种方法有点混乱: Bug基本上只是有害的,但不是有益的。它怎么会派上用场?
躲在臭虫后面
事实上,有些错误并不特别严重,它们最多会导致程序崩溃。一些守护程序在用户不知情的情况下重启软件,从而处理崩溃。这些漏洞相对来说是良性的,但是黑客们正在寻找那些可以被恶意控制的漏洞。
然而,区分这两种臭虫并不容易。这个过程既复杂又耗时。
所以研究人员想,为什么不使用一个良性的bug来填充代码,然后欺骗攻击者呢?这将允许攻击者用尽资源来查找和测试错误,却发现它们可能没有用。这些虫子被称为“箔条虫子”,它们就像那些能够欺骗雷达的干扰箔。
虽然这是一个好主意,但是人为地在程序中添加一个bug实际上是非常困难的,甚至是危险的。毕竟,随意更改软件的代码不仅会带来异常,而且软件可能会完全失去功能。
但是幸运的是,网络安全专家已经有了一个自动添加bug的工具,它可以用不同的输入值运行代码,然后观察这些输入将会产生什么结果。然后,专家可以找到那些不再用于计算输出的输入值。
这些输入值是所谓的“无效输入”,可能会破坏内存或导致内存溢出。
研究人员使用这种方法添加了一个破坏整个代码内存的bug。在正常情况下,这些虫子并不严重有害。一旦被恶意攻击者发现和利用,它们只会导致程序崩溃,致命性非常有限。
主动添加一个bug真的可以吗?
研究人员指出,现有的检测过程会被他们的方法愚弄,分类工具会错误地认为它们可以被使用。因此,无用的bug可以被用作抵抗黑客或自动网络推理系统的有效障碍。
然而,这种方法的有效性是基于这样一个假设,即找到一个可用于攻击的bug肯定非常困难和耗时。
如果有一种快速简便的方法来识别一个bug,这种新方法就没有多大价值。
事实上,研究小组也不想试图隐藏或掩盖这个问题。他们指出,“bug中有许多人工特征,攻击者可以使用这些特征来识别和忽略它们。“此外,这些增加的错误是相似的,攻击者也可能识别出他们的模式。
即使这种方法是可行的,考虑到以后维护的麻烦,也很难说良性的bug不会让程序员崇拜天堂。
然而,目前这种方法有很大的发展潜力。在程序中增加而不是减少bug的举措是一个非常“有计划”的网络犯罪解决方案,这应该会给未来的研究带来一些启发。
本文图片来源于网络,如有侵权请联系删除
领取专属 10元无门槛券
私享最新 技术干货