王成彥
(上海航天測控通信研究所,上海 201109)
工業控制系統是我們日常生活中經常會接觸到的,例如一些智能電表,門禁系統監控系統等,這些或大或小的設備充斥著我們的日常生活,在享受智能便利的同時,也會存在一些安全隱患問題。工業控制系統分為可編輯邏輯控制器和數據采集堅實控制系統,前者主要是用來修正被控制設備的行為,通常是用來接收信息的一些小型的處理器。而后者通常是完整的監督控制系統,我們日常生活中見到的大型的監督控制系統都屬于這個范疇[1]。
工業控制系統如今與互聯網的聯系十分的緊密,通過一些智能的網絡設備,可以完成大范圍的控制和應用工作。因而工業控制系統開始逐漸的擺脫物理條件的限制,成為了網絡控制下的高效運行系統,這樣一來,很多的系統問題能夠及時的被發現,并在網絡狀態中得到修復和完善,缺點就是造成被威脅和被破壞的幾率有所增高。
入侵檢測系統其實就是被納入到工業控制系統之中的一個軟件公祖,他擁有授權訪問等權利,實質上就是一個動態的監測系統,用來尋找各種異常問題和入侵情況,在防火墻功能基礎之上,還具備有通信的功能,在既定的外部檢測環境中,入侵檢測系統可以對既定事件進行分析,一旦分析出現情況,便會完成最終相應,這也是檢測的完整過程。這其中事件盒子是監控目標系統的傳感器,它通過傳輸信息來完成儲存,交由儲存盒子處理相關事件,分析是否存在入侵危機,最后分析結構在必要時候會觸動警報,從而走向最后的響應盒子,響應盒子負責總結歸納以上情況并執行相關的相應措施,來組織入侵行為的發生。
和其他的入侵檢測模型將比較而言,基于遙感的入侵檢測模型,不惜要進行網絡對接,直接可以對問題進行分析,這樣一來大大的提升了效率,降低了問題解決的時間。且基于遙感的入侵檢測模型的檢測率很高,通過內外網的比較檢測實驗,內網的惡意流量識別達到了95%,外網的甚至達到了99%。因此,其實際的使用效率很高,實用性很強。不進入工業控制系統是遙測入侵檢測模型的最大特點,通過對數據進行驗證,該模型能夠直接實現入侵檢測。
誤報是入侵檢測過程中無法避免的一個問題,也是目前在入侵檢測發展領域中直面的技術難題。對于工業控制系統的入侵檢測來說,誤報和漏報一樣都需要承擔嚴重的后果,不僅僅是信息傳遞的失誤那么簡單。目前我們更新的基于遙感的入侵檢測模型,已經能夠在一定范圍內降低誤報率,但是并不代表誤報的情況不會發生。目前我們通過對模型進行進一步分析,得出了三類可能出現的誤報情況發生原因:一是無效報文的產生,無效報文的產生涉及到了各個方面,其存在會影響到數據的運行。通行過程中的TCP報文、網絡原因引起的異常報文,以及惡意流量報文等,都是報文產生的主要原因[2]。二是機器存在不可知的弱點,該弱點在目前狀態下尚未得到明確,因而我們無法對所有的部分和漏洞展開調查,這些弱點會直接降低系統的分辨能力,對于部分無效的攻擊無法進行準確篩除,進而產生一些虛假警報行為。三是未得到反饋的異常信息,一般情況下系統是能夠對目標行為給出相應的,因為在攻擊進行的同時,系統會直接判斷其攻擊是否失效,以此來作出相對回應,但是異常的反饋信息缺少這一些要素,在受到攻擊時,目標主機會出現異常的回應信息,進而影響到后續的判斷。
根據已知模型和數據,我們可以得出的實驗方案中,能夠將降低報錯率的措施分為四個部分,第一部分是無效報文的過濾,首先是在通信過程中出現的TCP報文,可以修改其display filter的參數,使數據包內的協議可以進行自動解析匹配,進而過濾到Modbus協議意外的所有數據包,這樣我們只用保留需求之內的數據報文,很大程度上避免了不必要報文的產生。面對由于網絡抖動原因而出現的錯誤報文,可以將偏差閾值進行重新的定義,這樣在正常流量相應時間內出現的保溫,就能夠具備相應的提取時間,將時間的均值作為標準值,就能夠逐條判斷出保溫的實際響應時間是否超出了預期的設定,超出或者偏差過大的報文都可以被定義為異常報文處理。面對其他情況出現的異常報文,可以利用pyshark解析數據包,得到Modbus核心功能碼即可。第二步是進行已知弱點的掃描工作,面對已知弱點的掃描可以利用數據分析將其進行等級的評分,進而利用分析軟件將系統資料中存在的弱點進行監視并獲取,根據弱點的相關信息分析其是否存在有效攻擊能力,如果不存在則判定為無效攻擊。我們進行操作的中心思想是根據每一類攻擊的基本特性進行歸類,利用這些攻擊的弱點進行劃分,并對應給出判斷。第三步是進行反饋和異常情況的分析,在異常情況發生之后,優先利用tcpdump對服務器流量的流動和分布情況進行監測,一旦遇到惡意的流量,服務器的監測系統便會出現很明顯的異常情況,因而我們可以根據當時服務器的變化情況來確認其是否受到了惡意的攻擊,并且同時利用pyshark對以及捕獲的部分流量數據包進行分析解讀,得到最為直觀的反饋信息之后,我們就能夠把握真實信息的來源以及反饋情況,觀察其信息是否已經被傳送到服務器的端口,以此來作為控制服務器異常并進行反饋的一個手段[3]。
目前我們根據電子模塊的不同,對整體系統進行設計,將其分為了七個子模塊,分別是①任務下發模塊、②流量獲取模塊、③流量檢測模塊、④融合決策模塊、⑤結果展示模塊、⑥用戶模塊、⑦數據儲存模塊。
在明確了系統模塊的分配之后,我們需要從總體的角度來考慮各個模塊之間信息傳遞功能以及數據傳遞的通暢性,因而我們選擇以完整結構圖的形式來展示各個模塊之間的關系,其中任務模塊和流量獲取模塊存在直接的關聯,流量檢測模塊實際上與融合決策模塊存在關聯,流量模塊可以通過固定技術來獲取網絡信息并實施監控,在監控和處理過后的信息會被傳遞到檢測模塊,之后進行建模,直到經過流量檢測之后被傳輸到數據存儲模塊之中。最終結果展示的環節可以從數據存儲和相關系統監控之中尋找到結果,用戶模塊則是獲取信息的重要模塊,通過用戶模塊,可以直接的將用戶的操作進行捕捉,最后順利的完成注冊、注銷、登入的退出這些步驟的操作。
我們需要完成系統設計和系統實現之后,根據相關系統環境對整體系統進行建設任務,因而最終呈現的系統運行效果與環境搭建效果有直接的關系。在搭建完成之后即可進行入侵檢測,在此我們利用的是Diango框架作為整個的操作頁面來執行,操作頁面中一共分為主頁面,主要展示用戶登記和進入系統,該頁面屬于客戶端的基本信息。進入頁面,可以在該頁面看到詳細的機器操作以及相關信息,還可以利用傳輸系統完成文件的傳輸任務。最后來到的是任務的下發頁面,該頁面屬于流量檢測任務的中間環節,可以對執行機器以及運行文件進行選擇,選中之后會對相應的任務機器發送請求。最后是結果展示的頁面,該頁面主要負責對攻擊的檢測結果進行展示,通常有受到攻擊的機器的IP地址,受到攻擊的時間,受到攻擊的內容等等這些因素。
工業控制系統與我們的生活息息相關,他負責我們生活中的安全,因而,在實際操作過程中,很可能會受到多種類型的攻擊,而伴隨著互聯網技術的普遍應用,攻擊能力在逐漸的增強,攻擊的范圍也在逐漸的變大,因而對工業控制系統的算法進行優化,是當前應對攻擊的最有效措施。