以前的嵌入式系統(tǒng)對安全問題相對不那么重視,但隨著時間的推移,你會發(fā)現(xiàn)很多嵌入式設(shè)備都在做各種“保護(hù)措施”,你平時在產(chǎn)品開發(fā)和設(shè)計時,有注意安全問題嗎?
嵌入式系統(tǒng)12種常見攻擊
嵌入式系統(tǒng)的攻擊可根據(jù)其目標(biāo)分為三類:
基于軟件的攻擊
基于網(wǎng)絡(luò)的攻擊
旁道攻擊
讓我們找出針對這些類型攻擊的關(guān)鍵特征,常見示例以及可能的對策。
第一類:基于軟件的攻擊
基于軟件的攻擊針對系統(tǒng)的大腦-管理設(shè)備的應(yīng)用程序。對軟件的成功攻擊使黑客能夠訪問數(shù)據(jù)或獲得對嵌入式系統(tǒng)的控制。
搜索軟件設(shè)計和代碼中的漏洞是最常見的攻擊手段,因為可以遠(yuǎn)程進(jìn)行此類攻擊。而且,基于軟件的攻擊不需要黑客的專業(yè)知識,因為他們可以使用典型的攻擊,例如部署惡意軟件和暴力破解。
最普遍的基于軟件的攻擊包括:
· 惡意軟件
· 暴力訪問
· 內(nèi)存緩沖區(qū)溢出
· 利用web服務(wù)
對嵌入式系統(tǒng)的惡意軟件攻擊與任何其他系統(tǒng)的工作方式相同:黑客部署了一段惡意代碼,這些代碼試圖攔截存儲在系統(tǒng)內(nèi)部的數(shù)據(jù),控制受害系統(tǒng)或?qū)ζ溥M(jìn)行破壞。通常,黑客會偽造固件更新,驅(qū)動程序或安全補丁來分發(fā)惡意軟件。
為了防止此類攻擊,可以實施以下保護(hù)措施:
應(yīng)用黑名單方法,即開發(fā)人員為系統(tǒng)檢測到的任何新惡意軟件創(chuàng)建簽名,并將這些簽名添加到嵌入式系統(tǒng)固件中。當(dāng)系統(tǒng)檢測到具有已知簽名的軟件時,它將不會運行它。
使用白名單保護(hù),為所有受信任的軟件源創(chuàng)建特定的簽名。這允許系統(tǒng)只運行具有正確簽名的軟件。
簡單地說,強制訪問憑證就是猜測憑證的過程。大多數(shù)嵌入式系統(tǒng)提供對圖形用戶界面(GUI)的遠(yuǎn)程訪問,黑客可以利用該界面進(jìn)行攻擊。你可以通過使用強密碼和限制登錄嘗試次數(shù)來防止暴力強制攻擊。
內(nèi)存緩沖區(qū)溢出是一種攻擊,當(dāng)黑客手動溢出分配給包含在嵌入式系統(tǒng)中移動的數(shù)據(jù)的內(nèi)存緩沖區(qū)時。黑客部署的漏洞攻擊使內(nèi)存緩沖區(qū)充滿了過多的數(shù)據(jù)。在這種情況下,嵌入式操作系統(tǒng)將把其中的一些數(shù)據(jù)記錄到緩沖區(qū)旁邊的內(nèi)存段中。記錄的數(shù)據(jù)可能包含外殼代碼或其他漏洞,幫助黑客獲取憑據(jù)并提升其訪問權(quán)限。
通過創(chuàng)建一個沙箱將溢出的數(shù)據(jù)與系統(tǒng)隔離,可以解決此問題。請記住,你的沙箱必須非常復(fù)雜,因為許多現(xiàn)代漏洞利用了躲避沙箱的技術(shù)。
第2類:基于網(wǎng)絡(luò)的攻擊
這種攻擊利用網(wǎng)絡(luò)基礎(chǔ)設(shè)施漏洞,也可以遠(yuǎn)程執(zhí)行。利用這些漏洞,黑客可以偵聽、攔截和修改嵌入式系統(tǒng)傳輸?shù)牧髁俊?/p>
讓我們看一下最常見的基于網(wǎng)絡(luò)的攻擊:
· 中間人(MITM)
· 域名系統(tǒng)(DNS)中毒
· 分布式拒絕服務(wù)(DDoS)
· 會話劫持
· 信號干擾
MITM攻擊用于攔截或更改嵌入式系統(tǒng)傳輸?shù)臄?shù)據(jù)。為了執(zhí)行它,黑客改變兩個設(shè)備的連接參數(shù),以便在它們之間放置第三個設(shè)備。如果黑客可以獲得或更改這兩個設(shè)備使用的加密密鑰,他們就可以以一種很難檢測到的方式進(jìn)行竊聽,因為這不會對網(wǎng)絡(luò)造成干擾。
通過加密傳輸?shù)臄?shù)據(jù)并使用Internet協(xié)議安全(IPsec)安全地傳輸密鑰和數(shù)據(jù),可以防止或阻止MITM攻擊。
DNS中毒會迫使本地DNS服務(wù)器根據(jù)黑客的需求修改其記錄。DNS服務(wù)器將可記憶的域名和主機名轉(zhuǎn)換為相應(yīng)的IP地址。通過使用DNS服務(wù)器的漏洞并毒害其緩存,黑客可以將流量從目標(biāo)網(wǎng)站重新路由到任何其他地址。
域名系統(tǒng)安全擴展(DNS-SEC)協(xié)議通過對DNS發(fā)布或傳輸?shù)娜魏螖?shù)據(jù)進(jìn)行數(shù)字簽名來防止DNS服務(wù)器中毒。
DDoS是一種眾所周知的攻擊,它通過來自不同來源的請求使系統(tǒng)溢出從而使系統(tǒng)不可用。這種攻擊很難阻止,因為請求量巨大。沒有針對DDoS攻擊的通用保護(hù)。但是,在你的嵌入式軟件中添加防火墻以及流量分析和過濾算法將大大提高防止DDoS攻擊或及時檢測它們的機會。
會話劫持類似于MITM攻擊,但目標(biāo)不同:黑客偵聽嵌入式系統(tǒng)流量以獲取身份驗證憑據(jù)。執(zhí)行劫持的方法有多種:固定用戶會話標(biāo)識符,竊取會話緩存,跨站點腳本等等。
防范此類攻擊的方法很經(jīng)典:對憑據(jù)和可能包含憑據(jù)的任何數(shù)據(jù)進(jìn)行加密,定期更改憑據(jù),以及在會話結(jié)束時處置與會話相關(guān)的任何數(shù)據(jù)。
信號干擾在無線網(wǎng)絡(luò)中很常見。借助這種技術(shù),黑客會在網(wǎng)絡(luò)中造成干擾,從而干擾或扭曲來自設(shè)備的通信。根據(jù)干擾器的類型,它可能會阻塞信道上的任何通信,在目標(biāo)設(shè)備傳輸數(shù)據(jù)時開始工作,或者在檢測到特定數(shù)據(jù)包時被激活。這樣的攻擊會使嵌入式系統(tǒng)不可用。
要停止信號干擾,請部署適合你軟件的抗干擾機制 [PDF]。請記住,此保護(hù)措施還將保護(hù)你的嵌入式系統(tǒng)免受其他設(shè)備造成的意外干擾。
第3類:旁道攻擊
旁道攻擊是利用嵌入式系統(tǒng)中的硬件安全缺陷來攻擊它們。旁道攻擊是最困難和最昂貴的攻擊類型,因為它需要精確了解目標(biāo)系統(tǒng)的硬件設(shè)計和物理可用性。為了進(jìn)行側(cè)信道攻擊,黑客收集系統(tǒng)功耗、電磁泄漏、操作時間等信息。
因此,他們可以計算出系統(tǒng)和連接設(shè)備的內(nèi)部操作,竊取密碼密鑰,甚至獲得對系統(tǒng)的控制權(quán)。
以下是最常見的旁道攻擊列表:
· 功率分析
· 定時攻擊
· 電磁分析
功耗分析攻擊需要對嵌入式系統(tǒng)進(jìn)行物理訪問,以便探測其連接并檢測功耗的變化。這些變化取決于系統(tǒng)處理的數(shù)據(jù),因此黑客可以檢測到系統(tǒng)何時處理特定類型的信息并截獲它。要防止此攻擊,請使用數(shù)據(jù)屏蔽技術(shù)修改敏感內(nèi)容,使其看起來像不重要的數(shù)據(jù)。
定時攻擊是基于嵌入式系統(tǒng)操作的時間。它們用于獲取信息,如應(yīng)用的加密算法、指令時間和代碼分支中的數(shù)據(jù)依賴差異、緩存訪問時間等等。這種類型的攻擊還需要對設(shè)備進(jìn)行物理訪問和對嵌入式系統(tǒng)架構(gòu)的深入了解。
由于定時攻擊強烈依賴于線性和可預(yù)測的軟件操作,你可以通過使用隨機數(shù)對空閑周期中的活動進(jìn)行重新安排來防止此類攻擊。基于此對嵌入式系統(tǒng)的時序分析將具有極大的挑戰(zhàn)性。
電磁分析為黑客提供了另一種無需黑客攻擊就能查看嵌入式軟件的方法。黑客可以使用電磁分析來記錄和分析設(shè)備的發(fā)射,找出其加密操作,甚至提取秘密
密鑰。這是最耗時且成本最高的攻擊類型,因為它需要:
· 物理上接近嵌入式系統(tǒng)
· 有關(guān)系統(tǒng)嵌入到的設(shè)備的布局的信息
· 與其他設(shè)備隔離以保護(hù)系統(tǒng)免受電磁干擾
硬件設(shè)計師可以通過降低信號強度或增加物理保護(hù)(例如使用某些類型的膠水或電路和電線屏蔽)來使收集電磁信號變得困難。隨機性和加密過程的中斷也是對抗電磁分析的有效措施。
我們上面討論的嵌入式系統(tǒng)的網(wǎng)絡(luò)安全措施可以幫助你預(yù)防或阻止特定類型的攻擊。在下一部分中,我們提供了11條建議來有效保護(hù)嵌入式硬件和軟件。
保護(hù)嵌入式系統(tǒng)的11個最佳實踐
在開始編碼之前,請研究嵌入式軟件開發(fā)的行業(yè)標(biāo)準(zhǔn),以發(fā)現(xiàn)有效的安全措施和開發(fā)實踐。
例如,注意:
· OWASP嵌入式應(yīng)用程序安全性
· IEEE標(biāo)準(zhǔn)
· NIST 為物聯(lián)網(wǎng)設(shè)備制造商提供的基礎(chǔ)網(wǎng)絡(luò)安全活動 [PDF]
· IPA的嵌入式系統(tǒng)開發(fā)過程參考指南 [PDF]
通過以下實踐,你可以在從設(shè)計到支持的所有開發(fā)階段使你的保護(hù)更加可靠:
提高嵌入式系統(tǒng)安全性的11個最佳實踐。
第一類:設(shè)計和軟件配置
1.使用安全的語言。在編寫第一行代碼之前,請針對你選擇的語言研究嵌入式軟件開發(fā)標(biāo)準(zhǔn)。例如,如果你要使用C或C ++,請首先學(xué)習(xí)MISRA-C / C ++。
2.啟用安全啟動。此功能允許微處理器在執(zhí)行固件之前驗證加密密鑰和固件的位置。為了增強這種保護(hù),您還可以啟用處理器的受信任執(zhí)行環(huán)境功能,該功能在微處理器中創(chuàng)建一個安全區(qū)域來存儲固件。
3.禁用不安全和不必要的服務(wù)。要定義此類服務(wù),你需要分析系統(tǒng)的操作。通常,此類服務(wù)的列表包括Telnet和瑣碎文件傳輸協(xié)議,調(diào)試代理,開放端口等。
第2類:內(nèi)存和應(yīng)用程序安全
1.限制內(nèi)存分配。實現(xiàn)一個內(nèi)存管理單元,為緩沖區(qū)、操作系統(tǒng)和應(yīng)用程序分配足夠的內(nèi)存。內(nèi)存管理單元有助于保持嵌入式系統(tǒng)運行的平衡,并防止內(nèi)存緩沖區(qū)溢出。此外,盡可能將內(nèi)存切換到只讀模式。
2.創(chuàng)建分區(qū)。將嵌入式系統(tǒng)的重要部分(如操作系統(tǒng)、GUI和安全應(yīng)用程序)劃分為不同的分區(qū),有助于將它們彼此隔離并包含攻擊。分區(qū)可以是物理分區(qū)和虛擬分區(qū)。
第3類:通訊安全
1.實施訪問控制。不受保護(hù)地訪問嵌入式系統(tǒng)的任何部分都是對黑客的公開邀請。要保護(hù)您的訪問點,請使用強憑據(jù)并對其進(jìn)行加密,實現(xiàn)最小權(quán)限原則,并盡可能啟用身份驗證。
2.保護(hù)通信通道。實現(xiàn)IPsec、DNS-SEC、SSH或SSL協(xié)議,并使用VPN保護(hù)與嵌入式系統(tǒng)的任何通信。部署防火墻來過濾流量也是一個很好的做法。
第4類:數(shù)據(jù)保護(hù)
1.加密所有內(nèi)容。所有固件更新、傳輸和處理的數(shù)據(jù)以及存儲的憑證都必須加密。使用加密簽名來驗證從可信來源獲得的文件并檢測可疑的修改。
2.混淆目標(biāo)代碼。混淆是一個過程,使你的代碼糾纏在一起,對黑客來說不清楚,但在嵌入式系統(tǒng)中是可執(zhí)行的。甚至可以通過混淆來加速代碼的執(zhí)行。這項措施將使黑客更難對你的代碼進(jìn)行反向工程。
第5類:發(fā)布和支持
1.進(jìn)行端到端威脅評估。完整的安全評估包括:
a.從設(shè)備制造商,軟件開發(fā)人員和最終用戶的角度執(zhí)行完整的生命周期分析并識別潛在威脅
b.創(chuàng)建風(fēng)險矩陣,并通過每個可能的渠道估算攻擊的可能性和成功率
c.自己模擬黑客攻擊或進(jìn)行黑盒滲透測試
2.定期更新軟件。無論為舊的嵌入式系統(tǒng)開發(fā)軟件有多么困難,這樣做總是有益的。在新的軟件版本中,你可以推出其他安全措施,以抵消新型攻擊或修補漏洞(如果在產(chǎn)品發(fā)布后發(fā)現(xiàn)一個漏洞)。別忘了添加如上所述的黑名單和白名單保護(hù)。這些方法將阻止從不受信任的來源安裝軟件。
有了這些實踐,你就可以使網(wǎng)絡(luò)犯罪分子更難為嵌入式系統(tǒng)盜用你的軟件。
最后
為嵌入式系統(tǒng)開發(fā)軟件是一個很大的挑戰(zhàn)。開發(fā)人員必須實現(xiàn)所有必需的功能,同時要考慮多個設(shè)備的限制并保護(hù)軟件免受攻擊。
當(dāng)然,威脅可能來自不同的來源和渠道,因此在微處理器和少量內(nèi)存中安裝針對所有這些威脅的保護(hù)似乎是不可能的。
轉(zhuǎn)載來源:strongerHuang
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307670
發(fā)布評論請先 登錄
相關(guān)推薦
LDO在嵌入式系統(tǒng)中的應(yīng)用 常見LDO故障及解決方法
嵌入式系統(tǒng)開發(fā)中的測試方法 嵌入式系統(tǒng)開發(fā)與AI結(jié)合應(yīng)用
嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)開發(fā)常見問題解決
嵌入式系統(tǒng)與物聯(lián)網(wǎng)的結(jié)合
嵌入式系統(tǒng)的原理和應(yīng)用
嵌入式主板是什么意思?嵌入式主板全面解析
嵌入式開發(fā)常見問題排查
![<b class='flag-5'>嵌入式</b>開發(fā)<b class='flag-5'>常見</b>問題排查](https://file1.elecfans.com/web2/M00/02/F1/wKgaoma5syyAYzztAAA5LSZZo34694.png)
評論