嵌入式系統(tǒng)在我們的日常生活中越來越豐富。它們存在于汽車、機器、建筑以及任何可以連接到互聯(lián)網(wǎng)的設(shè)備中。事實上,隨著物聯(lián)網(wǎng)(IoT)的發(fā)展,全球估計有100億臺聯(lián)網(wǎng)設(shè)備,其中包括從智能家居設(shè)備到聯(lián)網(wǎng)醫(yī)療設(shè)備的各種設(shè)備。隨著互聯(lián)設(shè)備的快速增長,圍繞這些設(shè)備的安全性也有許多擔(dān)憂。
安全性正在成為嵌入式社區(qū)中最重要的話題之一。一般來說,嵌入式開發(fā)人員必須了解三個要點,以便正確保護他們的系統(tǒng)。這些是:
1.黑客可能想要控制他們系統(tǒng)中的哪些類型的數(shù)據(jù)和資產(chǎn)?
2.黑客危害系統(tǒng)的攻擊媒介有哪些類型?
3.有哪些類型的功能可以幫助開發(fā)人員保護他們的系統(tǒng)免受黑客攻擊?
入侵者可能在尋找數(shù)據(jù),如個人數(shù)據(jù)或公司知識產(chǎn)權(quán)(IP)。此外,他們可能會攻擊設(shè)備本身。攻擊媒介的類型因系統(tǒng)而異。但是,攻擊媒介主要有三類:
基于軟件的攻擊
基于網(wǎng)絡(luò)的攻擊
旁道攻擊
嵌入式開發(fā)人員還可以遵循一些最佳實踐來幫助系統(tǒng)從一開始就保持安全。第一步是始終跟上當(dāng)前安全實踐的行業(yè)標準和趨勢。當(dāng)前積極發(fā)布嵌入式安全信息的組織包括IEEE、開放Web應(yīng)用程序安全項目(OWASP)和國家標準與技術(shù)研究所(NIST)。此外,在下面,我們將介紹一些當(dāng)前普遍接受的最佳實踐。
編碼指南
遵循編碼指南來開發(fā)更安全、可靠的代碼是一個很好的起點。許多嵌入式系統(tǒng)都是用C/C++開發(fā)的。專門為更安全的系統(tǒng)開發(fā)的指南的例子有SEICERTC、MITRECWE和MISRAC。
安全啟動
使用安全引導(dǎo)也是常見的行業(yè)慣例。安全引導(dǎo)是一種在系統(tǒng)啟動時保護系統(tǒng)免受惡意軟件攻擊的功能。在啟動過程中,處理器將開始執(zhí)行代碼來配置設(shè)備、內(nèi)存和外設(shè)。安全引導(dǎo)通過檢查固件中的簽名來確保正在執(zhí)行的代碼是正確的代碼。
禁用不必要的功能
在嵌入式開發(fā)中,嵌入式系統(tǒng)可以有多種方式與設(shè)備通信。這可以通過以太網(wǎng)端口、COM端口、USB端口、串行端口和各種其他通信端口,用于產(chǎn)品開發(fā)期間的測試和調(diào)試。關(guān)閉和禁用這些訪問方法是保護系統(tǒng)的重要的第一步。這可能涉及到在產(chǎn)品開發(fā)完成后,減少用于調(diào)試的頭,或者消除通信通道,如Telnet和文件傳輸協(xié)議。
智能內(nèi)存管理
對于黑客來說,嵌入式系統(tǒng)的內(nèi)存可能是一個很有吸引力的攻擊媒介。它們會使內(nèi)存緩沖區(qū)溢出,從而導(dǎo)致系統(tǒng)將數(shù)據(jù)寫入相鄰的內(nèi)存位置。因此,系統(tǒng)可能會覆蓋可執(zhí)行代碼,導(dǎo)致系統(tǒng)行為不穩(wěn)定、不可預(yù)測或完全崩潰。緩沖區(qū)溢出攻擊還可用于故意將惡意代碼寫入包含可執(zhí)行代碼的內(nèi)存區(qū)域,從而使攻擊者能夠獲得對系統(tǒng)的部分控制權(quán)。盡可能將內(nèi)存設(shè)為只讀是最佳實踐。此外,對存儲器系統(tǒng)進行分區(qū)使得關(guān)鍵部分彼此隔離可以幫助保護系統(tǒng)。
安全通信渠道
許多嵌入式系統(tǒng)在開發(fā)后都會有一些訪問點。這可以用于固件更新或操作期間的數(shù)據(jù)通信(任何物聯(lián)網(wǎng)設(shè)備都需要接入互聯(lián)網(wǎng))。通過數(shù)據(jù)加密來保護所有通信渠道是非常重要的。這包括通信、固件更新、憑證以及設(shè)備可能存儲或傳輸?shù)娜魏螖?shù)據(jù)。軟件混淆也是一種幫助嵌入式系統(tǒng)更加安全的方法。軟件混淆包括編寫人類難以理解的代碼。這樣做是為了隱藏代碼的真實目的,并使逆向工程更加困難。這可以由嵌入式開發(fā)人員手動完成,也可以通過自動化工具來完成。
生命周期支持
新的黑客和攻擊方法不斷被發(fā)現(xiàn)。因此,對于公司來說,保持產(chǎn)品最新以抵御最新的攻擊媒介是非常重要的。這可以通過固件更新和補丁來實現(xiàn),使公司能夠保護其產(chǎn)品免受最新威脅的侵害。此外,在產(chǎn)品開發(fā)期間,有必要進行研究并了解產(chǎn)品整個生命周期所需的支持,以及完整的安全評估,以了解攻擊者可能如何攻擊產(chǎn)品、成功的可能性以及攻擊者可能想要的資產(chǎn)。
總的來說,嵌入式系統(tǒng)的開發(fā)者面臨著許多挑戰(zhàn)。他們不僅必須設(shè)計、測試和制造系統(tǒng),還必須確保安全可靠地完成。此外,隨著嵌入式系統(tǒng)的數(shù)量呈指數(shù)增長,它們越來越多地成為黑客的目標。威脅可能以各種各樣的方式出現(xiàn),所有這些都必須在開發(fā)過程中加以考慮。嵌入式開發(fā)從來沒有像現(xiàn)在這樣具有挑戰(zhàn)性和重要性。