我不知道你是否自己運營過一個網站或當過某個服務器的管理員,但如果你做過的話,你就會非常清楚地知道外面有多少壞人隨時都在想著如何攻擊你的網站或服務器。
想當初我還是十三歲的時候我就自己架設了我第一臺服務器,那是一臺小型服務器,運行的是Linux系統,并且還配置了SSH遠程訪問控制。當時每天都會有大量來自天朝和俄羅斯的IP地址會嘗試連接或訪問我這臺可愛的服務器,因此我每天都得去檢查服務器的運行日志,并將那些貌似想干壞事的IP地址報告給他們的互聯網服務提供商(IPS)。值得一提的是,我當時假設服務器所用的設備就是一臺老款的ThinkPad T21,而且顯示屏都已經壞得差不多了,配置完成之后它就一直乖乖地躺在我床底下運行著。
實際上,如果你自己運行過一臺配置了SSH遠程訪問的Linux服務器的話,你就知道每天會有多少條鏈接來嘗試訪問你的服務器了:
你從下圖中看到,即使我禁用了服務器的密碼身份驗證,即使服務器運行在非標準端口上,每天仍然都會有成百上千次失敗的登錄嘗試:
WordPress已經把我們都給毀了
其實大家都知道,Web漏洞掃描工具明顯出現的要比WordPress早,但由于WordPress的受歡迎程度如此之高,目前絕大多數的Web漏洞掃描工具都已經擁有掃描wp-admin目錄錯誤配置或未修復插件等安全問題的功能了。
所以說,如果一個小型黑客組織想要通過入侵某網站來讓大家都知道他們的話,他們首先肯定會下載一些這樣的漏洞掃描工具,然后利用這些工具來對大量網站進行漏洞掃描測試,如果運氣好的話他們很快就可以拿到目標網站后臺服務器的訪問權了。接下來要發生的事情,你懂的...
下圖顯示的是通過工具Nikto掃描之后所生成的日志文件樣本:
為什么所有的網站管理員或服務器運維人員每天都需要處理大量包含掃描嘗試的日志呢?看到這里想必你也應該清楚了。但讓我們冷靜下來好好想想,我們有沒有什么辦法可以對這種惡意嘗試行為予以反擊呢?
有沒有辦法可以反擊?
在對IDS(入侵檢測系統)和Fail2ban的實現過程進行了重新回顧之后,我突然想起來了很久以前非常流行的Zip bombs(Zip炸彈)?! ?/p>
Zip炸彈是什么東西?
Zip炸彈也被稱作是死亡壓縮包或解壓縮炸彈,這是一種惡意文檔(archive)文件,當某個程序或系統嘗試讀取這個文件時,它便會讓目標發生崩潰。一般來說,攻擊者會利用這種Zip炸彈來讓反病毒軟件崩潰,然后為傳統病毒的感染掃清障礙。
實際上,Zip炸彈并不會劫持程序的正常運行過程,Zip炸彈允許目標程序按照其原有的運行機制運行下去,但這個壓縮文件是攻擊者精心制作的,而反病毒軟件如果想要掃描這個壓縮文件的話,就需要對其進行解壓縮,但解壓縮文件將需要花費大量的時間、磁盤空間和內存,因此變造成了程序崩潰或假死。
這樣看來,我們就可以利用Zip炸彈來對付那些不斷重復的請求數據了。如果你有一個數據全部是0的大型文本文件的話,那么它的壓縮效果將是非常非常好的,但解壓起來可就不一樣了。你可以參考這個文件(42.zip),它可以將一個大小為4500000GB的文件壓縮成42字節。當你嘗試查看文檔內容時(即提取或解壓縮),它便會耗光你的磁盤空間和內存?! ?/p>
如何利用ZIp炸彈對付漏洞掃描工具?
不幸的是,Web瀏覽器并不知道ZIP壓縮文件是什么,但它們知道GZIP。
所以我們首先要使用數據“0”來創建一個大小為10GB的GZIP文件,你也可以進行多次壓縮,不過這里為了方便演示就不進行這種操作了。
接下來,創建我們的Zip炸彈并檢查其文件大?。?/p>
如上圖所示,我們生成的Zip炸彈大小為10MB,其實我們還可以把它壓縮得更小,但這個壓縮效率已經足夠我們進行演示了。
既然現在我們已經創建好了我們的Zip炸彈,接下來我們還得設置一個PHP腳本來將這個Zip炸彈發送給客戶端。
一切搞定!接下來,我們就可以使用下面給出的方法來進行簡單的防御了:
雖然上面給出的這個腳本不能用來防御那些高級攻擊者,但它足以對付那些只知道通過修改漏洞掃描工具的參數來進行惡意掃描的腳本小子了。
當這個腳本被調用之后會發生什么呢?
責任編輯:韓希宇
免責聲明:
中國電子銀行網發布的專欄、投稿以及征文相關文章,其文字、圖片、視頻均來源于作者投稿或轉載自相關作品方;如涉及未經許可使用作品的問題,請您優先聯系我們(聯系郵箱:cebnet@cfca.com.cn,電話:400-880-9888),我們會第一時間核實,謝謝配合。