羅銘,張日新,李祥,步兵
(1.交控科技股份有限公司,北京 100070;2.城市軌道交通列車通信與運行控制國家工程實驗室,北京 100070;3.北京交通大學 軌道交通控制與安全國家重點實驗室,北京 100044)
滲透測試(Penetration Test)是測試人員從攻擊者的角度出發以成功滲入系統為目的,模擬攻擊者的行為模式,利用攻擊者的漏洞發現技術和攻擊手段對被測系統進行深入的探測,以暴露系統信息安全薄弱環節,并針對測試結果給出信息安全解決方案或建議的過程[1]。
滲透測試領域研究主要集中在滲透測試技術研究、滲透測試模型研究和自動化滲透測試工具研究,Web滲透測試是目前滲透測試的熱門方向[2]。工業控制系統滲透測試是另一個重要領域,包括電力、化工、冶金等在內的大量工業控制系統正越來越重視自身系統的信息安全性。根據測試人員對被測系統的了解程度,滲透測試可分為白盒、灰盒和黑盒測試[3]。白盒測試是指測試人員具有系統的全部信息,可以從源代碼層次對系統進行測試和分析;灰盒測試和黑盒測試指測試人員不具備系統所有信息,測試難度更大。
復雜的滲透測試需要合理的指導框架。目前滲透測試領域的指南、框架、規范大部分來自歐美發達國家,如美國國家標準與技術研究院(NIST)發布的滲透測試流程標準,其測試流程見圖1。該測試規范雖然劃分出宏觀階段,但缺乏實際指導,難以真正指導滲透測試。

圖1 NIST滲透測試流程
開放信息系統安全小組(OISSG)發布了信息系統安全評估框架(ISSAF),其測試流程見圖2。該測試方法較詳細,利于測試實施,缺點是不具有普遍性。對于列控系統的滲透測試,不能或者沒有必要進行全部9個步驟。

圖2 ISSAF滲透測試流程
在城市軌道交通領域,針對常用的CBTC系統,普遍的做法是雇傭第三方信息安全從業機構,為系統配備簡單、通用的信息安全防護軟硬件,在運營之前進行安全部署,由于缺少真實系統或模擬系統的滲透測試,因此對系統在遭受信息安全攻擊時的表現沒有合理、準確的認識和估計。
綜合以上信息安全滲透測試流程,并考慮列控系統業務特點,提出精簡、優化的列控系統滲透測試流程。
分析研究以上滲透測試規范和指南,將列控系統滲透測試流程確定為4個階段(見圖3)。

圖3 列控系統滲透測試流程
(1)信息收集和準備階段。從書籍、文獻中了解列控系統公開的信息,如系統功能模塊、網絡架構、操作系統、通信制式、系統特點和安全防護手段等;根據了解到的信息制定滲透測試計劃,確定重點關注對象;準備測試所需的軟件和硬件。
(2)掃描階段。從有線或無線的方式接入系統,通過監聽獲取網絡相關信息;進一步對所在網絡進行掃描,確認存活主機及其操作系統;選取個別主機進行更加詳細的掃描,收集主機開放端口、運行服務等信息;利用商用漏洞掃描工具對系統所有漏洞進行掃描;確定重點關注主機或系統。
(3)滲透攻擊階段。根據掃描階段得到的信息分析主機存在的隱患和漏洞,分析攻擊手段和漏洞利用的可行性;選取可行的攻擊手段和可利用的漏洞對重點關注對象進行攻擊和漏洞利用,分析攻擊結果。
(4)總結階段。循環進行第2和第3步,直到沒有新的信息發現;總結滲透測試的整個過程,分析入侵系統的難易程度,對系統在攻擊下的表現進行評價,提出改善措施。
列控系統滲透測試不同于傳統IT行業和其他工控領域的滲透測試,需要充分考慮列控系統結構和功能特點,分析列控系統的薄弱環節。
列控系統網絡包括骨干網和接入網,分別對應有線接入和無線接入(見圖4)。

