由于目前NAT技術的大量使用,若攻擊者主機位于NAT后面,使用私網IP地址,對于攻擊源的追蹤只能到攻擊者的NAT網關,而無法穿透NAT網關。因此, 假設已知攻擊者來自于某個 NAT網關保護的私有網絡, 如何定位攻擊者主機在私網中的位置?

這一問題在有線網絡比較容易解決,因為NAT網關只進行IP地址和端口的轉換,對數據包的內容和大部分頭部信息并不進行修改,即使數據包的內容經過了加密。因此只要對公網的數據流和私網的數據流進行監控,根據IP頭部中的信息,如序列號,就可以把公網數據流和私網數據流關聯起來,從而知道攻擊者的私網IP地址和mac地址。
《Source attribution for.NETwork address translated forensic captures》研究了經NAT地址轉換的數據包來源識別問題,指出NAT服務器一般不會更改原IP數據包頭中的序列號。對于windows系統, 數據流中的包頭的序列號通過每次加1的方式進行增長,這可以用于判斷來自同一臺主機的數據包。而對于linux系統,由于采用序列號隨機化的方式,前述特征無法用于Linux主機,但可以通過Http協議報頭中的時戳、cookie等來判斷。
《A layer-2 extension to hash-based IP traceback, IEICE Transactions Information and Systems》基于其它研究員的數據包記錄的方法,提出了一種2層網絡的攻擊源追蹤方法,即在已知離攻擊者主機最近的路由器的情況下,在內網中確定攻擊者的主機。
該方法通過在路由器上記錄數據包的MAC地址、來自交換機的哪個端口、來自路由器的哪個端口,通過建立這些信息的摘要表,從而能快速識別出攻擊者主機所在的子網。
而《IP traceback in a switched ethernet network》中的研究員認為上一個的方法在實際2層交換網絡中部署困難。基于《Single packet IP traceback in AS-level partial deployment scenario》中的方法結合交換機中的審計記錄,提出一種新的攻擊溯源方法, 實現即使只有一個攻擊數據包,也可以進行追蹤。
在無線局域網中,這一問題就比較困難了,因為無線路由器不僅要進行IP地址的轉換, 而且會對IP數據包,包括IP頭部進行加密,如WPA算法,這樣就無法通過內、外網數據流的觀察來進行關聯。
《Identifying mobiles hiding behind wireless routers》對這一問題進行了研究,利用數據包的大小在數據流中填加水印,從而對內、外網數據流進行關聯。
具體來說,該方法是針對數據流從外網流入內網的攻擊者主機的情況,在外網中能夠控制相關的數據流, 選擇一個作為水印的特征碼,然后隨機選擇數據流中的多個數據包,用大小為700字節的數據包代表碼元 0,1000字節的數據包代表碼元1若選擇的數據包超過所代表碼元的數據包大小,則把該數據包按碼元大小進行分組。
若小于,則重新選擇下一個數據包。之所以選擇這兩個數據包字節大小,是因為經過對802.11數據幀進行統計,具有500—1000字節大小的數據幀很少, 可以避免誤報。
這樣在內網中檢測數據流中所嵌入的特征碼, 則可以將內、外網數據關聯起來。
但這一方法不能用于從內網流出到外網的情況,例如在內網中的攻擊者向外發動攻擊的時候在外網發現攻擊數據流,需要定位內網的主機位置,目前還未發現有相關文獻對這個問題進行研究。
《Identifying mobiles hiding behind wireless routers,》中能夠獲得內網中攻擊者主機的IP地址和MAC地址,但在大型公共場合的無線網絡中,如機場、車站、賓館, 如何定位攻擊者主機的物理位置仍然是一個問題。
《3DLoc: three dimensional wireless localization toolkit》對此問題進行了研究, 假設已知攻擊者主機的MAC地址, 設計了一套系統來定位目標的物理位置。該系統利用定向天線捕獲無線數據幀, 識別出源MAC地址為目標MAC地址的數據幀,利用數據信號強度定位信號的來源方向,通過多個地點的測量,即可以定位出目標的物理位置。
該系統能夠對三維空間進行定位,即使攻擊者主機位于高樓中,測量地點在樓外,也可以定位出攻擊者主機所在的樓層房間。