河南 劉景云
為了防御外來(lái)威脅,很多單位都配置了思科IPS 入侵防御系統(tǒng)。利用IPS 的Blocking Device 功能,可以使其登錄到不同的網(wǎng)絡(luò)設(shè)備上,在其中寫入各種安全控制指令,對(duì)可疑的流量進(jìn)行攔截。
例如,思科IPS 入侵防御系統(tǒng)支持思科所有類型的路由器、思科的ASA/PIX 防火墻設(shè)備、老版的防火墻模塊以及Catalyst 6500 交換機(jī)等。對(duì)于路由器來(lái)說,IPS 可以在其上寫入ACL 列表信息,利用Police 指令執(zhí)行限速操作。在ASA 等設(shè)備上可以寫入Shun 規(guī)則,對(duì)于Catalyst 6500 交換機(jī)來(lái)說,可以寫入VACL 列表。
IPS 支持的登錄協(xié)議包括Telnet 和SSH,當(dāng)然目標(biāo)設(shè)備既然允許IPS 登錄,那么它必須擁有可用的IP,并且需要打開Telnet 或者SSH功能。如果使用SSH 的話,需要進(jìn)行加密授權(quán)。
若要使用基于IPS 設(shè)備的Block 攔截功能,需要開啟防地址欺騙功能,因?yàn)橥獠抗粽呖赡軙?huì)通過偽裝內(nèi)部IP 的辦法來(lái)侵入內(nèi)部主機(jī)。當(dāng)IPS 發(fā)現(xiàn)其攻擊行為后,自然會(huì)登錄到ASA 設(shè)備上寫入Shun 規(guī)則,來(lái)攔截該流量。
但是因?yàn)楣粽呤褂脗窝b的合法內(nèi)部源地址,就會(huì)造成正常的網(wǎng)絡(luò)通訊中斷。因此,通過啟用防地址欺騙功能,在相應(yīng)設(shè)備(例如網(wǎng)關(guān)等)的外部接口入方向?qū)懭階CL 列表,拒絕源自于內(nèi)部網(wǎng)絡(luò)的流量從外部接口進(jìn)入,就可以避免上述情況的發(fā)生。
對(duì)于一些重要的服務(wù)器以及路由器等設(shè)備,為了不影響它們的正常工作,需要將其放入到排除列表中,這樣即使和這些設(shè)備相關(guān)的IP出現(xiàn)違規(guī)的情況,也不會(huì)遭到攔截。
對(duì)于大型的網(wǎng)絡(luò)來(lái)說,可能存在多個(gè)網(wǎng)絡(luò)入口點(diǎn),而IPS 設(shè)備可以同時(shí)控制這些入口點(diǎn),當(dāng)黑客通過某個(gè)入口點(diǎn)攻擊內(nèi)部網(wǎng)絡(luò)時(shí),IPS 設(shè)備可以對(duì)其進(jìn)行分析判斷,以獲取攻擊者的實(shí)際IP,之后登錄到所有的網(wǎng)絡(luò)入口點(diǎn)上,分別寫入對(duì)應(yīng)的ACL 列表項(xiàng)目,并對(duì)其進(jìn)行全面攔截。
當(dāng)然,也可以在每個(gè)接入點(diǎn)上掛接一臺(tái)IPS 設(shè)備,并且將其中的某臺(tái)IPS 設(shè)備設(shè)置為Master 并激活聯(lián)動(dòng)功能,這樣,當(dāng)其中的任何一臺(tái)IP 設(shè)備探測(cè)到了黑客的攻擊行為,都將會(huì)通過Master 設(shè)備,讓其登錄到所有的接口點(diǎn)上,寫入相應(yīng)的ACL 控制列表,并對(duì)黑客進(jìn)行全面攔截。
對(duì)于IPS 設(shè)備來(lái)說,其內(nèi)置的Signature 項(xiàng)目默認(rèn)沒有Block 行為,需針對(duì)特定的Signature 激活Block 操作,當(dāng)Block 攔截行為發(fā)生后,默認(rèn)攔截時(shí)間為30 分鐘。
例如,當(dāng)IPS 登錄到某個(gè)路由器上寫入ACL 列表后,當(dāng)超過該時(shí)間后,就會(huì)重新登錄并清除該ACL 列表。為了實(shí)現(xiàn)靈活的控制,可以登錄到IPS 設(shè)備上,在管理界面工具欄上點(diǎn)擊“Configuration”按鈕,在左側(cè)左側(cè)選擇“Event Action Rules”項(xiàng),并選擇具體的規(guī)則名稱,在右側(cè)的“General”面板中的“Block Action Durations”欄中可以對(duì)攔截時(shí)間進(jìn)行修改。
當(dāng)IPS 設(shè)備探測(cè)到非法的攻擊行為后,可以采取兩種方式作出響應(yīng)。其一是自動(dòng)進(jìn)行攔截,例如,可將某個(gè)Signature 項(xiàng)目行為是指為“Request block host”或“Request block connection”項(xiàng),這樣當(dāng)攻擊行為觸發(fā)了該Signature,該Signature 就會(huì)自動(dòng)進(jìn)行攔截。對(duì)于前者來(lái)說,IPS 可以從數(shù)據(jù)包中提取攻擊者的源IP,通過編寫ACL 列表攔截該IP 到所有目標(biāo)地址的流量。對(duì)于后者來(lái)說,則會(huì)提取攻擊包中的源和目的IP和端口信息,通過在路由器上編寫ACL 列表攔截該連接。
注意,對(duì)于路由器來(lái)說,其支持以上兩種攔截方式,對(duì)于ASA 防火墻來(lái)說,則只支持“Request block host”方式。當(dāng)然,也可手動(dòng)創(chuàng)建對(duì)應(yīng)的攻擊響應(yīng)控制項(xiàng)目來(lái)攔截該攻擊行為。
本例中使用ASA 防火墻對(duì)內(nèi)外網(wǎng)進(jìn)行隔離,內(nèi)網(wǎng)IP 范圍為192.168.1.0/24,外網(wǎng)IP 范圍為69.100.1.0/24,路由器R1 位于內(nèi)網(wǎng),與ASA 連接的端口IP 為192.168.1.1,ASA 內(nèi)部IP 為192.168.1.10。
路由器R2 位于外網(wǎng),與ASA 連接的端口IP 為69.100.1.1,ASA 外 部IP 為69.100.1.10。兩臺(tái)路由器默認(rèn)網(wǎng)關(guān)均指向ASA 防火墻,思科IPS 設(shè)備連接在外部網(wǎng)段,其管理口IP 為69.100.1.100,管理主機(jī)IP為69.100.1.200。此處IPS設(shè)備工作在雜合模式,通過在核心交換機(jī)上使用SPAN 技術(shù)將外網(wǎng)VALN 流量復(fù)制一份,發(fā)送到IPS 設(shè)備Sensor 口。
接下來(lái)就以實(shí)際的例子,來(lái)說明具體的配置方法。
當(dāng)R2 試 圖Telnet 到R1上,如果其輸入的內(nèi)容包括“virus”字樣,IPS 設(shè)備就以SSH 方式登錄到到ASA 防火墻上對(duì)其進(jìn)行攔截。
先在ASA 設(shè)備上執(zhí)行“access-list out permit tcp host 69.100.1.1 host 192.168.1.1 eq 23”命令,以允許執(zhí)行上述Telnet 操作。
在ASA 上執(zhí)行:
在“Do you really want to replace them?”欄 中輸入“yes”項(xiàng),創(chuàng)建密鑰信息。執(zhí)行“username user1 password mima”命令,創(chuàng)建用戶名和密碼。執(zhí)行“enable password hello@”命令,激活A(yù)SA 的特權(quán)密碼。執(zhí)行“ssh 0 0 outside”命令,激活SSH 登錄功能。執(zhí)行“aaa authentication ssh console LOCAL”命令,激活本地3A 認(rèn)證功能。
圖1 創(chuàng)建所需的Signature
登錄到IPS 設(shè)備上,在管理界面工具欄上點(diǎn)擊“Configuration”按鈕,在左側(cè)選擇“All Signatures”項(xiàng),在右側(cè)顯示所有存在 的Signatures,點(diǎn) 擊“Signature Wizard”按鈕,在向?qū)Ы缑妫ㄈ鐖D1 所示)的“Select Engine”列表中選擇“String TCP”項(xiàng),在下一步窗口中輸入該 Signatures 的 ID(例如“60000”)、名稱(例如“Block01”),點(diǎn)擊“下一步”按鈕,在“Event Action”列表中選擇“Produce Alert”和“Request Block Host”項(xiàng)。在“Regex String”欄中輸入匹配的內(nèi)容(例如“virus”),在“Service Ports”欄中輸入“23”,之后創(chuàng)建該Signatures。
在IPS 管理界面左下部選擇“Sensor Management”項(xiàng),在左側(cè)選擇“SSH”-“Known Host RSA Keys”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,在打開窗口中輸入ASA 的外部接口IP,點(diǎn)擊“Retrieve Host Key”按鈕,得到所需的Host Key 公鑰。
所謂Host Key,指的是當(dāng)客戶端初次登錄目標(biāo)設(shè)備時(shí),目標(biāo)設(shè)備會(huì)將該Host Key 公鑰信息發(fā)送給客戶,客戶將其進(jìn)行哈希處理后,將得到的內(nèi)容通過合適的方法,和目標(biāo)設(shè)備上的公鑰的哈希值進(jìn)行比對(duì),如果兩者一致,那么客戶端就將該公鑰保存在本地。
當(dāng)客戶端再次訪問目標(biāo)設(shè)備時(shí),目標(biāo)設(shè)備會(huì)將公鑰再次發(fā)送給客戶,客戶通過存儲(chǔ)在本地的公鑰與其進(jìn)行比對(duì),如果相符則完成對(duì)該設(shè)備的認(rèn)證。
客戶端將對(duì)應(yīng)的賬戶名和密碼提交給目標(biāo)設(shè)備,讓該設(shè)備對(duì)客戶端進(jìn)行認(rèn)證。當(dāng)雙向認(rèn)證全部通過,雙方才可以正常的進(jìn)行通訊。在左側(cè)選擇“Blocking”→“Blocking Properties”項(xiàng),在右側(cè)確保選擇“Enable blocking”項(xiàng),激活攔截功能。選擇“Blocking”→“Device Login Profiles”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,在打開窗口(如圖2 所示)中輸入該P(yáng)rofile 的名稱(例如“Profile1”),設(shè)置用戶名(即上述“user1”),密碼以及Enable 密碼,點(diǎn)擊“OK”按鈕保存配置。
圖2 創(chuàng)建設(shè)備登錄項(xiàng)目
在左側(cè)選擇“Blocking Devices”項(xiàng),點(diǎn)擊右側(cè)的“Add”按鈕,輸入ASA 的外部接口地址,如果涉及到地址轉(zhuǎn)換的話,就需要在“Sensor’s NAT Address”欄中輸入IPS 設(shè)備可能轉(zhuǎn)換的地址,這樣當(dāng)IPS 登錄到目標(biāo)設(shè)備后,在編寫ACL 列表時(shí)可以放行該地址到ANY地址的流量,可以避免出錯(cuò)的情況。
選擇上述Profile 項(xiàng)目,在“Device Type”列表中選擇“PIX/ASA”項(xiàng)。在“Communication”列表中選擇具體的登錄方式,這里選擇“SSH2”項(xiàng)。設(shè)置完成后,在R2 上執(zhí)行“ssh -l user1 69.100.1.10”命令,進(jìn)行登錄測(cè)試。在ASA 上執(zhí)行“show ssh sessions”命令,可以看到IPS 設(shè)備已經(jīng)連接上來(lái)了。在R2 上執(zhí)行“telnet 192.168.1.1”命令,來(lái)登錄內(nèi)網(wǎng)中的R1,當(dāng)前登錄完成后,如果輸入“virus”字樣,連接就會(huì)被IPS 攔截。在IPS管理界面工具欄上“Configuration”按鈕,在左側(cè)選擇“Time-Based Actions”→“Host Blocks”項(xiàng),在右側(cè)顯示到攔截信息。
在ASA 上執(zhí)行“show shun”命令,也可以看到攔截信息。當(dāng)經(jīng)過設(shè)定攔截的時(shí)間后,IPS 就會(huì)重新登錄到ASA 上,將該攔截的Shun 條目清除。當(dāng)然,也可以在上述窗口中點(diǎn)擊“Delete”按鈕,直接將其清除。
上述操作可以實(shí)現(xiàn)自動(dòng)的Block 操作,也可以進(jìn)行手動(dòng)攔截。方法是在上述“Host Blocks”窗口中點(diǎn)擊“Add”按鈕,在打開窗口中的“Source”欄中輸入輸入R2的IP,點(diǎn)擊“Apply”按鈕保存,這樣就可以實(shí)現(xiàn)相同的攔截效果。
以上操作可以實(shí)現(xiàn)讓IPS 登錄到ASA 上寫入Shun條目,來(lái)實(shí)現(xiàn)攔截的操作。而接下來(lái)實(shí)現(xiàn)的是,讓IPS設(shè)備Telnet 到內(nèi)網(wǎng)中的R1上,在其相關(guān)的連接端口上寫入ACL 列表,來(lái)實(shí)現(xiàn)攔截效果。
為了能讓IPS 同時(shí)登錄到ASA 和路由器設(shè)備,需要先將上述在IPS 和ASA 上的配置信息清除。
可在ASA 上執(zhí)行“acccess-list out permit tcp host 69.100.1.100 host 192.168.1.1 eq 23”命令,允許IPS 設(shè)備Telnet登錄到R1 上。
在IPS 上打開配置界面,在左下角點(diǎn)擊“Sensor Setup”項(xiàng),在左側(cè)選擇“Network”項(xiàng),在右側(cè)的“Default Route”欄中輸入ASA 的外部接口,保證其網(wǎng)關(guān)指向ASA 的外部接口。
在R1 上執(zhí)行命令:
enable password tqpass
激活Telnet 登錄功能,并設(shè)置登錄密碼和特權(quán)密碼。在IPS 管理界面中依次選 擇“Blocking →Device Login Profiles”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,在打開窗口中輸入該P(yáng)rofile 的名稱(例如“Profile2”),設(shè)置上述登錄密碼以及Enable 密碼。
在左側(cè)選擇“Blocking Devices”項(xiàng),點(diǎn)擊右側(cè)的“Add”按鈕,在打開窗口中的輸入R1 的IP,在“Device Login Profile”列表中選擇“Profile2”,在“Device Type”列表中選擇“Cisco Router”項(xiàng),在“Response Capablities”欄中選擇“Block”項(xiàng),在“Communication”列表中選擇“Telnet”項(xiàng)。
在左側(cè)選擇“Router Blocking Deice Interfaces”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,在打開窗口中的“Blocking Interface”欄中輸入R1 的合適接口(例如“e0/0”等),在“Direction”列表中選擇“In”項(xiàng),表示在入接口寫ACL 列表。
在R1 上執(zhí)行“show user”命令,可以看到IPS 設(shè)備已經(jīng)登錄上來(lái)了。
為了能夠得到更好的控制效果,在IPS 設(shè)備上打開上述“All Signatures”項(xiàng),在右側(cè)列表的“Filter:”列表中選擇“Type”項(xiàng),之后在右側(cè)選擇“Custom”項(xiàng),找到上述自定義“Block01”規(guī)則,然后在其右鍵菜單上點(diǎn)擊“Edit Actions”項(xiàng),并在編輯窗口中的“Other Actions”欄中只選擇“Request Block Connection”項(xiàng)。
之后在R2 上執(zhí)行“telnet 192.168.1.1”命令,來(lái)登錄R1 設(shè)備。如果輸入了包含“virus”的內(nèi)容的話,IPS 就會(huì)在R1 的對(duì)應(yīng)接口上寫入ACL 列表,對(duì)其連接進(jìn)行攔截。
最后,在R1 上執(zhí)行“show access-lists”命令,就會(huì)顯示和攔截操作匹配的ACL 項(xiàng)目。
對(duì)于網(wǎng)絡(luò)安全來(lái)說,泛洪攻擊是較為常見的一種攻擊方式。而利用多設(shè)備協(xié)同機(jī)制,則可以有效防御這種攻擊方式。
例如在本例中,當(dāng)R1 試圖對(duì)R2 進(jìn)行泛洪攻擊,IPS設(shè)備就可以在R2 的特定接口上寫入控制規(guī)則,來(lái)輕松化解這種威脅。
在IPS 設(shè)備上打開上述“All Signatures”項(xiàng),在右側(cè)列表搜索到ID 為2152 的Signature。在其屬性編輯窗口中的“Event Action”列表中選擇“Product Alert”和“Request Rate Limit”項(xiàng),對(duì)泛洪攻擊進(jìn)行報(bào)警和限速。
依次選擇“Event Action Settings”→“External Rate Limit Type”→“External Rate Limit Percentage”項(xiàng),在限速欄中設(shè)置具體的百分比,例如這里設(shè)置為1,這樣在目標(biāo)接口上的泛洪流量會(huì)被強(qiáng)制降低到帶寬的1%。
注意,在默認(rèn)情況下,每秒鐘發(fā)送的ICMP 包數(shù)量超過60 個(gè),即被認(rèn)定為泛洪攻擊。選擇“Status”欄下的“Enabled”項(xiàng),將其狀態(tài)設(shè)置為“yes”,將“Retired”的狀態(tài)設(shè)置為“no”,來(lái)激活該Signature。
在R2 上執(zhí)行:
在R2 上激活Telnet 功能并且設(shè)置登錄名和密碼,然后在IPS 管理界面中依次選擇“Blocking”→“Device Login Profiles”項(xiàng),之后在右側(cè)點(diǎn)擊“Add”按鈕,在打開窗口中輸入該P(yáng)rofile的名稱(例如“Profile3”),并設(shè)置上述登錄賬戶名和密碼。
在左側(cè)選擇“Blocking Devices”項(xiàng),點(diǎn)擊右側(cè)的“Add”按鈕,然后在打開窗口中輸入R2 的IP,在“Device Login Profile”列表中選擇“Profile3”,在“Device Type”列表中選擇“Cisco Router”項(xiàng),在“Response Capablities”欄中選擇“Rate Limit”項(xiàng),在“Communication”列表中選擇“Telnet”項(xiàng)。
在左側(cè)選擇“Router Blocking Deice Interfaces”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,在打開窗口中的“Blocking Interface”欄中輸入R2 的合適接口(例如“f1”等),在“Direction”列表中選擇“In”項(xiàng),表示在入接口寫ACL 列表。
這樣,當(dāng)R1 向R2 發(fā)送大量的ICMP 數(shù)據(jù)包進(jìn)行泛洪攻擊時(shí),IPS 就會(huì)在R2 的特定端口上寫入ACL 列表,來(lái)對(duì)其進(jìn)行嚴(yán)格的限速。
最后,在R2 上執(zhí)行“sh run”命令,可查看IPS 寫入的控制規(guī)則信息。而執(zhí)行“show policy-map interface fa1”命令,則顯示根據(jù)限速指令丟棄的泛洪數(shù)據(jù)包信息。