嵌入式系統(tǒng)12種常見(jiàn)攻擊及防范方法
[導(dǎo)讀]關(guān)注星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容素材來(lái)源|?apriorit編排|strongerHuang以前的嵌入式系統(tǒng)對(duì)安全問(wèn)題相對(duì)不那么重視,但隨著時(shí)間的推移,你會(huì)發(fā)現(xiàn)很多嵌入式設(shè)備都在做各種“保護(hù)措施”,你平時(shí)在產(chǎn)品開(kāi)發(fā)和設(shè)計(jì)時(shí),有注意安全問(wèn)題嗎?嵌入式系統(tǒng)12種常見(jiàn)攻擊嵌入式系統(tǒng)的攻擊...
關(guān)注 星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容
讓我們找出針對(duì)這些類型攻擊的關(guān)鍵特征,常見(jiàn)示例以及可能的對(duì)策。
簡(jiǎn)單地說(shuō),強(qiáng)制訪問(wèn)憑證就是猜測(cè)憑證的過(guò)程。大多數(shù)嵌入式系統(tǒng)提供對(duì)圖形用戶界面(GUI)的遠(yuǎn)程訪問(wèn),黑客可以利用該界面進(jìn)行攻擊。你可以通過(guò)使用強(qiáng)密碼和限制登錄嘗試次數(shù)來(lái)防止暴力強(qiáng)制攻擊。
例如,注意: · OWASP嵌入式應(yīng)用程序安全性· IEEE標(biāo)準(zhǔn)· NIST 為物聯(lián)網(wǎng)設(shè)備制造商提供的基礎(chǔ)網(wǎng)絡(luò)安全活動(dòng) [PDF]· IPA的嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程參考指南 [PDF]
通過(guò)以下實(shí)踐,你可以在從設(shè)計(jì)到支持的所有開(kāi)發(fā)階段使你的保護(hù)更加可靠:
提高嵌入式系統(tǒng)安全性的11個(gè)最佳實(shí)踐。
第一類:設(shè)計(jì)和軟件配置1.使用安全的語(yǔ)言。在編寫第一行代碼之前,請(qǐng)針對(duì)你選擇的語(yǔ)言研究嵌入式軟件開(kāi)發(fā)標(biāo)準(zhǔn)。例如,如果你要使用C或C ,請(qǐng)首先學(xué)習(xí)MISRA-C / C 。
2.啟用安全啟動(dòng)。此功能允許微處理器在執(zhí)行固件之前驗(yàn)證加密密鑰和固件的位置。為了增強(qiáng)這種保護(hù),您還可以啟用處理器的受信任執(zhí)行環(huán)境功能,該功能在微處理器中創(chuàng)建一個(gè)安全區(qū)域來(lái)存儲(chǔ)固件。
3.禁用不安全和不必要的服務(wù)。要定義此類服務(wù),你需要分析系統(tǒng)的操作。通常,此類服務(wù)的列表包括Telnet和瑣碎文件傳輸協(xié)議,調(diào)試代理,開(kāi)放端口等。
第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í)施訪問(wèn)控制。不受保護(hù)地訪問(wèn)嵌入式系統(tǒng)的任何部分都是對(duì)黑客的公開(kāi)邀請(qǐng)。要保護(hù)您的訪問(wèn)點(diǎn),請(qǐng)使用強(qiáng)憑據(jù)并對(duì)其進(jìn)行加密,實(shí)現(xiàn)最小權(quán)限原則,并盡可能啟用身份驗(yàn)證。
2.保護(hù)通信通道。實(shí)現(xiàn)IPsec、DNS-SEC、SSH或SSL協(xié)議,并使用VPN保護(hù)與嵌入式系統(tǒng)的任何通信。部署防火墻來(lái)過(guò)濾流量也是一個(gè)很好的做法。
第4類:數(shù)據(jù)保護(hù)1.加密所有內(nèi)容。所有固件更新、傳輸和處理的數(shù)據(jù)以及存儲(chǔ)的憑證都必須加密。使用加密簽名來(lái)驗(yàn)證從可信來(lái)源獲得的文件并檢測(cè)可疑的修改。2.混淆目標(biāo)代碼。混淆是一個(gè)過(guò)程,使你的代碼糾纏在一起,對(duì)黑客來(lái)說(shuō)不清楚,但在嵌入式系統(tǒng)中是可執(zhí)行的。甚至可以通過(guò)混淆來(lái)加速代碼的執(zhí)行。這項(xiàng)措施將使黑客更難對(duì)你的代碼進(jìn)行反向工程。
第5類:發(fā)布和支持1.進(jìn)行端到端威脅評(píng)估。完整的安全評(píng)估包括:a.從設(shè)備制造商,軟件開(kāi)發(fā)人員和最終用戶的角度執(zhí)行完整的生命周期分析并識(shí)別潛在威脅b.創(chuàng)建風(fēng)險(xiǎn)矩陣,并通過(guò)每個(gè)可能的渠道估算攻擊的可能性和成功率c.自己模擬黑客攻擊或進(jìn)行黑盒滲透測(cè)試
2.定期更新軟件。無(wú)論為舊的嵌入式系統(tǒng)開(kāi)發(fā)軟件有多么困難,這樣做總是有益的。在新的軟件版本中,你可以推出其他安全措施,以抵消新型攻擊或修補(bǔ)漏洞(如果在產(chǎn)品發(fā)布后發(fā)現(xiàn)一個(gè)漏洞)。別忘了添加如上所述的黑名單和白名單保護(hù)。這些方法將阻止從不受信任的來(lái)源安裝軟件。
有了這些實(shí)踐,你就可以使網(wǎng)絡(luò)犯罪分子更難為嵌入式系統(tǒng)盜用你的軟件。
最后
當(dāng)然,威脅可能來(lái)自不同的來(lái)源和渠道,因此在微處理器和少量?jī)?nèi)存中安裝針對(duì)所有這些威脅的保護(hù)似乎是不可能的。
-
基于軟件的攻擊
-
基于網(wǎng)絡(luò)的攻擊
-
旁道攻擊
讓我們找出針對(duì)這些類型攻擊的關(guān)鍵特征,常見(jiàn)示例以及可能的對(duì)策。
-
應(yīng)用黑名單方法,即開(kāi)發(fā)人員為系統(tǒng)檢測(cè)到的任何新惡意軟件創(chuàng)建簽名,并將這些簽名添加到嵌入式系統(tǒng)固件中。當(dāng)系統(tǒng)檢測(cè)到具有已知簽名的軟件時(shí),它將不會(huì)運(yùn)行它。
-
使用白名單保護(hù),為所有受信任的軟件源創(chuàng)建特定的簽名。這允許系統(tǒng)只運(yùn)行具有正確簽名的軟件。
簡(jiǎn)單地說(shuō),強(qiáng)制訪問(wèn)憑證就是猜測(cè)憑證的過(guò)程。大多數(shù)嵌入式系統(tǒng)提供對(duì)圖形用戶界面(GUI)的遠(yuǎn)程訪問(wèn),黑客可以利用該界面進(jìn)行攻擊。你可以通過(guò)使用強(qiáng)密碼和限制登錄嘗試次數(shù)來(lái)防止暴力強(qiáng)制攻擊。
例如,注意: · OWASP嵌入式應(yīng)用程序安全性· IEEE標(biāo)準(zhǔn)· NIST 為物聯(lián)網(wǎng)設(shè)備制造商提供的基礎(chǔ)網(wǎng)絡(luò)安全活動(dòng) [PDF]· IPA的嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程參考指南 [PDF]
通過(guò)以下實(shí)踐,你可以在從設(shè)計(jì)到支持的所有開(kāi)發(fā)階段使你的保護(hù)更加可靠:
提高嵌入式系統(tǒng)安全性的11個(gè)最佳實(shí)踐。
第一類:設(shè)計(jì)和軟件配置1.使用安全的語(yǔ)言。在編寫第一行代碼之前,請(qǐng)針對(duì)你選擇的語(yǔ)言研究嵌入式軟件開(kāi)發(fā)標(biāo)準(zhǔn)。例如,如果你要使用C或C ,請(qǐng)首先學(xué)習(xí)MISRA-C / C 。
2.啟用安全啟動(dòng)。此功能允許微處理器在執(zhí)行固件之前驗(yàn)證加密密鑰和固件的位置。為了增強(qiáng)這種保護(hù),您還可以啟用處理器的受信任執(zhí)行環(huán)境功能,該功能在微處理器中創(chuàng)建一個(gè)安全區(qū)域來(lái)存儲(chǔ)固件。
3.禁用不安全和不必要的服務(wù)。要定義此類服務(wù),你需要分析系統(tǒng)的操作。通常,此類服務(wù)的列表包括Telnet和瑣碎文件傳輸協(xié)議,調(diào)試代理,開(kāi)放端口等。
第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í)施訪問(wèn)控制。不受保護(hù)地訪問(wèn)嵌入式系統(tǒng)的任何部分都是對(duì)黑客的公開(kāi)邀請(qǐng)。要保護(hù)您的訪問(wèn)點(diǎn),請(qǐng)使用強(qiáng)憑據(jù)并對(duì)其進(jìn)行加密,實(shí)現(xiàn)最小權(quán)限原則,并盡可能啟用身份驗(yàn)證。
2.保護(hù)通信通道。實(shí)現(xiàn)IPsec、DNS-SEC、SSH或SSL協(xié)議,并使用VPN保護(hù)與嵌入式系統(tǒng)的任何通信。部署防火墻來(lái)過(guò)濾流量也是一個(gè)很好的做法。
第4類:數(shù)據(jù)保護(hù)1.加密所有內(nèi)容。所有固件更新、傳輸和處理的數(shù)據(jù)以及存儲(chǔ)的憑證都必須加密。使用加密簽名來(lái)驗(yàn)證從可信來(lái)源獲得的文件并檢測(cè)可疑的修改。2.混淆目標(biāo)代碼。混淆是一個(gè)過(guò)程,使你的代碼糾纏在一起,對(duì)黑客來(lái)說(shuō)不清楚,但在嵌入式系統(tǒng)中是可執(zhí)行的。甚至可以通過(guò)混淆來(lái)加速代碼的執(zhí)行。這項(xiàng)措施將使黑客更難對(duì)你的代碼進(jìn)行反向工程。
第5類:發(fā)布和支持1.進(jìn)行端到端威脅評(píng)估。完整的安全評(píng)估包括:a.從設(shè)備制造商,軟件開(kāi)發(fā)人員和最終用戶的角度執(zhí)行完整的生命周期分析并識(shí)別潛在威脅b.創(chuàng)建風(fēng)險(xiǎn)矩陣,并通過(guò)每個(gè)可能的渠道估算攻擊的可能性和成功率c.自己模擬黑客攻擊或進(jìn)行黑盒滲透測(cè)試
2.定期更新軟件。無(wú)論為舊的嵌入式系統(tǒng)開(kāi)發(fā)軟件有多么困難,這樣做總是有益的。在新的軟件版本中,你可以推出其他安全措施,以抵消新型攻擊或修補(bǔ)漏洞(如果在產(chǎn)品發(fā)布后發(fā)現(xiàn)一個(gè)漏洞)。別忘了添加如上所述的黑名單和白名單保護(hù)。這些方法將阻止從不受信任的來(lái)源安裝軟件。
有了這些實(shí)踐,你就可以使網(wǎng)絡(luò)犯罪分子更難為嵌入式系統(tǒng)盜用你的軟件。
最后
當(dāng)然,威脅可能來(lái)自不同的來(lái)源和渠道,因此在微處理器和少量?jī)?nèi)存中安裝針對(duì)所有這些威脅的保護(hù)似乎是不可能的。
參考來(lái)源:聲明:本文素材來(lái)源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問(wèn)題,請(qǐng)與我聯(lián)系刪除。------------ END ------------https://www.apriorit.com/dev-blog/690-embedded-systems-attacks





