BGP路由協(xié)議的安全問題及防范措施
BGP路由協(xié)議是路由協(xié)議中非常常見的一種,下面我們主要分析了BGP路由協(xié)議的安全問題及防范措施。路由器在每個網(wǎng)絡(luò)中起到關(guān)鍵的作用,如果一路由器被破壞或者一路由被成功的欺騙,網(wǎng)絡(luò)的完整性將受到嚴(yán)重的破壞,如果使用路由的主機沒有使用加密通信那就更為嚴(yán)重,因為這樣的主機被控制的話,將存在著中間人(man-in-the-middle)攻擊,拒絕服務(wù)攻擊,數(shù)據(jù)丟失,網(wǎng)絡(luò)整體性破壞,和信息被嗅探等攻擊。
關(guān)于一些很普遍的路由器安全問題
上面地址所收集的漏洞大部分無關(guān)于BGP路由協(xié)議級的攻擊,而是一些由于錯誤配置,IP信息包錯誤處理,SNMP存在默認(rèn)的communit name string,薄弱密碼或者加密算法不夠強壯而造成。上面的一些攻擊一般一個標(biāo)準(zhǔn)的NIDS都能夠探測出來。這些類型的攻擊對網(wǎng)絡(luò)底層有一定的削弱性并可以組合一些高極別的協(xié)議進行攻擊。
正確的配置管理可以處理不少普通的漏洞,如你必須處理一些標(biāo)準(zhǔn)的規(guī)程:不使用SNMP(或者選擇強壯的密碼),保持補丁程序是最新的,正確處理訪問控制列表,出入過濾,防火墻,加密管理通道和密碼,路由過濾和使用MD5認(rèn)證。當(dāng)然在采用這些規(guī)程之前你必須知道這些安全規(guī)則的相關(guān)的含義和所影響到的服務(wù)。下面是有關(guān)各種協(xié)議的淺釋和相關(guān)漏洞及可以采用的防衛(wèi)措施
Routing Information Protocol (RIP,路由信息協(xié)議)是基于距離矢量的路由協(xié)議,其所有路由基于(hop)跳數(shù)來衡量。由Autonomous System (AS,自主系統(tǒng)) 來全面的管理整個由主機,路由器和其他網(wǎng)絡(luò)設(shè)備組成的系統(tǒng)。RIP是作為一種內(nèi)部網(wǎng)關(guān)協(xié)議(interior gateway protocol),即在自治系統(tǒng)內(nèi)部執(zhí)行路由功能。相反的大家都知道外部網(wǎng)關(guān)BGP路由協(xié)議(exterior gateway protocol),如邊緣網(wǎng)關(guān)協(xié)議(BGP),在不同的自治系統(tǒng)間進行路由。RIP協(xié)議對大型網(wǎng)絡(luò)來說不是一個好的選擇,因為它只支持15跳,RIPv1而且只能通信自身相關(guān)的路由信息,反之RIPv2能對其他路由器進行通信。RIP協(xié)議能和其他路由協(xié)議共同工作,依照Cisco,RIP協(xié)議經(jīng)常用來與OSPF協(xié)議相關(guān)聯(lián),雖然很多文蕩指出OSPF需代替RIP. 應(yīng)該知道經(jīng)由RIP更新提交的路由可以通過其他路由協(xié)議重新分配,這樣如果一攻擊者能通過RIP來欺騙路由到網(wǎng)絡(luò),然后再通過其他協(xié)議如OSPF或者不用驗證的BGP路由協(xié)議來重新分配路由,這樣攻擊的范圍將可能擴大。
RIP協(xié)議相關(guān)的漏洞和防范措施
一個測試者或者攻擊者可以通過探測520 UDP端口來判斷是否使用RIP,你可以使用熟悉的工具如nmap來進行測試,如下所示,這個端口打開了并沒有使用任何訪問控制聯(lián)合任意類型的過濾:
[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
RIPv1 天生就有不安全因素,因為它沒有使用認(rèn)證機制并使用不可靠的UDP協(xié)議進行傳輸。RIPv2的分組格式中包含了一個選項可以設(shè)置16個字符的明文密碼字符串(表示可很容的被嗅探到)或者MD5簽字。雖然RIP信息包可以很容易的偽造,但在RIPv2中你使用了MD5簽字將會使欺騙的操作難度大大提高。一個類似可以操作的工具就是nemesis項目中的RIP命令--nemesis-rip,但由于這個工具有很多的命令行選項和需要必備的知識,所以nemesis-rip 比較難被script kiddies使用。想使用nemesis-rip成功進行一次有效的RIP欺騙或者類似的工具需要很多和一定程度的相關(guān)知識。不過/\"Hacking Exposed/\"第二版第10章:Network Devices提到的有些工具組合可以比較容易的進行RIP欺騙攻擊攻擊,這些工具是使用rprobe來獲得遠(yuǎn)程網(wǎng)絡(luò)RIP路由表,使用標(biāo)準(zhǔn)的tcpdump或者其他嗅探工具來查看路由表,srip來偽造RIP信息包(v1或者v2),再用fragrouter重定向路由來通過我們控制的主機,并使用類似dsniff的工具來最后收集一些通信中的明文密碼。
盡管大家知道欺騙比較容易,但仍然存在一些大的網(wǎng)絡(luò)提供商仍舊依靠RIP來實現(xiàn)一些路由功能,雖然不知道他們是否采用來安全的措施。RIP顯然目前還是在使用,呵呵但希望很少人使用RIPv1,并且使用了采用MD5安全機制的RIPv2,或者已經(jīng)移植到了使用MD5認(rèn)證的OSPF來提高安全性。
Border Gateway Protocol (BGP,邊界網(wǎng)關(guān)協(xié)議)
BGP是Exterior Gateway Protocol (EGP,外部網(wǎng)關(guān)協(xié)議),此BGP路由協(xié)議執(zhí)行的時候自主系統(tǒng)之間的路由,現(xiàn)在BGP4是最近的流行標(biāo)準(zhǔn),BGP使用幾種消息類型,其中這文章相關(guān)的最重要的消息是UPDATE消息類型,這個消息包含了路由表的更新信息,全球INTERNET大部分依靠BGP,因此一些安全問題必須很嚴(yán)肅的對待,L0pht幾年就宣稱過:他們能在很短的時間內(nèi)利用BGP路由協(xié)議的安全如BGP來搞垮整個Internet.
BGP協(xié)議相關(guān)的漏洞和防范措施
[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 State Service
179/tcp filtered bgp
BGP端口被過濾了,對攻擊有一定的抵抗力
由于BGP使用了TCP的傳輸方式,它就會使BGP引起不少關(guān)于TCP方面的問題,如很普遍的SYN Flood攻擊,序列號預(yù)測,一般拒絕服務(wù)攻擊等。BGP沒有使用它們自身的序列而依靠TCP的序列號來代替,因此,如果設(shè)備采用了可預(yù)測序列號方案的話,就存在這種類型的攻擊,幸好的是,運行在Internet上大部分重要的路由器使用了Cisco設(shè)備,而其是沒有使用可預(yù)測序列號方案。部分BGP的實現(xiàn)默認(rèn)情況下沒有使用任何的認(rèn)證機制,而有些可能存在和RIP同樣的問題就是使用了明文密碼。這樣假如認(rèn)證方案不夠強壯的話,攻擊者發(fā)送UPDATE信息來修改路由表的遠(yuǎn)程攻擊的機會就會增加許多,導(dǎo)致進一步的破壞擴大。
BGP也可以傳播偽造的路由信息,如果攻擊者能夠從一協(xié)議如RIP中修改或者插入路由信息并由BGP重新分配。這個缺陷是存在與信任模塊中而不是其BGP路由協(xié)議本身。另外BGP的community 配置也會有某些類型的攻擊,原因是community name在某些情況下是作為信任token(標(biāo)志)可以被獲得。至于通過通過BGP的下層協(xié)議(TCP)對其攻擊看來是比較困難的,因為會話在點對點之間是通過一條單獨的物理線路進行通信的,但在一定環(huán)境如在兩AS系統(tǒng)通過交換機來連接則可能存在TCP插入的攻擊,在這樣的網(wǎng)絡(luò)中,攻擊者在同一VLAN或者他有能力嗅探switch的通信(如使用dsniff工具通過ARP欺騙來獲得),監(jiān)視TCP序列號,插入修改的信息包或者使用工具如hunt的進行hijack連接而獲得成功,但這種類型的攻擊一般只能在實驗室環(huán)境中演示比較容易,而在實際的網(wǎng)絡(luò)中因為太過復(fù)雜而很難成功。