趙曉典 鄭向娣 張建麗
(1.石家莊鐵道大學四方學院,河北 石家莊 050000;2.石家莊工商職業學院,河北 石家莊 050000)
網絡通信的安全隱患主要由網絡通信協議的不安全性、計算機病毒的入侵、黑客的攻擊、操作系統和應用軟件的安全漏洞、防火墻自身帶來的安全漏洞等造成。TCP/IP協議是使接入Internet的異種網絡、不同設備之間能夠進行正常的數據通信,而預先制定的一整套共同遵守的格式和規定。TCP/IP協議在網絡互聯中發揮了核心的作用,但由于TCP/IP協議遵循開放性原則使得它本身存在許多安全隱患[1,2],讓黑客們有機可乘,利用其缺陷來對網絡通信進行攻擊。這些攻擊包括IP地址欺騙、ARP欺騙、ICMP攻擊、TCPSYNFlood、DNS攻擊等。本文深入分析了TCP/IP協議中存在的安全隱患,并針對這些漏洞給出了相應的防范和改進措施。
隨著計算機技術和通信技術的不斷發展,計算機網絡日益成為工業、農業和國防等方面的重要信息交換手段,它的應用非常廣泛,已經滲透到社會生活的各個領域。但是,無論是局域網還是廣域網,其中都存在著自然和人為等諸多因素的潛在威脅[3]。人為攻擊可分為主動攻擊和被動攻擊。常見的被動攻擊手段有:中斷、篡改、偽造、冒充、抵賴;常見的被動攻擊手段有:偷竊、分析。
網絡安全業務是指在網絡安全通信中主要采用的安全措施。針對目前存在和潛在的各類網絡安全威脅,主要有以下幾種通用的安全業務:保密業務、數據完整性業務、認證業務、不可抵賴性業務和訪問控制業務[4]。針對網絡安全問題,幾種常見的網絡安全技術有信息加密、信息確認和網絡控制技術。
TCP/IP協議通常劃分為四個層次,從上到下依次為應用層、傳輸層和網絡接口層,其體系結構及各層包含的主要協議如表1所示。

