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 可以看到全部内容