譚子貴
【摘要】普通院校圖書館數(shù)字資源本地鏡像并發(fā)訪問(wèn)量較低,所以多數(shù)使用Tomcat來(lái)承擔(dān)應(yīng)用服務(wù)器。人才和技術(shù)的限制,會(huì)間接導(dǎo)致其成為學(xué)校網(wǎng)絡(luò)安全問(wèn)題的一個(gè)入口。因此,文章主要從安全配置入手,分析了Tomcat初始化安裝前后需要注意的一些安全細(xì)節(jié),并且羅列了2017年爆發(fā)的一些漏洞和相關(guān)解決方式。
【關(guān)鍵詞】Tomcat;圖書館;數(shù)字資源;服務(wù)器;web服務(wù)
一、引言
通過(guò)業(yè)務(wù)交流得知,受人才和技術(shù)的限制,多數(shù)普通院校圖書館數(shù)字資源本地鏡像的部署,一般交由第三方數(shù)字資源商輔助安裝和維護(hù)。然而筆者在對(duì)服務(wù)器管理的日常工作過(guò)程中,發(fā)現(xiàn)部分?jǐn)?shù)據(jù)商所部署的Tomcat應(yīng)用服務(wù)器經(jīng)常會(huì)忽略一些安全配置細(xì)節(jié),非常容易導(dǎo)致服務(wù)器受到來(lái)源于內(nèi)網(wǎng)的攻擊,或者成為外網(wǎng)的跳板,蔓延攻擊內(nèi)網(wǎng)中的其他服務(wù)器和網(wǎng)絡(luò)設(shè)備,這將間接對(duì)整個(gè)校園網(wǎng)絡(luò)和自身數(shù)據(jù)的安全造成不可忽略的影響。所以本文主要通過(guò)Tomcat應(yīng)用服務(wù)器在安全配置上的一些小細(xì)節(jié)以及近年來(lái)的一些安全漏洞問(wèn)題,探討圖書館數(shù)字資源web應(yīng)用服務(wù)器Tomcat的安全防范。
二、Tomcat安全配置應(yīng)注意的一些事項(xiàng)
端口掃描是黑客入侵最直接、最簡(jiǎn)便的方式。因?yàn)門omcat在Linux操作系統(tǒng)下1024以內(nèi)的端口非root用戶無(wú)法使用,而Tomcat提供的是HTTP服務(wù),需要一個(gè)與80有關(guān)的端口,所以Tomcat的默認(rèn)配置是選擇8080端口對(duì)外提供web服務(wù),同時(shí)還會(huì)占用8005、8009和8443端口。黑客可以利用專門的自動(dòng)掃描工具,例如Apache_Tomcat_Crack等,掃描出端口開(kāi)啟并且防火墻開(kāi)放的主機(jī),獲取服務(wù)器的IP地址,并且還可以通過(guò)掃描工具對(duì)admin賬戶預(yù)設(shè)密碼,破獲弱口令,再經(jīng)由默認(rèn)后臺(tái)地址登錄,認(rèn)證成功后,將可以看到站點(diǎn)的相關(guān)目錄等信息。而后臺(tái)管理所提供的開(kāi)啟、停止、重啟、卸除等功能,被黑客利用,會(huì)直接對(duì)我們的服務(wù)和數(shù)據(jù)造成一定的影響。更為嚴(yán)重的是,黑客會(huì)利用上傳功能,通過(guò)WAR file to deploy模塊,將Webshell打包成war文件上傳到web站點(diǎn)并運(yùn)行,從而進(jìn)一步利用Webshell上傳其他黑客輔助工具,開(kāi)啟服務(wù)器的遠(yuǎn)程桌面等。針對(duì)以上威脅,在做安全配置時(shí),筆者總結(jié)出了以下值得注意的細(xì)節(jié)。
(一)安全合理的初始化配置
普通院校圖書館用于發(fā)布數(shù)字資源的服務(wù)器,經(jīng)常以單臺(tái)對(duì)外服務(wù)多個(gè)系統(tǒng)項(xiàng)目,而且是通過(guò)Tomcat的虛擬機(jī)一起使用同一個(gè)實(shí)例來(lái)實(shí)現(xiàn)的。Tomcat虛擬主機(jī)配置的靈活性可以為部署web帶來(lái)很多便利,但筆者不建議使用,避免任何一個(gè)虛擬機(jī)中的應(yīng)用程序因共享內(nèi)存關(guān)系而可能相互影響。因此,最好以本館的需求來(lái)權(quán)衡服務(wù)器的開(kāi)銷與應(yīng)用程序的安全之間的輕重。選擇Tomcat的安裝版本也很重要,可以避免安裝一些已經(jīng)公布的漏洞補(bǔ)丁升級(jí),首先選出適合本館需求的大版本,在當(dāng)前的大版本中選擇較新的版本而不是最新的版本。
首次安裝完成后立即刪除webapps下面的所有代碼,注釋或刪除tomcat-users.xml文件里面的所有用戶權(quán)限。圖書館數(shù)字資源的安裝與維護(hù)一般由第三方商家來(lái)負(fù)責(zé),極少用到Tomcat提供的默認(rèn)管理頁(yè)面,因此我們應(yīng)該要求安裝人員在進(jìn)行初始化配置的時(shí)候,注意把webapps目錄下的文件全部刪除,同時(shí)也將conf/Catalina/localhost目錄下的host-manager.xml和manager.xml兩個(gè)配置文件刪除。在lib目錄下名稱為catalina.jar的包中,有一個(gè)ServerInfo.properties文件,為了避免黑客針對(duì)某些版本攻擊,我們可以通過(guò)修改該文件中的serverinfo字段來(lái)更改當(dāng)前的版本信息。
(二)端口與用戶設(shè)置
安裝人員要注意在啟動(dòng)Tomcat之前,對(duì)安裝目錄下的所有文件設(shè)置指定用戶,限制訪問(wèn)權(quán)限,不要使用root用戶來(lái)啟動(dòng)Tomcat,避免權(quán)限的繼承。圖書館技術(shù)管理員,可以通過(guò)修改置文件tomcat-users.xml,為管理用戶設(shè)置更加復(fù)雜的密碼。在對(duì)tomcat-users.xml文件操作前,一定要保證Tomcat處于關(guān)閉狀態(tài),設(shè)置好后再打開(kāi)。管理員可以在conf目錄下找到server.xml文件,修改初始安裝默認(rèn)占用的幾個(gè)端口號(hào)。
(三)應(yīng)用程序的安全防范
在默認(rèn)的情況下,Tomcat開(kāi)啟了對(duì)war包的自動(dòng)部署,為了防止惡意上傳的war自動(dòng)部署和繼承權(quán)限,可以將相應(yīng)的實(shí)例修改為:
(四)禁止顯示文件目錄和列表
當(dāng)用戶請(qǐng)求的文件夾不存在的時(shí)候,返回來(lái)的提示頁(yè)面會(huì)顯示相關(guān)的目錄列表信息,對(duì)于此項(xiàng)信息的裸露,同樣是一個(gè)較大的隱患入口。因此我們要確認(rèn)在Tomcat的設(shè)置中禁止目錄等信息,可以通過(guò)修改Tomcat/conf目錄下的web.xml文件,將原本
三、2017年爆發(fā)的部分漏洞以及防范方式
(一)高危漏洞
1.CVE-2017-12615:遠(yuǎn)程代碼執(zhí)行漏洞。影響范圍:Apache Tomcat 7.0.0-7.0.80。當(dāng)Tomcat運(yùn)行在Windows主機(jī)上,且啟用了HTTP PUT請(qǐng)求方法(例如,將readonly初始化參數(shù)由默認(rèn)值設(shè)置為false),攻擊者將有可能通過(guò)精心構(gòu)造的攻擊請(qǐng)求向服務(wù)器上傳包含任意代碼的JSP文件。之后,JSP文件中的代碼將能被服務(wù)器執(zhí)行。Tomcat 7.x版本內(nèi)web.xml配置文件內(nèi)默認(rèn)配置無(wú)readonly參數(shù),需要手工添加,默認(rèn)配置條件下不受此漏洞影響。
漏洞臨時(shí)修復(fù)方式:根據(jù)業(yè)務(wù)評(píng)估配置readonly值為True或注釋參數(shù),禁用PUT方法并重啟Tomcat,臨時(shí)規(guī)避安全風(fēng)險(xiǎn),但對(duì)于依賴PUT方法的應(yīng)用,可能導(dǎo)致相關(guān)業(yè)務(wù)失效,官方已經(jīng)發(fā)布Apache Tomcat 7.0.81版本修復(fù)了兩個(gè)漏洞,最終解決方式是盡快升級(jí)到相應(yīng)版本。
2.CVE-2017-12616:信息泄露漏洞。影響范圍:Apache Tomcat 7.0.0-7.0.79。當(dāng)Tomcat中使用了VirtualDirContext時(shí),攻擊者將能通過(guò)發(fā)送精心構(gòu)造的惡意請(qǐng)求,繞過(guò)設(shè)置的相關(guān)安全限制,或是獲取到由VirtualDirContext提供支持資源的JSP源代碼。Tomcat 7.x版本內(nèi)默認(rèn)配置無(wú)VirtualDirContext參數(shù),需要手工添加,默認(rèn)配置條件下不受此漏洞影響。
漏洞臨時(shí)修復(fù)方式:根據(jù)業(yè)務(wù)評(píng)估配置VirtualDirContext值為True或注釋參數(shù),禁用PUT方法并重啟Tomcat,臨時(shí)規(guī)避安全風(fēng)險(xiǎn),但對(duì)于依賴PUT方法的應(yīng)用,可能導(dǎo)致相關(guān)業(yè)務(wù)失效,官方已經(jīng)發(fā)布Apache Tomcat 7.0.81版本修復(fù)了兩個(gè)漏洞,最終解決方式是盡快升級(jí)到相應(yīng)版本。
3.CVE-2017-5664:安全限制繞過(guò)漏洞。影響范圍:Apache Tomcat(9.0.0.M1-9.0.0.M20,8.5.0-8.5.14,8.0.0.RC1-8.0.43,7.0.0-7.0.77)。攻擊者可以利用該漏洞構(gòu)造惡意請(qǐng)求會(huì)導(dǎo)致文件刪除,比如若DefaultServlet配置為允許寫,對(duì)于靜態(tài)錯(cuò)誤頁(yè)面,可能會(huì)替換或刪除自定義錯(cuò)誤頁(yè)面等,解決方式是升級(jí)到官方公布的相應(yīng)版本。
(二)低危漏洞
相對(duì)低危的漏洞,官方已經(jīng)全部發(fā)布相應(yīng)的補(bǔ)丁升級(jí),用戶可以通過(guò)官網(wǎng)進(jìn)行下載更新。進(jìn)行更新前需要對(duì)server.xml、catalina.sh、web.xml和tomcat-users.xml文件進(jìn)行備份處理,待部署完新版本之后用其覆蓋新的文件。
1.CVE-2017-5650:拒絕服務(wù)漏洞。Apache Tomcat(9.0.0.M1-9.0.0.M18,8.5.0-8.5.12)版本在處理大量HTTP/2請(qǐng)求時(shí)存在安全漏洞,可使攻擊者執(zhí)行拒絕服務(wù)攻擊。
2.CVE-2017-7674:緩存投毒漏洞。Apache Tomcat 9.0.0.M1-9.0.0.M21版本,在CORS過(guò)濾器實(shí)現(xiàn)中,未添加HTTP Vary標(biāo)頭,表明響應(yīng)根據(jù)來(lái)源變化,在實(shí)現(xiàn)上存在安全漏洞,可導(dǎo)致客戶端及服務(wù)器端緩存中毒。
3.CVE-2017-7675:目錄遍歷漏洞。Apache Tomcat 9.0.0.M1-9.0.0.M21、Apache Tomcat 8.5.0-8.5.15版本,在HTTP2實(shí)現(xiàn)中存在安全限制繞過(guò)漏洞,可使攻擊者通過(guò)構(gòu)造的URL,利用此漏洞,繞過(guò)安全限制。
四、結(jié)語(yǔ)
數(shù)字資源無(wú)論是商業(yè)化或非商業(yè)化、機(jī)構(gòu)或個(gè)人自建、網(wǎng)絡(luò)索引等,同印刷型文獻(xiàn)相比,其類型都更為豐富,存取和利用都更加便捷,成為現(xiàn)代圖書館館藏資源建設(shè)中的重要組成部分。而高校圖書館數(shù)字資源一般通過(guò)web服務(wù)來(lái)為用戶提供數(shù)據(jù)之間的交換。Tomcat是一個(gè)免費(fèi)的開(kāi)源輕量級(jí)應(yīng)用服務(wù)器,其技術(shù)和性能目前均受到使用者和開(kāi)發(fā)者的普遍認(rèn)可,但由其帶來(lái)的網(wǎng)絡(luò)安全問(wèn)題不可忽視。因筆者知識(shí)有限,在進(jìn)行安全配置和漏洞分析時(shí)難免有錯(cuò)漏現(xiàn)象,希望可以得到指正。
【參考文獻(xiàn)】
[1]怯肇乾.Tomcat應(yīng)用服務(wù)器高并發(fā)優(yōu)化處理[J].電腦編程技巧與維護(hù),2018(02):131-138.
[2]余煬,曲毅,孫亦樂(lè).基于Apache Tomcat的一站式Java應(yīng)用服務(wù)器解決方案[J].中國(guó)金融電腦,2018(01):59-63.
[3]梁龍.基于Tomcat的改造實(shí)現(xiàn)關(guān)閉上傳war包功能[J].信息技術(shù)與信息化,2016(06):51-52,58.
[4]馬旭.探究Tomcat虛擬路徑功能應(yīng)用[J].中國(guó)新通信,2016,18(02):67.
[5]王雪.基于Linux架構(gòu)的Tomcat的安裝部署[J].信息與電腦(理論版),2015(20):26-27.
[6]吳小青.JSP+TOMCAT+MYSQL開(kāi)源軟件整合配置初探——以揭陽(yáng)職業(yè)技術(shù)學(xué)院圖書館網(wǎng)站服務(wù)器配置為例[J].齊齊哈爾大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,28(04):66-69.