表1 TCP/IP協議族的層次結構
在TCP/IP協議族中存在安全問題的主要協議有ARP協議、IP協議、ICMP協議、TCP協議、DNS協議。下面逐個分析其存在的安全缺陷及防范措施。
基于IP協議的安全問題主要是IP地址欺騙。IP地址欺騙是指行動產生IP包的假冒源IP地址,以冒充其他系統或保護發送人的身分。IP是無連接的,不可靠的協議。它的32bit的頭中,包含了自己要去的目的主機的IP地址,幾乎所有的TCP/IP協議的傳輸都是被包含在IP包中發送的,它的所有的可靠性都是由它的上層協議來保證的。如果不可達,ICMP的不可達報文就會發送回主機。它的無狀態特性,說明它不保存上一個包的任何狀態。因此,我們就可以通過修改IP協議棧的方法,把所需要的IP地址填寫到我們所發送出去的IP包中,來達到冒充其他主機的目的。
防止IP欺騙的方法有:
(1)拋棄基于地址的信任策略
阻止這類攻擊的一種非常容易的方法是放棄以地址為基礎的驗證。不允許r*類遠程調用命令的使用。
(2)進行包過濾
如果你的網絡是通過路由器接入的,那么可以利用路由器來進行包過濾。確信只有你的內部網絡可以使用信任關系。你的路由器能過濾掉所有來自于外部而希望與內部建立連接的請求。
(3)使用加密方法
阻止IP欺騙的另一種有效的方法是在通信時要求加密傳輸和驗證。
(4)關閉所有的RPC命令
刪除所有的 /etc/hosts.equiv、$HOME/.rhosts文件,修改/etc/inetd.conf文件,使得RPC機制無法運作,還可以殺掉portmapper等。
當計算機接收到ARP應答數據包的時候,就會對本地的ARP緩存進行更新,將應答中的IP和MAC地址存儲在ARP緩存中。比如在局域網內,一個中了ARP病毒的電腦,把自己偽裝成路由器,他就可以隨意的把改裝過的網絡數據送給所有電腦,在這個數據里可以插入病毒的程序。
ARP欺騙的種類:ARP欺騙是黑客常用的攻擊手段之一。ARP欺騙分為二種,一種是對路由器ARP表的欺騙;另一種是對內網PC的網關欺騙。第一種ARP欺騙的原理是截獲網關數據。它通知路由器一系列錯誤的內網MAC地址,并按照一定的頻率不斷進行,使真實的地址信息無法通過更新保存在路由器中,結果路由器的所有數據只能發送給錯誤的MAC地址,造成正常PC無法收到信息。第二種ARP欺騙的原理是偽造網關。它的原理是建立假網關,讓被它欺騙的PC向假網關發數據,而不是通過正常的路由器途徑上網。
預防ARP欺騙的手段有:
(1)ARP防火墻
防火墻技術是一種允許接入外部網絡,但同時又能夠識別和抵抗非授權訪問的網絡安全技術[5]。下載專業的ARP防火墻,如果有條件,購買具有ARP欺騙防范能力的網絡設備。
(2)創建靜態的ARP列表
在所有終端中,創建靜態的ARP列表。
(3)劃分VLAN
劃分VLAN,縮小廣域網的規模,極端情況是隔離每個終端,這種方法的弊端是影響同一子網下的各終端通信。
ICMP的漏洞可以在不需要嗅探網絡數據流的情況下直接被利用,而且這些基于ICMP的攻擊不需要攻擊者猜測正確的TCP序列號,使得摧毀網絡流量變得更加簡單。可以對目標主機經行性能衰竭攻擊:攻擊者可以發送大量的ICMP包給目標主機使得它不能夠對合法的服務請求做出響應。
對于ICMP攻擊,可以采取兩種方法進行防范:
第一種方法是在路由器上對ICMP數據包進行帶寬限制,將ICMP占用的帶寬控制在一定的范圍內,這樣即使有ICMP攻擊,它所占用的帶寬也是非常有限的,對整個網絡的影響非常少;
第二種方法就是在主機上設置ICMP數據包的處理規則,最好是設定拒絕所有的ICMP數據包。設置ICMP數據包處理規則的方法也有兩種,一種是在操作系統上設置包過濾,另一種是在主機上安裝防火墻。
TCP協議受到的主要威脅是同步洪流TCPSYN Flood。SYN Flood是當前最流行的DoS(拒絕服務攻擊)與DDoS(分布式拒絕服務攻擊)的方式之一,這是一種利用TCP協議缺陷,發送大量偽造的TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負荷或內存不足)的攻擊方式。TCPSYN Flood攻擊的機制:客戶端通過發送在TCP報頭中SYN標志置位的數據分段到服務端來請求建立連接。通常情況下,服務端會按照IP報頭中的來源地址來返回SYN/ACK置位的數據包給客戶端,客戶端再返回ACK到服務端來完成一個完整的連接。在攻擊發生時,客戶端的來源IP地址是經過偽造的(spoofed),現行的IP路由機制僅檢查目的IP地址并進行轉發,該IP包到達目的主機后返回路徑無法通過路由達到的,于是目的主機無法通過TCP三次握手建立連接。在此期間因為TCP緩存隊列已經填滿,而拒絕新的連接請求。目的主機一直嘗試直至超時(大約75秒)。這就是該攻擊類型的基本機制。SYN Flood攻擊過程示意圖見圖1。

