李志江 李明柱 楊義生 胡正名
正是由于WWW的普及才使得Internet能夠飛速發(fā)展,Internet的飛速發(fā)展又使得諸如網(wǎng)上拍賣、網(wǎng)上商場、網(wǎng)上炒股、信息管理、數(shù)據(jù)庫操作等基于WWW的應(yīng)用層出不窮。與此同時,諸如Web頁面被非法篡改、信用卡號被盜、Web服務(wù)器上機(jī)密信息泄漏、客戶端被惡意頁面攻擊等WWW安全問題也越來越受到人們的關(guān)注。在某種程度上,安全問題已經(jīng)限制了某些WWW應(yīng)用。本文分析了Web應(yīng)用面臨的各種安全威脅,根據(jù)容易遭受的的各種攻擊方法,給出了相應(yīng)的安全對策。本文重點討論的是Web應(yīng)用所特有的安全威脅,諸如病毒防治、操作系統(tǒng)漏洞攻擊、底層網(wǎng)絡(luò)協(xié)議漏洞攻擊,都不在本文討論范圍之內(nèi)。
1 WWW應(yīng)用面臨的安全威脅
1.1客戶端與服務(wù)器之間傳輸?shù)臄?shù)據(jù)被非法截獲竊取
通常WWW服務(wù)器與瀏覽器之間的通信是以明文傳輸?shù)?,?shù)據(jù)流經(jīng)過的任何節(jié)點如WWW代理服務(wù)器、ISP都可以看到傳輸?shù)膬?nèi)容。沒有理由相信他們是可靠的,因而對于如口令、密鑰及其他敏感信息在網(wǎng)絡(luò)中傳輸時一定要利用密碼技術(shù)以密文形式傳輸以防泄密。目前,大多數(shù)WWW服務(wù)器與瀏覽器都支持RC2、RC4、DES、3DES等密碼算法。
1.2 服務(wù)器端的安全問題
WWW服務(wù)器端的安全問題向來是管理員與軟件提供商頭痛的問題,這些問題一方面是由于服務(wù)器端操作系統(tǒng)的安全漏洞造成的,而另一方面是由于WWW服務(wù)軟件本身存在問題,系統(tǒng)管理員所能做的就是積極關(guān)注所使用軟件的相關(guān)漏洞報告,先于黑客了解到有關(guān)安全漏洞并采取補救措施,這樣就能夠有效地防止黑客利用軟件漏洞進(jìn)行攻擊。服務(wù)器端的錯誤配置是WWW服務(wù)器端遭受安全攻擊的又一原因。有時并不是因為管理員的業(yè)務(wù)水平低,造成錯誤配置。錯誤配置的原因是因為WWW服務(wù)器軟件的維護(hù)配置文檔太復(fù)雜太龐大,甚至凌亂,有時即使是WWW服務(wù)軟件提供商也不能提供一種合理的安全配置。
WWW服務(wù)器端安全威脅的另一來源就是服務(wù)器端的CGI(公共網(wǎng)關(guān)接口)程序的漏洞。CGI給WWW頁面帶來了活力的同時,也成為WWW服務(wù)器的一個潛在危險。幾乎所有的CGI漏洞均來自于用戶的交互,別有用心的客戶端可以精心設(shè)計自己的數(shù)據(jù)錄入方式、數(shù)據(jù)內(nèi)容,然后調(diào)用服務(wù)器端的CGI程序進(jìn)行惡意攻擊。
1.3 客戶端安全問題
(1)客戶端隨意從WWW站點下載應(yīng)用程序在本地運行
在WWW站點上有許多免費應(yīng)用程序可供下載,免費應(yīng)用程序是WWW站點吸引客戶瀏覽的一個重要手段。通過從WWW站點下載免費的各種應(yīng)用程序,客戶端既可以節(jié)省資金也可以提高工作效率,這正是WWW站點提供免費應(yīng)用程序的初衷。然而,在這種高效與經(jīng)濟(jì)誘惑的背后卻可能隱藏著災(zāi)難與殺機(jī)。一般來說,WWW站點提供的免費應(yīng)用程序特別是一些小的工具程序都沒有程序發(fā)布者的真實信息,很難保障程序中沒有病毒,諸如木馬或其它破壞客戶端系統(tǒng)的惡意代碼。
如果客戶端主機(jī)下載并執(zhí)行了含有惡意代碼的應(yīng)用程序,其后果不堪設(shè)想。不下載使用來源不明的應(yīng)用程序是保證WWW客戶端安全的基本要求,然而有些應(yīng)用程序是需要通過從WWW站點下載執(zhí)行的,如一些應(yīng)用程序的升級、補丁,以及瀏覽器的外部閱讀器、插件等。如何保證這類程序沒有被非法替換或篡改,讓下載者能夠確認(rèn)程序來源的真實性,確認(rèn)程序內(nèi)容的完整性,是代碼簽名技術(shù)主要解決的問題。
代碼簽名技術(shù)的主要思想是讓軟件的發(fā)布者在認(rèn)證機(jī)構(gòu)注冊,由認(rèn)證機(jī)構(gòu)為其簽發(fā)公鑰證書。當(dāng)軟件發(fā)布者開發(fā)好新的應(yīng)用程序準(zhǔn)備在WWW站點上供他人下載時,它使用自己的私鑰對應(yīng)用程序進(jìn)行數(shù)字簽名。然后將自己的公鑰證書、自己對程序的數(shù)字簽名,與應(yīng)用程序一同公布在WWW站點,供使用者下載。下載者下載之后,通過使用公鑰證書中的公鑰驗證數(shù)字簽名的有效性,如果驗證通過則可以確信軟件發(fā)布者的真實身份。
目前,代碼簽名技術(shù)并未在Internet中得到廣泛應(yīng)用,但是隨著Internet安全問題特別是WWW客戶端安全問題的日益突出,代碼簽名技術(shù)最終將會得到業(yè)界的認(rèn)可。
有人提出,讓下載的身份不明的應(yīng)用程序的執(zhí)行權(quán)限限定在特定范圍,限制可疑程序的運行權(quán)限。這種想法仍舊處于探討階段,目前沒有哪一個操作系統(tǒng)能夠滿足這一需求。
(2)JavaScript與Java Applet的威脅
JavaScript是現(xiàn)在流行的腳本語言,其代碼駐留在HTML文件中。Netscape Navigator 和Microsoft Explore 都支持JavaScript。JavaScript代碼常常用于操縱瀏覽器,利用JavaScript可以生成一個新的窗口,填寫表單中的數(shù)據(jù),跳轉(zhuǎn)到另一個URL地址,本地處理圖像,改變HTML的內(nèi)容等。如通過在HTML文件中嵌入JavaScript,可以控制瀏覽器的可視原件是否顯示,也可以控制瀏覽器狀態(tài)欄中顯示的信息。從理論上講,JavaScript是安全的,因為JavaScript沒有訪問客戶端文件系統(tǒng)的方法,同時也沒有到其他計算機(jī)網(wǎng)絡(luò)系統(tǒng)的連接方法。但是利用JavaScript對客戶端攻擊的成功攻擊案例已經(jīng)很多。最簡單的攻擊就是使用JavaScript來耗盡客戶端資源使客戶端癱瘓不得不重新啟動,這種攻擊沒有什么意義只是惡作劇而已。但是有些惡意頁面利用JavaScript可以收集客戶端信息,偽造虛假頁面讓客戶端上當(dāng)。
在HTML文件中嵌入Java Applet可以使WWW服務(wù)器發(fā)揮更強大的功能,Java Applet 運行在瀏覽器中的Java虛擬機(jī)(JVM)中。JVM采用“沙盒技術(shù)”限制Java Applet的諸如系統(tǒng)調(diào)用等危險行為。這大大提高了WWW客戶端的安全性,然而這并不意味著Java Applet 并不存在安全威脅。這主要表現(xiàn)為JVM在實現(xiàn)上的安全漏洞給別有用心的人提供了可乘之機(jī)。F.De Paoli等人通過在HTML文件中嵌入Java Applet已經(jīng)成功地實現(xiàn)了諸如收集客戶端用戶個人信息,截獲用戶輸入表單中的數(shù)據(jù)等對WWW客戶端的攻擊。D.Martin等人發(fā)現(xiàn)利用Java Applet可以繞過防火墻的某些限制進(jìn)行連接。
有關(guān)JavaScript和Java Applet 對WWW的客戶端進(jìn)行攻擊的例子越來越多,然而有效防止這種攻擊的方法卻很少?,F(xiàn)今客戶端所能做的就是當(dāng)對所瀏覽的站點表示懷疑時,通過設(shè)置瀏覽器禁用JavaScript與Java Applet來防止可能的威脅。
2 加強WWW安全的相關(guān)措施
加強WWW安全的相關(guān)措施主要有:
(1)提高系統(tǒng)管理員安全意識與反黑水平,盡量防止由于錯誤配置而給黑客留下可乘之機(jī)。當(dāng)前有許多黑客論壇。黑客之間交流經(jīng)驗、切磋技藝真可謂紅紅火火,可見黑客的情緒是多么的高漲。但關(guān)于如何防御的論壇卻不怎么紅火,可見多數(shù)管理員并不是積極主動地提高自己的反黑水平。系統(tǒng)管理員必須系統(tǒng)地理解自己所管理的WWW平臺的各項技術(shù)特征與安全問題。
(2)WWW軟件提供商要給出建議性的安全配置示范。
(3)軟件提供商對出現(xiàn)的安全漏洞要盡快提供解決辦法或給出補丁程序。
(4)WWW服務(wù)器端所使用CGI程序要經(jīng)過嚴(yán)格檢查,借鑒已有的CGI安全問題,保證CGI程序的健壯性。
(5)用于重要業(yè)務(wù)的瀏覽器端絕對不要下載、運行來源不明的應(yīng)用程序,以防治系統(tǒng)被植入木馬或者病毒。
(6)利用現(xiàn)有安全產(chǎn)品,提高安全系數(shù)。目前的安全工具有防火墻產(chǎn)品、反病毒產(chǎn)品、入侵檢測產(chǎn)品、漏洞檢測產(chǎn)品、木馬檢測產(chǎn)品等等。
3 結(jié)束語
目前關(guān)于WWW安全的研究主要集中在反病毒、防火墻、入侵檢測、系統(tǒng)漏洞檢測、木馬檢測等領(lǐng)域,而且根據(jù)研究成果已經(jīng)有了比較成熟的產(chǎn)品。而對于CGI程序安全、腳本語言安全、Java Applet安全、插件安全的研究仍處于危害性的分析實驗階段,如果能夠?qū)ふ页鲇泻Υa的特征建立特征庫,根據(jù)特征庫來檢查代碼的安全性將會使CGI、腳本語言、Java Applet及插件的應(yīng)用具有安全保證。
現(xiàn)有的密碼技術(shù)、認(rèn)證技術(shù)、接入控制技術(shù),從理論上講完全可以保證通信安全。然而WWW安全問題日益嚴(yán)重,這主要是由于WWW安全涉及到服務(wù)器端安全、瀏覽器端安全及通信安全、主機(jī)安全及底層通信協(xié)議的安全。協(xié)調(diào)各個模塊之間的關(guān)系,加強各個模塊自身的安全性應(yīng)作為今后WWW安全研究的出發(fā)點?!?/p>
(收稿日期:2001-06-19)
作者簡介
李志江,北京郵電大學(xué)密碼學(xué)在讀博士生。主要從事密碼學(xué)、網(wǎng)絡(luò)安全、電子商務(wù)等方面的研究與開發(fā)工作。
李明柱,北京郵電大學(xué)密碼學(xué)在讀博士生。主要研究方向為網(wǎng)絡(luò)信息安全、電子商務(wù)安全等。
楊義先,北京郵電大學(xué)信息安全中心主任,教授,博士生導(dǎo)師,長江學(xué)者特聘教授。研究方向為編碼密碼學(xué)、信號處理、信息與網(wǎng)絡(luò)安全。
胡正名,北京郵電大學(xué)信息工程學(xué)院教授,博士生導(dǎo)師。研究方向為編碼理論、密碼學(xué)、信號處理、應(yīng)用數(shù)學(xué)等領(lǐng)域。