關於TCP/IP協議漏洞的安全措施

埃文科技發表於2022-07-15

摘要:上篇我們介紹了TCP/IP協議中常見的漏洞型別包括ARP病毒攻擊、基於RIP的攻擊、DNS欺騙、TCP連線欺騙。面對TCP/IP協議中存在的漏洞我們要採取什麼樣的安全措施去預防和解決呢?

首先從架構角度來說:IPSec與TLS最常用的兩種安全架構,可以利IPSec、TLS安全架構在不同的協議層來保護資料傳輸的安全性。

一、IPSec

IPSec 是一組用來在網路層提高資料包傳輸安全的協議族統稱,它透過在原有的IP報文中加入一些特定的檢測頭來達到安全確認的目的。

IPSec有兩種工作模式,分別是傳輸模式和隧道模式,前者適用於端到端(End to End),即兩臺主機之間的 IPSec 通訊,後者適用於站點到站點(Site to Site),即兩個閘道器之間的 IPSec 通訊,IPSec 由 AH 協議、ESP協議和一些複雜的安全驗證演算法組成,這些基本的演算法為IPSec中的協議服務。我們主要介紹AH和ESP兩個協議:

(1)AH協議提供的安全服務

AH 的工作模式是在每一個資料包中的 IP 報頭後新增一個 AH 頭,這個 AH 頭有自己獨特的欄位用於提供安全服務,AH 可以保證資料的完整性不被篡改,但不能防止資料被盜竊。AH 使用的 IP 協議號是 51,當IP報文的協議號部分為51 時,代表IP頭後面是一個 AH 報頭。

關於TCP/IP協議漏洞的安全措施

AH提供的安全服務主要有資料來源認證,加入一個雙方協商好的密文,來對對方身份以及資料的有效性進行驗證;第二個是資料完整性校驗,因為AH協議需要防止資料被非法篡改,因此該協議會透過引入一個單向Hash函式來建立一個雜湊值或者摘要資訊,將該雜湊值與文字結合向接收方傳輸,同時接受方用同樣的單向Hash函式對接受內容進行解密,驗證結果是否一致,以此來保護資料的完整性。

第三個是防報文重放攻擊,所謂重放攻擊就是攻擊者雖然不知道加密過的資料包裡面到底是什麼,但是可以透過擷取這個資料包再發給接受方從而使接收方無法判別哪個才是正確的傳送者,而AH協議會校驗序列號欄位中的數值是否重複過,若重複,則直接丟棄。

關於TCP/IP協議漏洞的安全措施

(2)ESP 協議提供的安全服務

ESP與 AH不同的是 ESP會先把資料段加密,然後再存放到IP報文中,從而達到防止竊聽的目的。ESP 除了在 IP 報頭的後面會加上一個 ESP報頭以外,還會在報文最後加上一個 ESP 報尾,該報尾用來提供加密服務。這樣攻擊者即使獲取了該資料包,在沒解開 ESP 加密的情況下也無法獲知其中的資訊。

關於TCP/IP協議漏洞的安全措施

ESP 提供的安全服務和 AH 有所重合,ESP使用序列號欄位來防止重放攻擊,ESP 通常使用HMAC-MD5 或 HMAC-SHA-1演算法對加密後的載荷進行 Hash 計算來完成認證和保證資料完整性的功能。但因為ESP會把資料加密之後再傳輸,因此會提供保密性服務,在傳輸機密性資料的時候 ESP 有很大優勢。

此外,在 NAT 模式下,由於AH會對IP地址也做Hash運算,因此在地址轉換之後 AH 的 Hash 值會被破壞,而ESP的IP協議號是50,在進行NAT轉換時沒有相應的 TCP或UDP埠號的概念。為了使 ESP 能夠滿足 NAT環境下的地址轉換,這時就需要引進一個新的方法,即在ESP報文和 IP 報頭之間加入一個新的UDP報頭。

二、TLS協議

TLS 協議工作在傳輸層,由於TCP和UDP都有可被利用的漏洞,因此它是為了解決傳輸層鏈路安全問題而出現的。

TLS 分為兩種協議,分別是 TLS 記錄協議和 TLS 握手協議。TLS 記錄協議根據 TLS 握手協議協商的引數,對上層所交付的資料進行各種操作,從而使資料透過密文的形式傳輸,而接收方則透過解密的方式來接受資料。

透過這種方式就可以大大加強資料傳輸的安全性。另一種協議是 TLS 握手協議,他讓客戶端和服務端進行協商,確定一組用於資料傳輸加密的金鑰串,相互認證對方,這樣當攻擊者沒有透過金鑰認證時,就無法與另一端進行資料通訊。

