文件上傳漏洞防御
首先,上傳的文件能夠被Web容器解釋執(zhí)行。所以文件上傳后所在的目錄要是Web容器所覆蓋到的路徑。
其次,用戶能夠從Web上訪問(wèn)這個(gè)文件。如果文件上傳了,但用戶無(wú)法通過(guò)Web訪問(wèn),或者無(wú)法得到Web容器解釋這個(gè)腳本,那么也不能稱之為漏洞。
最后,用戶上傳的文件若被安全檢查、格式化、圖片壓縮等功能改變了內(nèi)容,則也可能導(dǎo)致攻擊不成功。
防范文件上傳漏洞常見(jiàn)的幾種方法。
1、文件上傳的目錄設(shè)置為不可執(zhí)行
只要web容器無(wú)法解析該目錄下面的文件,即使攻擊者上傳了腳本文件,服務(wù)器本身也不會(huì)受到影響,因此這一點(diǎn)至關(guān)重要。
2、判斷文件類型
在判斷文件類型時(shí),可以結(jié)合使用MIME Type、后綴檢查等方式。在文件類型檢查中,強(qiáng)烈推薦白名單方式,黑名單的方式已經(jīng)無(wú)數(shù)次被證明是不可靠的。此外,對(duì)于圖片的處理,可以使用壓縮函數(shù)或者resize函數(shù),在處理圖片的同時(shí)破壞圖片中可能包含的HTML代碼。
3、使用隨機(jī)數(shù)改寫(xiě)文件名和文件路徑
文件上傳如果要執(zhí)行代碼,則需要用戶能夠訪問(wèn)到這個(gè)文件。在某些環(huán)境中,用戶能上傳,但不能訪問(wèn)。如果應(yīng)用了隨機(jī)數(shù)改寫(xiě)了文件名和路徑,將極大地增加攻擊的成本。再來(lái)就是像shell.php.rar.rar和crossdomain.xml這種文件,都將因?yàn)橹孛鵁o(wú)法攻擊。
4、單獨(dú)設(shè)置文件服務(wù)器的域名
由于瀏覽器同源策略的關(guān)系,一系列客戶端攻擊將失效,比如上傳crossdomain.xml、上傳包含Javascript的XSS利用等問(wèn)題將得到解決。
系統(tǒng)開(kāi)發(fā)階段的防御
系統(tǒng)開(kāi)發(fā)人員應(yīng)有較強(qiáng)的安全意識(shí),尤其是采用PHP語(yǔ)言開(kāi)發(fā)系統(tǒng)。在系統(tǒng)開(kāi)發(fā)階段應(yīng)充分考慮系統(tǒng)的安全性。對(duì)文件上傳漏洞來(lái)說(shuō),最好能在客戶端和服務(wù)器端對(duì)用戶上傳的文件名和文件路徑等項(xiàng)目分別進(jìn)行嚴(yán)格的檢查?蛻舳说臋z查雖然對(duì)技術(shù)較好的攻擊者來(lái)說(shuō)可以借助工具繞過(guò),但是這也可以阻擋一些基本的試探。服務(wù)器端的檢查最好使用白名單過(guò)濾的方法,這樣能防止大小寫(xiě)等方式的繞過(guò),同時(shí)還需對(duì)%00截?cái)喾M(jìn)行檢測(cè),對(duì)HTTP包頭的content-type也和上傳文件的大小也需要進(jìn)行檢查。
系統(tǒng)運(yùn)行階段的防御
系統(tǒng)上線后運(yùn)維人員應(yīng)有較強(qiáng)的安全意思,積極使用多個(gè)安全檢測(cè)工具對(duì)系統(tǒng)進(jìn)行安全掃描,及時(shí)發(fā)現(xiàn)潛在漏洞并修復(fù)。定時(shí)查看系統(tǒng)日志,web服務(wù)器日志以發(fā)現(xiàn)入侵痕跡。定時(shí)關(guān)注系統(tǒng)所使用到的第三方插件的更新情況,如有新版本發(fā)布建議及時(shí)更新,如果第三方插件被爆有安全漏洞更應(yīng)立即進(jìn)行修補(bǔ)。對(duì)于整個(gè)網(wǎng)站都是使用的開(kāi)源代碼或者使用網(wǎng)上的框架搭建的網(wǎng)站來(lái)說(shuō),尤其要注意漏洞的自查和軟件版本及補(bǔ)丁的更新,上傳功能非必選可以直接刪除。除對(duì)系統(tǒng)自生的維護(hù)外,服務(wù)器應(yīng)進(jìn)行合理配置,非必選一般的目錄都應(yīng)去掉執(zhí)行權(quán)限,上傳目錄可配置為只讀。
安全設(shè)備的防御
文件上傳攻擊的本質(zhì)就是將惡意文件或者腳本上傳到服務(wù)器,專業(yè)的安全設(shè)備防御此類漏洞主要是通過(guò)對(duì)漏洞的上傳利用行為和惡意文件的上傳過(guò)程進(jìn)行檢測(cè)。惡意文件千變?nèi)f化,隱藏手法也不斷推陳出新,對(duì)普通的系統(tǒng)管理員來(lái)說(shuō)可以通過(guò)部署安全設(shè)備來(lái)幫助防御。目前華三通信公司發(fā)布的SecPath IPS系列產(chǎn)品經(jīng)過(guò)長(zhǎng)期的積累,不但可以基于行為對(duì)網(wǎng)絡(luò)中大量文件上傳漏洞的利用進(jìn)行檢測(cè),同時(shí)還能基于內(nèi)容對(duì)惡意文件進(jìn)行識(shí)別。