摘要:本文首先簡要介紹SCADA系統的組成、協議、特點及其先天的脆弱性,其次對目前現有對SCADA系統進行掃描探測的技術、方法和工具進行詳細分析,表明主動掃描與被動掃描各有優點和缺點,而智能掃描可將二者優勢進行整合,是未來SCADA系統探測掃描的發展方向。最后通過簡單的測試和分析對SCADA系統的安全防護進行思考并提出建議。
關鍵詞:SCADA;漏洞掃描;工控系統
一、引言
“工業4.0”時代,網絡化、數字化、智能化成為了新的方向。信息技術(Information Technology,IT)和操作技術(Operational Technology,OT)的融合已成為大勢所趨,同時是工業智能化的核心。早期的工業控制系統(Industrial Control System,ICS)中IT與OT相對較獨立,但隨著因特網的快速發展,再加上ICS在對圖像、信號、控制等大數據要求下,IT和OT融合的新型ICS因此誕生。雖然IT和OT的融合給企業帶來了更高的生產效率及控制效率,但也因此使得OT系統將要面臨來自IT的威脅,威脅參與者可以利用IT網絡訪問OT系統,從而進行攻擊。ICS一旦遭受攻擊,將會帶來巨大的經濟損失,因此ICS安全就顯得格Vulnerability Scanning and Detection Technique on SCADA Systems外重要。
二、SCADA系統概述
數據采集與監視控制(Supervisory Control and Data Acquisition,SCADA)系統是智能化工業領域中必不可缺的一部分,它可以對現場的設備進行監視和控制,同時還具有數據采集、測量、信號報警等功能,被廣泛運用于電力、石油、化工、鐵路等領域。曾經的SCADA系統是孤立于外界網絡的獨立網絡,但在當今IT和OT融合的環境下,因特網協議(Internet Protocol,IP)也與SCADA相融合。由于部分設備較為脆弱,威脅參與者可以通過惡意掃描對SCADA設備進行交互,并對工業設備造成破壞,當遭受到攻擊時可能會導致發電機停止工作或異常報警等。
2.1 SCADA系統的組成結構
SCADA系統由硬件設備和軟件組成的對生產過程控制與調度的自動化系統,其主要組件有負責收集過程數據并向連接設備發送控制命令的監控計算機、連接過程中的傳感器和控制器的遠程終端單元(RTU)、通過輸入輸出來控制各種硬件設備的可編程邏輯控制器(PLC)、為操作員提供窗口的人機界面(HMI)和通信基礎設施。
2.2 SCADA的協議概述
為了充分理解SCADA系統的通信技術和在SCADA設備上執行網絡掃描的可行性,首先對SCADA系統常見的DNP3和ModBus兩種協議進行回顧。
DNP3協議是自動化系統組件間的通信協議,它是完全基于TCP/IP的,在應用層實現了對傳輸數據的分片、校驗、控制等諸多功能。在工業中,常被用于水利和電力公司。它為各種SCADA系統之間提供通信,在SCADA系統中起著決定性作用,它主要負責主站與RTU、IED、HMI之間的通信,且支持多主機、多從和對等通信,有輪詢操作和靜態操作的操作模式。操作員可以通過抓包的形式來監視DNP3協議,以便提高系統的可靠性、減少故障和停機時間,但它并沒有被設計于保障通信安全。
ModBus是一種點對點的串行通信協議,其作用為提供RTU和PLC通信的標準,協議可以確定控制器是如何知道設備地址、識別發送給它的消息、采取的措施等。但ModBus有很多缺點,同時也有許多擴展去解決和修復這些缺點,其中最有名的就是ModBus X拓展。在網絡掃描過程中,由于數據包的接收方設備和發送方設備不同,他們的指令集也不同,一個Ethernet數據包從發送方發送出去,但接收方不一定會要求SCADA設備做出正確回應,當出現這樣的情況時,掃描可能將失去意義。如果接收方在接收過程中,數據包太大或者傳輸速度太快,SCADA設備的CPU可能也將無法正常解析數據。此外,掃描工具在傳輸數據時可能無法穿過正在使用的特定介質,這可能會導致在串行網絡上造成連接中斷、拒絕服務等負面影響。
2.3 SCADA與商用IT網絡的差異
SCADA系統中的網絡與傳統的商用IT網絡存在著一定差異。一是,SCADA系統中的ICS網絡和商用IT網絡實施不同,ICS網絡對于網絡的實時性要求較高;二是,構建的每個節點和子網的架構不同;三是,故障的嚴重性不同,ICS網絡一旦出現故障,將會帶來嚴重的后果,巨大的經濟損失甚至人員傷亡。工業網絡安全事故造成嚴重后果的例子眾多,如美國Davis Besse核電站受到蠕蟲攻擊、震網病毒攻擊伊朗核電站事件。
2.4 SCADA系統漏洞掃描的難點
由于SCADA系統最初與IT相對獨立,SCADA系統中的設備在設計之初并不注重信息安全的基本屬性,這將無法保證SCADA設備的安全性和處理事故的能力,因此它們很容易被攻擊。當SCADA系統或ICS組件可能存在漏洞時、受到出于經濟利益的網絡攻擊時或遭遇到網絡戰時,攻擊者首先會通過掃描技術進行工業設備及工控設備的資產發現,以確定一個IP地址內是否存在設備、該設備是什么樣的設備。除了資產發現以外,在監視控制、數據采集、漏洞掃描等方面都需要使用掃描技術,這樣的掃描技術主要包括主動掃描和被動掃描,以及最新提出的智能掃描。
SCADA系統的脆弱性意味著掃描技術也可能會帶來風險,尤其是主動掃描甚至可能會造成工業設備的損壞。PLC和RTU等OT設備將監視機械設備(例如泵、閥門、發電機、報警器等)的運行以及環境因素(例如溫度、濕度、PH值等)。但這些設備是非常敏感的,無法承受住主動掃描。設備敏感的原因如下:
( 1 ) CPU的功能有限并且性能不高:設備被設計成一次只能做一件事,可能會導致被大量請求淹沒;
( 2 ) 實時通信:他們使用實時通信協議,如果通信延遲,重新建立通信也可能會遇到困難,比如全面的漏洞掃描將會造成延遲;
( 3 ) 設計之初未重視網絡安全:OT設備在設計之初都偏向于對環境的耐受性,比如耐熱、耐振動、抵抗空氣中的微粒或者抗電源中斷等,但沒有設計足夠的網絡通信最大承載量;
( 4 ) 使用自定義的操作系統和軟件:許多OT設備不會使用經過廣泛測試、安全性較高的Windows、Linux系統和其他軟件,而是使用自定義的操作系統,獨立設計的小型軟件,這都意味著系統安全性能較低;
( 5 ) 后期維護不充分:一個OT設備可能會使用數年甚至十數年,維護不充分造成OT設備處于崩潰的邊緣,例如積滿灰塵讓設備運行至接近過載點。完整的漏洞掃描則可能會帶來額外的負載,使其超過過載點而崩潰。
三、SCADA系統漏洞掃描方法與工具
3.1 漏洞掃描方法
3.1.1 被動掃描
被動掃描也叫做被動監視、被動嗅探。它使用對網絡流量的監視來識別服務、主機和客戶端。在網絡上設置了一個觀察點,需要網絡管理員或網絡工程師的協助才能配置這些系統以獲得最佳結果。無源掃描器可以長時間連續運行,而不會中斷常規的網絡流量或與設備本身進行交互,因為無源掃描工具的輸入數據是由網絡流量直接饋送。這意味著用戶可以創建算法以剖析每個協議,有可能從每個數據包中提取重要的信息和標識符。被動掃描是一種安全的掃描方式,由于其被動性質,它無法獲得設備的詳細信息,且無法掃描到休眠設備。
3.1.2 主動掃描
主動掃描是主動向被掃描設備發送數據包的掃描方式,它試圖聯系每個主機上的每個服務,將數據包發送到每個主機并監視響應,但是隨著時間的流逝,或者在以后重復相同的掃描時,此信息將會過時。主動掃描與被動掃描的一個顯著差異:與設備的實時交互。在獲取有關ICS或SCADA網絡上設備的信息時,主動方法需要與網絡上的設備進行某種形式的交互,在網絡上的“觀察點”運行更長的時間,從而無需從任何已連接的設備發送或接收數據。利用主動掃描可以掃描漏洞、發現和識別網絡上的資產、操作系統和網絡設備等的配置評估、掃描惡意軟件、檢測更新等,但主動掃描是一種侵入型掃描,再加上工控設備的脆弱性,可能會損壞部分敏感的工控設備。
3.1.3 智能掃描
智能掃描是一種新的掃描技術。無論是被動掃描還是主動掃描都有缺點。被動掃描無法給出較為完善的信息,主動掃描可以提供更多的信息但又可能對敏感的工控設備造成損壞,而智能掃描,結合了兩者的優點,同時使缺點最小化。智能掃描通過對設備的判定來決定是否中斷掃描。因為智能掃描是為了保護SCADA敏感設備不因掃描而破壞而研究的,工廠使用智能掃描大多為了SCADA系統的檢查與防護,從而可以獲得被掃描設備的參數,例如CPU的當前負載率、設備溫度的變化情況、設備安全的CPU負載和溫度閾值,將這些參數代入計算掃描方式的算法中,然后將會得出一個安全的掃描方式。對性能較好的設備采用高速掃描:在不需要得到上一個數據包結果的情況下,快速連續發送一系列數據包,最后在對所接收到的全部數據包進行統計。而對性能較差的設備采用緩慢低速的掃描,甚至一次只發送一個數據包,當接收到上一個數據包后才發送下一個數據包,若在規定的時間內(可以是30秒,也可以是60秒等等)沒有收到數據包,則視為被掃描設備進行了丟包操作,掃描程序將會再次發出數據包,但連續超過四次以上的丟包將會中斷掃描。除此之外,當收到的數據包是斷斷續續則可能是因為CPU性能處于極限狀態。如果是敏感設備將及時中斷掃描,并記錄該設備的IP、MAC地址等信息,默認下次掃描將會跳過該敏感設備。通過目前技術分析以及各大廠商設備的出現,未來全智能掃描分析具有廣闊應用空間,通過掃描技術獲得系統一切可利用的參數,并把用戶想知道的部分提取出來,整理成數據方式選擇目前最優的方案呈現在用戶的面前。或許未來還會在智能掃描功能中內嵌“治療系統”,集掃描分析治療為一體,我們可以拭目以待。
3.2 常用掃描工具
3.2.1 Shodan
Shodan是一個搜索引擎,但它與Google這種搜索網址的搜索引擎不同,Shodan用來搜索網絡空間中的在線設備,用戶可以通過Shodan搜索指定的設備,或者搜索特定類型的設備,其中Shodan上最受歡迎的搜索內容是:webcam,linksys,cisco,netgear,SCADA等等。那么Shodan是如何工作的呢?Shodan 通過掃描全網設備并抓取解析各個設備返回的banner 信息,通過了解這些信息 Shodan 就能得知網絡中最受歡迎的Web服務器,或是網絡中存在可匿名登錄的 FTP服務器數量。Shodan常被用于查看指定主機的相關信息,如地理位置信息、開放端口、是否存在某些漏洞等信息。
圖1 Shodan查看指定IP的SCADA設備情報及漏洞掃描結果
3.2.2 Nmap
Nmap是一個網絡連接端掃描軟件,用來掃描網上電腦開放的網絡連接端。確定哪些服務運行在連接端,并且推斷哪個操作系統計算機運行(亦稱為 fingerprinting)。它是網絡管理員必用的軟件之一,用以評估網絡系統。正如大多數被用于網絡安全的工具,Nmap也是不少黑客及駭客愛用的工具。系統管理員可以利用Nmap來探測工作環境中未經批準使用的服務器,但是黑客會利用Nmap來搜集目標電腦的網絡設定,從而計劃攻擊的方法。
Nmap以隱秘的手法,避開闖入檢測系統的監視,并盡可能不影響目標系統的日常操作。Nmap工具在電影黑客帝國(The Matrix)中也被用到(引自電影人物:崔妮蒂利用Nmap工具配合SSH1的32位元循環冗余校驗漏洞入侵發電站的能源管理系統)。Nmap具有眾多的腳本,其中就包含了針對各個公司SCADA設備的漏洞掃描腳本,這些腳本集成了該公司大多數SCADA設備的漏洞掃描,但不同公司SCADA設備的腳本通常是不能通用的。
圖2 Nmap掃描羅克韋爾自動化Allen-Bradley PLC
3.2.3 Nessus
Nessus是目前全世界使用人數頗多的系統漏洞掃描與分析軟件,總共有超過75,000個機構使用Nessus作為掃描該機構電腦系統的軟件。作為漏洞掃描方面強大的工具之一,Nessus提供完整的電腦漏洞掃描服務, 并隨時更新其漏洞數據庫。不同于傳統的漏洞掃描軟件, Nessus 可同時在本機或遠端上遙控, 進行系統的漏洞分析掃描。其運作效能能隨著系統的資源而自行調整。如果將主機加入更多的資源(例如加快CPU速度或增加內存大小),其效率表現可因為豐富資源而提高。Nessus擁有眾多的插件,因此也可以用于掃描SCADA,但需要事先安裝好插件,它可以幫助使用者掃描常見的SCADA設備。這些插件的安裝方法簡單,且該軟件具有可視化圖形界面,對于技術水平一般的工作人員極為友好。
圖3 Nessus掃描SCADA結果
3.2.4 Passive Vulnerability Scanner
Passive Vulnerability Scanner(PVS)是一項網絡發現和漏洞分析的專利技術,它以一種非入侵性的方式,提供持續的實時網絡分析和監控。在數據包層PVS 漏洞監控工具監控IPv4和IPv6網絡流量,來確定拓撲結構、服務和漏洞。可以完整查看用戶的安全狀態,同時集中日志分析和漏洞管理。
顧名思義,這款軟件是一款被動掃描軟件,在ICS中,可以用其來進行網絡分析和監控,以檢測是否有異常流量通過。
圖4 PVS被動掃描的數據監控頁面
3.2.5 MSF
MSF是一個滲透測試框架,它的功能十分強大,無論是漏洞掃描還是漏洞利用、遠程控制等它都可以實現。MSF通過加載眾多的模塊進行掃描及利用,利用一個模塊對SCADA系統的攻擊流程為:( 1 ) 加載模塊;( 2 ) 設置目標IP;( 3 ) 對目標進行漏洞掃描,判斷其存在模塊內的哪些漏洞;( 4 ) 如果該設備存在漏洞,就可以對其進行攻擊。
圖5 MSF使用模塊對SCADA系統進行掃描及利用
四、測試與分析
4.1 SCADA漏洞掃描及利用測試
如果SCADA系統被威脅參與者進行惡意的漏洞掃描,威脅參與者可能會對掃描出的漏洞加以利用,從而對SCADA系統造成破壞。為了觀察和評估對SCADA系統進行惡意的漏洞掃描所造成的后果,筆者利用現有的ICS模擬設備進行本次SCADA系統漏洞掃描及利用實驗,本次實驗基于搭載了西門子S7 PLC的智能制造工控模擬系統。
首先使用Nmap對整個SCADA系統進行掃描,以發現存活主機,該SCADA系統由一個PLC、一個HMI和一個RTU組成。本次測試以該SCADA系統中的PLC為攻擊目標,利用ISF對目標PLC進行攻擊,本次使用攻擊模塊為s7_300_400_PLC_control,此腳本可以使PLC停止工作。在命令框內輸入命令以運行ISF。
圖6 ISF運行界面
使用模塊后,設置目標的IP地址,然后運行模塊 后,將會在確認目標存活后發送一個數據包以停止PLC運行。
圖7 利用模塊進行攻擊
4.2 趨勢分析與思考
基于SCADA的漏洞掃描可以是出于工廠為提前發現風險、降低風險而做的自我保護;也可以是出于破壞或牟利的威脅參與者對SCADA系統的漏洞掃描,威脅參與者通過漏洞來攻擊SCADA系統。由于主動掃描具有一定危害性,筆者從工廠如何進行更為安全的漏洞掃描和防御威脅參與者的惡意掃描兩個方面進行分析與思考。
當工廠對SCADA系統進行安全檢查時,如何進行安全的漏洞掃描?筆者認為可以使用主動掃描與被動掃描相結合的方式。主動掃描應當在確保SCADA系統安全的情況下使用,對非敏感的設備使用主動掃描可以獲得更為詳細的設備信息并且可以檢測出存在的漏洞,而對于敏感設備應當使用被動掃描以監控和分析流經敏感設備的網絡流量。而未來的研究方向將會是智能掃描如何在保證SCADA系統安全的情況下盡可能的實現更為細致的掃描。
那么工廠又該如何去防御威脅參與者的惡意掃描?筆者認為工廠必須具備一個完整的安全策略,這個安全策略不僅僅作用于硬件設備,還作用于所有員工。從硬件設備層面來說是在系統中配置防火墻以限制外來網絡流量,以及做好充分的態勢感知和威脅檢測。從員工層面來說就是限制員工權限,每個員工能接觸的設備及接觸設備方式都需要進行限制,使權限最小化、精細化,最大化保證安全。
五、結語
在IT/OT融合環境下,SCADA系統將無法避免來自IT的威脅,由于工控系統中部分設備極為敏感,無論是基于漏洞發掘的掃描,還是基于資產發現的掃描,都將可能造成敏感設備損壞,從而對整個工業生產造成損失。無論是主動掃描還是被動掃描,都有明顯的缺點與不足,而智能掃描可以通過計算設備過載點并給出適合的掃描方案,以此來保證SCADA系統敏感設備不因為受到掃描而產生設備損壞、拒絕服務等不良影響。通過對掃描算法的不斷更新與完善,未來智能掃描將成為SCADA系統漏洞掃描的新方向。
原文來源:工業安全產業聯盟
版權所有:鄭州三中網安科技有限公司 豫ICP備2020036495號-1 ?? | 豫公網安備 41019702002241號 | 站點地圖 | 人才招聘 | 聯系我們 |