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