圖4 列控系統接入方式
(1)有線接入。列控系統采用專用網絡,網絡設備一般處于較為嚴密的物理防護下,但依舊存在因為管理不完善導致暴露物理網絡接口的可能性;攻擊者可能存在于系統內部,可直接接觸到網絡設備,或使用1臺列控系統的功能主機作為攻擊主機,從內部發起攻擊。
(2)無線接入。列控系統無線制式包括WLAN和LTE兩種[4-5]。WLAN的認證加密方式并不完善,近期WPA2曝出安全漏洞,使中間人監聽、篡改成為可能。LTE的安全機制更為完善,密鑰事先協商,存儲在USIM卡中,采用的加密方式更加復雜,安全性很高[6]。列控系統無線信號沿軌道分布,乘客可在列車或站臺上搜索到無線信號,鑒權與加密是網絡的主要防護手段,若密鑰泄露,系統容易接入。攻擊者可能通過非法渠道購買密鑰信息,或利用社工類手段獲得密鑰。
(3)其他服務系統接入。乘客信息系統(PIS)和視頻監控系統(CCTV)等其他城軌系統與通信前置機存在網絡連接,這意味著列控系統網絡邊界的進一步擴展[7]。
(4)移動存儲設備。限于管理制度和信息安全意識的普及程度,目前移動存儲設備(尤其是維護和檢修人員持有)的接入訪問沒有嚴格控制,移動存儲設備很有可能成為病毒、木馬等進入列控系統的途徑[8-9]。
(1)操作系統。城軌交通列控系統主要使用Windows、Linux和VxWorks操作系統,Windows操作系統主要位于列車自動監督(ATS)子系統和維護網絡中,用于各種工作站;Linux操作系統主要用于服務器和部分體量較小的嵌入式系統;VxWorks是實時操作系統,可裁剪性強,多用于進行原始數據計算的處理單元。
Windows系統漏洞種類繁雜、數量眾多,主要存在于開放的各類服務中。Windows系統主要使用在列控系統的非安全設備中,對其進行滲透和攻擊可能不會對列車安全運行產生顯著影響,但對它們的滲透可為后續攻擊提供大量的信息和便利。
VxWorks系統高度可裁剪化,大大降低了系統存在漏洞的可能性,可提高系統的工作效率和穩定性。雖然VxWorks系統安全性較高,但在低版本的系統中仍存在危害性很高的漏洞[10],鑒于VxWorks在列控系統中擔任核心計算任務,對該系統的攻擊可能導致列控系統功能受到嚴重影響。
(2)通信協議。城軌交通列控系統使用UDP協議進行列控信息傳輸,在應用層使用鐵路信號安全通信協議(RSSP)以及信號設備廠家私有協議。針對UDP協議存在一些成熟的拒絕服務(DoS)攻擊,同樣適用于列控系統;應用層協議明文傳輸數據存在數據監聽的可能;應用層協議防護機制存在漏洞,被攻擊者利用可實現中間人攻擊。
列控系統是安全苛求系統,采取了大量的安全機制和策略,這些安全機制增強了系統可靠性和可用性,但未從信息安全的角度考慮。列控系統的安全機制主要有以下2種:
(1)雙網冗余。列控系統信號安全網絡、ATS網絡、區域控制器(ZC)、計算機聯鎖(CI)等設備的內部網絡等都采用雙網冗余,當一張網故障通信中斷后,系統會使用另一張網的數據,保證功能不受影響。該手段增強了系統的耐受性,對一些泛洪DoS攻擊有很好的防護效果,然而網絡數量的增加也增大了被入侵的可能;部分系統對冗余網絡上的數據具有新鮮程度的判斷,缺少正確性的判斷,若存在數據篡改,系統從雙網中選擇最早到達數據,仍有一定概率使用被篡改的數據。
(2)二乘二取二安全計算機平臺。ZC、CI等至關重要的設備使用二乘二取二、三取二和雙機熱備等結構實現其功能,常用的二乘二取二架構以2系主機保證設備的可用性,以每系中的2臺主機保證計算的正確性,平臺的計算、通信都具有嚴格的微周期限制,導致系統在遭受攻擊時可能更易被攻破。
掃描階段在列控系統半實物仿真平臺中進行,平臺使用部分地鐵線路真實設備(包括ZC、車載控制器(VOBC)等)和仿真軟件搭建而成。
測試工具主要包括掃描工具和攻擊工具(見表1)。

