技術發展比以往任何時候都要迅速,每天我們都能見到新產品和功能,它們可以完成各種難以想象的任務。這不僅僅是因為移動應用和計算機;而是因為嵌入式系統和物聯網(IoT)設備,它們在我們的日常生活和工業自動化等行業中迅速變得司空見慣。
這些設備幾乎靠軟件運行著一切:嬰兒監視器、揚聲器、健身追蹤器、安全攝像頭、恒溫器和車輛等。
關于這個新世界,建筑師、MIT教授和作家Nicholas Negroponte說:“像空氣和飲用水一樣,我們只有在數字化缺席時才會注意到它,而不是它存在的時候?!卑凑諆雀窳_蓬特的觀點,我們已經讓數字技術包圍了我們,我們甚至在它缺席或造成功能安全或信息安全問題時才會注意到它。
我們所知道的物聯網設備——包括嵌入式系統——具有通過互聯網連接的處理器、傳感器和其他特性。而當我們談論嵌入式系統時,我們指的是在更大的數字、機械或電力系統中具有特定功能的處理器。嵌入式系統可以是物聯網設備中的固件,或者是汽車、機器人、信用卡讀卡器、手機、小工具、網絡設備、醫療設備或幾乎所有東西的電子控制單元(ECU)。
對于組織來說,工業4.0正在改變產品的制造和分銷。隨著嵌入式系統中增加更多組件以促進生產力和創新,物聯網信息安全和工業4.0網絡安全的挑戰日益增加。再加上云計算與分析、機器學習和人工智能等技術,工業4.0突然成為一個更加復雜的環境——不僅跨越多設備和系統,還跨越多位置和貢獻者。
管理維護物聯網和嵌入式系統的信息安全(和功能安全)不能是一個孤立的過程。相反,組織和開發團隊應該專注于保護物聯網所依賴的軟件,因為軟件負責每個設備的性能,并促進設備和系統之間的通信。
C和C++對嵌入式系統軟件安全的重要性
由于規模和成本限制,嵌入式系統中的軟件使用有限的計算機資源進行處理、內存和供給。由于對輕量級軟件的需求,像C和C++這樣的編程語言在嵌入式系統中占據主導地位,就像它們目前在云中運行大多數服務器的Linux內核一樣。雖然C++比C需要更多的計算資源,但更強大的微處理器可用性使C++成為全球數百萬嵌入式系統的優選語言。
其他編程語言如Python也用于嵌入式系統,但C和C++是首選的主要語言。還有嵌入式C++(EC++),它是C++語言的一個子集,允許在具有完整C++語言主要功能的同時實現更大的空間和速度效率。當今的微處理器可以內置C++編譯器,這讓嵌入式系統編碼變得更容易。
為嵌入式系統編碼與任何其他類型的應用程序都不同。首先,你有資源限制,然后你必須為容錯性、實時功能、可靠性設計,而且大部分時間沒有停機時間。但更重要的是,代碼必須是功能安全和信息安全的。想想嵌入式系統和物聯網設備在醫療保健和制藥行業,或汽車和航空行業的重要性。不僅這種技術的缺陷會很顯眼,如果它們不功能安全信息不安全將成為一個關鍵問題。
靜態分析對嵌入式系統和物聯網軟件安全的重要性
軟件安全漏洞通常在開發過程中產生,因此在編碼過程的早期發現它們可以預防未來的信息安全問題。確保源代碼沒有可能導致漏洞和缺陷的最重要的工具之一是靜態分析。也稱為靜態應用程序安全測試或SAST,靜態分析掃描應用程序的源代碼,包括嵌入式系統和物聯網的源代碼,用于工業4.0網絡安全應用程序。高度專業化的代碼掃描根據使用的相應編程語言和框架查找特定缺陷。靜態分析工具——如Perforce Helix QAC和Klocwork——報告符合編碼標準的合規性。
靜態分析工具使開發和安全團隊能夠分析數千至上百萬行代碼。它們尋找代碼中的缺陷,并根據規則和政策執行編碼標準。最重要的是,它們已經成為軟件開發生命周期中不可或缺的一部分,并且是必須每次代碼更改或在發布新版本之前定期在源代碼上運行的步驟。
隨著組織對嵌入式系統和物聯網使用的增加,信息安全和功能安全的重要性也在增加,特別是在跨行業的任務關鍵功能方面。通過靜態分析發現的功能安全性和信息安全性缺陷可以防止有缺陷設備的大規模生產,并節省資金和公司的聲譽。
嵌入式設備中的安全性是關于減少漏洞數量。嚴重程度級別不同,高度嚴重的漏洞代表著更高風險的關鍵開發。在所有軟件中,無論其部署在哪里,都有幾種常見的漏洞類型。例如,遠程代碼執行和跨站腳本漏洞。在嵌入式系統和物聯網設備中,大部分漏洞與內存緩沖區溢出、資源泄漏、不當的訪問控制、加密問題和代碼注入有關。這些是通過靜態分析掃描在嵌入式系統中發現的一些最常見的嵌入式安全漏洞。
編碼標準對嵌入式系統和工業4.0安全的重要性
正如前面提到的,C和C++在嵌入式系統中占主導地位。多年來,實施工業4.0和物聯網的組織已經認識到所有代碼中的信息安全性的重要性,特別是對于嵌入式設備中的C和C++,其中損失的成本可能不僅僅是財務方面。建立并不斷改進編碼標準就是為了幫助提高軟件的安全性、可移植性、可靠性和可維護性的水平。靜態分析除了在源代碼中搜索缺陷和漏洞外,還可以應用于編碼標準中規定的規則和建議。這對于需要驗證符合行業標準的組織特別有用。嵌入式系統的常見編碼標準示例包括MISRA、AUTOSAR和CERT。
行業標準也在解決工業4.0網絡安全方面發揮作用:例如,IEC 62443針對自動化和控制系統中技術的開發和運行網絡安全要求。該標準定義了一個安全軟件開發生命周期,包括設計、實施、認證、驗證、缺陷管理以及產品生命周期結束。
安全標準如ISO 27001,是一個信息安全標準,有助于確保制造廠內使用的設備是安全的,通常需要使用編碼標準來支持合規性。即使在合規性之外,如上述IEC 62443所要求的,在軟件開發期間使用編碼指南也被認為是一種良好做法。
為嵌入式系統編碼,遵循編碼標準并將靜態分析作為軟件開發生命周期的一部分,將使我們的數字世界更加安全。
如果您想親身體驗為什么成千上萬的開發者依賴Perforce靜態分析工具,今天就聯系北匯信息,申請免費試用。
-
嵌入式系統
+關注
關注
41文章
3595瀏覽量
129550 -
網絡安全
+關注
關注
10文章
3173瀏覽量
59884 -
嵌入式軟件技術
+關注
關注
0文章
2瀏覽量
5630 -
工業4.0
+關注
關注
48文章
2015瀏覽量
118678
發布評論請先 登錄
相關推薦
評論