當前位置:
首頁 > 知識 > 為了坑害黑客,這群程序員不惜連自己也坑

為了坑害黑客,這群程序員不惜連自己也坑

一旦軟體出現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授權果殼編譯


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 果殼 的精彩文章:

TAG:果殼 |