本文將向你解釋你在防火墻的記錄(Log)中看到了什么?尤其是那些端口是什么意思?你將能利用這些信息做出判斷:我是否受到了Hacker的攻擊?他/她到底想要干什么?本文既適用于維護企業級防火墻的安全專家,又適用于使用個人防火墻的家庭用戶。
現在個人防火墻開始流行起來,很多網友一旦看到報警就以為受到某種攻擊,其實大多數情況并非如此。
所有穿過防火墻的通訊都是連接的一個部分。一個連接包含一對相互“交談”的IP地址以及一對與IP地址對應的端口。目標端口通常意味著正被連接的某種服務。當防火墻阻擋(block)某個連接時,它會將目標端口“記錄在案”(logfile)。這節將描述這些端口的意義。
端口可分為3大類:
1) 公認端口(Well Known Ports):從0到1023,它們緊密綁定于一些服務。通常這些端口的通訊明確表明了某種服務的協議。例如:80端口實際上總是HTTP通訊。
2) 注冊端口(Registered Ports):從1024到49151。它們松散地綁定于一些服務。也就是說有許多服務綁定于這些端口,這些端口同樣用于許多其它目的。例如:許多系統處理動態端口從1024左右開始。
3) 動態和/或私有端口(Dynamic and/or Private Ports):從49152到65535。理論上,不應為服務分配這些端口。實際上,機器通常從1024起分配動態端口。但也有例外:SUN的RPC端口從32768開始。
的許多攻擊腳本將安裝一個后門Shell于這個端口(尤其是那些針對Sun系統中Sendmail和RPC服務漏洞的腳本,如statd, ttdbserver和cmsd)。如果你剛剛安裝了你的防火墻就看到在這個端口上的連接企圖,很可能是上述原因。你可以試試Telnet到你的機器上的這個端口,看看它是否會給你一個Shell。連接到600/pcserver也存在這個問題。
作者發現一種對于同一系列端口的掃描來自于Internet上變化很大的源地址這通常是由于“誘騙”掃描(decoy scan),如nmap。其中一個是攻擊者,其它的則不是。利用防火墻規則和協議分析我們可以追蹤他們是誰?例如:如果你ping每個系統,你就可以將獲得的TTL與那些連接企圖相匹配。這樣你至少可以哪一個是“誘騙”掃描(TTL應該匹配,如果不匹配則他們是被“誘騙”了)。不過,新版本的掃描器會將攻擊者自身的TTL隨機化,這樣要找出他們回更困難。你可以進一步研究你的防火墻記錄,尋找在同一子網中被誘騙的地址(人)。你通常會發現攻擊者剛剛試圖對你連接,而被誘騙者不會。
最流行的聊天方式之一是IRC。這種聊天程序的特點之一就是它能告訴你正在和你聊天的人的IP地址。聊天室的問題之一是:人們匿名登陸并四處閑逛,往往會遭遇跑題的評論、粗魯的話語、被打斷談話、被服務器“沖洗”或被其它客戶踢下線。因此,服務器端和客戶端都默認禁止在聊天室內使用匿名登陸。特別需要指出的是,當有人進入聊天室時要檢查他們是否通過其它代理服務器連接。最常見的這種掃描是SOCKS。假設你來的那個地方支持SOCKS,那么你完全有可能有一臺完全獨立的機器,你試圖通過明處的代理服務器隱藏你在暗處的真實身份。
TCP和UDP能承載數據,但ICMP僅包含控制信息。因此,ICMP信息不能真正用于入侵其它機器。Hacker們使用ICMP通常是為了掃描網絡,發動DoS攻擊,重定向網絡交通。(這個觀點似乎不正確,可參考shotgun關于木馬的文章,譯者注)一些防火墻將ICMP類型錯誤標記成端口。要記住,ICMP不象TCP或UDP有端口,但它確實含有兩個域:類型(type)和代碼(code)。而且這些域的作用和端口也完全不同,也許正因為有兩個域所以防火墻常錯誤地標記了他們。更多關于ICMP的知識請參考Infosec Lexicon entry on ICMP。


