什麼是ISO 21434?給汽車軟體發展人員的合規貼士

創提科技
2022/07/13

分享到

ISO 21434説明汽車產品開發商、整車廠(OEM)及其供應商確保其車輛的資訊和網路安全。這一點隨著汽車之間的聯繫越來越緊密,自動駕駛汽車的數量越來越多變得相當關鍵。因此,在設計和實現汽車軟體時,考慮到資訊和網路安全是非常重要的。
 
在這裡,我們將概述什麼是ISO 21434,和對汽車嵌入式軟體發展團隊的一些貼士。


本文將包含如下幾個部分:
 
     • 什麼是ISO 21434?
 
     • ISO 21434概述
 
     • ISO 21434合規
 
     • 為什麼推薦MISRA C:2012修訂版1和CERT C指南?
 
     • 什麼是ISO 21434工具?


什麼是ISO 21434?
 
ISO 21434“道路車輛——網路安全工程”是一項汽車標準。它重點關注道路車輛電子系統的網路安全風險。


ISO 21434概述
 
ISO 21434將網路安全工程化應用到車輛生命週期的所有階段——從設計直到退役。這適用於車輛中的所有電子系統、元件和軟體,以及任何外部連接。
 
而且,該標準為開發人員提供了一種全面的方法來實現跨越整個供應鏈的安全保障。


為什麼ISO 21434很重要?
 
隨著無線網路(Wi-Fi)和藍牙(Bluetooth)等汽車連接應用的增加,以及自動駕駛汽車的發展,網路攻擊和後續損害的風險也在增加。目前的安全關鍵標準不足以涵蓋這類風險,因此需要制定新的指南和標準。
 
該標準旨在提供一個結構化流程,以確保在汽車產品的整個生命週期內都考慮到網路安全問題。
 
該標準要求汽車製造商和供應商在實施網路安全工程時盡職盡責,並將網路安全管理應用於整個供應鏈以支援其實施。
 
其目的是讓公司鼓勵一種網路安全文化,以便所有的設計從一開始就將安全問題考慮在內。


ISO 21434合規
 
ISO/SAE 21434對軟體發展有特定的要求,包括分析以檢查是否存在固有缺陷,以及在網路安全要求方面是否保持整體一致性、正確性和完整性。
 
網路安全應該是所有設計決策的重中之重,包括選擇用於軟體發展的程式設計語言。
 
在選擇程式設計語言時,有幾個標準需要考慮,包括:
 
    • 安全的設計和編碼技術。
 
    • 明確的語法和語義定義。
 
但是,其中一些標準在選定的語言中可能沒有得到充分地處理。這就是為什麼會有幾種解決這些語言缺陷的方法,包括:
 
    • 使用語言子集。
 
    • 強制執行強類型。
 
    • 使用防禦性實現技術。
 
鑒於此,我們建議您使用編碼指南來解決所選語言的缺陷。


為什麼推薦MISRA C:2012修訂版1和CERT C指南?
 
眾所周知,像C和C++這樣的程式設計語言包含一些可能導致關鍵的或非特定行為的特性。在一個安全的系統中,這是不可接受的。禁止使用這種帶有語言子集的語言結構,可能會允許在有網路安全需求的系統中採用這種語言。
 
C語言仍然是汽車軟體中最常用的語言。在ISO/SAE 21434中,特別推薦MISRA C:2012修訂版1和CERT C指南用於任何使用C語言的專案。
 
創建語言子集是MISRA C:2012和CERT C指南的核心。MISRA C:2012修訂版1聲明:“MISRA C指南定義了C語言的一個子集”。
 
這兩個指南都是通過防止使用可能導致關鍵或非特定行為的功能來實現這一點的。
 
例如,MISRA C:2012修訂版1規則21.5禁止使用signal.h中的函數,規則21.21禁止使用函數‘system’。
 
類似地,CERT C規則11Signals(SIG)阻止特定的信號處理常式,ENV33-C不調用system()。
 
強類型可以確保對語言資料類型的理解,從而防止某些類的程式設計錯誤。使用具有強類型的編碼指南能夠確保正確性和一致性。
 
MISRA C:2012修訂版1具有基本類型模型,該模型專門用於強制執行強類型,而CERT C在單個規則(如INT32-C)中隱式地處理強類型,防止有符號整數溢出。
 
防禦性實現技術使軟體即使在不可預見的情況下也能繼續運行。這需要考慮“可能會發生什麼”。例如,需要考慮可能受污染的資料,理解算術函數的計算順序。最重要的是,程式碼需要簡單易懂。
 
所有防禦性實現技術都應該從使用公認的編碼指南開始。MISRA C:2012 修訂版1和CERT C都通過識別關鍵的、非特定的語言行為來實現這一點,從而使生成的程式碼更可靠,更不容易出錯,更容易維護。
 
CERT C是一項完整的語言安全標準,因此它被設計用來識別網路安全中特有的漏洞。而MISRA C:2012 修訂版1定義了一個適用於安全性的語言子集,並有專門用於防禦性實現技術的規則,包括switch語句(規則16.2和16.3)和資源管理(規則22.x)。


什麼是ISO 21434工具?
 
為了有效地識別漏洞和缺陷,並執行推薦的編碼指南(如MISRA和CERT C),您應該使用行業標準化工具,特別是靜態程式碼分析工具。
 
諸如Helix QAC之類的靜態程式碼分析工具既可以驗證是否符合編碼指南,也可以提供相應的合規證明。這將提供與網路安全要求相關的整體一致性、正確性和完整性。
 
軟體工具是任何車輛開發的重要組成部分,必須根據對產品網路安全的影響對其進行管理。這包括驗證工具,比如靜態分析工具。
 
有必要確保在開發流程中使用的任何工具不會對網路安全產生負面影響,這包括管理工具,以確保訪問受到控制,並得到正確使用。需要證據來顯示如何管理工具,其中將包括經過驗證的結果。
 
適當的工具將使合規更簡單,而像Helix QAC這樣的靜態分析工具可以提供符合生產安全、可靠的軟體所需的開發指南。
 
Helix QAC完全符合MISRA C:2012和CERT C指南,並且已被TÜV-SÜD認證可用于安全關鍵系統,將讓您更容易驗證軟體不受常見的程式碼安全性漏洞的影響。
 
此外,通過使用像Helix QAC這樣的靜態程式碼分析工具,您可以通過以下方法加速實現合規:
 
    • 執行編碼標準並檢測違反規則的情況。
 
    • 在開發早期檢測合規問題。
 
    • 加速程式碼審查和手動測試工作。
 
    • 隨著時間的推移,報告不同版本產品的合規性。
 
欲瞭解Helix QAC將如何説明您加速實現合規,立刻申請免費試用吧。