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