汽車制造商的新角色:軟件安全專家
保持汽車軟件安全的業務是一項艱巨的任務。今天的聯網汽車是由構成供應鏈的各個公司的零件,零件和代碼組裝而成的,最終結果是最終在展廳地板上結束。對于扎根于機械的制造商來說,圍繞硬件和軟件截然不同的需求來更新他們的流程變得越來越困難。隨著向物聯網、設備和通信網絡的轉變而來的復雜性是現有流程和系統的加法因素。現在,汽車制造商的管理人員需要確保構成汽車的所有東西的安全性。這些經理還負責快速添加最新和最強大的功能以保持競爭力。
當財務壓力增加時,安全性通常會退居次要地位。這就引出了一個問題:在汽車發布之前,汽車的軟件安全實際上花了多少心思?在開發領域,安全性并不總是日常工作流的一部分。開發人員甚至可能不知道他們作為個人應該做什么,以確保他們正在編寫的代碼沒有安全問題。而且,典型的開發團隊領導可能沒有實施適當的軟件工具,標準教育,以及如何遵守和生產流程來確保無縫安全的工作。
制造商需要認識到,他們不僅在供應汽車,他們現在也是網絡安全經理。雖然汽車黑客攻擊尚未變得司空見慣,但它們確實發生了。最近在加拿大,當局將“幻影”汽車闖入歸因于黑客攻擊,并發現可以在幾個小時內編寫一個簡單的程序,將信息從鑰匙扣卡到汽車,禁用鎖定系統。
保護供應鏈
從計算機屏幕到裝配線,制造商現在應該將自己視為攻擊媒介,他們負責產品中的所有東西,而不僅僅是直接在他們自己的開發團隊中。
重要的是要記住,開發過程已經發展。曾經,單個開發人員或開發人員團隊創建了代碼來解決問題。現在,軟件開發非常類似于一種藝術形式,因為開發人員從各種來源組裝零件,并巧妙地協調其功能,最終創建一個有凝聚力的工作產品。
例如,一家公司為制造商提供了控制安全氣囊的軟件。安全氣囊公司的開發人員可能已經整合了開源軟件來可視化測試數據,或者他們可能已經獲取了一些預制件代碼來創建報告。一些控制安全氣囊的代碼是從頭開始編寫的 - 但這可能只占總應用的百分之一。另外9%來自開發團隊的其他成員,任何應用程序的90 pcent都可以來自其他來源 - 商業軟件包,外包開發,開源和遺留自定義代碼。“將安全責任移交給另一方不再飛行 - 無論是制造商到供應商,還是供應商到制造商,”Rogue Wave軟件的汽車帳戶聯絡員Stephane Raynaud說。“利用預構建的功能是有意義的;供應鏈上的每個參與者都必須確保其中的每一點都是安全的。
保護公司和消費者:了解您的代碼中的內容 - 全部內容。
公司如何保護自己——他們的聲譽、財務穩定性和客戶?他們可以通過了解、理解和負責構成其產品的所有代碼(而不僅僅是他們自己的開發人員編寫的內容)來做到這一點。
汽車行業可以從電信公司的劇本中吸取教訓,這些公司幾年前面臨著類似的挑戰,當時他們的設備突然成為消費者和復雜的嵌入式軟件代碼之間唯一的東西。這些公司很快了解到,他們無法將所有責任轉嫁給提供其產品功能的公司。他們還了解到,他們的產品與最弱的供應商代碼一樣強大。
最重要的是,公司需要打開他們所保護的光圈,他們需要在成為戲劇性新聞頭條的主題之前做到這一點。而且,那些作為供應鏈一部分的人需要收緊流程。將安全性放在首位意味著三件事:
1. 政策
組織需要實施策略,以消除如何確保其代碼安全性的猜測。成功的策略易于遵循、易于訪問并正確教育員工,以便開發人員了解和理解安全問題及其如何應用于其工作流。
管理層應實施以下兩種類型的策略:
運營政策 – 這些是記錄在案的策略,概述了批準在組織中使用的工具、商定的流程以及測試實踐和測試套件 - 所有這些都旨在確保最佳的代碼安全性。通常,這些決策和策略由企業體系結構組管理。
開源軟件政策 – 這些策略旨在概述組織如何在其代碼庫中管理開源,涵蓋如何使用開源以及何時在開發過程中認為開源是合適的。越來越多的組織正在現有公司職能部門中實施組,以創建和管理有關開源代碼的策略。
2. 流程
清晰的流程是確保軟件開發安全的關鍵。來自汽車制造商及其供應鏈中的公司的團隊需要同意安全流程很重要,然后要求一致的應用是不可談判的。組織可以從教育自己的員工關于安全性的重要性開始,并定義每個人如何在發布安全產品中發揮重要作用。
雖然頂級管理層可能會指導對流程的需求,但一線開發經理應該部署流程,將安全性帶入開發人員的現有工作流程,并持續管理它們。流程應與構建無縫集成,以確保重要步驟不會被遺忘、故意忽略或難以維護。流程應包括:
構建自動化測試套件
教授安全編碼實踐
制定獲取和監控開源的流程
使工具隨時可用并定期更新
而且,內部團隊開發的任何內容都應適用于供應鏈。在接受供應商的規范時,制造商有權詢問哪些流程已經到位,甚至通過合同要求應用清潔實踐。
3. 工具
知識有很長的路要走,但開發人員只能做這么多來確保代碼安全。人為錯誤和隱藏的威脅需要構建高級工具,以便向開發人員公開問題。管理層應為其開發團隊提供自動化、易于使用的工具,以實施策略和程序。這些工具應內置于流程中,并自動檢測關鍵的安全問題。易用性將決定它們是否被使用,如果使用,可以鼓勵良好的編碼實踐。開發人員可能擔心流程會削弱他們的創造力,因此管理者需要證明某些工具的使用是多么容易,從而使他們能夠更加專注于創新。簡而言之,提供正確的工具意味著更好、更安全的軟件,而單個開發人員只需花費更少的精力。
開發經理可以幫助確保軟件開發的安全:
開源掃描和支持 – 由于開源已成為幾乎任何應用程序的重要組成部分,因此第一步是發現 OSS 在所有代碼行中的內容和位置。另外,請問以下問題:在發生任何故障時,OSS是否受支持?哪些軟件包存在安全漏洞?我們如何更好地管理我們的開放源碼軟件使用?
靜態代碼分析 – 靜態代碼分析是在不實際執行源代碼的情況下分析源代碼運行狀況的過程。開發人員應該能夠在簽入代碼之前識別和糾正代碼問題,從而節省開發過程的早期時間。
動態代碼分析 – 作為靜態代碼分析的補充,動態代碼分析是實時執行代碼以在運行時查找安全錯誤的過程。在使用大量內存和計算資源的復雜環境中,開發人員應使用動態代碼分析工具,以便同時調試多個進程和線程。
設置更高的標準
隨著汽車的聯系越來越緊密,我們對為它們提供動力的軟件的依賴性越來越大,對高級工具來確保代碼安全性的需求也將增長。汽車行業的杰出組織將為其他公司定下基調,不僅為其開發人員創造更高的標準,而且要求其整個軟件供應鏈具有相同水平的卓越性。如今,漸進式開發經理已經在采取措施,通過向開發人員員工提供專業知識、策略、流程和工具,保護公司免受最壞情況的影響。
審核編輯:郭婷
-
計算機
+關注
關注
19文章
7508瀏覽量
88070 -
代碼
+關注
關注
30文章
4791瀏覽量
68685
發布評論請先 登錄
相關推薦
評論