表1 測試工具
掃描階段的工作內容和部分結果如下:
(1)監聽數據通信。使用wireshark進行抓包,在未知網絡條件的情況下監聽廣播數據包(ARP數據包、NBNS數據包等),分析活躍的IP,確定子網掩碼和網段。
(2)通信關系確立。使用omnipeek對數據包的IP和MAC地址進行分析分類,繪制設備間的通信關系圖。
(3)端口掃描。對重點關注對象進行端口掃描,獲取主機端口開放狀態和服務開放狀態,重點關注常用服務和端口,如遠程桌面服務、445端口等。對真實ZC進行掃描,ZC主機端口開放情況見表2。
(4)漏洞掃描。利用漏洞掃描工具nessus對網絡中存活的主機進行掃描,獲得主機漏洞情況,分析漏洞的可利用性,為下一步實踐攻擊做準備。ATS網絡主機漏洞掃描部分結果見表3。

表2 ZC主機端口開放情況

表3 ATS網絡主機漏洞掃描部分結果 個
滲透攻擊階段分別進行一般網絡攻擊和高危漏洞利用。
(1)漏洞介紹:Windows系列操作系統中存在大量已知漏洞,系統部分服務,如SMB服務更是漏洞的高發區。利用這些漏洞可達到拒絕服務、遠程代碼執行等效果。
(2)漏洞利用:從ATS網絡有線接入,以網關計算機為測試目標進行滲透。使用metasploit,對網關計算機進行攻擊。攻擊方式是緩沖區溢出,Windows系統漏洞利用流程見圖5。

