網管基礎 防火牆防溢出策略之路
http://bbs.s-sos.net/viewthread....extra=page%3D1“溢出”一直以來都是很多黑帽子黑客最常用的手段之一,隨安全文化的逐步普及,大量的公開shellcode(“溢出”代碼)與溢出攻擊原理都可以隨意在各大的網絡安全網站中找得到,由此衍生了一係列的安全隱患...黑客使用它們來進行非法的攻擊、惡意程序員使用它們來制造蠕蟲等等。而網絡防火牆作爲人們最喜歡的網絡安全“設施”之一,它又能如何“攔截”這一類型的攻擊呢?
目前大多的防火牆係統都是針對包過濾規則進行安全防禦的,這類型的防火牆再高也只能工作在傳輸層,而溢出程序的shellcode是放在應用層的,因此對這類攻擊就無能爲力了。下面圍繞這個漏洞,說說自己的解決方案。
對希望保護的主機實行“單獨開放端口”訪問控制策略
所謂“單獨開放端口”就是指只開放需要提供的端口,對於不需要提供服務的端口實行過濾策略。打個比方,現在我們需要保護一台存在WebDAV缺陷的WEB 服務器,如何能令它不被駭客入侵呢?答案是:在這台WEB服務器的前端防火牆中加入一個“只允許其他機器訪問此機的TCP80端口”的包過濾規則(至於閣下的防火牆能否實現這樣的規則就另當別論了)。加上這個規則又會有怎樣的效果呢?經常做入侵滲透測試的朋友應該清楚遠程溢出的攻擊實施流程了吧?
①使用缺陷掃描器找到存在遠程溢出漏洞的主機-》②確認其版本號(如果有需要的話)-》③使用exploit(攻擊程序)發送shellcode-》④確認遠程溢出成功後使用NC或TELNET等程序連接被溢出主機的端口-》⑤得到SHELL。
使用“單獨開放端口”策略的解決方案對整個遠程溢出過程所發生的前三步都是無能爲力的,但來到第四步這個策略能有效地阻止駭客連上有缺陷主機的被溢出端口,從而切斷了駭客的惡意攻擊手段。 優點:操作簡單,一般的網絡/係統管理員就能完成相關的操作。缺點:對溢出後使用端口複用進行控制的EXPLOITS就無能爲力了;對現實中的溢出後得到反向連接控制的EPLOITS也是無能爲力;不能阻止 D.o.S方面的溢出攻擊。
使用應用層防火牆係統
這裏所謂的應用層並不是想特別指明該防火牆工作在應用層,而是想指明它能在應用層對數據進行處理。由於應用層的協議/服務種類比較多,因此針對應用層形式的防火牆就有一定的市場局限性了。就樓上所提到的案例而言我們可以使用處理HTTP協議的應用層防火牆對存在WebDAV缺陷的服務器訂制保護規則,保證服務器不收此類攻擊的影響。應用層中的HTTP協議防火牆係統不多,它的基本防禦原理與特點是當服務端接受到一個發送至TCP80端口的數據包時,首先就會將該包轉移至SecureIIS,SecureIIS就會對該包進行分析並解碼該包的應用層數據,將得到的數據與你本身定制的規則進行數據配對,一旦發現條件相符餓數值就會執行規則所指定的相應操作。 優點:能有效地切斷一些來自應用層的攻擊。缺點:因爲需要安裝在服務器上,所以會占用一定的係統資源。
使用IDS功能的防火牆係統
現在國內自主開發的防火牆係統可謂是進入“白熱化”了,性能參數的比較本已經日趨激烈了,再開始有不少廠商將技術重點轉移在了“多功能”的方面上,在防火牆中繼承IDS模塊已經不是什麽新鮮事了,使用這類産品可以達到監控應用層數據的效果,便於管理。
編者按:隨著惡意用戶進攻的思路越來越複雜化,對於安全管理的難度也相對增大,面對如此利用溢出,在防火牆的思路上筆者提出了以上建議,希望在此起到抛磚引玉的作用。