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