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