此文章討論了有關對網絡底層協議的攻擊和防止攻擊的方法,特別是關于路由和路由協議的漏洞,如Routing Information Protocol (RIP,路由信息協議), Border Gateway Protocol (邊緣網關協議), Open Shortest Path First (OSPF,開放最短路徑優先協議)等。
路由器在每個網絡中起到關鍵的作用,如果一路由器被破壞或者一路由被成功的欺騙,網絡的完整性將受到嚴重的破壞,如果使用路由的主機沒有使用加密通信那就更為嚴重,因為這樣的主機被控制的話,將存在著中間人(man-in-the-middle)攻擊,拒絕服務攻擊,數據丟失,網絡整體性破壞,和信息被嗅探等攻擊。
路由是一個巨大又復雜的話題,所以本人只是在此提到一部分知識,而且水平的關系,請大家多多指教。
關于一些很普遍的路由器安全問題
多種路由器存在各種眾所周知的安全問題,一些網絡底層設備提供商如Cisco, Livingston, Bay等的普通安全問題。
上面地址所收集的漏洞大部分無關于路由協議級的攻擊,而是一些由于錯誤配置,IP信息包錯誤處理,SNMP存在默認的communit name string,薄弱密碼或者加密算法不夠強壯而造成。上面的一些攻擊一般一個標準的NIDS都能夠探測出來。這些類型的攻擊對網絡底層有一定的削弱性并可以組合一些高極別的協議進行攻擊。
正確的配置管理可以處理不少普通的漏洞,如你必須處理一些標準的規程:不使用SNMP(或者選擇強壯的密碼),保持補丁程序是最新的,正確處理訪問控制列表,出入過濾,防火墻,加密管理通道和密碼,路由過濾和使用MD5認證。當然在采用這些規程之前你必須知道這些安全規則的相關的含義和所影響到的服務。
近來有關的一些低部構造防衛檢測系統的開發
近來的在網絡防護開發項目中比較不錯的是一個IDS叫JiNao. JiNao是由DARPA發起的,并現在成為一個合作研究項目由MCNC和北卡羅萊納州大學共同開發。JiNao在FreeBSD和Linux上運行的是在線模式(使用divert sockets),在Solaris運行在離線模式,并在3個網絡上測試-MCNC,NCSU和由PC(操作系統做路由)和商業路由器組合的AF/Rome 實驗室。測試結果顯示了可以成功的防止多種類型的網絡底層攻擊并能很好的高精度的探測這些攻擊。
當前,JiNao看起來在研究關于Open Shortest Path First (OSPF,開放最短路徑優先)協議,并且最終JiNao會延伸到各種協議。JiNao指出,防衛攻擊和入侵探測將會集成在網絡管理內容中,所以JINao現在正趨向于網絡防火墻,入侵探測系統和網絡管理系統組合一體。
還有一個工具可以很好的分析高級的協議,如Agilent Advisor的網絡分析工具,它能很好的支持多種路由協議并能定制過濾器來探測各種不正常的行為。
一些工作于路由協議的工具
Linux divert sockets描述到:/"Divert socket能夠在末端主機也能在路由器上進行IP信息包捕獲和注入,信息包的捕獲和插入發生在IP層上,捕獲的信息包在用戶空間轉向到套接口中,因此這些信息包將不會達到它們的最終目的地,除非用戶空間套接口重插入它們。這樣在信息包捕獲和重新插入之間可以在系統系統內核之外允許各種不同的操作(如路由和防火墻)./".簡單的說divert socket就是由user space(用戶空間)的程序來處理kernel(內核)中的IP packet(IP信息包),這個divert socket最早應用與FreeBSD系統中,如NAT就是應用了divert socket。這樣使開發程序很容易,因為在用戶層,而處理IP packet(IP信息包)的效率也比較高,因為是直接處理kernel(內核)中的IP packet(IP信息包)。
Divert socket就象上面說最早實現于FreeBSD中,現在已經移植到Linux中并作為JiNao IDS項目的一部分采用。
另一個叫Nemesis Packet Injection suite,是一個比較強大的網絡和安全工具,由Obecian開發.最新的nemesis-1.1發行在2000年6月24號。Nemesis是一個/"命令行式的UNIX網絡信息包插入套件/",并是一個很好的測試防火墻,入侵探測系統,路由器和其他網絡環境的工具。它可以被攻擊者使用和授權滲透探測者在主機和網絡級的網絡安全環境檢測。其中這個站點還有一個演化的Nemesis叫Intravenous,發行于11/30/00. Intravenous看起來承載了Nemesis所有基本功能,其中不同的是增加了人工智能引擎的內容。
IRPAS,Internetwork Routing Protocol Attack Suite,由FX所寫,可以在下面的站點找到http://www.phenoelit.de/irpas/.IRPAS包含了各種可工作于Cisco路由設備的協議層的命令行工具,包括如下這些命令: cdp--可發送Cisco router Discovery Protocol (CDP CISCO路由發現協議)消息;
igrp是能插入Interior Gateway Routing Protocol (IGRP 內部網關路由協議)消息;irdp用來發送ICMP Router Discovery Protocol (ICMP路由發現協議)消息;
irdresponder--可使用精心制作的信息包來響應IRDP請求;
ass--Autonomous System Scanner(自主系統掃描器,現在可下載的版本只支持IGRP),這里解釋下Autonomous system,即一般所說的AS,簡單的說是一組內部路由器,使用共同協議交流內部網絡的信息,更直接的說法就是這些路由器自己自主,交流信息。與之相反的是我們經常知道的外部路由器如一般的電信節點處的路由器。典型的AS使用單一的路由協議在它的邊界產生和傳播路由信息。ass就類似于TCP端口掃描器一樣,只不過其是針對自主系統的。使用ass掃描的話,如果自主系統應答,將返回路由進程中的所有路由信息。IRPAS 的網站也包含一條關于Generic Routing Encapsulation(GRE 一般路由封裝) 漏洞的文檔,其中這個Generic Routing Encapsulation (GRE 一般路由封裝)漏洞允許外部攻擊者繞過NAT和破壞一通過VPN的內部RFC1918網絡。其中在其他章節還包含了更多的信息和通過irpas的可能攻擊策略.
irpas的開發者FX,發送了由ass新版本2.14(還沒有發布)掃描的AS樣本和igrp怎樣利用ass的信息(AS #10和其他數據)來插入一欺騙的路由給222.222.222.0/24。雖然IGRP協議目前不是很多使用,但這個例子卻是相當的不錯。下面是FX測試的結果:
test# ./ass -mA -i eth0 -D 192.168.1.10 -b15 -v(這里的-i是接口,-D是目的地址,-b15指的是自主系統0-15之間
ASS [Autonomous System Scanner] $Revision: 2.14 $
(c) 2k FX
Phenoelit (http://www.phenoelit.de)
No protocols selected; scanning all
Running scan with:
interface eth0
Autonomous systems 0 to 15
delay is 1
in ACTIVE mode
Building target list ...
192.168.1.10 is alive
Scanning ...
Scanning IGRP on 192.168.1.10
Scanning IRDP on 192.168.1.10
Scanning RIPv1 on 192.168.1.10
shutdown ...
OK,得到以下的結果
>>>>>>>>>>>> Results >>>>>>>>>>>
192.168.1.10
IGRP
#AS 00010 10.0.0.0 (50000,1111111,1476,255,1,0)
IRDP
192.168.1.10 (1800,0)
192.168.9.99 (1800,0)
RIPv1
10.0.0.0 (1)
test# ./igrp -i eth0 -f routes.txt -a 10 -S 192.168.1.254 -D 192.168.1.10
當然這里的routes.txt需要你自己指定:
routes.txt:
# Format
# destination:delay:bandwith:mtu:reliability:load:hopcount
222.222.222.0:500:1:1500:255:1:0
Cisco#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
U - per-user static route
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.1.2.0/30 is directly connected, Tunnel0
S 10.0.0.0/8 is directly connected, Tunnel0
C 192.168.9.0/24 is directly connected, Ethernet0
C 192.168.1.0/24 is directly connected, Ethernet0
I 222.222.222.0/24 [100/1600] via 192.168.1.254, 00:00:05, Ethernet0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
看到沒有,到達222.222.222.0/24經由192.168.1.254
Rprobe & srip--這個工具附帶在一篇關于RIP欺騙非常不錯的指南文檔中(由humble寫),你可以在下面的地址找到這篇文章http://www.technotronic.com/horizon/ripar.txt.Rprobe工具會從一路由daemon(守護程序)中請求一RIP路由表的拷貝,使用Tcpdump或者其他任何嗅探工具可以用來捕獲這些結果。接下來,srip可以用來從任意源IP發送一偽造的RIPv1或者RIPv2消息,Srip可以插入新的路由和使當前的路由無效,當然攻擊者/滲透測試者需要知道命令行中使用什么參數。關于這些工具的介紹可參看Hacking Exposed 第二版Network Device節找到示例。
當然還有其他工作與相關路由協議的工具可被攻擊者或者滲透測試者使用,如:Routed,gated, zebra, mrt, 和 gasp ,大家可以參看其他的文檔。
下面是有關各種協議的淺釋和相關漏洞及可以采用的防衛措施
Routing Information Protocol (RIP,路由信息協議)
Routing Information Protocol (RIP,路由信息協議)是基于距離矢量的路由協議,其所有路由基于(hop)跳數來衡量。由Autonomous System (AS,自主系統) 來全面的管理整個由主機,路由器和其他網絡設備組成的系統。RIP是作為一種內部網關協議(interior gateway protocol),即在自治系統內部執行路由功能。相反的大家都知道外部網關路由協議(exterior gateway protocol),如邊緣網關協議(BGP),在不同的自治系統間進行路由。RIP協議對大型網絡來說不是一個好的選擇,因為它只支持15跳,RIPv1而且只能通信自身相關的路由信息,反之RIPv2能對其他路由器進行通信。RIP協議能和其他路由協議共同工作,依照Cisco,RIP協議經常用來與OSPF協議相關聯,雖然很多文蕩指出OSPF需代替RIP. 應該知道經由RIP更新提交的路由可以通過其他路由協議重新分配,這樣如果一攻擊者能通過RIP來欺騙路由到網絡,然后再通過其他協議如OSPF或者不用驗證的BGP協議來重新分配路由,這樣攻擊的范圍將可能擴大。
RIP協議相關的漏洞和防范措施
一個測試者或者攻擊者可以通過探測520 UDP端口來判斷是否使用RIP,你可以使用熟悉的工具如nmap來進行測試,如下所示,這個端口打開了并沒有使用任何訪問控制聯合任意類型的過濾:
[root@test]# nmap -sU -p 520 -v router.ip.address.2
interesting ports on (router.ip.address..2):
Port State Service
520/udp open route
掃描UDP520端口在網站http://www.dshield.org/的/"Top 10 Target Ports/"上被排列在第7位,你表明有許多人在掃描RIP,這當然和一些路由工具工具的不斷增加有一定的關聯。
RIPv1 天生就有不安全因素,因為它沒有使用認證機制并使用不可靠的UDP協議進行傳輸。RIPv2的分組格式中包含了一個選項可以設置16個字符的明文密碼字符串(表示可很容的被嗅探到)或者MD5簽字。雖然RIP信息包可以很容易的偽造,但在RIPv2中你使用了MD5簽字將會使欺騙的操作難度大大提高。一個類似可以操作的工具就是nemesis項目中的RIP命令--nemesis-rip,但由于這個工具有很多的命令行選項和需要必備的知識,所以nemesis-rip 比較難被script kiddies使用。想使用nemesis-rip成功進行一次有效的RIP欺騙或者類似的工具需要很多和一定程度的相關知識。不過/"Hacking Exposed/"第二版第10章:Network Devices提到的有些工具組合可以比較容易的進行RIP欺騙攻擊攻擊,這些工具是使用rprobe來獲得遠程網絡RIP路由表,使用標準的tcpdump或者其他嗅探工具來查看路由表,srip來偽造RIP信息包(v1或者v2),再用fragrouter重定向路由來通過我們控制的主機,并使用類似dsniff的工具來最后收集一些通信中的明文密碼。
盡管大家知道欺騙比較容易,但仍然存在一些大的網絡提供商仍舊依靠RIP來實現一些路由功能,雖然不知道他們是否采用來安全的措施。RIP顯然目前還是在使用,呵呵但希望很少人使用RIPv1,并且使用了采用MD5安全機制的RIPv2,或者已經移植到了使用MD5認證的OSPF來提高安全性。
Border Gateway Protocol (BGP,邊界網關協議)
BGP是Exterior Gateway Protocol (EGP,外部網關協議),此協議執行的時候自主系統之間的路由,現在BGP4是最近的流行標準,BGP使用幾種消息類型,其中這文章相關的最重要的消息是UPDATE消息類型,這個消息包含了路由表的更新信息,全球INTERNET大部分依靠BGP,因此一些安全問題必須很嚴肅的對待,L0pht幾年就宣稱過:他們能在很短的時間內利用路由協議的安全如BGP來搞垮整個Internet.
BGP協議相關的漏洞和防范措施
BGP使用TCP 179端口來進行通信,因此nmap必須探測TCP 179端口來判斷BGP的存在。
[root@test]# nmap -sS -p 179 -v router.ip.address.2
Interesting ports on (router.ip.address..2):
Port State Service
179/tcp open bgp
一個開放的BGP端口,更容易被攻擊
[root@test]# nmap -sS -n -p 179 router.ip.address.6
Interesting ports on (router.ip.address.6):
Port S
新聞熱點
疑難解答