圖1 TCPSYN Flood攻擊過程
如何才能做到有效的防范呢?
(1)TCPWrapper
使用TCPWrapper可能在某些有限的場合下有用,比如服務端只處理有限來源IP的TCP連接請求,其它未指定來源的連接請求一概拒絕。這在一個需要面向公眾提供服務的場合下是不適合的。而且攻擊者可以通過IP偽裝(IP Spoof)來直接攻擊受TCPWrapper保護的TCP服務,更甚者可以攻擊者可以偽裝成服務器本身的地址進行攻擊。
(2)增加TCPBacklog容量
增加TCPBacklog容量是一種治標不治本的做法。它一方面要占用更多的系統內存,另一方面延長了TCP處理緩存隊列的時間。攻擊者只要不停地的進行SYN Flood一樣可以達到拒絕服務的目的。
(3)ISP接入
所有的ISP在邊界處理進入的主干網絡的IP數據包時檢測其來源地址是否合法,如果非指定來源IP地址范圍,可以認為是IPSpoofing行為并將之丟棄。
(4)縮短SYN超時時間
由于SYN Flood攻擊的效果取決于服務器上保持的SYN半連接數,這個值等于SYN攻擊的頻度乘以SYN超時時間,所以通過縮短從接收到SYN報文到確定這個報文無效并丟棄改連接的時間,例如設置為20秒以下 (過低的SYN超時時間設置可能會影響客戶的正常訪問),可以成倍的降低服務器的負荷。
(5)設置SYN Cookie
給每一個請求連接的IP地址分配一個Cookie,如果短時間內連續受到某個IP的重復SYN報文,就認定是受到了攻擊,以后從這個IP地址來的包會被一概丟棄。
當客戶向一臺服務器請求服務時,服務器方一般會根據客戶的IP反向解析出該IP對應的域名。這種反向域名解析就是一個查DNS的過程。如果客戶的IP對應有域名,那么DNS查詢會返回其域名。服務器端得到這一機器名后會將其記錄下來并傳遞給應用程序。你必須有一臺Internet上的授權的DNS服務器,并且你能控制這臺服務器,至少要能修改這臺服務器的DNS記錄。DNS可能受到的服務攻擊有拒絕服務、緩沖區中毒、區域信息泄露、域名劫持。
DNS的安全防范措施有:
(1)包過濾防護
限制使用DNS服務器的網絡數據包的類型,實施包過濾的依據主要是端口、IP、流量。
(2)網絡拓撲限制
為了減少單點故障的威脅,從網絡拓撲結構角度應避免將DNS服務器置于無旁路的環境下,不應將所有的DNS服務器置于同一子網、同一租用鏈路、同一路由器、同一物理位置。
由于Internet的安全性問題日益突出,TCP/IP協議族也在不斷地改善和發展之中。
(1)IP協議的改進
IPv6的實用化研究開發工作正在進行。兩種為IPv6設計的安全機制加進了Ipv4。一為AH機制,提供認證和完整性服務,但不提供保密服務。二為ESP機制,提供完整性服務、認證服務及保密服務。
(2)路由技術的改進
為保護RIP和OSPF報文安全,采用著名的MD5認證算法對發送路由報文的結點進行認證。路由器內含認證TCP會話過程的機制能減少多個自治域之間通過BGP所傳路由信息遭受攻擊的危險性。由于IPv6提供AH和ESP機制,與IPv6一起使用的內部網關協議也可獲得安全保護。
(3)DNS安全擴充
DNS安全擴充提供了DNS信息認證機制,并允許用戶的公開密鑰存儲于DNS中,由請求方對其進行認證。DNS安全擴充允許用戶簽名的公開密鑰與地址記錄、姓名記錄、郵箱一起進行認證分配,從而使動態密鑰管理較易實現。
(4)密鑰管理協議
密鑰管理方面,IETF正在研究密鑰交換協議Oakley并推出了ISAKMP(Internet Security Association And Key Management Protocol)協議。使用該協議產生的密鑰與以往產生的任何密鑰都無關,因此攻擊者無法通過破獲幾個主密鑰來導出會話密鑰。ITEF還允許就密鑰生存期、敏感級等問題進行協商。
本文首先分析了網絡通信中存在的安全問題,然后深入分析了TCP/IP協議中存在的安全隱患,并針對這些漏洞給出了相應的防范措施,最后展望了TCP/IP協議族的改進和發展。但是網絡通信的安全不僅僅取決于通信協議的完善,同時應關注操作系統、防火墻的安全,并提高自身網絡安全意識,才能有效防范病毒入侵和黑客攻擊。
[1]B.C.SSoh,S.Young.Network system and world wideweb security[J].Computer Communication,1997 20(2):1431-1436.
[2]Phil Janson,Harry Rudin.Computer Network Security[J].Computer Network.1999,31(1):785-786.
[3]李海泉,李健.計算機系統安全技術[M].北京:人民郵電出版社,2001.
[4]Wiiliamstallings.密碼編碼學與網絡安全:原理與實踐[M].楊明,青光輝譯.北京:電子工業出版社,2001.
[5]隋紅建,吳漩.計算機網絡與通信[M].北京:北京大學出版社,2001.