寫個篇文章主要也是記錄一下自已的設計想法.到時候實現.
[基本概念]
因為用C#寫的原故,我不知道反向 Proxy的效能會達到多少預想值,如果並發大的網站,可能會比較吃力.(有做過的童鞋多多幫忙解釋一下)
所以我設計的防火牆軟體是建立在安全的作業系統基礎上,針對WEB應用而設計. 並不具有對資料流的過濾功能,而是對資料流進行分析,然後再配合IIS,Apache,Windows安全性原則,Linux iptables來操作控制.
[控制能力]
目前設想主要是進行WEB行為控制
分析訪問WEB的資料流是否存在惡意關鍵字,重點防護SQL注入,XSS,CC攻擊這3種.
分析規則設計:
1,同一個IP,2分鐘之內訪問的URL資料流中,參數中包含了[Select, update,insert,And, Or,Union,0x,hex,char,from,alert,javascript等(還有很多)]關鍵字的數量超過10次,可認定為手工注入或XSS測試者.
2,同一個IP,2分鐘之內訪問page數量超過100時,可認定為掃描器掃描.或是CC攻擊.
防護措拖設計:
1,IIS,XSS攻擊者,通過控制IIS,Apache本身的IP訪問限制功能來屏蔽攻擊者對WEB網站的訪問,屏蔽IP時間10分鐘,如再有分析到攻擊資料包,則更新時間,一直保持到最後一次攻擊訪問的10分鐘後再開放.
2.CC攻擊者,通過控制安全性原則,iptables來屏蔽攻擊者對伺服器的訪問,什麼服務都不再提供給它.
屏蔽IP時間20分鐘,開放規則同上.
為什麼IIS,XSS只屏蔽網站的存取權限,而CC要屏蔽整個伺服器的存取權限呢? 因為伺服器上可能有很多的WEB網站.不同的網站針對一個IP或能是不同的人群,因為都是NAT上網,如果是一個網吧,屏蔽了伺服器上所有網站的訪問,那是不值得的.
CC是惡意攻擊者,那他很可能找伺服器上所有的網站,進行弱點分析,然後CC攻擊,所以直接屏蔽掉它.保護WEB伺服器上多個網站的正常運行.
3.記錄資料來源攻擊者的相關資訊與被攻擊的網站URL到log,方便以後查看,並發現漏洞可能存在的地方.
4. 警示,發送Email給管理員,讓管理員知道伺服器在被受攻擊.
防火牆的其它特性:服務控制,方向控制,使用者控制由系統自身加固來防禦.