Windows XP 內建了一個 ICF(Internet Connection Firewall)防火牆。ICF 是一套非常好用的個人防火牆,能夠防止 Internet上大部份的攻擊,然而缺乏細部的控制,對於進階使用者的限制太多。誠如他們所說,You can't live with it, you can't live without it.
在這篇文章是以實驗的方式來測試防火牆,並且讓駭客(安全測試員) 看看這套防火牆的功效。以下將簡介 ICF 並以模儗攻擊來看看 ICF 的成效,以及討論 ICF 的優缺點。
ICF 簡介
ICF 是為一套狀態檢視防火牆(stateful packet filter) ,比傳統的封包過濾器更具有廣泛的設定規則。ICF ruleset 預設上是非常安全的,且拒絕所有來自 Internet的流量,包含 ICMP echo requests (ping 封包)。對於企圖探測你的機器的攻擊者而言,像是看不見一樣。
設定"services" 或使用 ICF API 可手動修改 ICF ruleset。ICF 包含標準的服務,如FTP和 HTTP。除此之外,ICF 允許新增自定的服務通訊埠,然而此 ruleset缺乏一項重要的設定,就是無法針對某個特定的 IP 位址進行存取設定。如果你允許 HTTP 服務 PORT 80 的存取需求,便可讓全世界的人都可以連到你機器上的 PORT 80。你無法限制某個IP 或某個範圍的 IP 位址來作存取需求。這可以說是 ICF 重大的缺點。
除了手動設定 ruleset,ICF 包含一個 API 可允許應用程式暫時修改 ruleset。這是個很好也是很可怕的特色。好的原因是因為它允許應用程式如 Windows messenger 可以跟ICF互動。這對於會開啟任意通訊埠的應用程式是非常有用的。 同時,大部份的安全專家對於應用程式能修改規則集,會提出安全性的警告。不過人們常會抱怨使用 ICF API 時,需要管理者的權限。如果你的 Windows XP 帳號是一個受限的帳號,應用程式會無法使用ICF API 修改 ICF ruleset。
關於 ICF API 的資訊可參閱
About Internet Connection Sharing and Internet Connection Firewall.
... ection_firewall.asp
最後,ICF 除了標準的有狀態性的封包過濾之外,還有某些額外的安全檢查,如:
1.強制一個 3-way handshake - 這對於防止特殊的掃描技術是很有用的。
2.拒絕不可能會出現的 TCP flag 選項。(如同時擁有 SYN 和 FIN 位元的封包 - 防止無效封包的 IP 堆疊攻擊。
3.使用 Raw Sockets 和 IP_HDRINCL 選項,防止 IP 欺騙 - 有效防止某些型態的分散式阻斷服務攻擊。
微軟官方 ICF 的簡介,請參閱 Internet Connection Firewall overview
... anding_firewall.asp
攻擊 ICF
為了測試的需要,我們使用 Windows XP 網路並啟用 ICF。但不以 ICS(Internet connection sharing)開啟 ICF,並使用一般的設定。攻擊採用兩種方式,一種是從 Internet,另外一種是從本機。
工具
我們使用下列工具作為測試使用:
1. ISIC - IP 堆疊完整性檢查
2. FSCAN - Windows 平台通訊埠掃描
3. Nmap - 通訊 ..
訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容