2013年7月11日 星期四

疑似Fortigate 300a leak漏洞

你有聽過明明用防火牆阻擋了某個IP,但是該IP卻還是可以穿過防火牆嗎?
如果任何人聽到有此狀況發生,當下的第一個反應應該是說:IP打錯了
但再三檢查後,卻也不是IP打錯了,
最妙的是,也不是所有人的穿的過,而是少部份人可以穿過呢?
所以往往會不小心被忽略了~~~~~

最近發現了一個Fortigate 300A的漏洞, 我想可能也會出現在同產品中,所以提供給大家參考,例如在以下環境中,

                      Firewall----------IDP----Router------Internet
                           | DMZ
                           |
                           |
                    Webserver (xxx.yyy.zzz)

一般來說,在IPv4環境下,會採用NAT中的Port forwarding方式讓外界可以存取我們網站的內容,所以會有一條規則開通
Allow All to Webserver(xxx.yyy.zzz:80 -> 192.168.1:80)

另外一方面,為了防範一些網路上的攻擊,防火牆上也會加上規則來阻擋,例如:
Deny 8.8.8.8 to Any

而基於規則是有優先採用順序的,所以實際上應是

  1. Deny 8.8.8.8 to Any
  2. ..................
  3. Deny .......  to Any
  4. Allow All to Webserver(xxx.yyy.zzz:80 -> 192.168.1:80)
所以正常來說,應該是可以把所有已知的惡意連線都阻擋掉。
但是,就偏偏遇到仍然可以正常存取網站的惡意IP。


檢查開始.....
從檢查是哪條規則放人進來開始,
不看還好,看了才納悶,竟然是透過第4條規則進來,
莫名奇妙,防火牆竟眼睜睜地看著第1條規則不用,反而用上了第4條規則,這叫我百思不得其解呀?????
接著以為,是防火牆被攻破了嗎? 還是以前設定的阻擋規則失效了??
答案是..............NO..........一切正常
原先有被擋掉的還是被擋掉,原先可以進來的也是可以進來,偏偏就只有這個IP暢行無阻
更扯的是,接著再直接在Client端設定阻擋該IP,卻還是持續看到惡意連線產生,只能說是見到鬼啦~~~~~~
真的是差點選擇直接先斷線好了@@


在試過一些不同的擋法後,後來才發現,問題就出在原本的規則上
各位看倌,有沒有出來這幾條規則的微妙不同處呢?






問題就在
第1條是拒絕Any的連線,第4條是同意NAT port的連線(xxx.yyy.zzz:80 -> 192.168.1:80),這兩規則之間產生了奇妙的漏洞。

拒絕是拒絕8.8.8.8連線到xxx.yyy.zzz,但其實是同意8.8.8.8做NAT Port forwarding連線,防火牆在特定情況下,會判斷外界想連的不是xxx.yyy.zzz,所以就跳過第1條規則,反而使用到第4條規則。

因此解決方案即是加上新規則,
Deny 8.8.8.8  to (xxx.yyy.zzz:80 -> 192.168.1:80)

因為會通過此漏洞的人並不多,所以是會造成門戶大開,卻自以為狀況良好。

至於是如何通過此漏洞的原因還不明確得知(因為沒有繼續研究下去XD),只知道有可能是透過Proxy連線或是對方也是採用NAT連線時,就可避開此漏洞。

為了避免大家門戶大開而渾然不知,特在此分享。

沒有留言: