Apache Struts又雙叒叕爆文件上傳漏洞了。
自Apache Struts框架發(fā)布以來,就存在多個版本的漏洞,其中一些漏洞涉及到文件上傳功能。這些漏洞可能允許攻擊者通過構(gòu)造特定的請求來繞過安全限制,從而上傳惡意文件。雖然每次官方都發(fā)布補丁進行修復(fù),但是問題一直沒有根除過,時不時的又爆出新的漏洞。
那么有沒有辦法杜絕Apache Struts文件上傳漏洞呢?
依靠Apache Struts自身肯定是不行的,畢竟官方也不知道什么時候爆出新的漏洞。
所謂文件上傳漏洞,是指繞過系統(tǒng)安全限制,非法上傳惡意文件。哪如果讓黑客不能上傳惡意文件,或是讓上傳的惡意文件不能被執(zhí)行,不就解決問題了嗎?
思路有了,接下來就是如何實現(xiàn)攔截功能。要阻止黑客上傳惡意文件,可以使用殺毒軟件和防篡改功能來解決。殺毒軟件不說了,沒有一家殺毒公司敢保證100%的攔截效果,只能作為輔助手段。那就只剩下防篡改功能了。
但新的問題又來了,惡意文件有兩種,一種是破壞操作系統(tǒng)的可執(zhí)行文件,一種是破壞網(wǎng)站的網(wǎng)頁木馬。對于破壞操作系統(tǒng)的可執(zhí)行文件,總不至于對全操作系統(tǒng)做防篡改保護吧,這樣操作系統(tǒng)將立刻藍屏。幸運的是,可以使用《護衛(wèi)神.防入侵系統(tǒng)》的“進程防護”來解決這個問題!斑M程防護”模塊用于對軟件做防護,可以限制軟件的網(wǎng)絡(luò)通信范圍和文件訪問范圍。設(shè)置以后,軟件只能按照預(yù)定規(guī)則訪問文件和網(wǎng)絡(luò),沒有任何辦法越權(quán),輕松搞定非法提權(quán)。
Apache Struts一般和Tomcat集成使用,接下來我們以Tomcat為防護對象,通過《護衛(wèi)神.防入侵系統(tǒng)》,手把手演示如何一勞永逸的解決Apache Struts文件上傳漏洞。
防護思路如下:
1、 設(shè)置Tomcat對jsp文件和可執(zhí)行文件只有讀取權(quán)限(阻止上傳非法文件)
2、 設(shè)置Tomcat只對網(wǎng)站目錄和日志目錄有寫權(quán)限(保障網(wǎng)站正常訪問)
3、 設(shè)置Tomcat不能執(zhí)行任何文件(禁止執(zhí)行高危命令,例如cmd.exe、net.exe)
注意:雖然本文以Windows為例,但對Linux系統(tǒng)也適用,只是設(shè)置方法大同小異,詳情請咨詢護衛(wèi)神客服!
第一步:添加Tomcat防護對象
(圖一:添加Tomcat防護)
第二步:在“文件訪問”選項卡,添加如下文件訪問規(guī)則
溫馨提示:護衛(wèi)神.防入侵系統(tǒng)按優(yōu)化級順序逐條匹配訪問路徑規(guī)則,匹配到禁止操作就跳出。優(yōu)先級數(shù)字越小,越優(yōu)先執(zhí)行!
優(yōu)先級 | 訪問路徑 | 操作限制 |
1 | *\conhost.exe | 禁止新建、禁止改名、禁止修改、禁止刪除 |
1 | *\werfault.exe | 禁止新建、禁止改名、禁止修改、禁止刪除 |
10 | *.jsp | 禁止執(zhí)行、禁止新建、禁止改名、禁止修改、禁止刪除 |
10 | *.exe | 禁止執(zhí)行、禁止新建、禁止改名、禁止修改、禁止刪除 |
20 | d:\wwwroot\* | 禁止執(zhí)行 |
20 | c:\hws.com\hwsjspmaster\tomcat9\* | 禁止執(zhí)行 |
20 | c:\windows\temp\* | 禁止執(zhí)行 |
20 | c:\windows\syswow64\config\systemprofile\* | 禁止執(zhí)行 |
20 | c:\programdata\microsoft\* | 禁止執(zhí)行 |
99 | * | 禁止執(zhí)行、禁止新建、禁止改名、禁止修改、禁止刪除 |
添加結(jié)果如下圖:
(圖二:Tomcat進程防護規(guī)則)
文件訪問規(guī)則解釋:
優(yōu)先級為“1”的規(guī)則:
最先執(zhí)行的規(guī)則,這2個是Windows啟動Tomcat產(chǎn)生的配套進程。
只允許讀取和執(zhí)行,防止黑客創(chuàng)建同名文件繞過防護。
優(yōu)先級為“10”的規(guī)則:
設(shè)置禁止寫操作的文件類型。.jsp是網(wǎng)頁木馬,.exe是可執(zhí)行文件。同樣還可以添加其他類型,例如:.do、.dll、.vbs等等。
只允許讀取,防止黑客上傳此類惡意文件。
優(yōu)先級為“20”的規(guī)則:
設(shè)置允許寫操作的目錄。一般填寫網(wǎng)站目錄、Tomcat安裝目錄、系統(tǒng)臨時目錄。
允許讀取和寫操作,禁止執(zhí)行。
優(yōu)先級為“99”的規(guī)則:
設(shè)置其他文件的訪問規(guī)則。填寫“*”,表示所有文件。
只允許讀取,禁止黑客寫操作任何文件,或執(zhí)行高危命令(cmd.exe、net.exe)。
第三步:檢查攔截效果
設(shè)置好防護規(guī)則后,黑客再想通過Apache Struts上傳網(wǎng)頁木馬、惡意病毒,或執(zhí)行高危命令(cmd.exe、net.exe)就成為不可能了,都會被護衛(wèi)神攔截,輕松搞定Apache Struts文件上傳漏洞。即使后期再次爆出此種漏洞,也不用擔(dān)心,護衛(wèi)神會一如既往的守護服務(wù)器安全!攔截效果如下圖:
(圖七:攔截非法執(zhí)行cmd.exe提權(quán))
(圖八:攔截上傳可執(zhí)行文件)
(圖八:攔截上傳JSP文件)