文/方昕
利用Wireshark+URPF協(xié)同作戰(zhàn)抓住服務(wù)器群中的“內(nèi)鬼”
文/方昕
隨著網(wǎng)絡(luò)應(yīng)用服務(wù)的爆發(fā)式增長,黑客技術(shù)網(wǎng)絡(luò)攻擊也開始大行其道,由網(wǎng)絡(luò)攻擊引起的安全事件也時有發(fā)生,所以其硬件支撐平臺——服務(wù)器群的網(wǎng)絡(luò)安全也越發(fā)凸顯其重要性。
常見的網(wǎng)絡(luò)攻擊的分類
常見的網(wǎng)絡(luò)攻擊可分為拒絕服務(wù)型攻擊、掃描窺探攻擊和畸形報文攻擊三大類。
1. 拒絕服務(wù)型攻擊
(1) DoS(Deny of Service)攻擊是使用大量的數(shù)據(jù)包攻擊系統(tǒng),使系統(tǒng)無法接受正常用戶的請求,或者主機掛起不能提供正常的工作。DoS攻擊有SYN Flood、Fraggle等。拒絕服務(wù)攻擊和其他類型的攻擊的不同之處在于:攻擊者并不是去尋找進入內(nèi)部網(wǎng)絡(luò)的入口,而是阻止合法用戶訪問資源或路由器。
(2) DDoS(Distributed Denial of Service)攻擊是一種DoS攻擊。這種攻擊是使用攻擊者控制的幾十臺或幾百臺計算機攻擊一臺主機,使系統(tǒng)無法接受正常用戶的請求,或者掛起不能正常的工作。
2. 掃描窺探攻擊
掃描窺探攻擊是利用ping掃射(包括ICMP和TCP)來標識網(wǎng)絡(luò)上運行的系統(tǒng),從而準確地指出潛在的目標:利用TCP和UDP端口掃描,就能檢測出操作系統(tǒng)和監(jiān)聽者的潛在服務(wù)。攻擊者通過掃描窺探就能大致了解目標系統(tǒng)提供的服務(wù)種類和潛在的安全漏洞,為進一步侵入系統(tǒng)做好準備。
3. 畸形報文攻擊
畸形報文攻擊是通過向目標系統(tǒng)發(fā)送有缺陷的IP報文,使得目標系統(tǒng)在處理這樣的IP包時出現(xiàn)崩潰,給目標系統(tǒng)帶來損失。畸形報文攻擊有Ping of Death、Teardrop等。
拒絕服務(wù)攻擊舉例
1. TCP泛洪
攻擊的原理是向目標設(shè)備發(fā)送大量偽裝連接的請求包,這些請求包的發(fā)起地址設(shè)置為目標不可到達的地址,這樣對被攻擊對象的第二次握手沒有主機響應(yīng),造成被攻擊對象主機內(nèi)部存在大量的半開連接,以至于新的正常連接不能進入,從而造成服務(wù)停頓甚至死機。
2. SMURF攻擊
SMURF攻擊是一種源地址欺騙攻擊,攻擊者假冒被攻擊對象的IP地址向設(shè)備發(fā)送大量的廣播ICMP echo請求報文。因為每個包的目標IP地址都是網(wǎng)絡(luò)的廣播地址,所以設(shè)備會把ICMP echo請求報文以廣播形式發(fā)給網(wǎng)絡(luò)上的所有主機。如果有大量主機,那么這種廣播就會產(chǎn)生大量的ICMP echo請求及響應(yīng)流量,而且在發(fā)送ICMP echo請求數(shù)據(jù)包時,使用了假冒的源IP地址,所以攻擊造成的ICMP流量不僅會阻塞網(wǎng)絡(luò),而且會產(chǎn)生攻擊流量。
如圖1,Attacker仿冒Switch B的地址對Switch C進行攻擊,如果Switch C上的網(wǎng)絡(luò)管理員檢測到攻擊,將會配置防火墻規(guī)則,將所有來自Switch B的報文過濾,導致無辜的Switch B無法訪問Switch C。此時,被攻擊系統(tǒng)的管理員反而成為黑客的“幫兇”,使一些合法用戶失去合法訪問的權(quán)限。
從這些例子可以看出,黑客利用源地址欺騙,一是可以隱匿身份,讓人難以發(fā)現(xiàn)攻擊的源頭,二是通過被攻擊目標,發(fā)起對其他合法用戶的攻擊,造成一箭雙雕的效果。而這些攻擊,僅僅依靠被攻擊系統(tǒng)加強防范是無法預(yù)防的,必須通過所有接入端設(shè)備,對用戶的源地址進行反查,并依據(jù)其合法性對報文進行過濾,這樣才能從源頭抑制攻擊,保護合法用戶享受服務(wù)的權(quán)利。
防火墻并發(fā)連接數(shù)
并發(fā)連接數(shù)是衡量防火墻性能的一個重要指標,但是想知道并發(fā)連接數(shù)的概念必須要先明白另一個概念——會話。在網(wǎng)絡(luò)應(yīng)用中,會話就是點對點的連接。并發(fā)連接數(shù)是指防火墻對其業(yè)務(wù)信息流的處理能力,是防火墻能夠同時處理的點對點連接的最大數(shù)目,它反映出防火墻設(shè)備對多個連接的訪問控制能力和連接狀態(tài)跟蹤能力,這個參數(shù)的大小直接影響到防火墻所能支持的最大信息點數(shù)。
在防火墻中有一張和路由表相似的表,叫并發(fā)連接表,它可在防火墻系統(tǒng)啟動后動態(tài)或靜態(tài)分配進程的內(nèi)存空間,其大小也就是防火墻所能支持的最大并發(fā)連接數(shù)。
圖1 SMURF攻擊案例
URPF技術(shù)
URPF(Unicast Reverse Path Forwarding,單播反向路徑轉(zhuǎn)發(fā))是一種單播逆向路由查找技術(shù),它的主要功能是用于防止基于源地址欺騙的網(wǎng)絡(luò)攻擊行為,例如基于源地址欺騙的DoS攻擊和DDoS攻擊。
一般情況下,路由器接收到包后,獲取包的目的地址,針對目的地址查找路由Pair(Dst-IP, NextHop),如果找到了就轉(zhuǎn)發(fā)包,否則丟棄該包。URPF通過獲取包的源地址和入接口,以源地址為目的地址,在轉(zhuǎn)發(fā)表中查找源地址路由對應(yīng)的出接口是否與入接口匹配,如果不匹配,認為源地址是偽裝的,丟棄該包。
URPF有三種方式:Strict URPF、Loose URPF和iACL URPF(Infrastructure ACL)。它們各自的適用環(huán)境:
1. 在接入路由器上實施時,對于通過單鏈路接入的情況,一般使用Strict URPF;
2. 在出口路由器配置URPF的安全策略時,一般采用Loose URPF;
3. 對于通過ECMP接入到網(wǎng)絡(luò),一般可采用iACL URPF和Loose URPF。
Strict、 Loose和Infrastructure ACL URPF的區(qū)別在于:
Loose:只要RIB中有該SrcAddr,不管是從哪個接口學到都可以。
Strict:不僅要查SrcAddr,而且還要看是否來自從該接口學到的源地址。
iACL:主要通過ACL來實現(xiàn)URPF的功能。
雖然通過訪問控制列表也能達到URPF的類似效果,但是相比訪問控制列表,URPF具有很多優(yōu)點,例如:耗費CPU資源少、可以適應(yīng)路由表的動態(tài)變化(因為CEF表會跟隨路由表的動態(tài)變化而更新),所以維護量更少,對路由器的性能影響較小。
但是路由器通過判斷出口流量的源地址,如果不屬于內(nèi)部子網(wǎng)的則給予阻斷。而攻擊者完全可以偽造其所在子網(wǎng)的IP地址進行DDoS攻擊,這樣就完全可以繞過URPF防護策略(攻擊者偽造的報文的源地址是可以通過路由表查到的)。
除此之外,如果希望URPF策略能夠真正地發(fā)揮作用,還需要在每個潛在攻擊源的前端路由器上配置URPF,但是要實現(xiàn)這種情況,現(xiàn)實中幾乎不可能做到。
Wireshark網(wǎng)絡(luò)封包分析軟件
網(wǎng)絡(luò)協(xié)議解析是通過程序分析網(wǎng)絡(luò)數(shù)據(jù)封包的協(xié)議頭及其負載,從而了解數(shù)據(jù)封包在產(chǎn)生和傳輸過程中的行為。
交換設(shè)備的端口鏡像
SPAN技術(shù)主要是用來監(jiān)控交換機上的數(shù)據(jù)流,大體分為兩種類型:本地SPAN和遠程SPAN。利用SPAN技術(shù),我們可以把交換機上某些想要被監(jiān)控端口的數(shù)據(jù)流鏡像到連接在監(jiān)控端口上的流量分析儀。所以它常被用來進行網(wǎng)絡(luò)流量的數(shù)據(jù)分析以及網(wǎng)絡(luò)故障分析。
SPAN數(shù)據(jù)流主要分為三類:
1. 輸入數(shù)據(jù)流(Ingress SPAN):指被源端口接收進來,其數(shù)據(jù)副本發(fā)送至監(jiān)控端口的數(shù)據(jù)流;
2. 輸出數(shù)據(jù)流(Egress SPAN):指從源端口發(fā)送出去,其數(shù)據(jù)副本發(fā)送至監(jiān)控端口的數(shù)據(jù)流;
3. 雙向數(shù)據(jù)流(Both SPAN):即為以上兩種的綜合。
由授課老師親自選擇典型病例,并確定一些問題,注意案例、問題等應(yīng)與教學目標一致[2] 。授課老師將典型病例制作成幻燈片、視頻等,在課堂上進行播放,并配合簡單介紹,播放結(jié)束后,提出相應(yīng)的問題,護士生則根據(jù)授課內(nèi)容、問題等進行思考、分析,護士生之間亦可進行討論,做好筆記,在下節(jié)課上課之前1天交給授課老師,在第二節(jié)課時選擇1名學生做現(xiàn)場匯報,并做總結(jié)和分析。
基于VLAN的SPAN是以一個或幾個VLAN作為監(jiān)控對象,其中,所有端口均為源端口,與基于端口的SPAN類似,基于VLAN的SPAN也分為輸入數(shù)據(jù)流、輸出數(shù)據(jù)流和雙向數(shù)據(jù)流監(jiān)控三種類型。
圖2 整體網(wǎng)絡(luò)架構(gòu)
案發(fā)再現(xiàn)
網(wǎng)絡(luò)架構(gòu)(如圖2所示)的核心三層交換設(shè)備向內(nèi)連接各樓宇的校園網(wǎng)二層設(shè)備,提供校園網(wǎng)服務(wù),向外有兩個出口:一是連接外網(wǎng)資源,提供校內(nèi)訪問外網(wǎng)的服務(wù),二是連接校園網(wǎng)的應(yīng)用服務(wù)器群,提供學校的網(wǎng)絡(luò)應(yīng)用服務(wù)。
在核心三層交換設(shè)備的兩個出口上各設(shè)置一道防火墻,以防范來自外網(wǎng)的攻擊以及對服務(wù)器群的保護。
校園網(wǎng)突然出現(xiàn)頻繁斷網(wǎng)的現(xiàn)象,既訪問不了校園網(wǎng)應(yīng)用服務(wù),也訪問不了外網(wǎng)資源,每次斷網(wǎng)維持在5~10分鐘,嚴重影響網(wǎng)絡(luò)使用。
現(xiàn)場分析
首先,在針對光纖模塊、光纖跳線以及設(shè)備業(yè)務(wù)板的檢測后,排除了硬件故障的可能性。
而后在進一步掃描網(wǎng)絡(luò)時,發(fā)現(xiàn)一個能夠明顯確定異常的情況。
當發(fā)生網(wǎng)絡(luò)中斷時,校園網(wǎng)內(nèi)網(wǎng)與核心三層設(shè)備(1.1.1.1)可以互通,路由可達,但是到外網(wǎng)防火墻(2.2.2.1)不能互通;同時應(yīng)用服務(wù)器群與服務(wù)器區(qū)匯聚交換機(3.3.3.3)可以互通,路由可達,但是到服務(wù)器區(qū)防火墻(2.2.2.2)不能互通。
現(xiàn)在所有的疑點都指向防火墻區(qū)域。
分析故障根源
進入防火墻,查看其運行狀態(tài):硬件利用率正常;各出口端口狀態(tài)正常,runts, input errors, CRCs或frame errors幾項沒有增加的現(xiàn)象,也就是說不存在雙工的匹配問題和電纜故障。
而后發(fā)現(xiàn)每當出現(xiàn)斷網(wǎng)情況時,服務(wù)器區(qū)防火墻的會話數(shù)也就是最大并發(fā)數(shù)會達到上限。當截取到服務(wù)器區(qū)防火墻在斷網(wǎng)時的會話情況,終于發(fā)現(xiàn)異常情況。
其中a.a.a.X是校園網(wǎng)邊界的出口IP段,異常的是本來邊界的出口IP段只是一個小子網(wǎng)IP段,只包含若干個IP,但是在會話里出現(xiàn)了很多不可能出現(xiàn)的雖為同一個網(wǎng)段但不在同一子網(wǎng)的IP地址,也就是說出現(xiàn)了偽源地址;b.b.b.b是會話里要訪問的外網(wǎng)某IP,所以從圖3可以看出來斷網(wǎng)時絕大部分的會話都是一個不存在的校內(nèi)IP在訪問校外的某個IP,這就使得很多正常的網(wǎng)絡(luò)數(shù)據(jù)包由于會話數(shù)達到上限而被丟棄,這樣校內(nèi)的網(wǎng)絡(luò)應(yīng)用服務(wù)就被中斷,同時由于服務(wù)器區(qū)防火墻和外網(wǎng)防火墻是同一個硬件防火墻下的兩個安全區(qū)域,由于大量的內(nèi)存被用于創(chuàng)建服務(wù)器區(qū)防火墻中的異常大量的會話,從而引起外網(wǎng)防火墻也無法處理正常的網(wǎng)絡(luò)會話,也就是說遭到DoS攻擊,這就是造成校園內(nèi)網(wǎng)外網(wǎng)同時中斷的根本原因。
Wireshark分析網(wǎng)絡(luò)封包
接下來就是找出發(fā)送這些非法報文的源頭,即潛藏在服務(wù)器群中的“內(nèi)鬼”。但是由于服務(wù)器群中服務(wù)器數(shù)量眾多,普通查找會費時費力,所以就需要借助Wireshark這款免費開源但又功能強大的網(wǎng)絡(luò)協(xié)議解析軟件,同時還需要交換設(shè)備通過端口鏡像技術(shù)把待查端口的流量鏡像到監(jiān)控端口,以供Wireshark分析。
圖3 異常會話情況
圖4 Wireshark抓取源端口網(wǎng)絡(luò)數(shù)據(jù)包
圖5 網(wǎng)卡選取列表
首先將服務(wù)器區(qū)匯聚交換設(shè)備進行端口鏡像設(shè)置,配置如下:
[Server Switch] mirroring-group 1 local
/*建立本地鏡像組*/
[Server Switch] mirroring-group 1 mirroring-port g 2/0/1 both
/*設(shè)置被監(jiān)控的源端口,并將該端口雙向數(shù)據(jù)流進行鏡像復(fù)制,如果能確定需監(jiān)控的是哪一方向的數(shù)據(jù)流,可設(shè)置單向數(shù)據(jù)流,減輕偵測壓力;如果是源端口接收的數(shù)據(jù)流,則設(shè)置inbound,如果是發(fā)送數(shù)據(jù),則設(shè)置為outbound*/[Server Switch] mirroring-group 1 monitor-port g 4/0/46/*設(shè)置監(jiān)控端口,源端口的鏡像數(shù)據(jù)流副本將會發(fā)送至此端口,這樣Wireshark就可以進行數(shù)據(jù)分析*/
設(shè)置好服務(wù)器區(qū)匯聚交換設(shè)備的端口鏡像,就可以將安裝Wireshark軟件的計算機用網(wǎng)線和設(shè)置好的監(jiān)控端口連接起來,開始抓取與分析數(shù)據(jù)(如圖4所示)。
打開網(wǎng)卡選擇列表(如圖5所示),從中選擇與監(jiān)控端口連接的網(wǎng)卡。
點擊對應(yīng)網(wǎng)卡前的“Start”按鈕,開始抓取源端口的網(wǎng)絡(luò)數(shù)據(jù)包。
結(jié)合圖3中的異常會話里的IP地址a.a.a.X,很容易就能確定發(fā)送異常會話的服務(wù)器的物理網(wǎng)卡地址。開啟URPF功能,抓捕“內(nèi)鬼”
由于斷網(wǎng)的情況還在繼續(xù),必須馬上將網(wǎng)絡(luò)環(huán)境恢復(fù)正常,而后處理問題服務(wù)器。
開啟服務(wù)器區(qū)匯聚交換設(shè)備的URPF功能,將DoS攻擊消滅于端口:
[Server Switch] ip urpf strict
/*開啟交換設(shè)備的URPF功能*/
設(shè)置完畢后,斷網(wǎng)情況消失了,接下來就是清算潛藏在服務(wù)器群中的“內(nèi)鬼”。
本文是根據(jù)校園網(wǎng)的實際情況,針對一起由DoS攻擊造成的網(wǎng)絡(luò)事件,介紹了網(wǎng)絡(luò)管理人員在網(wǎng)絡(luò)故障的情況下利用交換設(shè)備的既有功能端口鏡像做輔助,調(diào)用網(wǎng)絡(luò)協(xié)議分析軟件Wireshark進行解包分析,同時與URPF技術(shù)相結(jié)合,既快速抑制網(wǎng)絡(luò)動蕩,又準確定位故障根源,從而為高校的網(wǎng)絡(luò)攻擊事件提供一個安全有效的故障排除模式。
(作者單位為天津科技大學信息化建設(shè)與管理辦公室)