劉 梅,蘇賜錠,謝婉娟
(1.華南理工大學信息網(wǎng)絡(luò)工程研究中心,廣東 廣州 510640;2.廣發(fā)證券股份有限公司信息技術(shù)部,廣東 廣州 510627)
當前互聯(lián)網(wǎng)規(guī)模日益龐大,互聯(lián)網(wǎng)安全問題日益復(fù)雜,非法攻擊行為日益頻繁,中大規(guī)模企事業(yè)單位通常都規(guī)劃部署多數(shù)據(jù)中心,因此存在眾多的互聯(lián)網(wǎng)邊界出入口提供對客服務(wù)。
為了快速截斷非法攻擊對網(wǎng)絡(luò)產(chǎn)生的影響,需要及時禁止非法用戶或非法攻擊源頭對網(wǎng)絡(luò)的訪問,其中顯著有效的方法則是通過IP 地址封堵,使得特定IP 地址喪失與其他IP 的通信功能,對互聯(lián)網(wǎng)來說也就是阻止特定來源IP 訪問系統(tǒng)或者訪問互聯(lián)網(wǎng)的特定風險IP。
在重保場景下或安全事件頻發(fā)期,通常會有頻繁且大批量的IP 封堵需求,人工為主的策略封禁方式在時效性上存在較大滯后,而且可能因為操作錯誤或失誤造成網(wǎng)絡(luò)中斷,甚至引起次生的網(wǎng)絡(luò)事故,同時也為惡意IP 入侵留出了更多時間,大幅增加了安全風險。
目前企事業(yè)單位中比較關(guān)注如何快速有效地阻斷互聯(lián)網(wǎng)的惡意IP 攻擊,減少不良影響具有很深的實際應(yīng)用價值。目前,基于遠程觸發(fā)黑洞(Remotely-Triggered Black Hole, RTBH)[1-4]的路由機制依賴于邊界路由器,而且邊界路由器性能有限,在封堵大量IP 時,顯得更加掣肘。實際網(wǎng)絡(luò)部署中,通常邊界未必部署有邊界路由器,而基于自動化策略下發(fā)模式[5-10]防火墻封堵方案,常常由于策略條目數(shù)有限(65 536 條),大規(guī)模、不間斷的大量IP 封堵任務(wù)瞬間消耗殆盡,無法滿足要求。因此,本文提出一種行之有效的異構(gòu)防火墻IP 封堵解決方案,該方案主要有三個優(yōu)點:不依賴于邊界路由器,支持一鍵式多品牌防火墻的封堵;采用訂閱、Restful API 或者SSH自動化模式,時效性強;在互聯(lián)網(wǎng)邊界網(wǎng)絡(luò)安全設(shè)備上完成封堵,避免攻擊流量進入內(nèi)部網(wǎng)絡(luò)。
整體系統(tǒng)主要包括以下4 個模塊:Threat Center 應(yīng)急威脅情報以及處置中心、Flask API 一鍵調(diào)度模塊、邊界安全防火墻設(shè)備庫以及企微通知模塊。自動封堵系統(tǒng)架構(gòu)如圖1 所示。
圖1 自動封堵系統(tǒng)架構(gòu)
設(shè)計思路:IP 黑名單來源于威脅情報中心,由安全人員研判維護,IP 黑名單[11-13]封堵由安全處置人員下發(fā)命令,通過SOC 安全處置中心驅(qū)動一鍵IP 黑名單封堵模塊,調(diào)度不同類型的防火墻,完成IP 黑名單腳本生成并下發(fā)生效。防火墻設(shè)備信息則通過數(shù)據(jù)庫進行維護。
現(xiàn)行防火墻的IP 封堵方式主要有策略配置下發(fā)和IP 黑名單兩種。
不同類型的防火墻,其策略配置下發(fā)模式大同小異,主要區(qū)別在于IP 地址對象/對象組的定義,策略配置的即時生效或提交驗證后生效,而其IP 黑名單實現(xiàn)模式則各不相同。
1.2.1 Checkpoint 防火墻
Checkpoint 防火墻管理平臺策略配置下發(fā)模式存在時間消耗長,多套邊界防火墻為串行方式,時間復(fù)雜度為O(n),時效性差。
威脅情報訂閱模式通過管理平臺初始化,啟用防火墻的ACL 規(guī)則的定時刷新,防火墻通過HTTP 協(xié)議自動定時向威脅情報中心加載IP黑名單。本文對該模式進行優(yōu)化,通過ParamikoSSH 遠程調(diào)度,按需啟停腳本,一次觸發(fā)所有防火墻重新刷新訂閱威脅情報的功能,從而完成IP 黑名單的ACL 自動化實時刷新封堵。
1.2.2 華為防火墻
華為防火墻安全防護功能中的IP 黑名單模塊容量受限,雖然也提供netconf xml 的Restful API 接口,但配置復(fù)雜。本文結(jié)合華為防火墻IP 對象,對對象組的配置機制提出了一種更加靈活的方案。
首先對防火墻設(shè)備進行初始化封堵策略配置,再通過Paramiko SSH 遠程對IP 黑名單組對象更新的模式實現(xiàn)IP 黑名單封堵。大體思路為在防火墻生成IP 地址集合對象,再將集合對象加入預(yù)設(shè)的IP 黑名單組對象中,無需對策略進行復(fù)雜的邏輯操作。
該方式有效解決了華為防火墻IP 黑名單模塊的容量限制問題,巧妙運用華為防火墻的IP 對象的對象組特點,僅使用一條初始化的防火墻策略即可實現(xiàn)對大規(guī)模IP 黑名單的策略模式封堵,同時也規(guī)避了策略條目數(shù)對設(shè)備的性能消耗。
1.2.3 Fortigate 防火墻
Fortigate 防火墻為IP 黑名單封堵提供了Restful API 接口的隔離方案,可增量模式一次性下發(fā)所有的IPv4/IPv6 地址封堵,且不影響已有的隔離IP。
接口URL 為/api/v2/monitor/user/banned/add_users/,本文方案通過python request 模塊對接上游的威脅情報中心以及Fortigate 防火墻,腳本調(diào)度靈活方便,滿足實時性要求。
1.2.4 山石防火墻
山石防火墻IP 黑名單封堵有靜態(tài)IP 黑名單、動態(tài)IP 黑名單以及IP 黑名單庫策略(perimeter-trafficfiltering)三種模式。
受限于靜態(tài)模式不支持永久IP 黑名單,靜態(tài)以及動態(tài)的容量受限,本文采取IP 黑名單庫策略方案,可支持達6 萬條IP 記錄。
IP 黑名單庫策略僅支持按照配置時間每天刷新一次,無法有效實現(xiàn)IP 黑名單的實時封堵。
借鑒Checkpoint 的優(yōu)化方案,運用Paramiko SSH 按需修改庫策略的更新時間來觸發(fā)實時更新,解決刷新機制的問題,最終整體思路如下:
1)初始化啟用黑名單庫策略更新源FTP 以及對應(yīng)的IP 黑名單文件;
2)應(yīng)急處置中心下發(fā)IP 封堵命令后,獲取威脅情報中心的全量IP 黑名單,并更新上傳至FTP;
3)Paramiko SSH 遠程登錄防火墻,獲取當前防火墻的時間,并適時修改黑名單庫策略的更新時間至下一分鐘;
4)下一分鐘到來,IP 黑名單庫策略更新被觸發(fā),防火墻拉取FTP 上最新的全量IP 黑名單并覆蓋刷新,從而實現(xiàn)IP 黑名單封堵。
1.2.5 華三防火墻
華三防火墻Restful API 下發(fā)IP 黑名單方式僅支持逐個IP 調(diào)度下發(fā)配置,如涉及大量的IP 黑名單,時間復(fù)雜度為O(n),時效性差,無法滿足實時性要求。而Paramiko SSH 遠程命令的實現(xiàn)邏輯簡單,命令執(zhí)行效率高,滿足實時性要求,具體思路如下:
1)system-view 編輯模式下執(zhí)行blacklist IP *或者blacklist IPv6 *即可實現(xiàn)對單個IP 的封堵;
2)如需封堵多個IP,則可使用命令拼湊方式一次性下發(fā)執(zhí)行,命令執(zhí)行次數(shù)從O(n)降為O(1),減少SSH命令交互次數(shù)的同時也規(guī)避了SSH 通道的異常發(fā)生。
該模塊主要負責IP 黑名單地址的維護,結(jié)合不同類型防火墻封堵的設(shè)計原理,需要同時設(shè)計增量IP、全量IP 黑名單的維護模式,并提供途徑給安全研判人員進行IP 黑名單的增刪維護。
提供接口給安全應(yīng)急處置人員下發(fā)IP 黑名單封堵命令,對接一鍵調(diào)度模塊執(zhí)行IP 封堵任務(wù)。
提供接口給一鍵調(diào)度模塊讀取增量、全量IP,其中增量IP 供華為/Fortigate/華三防火墻攔截,全量IP 供Checkpoint 以及山石防火墻訂閱。
該模塊為核心模塊,采用Flask 輕量級的Python Web 微型框架,可使用Flask-SQLAlchemy 便捷對接數(shù)據(jù)庫,向外提供Restful 接口,具有靈活性和可擴展性。
該模塊通過Paramiko SSH 以及Restful 接口,完成所有邊界防火墻設(shè)備的統(tǒng)一對接以及納管,實現(xiàn)安全策略的集中管理以及一鍵下發(fā)功能。
提供Restful 接口給安全處置中心進行調(diào)度,并生成相應(yīng)的處置任務(wù)腳本后調(diào)度下發(fā)至邊界防火墻設(shè)備中,從而實現(xiàn)IP 黑名單的快速應(yīng)急封堵處置,有效遏制大規(guī)模網(wǎng)絡(luò)攻擊,保障數(shù)據(jù)中心基礎(chǔ)設(shè)施安全。
上述模塊均采用Docker 容器方式部署,方便快速迭代,同時啟用restart=always 參數(shù),自動啟動相關(guān)容器以提升保障平臺的健壯性。
程序優(yōu)化前發(fā)現(xiàn),對多臺防火墻進行封堵的場景,程序以串行方式執(zhí)行,消耗時間為O(n),影響實時效率。
通過多線程方式可對程序代碼進行優(yōu)化,將防火墻的串行封堵變?yōu)椴⑿蟹绞綀?zhí)行,實踐證明,程序的執(zhí)行消耗時間為O(1),執(zhí)行效率以及實時IP 封堵時效性顯著提升。防火墻并行封堵代碼模塊如圖2 所示。
圖2 防火墻并行封堵代碼模塊
Paramiko SSH 交互式模式的引入有效優(yōu)化解決了各類防火墻的IP 封堵機制限制問題。但實踐過程中網(wǎng)絡(luò)傳輸狀況不可預(yù)知,為增強程序的健壯性,代碼引入了func_timeout 函數(shù)超時模塊,并對SSH 交互的發(fā)送、接收方法進行了相應(yīng)的約束,防止超時、假死、SSH Error等各類異常的發(fā)生。SSH遠程超時代碼模塊如圖3所示。
圖3 SSH 遠程超時代碼模塊
封堵執(zhí)行結(jié)果通過企業(yè)微信機器人[14]推送通知,即時掌握IP 封堵情況。封堵執(zhí)行結(jié)果推送代碼模塊如圖4所示。
圖4 封堵執(zhí)行結(jié)果推送代碼模塊
使用Postman工具測試,同時下發(fā)IPv4以及IPv6兩個黑名單IP 2a02:6ea0:c859:3::a03e 以及79.124.59.86,下發(fā)后,執(zhí)行結(jié)果通過企業(yè)微信通知,如圖5、圖6 所示,從日志上可見,1 min 內(nèi)便完成了所有邊界防火墻的封堵任務(wù)。
圖5 Postman 測試下發(fā)封堵請求
圖6 封堵執(zhí)行結(jié)果企微推送結(jié)果
登錄防火墻驗證新增IP 黑名單是否生效,具體結(jié)果如圖7~圖11 所示。
圖7 華為防火墻IP 黑名單
圖8 Fortigate 防火墻隔離監(jiān)視器
圖9 Checkpoint 防火墻ACL
圖11 華三防火墻黑名單
由圖7~圖11可見,一鍵IP封堵對IPv4/IPv6均生效。
本文基于現(xiàn)有的各主流防火墻的IP 黑名單封堵機制,對多數(shù)據(jù)中心邊界、應(yīng)急處置自動化程度低、策略封禁時效性差等問題進行了相應(yīng)的設(shè)計優(yōu)化,提出了一種可行并快速有效的防火墻IP 黑名單自動封堵方案。無論相對RTBH 的路由機制封堵,還是常見的防火墻自動化策略下發(fā)方式,該方案優(yōu)勢明顯,滿足大量IP 封堵的需求,已在企業(yè)護網(wǎng)演練、重保場景下以及日常網(wǎng)絡(luò)安全攻擊防護實踐中得到運用,對惡意攻擊IP 實現(xiàn)秒級封堵,提升了總體安全應(yīng)急響應(yīng)效率,具有可借鑒價值。