工業4.0時代,您需要了解的嵌入式系統網絡安全知識
當前,技術的發展比以往任何時候都要迅猛,每天都有針對各種難以想象的任務的新產品和新功能問世?,F在不僅僅關乎移動應用和計算機了,而是關乎嵌入式系統和物聯網(IoT)設備。無論是在我們的日常生活,還是工業自動化等行業中,這些設備都已經變得非常普遍。
這些設備似乎無處不在,運行的軟件覆蓋了幾乎所有的東西:嬰兒監視器、揚聲器、健身追蹤器、監控攝像頭、恒溫器和汽車等,不一而足。
關于這個新世界,建筑師、麻省理工學院教授和作家Nicholas Negroponte表示:“就像空氣和飲用水一樣,數字化只有在缺失時才會被注意到,而不是在其存在時?!?就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所要求)。
在嵌入式系統中進行編碼時,遵循編碼標準,并將靜態分析作為軟件開發生命周期的一部分,將使我們的數字世界更加安全。正如之前所述,“就像空氣和飲用水一樣,數字化只有在缺失時才會被注意到”,在發生安全漏洞的情況下也是如此。
- END -
作者簡介:Javier Perez,Perforce開源和安全首席布道師
Javier對技術和開源軟件充滿熱情,是Perforce Software的開源和安全首席布道師。負責開源和應用安全產品組合的技術思想領導和宣傳。
Javier從事應用程序開發、開源、云計算、應用程序安全、AI、SaaS和移動行業已有20多年,并有機會在世界各地的行業活動中發表演講。Javier擁有計算機系統榮譽學位和工商管理碩士學位。
-
嵌入式系統
+關注
關注
41文章
3747瀏覽量
133653 -
物聯網
+關注
關注
2945文章
47825瀏覽量
415183 -
編碼準則
+關注
關注
0文章
2瀏覽量
5551 -
工業4.0
+關注
關注
48文章
2073瀏覽量
124713 -
靜態分析
+關注
關注
1文章
45瀏覽量
4206
發布評論請先 登錄
嵌入式軟件單元測試必要性與專業工具重要性的系統性專業研究報告
嵌入式C/C++回歸測試四大最佳實踐(附自動化測試工具TESSY使用教程)
如何采用SAFERTOS和ESM保護嵌入式系統安全
嵌入式需要掌握哪些核心技能?
嵌入式軟件測試與專業測試工具的必要性深度解析
Perforce QAC產品簡介:面向C/C++的靜態代碼分析工具(已通過SO 26262認證)
嵌入式系統安全性:C/C++編程與SAST靜態代碼分析在工業4.0及物聯網時代的新實踐
評論