拼寫(xiě)錯(cuò)誤、代碼中少打了個(gè)空格:摧毀了 DDoS 僵尸網(wǎng)絡(luò)
調(diào)查一個(gè)新發(fā)現(xiàn)的僵尸網(wǎng)絡(luò)的研究人員近日承認(rèn),他們“不小心”破壞了這個(gè)僵尸網(wǎng)絡(luò)。
今年11月份,Akamai公司的幾位安全專(zhuān)家描述了他們發(fā)現(xiàn)的一個(gè)用Golang編程語(yǔ)言編寫(xiě)的僵尸網(wǎng)絡(luò)。該僵尸網(wǎng)絡(luò)通過(guò)SSH和弱憑據(jù)劫持眾多PC,以發(fā)動(dòng)分布式拒絕服務(wù)(DDoS)攻擊,并從事挖掘加密貨幣的勾當(dāng)。
該僵尸網(wǎng)絡(luò)被研究人員稱(chēng)之為KmsdBot,既攻擊Windows設(shè)備,還攻擊Linux設(shè)備,專(zhuān)門(mén)找科技公司、游戲公司和豪華汽車(chē)制造商下手。
研究人員Larry Cashdollar在近日發(fā)表的一篇后續(xù)博文中描述了該研究團(tuán)隊(duì)對(duì)這個(gè)僵尸網(wǎng)絡(luò)更深入的研究分析如何實(shí)際上促使其滅亡。
正如Cashdollar所描述,為了更深入地了解KmsdBot的運(yùn)作機(jī)理,研究團(tuán)隊(duì)在受控環(huán)境中向僵尸程序(bot)發(fā)送了命令,卻得到了意想不到的結(jié)果:
“頗有意思的是,在一個(gè)格式不正確的命令之后,僵尸程序居然停止發(fā)送攻擊命令了。自然,我們開(kāi)始調(diào)查。不是每天都會(huì)碰到這樣的僵尸網(wǎng)絡(luò):威脅分子破壞了自己的杰作?!?/span>
后來(lái)才得知,編寫(xiě)僵尸程序的人并沒(méi)有花足夠的精力來(lái)構(gòu)建一個(gè)錯(cuò)誤檢查系統(tǒng),以正確驗(yàn)證發(fā)送給僵尸程序的命令。
也許負(fù)責(zé)KmsdBot的惡意黑客認(rèn)為,只有那些會(huì)向僵尸網(wǎng)絡(luò)發(fā)送命令的人才會(huì)小心翼翼地避免出現(xiàn)任何拼寫(xiě)錯(cuò)誤……
我們?cè)跍y(cè)試期間注意到,僵尸網(wǎng)絡(luò)在觀察到一個(gè)格式錯(cuò)誤的命令發(fā)過(guò)來(lái)后,停止發(fā)送攻擊命令。這個(gè)命令是!bigdata www.bitcoin.com443 / 30 3 3 100。眼尖的讀者會(huì)注意到目標(biāo)網(wǎng)站與端口之間少了一個(gè)空格。僵尸程序的代碼中沒(méi)有內(nèi)置錯(cuò)誤檢查功能,以驗(yàn)證命令的格式是否正確。
由于輸入格式錯(cuò)誤的命令,僵尸網(wǎng)絡(luò)因而崩潰。而且它也沒(méi)有辦法靠自己的力量恢復(fù)如初,這意味著唯一的出路就是有人再次感染這臺(tái)電腦。是的,僅僅一個(gè)不小心的拼寫(xiě)錯(cuò)誤就消滅了攻擊威脅。
CashDollar總結(jié)道:“這個(gè)僵尸網(wǎng)絡(luò)一直在攻擊一些非常大的奢侈品牌和游戲公司,然而正由于一次失敗的命令,它卻無(wú)法繼續(xù)攻擊下去?!?/span>
人總會(huì)犯錯(cuò)。程序員(無(wú)論惡意的還是善意的)也如此。我們都會(huì)犯錯(cuò)。那些開(kāi)發(fā)惡意僵尸網(wǎng)絡(luò)的人也不例外。
就這個(gè)案例而言,我們要感謝不法分子沒(méi)有投入更多的精力來(lái)開(kāi)發(fā)安全而穩(wěn)定的代碼。但我們不應(yīng)該犯傲慢自大的錯(cuò)誤,因?yàn)槲覀兤渌艘部赡軙?huì)犯錯(cuò)誤。
所有組織都有必要認(rèn)真地審視自身安全,并遵循幾個(gè)簡(jiǎn)單的措施以加強(qiáng)防御。
比如說(shuō),為了避免淪為僵尸網(wǎng)絡(luò)的受害者,明智的做法是核查所有服務(wù)器或應(yīng)用程序都沒(méi)有使用默認(rèn)密碼,并確保沒(méi)有使用弱憑據(jù)來(lái)保護(hù)任何系統(tǒng)。此外,貴公司使用的所有軟件都應(yīng)該打上補(bǔ)丁并及時(shí)更新,防止有人蠻力破解憑據(jù),還應(yīng)該部署面向SSH連接的公鑰驗(yàn)證,以幫助防止未經(jīng)授權(quán)的訪問(wèn)。