◆褚蕾蕾 竺 德
?
網絡協議二義性及其帶來的安全問題研究
◆褚蕾蕾 竺 德
(安徽大學網絡信息中心 安徽 230601)
網絡協議規范了網絡交互過程中進行數據交換的規則、標準和約定,是計算機網絡的基礎組成部分。然而,網絡協議內部不同字段包含不同含義,且不同字段的組合多種多樣,在網絡協議規范中對不同字段組合出現的情況并沒有給出明確的處理方式,這就導致了不同廠商、不同研究機構處理結果的不同,即出現了網絡協議二義性。本文中,作者梳理了從網絡層到應用層三類重要協議(IP、TCP、HTTP)的二義性研究成果,并對TCP序列號帶來的信息泄露、隱蔽端口掃描等問題進行實驗驗證。實驗結果表明,網絡協議二義性確實能夠帶來一系列安全問題,需要引起足夠的重視。
IP協議;TCP協議;HTTP協議;網絡協議二義性
網絡協議是不同計算機之間通信共同遵守的規則、標準和規范,它定義了兩臺計算機之間如果想要建立成功的通信所必須進行的步驟、必須進行的數據交換和數據格式,是計算機網絡的基礎。
網絡協議分為不同的字段,每個字段都有明確的含義。隨著時代的發展,有些字段已經失去了原有的意義。然而,為了與舊系統保持最大的兼容,網絡協議往往保留了這些字段,有些可能賦予了新的含義。
每種網絡協議的字段數量不同,字段內可能的取值也不相同。網絡協議往往只規范字段正確的取值方式,對于不正確的取值如何處理,網絡協議卻大多都沒有明確的說明,不同廠商在實現的時候也大多根據自身情況來做,并沒有形成統一的行業規范,這就導致了網絡協議錯誤處理的不一致性。一般情況下普通用戶會認為這種不一致性不會帶來嚴重的危害。然而網絡中惡意攻擊者和不同廠商網絡中間件的存在,讓這種不一致性所帶來的處理路徑的差異會進一步放大,就有可能給普通用戶帶來嚴重的安全威脅。
在本文中,作者梳理了20多年來由于網絡協議二義性所產生的攻擊手段,內容橫跨網絡層、傳輸層和應用層,充分展示了網絡協議二義性給計算機網絡和網絡用戶帶來的潛在威脅。同時作者進一步研究了常用的簡單郵件傳輸協議SMTP,對協議頭部字段進行分析和實驗,對不同供應商測量二義性的存在。實驗結果表明,SMTP協議頭部存在網絡二義性,可能給收件人帶來潛在的安全威脅。
按照計算機網絡體系結構七層模型的劃分,IP協議工作在網絡層,主要負責端到端或(路由)節點到(路由)節點間網絡數據包的傳輸。IP協議是計算機網絡最古老的協議之一,最早可以追溯到1974年。圖1是IP頭格式,由RFC 7910約定和實現。

圖1 IP頭格式信息
在IP頭中,TTL字段主要用來標識報文在網絡中的生存周期。最初協議設計的時候,TTL是以時間為單位計數的,每過一秒鐘TTL值減一。然而在實際實現過程中,按時間計數變成了按經過網絡中轉設備的跳數計算,每經過一個網絡中轉設備,TTL的值必須減一。如果某個報文TTL的值為0,該報文將被直接丟棄,并向源地址發送目標不可達的ICMP消息。這樣做的目的,是為了避免某個報文由于找不到合適的路由或者路由算法形成環路以后在網絡中循環傳遞而過度占用網絡資源。TTL長度是8bit,因此該字段能夠設置的值范圍是0~255。
然而,利用TTL字段的特性,攻擊者可以精心構造攻擊報文,使網絡檢測設備與報文接收設備收到的內容不同,從而逃避網絡檢測。考慮如圖2的網絡情況。
假設攻擊者到中間網絡防護設備的TTL跳數為10,網絡防護設備后面經過一個網絡中轉設備連接受害者主機。那么,攻擊者將能夠通過挑選不同的TTL值(這里可以挑選10或11,使得部分報文在經過網絡防護設備或網絡中轉設備后,由于TTL減為0,報文自動丟棄),導致防火墻收到報文內容完全不同于受害者主機收到的內容,逃避網絡防護設備的檢測。

圖2 IP頭TTL字段攻擊