调查一个新发现的僵尸网络的研究人员近日承认,他们“不小心”破坏了这个僵尸网络。
今年11月份,Akamai公司的几位安全专家描述了他们发现的一个用Golang编程语言编写的僵尸网络。该僵尸网络通过SSH和弱凭据劫持众多PC,以发动分布式拒绝服务(DDoS)攻击,并从事挖掘加密货币的勾当。
该僵尸网络被研究人员称之为KmsdBot,既攻击Windows设备,还攻击Linux设备,专门找科技公司、游戏公司和豪华汽车制造商下手。
研究人员Larry Cashdollar在近日发表的一篇后续博文中描述了该研究团队对这个僵尸网络更深入的研究分析如何实际上促使其灭亡。
正如Cashdollar所描述,为了更深入地了解KmsdBot的运作机理,研究团队在受控环境中向僵尸程序(bot)发送了命令,却得到了意想不到的结果:
“颇有意思的是,在一个格式不正确的命令之后,僵尸程序居然停止发送攻击命令了。自然,我们开始调查。不是每天都会碰到这样的僵尸网络:威胁分子破坏了自己的杰作。”
后来才得知,编写僵尸程序的人并没有花足够的精力来构建一个错误检查系统,以正确验证发送给僵尸程序的命令。
也许负责KmsdBot的恶意黑客认为,只有那些会向僵尸网络发送命令的人才会小心翼翼地避免出现任何拼写错误……
我们在测试期间注意到,僵尸网络在观察到一个格式错误的命令发过来后,停止发送攻击命令。这个命令是!bigdata www.bitcoin.com443 / 30 3 3 100。眼尖的读者会注意到目标网站与端口之间少了一个空格。僵尸程序的代码中没有内置错误检查功能,以验证命令的格式是否正确。
由于输入格式错误的命令,僵尸网络因而崩溃。而且它也没有办法靠自己的力量恢复如初,这意味着唯一的出路就是有人再次感染这台电脑。是的,仅仅一个不小心的拼写错误就消灭了攻击威胁。
CashDollar总结道:“这个僵尸网络一直在攻击一些非常大的奢侈品牌和游戏公司,然而正由于一次失败的命令,它却无法继续攻击下去。”
人总会犯错。程序员(无论恶意的还是善意的)也如此。我们都会犯错。那些开发恶意僵尸网络的人也不例外。
就这个案例而言,我们要感谢不法分子没有投入更多的精力来开发安全而稳定的代码。但我们不应该犯傲慢自大的错误,因为我们其他人也可能会犯错误。
所有组织都有必要认真地审视自身安全,并遵循几个简单的措施以加强防御。
比如说,为了避免沦为僵尸网络的受害者,明智的做法是核查所有服务器或应用程序都没有使用默认密码,并确保没有使用弱凭据来保护任何系统。此外,贵公司使用的所有软件都应该打上补丁并及时更新,防止有人蛮力破解凭据,还应该部署面向SSH连接的公钥验证,以帮助防止未经授权的访问。