摘要:TCP/IP由網路層的IP協議和傳輸層的TCP協議組成。常見的漏洞型別包括ARP病毒攻擊、基於RIP的攻擊、DNS欺騙、TCP 連線欺騙。
TCP/IP是TransmissionControlProtocol/InternetProtocol的簡寫 ,中譯名為傳輸控制協議/因特網互聯協議,又名網路通訊協議,是 lnternet 最基本的協議、Interact國際網際網路絡的基礎。
TCP/IP由網路層的IP協議和傳輸層的TCP協議組成。TCP/IP定義了電子裝置如何連入因特網,以及資料如何在它們之間傳輸的標準。
TCP/IP協議採用了4層的層級結構,分別是網路接入層、網路層、傳輸層和應用層。每一層都呼叫它的下一層所提供的網路來完成自己的需求。
簡單來講,TCP負責發現傳輸的問題,一有問題就發出訊號,要求重新傳輸,直到所有資料安全正確地傳輸到目的地。
而IP協議規定需要給因特網的每一臺電腦規定一個地址,這個地址就是IP地址。IP地址透過軟體實現網路實體地址“統一”的方法。這種方法使用統一的地址格式,在統一管理下將地址分配給主機。
由於TCP/IP協議是一個開放性的協議導致其在TCP/IP 協議棧中,絕大多數協議沒有提供必要的安全機制,存在一定的漏洞安全問題。
TCP/IP 協議常見漏洞型別
ARP 病毒攻擊
ARP病毒攻擊的工作原理是透過偽造通訊雙方一端的IP地址或 MAC 地址,讓另一端誤以為該主機為正確主機從而達到欺騙目的。
當網路中源主機A想和目的主機 B 進行通訊,A會先廣播ARP請求報文,期望B能收到並返回給A自己的 MAC 地址。但由於報文采用的是廣播形式,因此攻擊者 C在收到A的請求報文時會將自己的IP地址偽造成B的IP地址,這在 ARP請求報文中可以很容易獲得,接著攻擊者C向傳送帶有 B 的IP地址,C的 MAC地址的返回訊息,讓A誤以為C就是合法的目的主機 B,從而攻擊者C就達到了盜取資訊的目的。
基於RIP的攻擊
RIP 是一種基於距離(跳數)的路由選擇協議,它的作用是計算資料包在網路中路由的最佳路徑,因為RIP基於跳數且規定了最大跳數不可以超過15,因此它只適用於中小型的網路。基於RIP的攻擊實際上是攻擊網路中路由器的路由表。因為 RIP 是基於 UDP 協議進行傳輸,而 UDP 是一種不可靠,不需要建立連線的傳輸層協議。因此執行著 RIP 協議的路由器會無條件的接受任何來自網路中的報文,包括一些非法的路由表更新報文。
路由器在接受這些報文時會在沒有執行路由表更新命令的情況下改變自身的路由表。從而導致該路由器的路由表紊亂,甚至可能影響該路由器的鄰接路由器,繼而導致整個網路癱瘓,帶來嚴重的後果。
DNS欺騙
DNS(Domain name resolution)又稱域名解析協議,它用來將域名和 IP 地址進行相互轉換,
從而讓使用者在上網的時候可以直接輸入域名而不是冗長繁瑣的 IP 地址。
在 DNS 欺騙中,攻擊者通常會先攻擊 DNS 伺服器並取而代之,並改變原先 DNS 伺服器中的 IP 地址和域名的對映關係。
當使用者訪問相應的域名時返回的實際上是一個錯誤的網頁,而攻擊者可以透過這個網頁向使用者植入病毒或直接展開攻擊。DNS欺騙的手段分為兩種,一種是篡改本地主機的 Hosts 檔案,Hosts檔案實現的就是 DNS 伺服器的功能。
例如將Hosts 檔案中的一個域名對應的 IP 地址改成本機的迴環地址(127.0.0.1),這樣使用者在訪問這個域名時就無法到達想要的網頁。另一種是DNS劫持,即劫持使用者使用的DNS伺服器,通常來說駭客會將自己已經建立好的攻擊網站的IP地址對映到使用者經常訪問的網站的域名,而該攻擊網站和原網站看上去相差無幾,這樣使用者即使被攻擊也毫不知情。
TCP 連線欺騙
雖然TCP協議是一種可靠的鏈路層協議,但是由於每臺主機的IP地址在每次上網的時候都可能發生改變,因此攻擊者可以透過這個漏洞擾亂兩臺主機的TCP連線。TCP連線欺騙中,攻擊者C會一直對主機A進行攻擊(例如 Dos 攻擊)使其癱瘓,從而阻止A與B進行通訊,然後自己再偽造成主機 A與B 建立 TCP連線。過程如下:
CB:SYN=1,seq=a
BA:SYN=1,ACK=1,seq=b,ack=a+1
CB:ACK=1,seq=a+1,ack=b+1
攻擊者C首先向B傳送連線請求報文,同步位SYN置為1,序列號 seq為a。B收到請求報文後,向A發出確認報文,確認號 ack為 a+1,序號seq 為 b,由於A處於癱瘓中因此不會傳送響應報文。C 透過網路嗅探工具得到B向A傳送的 ack 和seq,對B傳送確認報文,將ACK 置為1,序號 seq為 a+1,確認號 ack為 b+1。這樣B和攻擊者C之間就直接建立了TCP連線,並可以直接向B傳送指令,而B還認為指令是由合法主機A傳送過來的,將執行這些命令。從而導致C可以任意地向B傳送攻擊命令,致使B癱瘓。
那麼面對TCP/IP協議常見漏洞我們要如何預防呢?我們下一篇接著講。