摘要:隨著Internet的飛速發展,基于Web的系統也得到了飛速發展,但是隨之而來的網絡安全問題不得不引起Web程序開發者和使用者的重視。本文針對Web系統的網絡安全問題進行了綜合論述,闡述了存在的網絡安全隱患,并分析了當前主要的網絡安全技術。
關鍵詞:bug;拒絕服務攻擊;密碼學;防火墻
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)05-10853-03
1 引言
對于應用程序開發商和用戶來說,如果要對基于Web的系統充滿信息,就必須對系統的安全有充分的信任。但是,百分之百安全的Web系統是不存在的!由于Web系統包含的變量如此之多,以至于無法完全避免所有的安全隱患,這一點正如軟件本身的bug。所以“足夠好”一直是我們追求的目標,在Web系統的安全工作方面也是如此。作為狹義的理解,“足夠好”是指對安全方案的投入要遠遠小于因安全遭到破壞而蒙受的損失。同時,理想的安全方案應該是通過加大侵入系統的難度和時間,從而使侵入系統(即使是取得了成功)所取得的回報顯得毫無價值,并最終使進行持續性侵入活動的侵入者望而卻步。
2 安全隱患
在Web或網絡環境下,黑客通過使用各種技術來發掘存在于每個系統組件中的各種安全漏洞,從而達到攻擊Web系統的目的。在這些技術中,一部分用來允許非法用戶獲得Web系統資源訪問權限,或者禁止合法用戶訪問資源;另一部分用來制造麻煩,降低服務質量,或者破壞數據。
2.1 軟件bug
許多安全隱患都是由程序(如Web瀏覽器和Web服務器程序)中的bug造成的。由于這些bug在測試階段沒有被檢測到,或者是由于軟件修復所帶來的負面影響,安全漏洞隨之產生。緩沖區溢出是我們常常提及的一種bug,該bug允許在客戶機上運行惡意代碼。例如,在瀏覽器上輸入一個URL,如果該URL的長度遠遠超出為URL分配的緩沖區的容量,并且瀏覽器不具有用于確認輸入URL長度的錯誤檢測代碼,那么這是就會引起緩沖區溢出錯誤。老練的黑客可以狡猾得通過輸入一個冗長的、帶有可執行代碼的URL來利用這種bug,這些可執行代碼可能會導致瀏覽器崩潰,或者改變瀏覽器的安全設置,更為嚴重的是,還可能會破壞用戶數據。
Java腳本語言的安全漏洞通常會危及用戶隱私的安全或者導致用戶數據的泄漏。例如,當導航到不可信站點的Web頁面中的某個鏈接時,一段有害腳本可能被附加于用戶向Web服務器提交的請求當中,如一個URL或數據查詢請求。當Web服務器響應這個請求時,該有害腳本就會同時附帶上去。此時,該有害腳本已經存在于用戶的瀏覽器上。用戶的私人信息(如用戶的ID或密碼)可能會被泄漏,然后發送到某個用戶并不知道的位置(Internet上的某臺服務器)。
2.2 病毒和蠕蟲
病毒是通過計算機之間的交互來進行傳播的,最常見的傳播途徑是發送電子郵件和電子郵件的附件、移動文件或下載文件。當執行一個感染了病毒的程序或者病毒時,病毒代碼就會被載入并運行。通常可以將病毒程序的主要目的分為兩類:(1)實現病毒代碼本身的設計目的,比如破壞硬盤數據;(2)通過附著在其他程序上來影響其它程序,以達到傳播自己的目的。蠕蟲與病毒相類似,二者的不同之處在于可以通過向別人的機器發送自己的副本(比如通過電子郵件)來進行自我傳播。
2.3 拒絕服務攻擊(DOS)
拒絕服務攻擊是指利用大量的虛假請求或電子郵件信息來攻擊服務器,致使服務器無法正常處理提交的合法請求。實施這種攻擊,通常需要黑客先將軟件代理程序秘密地放置在與目標服務器無關的服務器上,然后通過主命令激活這些代理程序并識別目標服務器,因此,包含代理程序的服務器的全部帶寬容量就被釋放到了目標服務器上。由于拒絕服務攻擊代理程序是通過比較隱秘的方式進行放置的,因此很難被發現。發生在2000年的“3天攻擊”事件,在這次事件中,一些Internet上的大型站點如Yahoo!、buy.com等由于受到一連串拒絕服務攻擊的重創,有的被迫臨時關閉。許多專家推測,發動這次攻擊的目的就是要證明許多電子商務站點還缺乏強有力的安全措施。
2.4 物理攻擊
低級入侵者的攻擊方式通常是通過到處翻閱垃圾桶來搜索私人信息,如用戶ID和密碼列表;進入機房盜取計算機,竊取計算機硬盤上的數據;或者干脆趁機主不在、坐在已登錄的計算機前對資源進行非法竊取。
3 Web安全技術基礎
基于Web的系統所采用的最常見的安全技術有加密技術、身份驗證、數字證書、防火墻和授權技術。
3.1 密碼學
密碼學是一門對信息進行加密的科學,可以使除了合法的接受方之外,其他人無法閱讀信息。公鑰和私鑰技術是通過使用兩類密鑰來實現雙方信息的安全傳送,這兩類密鑰是用來解碼加密信息的字符串。顧名思義,公鑰是公開發布的,而私鑰卻拒絕公開訪問。例如,為了讓B方給自己傳送某種私人信息,A方可能需要先向B發送一個公鑰。然后,B方可以利用A方發過來的公鑰對信息進行加密,再發回給A方,如圖1所示。從理論上講,截獲該信息的人是不能破譯信息的,因為他們沒有掌握A方的私鑰。

