鄭家波,陳 卓
(廣州電力設計院,廣東 廣州 510000)
隨著全球工業(yè)智能化發(fā)展以及交通安全、出行效率和環(huán)境保護等系列問題凸顯,智能網聯(lián)汽車基于V2X技術建立的智能安全輔助駕駛系統(tǒng),能夠通過車輛間無線通信,實現(xiàn)道路安全提升,疏解交通擁堵,提高運輸效率?;谥悄芫W聯(lián)汽車的研究與測試,已經逐步成為一個研究熱點并形成了相關的標準規(guī)范[1]。V2X技術也逐漸引用和部署至智能交通領域,智能網聯(lián)汽車發(fā)展也列入國家“中國制造2025”的戰(zhàn)略規(guī)劃,成為重點研發(fā)產業(yè)之一[2]。
V2X智能網聯(lián)技術是基于物聯(lián)網車載傳感器、控制器、執(zhí)行器等裝置,運用D2D技術、信息通信技術等,實現(xiàn)車與人、車、路、后臺等在內的面向應用的智能信息交換共享,實現(xiàn)復雜的環(huán)境感知、智能識別、決策控制和協(xié)同執(zhí)行等智能操作,并可替代人類操作的新一代智能汽車。
目前V2X技術在汽車智能化應用中還處于起步階段,其技術應用帶來的交通安全問題、信息安全問題以及各類軟硬件設備的穩(wěn)定性、兼容性及各類車載無線設備的頻譜共存和電磁兼容等問題尚未解決,針對智能網聯(lián)汽車V2X技術的測試及示范運行是智能網聯(lián)汽車行業(yè)普及應用的關鍵[3]。
智能網聯(lián)汽車已經成為繼傳統(tǒng)PC、智能手機、平板電腦后衍生出來的第四個大規(guī)模擴展應用的終端。V2X技術包含了汽車自身駕駛功能,還包含其他應用滿足其駕駛的安全性、穩(wěn)定性需求,因此,基于V2X的軟件測試技術需要覆蓋所有的功能、性能、安全性、可靠性,同時需要滿足相應的行業(yè)標準規(guī)范。
汽車電子電氣系統(tǒng)功能與安全密切相關,由于可能存在系統(tǒng)性失效和隨機硬件失效,導致功能性故障,產生不可接受的風險。隨著智能網聯(lián)汽車電子電氣系統(tǒng)的復雜性和集成度不斷提高,功能安全風險隨之增大。功能安全重點關注系統(tǒng)故障后的行為,而不是系統(tǒng)的原有功能。智能網聯(lián)汽車自身的安全性應得到保證,即其中可能存在的殘余安全風險應當被控制在可接受的范圍之內。功能安全檢測應滿足國際標準ISO 26262的功能要求[4]。ISO 26262標準定義了貫穿車輛系統(tǒng)全生命周期的一系列功能要求,將汽車安全完整性等級 (ASIL)分為A、B、C、D 4個等級,其中ASIL D為最高等級,同時將功能安全驗證測試作為檢驗系統(tǒng)是否滿足既定安全要求的重要手段。
功能安全驗證測試首先需要分析待測系統(tǒng)的功能和組成 (包括傳感器、控制器和執(zhí)行器),然后考慮系統(tǒng)及各個組成部分需要達到的ASIL等級,對最關鍵的單點故障進行故障注入測試。ISO 26262定義了不同ASIL等級的系統(tǒng)單點故障指標應達到的診斷覆蓋率,如表1所示[5]。
表1 基于ASIL等級的診斷覆蓋率
進行功能驗證時,對待測對象注入典型故障進行測試,系統(tǒng)應能對故障進行正確探測,并產生適當?shù)慕导夗憫?,測試評估準則為注入故障后系統(tǒng)不能產生任何違背車輛安全目標的失效行為。
V2X技術高度融合了移動互聯(lián)網、大數(shù)據及云計算等平臺的數(shù)據處理技術,需要對海量數(shù)據進行處理和分析,將處理結果作為智能決策依據,智能網聯(lián)汽車在車聯(lián)網系統(tǒng)中需要及時上傳自身行駛數(shù)據和車輛情況,收集車聯(lián)網系統(tǒng)中其他汽車行駛數(shù)據并反饋行駛建議,因此,在數(shù)據處理方面需要滿足更高的性能要求。車聯(lián)網應用軟件開發(fā)者和測試人員在軟件應用的開發(fā)和測試過程中,對軟件品質、性能的測試環(huán)節(jié)工作量異常繁重、測試手段較為原始、效率低、成本高、周期長,無法滿足軟件快速迭代特性及大用戶負載需求。采用云測試模型,在本地寫好自動化測試腳本,上傳至服務器平臺網站,在云平臺運行腳本,進行性能壓力測試,實現(xiàn)大用戶負載、并發(fā),更真實地對V2X應用軟件進行性能測試。
智能網聯(lián)汽車的大量生產及車聯(lián)網發(fā)展的同時,尚未考慮相關安全防護建設,導致存在很多漏洞。通過車聯(lián)網的安全漏洞給用戶帶來很大的財產安全風險,諸如TSP平臺、APP應用、Telematics上網系統(tǒng)、車機IVI系統(tǒng)、CANBUS車內總線等相關安全威脅風險?;赩2X技術的智能網聯(lián)汽車安全駕駛功能的實現(xiàn),需要對海量數(shù)據進行處理分析,其產生的數(shù)據規(guī)模呈現(xiàn)爆炸式的增長,也隱藏巨大的價值,同時面臨黑客攻擊、木馬病毒等安全威脅,安全風險與日俱增,針對智能網聯(lián)汽車產生的敏感信息安全風險防范與管理亟待加強。
通過內部測試、數(shù)據共享等方式收集漏洞信息,按照云服務、通信、車內、外部威脅4種類型對漏洞進行分析、審核、驗證和存儲,并逐步對行業(yè)公開通用型漏洞,形成安全漏洞智庫。同時,圍繞數(shù)據全生命周期,在數(shù)據產生、傳輸、存儲、應用等環(huán)節(jié)存在的安全風險進行檢測評估。安全性測試主要體現(xiàn)在以下幾個方面:①汽車駕駛身份識別;②敏感信息的竊取泄露;③典型車載應用軟件的安全性,例如移動金融類軟件;④智能網聯(lián)汽車系統(tǒng)自身的防破壞及自修復能力。
安全性測試主體包含基于滲透、基于風險和基于威脅的3種測試途徑?;跐B透的安全性測試使用自動化或人工方法模擬黑客輸入,對車聯(lián)網系統(tǒng)進行攻擊性測試,從中找出運行時刻存在的安全漏洞;基于風險的安全性測試把風險分析與管理、安全測試以及軟件開發(fā)過程統(tǒng)一起來,在軟件開發(fā)各個階段把安全風險漏洞考慮在內,通過誤用模式、異常場景、風險分析等技術進行安全測試[6];基于威脅的測試從軟件外部考察軟件的安全性,識別軟件面臨的安全威脅并測試是否能夠發(fā)生。威脅建模的主要步驟是識別要保護的資產,分解應用程序,包括識別入口點、出口點、信任邊界、數(shù)據流描述等,識別安全威脅,找出威脅可能的實現(xiàn)過程,例如欺騙、篡改、否認、信息泄露、拒絕服務和特權提升等。通過攻擊樹對威脅實施過程建模,量化潛在損失、威脅重現(xiàn)性、可利用性、受影響的用戶數(shù)量、威脅的可發(fā)現(xiàn)性,評估量化威脅等級,計算威脅風險值。
智能網聯(lián)汽車軟件可靠性測試采用嵌入式軟件可靠性應用模型,基于故障注入技術,按照已知的故障模型,將故障注入運行環(huán)境下的智能網聯(lián)汽車系統(tǒng)中,分析被測系統(tǒng)的行為,針對其穩(wěn)定性、可靠性給出定性或定量的測試驗證結果[7]?;诠收献⑷氲目煽啃詼y試框架如圖1所示。
圖1 基于故障注入的可靠性測試框架
智能網聯(lián)汽車軟件可靠性測試要求具備多種不同類型的故障模式,例如電氣信號故障注入、通信接口故障注入、軟件缺陷故障注入等,按照一定的策略組織起來并連續(xù)注入到被測系統(tǒng),為故障場景仿真提供高可信的技術手段。
針對智能網聯(lián)汽車軟件可靠性因素的故障注入測試系統(tǒng)可以完成產品計量、通信和時鐘3個主線的故障注入測試及分析。故障注入系統(tǒng)由六大部分組成,包括控制器、故障模式庫、故障數(shù)據、故障注入器、數(shù)據收集器、結果分析器??刂破鞑捎迷O計的故障模型或根據故障模式庫生成故障數(shù)據。故障注入器將生成的故障數(shù)據注入待測系統(tǒng)。故障注入后數(shù)據收集器收集故障對目標系統(tǒng)影響的信息,導入分析器,對結果數(shù)據進行分析并生成統(tǒng)計數(shù)據。
車聯(lián)網資源整合的發(fā)展趨勢是云計算,云計算系統(tǒng)是向用戶提供各種服務的分布式計算系統(tǒng),其本質是對虛擬化的計算和存儲資源進行動態(tài)部署、動態(tài)分配/重分配、實時監(jiān)控的系統(tǒng),從而向用戶提供滿足QoS要求的計算服務、數(shù)據存儲服務及平臺服務[8]。智能網聯(lián)汽車作為大型的移動終端,能夠采取其他移動終端的測試方法和測試管理經驗[9]?;跍y試云的新型測試方案,結合其交通工具的基本屬性,能夠滿足測試需求,并有效降低巨量的測試工作。
智能網聯(lián)汽車應用軟件云測試基于足夠規(guī)模的集群,滿足申請用戶需求,提供以下幾種服務。
1)測試環(huán)境可伸縮。用戶通過請求,申請不同的環(huán)境資源和測試云服務,云服務提供商提供用戶完整可用的環(huán)境。
2)多用戶并發(fā)測試。云測試平臺提供多類型的編譯測試工具及用例覆蓋分析工具,具備不同類型的測試能力,包括功能測試、性能測試、安全性測試、可靠性測試等。從系統(tǒng)整體實現(xiàn)角度出發(fā),根據測試周期選擇不同的測試類別,涵蓋車載終端單元測試,車內網集成測試,接入系統(tǒng)平臺系統(tǒng)測試等。
3)管理服務。智能網聯(lián)汽車后臺信息服務借助移動互聯(lián)網技術整合第三方內容和數(shù)據,并對海量信息進行融合處理,實現(xiàn)車輛檢測、道路救援、實時交通、網上預約等服務與應用,該子系統(tǒng)是車輛網測試中發(fā)現(xiàn)的問題高發(fā)區(qū)。云測試平臺應提供數(shù)據驅動測試管理服務,支持測試管理及缺陷管理,根據測試腳本和測試數(shù)據以及測試主題進行問題分析,同時滿足用例的云端上傳、下載、分享和遷移。
4)自動化測試與控制服務。根據智能網聯(lián)汽車應用軟件的測試需求,對測試任務進行合理分配調度,提供自動化測試及用例控制。
5)測試集成解決方案。車聯(lián)網系統(tǒng)的復雜性決定了測試過程需要從多角度、多維度對系統(tǒng)進行綜合測試。以測試需求說明為輸入,對功能邏輯分析、特性分析、因果分析、場景分析、優(yōu)先級分析等加工輸出系統(tǒng)測試用例。通過提供不同的解決方案、測試模型、測試方法和算法適配及組合,提供集成化測試方案。
6)仿真環(huán)境測試。提供虛擬實驗場景的車輛仿真軟件,實現(xiàn)對確定性的交通情況模擬,基于Matlab/Simulink軟件環(huán)境進行建模和仿真計算與驗證,結合模糊控制、自適應神經網絡算法及虛擬現(xiàn)實技術,滿足智能化研究和測試需求。
7)在線監(jiān)測與跟蹤。提供靈活的查詢機制,用戶能夠隨時查詢各條測試用例執(zhí)行情況,以及測試主機的運行和負載情況。
基于云平臺的智能網聯(lián)汽車軟件測試技術架構 (圖2)采用“云+端”模式部署軟件測試工具,建成測試功能全面的品質檢測平臺、安全防護與品質保障平臺、品質公共服務支撐平臺,為政府、運營商、企業(yè)及個人用戶提供智能網聯(lián)汽車品質測評服務。
品質檢測平臺主要面向智能網聯(lián)汽車操作系統(tǒng)、移動應用軟件的測評。平臺包含了軟件功能測試、性能測試、安全性測試、可靠性測試和兼容性測試的各類測試工具。在平臺建設過程中,采用腳本錄制、軟件探針、多維特征提取和快速匹配等先進的測試技術,將“云測試”、“自動化測試”、“虛擬化測試”和“多協(xié)議分析仿真”等先進的測試理念融入到測試過程中,提供測試服務、在線監(jiān)測服務、品質評價服務和基礎配置服務。
安全防護與品質保障平臺圍繞車載信息終端、無線通信網絡及后臺信息服務,對CAN總線網絡數(shù)據及GPS數(shù)據信息、4G、Wi-Fi等網絡通信傳輸過程、信息融合處理及消息推送等任務的運行環(huán)境進行實時監(jiān)測,提供安全防護。
公共服務支撐平臺主要包括智能網聯(lián)汽車軟件品質信息發(fā)布系統(tǒng)、軟件開發(fā)資源共享系統(tǒng)、軟件信息收集分析檢索系統(tǒng)以及標準法規(guī)、發(fā)展規(guī)劃、測評技術、知識產權咨詢系統(tǒng)。面向軟件開發(fā)商,提供軟件開發(fā)的共性資源;針對智能網聯(lián)汽車軟件的品質保障和品質管理等問題,進行品質信息收集、整理與分析,支持對重大品質問題的持續(xù)跟蹤;面向智能網聯(lián)汽車軟件主管部門、科研院所和研發(fā)企業(yè),提供發(fā)展規(guī)劃、技術咨詢、知識產權分析等咨詢服務。
系統(tǒng)及服務測評知識庫覆蓋智能網聯(lián)汽車軟件功能、性能、安全性、可靠性和兼容性測評的資源庫,包含系統(tǒng)服務典型案例、品質評價準則及模型、測試工具方法等。政策法規(guī)庫:采集并通過平臺發(fā)布國際、國家和地區(qū)有關發(fā)展智能移動終端軟件的各類政策、法律和規(guī)定;采集并通過平臺發(fā)布國際、國家和行業(yè)上有關智能網聯(lián)汽車相關標準及政策法規(guī)。
智能網聯(lián)汽車硬件架構的改變導致軟件及底層虛擬化技術相應改變。操作系統(tǒng)提供人與車、車與車、車與互聯(lián)網等全方面交互功能。智能網聯(lián)汽車操作系統(tǒng)OS包括Windows CE、QNX、Linux、風河、Android等,操作系統(tǒng)平臺包括用于自動駕駛的硬件、軟件以及云數(shù)據服務等,云計算和網絡化環(huán)境下汽車操作系統(tǒng)研發(fā)是新的發(fā)展方向,建立操作系統(tǒng)補丁情況更新、漏洞信息通報、安全漏洞分析、安全應急處置及信息處理機制是操作系統(tǒng)測試的重點。
圖2 基于云平臺的智能網聯(lián)汽車測試技術架構
測試云將服務器、主機、存儲空間、網絡環(huán)境等基礎設施進行虛擬化,形成共享可用的資源池。測試人員通過配置環(huán)境、開放端口,登錄測試云隨時隨地進行不間斷的功能和性能測試,獲得實時測試結果。同時對測試資源進行動態(tài)監(jiān)控管理、對被測系統(tǒng)自動備份和恢復、發(fā)現(xiàn)軟件缺陷、診斷和優(yōu)化分析。根據操作系統(tǒng)常見的安全缺陷,針對移動操作系統(tǒng)的特點,從各個功能組件上分析安全性,包括操作系統(tǒng)管理的通信功能、語音識別功能、車輛工況、路況、乘客信息等實時數(shù)據采集與分析等功能。根據系統(tǒng)不同模塊,研究其設計原理,代碼實現(xiàn)及功能、性能、安全缺陷評測方法,歸納形式化描述方法,進行代碼級靜態(tài)掃描和動態(tài)分析。
基于Linux、Android等免費開源操作系統(tǒng),對操作系統(tǒng)安全檢測過程采用源代碼靜態(tài)分析技術,從安全層面,對用戶身份認證、數(shù)據訪問控制、存儲安全等方面進行評測。其中,針對Android操作系統(tǒng)直接對操作系統(tǒng)進行源代碼級別靜態(tài)分析,通過控制流、數(shù)據流分析技術,制定安全規(guī)則,在應用程序框架層,利用操作系統(tǒng)API封裝的管理程序,靜態(tài)分析內核。采用應用軟件安全缺陷的形式化描述語言對安全缺陷形式化描述生成安全規(guī)則,通過惡意代碼形式化描述方法、安全缺陷檢測模型、字節(jié)碼反編譯、二進制應用程序反匯編、反編譯等測試方法實現(xiàn)安全缺陷靜態(tài)分析檢測。根據靜態(tài)代碼分析出結構特征和變量調用關系,找到安全問題。
根據智能網聯(lián)汽車操作系統(tǒng)類型,終端程序運行時行為終端側安全評測方法有所不同。系統(tǒng)的開放程度與應用程序編程接口的豐富程度決定監(jiān)測功能的數(shù)量和監(jiān)測執(zhí)行粒度。對于開源操作系統(tǒng),通過在系統(tǒng)代碼和對應用程序編程接口中添加監(jiān)測模塊,進行監(jiān)測點的定制和擴展,實現(xiàn)動態(tài)跟蹤。對于非開源系統(tǒng),例如黑莓的QNX操作系統(tǒng),利用應用程序編程接口,實現(xiàn)程序層面的跟蹤檢測。針對惡意代碼的行為特征,完成定位功能監(jiān)測、語音識別操作監(jiān)測、運行權限監(jiān)測、系統(tǒng)資源非法占用監(jiān)測等。
V2X技術以車內網、車際網和車載移動互聯(lián)網為基礎,整合第三方應用對海量信息進行融合處理。移動社交、地圖導航、電子支付及移動辦公等移動應用已經滲透到車輛網系統(tǒng)。終端操作系統(tǒng)上的移動應用軟件沒有很強的安全防護能力,惡意移動應用與日俱增,很容易影響操作系統(tǒng)安全,嚴重的還會危機智能網聯(lián)汽車的行駛安全。構建測試云上的移動應用安全測試,實時檢測和分析應用是否被篡改,提供加固和認證的大規(guī)模在線服務,從而為智能網聯(lián)汽車用戶提供有效的安全防護。
移動應用軟件包含的不同惡意代碼表現(xiàn)形式各不相同,包含特殊的靜態(tài)文件特征及動態(tài)行為模式,例如惡意代碼自啟動、進程隱藏、通信隱藏等。靜態(tài)分析采用基于特征碼掃描的檢測技術、啟發(fā)式掃描技術等提取惡意代碼的靜態(tài)結構性內容,在此基礎上,對惡意操作行為進行動態(tài)跟蹤,通過基于行為監(jiān)控的動態(tài)掃描、基于函數(shù)調用的分類檢測、基于主機異常的檢測技術實現(xiàn)安全性檢測。
車載信息終端采用CAN網絡數(shù)據及GPS數(shù)據信息,通過無線通信網絡傳送至后臺信息服務平臺,為滿足車載終端與后臺服務平臺的信息傳輸,需要對傳感器及網絡通信服務實時在線監(jiān)測。對軟硬件工作過程中出現(xiàn)的異常情況需要提醒用戶及時校正系統(tǒng)或停止使用汽車。
基于ISO/IEC25010質量度量模型,結合SMART準則構建智能網聯(lián)汽車軟件測試評估體系。確定構建智能網聯(lián)汽車軟件評估指標體系的基本原則,根據可靠性測試評估要求構建評估指標,將系統(tǒng)分為“目標層-準則層-方案層”三層次結構模型,其中,智能網聯(lián)汽車軟件可靠性為目標層,準則層包括車載信息終端、無線通信終端、后臺信息服務終端,各主線的具體測試指標視為方案層,包括初始故障數(shù)、剩余故障數(shù)、故障密度、失效概率、失效強度、平均失效時間及平均失效間隔時間等。智能網聯(lián)汽車軟件可靠性測試評估體系見圖3。
圖3 智能網聯(lián)汽車安全性測試評估體系
安全性測試評估體系的制定,需要根據智能網聯(lián)汽車安全性測試技術研究形成的成果,結合現(xiàn)有的信息安全和功能安全的測試標準、測試方法,并與汽車廠商、用戶深入溝通,制定完善可行的安全測試評估體系,指導智能網聯(lián)汽車軟件的安全性測試評估。安全性測試評估體系包括測試與評估內容、測試策略、測試方法等部分,而每個部分都需要考慮車聯(lián)網系統(tǒng)整體的安全性,包括信息安全和由于功能失效帶來的安全風險等。其中,測試評估內容包含用戶認證機制、加密機制、安全防護策略、數(shù)據備份與恢復、病毒智庫及功能安全風險評估分析等內容。安全性測試策略包含基本安全防護測試、安全防護體系及功能安全分析策略的制定等。安全性測試方法包括功能驗證、漏洞掃描、安全攻擊模擬、安全偵聽等技術。智能網聯(lián)汽車安全性測試評估體系見圖4。
圖4 智能網聯(lián)汽車安全性測試評估體系
智能網聯(lián)汽車將電子電氣架構、車載網絡、域控制及信息安全等技術融合,實現(xiàn)汽車產品智能化、電動化、網聯(lián)化及共享化,其軟件品質直接影響車輛的安全運行。本文對智能網聯(lián)汽車軟件的功能性、安全性、可靠性測試進行了研究,介紹了相關技術路線及測試方法。同時,將云計算與智能網聯(lián)汽車軟件測試相結合,提出了基于云平臺的測試服務架構,提供實時、在線、大規(guī)模自動化測試服務,提高業(yè)務支撐能力。通過云平臺的資源彈性收縮性,擴展測試服務模式及類型,降低測試成本和部署測試環(huán)境的復雜度。再者,本文提出了智能網聯(lián)汽車軟件安全可靠性測試評估體系,為智能網聯(lián)汽車的可靠性及安全性測試提供理論依據,進一步優(yōu)化軟件品質和提高測試效率。