圖5 Windows系統漏洞利用流程
(3)攻擊效果分析:攻擊成功獲取被攻擊主機管理員權限。被攻擊主機向攻擊者反彈會話連接,攻擊者可執行任意命令。該攻擊收效巨大,基本完全控制網關計算機。
攻擊網關計算機可以中斷信號安全網絡與ATS網絡的數據轉發。ATS網絡與信號安全網絡通信中斷將導致列車位置信息不能及時上報,ATS失去對列車的實時追蹤;在遙控模式(中心控制)下,中心ATS通信中斷,無法下發計劃,CI無法排列進路,ZC計算的移動授權MA不能向前更新,列車不能進入無MA的區段,進而影響列車運行效率。
網關計算機是列控系統信號安全網絡與ATS網絡的連接樞紐,能夠以該主機為跳板實現不同網絡間的自由訪問。
(1)攻擊原理:向被攻擊者快速發送大量數據包或鏈接請求,占用大量的網絡帶寬資源或CPU資源,導致主機網絡中斷或因為資源占盡而產生卡頓甚至宕機。洪水攻擊包括ICMP、UDP、SYN、TCP等多種方式,在此使用UDP洪水。
(2)攻擊過程:從信號安全網絡有線接入,使用組包工具hping3以盡可能快的速度向ZC發送UDP數據包,查看ZC和VOBC的表現。
(3)攻擊效果分析:大量數據占用了VxWorks系統計算能力,導致微周期被打破,觸發ZC的安全保障機制,通信控制器被ZC主動關停,需要人工按壓恢復按鈕。因為雙網冗余,系統運行不受影響,與前期分析結果一致。
同時在2張安全信號網絡中對ZC進行攻擊,2個通信控制均被關閉,ZC失效,此時運行在ZC管轄范圍內的列車緊急制動并且進入人工模式,嚴重影響行車效率和旅客乘坐的舒適性。
(1)漏洞介紹:部分低版本VxWorks系統默認開啟17185調試端口,且無端口訪問權限控制。
(2)漏洞利用:從ZC內網接入,使用metasploit中的VxWorks攻擊腳本,按照特定格式發送VxWorks調試命令,攻擊ZC內部處理單元或通信控制器。
(3)攻擊效果分析:攻擊單一主機,被攻擊主機立即關機或重啟,ZC自動切換工作系,功能不受影響;連續攻擊ZC中2系設備,最終造成ZC整體失效。
該攻擊條件要求較高,需要ZC等設備內網的接入權限,但攻擊效果明顯。ZC一旦拒絕服務,在該ZC管轄范圍內的列車會進行緊急制動后請求進入人工模式,在人工模式下以較慢的速度行駛,后續車輛也會因此受到影響,都降級到人工模式,最后造成整條線路列車的積壓,嚴重影響列車運行效率。
通過列控系統滲透測試,發現以下問題:
(1)網關計算機疏于防護:網關計算機是信號安全網絡與ATS網絡信息交換的樞紐,地位重要。一旦網關計算機被攻擊而拒絕服務,雖不會造成列車安全事故,但會造成命令無法下發、列車位置無法上報等后果,嚴重影響運營;若網關計算機被攻擊者控制,攻擊者就能從ATS網絡接入信號安全網絡,造成更嚴重的后果。
(2)功能安全防護機制導致系統信息安全攻擊耐受性下降:列控系統中為提高可靠性而使用的二乘二取二安全計算機平臺在泛洪類網絡攻擊下耐受性下降,攻擊更易起效。
(3)Windows操作系統引入大量漏洞:Windows操作系統向列控系統引入了諸多高危漏洞,利用這些漏洞輕則導致拒絕服務、信息泄露,重則導致攻擊者能夠控制系統、潛伏隱藏,危害巨大。
(4)系統軟件陳舊:列控系統中使用的操作系統較為陳舊,因與外網隔離也難以及時安裝安全補丁,這導致大量存在很長時間的漏洞依舊能夠被利用。
目前城軌交通系統中已設置了一些信息安全防護手段,例如在系統關鍵位置放置防火墻,防止從系統外部發起的攻擊;在功能主機上安裝應用程序白名單,僅允許少量應用和進程運行,降低系統被植入木馬和后門的風險。但是為了防止防護措施的誤報、誤殺對功能軟件產生影響而進一步影響行車,已經應用的防火墻和白名單存在未激活或過濾條件過于寬松的情況。
城軌交通列控系統應滿足三級等級保護的要求[11]。整體的安全保障體系包括安全技術和安全管理兩大部分,安全技術又分物理、網絡、主機、數據、應用5個方面。在此主要針對后4個方面給出建議[12]。
(1)網絡安全:做好網絡隔離、端口禁用、端口綁定等工作能防范有線方式接入網絡,也能防御部分DoS攻擊;增加防火墻,列控系統應當在接入交換機、網關計算機、通信前置機等系統邊界處安裝防火墻,阻止攻擊者的滲透。
(2)主機安全:列控系統應當定期以集中發放的方式安裝補丁,能夠防范大部分已知的漏洞利用攻擊;增加入侵檢測系統,在列控系統中安裝入侵檢測和異常檢測系統,實時檢測系統狀態,向系統決策者發出預警。
(3)數據安全:嚴格遵守安全等級保護體系中對數據存儲、備份、銷毀等階段的各項要求;開發加密式通信協議,防止數據傳輸過程中可能發生的竊聽和篡改。
(4)應用安全:應增加主機衛士或類似安全設備,使用白名單的方式對應用進行保護,防止惡意應用對關鍵文件的操作;增加堡壘機或類似安全設備,進一步加強身份認證。
結合列控系統工作原理和網絡架構,分析系統存在的信息安全隱患和風險。綜合各類滲透測試方案和指南,分析其優劣,結合列控系統特點,提出列控系統的滲透測試流程。以列控系統半實物仿真平臺為測試對象,提出滲透測試方案,并驗證列控系統真實存在的隱患,進而提出改善建議。