提高嵌入式系統安全性的方法有以下這些:
使用安全的語言:在編寫第一行代碼之前,請針對你選擇的語言研究嵌入式軟件開發標準。例如,如果你要使用C或C++,請首先學習MISRA-C/C++。
啟用安全啟動:此功能允許微處理器在執行固件之前驗證加密密鑰和固件的位置。為了增強這種保護,您還可以啟用處理器的受信任執行環境功能,該功能在微處理器中創建一個安全區域來存儲固件。
禁用不安全和不必要的服務:要定義此類服務,你需要分析系統的操作。通常,此類服務的列表包括Telnet和瑣碎文件傳輸協議,調試代理,開放端口等。
限制內存分配:實現一個內存管理單元,為緩沖區、操作系統和應用程序分配足夠的內存。內存管理單元有助于保持嵌入式系統運行的平衡,并防止內存緩沖區溢出。此外,盡可能將內存切換到只讀模式。
創建分區:將嵌入式系統的重要部分(如操作系統、GUI和安全應用程序)劃分為不同的分區,有助于將它們彼此隔離并包含攻擊。分區可以是物理分區和虛擬分區。
實施訪問控制:不受保護地訪問嵌入式系統的任何部分都是對黑客的公開邀請。要保護您的訪問點,請使用強憑據并對其進行加密,實現最小權限原則,并盡可能啟用身份驗證。
保護通信通道:實現IPsec、DNS-SEC、SSH或SSL協議,并使用VPN保護與嵌入式系統的任何通信。部署防火墻來過濾流量也是一個很好的做法。
加密所有內容:所有固件更新、傳輸和處理的數據以及存儲的憑證都必須加密。使用加密簽名來驗證從可信來源獲得的文件并檢測可疑的修改。
混淆目標代碼:混淆是一個過程,使你的代碼糾纏在一起,對黑客來說不清楚,但在嵌入式系統中是可執行的。甚至可以通過混淆來加速代碼的執行。這項措施將使黑客更難對你的代碼進行反向工程。
進行端到端威脅評估:從設備制造商,軟件開發人員和最終用戶的角度執行完整的生命周期分析并識別潛在威脅,創建風險矩陣,并通過每個可能的渠道估算攻擊的可能性和成功率。
定期更新軟件:論為舊的嵌入式系統開發軟件有多么困難,這樣做總是有益的。在新的軟件版本中,你可以推出其他安全措施,以抵消新型攻擊或修補漏洞(如果在產品發布后發現一個漏洞)。別忘了添加如上所述的黑名單和白名單保護。這些方法將阻止從不受信任的來源安裝軟件。
回答所涉及的環境:聯想天逸510S、Windows 10。
提高嵌入式系統安全性的方法有以下這些:
使用安全的語言:在編寫第一行代碼之前,請針對你選擇的語言研究嵌入式軟件開發標準。例如,如果你要使用C或C++,請首先學習MISRA-C/C++。
啟用安全啟動:此功能允許微處理器在執行固件之前驗證加密密鑰和固件的位置。為了增強這種保護,您還可以啟用處理器的受信任執行環境功能,該功能在微處理器中創建一個安全區域來存儲固件。
禁用不安全和不必要的服務:要定義此類服務,你需要分析系統的操作。通常,此類服務的列表包括Telnet和瑣碎文件傳輸協議,調試代理,開放端口等。
限制內存分配:實現一個內存管理單元,為緩沖區、操作系統和應用程序分配足夠的內存。內存管理單元有助于保持嵌入式系統運行的平衡,并防止內存緩沖區溢出。此外,盡可能將內存切換到只讀模式。
創建分區:將嵌入式系統的重要部分(如操作系統、GUI和安全應用程序)劃分為不同的分區,有助于將它們彼此隔離并包含攻擊。分區可以是物理分區和虛擬分區。
實施訪問控制:不受保護地訪問嵌入式系統的任何部分都是對黑客的公開邀請。要保護您的訪問點,請使用強憑據并對其進行加密,實現最小權限原則,并盡可能啟用身份驗證。
保護通信通道:實現IPsec、DNS-SEC、SSH或SSL協議,并使用VPN保護與嵌入式系統的任何通信。部署防火墻來過濾流量也是一個很好的做法。
加密所有內容:所有固件更新、傳輸和處理的數據以及存儲的憑證都必須加密。使用加密簽名來驗證從可信來源獲得的文件并檢測可疑的修改。
混淆目標代碼:混淆是一個過程,使你的代碼糾纏在一起,對黑客來說不清楚,但在嵌入式系統中是可執行的。甚至可以通過混淆來加速代碼的執行。這項措施將使黑客更難對你的代碼進行反向工程。
進行端到端威脅評估:從設備制造商,軟件開發人員和最終用戶的角度執行完整的生命周期分析并識別潛在威脅,創建風險矩陣,并通過每個可能的渠道估算攻擊的可能性和成功率。
定期更新軟件:論為舊的嵌入式系統開發軟件有多么困難,這樣做總是有益的。在新的軟件版本中,你可以推出其他安全措施,以抵消新型攻擊或修補漏洞(如果在產品發布后發現一個漏洞)。別忘了添加如上所述的黑名單和白名單保護。這些方法將阻止從不受信任的來源安裝軟件。
回答所涉及的環境:聯想天逸510S、Windows 10。