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