WindowsXP內建了一個ICF(InternetConnectionFirewall)防火牆 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
此為轉貼資料 《本期專欄》 https://www.cert.org.tw/document/newsletter/show.php?key=50 ■WindowsICF:Can'tLivewithit,Can'tLiveWithoutit
************* WindowsXP內建了一個ICF(InternetConnectionFirewall)防火牆。ICF是一套非常好
用的個人防火牆,能夠防止Internet上大部份的攻擊,然而缺乏細部的控制,對於進階使
用者的限制太多。誠如他們所說,Youcan'tlivewithit,youcan'tlivewithoutit.
在這篇文章是以實驗的方式來測試防火牆,並且讓駭客(安全測試員)看看這套防火牆的
功效。以下將簡介ICF並以模儗攻擊來看看ICF的成效,以及討論ICF的優缺點。 ICF簡介
ICF是為一套狀態檢視防火牆(statefulpacketfilter),比傳統的封包過濾器更具有廣
泛的設定規則。ICFruleset預設上是非常安全的,且拒絕所有來自Internet的流量,包
含ICMPechorequests(ping封包)。對於企圖探測你的機器的攻擊者而言,像是看不見一樣。 設定"services"或使用ICFAPI可手動修改ICFruleset。ICF包含標準的服務,如FTP
和HTTP。除此之外,ICF允許新增自定的服務通訊埠,然而此ruleset缺乏一項重要的設
定,就是無法針對某個特定的IP位址進行存取設定。如果你允許HTTP服務PORT80的
存取需求,便可讓全世界的人都可以連到你機器上的PORT80。你無法限制某個IP或某個
範圍的IP位址來作存取需求。這可以說是ICF重大的缺點。
除了手動設定ruleset,ICF包含一個API可允許應用程式暫時修改ruleset。這是個很
好也是很可怕的特色。好的原因是因為它允許應用程式如Windowsmessenger可以跟ICF
互動。這對於會開啟任意通訊埠的應用程式是非常有用的。同時,大部份的安全專家對於
應用程式能修改規則集,會提出安全性的警告。不過人們常會抱怨使用ICFAPI時,需要
管理者的權限。如果你的WindowsXP帳號是一個受限的帳號,應用程式會無法使用
ICFAPI修改ICFruleset。關於ICFAPI的資訊可參閱
AboutInternetConnectionSharingandInternetConnectionFirewall. (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ics/ics/about_internet_connection_sharing_and_internet_connection_firewall.asp) 最後,ICF除了標準的有狀態性的封包過濾之外,還有某些額外的安全檢查,如:
1.強制一個3-wayhandshake-這對於防止特殊的掃描技術是很有用的。
2.拒絕不可能會出現的TCPflag選項。(如同時擁有SYN和FIN位元的封包-防止無
效封包的IP堆疊攻擊。
3.使用RawSockets和IP_HDRINCL選項,防止IP欺騙-有效防止某些型態的分散式阻斷服務攻擊。 微軟官方ICF的簡介,請參閱InternetConnectionFirewalloverview
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/
winxppro/proddocs/hnw_understanding_firewall.asp
攻擊ICF
為了測試的需要,我們使用WindowsXP網路並啟用ICF。但不以ICS(Internet
connectionsharing)開啟ICF,並使用一般的設定。攻擊採用兩種方式,一種是從
Internet,另外一種是從本機。 工具 我們使用下列工具作為測試使用:
1.ISIC-IP堆疊完整性檢查
http://www.packetfactory.net/Projects/ISIC/
2.FSCAN-Windows平台通訊埠掃描
http://www.foundstone.com/knowledge/proddesc/fscan.html
3.Nmap-通訊埠掃描
http://www.insecure.org/nmap/
4.Foundscan-漏洞測試工具
http://www.foundstone.com/services/mvas.html
5.Nessus-漏洞測試工具
http://www.nessus.org/
6.fragrouter-IP封包分割工具。
http://online.securityfocus.com/data/tools/fragrouter-1.6.tar.gz
方法及結果
我們模擬駭客攻擊的方式來攻擊使用ICF使用者。為了模擬攻擊的需要,使用公開的免費
軟體及商業的通訊埠掃描和漏洞測試工具。除此之外,我們使用像ISIC和fragrouter工
具攻擊ICF防火牆。此測試方法使用之前其它防火牆所無法處理的攻擊,來確認微軟是否
犯了相同的錯誤。
我們將焦點放在從Internet來的攻擊,因為大部份對於個人防火牆的攻擊會是來自於
Internet。
除此之外,測試本機上惡意使用者的攻擊,並企圖從攻擊中獲得額外的利益。
執行ISIC、通訊埠掃描和漏洞測試工具來測試ICF的安全性。大多數的駭客會使用通訊埠
掃描和漏洞測試工具試圖找出有哪些服務和潛在的漏洞。ISIC和NMAP是用來產生非RFC
標準的封包,企圖讓ICF無法作用。但ICF阻擋了所有的攻擊,而且使用者並不會注意
這個攻擊,ICF會阻擋那些無效的封包。
接下來的攻擊我們使用fragrouter去分割IP封包。它能夠將單一的TCP封包切割成多
個封包,以企圖穿越ICF的保護。不過也是沒有成功。雖然試著使用其它的標準攻擊方式
來對於防火牆,如分段重疊攻擊。不過ICF對於這些攻擊也能有效的防護。
大多數的狀態檢視防火牆會因為狀態表(statetable)滿載而對內部使用者產生DoS的問
題,我們從ICFbox執行Fscanportscanner,發現了一個令人驚訝的地方。雖然並沒
有DoS的情況發生,但不論是掃描那一台主機,PORT21,389,1002,1720通常都是開啟的
。這個情況是出乎我們的意料之外:為什麼ICF開啟這些通訊埠?是後門嗎?在加以研究
之後,判斷是由於ICF/ICSservice中的應用層代理伺服器所開啟。這是因為微軟為了支
援在防火牆裡並無法運作平順的特殊通訊協定所建置的。
那些特殊通訊協定會動態的開啟連入的連線,但這於有狀態檢視防火牆是不可能辦到的。
以FTP和H.323為例,在一個的FTP連線裡(非PASV),FTPclient會由port21連到
FTPserver,並使用PORT指令告知FTPserver連回FTPclient,並使用任意通訊埠傳
送資料。
如果防火牆無法偵測和處理PORT指令,便會丟掉這些封包。所以ICF便建置了FTPproxy
處理PORT指令。
同樣的,H.323是用來建立VOIP的呼叫,可是這是只用來建議呼叫而己。真實聲音和影像
RTP串流的傳送是使用動態的通訊埠。ICF為了讓這些封包流入,它必須監聽此類呼叫的建立。
PORT389和1002是LDAP和ILS(InternetLocatorService)作為Netmeeting。
應用層代理伺服器的存在是因為ICS所發展的。當ICS和ICF被建置成為單一服務時,
即使沒有開啟ICS服務,這個代理伺服器還是仍然會開啟。雖然這些代理伺理器可能會有
漏洞存在,但是我們的測試僅到此而己。但如果駭客已經隱藏在內部ICS網路當中,你可
能會有大麻煩。無論如何,應用層代理伺服器對於你想要研究的漏洞可能會是一個很好的
議題。
PortServiceReason
21FTPNTPPORTcommand
398LDAPNetmeeting
1002ILSNetmeeting
1720H.323Netmeeting
雖然ICF對於來自網路上的攻擊能應付得很好,但是如果能經由e-mail作木馬的攻擊,
很明顯能夠很簡單的穿越防火牆的保護。無可否認地,ICF並不是一個病毒或是木馬的偵測
器,然而ICF缺乏對外的過濾機制,防止木馬"phonehome"並對外開啟連線。除此之外
,雖然ICF能防止DDoS的攻擊,但我們仍然能經由NDIS的呼叫修改IP的來源位址。
相關"phonehome"的攻擊。請參閱SecurityFocus文章"WhenDreamcastsAttack"。
總結的來說,ICF對於攻擊的防護作的不錯,但缺乏對外過濾則是一個很大的缺失。
優點
WindowsICF有很多特色和優點。特別是下列所述:
*ICF是免費的。你無從抱怨和整合進內部的作業系統裡。除非你是Netscape或法官。
*ICF在高負載的時候,也能夠運作得很好。
*ICF能防止網路上大部份的攻擊。預設的防火牆規則非常的嚴格,能預防大多數的攻擊
,但無法防止病毒和其他從你的電腦所發出的攻擊。
*ICF為有狀態檢視防火牆。狀態檢視防火牆一般而言會比封包過濾防火牆更安全。
*ICF己經安裝並啟動。如果你己經使用網路安裝精靈,就己經開啟了ICF。
*ICFAPI允許應用程式在ICF中開啟一個通訊埠,並允許對內的傳輸。這對於像是
WindowsMessenger和遊戲像Warcraft3需要對內的連線是非常有用的。
*應用層代理伺服器允許ICF以異常協定的防火牆運作。
缺點
儘管擁有上述優點,WindowsICF也會引起某些問題的產生。特別是對於公司的使用者和有
權控制防火牆的poweruser。下列可能是此類使用者較難接受的問題:
*ICF阻擋了許多應用程式。ICF無法針於信任的主機的存取設定,也不支援RPC,以致於
Outlook中的訊息提示無法運作。除此之外,檔案分享的服務也無法運作。
*ICF無法過濾對外連線。然而這使得ICF對於木馬或者惡意應用程式毫無作用。
*ICF缺乏即時攻擊的通知。ICF可以設定允許登錄或拒絕傳輸,但並不提供即時的通知。
*應用程式要動態開啟通訊埠必須要有administrative層級的權限。如果你使用"最小權
限原則(PrincipleofLeastPrivileges)",而且你的帳號是一個受限制的帳號,應用程
式便無法利用ICFAPI和動態開啟通訊埠。 結論
ICF對於大多數的人而言是一個非常好的安全工具,它阻擋了大多數網路上的攻擊,並且可 讓ICFAPI應用程式運作得很好。它也支援工業的標準協定,像是FTP,H.323和PPTP。 然而,如果你是一個公司的使用者或是poweruser,可能需要另外一套個人防火牆來作一 些更詳盡的存取控制。若沒有詳細的存取設定,poweruser需關掉防火牆,以便某些應用 程式能夠運作。 我們的建議是:若ICF對你而言是有用的,那就使用ICF。否則就關掉防火牆,並購買另 一套個人防火牆作更進階的存取設定。對於其他的防火牆資訊,請參閱SecurityFocus SecuringPrivacy,PartTwo:SoftwareIssues. *********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |