为了坑害黑客,这群程序员不惜连自己也坑

作者: Eon,Olli

来源: 果壳

发布日期: 2018-09-07

最新研究提出,通过在软件中添加良性bug作为诱饵,可以转移黑客的注意力,从而保护软件免受攻击。这种方法虽然有潜在的风险和挑战,但具有巨大的发展潜力,可能为未来的网络安全研究提供新的思路。

一旦软件出现bug,除了“杀掉程序员祭天”,唯一能做的就是尽力消灭它们。毕竟,bug不仅会让软件崩溃,还有可能被黑客用来恶意攻击。因此,如果有人告诉你,保留bug其实是个好主意,你一定会嗤之以鼻。最新一项研究却提出,bug其实还能充当诱饵,显著转移黑客的注意力,让软件躲过攻击。

这个方法有点令人困惑:bug基本只有百害而无一利,怎么就能派上用场了呢?其实,有的bug并不算特别严重,它们顶多让程序崩溃。而一些后台程序会在用户不知情时重启软件,从而处理崩溃问题。这些bug是相对良性的,但黑客要寻找的,是那些能被恶意控制的bug。然而,区分这两种bug并不容易,这一过程是复杂而且耗时的。

于是研究者们想到,何不利用良性bug填充代码,进而欺骗攻击者呢?这样可以使得攻击者耗尽资源来寻找和测试bug,最终发现它们可能没什么卵用。这些bug被称为“干扰箔bug”(chaff bug),它们就如同那些可以欺骗雷达的干扰箔一样。虽然这是个好点子,但给程序人为添加bug,其实挺困难的,甚至有些冒险。毕竟,随意更改软件的代码,不仅仅会引入异常,软件很有可能彻底失去功能。

不过好在网络安全专家们已经有了自动添加bug的工具,它能利用不同的输入值运行代码,然后观察这些输入会有怎样的结果。于是,专家们就可以找到那些不再被用于计算输出的输入值。这些输入值就是所谓的“死亡输入”,它们能破坏内存,或者造成内存溢出。研究者借用这种方法,在整段代码内添加破坏内存的bug。正常情况下,这些bug并没有严重危害。一旦它们被恶意攻击者发现和利用,也只引发程序崩溃,杀伤力十分有限。

主动添加bug真的没问题吗?研究者指出,现有的检测进程,都会被他们的方法蒙骗,而且分类工具还会误认为它们是可被利用的。因此,无用bug可以作为一种有效的阻碍,以抵御黑客或自动网络推理系统。然而,这种方法的有效性,都建立在这样的假设下:寻找可用于攻击的bug,一定非常困难和耗时。如果存在快速且容易鉴别bug的方法,那么这种新方法就没有太大价值。

事实上,研究团队也不想试图隐藏或掩饰问题,他们指出,“bug中存在很多人为的特性,而攻击者们可以利用这些特性,去识别并忽略它们。”此外,这些添加的bug大同小异,攻击者也有可能识别出它们的模式。就算这个方法可行,考虑到后期维护的麻烦,也很难说良性bug就不会让“程序员祭天”了。不过目前来看,这种方法有巨大的发展潜力。

主动向程序中添加而不是减少bug,是一个非常有“心机”的网络犯罪应对方案,它应该会给未来的研究带来一些灵感。

UUID: 1fd545ad-7181-43f3-8e22-bd6835db4661

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳公众号-pdf2txt/2018/2018-09-07_为了坑害黑客,这群程序员不惜连自己也坑智能生活.txt

是否为广告: 否

处理费用: 0.0029 元