首先,客戶端向服務端傳送 ClientHello 訊息,其中含有一個客戶端生成的隨機數,我們假設為R1和可供選擇的版本號清單等資訊。

第二步,根據客戶端發來的Client Hello,服務端回覆 Server Hello 訊息,其中會根據客戶端發來的清單資料確定兩端通訊將會使用的版本號,密碼套件,壓縮方式等等協議需要的重要資訊,併產生一個服務端隨機數 R2,當伺服器認證時,伺服器會發給客戶端自己的證書。

第三步,當要求客戶端認證時,客戶端會先傳送自己的證書,同時根據之前客戶端和伺服器端產生的隨機數公用一種演算法計算出金鑰。最後相互傳送了 Finished 訊息後就代表握手結束,可以開始傳輸資料。

關於TCP/IP協議漏洞的安全措施

同時也可以根據每種漏洞不同的特點進行有針對性的防禦,但是一些防禦方法並不全面。

一、ARP病毒攻擊的常見防禦方法

目前有很多針對ARP病毒攻擊的防禦方法,我們來看一下常見的防禦方法。

(1)提高系統安全性

定期更新作業系統補丁,及時升級防毒軟體病毒庫,並開啟防毒軟體的實時監控功能,防止系統被非法入侵或感染ARP病毒,但是這種防禦方法只能防止本機感染ARP病毒,並不能有效防禦ARP欺騙。

(2)部署ARP防火牆

ARP防火牆在一定程度上可以用來幫助緩解ARP攻擊,協助保護區域網內主機安全。ARP防火牆除了下文即將介紹的繫結MAC地址功能外,最主要的防禦方法就是主動防禦。

主動防禦是指ARP防火牆按照一定頻率強制對外傳送正確的ARP資料包,這ARP防火牆在一定程度上可以用來幫助緩解ARP攻擊,協助保護區域網內主機安全。ARP防火牆除了繫結MAC地址功能外,最主要的防禦方法就是主動防禦。

主動防禦是指ARP防火牆按照一定頻率強制對外傳送正確的ARP資料包,這顯然會對網路造成額外的負擔。如果傳送頻率過高時,會在區域網內造成ARP風暴。而且攻擊者只要提高攻擊速度,使其大於ARP防火牆的主動防禦速度,主動防禦就會失效。

關於TCP/IP協議漏洞的安全措施

(3)在交換機或主機端繫結MAC地址

在交換機端繫結每臺主機的IP/MAC對應關係,為每臺主機新增一條靜態ARP快取條目。當交換機收到來自主機的資料包時,將資料包的IP地址和MAC地址與ARP快取條目進行比對,如果相同則放行資料包,否則該資料包將被丟棄。同理,在主機端也可以繫結閘道器的IP/MAC對應關係,為閘道器新增一條靜態ARP快取條目。這種防禦方法雖然可以抵禦一定程度的ARP攻擊,但會犧牲 Internet的移動性和自動配置性,增加了網路管理員的負擔,不適用於主機變動頰繁的區域網。

二、基於RIP的攻擊的常見預防方法

(1) 將路由器的某些介面配置為被動介面。配置為被動接後,該介面停止向該介面所在的網路廣播路由更新訊息。但是,允許繼續在該介面接收路由更新廣播訊息。

(2) 配置ACL訪問控制列表。只允許相應源IP地址的路由更新報文進入。

(3) 在RIPV2中使用驗證機制。RIPV1天生就有不安全因素。因為它沒有使用認證機制並使用不可靠的UDP協議進行傳輸。

RIPv2的分組格式中包含了一個選項可以設定16個字元的明文密碼字串(表示可很容的被嗅探到)或者MD5簽字。雖然RIP資訊包可以很容易的偽造,但在RIPv2中你使用了MD5簽字將會使欺騙的操作難度大大提高。

(4)採用路由器之間資料鏈路層PPP的驗證。採用PPP的PAP驗證或Chap驗證實現資料鏈路層的安全線路連線。

三、DNS欺騙常見預防方法

(1)進行IP地址和MAC地址的繫結

預防ARP欺騙攻擊。因為DNS攻擊的欺騙行為要以ARP欺騙作為開端,所以如果能有效防範或避免ARP欺騙,也就使得DNS欺騙攻擊無從下手。例如可以透過將GatewayRouter的IpAddress和MACAddress靜態繫結在一起,就可以防範ARP攻擊欺騙。

DNS資訊繫結。DNS欺騙攻擊是利用變更或者偽裝DNS Server的IP Address,因此也可以使用MACAddress和IP Address靜態繫結來防禦DNS欺騙的發生。

