有關(guān)TCP/IP協(xié)議族存在的脆弱性剖析

字號(hào):

基于TCP/IP協(xié)議的服務(wù)很多,人們比較熟悉的有WWW服務(wù)、FTP服務(wù)、電子郵件服務(wù),不太熟悉的有TFTP服務(wù)、NFS服務(wù)、Finger服務(wù)等等。這些服務(wù)都存在不同程度上的安全缺陷,當(dāng)用戶(hù)構(gòu)建安全可信網(wǎng)絡(luò)時(shí),就需要考慮,應(yīng)該提供哪些服務(wù),應(yīng)該禁止哪些服務(wù)。同時(shí),在使用這些服務(wù)的時(shí)候,你可能沒(méi)有想到,TCP/IP從一開(kāi)始設(shè)計(jì)的時(shí)候就沒(méi)有考慮到安全設(shè)計(jì)。
    TCP/IP存在脆弱性
    IP層的主要曲線是缺乏有效的安全認(rèn)證和保密機(jī)制,其中最主要的因素就是IP地址問(wèn)題。TCP/IP協(xié)議用IP地址來(lái)作為網(wǎng)絡(luò)節(jié)點(diǎn)的惟一標(biāo)識(shí),許多TCP/IP服務(wù),包括Berkeley中的R命令、NFS、X Window等都是基于IP地址對(duì)用戶(hù)進(jìn)行認(rèn)證和授權(quán)。當(dāng)前TCP/IP網(wǎng)絡(luò)的安全機(jī)制主要是基于IP地址的濾(Packet Filtering)和認(rèn)證(Authentication)技術(shù),它的有效性體現(xiàn)在可以根據(jù)IP包中的源IP地址判斷數(shù)據(jù)的真實(shí)性和安全性。然而IP地址存在許多問(wèn)題,協(xié)議的缺點(diǎn)就是缺乏對(duì)IP地址的保護(hù),缺乏對(duì)IP包中源IP地址真實(shí)性的認(rèn)證機(jī)制與保密措施。這也就是引起整個(gè)TCP/IP協(xié)議不安全的根本所在。
    由于UDP是基于IP協(xié)議之上的,TCP分段和UDP協(xié)議數(shù)據(jù)包是封裝在IP包中在網(wǎng)絡(luò)上傳輸?shù)?,因此同樣面臨IP層所遇到的安全威脅?,F(xiàn)在人們一直在想辦法解決,卻仍然無(wú)法避免的就是根據(jù)TCP連接建立時(shí)“三次握手”機(jī)制的攻擊(如圖1)。這些攻擊總結(jié)起來(lái)包括:
    源地址欺騙(Source Address Spoofing)或IP欺騙(IP Spoofing);
    源路由選擇欺騙(Source Routing Spoofing);
    路由選擇信息協(xié)議攻擊(RIP Attacks);
    鑒別攻擊(Authentication Attacks);
    TCP序列號(hào)欺騙(TCP Sequence number spoofing);
    TCP/IP協(xié)議數(shù)據(jù)流采用明文傳輸;
    TCP序列號(hào)轟炸攻擊(TCP SYN Flooding Attack),簡(jiǎn)稱(chēng)SYN攻擊;
    易欺騙性(Ease of spoofing)。
    
    圖1
    比如網(wǎng)管員都熟悉的因特網(wǎng)控制信息協(xié)議(ICMP),它是TCP/IP協(xié)議組的一個(gè)基本網(wǎng)絡(luò)管理工具,在幫助網(wǎng)絡(luò)管理人員排除網(wǎng)絡(luò)故障中立下了汗馬功勞,同時(shí)ICMP攻擊卻十分猖狂。最明顯的是ICMP重定向報(bào)文,它被網(wǎng)關(guān)用來(lái)為主機(jī)提供好的路由,卻不能被用來(lái)給主機(jī)的路由表進(jìn)行主動(dòng)的變化。如果入侵者已經(jīng)攻破一個(gè)對(duì)目標(biāo)主機(jī)來(lái)說(shuō)可利用的次要網(wǎng)關(guān),而不是基本網(wǎng)關(guān),入侵者就可以通過(guò)有危險(xiǎn)的次要網(wǎng)關(guān)給信任主機(jī)設(shè)置一個(gè)錯(cuò)誤的路由。多數(shù)的服務(wù)主機(jī)在TCP重定向報(bào)文上不實(shí)行有效檢查,這種攻擊的影響和基于RIP的攻擊相似。
    另外,ICMP也可以被用來(lái)進(jìn)行拒絕服務(wù)攻擊(如圖2)。個(gè)別的報(bào)文如目標(biāo)不可達(dá)或者超時(shí),就可以用來(lái)重置目前的連接,如果入侵者知道TCP 連接的本地及遠(yuǎn)端的端口號(hào),將生成該連接的ICMP 報(bào)文。有時(shí)這樣的信息可以通過(guò)NETSTAT服務(wù)來(lái)實(shí)現(xiàn)。一個(gè)更普遍的拒絕服務(wù)攻擊是發(fā)送偽造的子網(wǎng)掩碼回應(yīng)報(bào)文。無(wú)論主機(jī)是否查詢(xún),它們都將接受該報(bào)文,一個(gè)錯(cuò)誤的報(bào)文就可能阻塞目標(biāo)主機(jī)的所有連接。
    
    圖2