我跟隨一堆動物和自然出版物,最近“zombie ants”這個詞一直出現(xiàn)在我的飼料中。我決定做一點挖掘,發(fā)現(xiàn)有一種真菌 - Ophiocordyceps--它的生命周期涉及感染螞蟻,這些螞蟻穿過孢子走過孢子,真菌細胞滲入螞蟻的中樞神經系統(tǒng)并基本上接管螞蟻。一旦他們控制了螞蟻,他們就會讓螞蟻爬上植物莖,咬下一片葉子,然后從螞蟻身上長出更多的真菌,然后擴散更多的孢子,溢出更多的潛在真菌。
這似乎很像黑客團體從大公司甚至政府那里竊取信息的方式。他們使用由數(shù)千種物聯(lián)網設備組成的僵尸網絡來攻擊網站和服務。這些小工具已經變成了“僵尸”,它們通過惡意軟件(惡意軟件)進行主人的競標。保護我們的網絡和產品不會成為這些軍隊的一部分是一項艱巨的任務,因為軟件漏洞可以有各種形狀和大小。幸運的是,對我們來說,有一個常用的漏洞我們可以防范:緩沖區(qū)溢出漏洞。此錯誤允許黑客將其代碼注入我們的PCB內存然后執(zhí)行它。仔細編程可以降低緩沖區(qū)溢出帶來的風險,并且遵循物聯(lián)網安全最佳實踐可以限制攻擊者嘗試緩沖區(qū)溢出的能力。
什么是緩沖區(qū)溢出
緩沖區(qū)溢出在2001年的“紅色代碼”攻擊中首次得到廣泛認可。這些攻擊使用Windows中的緩沖區(qū)溢出漏洞來控制計算機,一個版本在幾個小時內感染了數(shù)十萬臺計算機。一旦被感染,這些計算機就會被用來對白宮發(fā)起分布式拒絕服務(DDoS)攻擊。從那時起,緩沖區(qū)溢出已成為尋求感染設備的黑客組織的首選方法之一。為了抵御這個漏洞,重要的是要了解它是如何工作的以及它對物聯(lián)網構成特定威脅的原因。
當程序試圖寫一個太大的值時會發(fā)生這種錯誤進入緩沖區(qū)。緩沖區(qū)只是為某些值分配的一塊內存。當程序試圖用盡可能多的數(shù)據(jù)填充它時,緩沖區(qū)“溢出”到內存的其他部分。這通常會導致系統(tǒng)崩潰,但也可能為黑客打開通向系統(tǒng)的門。黑客可以使用緩沖區(qū)溢出漏洞來做兩件事:將代碼注入系統(tǒng)并運行注入的代碼。第一個可能非常復雜并且取決于系統(tǒng)。然而,第二個很容易理解。如果惡意軟件已被插入內存并且黑客知道它在哪里,它們可以簡單地溢出它旁邊的緩沖區(qū)以運行該程序。
目標的弱鏈接緩沖區(qū)溢出
緩沖區(qū)溢出會給物聯(lián)網設備帶來特別的風險,因為它們的內存有限,編程的語言和程序的通用性。
內存:物聯(lián)網設備通常需要節(jié)省電量,從而導致少量節(jié)能內存。緩沖區(qū)越小,越容易溢出,這使得物聯(lián)網成為這類攻擊的完美舞臺。
語言:物聯(lián)網的大多數(shù)程序都是用C語言編寫的或C ++。 C和C ++都沒有“垃圾收集器”,這增加了緩沖區(qū)溢出漏洞的風險。此外,這些語言使用指針,黑客可以使用這些指針來確定關鍵代碼在內存中的位置。
通用性:購買現(xiàn)成的,廉價的程序的便利性對于我們的物聯(lián)網設備來說,它太誘人了。但是,當您使用與其他人相同的代碼時,您可能會遇到常見漏洞。在數(shù)千個物聯(lián)網設備使用的軟件中發(fā)現(xiàn)了一種被稱為Devil's Ivy的漏洞,最近才揭曉。許多機器通過默默無聞來逃避感染。如果您的產品因公共代碼而與其他數(shù)千個產品一起被感染,則更有可能成為目標。
緩沖區(qū)溢出可用于訪問或崩潰您的設備。
Bar Your Programming Windows,Patch your Security Gateway Walls
現(xiàn)在我們知道緩沖區(qū)溢出帶來的危險,我們如何防御它?有幾種方法可以緩解這種風險。如果您自己編寫軟件,仔細的內部編程可以確保您的設備安全:
檢查輸入大小 - 如果您知道輸入的大小,請檢查以確保它的大小。發(fā)生緩沖區(qū)溢出漏洞,因為將太大的值寫入內存。如果在將其傳遞到內存之前可以檢測大小,則可以拒絕過大的值并導致溢出。這可能不適用于所有系統(tǒng),例如傳入的傳感器數(shù)據(jù)可能是未知大小。
使內存不可執(zhí)行 - 如前所述,黑客通常會隱藏惡意軟件內存然后使用緩沖區(qū)溢出來執(zhí)行它。如果他們注入源代碼的部分是不可執(zhí)行的,那么它可以阻止他們激活他們的程序。由于緩沖區(qū)溢出攻擊的多樣性,這可以阻止一些入侵,但不是全部。
使用ASLR(地址空間布局隨機化) - 作為G.I.喬斯總是說,知道是成功的一半。如果黑客知道存儲關鍵代碼的位置,他們可能會覆蓋或刪除它。 ASLR使記憶位置隨機化,使攻擊者更難找到他們的目標。
即使您使用其他人的程序,您也可以堅持一些最佳實踐或啟用它們你自己會捍衛(wèi)你的系統(tǒng)。其中一些可能很快就會被美國政府強制要求:
啟用補丁 - 如果您發(fā)現(xiàn)您的軟件容易受到攻擊,則需要能夠對其進行修補。如果你無法將你的小發(fā)明變成僵尸網絡中的“僵尸”,那么它將會存在。
網關 - 如果你正在設計一個外圍設備或者傳感器是為在大型網絡中運行而設計的,考慮設計與物聯(lián)網安全網關的互操作性。這些可以降低黑客直接攻擊您設備的可能性,而是必須處理專為安全而設計的門戶。
身份驗證 - 許多緩沖流攻擊都是嘗試使用“中間人”(MITM)計劃。身份驗證將確保您的系統(tǒng)僅接收來自可信設備的輸入,而不是惡意代碼或偽裝者。
您可以通過謹慎的代碼和最佳實踐來保護您的系統(tǒng)。
物聯(lián)網可以使人類受益匪淺,但也為黑客提供了一個巨大的新攻擊面。緩沖區(qū)溢出攻擊在過去已被廣泛使用,并且完全可以影響物聯(lián)網。幸運的是,我們可以編寫可以防范此漏洞的源代碼,也可以在我們的設計中加入一些最佳實踐來降低這種風險。
網絡安全是一個令人生畏的問題,可能會占用更多我們的時間比我們未來的時間要好。隨著這個問題迫在眉睫,沒有時間浪費在效率低下的設計上。這就是為什么你應該使用最好的PCB軟件。 AltiumDesigner?附帶了一系列工具,甚至是可選附件,可以加快您的設計過程。
-
pcb
+關注
關注
4319文章
23082瀏覽量
397542 -
物聯(lián)網
+關注
關注
2909文章
44575瀏覽量
372846 -
信息安全
+關注
關注
5文章
655瀏覽量
38898 -
華強pcb線路板打樣
+關注
關注
5文章
14629瀏覽量
43035
發(fā)布評論請先 登錄
相關推薦
評論