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