圖1 公鑰和私鑰技術
數字證書是密碼技術的一種具體形式,它將證書所有者的身份與用于加/解密的公鑰和私鑰一一對應。它還可以用來驗證可疑的發送方和接收方的身份。
數字證書至少應包含的信息有:所有者公鑰、所有者姓名、證書有效期、證書序列號、頒發證書的機構名稱、發證機構的數字簽名。數字證書可以從證書頒發機構處獲得,例如VeriSign(www.verisign.com)。現有的數字證書類型有:站點證書、發行人證書以及個人證書。證書頒發機構應該提供的功能有:保證信息傳送安全的技術、硬件基礎設施,如安全設施、IS以及客戶支持人員、監控用戶活動和處理糾紛的管理體系結構。
安全的多用途Internet郵件擴展(Secure Multipurpose Internet Mail Extensions,S/MIME)使用的是RSA加密機制,該方法支持在Internet上發送秘密的電子郵件信息。Microsoft和Netscape的Web瀏覽器的都支持S/MIME。
3.2 安全協議
幾種普遍支持的安全協議有:工作于會話層的安全套接字層(SSL);工作于應用層的增強型安全超文本傳輸協議(S-HTTP);工作于網絡層或IP層的IP安全協議(IPSec)。IPSec協議通常是在路由器和交換機中實現的。安全套接字層是最受商用Web瀏覽器和服務器支持的一種安全協議。SSL協議協議提供如下的功能:使用加密技術實現客戶/服務器的秘密通信;通過驗證交換信息中的內容,為客戶/服務器通信進行數據集成,確保數據在傳輸過程中不被篡改或增刪;通過數字證書實現客戶/服務器認證。

圖2 安全套接字(SSL)協議
與SSL相似的其他安全協議有傳輸層安全協議(TLS)和微軟秘密通信技術(PCT)。SSL安全協議支持是一個雙端操作,即需要分別配置客戶端和服務器端:必須得到證書頒發機構頒發的、帶有公鑰和私鑰的證書,并且將其安裝在服務器端;Web服務器必須支持諸如SSL或PCT之類的安全協議;客戶端也必須能夠支持諸如SSL或PCT之類的協議;必須在HTML頁面中對HTTP進行正確編碼,以實現安全通信。
3.3 防火墻
防火墻是隔離私有網絡和Internet的屏障。它用來防止非法用戶訪問私人信息、利用網絡資源以及破壞系統硬件,但允許合法用戶訪問自己所需的資源。防火墻技術是對軟、硬件資源的綜合使用,即利用路由器、服務器和軟件來隔離內部網絡和Internet。防火墻可以分為兩種類型:包過濾防火墻和基于代理的防火墻。包過濾防火墻通常在路由器中實現,提供了IP級的基本網絡安全特性。它通過配置路由器表格來篩選數據包,路由器通過檢查數據包的頭文件信息來判斷數據包的來源、數據包的目的地以及傳送數據所使用的協議,然后根據這些信息來阻止某些數據包的傳輸。與包過濾相比,基于代理的服務器是一項更為安全的防火墻技術。代理服務器是一種運行在防火墻周邊主機上的軟件,由于代理服務器位于周邊的網絡上,所以它并不是構成網絡本體的組成部分。代理服務器用來實現私有網絡與Internet的唯一連接。由于只有代理服務器與Internet進行交互,因此其安全性比較容易維護。它還可用于記錄私有網絡和Internet之間的通信量。
路由器可以與代理服務器一起使用,以增加額外的網絡保護環節,一旦代理服務器失敗,路由器可以代替它進行工作。
DMZ(demilitarized zone,非軍事緩沖區)是位于公司私有網絡和外部公關網絡之間的一個小型網絡或者主機。它防止外部用戶直接訪問公司網絡的任何服務器或主機。通常DMZ主機首先接收私有網絡內部用戶要求訪問Internet上的Web站點或其他數據的請求,然后在Internet上為這些請求創建會話。但是,DMZ主機并不能將會話引回到私有網絡中。對于Internet上的外部用戶來說,他們只能訪問DMZ主機或者內部網絡。一般而言,DMZ主機還包括公司的Web服務器以及FTP服務器,所以它內部的數據可以被外界共享。但是,DMZ禁止訪問私有網絡內的主機,因為它不能啟動任何內部連接。如果DMZ網絡的安全受到了威脅,那么服務器上數據的安全就很難保證了。通過這樣一個DMZ區域,更加有效地保護了內部網絡,因為這種網絡部署,比起一般的防火墻方案,對攻擊者來說又多了一道關卡。
4 結束語
本文主要概括了Web系統潛在的安全隱患,以及當前的主要網絡安全技術。但由于影響Web服務的因素很多,隨著Web技術的飛速發展,Web系統背后還存在很多的隱患。在當前網絡環境下,想要使一個Web系統完全免受攻擊是不可能的,我們所能夠做到的就是盡可能的使系統堅固,將攻擊的可能性降到最低。
參考文獻:
[1](美)Hung Q. Nguyen,著. 馮學民,等,譯. Web應用測試[M]. 北京:電子工業出版社, 2003.
[2]布拉格. 網絡安全完全手冊[M]. 北京:電子工業出版社, 2005,10.
[3]楊波. 網絡安全理論與應用[M]. 北京:電子工業出版社, 2003.
[4]姚小蘭. 網絡安全管理與技術防護[M]. 北京:北京理工大學出版社, 2002.