摘 要:原有安全架構采用安全設備分離的方式,安全設備之間缺少聯動機制。采用in-line方式部署時,帶寬和轉發瓶頸較為突出,只能保障關鍵區域的安全。相反,采用旁路的方式部署時,發現威脅和攻擊無法阻斷流量。因此建立一個安全聯動平臺聯動平臺非常有意義。例如,安全聯動平臺在不增加設備投資和故障點的情況下,使IPS在旁掛模式下發現威脅并通過控制路由器、交換機和防火墻,實現動態阻斷的目的。
關鍵詞:安全設備 聯動 RESTful SNMP
一、引言
隨著云南電網信息化建設的不斷深入,IT集約化建設管控的不斷加強,云計算、物聯網、智能電網、大數據、商業智能等先進技術發展及日趨廣泛應用,公司信息化日趨向集中化、網絡化、社會化發展,公司數據在當前及未來呈現出爆炸式增長勢頭。在原有的安全架構將無法滿足未來的發展,具體體現在:原有安全架構采用安全設備分離的方式,安全設備之間缺少聯動機制;原有部署方式采用in-line方式部署時,帶寬和轉發瓶頸較為突出,同時無法大量部署,只能保障關鍵區域的安全;原有旁路的方式缺點是在發現威脅和攻擊時無法實現流量阻斷的目的,并不能滿足安全和自動化的要求。因此,有必要從前瞻性、科學性、合理性的角度提出理論指導或分析研究,探討和實踐安全設備聯動的機制,為我公司建立統一的安全指揮信息平臺做鋪墊。
二、安全聯動系統框架
本文研究的目的就是建立一個安全聯動平臺,作為安全分析設備IPS和流量路徑設備(路由器、交換機和防火墻)的控制平臺,實現旁路方式的IPS設備動態控制和阻斷流量的目的,在不增加設備投資和故障點的情況下,將威脅分析服務深入到網絡中的各節點,發現威脅時動態阻斷的目的。通過SNMP收集網絡設備的配置,由配置可以得到網絡的拓撲圖及所有設備的網段位置信,然后通過TAP端口鏡像的方式將需要分析的流量發送給分析設備,如IPS,IPS分析后如果存在威脅和病毒,則基于自身的MIB庫信息生成SNMP告警信息,并發送給安全聯動指揮平臺。當平臺收到告警后,將各種告警整理成統一的格式,調用策略模板,通過SHELL腳本或通過REST API使用JSON、XML等方式發送到網絡設備,對流量進行阻斷。
三、關鍵技術研究
1.基于ACL的訪問控制。ACL技術在路由器中被廣泛采用,它是一種基于包過濾的流控制技術。控制列表通過把源地址、目的地址及端口號作為數據包檢查的基本元素,并規定符合條件的數據包是否允許通過。ACL技術可以有效的在三層上控制網絡用戶對網絡資源的訪問,為網絡應用提供了一個有效的安全手段。訪問控制列表有以下幾種常見形式如下:(1)標準IP訪問控制(2)擴展IP訪問控制(3)命名的IP訪問控制(4)標準IPX訪問控制(5)擴展IPX訪問控制。
2.基于SNMP的告警與配置采集。SNMP是一個管理信息和操作設備的協議。SNMP的管理實體支持產生命令和接收通知,代理實體支持對命令進行響應或發起通知。SNMP 的網絡管理模型主要包含四個關鍵元素:管理工作站、管理代理、管理信息庫、簡單網絡管理協議。
3.策略優化。在平臺運行一段時間后容易出現策略冗余或過長,影響設備性能。通過策略優化可以減少設備上的策略數量,從而達到優化策略,減輕設備負擔的作用。聯動平臺產生的策略大部分是禁止訪問,deny條目相對較多,同時平臺會定時從網絡設備及防火墻收集配置,當資料層收集到配置信息后,可單獨提取出平需要的信息(如IP、控制列表等),當發現策略條目過多就可以針對策略進行及時的優化處理。策略優化的方式較多,優化思路有:1)針對單次部署的策略,IP地址段存在整合的可能,當內部程序發現IP地址可以進行合并時,自動整合為新的子網,并刪除之前策略,達到優化目的。2)部分策略只需要維持較短時間,平臺通過采集設備日志信息,查看策略匹配數,當發現近段時間內沒有檢索到匹配數時,可以考慮將該條策略刪除,達到優化目的。
4. SHELL。Linux Shell,即是系統的用戶界面,又提供了用戶與內核進行交互操作的一種接口。用于接收用戶輸入的命令并把它送入內核去執行。在編寫腳本的過程中,針對需要用戶手動去交互如passwd、scp自動部署等應用場景,可以使用expect來實現自動化的交互過程。利用shell expect即可通過運行腳本對路由器及防火墻添加對應的策略信息,實現IPS與防火墻及路由器之間的聯動功能。
通過自動登錄并實現與IPS告警信息聯動的代碼示例如下:
#!/usr/bin/expect -f
set ip [lindex $argv 0 ]
set password [lindex $argv 1 ]
set protocol [lindex $argv 2 ]
set source [lindex $argv 3 ]
set destinatian [lindex $argv 4 ]
set port [lindex $argv 5 ]
set timeout 10
spawn ssh -l username $ip
expect \"password:\"
send \"$password\r\"
expect \"*>*\"
send \"enable\"
expect \"*#*\"
send \"acl access-list ACL-100\"
expect \"*#*\"
send \"deny $protocol $source $destinatian eq $port\"
send \"end\"
expect eof
解釋以上代碼的含義:第一行設定了腳本執行的程序;第二行到第七行設定了6個變量用于調用策略部署的關鍵信息;第八行設定了本腳本所有的超時時間,如果超時,腳本將繼續向下進行;第九行,expect使用spawn命令來啟動腳本和命令會話,這里啟動的是ssh命令。下面就是交互的過程:ssh -l 登陸后,等待出現“password:”提示,寫入密碼,登陸上系統之后等待出現命令提示符”>”,此時已經登陸到了遠端主機的shell,然后利用相同原理進入到enable模式,出現命令提示”#”,即enable配置模式,之后根據先前定義的變量信息生成對應的策略語句并執行。完畢后推出遠程機器。最后是等待標示子進程已結束的標示符eof,然后退出。
5.REST。REST即表述性狀態轉移。REST是指一組架構約束條件和原則,滿足這些約束條件和原則的應用程序設計就是RESTful。其五個關鍵詞為:資源、資源的表述、狀態轉移、統一接口、超文本驅動。資源是一種看待服務器的方式。資源的表述是一段對于資源在某個特定時刻的狀態的描述??梢栽诳蛻舳?服務器端之間轉移。有多種格式,如HTML/文本/圖片等等。狀態轉移指的是在客戶端和服務器端之間轉移代表資源狀態的表述。而根據REST要求,必須通過統一的接口來對資源執行各種操作即統一接口?!俺谋掘寗印眲t是將Web應用看作是一個由很多狀態組成的有限狀態機。資源之間通過超鏈接相互關聯,超鏈接既代表資源之間的關系,也代表可執行的狀態遷移。
四、聯動的仿真實驗
1.仿真設計。本次仿真希望聯動平臺能夠實現以下功能:
1.1從IPS設備收到入侵檢測事件;
1.2自動化的控制防火墻設備對事件對應的地址進行阻斷。
仿真涉及的產品和軟件包括:
防火墻:思科的虛擬化防火墻
IPS:sourefire for vmware
虛擬化平臺:vmware vsphere 6.0
交換機:帶端口鏡像的交換機
相關測試軟件:SNMP trap watcher;REST client;
五、結語
本文所論述的技術方法解決了安全設備大規模部署影響應用和網絡響應和帶寬瓶頸的問題,通過聯動平臺,使IPS設備在不需要部署到流量路徑的情況下,就可以實現流量的阻斷。這樣的架構在保證很高的安全監測級別的情況下安全設備本身不會成為瓶頸和故障點。現有數據防泄漏設備基于市場統一標準投產,并不能完全符合企業業務需求,本文設計思路解決思路,具有一定的參考價值和非常重要的現實意義。
參考文獻:
[1]李衛.網絡安全管理及安全聯動響應的研究,計算機工程與應用,2003年第26期:161-164
[2]武孟軍.精通SNMP,人民郵電出版社,2010年7月1日
[3]倫納德·理查德森 (Leonard Richardson),RESTful Web APIs中文版,電子工業出版社; 第1版 (2014年6月1日)
[4]FireSIGHT 系統用戶指南5.3.1,2014年7月17日
[5]About the ASA REST API v1.3.1,2016年3月10日