當前位置:
首頁 > 最新 > 為什麼在軟體中添加Bug會使軟體更加安全呢?

為什麼在軟體中添加Bug會使軟體更加安全呢?

網路安全研究人員說,用善意的錯誤填充代碼會壓倒惡意攻擊者,以尋找更嚴重的錯誤。

在雷達跟蹤方面,最有效的對策之一是釋放一團鋁片或金屬化塑料。它們強烈地反射雷達,產生數千個目標,從而使雷達回波陷入沼澤和混亂之中。這會混淆任何試圖跟蹤你的東西,比如雷達制導導彈。

大多數軍用飛機和軍艦,以及許多彈道導彈,都有包括箔條在內的誘餌系統。現在,網路安全研究人員正在將同樣的想法應用於軟體。

這個想法原則上很簡單。軟體經常包含錯誤,大多數錯誤被其創建者和合法用戶忽略。但是,惡意的行為者會積極地搜索這些bug,以便他們能夠利用這些漏洞進行有針對性的攻擊。他們的目標是接管計算機或以其他方式操縱它。

但並不是所有的蟲子都一樣。一些漏洞不能被惡意利用,而且只會導致程序崩潰。這可能很嚴重,但是有一大類軟體,比如後台微服務,旨在通過重新啟動軟體來優雅地處理崩潰,而用戶一點也不明智。這些bug比允許惡意控制的bug嚴重得多。

但區分它們並不總是那麼簡單。在惡意編碼人員發現bug之後,他們必須區分那些真正危險的和相對良性的,並且這個過程通常是困難的和耗時的。

這是胡正浩和他在紐約大學的同事們提出的一種新方法的基礎。為什麼不用善意的bug來填充普通代碼,以此來愚弄潛在的攻擊者呢?

這樣做的目的是迫使攻擊者用盡他們的資源,尋找和測試對他們毫無用處的bug。胡和他的同事稱這些誘餌為「糠蟲」,類似於用來愚弄雷達操作員的鋁片。

這個想法只是這款日益複雜的貓捉老鼠遊戲中的最新舉措,讓安全專家對抗攻擊者。近年來,各種組織開發了通過代碼搜索的程序,尋找攻擊者可能利用的漏洞。安全專家使用這種方法在代碼公開之前查找和刪除這些漏洞,而惡意攻擊者則使用相同的方法查找他們可以利用的漏洞。

但是對於安全研究人員來說,開發這些程序是很困難的,首先需要在軟體中存在漏洞。因此,研究人員開發了另一種工具,可以自動地將這些bug添加到軟體中,以便以後能夠被漏洞搜索程序「發現」。

事實證明,添加bug絕不是簡單的。代碼的隨機更改往往會使代碼變得無用,而不是引入有趣的異常。相反,這個過程涉及使用不同的輸入來運行代碼,並監視這些輸入在代碼進展過程中發生了什麼。

此過程在程序中尋找輸入不再用於作出任何未來決策的點。在這種情況下,這個死輸入可能被惡意地操縱,以破壞或溢出內存。

漏洞發現程序注意到這些死區的位置,以便以後可以利用它們。

事實證明,這些潛在的bug在用C和C+等語言編寫的代碼中很常見,它們沒有監控內存使用的系統。

Hu和其他人只是使用這種方法在整個代碼中添加內存損壞的bug。在普通情況下,這些bug是良性的。但如果被惡意行為者發現,它們只能被用來破壞程序-而不是做任何更邪惡的事情。這就是為什麼他們像個箔條一樣。

Hu和他的同事說:「那些試圖在軟體中查找和利用漏洞的攻擊者,很有可能會發現一個故意放置的不可利用的漏洞,並浪費寶貴的資源來構建一個有效的漏洞。」

該團隊繼續表明,當前發現潛在錯誤的過程是被這種方法所愚弄的。他們說:「我們展示了軟體的功能沒有受到損害,並證明了我們的bug對於當前的分類工具來說是可利用的。」

這是一種有趣的方法,有可能顯著繞過惡意攻擊者。Hu和他的同事說:「我們相信糠蟲可以有效地威懾人類攻擊者和自動網路推理系統。」

但它也提出了一些有趣的問題。例如,沒有實際的證據證明對bug進行分類以找到可利用的bug必然是困難和耗時的。從理論上講,有可能是某個人在某個地方找到了一種快速的方法來做這件事。

如果發現有一種方法可以很容易地區分箔條錯誤和可利用的bug,那麼這種方法就變得不那麼有價值了。事實上,胡和他的同事並沒有試圖隱藏或掩蓋他們的錯誤。他們說:「這意味著它們目前包含了許多攻擊者可以用來識別和忽略它們的工件。」

在這些注入的bug中也沒有什麼變化。「[這]可以讓攻擊者識別我們產生的bug中的模式,並排除那些與模式匹配的模式,」他們說。

但前面還有很大的潛力。添加bug而不是清除它們的想法是對網路犯罪的一種極其惡毒的方法,它應該會激發一些有趣的未來研究途徑。


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

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


請您繼續閱讀更多來自 風趣的小穎遊戲解說 的精彩文章:

心靈爆炸:宇宙中發現了最古老的星系,你知道嗎
三星再次引領手機行業,Galaxy Note9還擁性能意想不到的強大屏幕

TAG:風趣的小穎遊戲解說 |