Tor作為匿名網路的代表,被譽為“暗網之王”,而TOR這個網路具有雙面性。Tor透過保護通訊雙方的身份資訊,能有效防止使用者個人資訊的洩露,成為一種新的網路訪問方式。但同時,攻擊者也看到了匿名網路所帶來的匿名性,可以利用匿名網路發動網路攻擊,逃避司法取證人員的追蹤調查,因此匿名網路中的攻擊溯源問題也近幾年追蹤溯源的熱點。
其實關於匿名網路的追蹤溯源,雖然有難度,但是近幾年還是有長足的進步,追溯方法也在逐步增加。
陳周國、蒲石、祝世雄在《匿名網路追蹤溯源》,將攻擊溯源方法分為兩類:匿名網路調製追蹤和匿名網路滲透追蹤。匿名網路調製追蹤是指取證人員在匿名網路流量中新增流水印資訊,透過檢測流水印資訊將不同的網路流量關聯起來,從而識別網路流量的來源。
匿名網路滲透追蹤是指取證人員控制部分匿名網路的節點,透過破壞或檢視透過這些節點的流量,來識別網路流量的源頭。
但是這兩類方法需要取證人員掌握的資源有所不同,因此從取證人員的角度,可以將匿名網路中的攻擊溯源方法分2種情況:
- 取證人員能夠控制全部或部分匿名網路的節點的情況下。
在這種情況下,《追蹤洋蔥包的高階標記方案與實現》中吳振強、楊波, 採用資料包標記方法來識別匿名流量。由於匿名網路 Tor 隱藏了資料傳送端的IP地址,而且中間節點會剝去資料包的外層包頭,因此該方法提出利用Tor 協議中網路層的32bit的GMT(包終止時間)欄位,將其改造為5bit的距離和 19bit的IP地址 hash值。中間節點填入相應的資訊,受害主機根據這些資訊可以推算出資料流的來源。
在《A new replay attack against anonymous communication networks》中針對Tor網路的追蹤問題,利用了Tor 網路所採用的AES演算法的計數器加密模式,需要計數器進行同步的特徵,控制多個Tor 網路的節點,人為改變節點的計數器,導致後續節點解密失敗,從而將節點間的通訊流進行關聯。
在《A traceback attack on Freenet》中Guanyu Tian,等人研究了高延時匿名網路、匿名內容釋出網路Freenet中的匿名追蹤問題,指出可以利用網路中部分受控制的節點作為監控節點,透過監控節點所觀察到的訊息來推斷內容請求者的真實主機,但該方法沒有解決內容釋出者的匿名追蹤問題。 Young Hwan Lim等研究了BitTorrent 網路中初始種子的識別問題,給出一些識別特徵。而《Is it an initial seeder?》研究了在種子初始傳播階段識別第一個上傳者的規則。
(2)取證人員能夠控制匿名網路的部分通訊流量並能部署檢測感測器
在《discovery, blocking, and traceback of malicious traffic over Tor》和《Rate-based watermark traceback: a new approach》中,採用資料包發包速率來作為載頻的方式嵌入水印。如用較高的發包速率表示二進位制1,用較低的發包速率表示二進位制0。該方法可以有效抵抗由於各種原因引起的資料包的網路時延、丟包、增加包、重打包等對水印檢測準確率的影響。
在《Network flow wartermarking attack on low-latency anonymous communication Systems》中針對採用發包流率作為載頻,而在實際應用中發包流速不穩定的問題,提出了一種以時隙質心的載頻方法。即將時間分為多個時間片,以資料包落在時間片中的位置為質心,當資料包數量足夠多時,無論發包速率如何波動,時隙質心是穩定的。這樣可以提高流水印的健壯性和隱秘性。
《DSSS-based flow marking technique for invisible traceback》中將直序擴頻機制 DSSS 應用到流水印中, 不是直接在流中嵌入特徵碼, 而是利用偽噪聲碼 PN 碼進行擴頻, 嵌入到資料流中, 提高了流水印的隱蔽性。但是在《On the secrecy of spread-spectrum flow watermarks》中對該方法的隱蔽性進行了充分實驗驗證, 指出該方法的隱蔽性需要進一步提高。
《 Interval cen troid based flow watermarking technique for anonymous commu nication traceback》中綜合利用時隙質心和PN碼的方法提出一種新的流水印方法。作者指出長PN碼可以提高水印檢測的準確率,這一點在別的實驗中得到了驗證。
Xian Pan, Junwei Huang等人用基於DSSS的長PN碼來嵌入水印,該方法能夠阻止攻擊者檢測到流中可能存在水印資訊,並且可以用於多個資料流嵌入水印的同時檢測。而在《A double interval centroid-based watermark for network flow traceback》中則更進一步採用雙重時隙質心和PN 碼的方法,即將相鄰時隙的質心聯合進行考慮,可以更好的提高水印的隱蔽性。
而《A new cell counter based attack against Tor》中則不直接針對時隙進行水印的嵌入,而是使用包數來表達嵌入的訊號,即用連續的1個資料包代表“0”;用連續的3個資料包代表“1”。考慮到網路延時及緩衝佇列造成的資料包合併、分離,提出了魯棒的演算法來提高檢測率。這樣,對於流持續時間較短的情況,仍然可以新增水印並能得到較好的檢測效果。
《A new cell counter based attack against Tor》進一步指出,雖然Tor 匿名網路把應用層資料分割為固定大小的512位元組(含頭部資訊,真正資料是 498個位元組),但這一機制並不會導致網路層資料包分組也是固定大小。
利用這一現象,《Equal-sized cells mean equal sized packets in Tor?》中給出了一個新的嵌入水印的方法,即利用真正資料的498個位元組代表“0”,2444個位元組代表“1”。前者將被分割為1個資料包,而後者考慮到鏈路層的最大資料幀長度1500位元組,將被分割為5個資料包。然後研究了資料包在網路層的分割、融合的各種情況,給出了水印檢測演算法。實驗結果顯示能夠使用較少的資料包以較高的準確率檢測到嵌入的水印訊號。同時可以將類似的思想應用到另一匿名網路 Anonymizer 中,可以識別出訪問網站的匿名客戶端。但是以上方法都是針對單個資料流嵌入水印並進行檢測的,如果同時存在多個資料流,在多個資料流中嵌入水印,將導致檢測準確率急劇下降。
面對同時存在多個資料流現象,針對這一問題,有一種針對多個資料流嵌入水印的方法,即事先生成一個種子序列,對每個資料流隨機選擇不同的種子, 在資料流中不同的時隙段內嵌入水印。當進行檢測的時候, 解碼器嘗試採用每一個可能的種子來檢測水水印, 找出最匹配的值, 從而解碼出嵌入的水印值。
對於為什麼可以採用時隙特徵來嵌入水印的理論原因,主要影響追蹤效果的三個因素:報文長度、干擾資料流中資料包的數量、轉發節點的資料包緩衝時間,並給出了在給定檢測準確率的情況下,所嵌入水印的最小延遲時間的計算方法。
一般的方法採用在固定時間長度的資料包間隔中嵌入水印, 常用的水印檢測方法效率較差, 需要大量的資料包才能獲得較高的檢測準確率。針對這一問題,可以基於 SPRT(Sequential Probability Ratio Test)檢驗方法, 建立三種不同的假設檢驗構造方法, 在達到同樣檢測準確率的情況下, 明顯減少了所需的資料包數量。但是這一類方法僅適用於低延時匿名網路, 對於高延時匿名網路將導致所新增的流水印資訊丟失。
結語:
未來網路安全事件,一定是以定向攻擊為主的,而匿名網路則成為攻擊者的保護傘。匿名網路的追蹤溯源,有難度,但是並不是不可實現。尤其是以IP地址為基礎的匿名網路,現在的IP代理識別技術基本可以實現識別使用者是否使用Tor連線,這也降低了匿名網路追蹤溯源的難度。隨著國家對攻防演習的重視,未來對於匿名網路的追蹤溯源能力也會越來越強,就讓我們拭目以待吧。