首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

一旦软件出现bug,除了“杀掉程序员祭天”,唯一能做的就是尽力消灭它们。毕竟,bug不仅会让软件崩溃,还有可能被黑客用来恶意攻击。

因此,如果有人告诉你,保留bug其实是个好主意,你一定会嗤之以鼻。最新一项研究却提出,bug其实还能充当诱饵,显著转移黑客的注意力,让软件躲过攻击。

图 | pixabay

这个方法有点令人困惑:bug基本只有百害而无一利,怎么就能派上用场了呢?

躲在bug之后

其实,有的bug并不算特别严重,它们顶多让程序崩溃。而一些后台程序会在用户不知情时重启软件,从而处理崩溃问题。这些bug是相对良性的,但黑客要寻找的,是那些能被恶意控制的bug。

然而,区分这两种bug并不容易,这一过程是复杂而且耗时的。

于是研究者们想到,何不利用良性bug填充代码,进而欺骗攻击者呢?这样可以使得攻击者耗尽资源来寻找和测试bug, 却最终发现它们可能没什么卵用。这些bug被称为“干扰箔bug”(chaff bug),它们就如同那些可以欺骗雷达的干扰箔一样

图 | 图虫创意

虽然这是个好点子,但给程序人为添加bug,其实挺困难的,甚至有些冒险。毕竟,随意更改软件的代码,不仅仅会引入异常,软件很有可能彻底失去功能。

不过好在网络安全专家们已经有了自动添加bug的工具,它能利用不同的输入值运行代码,然后观察这些输入会有怎样的结果。于是,专家们就可以找到那些不再被用于计算输出的输入值。

图 | giphy

这些输入值就是所谓的“死亡输入”,它们能破坏内存,或者造成内存溢出

研究者借用这种方法,在整段代码内添加破坏内存的bug。正常情况下,这些bug并没有严重危害。一旦它们被恶意攻击者发现和利用,也只引发程序崩溃,杀伤力十分有限。

主动添加bug真的没问题吗?

研究者指出,现有的检测进程,都会被他们的方法蒙骗,而且分类工具还会误认为它们是可被利用的。因此,无用bug可以作为一种有效的阻碍,以抵御黑客或自动网络推理系统。

图 | pixabay

然而,这种方法的有效性,都建立在这样的假设下:寻找可用于攻击的bug,一定非常困难和耗时。

如果存在快速且容易鉴别bug的方法,那么这种新方法就没有太大价值。

事实上,研究团队也不想试图隐藏或掩饰问题,他们指出,“bug中存在很多人为的特性,而攻击者们可以利用这些特性,去识别并忽略它们。”此外,这些添加的bug大同小异,攻击者也有可能识别出它们的模式

图 | unsplash

就算这个方法可行,考虑到后期维护的麻烦,也很难说良性bug就不会让“程序员祭天”了。

不过目前来看,这种方法有巨大的发展潜力。主动向程序中添加而不是减少bug,是一个非常有“心机”的网络犯罪应对方案,它应该会给未来的研究带来一些灵感。

一个AI

程序员:现在除了熬夜清bug,还得管安bug……

编译:Eon,Olli

编辑:Ent

编译来源:MIT Technology Review, Why adding bugs to software can make it safer

本文由MIT Technology Review授权果壳编译

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180907A1NT6M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券