由於每個Nctwork Card 的MAC Address具有唯一性質,所以可以把DNS Server的 MAC Address與其IPAddress繫結,然後此繫結資訊儲存在客戶機網路卡的Eprom中。當客戶機每次向DNS Server 發出查詢串請後,就會檢測DNS Server響應的應答資料包中的MACAddress是否與Eprom儲存器的 MAC Address相同,要是不同,則很有可能該網路中的 DNS Server受到DNS欺騙攻擊。

這種方法有一定的不足,因為如果區域網內部的客戶主機也儲存了DNS Server 的 MAC Address,仍然可以用 MACAddress進行偽裝欺騙攻擊 。

(2)使用Digital Password 進行辨別

在不同子網的檔案資料傳輸中,為預防竊取或篡改資訊事件的發生,可以使用任務數字簽名(TSIG)技術即在主從Donain Name Server中使用相同的Password和數學模型演算法,在資料通訊過程中進行辨別和確認。

因為有Password進行校驗的機制,從而使主從 Server的身份地位極難偽裝,加強了Domain Name資訊傳遞的安全性。

在不同子網的檔案資料傳輸中,為預防竊取或篡改資訊事件的發生,可以使用任務數字簽名(TSIG)技術即在主從Donain Name Server中使用相同的Password和數學模型演算法,在資料通訊過程中進行辨別和確認。因為有Password進行校驗的機制,從而使主從 Server的身份地位極難偽裝,加強了Domain Name資訊傳遞的安全性。

安全性和可靠性更好的 Domain Name Service是使用域名系統的安全協議(Domain Name System Security,DNSSEC)),用Digital Signature的方式對搜尋中的資訊源進行分辨,對 DA他的完整性實施校驗。

因為在設立 Domain時就會產生Password,同時要求上層的Domain Name也必須進行相關的Domain Password Signature,顯然這種方法很複雜,所以InterNIC域名管理截至目前尚未使用。然而就技術層次上講,DNSSEC應該是現今最完善的Domain Name設立和解析的辦法,對防範Domain Name欺騙攻擊等安全事件是非常有效的。

(3)直接使用IP地址訪問

對個別資訊保安等級要求十分嚴格的WEB站點儘量不要使用DNS進行解析。由於DNS欺騙攻擊中不少是針對竊取客戶的私密資料面來的,而多數使用者訪問的站點並不涉及這些隱私資訊,因此當訪問具有嚴格保密資訊的站點時,可以直接使用IP地址而無需透過DNS解析,這樣所有的DNS欺騙攻擊可能造成的危害就可以避免了。

除此,應該做好 DNS Server的安全配置專案和升級DNS軟體,合理限定 DNS Server進行響應的IP地址區間,關閉DNS Server的遞迴查詢專案等。

(4)對DNS資料包進行監測

在DNS欺騙攻擊中, Client會接收到至少兩個 DNS的資料響應包,一個是真實的資料包,另一個是攻擊資料包。欺騙攻擊資料包為了搶在真實應答包之前回復給Client,它的資訊資料結構與真實的資料包相比十分簡單,只有應答域,而不包括授權域和附加域。

因此,可以透過監測DNS響應包,遵循相應的原則和模型演算法對這兩種響應包進行分辨,從而避免虛假資料包的攻擊。

四、TCP連線欺騙的常見防禦方法

(1)利用網路拓撲結構

IP協議本身支援包過濾,當一個資料包從廣域網進入區域網時,受害者可以查詢源IP地址欄位是否屬於區域網內部地址段。如果是,則丟棄這個資料包。

這種防禦方法的前提是受害者儀信任區域網內主機。如果受害者不僅信任區域網內主機,還透過其他協議授權。域網的主機對其進行訪問,那麼就無法利用該方法防禦來自廣域網的攻擊者。

(2)限制僅利用IP地址進行認證的協議

比如Unix系統的Rlogin協議,它僅僅利用IP地址進行身份認證。只要主機的IP地址包含在信任列表中,Rlogin協議就允許遠端登入到另一主機,而不需輸入密碼。這樣,攻擊者可以利用Rlogin協議輕鬆地登入到受害者主機。我們可以限制這些僅利用IP地址進行認證的協議,或對IP地址進行一定配置或驗證,透過風險畫像、IP代理檢測驗明這些IP地址是否存在風險,提高這些協議的安全性。

(3)使用加密演算法或認證演算法

對協議進行加密或認證可以組織攻擊者篡改或偽造TCP連線中的資料。而就目前的加密技術或認證技術而言,雙方需要共享一個金鑰或者協商出一對射私金鑰對。這就涉及到通訊雙方必須採用同種加密或認證手段,但是,加密演算法或認證演算法往往涉及到複雜的數學計算,很消耗系統資源,會使通訊效率明顯下降。


相關文章