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