(中國(guó)民用航空上海航空器適航審定中心,上海 200335)
隨著世界民用航空業(yè)的發(fā)展,飛機(jī)制造越來越精密,信息技術(shù)在航空界也得到了廣泛應(yīng)用。如今民用客機(jī)的運(yùn)營(yíng)涉及眾多的利益關(guān)聯(lián)方,如航空公司、空管、機(jī)場(chǎng)、乘客、飛行機(jī)組、通信運(yùn)營(yíng)商以及相關(guān)信息提供商等,構(gòu)成了一個(gè)龐大復(fù)雜的業(yè)務(wù)關(guān)系網(wǎng)絡(luò),民用客機(jī)成為這個(gè)信息網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)。多種通信技術(shù)的使用在為飛機(jī)與地面進(jìn)行高帶寬的、全階段的實(shí)時(shí)通信,以及為飛機(jī)與地面網(wǎng)絡(luò)系統(tǒng)信息交互提供便利的同時(shí),也為飛機(jī)的飛行安全帶來了信息安全威脅,包含非授權(quán)人員通過非法訪問、使用、泄漏、破壞、修改數(shù)據(jù)或數(shù)據(jù)接口的行為等。對(duì)此,美國(guó)聯(lián)邦航空局和歐洲航空安全局針對(duì)飛行控制域和航空公司信息服務(wù)域中關(guān)鍵系統(tǒng)的安全性、完整性和可用性提出了特殊要求,對(duì)民用飛機(jī)的網(wǎng)絡(luò)安全適航提出了專用條件。同樣的,中國(guó)民航局也將網(wǎng)絡(luò)安全風(fēng)險(xiǎn)作為安全性中的一種特殊風(fēng)險(xiǎn)對(duì)待,針對(duì)多個(gè)在審查的客機(jī)型號(hào)提出了網(wǎng)絡(luò)安全專用條件。
國(guó)內(nèi)學(xué)者針對(duì)機(jī)載電子設(shè)備的適航符合性方法,進(jìn)行了梳理,對(duì)開發(fā)過程中的常用方法進(jìn)行了澄清[1];針對(duì)機(jī)載軟件適航驗(yàn)證,提出了灰盒測(cè)試方法與應(yīng)用過程[2];針對(duì)民用飛機(jī)機(jī)載系統(tǒng)的安全環(huán)境,提出了一種可量化的機(jī)載網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估方法[3]。國(guó)外學(xué)者對(duì)綜合模塊化航電的安全操作系統(tǒng)給出了相應(yīng)的驗(yàn)證方法。
在國(guó)內(nèi)外適航機(jī)構(gòu)對(duì)民用航空電子系統(tǒng)僅提出了網(wǎng)絡(luò)安全的驗(yàn)證目標(biāo),并沒有提供相應(yīng)的驗(yàn)證測(cè)試方法。由于我國(guó)在民用飛機(jī)網(wǎng)絡(luò)安全適航審查方面尚未有成熟經(jīng)驗(yàn),因而尚無可借鑒的民用航空電子系統(tǒng)的網(wǎng)絡(luò)安全驗(yàn)證方法。鑒于此,需要基于民用航空電子系統(tǒng)開展網(wǎng)絡(luò)安全驗(yàn)證方法的研究[4]。
信息化民用飛機(jī)機(jī)載系統(tǒng)面臨的網(wǎng)絡(luò)安全問題從安全性角度,分為與飛機(jī)安全性相關(guān)和與飛機(jī)安全性無關(guān)這兩類問題。
適航審定方關(guān)注與飛機(jī)安全性相關(guān)的問題,關(guān)注針對(duì)電子信息或飛機(jī)電子接口的未授權(quán)電子干擾行為(如非授權(quán)訪問、使用、泄露、拒絕、中斷、修改或破壞),這些行為可能會(huì)影響飛機(jī)的安全性和適航性。
飛機(jī)制造方、航空公司、機(jī)場(chǎng)等利益相關(guān)方則關(guān)注下面與飛機(jī)安全性無關(guān)的網(wǎng)絡(luò)安全問題,包括:
1)針對(duì)飛機(jī)(或地面部件)進(jìn)行的物理安全或物理攻擊問題;
2)機(jī)場(chǎng)、航空公司或空中交通服務(wù)提供商的信息安全問題;
3)由國(guó)家機(jī)構(gòu)或國(guó)際機(jī)構(gòu)提供的通信、導(dǎo)航和監(jiān)視等服務(wù)的信息安全問題。
從風(fēng)險(xiǎn)角度來看,飛機(jī)審查方將網(wǎng)絡(luò)安全歸類于新的一類特殊風(fēng)險(xiǎn)。由于針對(duì)這類風(fēng)險(xiǎn)的適航經(jīng)驗(yàn)太少,尚沒有針對(duì)網(wǎng)絡(luò)安全審查發(fā)布相應(yīng)的規(guī)章和指導(dǎo)性材料,現(xiàn)有的民機(jī)項(xiàng)目中,審查方都是通過向具體的機(jī)型發(fā)專用條件的方式實(shí)現(xiàn)對(duì)適航規(guī)章要求的補(bǔ)充。例如美國(guó)聯(lián)邦航空局向波音787發(fā)布25-357-SC[5],向波音747-8發(fā)布25-10-01-SC[6],向空客A350-900發(fā)布25-534-SC[7]。在這些專用條件中,美國(guó)聯(lián)邦航空局提出了網(wǎng)絡(luò)安全適航的符合性目標(biāo)(審定基礎(chǔ)要求),即:
1)保護(hù)飛機(jī)電子系統(tǒng)信息安全不會(huì)受到非授權(quán)的外部訪問;
2)隔離或保護(hù)飛機(jī)電子系統(tǒng)信息安全不會(huì)受到非授權(quán)的內(nèi)部訪問。
我國(guó)大型客機(jī)C919型號(hào)在按照當(dāng)今最新的適航標(biāo)準(zhǔn)取證過程之中,也同樣存在網(wǎng)絡(luò)安全適航的問題,因此中國(guó)民航C919飛機(jī)型號(hào)合格審查組制定并發(fā)布了網(wǎng)絡(luò)安全適航專用條件,提出了相應(yīng)的符合性目標(biāo)。
為了證明飛機(jī)滿足符合性目標(biāo),飛機(jī)制造方需采用符合性驗(yàn)證方法開展相應(yīng)的試驗(yàn)活動(dòng),獲得試驗(yàn)數(shù)據(jù),作為符合性證據(jù)提供給審查方進(jìn)行審查。航空器型號(hào)合格審定程序AP-21-03-R4[8]對(duì)常用的符合性驗(yàn)證方法進(jìn)行了分類,規(guī)定了MC0~MC9共10種常用符合性驗(yàn)證方法,見表1。
表1 常用符合性驗(yàn)證方法[8]
為了充分表明適航性,民用飛機(jī)網(wǎng)絡(luò)安全適航符合性驗(yàn)證方法可能需要多種驗(yàn)證方法的組合。為了表明飛機(jī)系統(tǒng)滿足網(wǎng)絡(luò)安全風(fēng)險(xiǎn)可控的要求,采用MC2分析/計(jì)算的方法進(jìn)行飛機(jī)網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估,提供飛機(jī)級(jí)、系統(tǒng)級(jí)的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估數(shù)據(jù)。為了表明機(jī)載系統(tǒng)滿足網(wǎng)絡(luò)安全適航要求,在系統(tǒng)試驗(yàn)中開展MC4試驗(yàn)室試驗(yàn),包括功能測(cè)試、網(wǎng)絡(luò)安全魯棒性測(cè)試、網(wǎng)絡(luò)安全脆弱性測(cè)試等活動(dòng),提供系統(tǒng)級(jí)網(wǎng)絡(luò)安全試驗(yàn)報(bào)告。為了表明飛機(jī)設(shè)備滿足網(wǎng)絡(luò)安全適航要求,開展MC5機(jī)上地面試驗(yàn),提供飛機(jī)級(jí)網(wǎng)絡(luò)安全試驗(yàn)報(bào)告。考慮到網(wǎng)絡(luò)安全脆弱性測(cè)試可能會(huì)對(duì)機(jī)載系統(tǒng)造成安全性損傷,進(jìn)而影響飛行安全,不建議選用MC6飛行試驗(yàn)作為符合性驗(yàn)證方法。
RTCA發(fā)布的DO-326[9]/DO-326A[10]中指出民用航空電子系統(tǒng)網(wǎng)絡(luò)安全驗(yàn)證包括3種類型的測(cè)試:
1)網(wǎng)絡(luò)安全功能需求測(cè)試;
2)網(wǎng)絡(luò)安全魯棒性測(cè)試;
3)網(wǎng)絡(luò)安全脆弱性測(cè)試。
網(wǎng)絡(luò)安全驗(yàn)證活動(dòng)如圖1所示。
圖1 民用航空電子系統(tǒng)網(wǎng)絡(luò)安全驗(yàn)證過程
針對(duì)上述3類網(wǎng)絡(luò)安全驗(yàn)證活動(dòng),DO-356A[11]規(guī)范中提出了具體的驗(yàn)證目標(biāo):
1)網(wǎng)絡(luò)安全功能與魯棒性驗(yàn)證要素已開發(fā)、確認(rèn)和執(zhí)行。
2)網(wǎng)絡(luò)安全功能與魯棒性驗(yàn)證結(jié)果是完整的、正確的,偏離是合理的并可追溯的。
3)軟件和/或硬件實(shí)現(xiàn)的測(cè)試覆蓋已完成。
4)執(zhí)行脆弱性分析以識(shí)別新的脆弱性。
5)執(zhí)行脆弱性測(cè)試以評(píng)估脆弱性在網(wǎng)絡(luò)安全環(huán)境中的暴露情況并挑戰(zhàn)脆弱性評(píng)估。
6)脆弱性測(cè)試計(jì)劃可用。脆弱性測(cè)試結(jié)果覆蓋測(cè)試計(jì)劃,并執(zhí)行測(cè)試。測(cè)試結(jié)果已分析,偏離是合理的和可追溯的。
根據(jù)上述驗(yàn)證目標(biāo),需要具體開展相應(yīng)的網(wǎng)絡(luò)安全驗(yàn)證活動(dòng)。
網(wǎng)絡(luò)安全功能需求測(cè)試是基于需求測(cè)試的一部分,它用于驗(yàn)證系統(tǒng)功能的實(shí)現(xiàn)是否滿足詳細(xì)需求。此外,其還包括測(cè)試系統(tǒng)在響應(yīng)非授權(quán)事件時(shí)網(wǎng)絡(luò)安全措施執(zhí)行的正確性。
基于網(wǎng)絡(luò)安全需求的驗(yàn)證主要針對(duì)功能需求測(cè)試,因此可以使用DO-178中提出的基于需求的驗(yàn)證方法,通常分為白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試也稱為“結(jié)構(gòu)測(cè)試”或“邏輯驅(qū)動(dòng)測(cè)試”,根據(jù)軟件內(nèi)部工作過程,檢測(cè)軟件內(nèi)部動(dòng)作是否按照設(shè)計(jì)正常進(jìn)行。白盒測(cè)試對(duì)軟件源代碼進(jìn)行直接測(cè)試。黑盒測(cè)試稱為功能測(cè)試或基于需求的測(cè)試。黑盒測(cè)試根據(jù)需求來檢查程序的功能是否符合需求的要求,對(duì)應(yīng)用的二進(jìn)制執(zhí)行碼執(zhí)行測(cè)試,而不需要了解源代碼實(shí)現(xiàn)邏輯。大多數(shù)定制應(yīng)用,由于可以獲取其源代碼,因此可以采用白盒測(cè)試。黑盒測(cè)試能檢測(cè)到組件間接口的缺陷,識(shí)別到應(yīng)用在編譯鏈接或安裝配置過程中產(chǎn)生的網(wǎng)絡(luò)安全問題。
根據(jù)圖1中描述的網(wǎng)絡(luò)安全驗(yàn)證活動(dòng),基于網(wǎng)絡(luò)安全功能需求的測(cè)試方法根據(jù)網(wǎng)絡(luò)安全功能需求和功能類型開展,其測(cè)試活動(dòng)的輸入不包括軟件源代碼,因此在測(cè)試方法選取上采用黑盒測(cè)試方法更為適合。對(duì)于網(wǎng)絡(luò)安全功能需求測(cè)試來說,由于它是預(yù)期功能測(cè)試的一部分,不同飛機(jī)型號(hào)的系統(tǒng)設(shè)計(jì)需求不同、網(wǎng)絡(luò)安全需求也不同,有著個(gè)體的差異性,所以沒有專門針對(duì)需求測(cè)試的通用方法。在實(shí)際操作中,通常是根據(jù)具體網(wǎng)絡(luò)安全軟件的功能需求去設(shè)計(jì)與其相匹配的測(cè)試用例。
網(wǎng)絡(luò)安全魯棒性測(cè)試屬于技術(shù)需求測(cè)試的一部分,用于驗(yàn)證在異常的輸入和條件下,軟硬件能否按照預(yù)定的功能執(zhí)行。
Fuzzing測(cè)試,即模糊測(cè)試,可用于網(wǎng)絡(luò)安全魯棒性測(cè)試。模糊測(cè)試的方法是將一組隨機(jī)的數(shù)據(jù)作為軟件的輸入數(shù)據(jù),監(jiān)控軟件運(yùn)行過程中的異常行為,當(dāng)出現(xiàn)異常行為時(shí),記錄引起異常出現(xiàn)的數(shù)據(jù),通過分析數(shù)據(jù)和異常行為來發(fā)現(xiàn)和確定軟件中的缺陷。模糊測(cè)試主要采用黑盒測(cè)試和灰盒測(cè)試方式進(jìn)行。
網(wǎng)絡(luò)安全魯棒性測(cè)試主要通過網(wǎng)絡(luò)協(xié)議模糊測(cè)試進(jìn)行,其主要操作步驟如下。
1)報(bào)文捕獲??墒褂脀ireshark、pcap等抓包工具在以太網(wǎng)線路上捕獲相關(guān)的報(bào)文數(shù)據(jù)。
2)報(bào)文分析。對(duì)報(bào)文的幀格式進(jìn)行分析,標(biāo)記出關(guān)鍵字段。
3)生成模糊測(cè)試的異常輸入數(shù)據(jù)。模糊測(cè)試工具根據(jù)報(bào)文分析的結(jié)果,使用內(nèi)置的變異算法進(jìn)行模糊測(cè)試用例的自動(dòng)生成。
4)測(cè)試執(zhí)行。模糊測(cè)試工具將自動(dòng)執(zhí)行測(cè)試用例代碼。
5)測(cè)試監(jiān)控。模糊測(cè)試工具監(jiān)控被測(cè)目標(biāo)設(shè)備在各測(cè)試用例注入后的執(zhí)行情況,如果發(fā)生故障,則記錄測(cè)試上下文現(xiàn)場(chǎng)情況。
6)測(cè)試結(jié)果分析。所有測(cè)試用例都執(zhí)行完成后,模糊測(cè)試工具對(duì)測(cè)試數(shù)據(jù)進(jìn)行收集,分析故障出現(xiàn)原因,確定被測(cè)目標(biāo)設(shè)備是否存在漏洞。
在模糊測(cè)試中,生成測(cè)試用例的方法主要有以下4種。
1)預(yù)生成測(cè)試用例:該方法首先需要研究目標(biāo)軟件的輸入數(shù)據(jù)規(guī)約,理解輸入中每個(gè)字段支持的數(shù)據(jù)結(jié)構(gòu)以及可接受的值的范圍;然后依據(jù)這些已經(jīng)獲得的知識(shí)生成用于測(cè)試邊界條件或是違反歸約的測(cè)試用例;接著利用這些測(cè)試用例來測(cè)試該歸約實(shí)現(xiàn)的完備性。
2)隨機(jī)生成測(cè)試用例:該方法是產(chǎn)生一段隨機(jī)的數(shù)據(jù),并將其輸入給目標(biāo)軟件,試圖使目標(biāo)軟件崩潰或者誘發(fā)一些異常行為。這種方法可以用來快速地識(shí)別目標(biāo)軟件中是否存在有缺陷的代碼。隨機(jī)生成輸入在實(shí)現(xiàn)上比較簡(jiǎn)單,卻能發(fā)現(xiàn)軟件中一些嚴(yán)重的錯(cuò)誤,同時(shí)這種方法比較容易自動(dòng)化與并行化實(shí)現(xiàn)。
3)變異或強(qiáng)制性生成測(cè)試用例:該方法從一個(gè)正確有效的協(xié)議樣本或數(shù)據(jù)樣本開始,不斷地變異數(shù)據(jù)包或者文件中的字節(jié)、字、雙字、字符串等來生成測(cè)試用例。
4)自動(dòng)協(xié)議生成測(cè)試用例:該方法首先需要對(duì)目標(biāo)軟件的輸入數(shù)據(jù)格式進(jìn)行深入學(xué)習(xí)與研究,理解和解釋協(xié)議歸約或文件格式定義。在獲取知識(shí)的基礎(chǔ)上,創(chuàng)建一個(gè)描述協(xié)議規(guī)約如何工作的文法。使用這種方法,測(cè)試者可以識(shí)別出數(shù)據(jù)包或文件中的靜態(tài)和動(dòng)態(tài)部分,其中靜態(tài)部分是不可修改的部分,動(dòng)態(tài)部分是可被替代的部分。
網(wǎng)絡(luò)安全脆弱性測(cè)試是一種特殊的網(wǎng)絡(luò)安全測(cè)試活動(dòng),包括脆弱性掃描方法,試圖破壞、旁路或篡改網(wǎng)絡(luò)安全措施的攻擊測(cè)試,以及滲透測(cè)試,以此證明攻擊者能否利用飛機(jī)系統(tǒng)的脆弱性導(dǎo)致系統(tǒng)失效。網(wǎng)絡(luò)安全脆弱性測(cè)試包括脆弱性掃描、攻擊測(cè)試和滲透測(cè)試等測(cè)試方法。
3.4.1 脆弱性掃描
脆弱性掃描的目的是探測(cè)指定網(wǎng)絡(luò)內(nèi)的計(jì)算節(jié)點(diǎn)、網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)安全設(shè)備等設(shè)備的漏洞,包括硬件、軟件、協(xié)議的具體實(shí)現(xiàn)或系統(tǒng)安全策略方面存在的安全缺陷,并給出相應(yīng)的漏洞修補(bǔ)建議,從而使系統(tǒng)更加安全可靠。
脆弱性掃描常用的測(cè)試技術(shù)包括:
1)緩沖區(qū)溢出:向一個(gè)軟件發(fā)送大量的輸入而導(dǎo)致其失效,這種漏洞能夠允許攻擊者對(duì)被測(cè)系統(tǒng)實(shí)施流氓命令;
2)供應(yīng)商遺留在軟件中的后門:后門的本意是方便技術(shù)支持,但是一旦暴露,攻擊者就獲取了進(jìn)入系統(tǒng)的機(jī)會(huì)。
3)軟件缺陷:軟件缺陷一旦被利用,能使得軟件執(zhí)行非授權(quán)操作。
通常情況下,脆弱性測(cè)試依據(jù)公知脆弱性進(jìn)行覆蓋性測(cè)試,保證在應(yīng)用環(huán)境中至少?zèng)]有可被利用的公知脆弱性。
3.4.2 攻擊測(cè)試
由于現(xiàn)代航空電子系統(tǒng)基于以太網(wǎng)技術(shù)構(gòu)建數(shù)據(jù)網(wǎng)絡(luò),因此攻擊測(cè)試主要的測(cè)試目標(biāo)是網(wǎng)絡(luò)核心交換設(shè)備、網(wǎng)絡(luò)端系統(tǒng)設(shè)備、網(wǎng)絡(luò)協(xié)議、操作系統(tǒng)、應(yīng)用軟件等。通過攻擊測(cè)試,可以測(cè)試和發(fā)現(xiàn)被測(cè)設(shè)備是否存在的公知脆弱性。攻擊測(cè)試包括主動(dòng)攻擊測(cè)試和被動(dòng)攻擊測(cè)試。
1)主動(dòng)攻擊測(cè)試:測(cè)試時(shí)使用專用攻擊測(cè)試設(shè)備,基于公開漏洞庫(kù),向被測(cè)目標(biāo)設(shè)備發(fā)送網(wǎng)絡(luò)攻擊報(bào)文或包含惡意代碼的報(bào)文,監(jiān)測(cè)被測(cè)目標(biāo)設(shè)備是否能夠抵御這些網(wǎng)絡(luò)攻擊行為。
2)被動(dòng)攻擊測(cè)試:通常采用網(wǎng)絡(luò)嗅探或端口掃描的方式對(duì)被測(cè)目標(biāo)設(shè)備進(jìn)行攻擊,獲取被測(cè)目標(biāo)設(shè)備的信息。
3.4.3 滲透測(cè)試
滲透測(cè)試是一種網(wǎng)絡(luò)安全反證測(cè)試方法,通過滲透測(cè)試可以證明被測(cè)目標(biāo)設(shè)備的網(wǎng)絡(luò)安全保護(hù)能力,發(fā)現(xiàn)是否存在未知的脆弱性。滲透測(cè)試與測(cè)試人員能力相關(guān)性很強(qiáng),需要其具備相應(yīng)的技術(shù)能力和經(jīng)驗(yàn),同時(shí)要有很強(qiáng)的洞察力和想象力。滲透測(cè)試通常需要人工和測(cè)試工具協(xié)作執(zhí)行。
滲透測(cè)試基于測(cè)試工具,模仿真實(shí)世界的網(wǎng)絡(luò)攻擊,
識(shí)別網(wǎng)絡(luò)、系統(tǒng)和應(yīng)用的網(wǎng)絡(luò)安全特征。實(shí)施滲透測(cè)試需要7個(gè)步驟,依次是前期交互、信息收集、威脅建模、漏洞分析、滲透、攻擊和報(bào)告。
文中基于民用航空電子系統(tǒng)網(wǎng)絡(luò)安全驗(yàn)證目標(biāo),提出了民用航空電子系統(tǒng)網(wǎng)絡(luò)安全符合性驗(yàn)證方法;基于DO-326A中的網(wǎng)絡(luò)安全驗(yàn)證過程,提出民用航空電子系統(tǒng)適用的驗(yàn)證活動(dòng)目標(biāo);結(jié)合通用信息系統(tǒng)的網(wǎng)絡(luò)安全測(cè)試技術(shù),提出了適用于民用航空電子系統(tǒng)的網(wǎng)絡(luò)安全魯棒性測(cè)試方法和網(wǎng)絡(luò)安全脆弱性測(cè)試方法,為民用航空電子系統(tǒng)的網(wǎng)絡(luò)安全適航提供了可行的思路。