張正東

由于B/S架構的兼容性和開放性,以及Web訪問對用戶端的低成本需求,Web應用系統被大量部署和采用,因此,Web應用系統安全隱患的識別、檢測與防范十分重要,需要從技術層面進行分析,并結合運維實踐,提出安全技術措施。
一、Web訪問機理概述
Web在網頁設計中稱為網頁,表現為三種形式,即超文本(Hypertext)、超媒體(Hypermedia)、超文本傳輸協議(HTTP)等。用戶的Web訪問具有不確定性,其瀏覽順序和內容完全由用戶自己決定,用戶通過填寫FORM向服務器提交獲得動態信息的請求、服務器根據用戶請求返回結果信息。
用戶在瀏覽器上輸入URL(Uniform Resource Locator統一資源定位符),域名系統進行解析后確定IP地址,向在IP地址映射的服務器發送一個HTTP請求。在通常情況下HTML文本、圖片和該網頁的一切其他文件會被逐一推送回用戶端,瀏覽器生成用戶所看到的“網頁”。
由于B/S架構和Web訪問對用戶端的配置需求和維護成本極低,越來越多的應用系統采用此種方式進行部署,成為Web應用系統。
二、Web應用系統面臨安全威脅
Web應用系統面臨的安全威脅主要表現在非授權訪問、偽用戶登錄、破壞數據完整性等方面。它們主要利用以下途徑:應用軟件系統自身的漏洞、應用軟件系統的安全體系缺陷、合法用戶的安全意識薄弱以及安全管理制度缺失。安全威脅分為人為威脅和自然威脅,人為威脅都是有目的的惡意攻擊,人為威脅分為主動性攻擊和被動性攻擊兩大類。
(一)主動性攻擊
主動攻擊是指攻擊者未經授權和許可,截獲或篡改系統管理權限、拒絕或中止某些用戶對系統的合法訪問行為。這方面攻擊往往是對數據通道中正在傳輸的數據單元進行更改、刪除、延遲、拷貝重發或插入、合成或偽造等各種惡意處理行為,并以更改報文流、拒絕報文服務、偽造連結初始化等形式達到攻擊目的。主動攻擊通常易于探測但卻難于防范。
(二)被動性攻擊
被動攻擊是指攻擊者通過監聽網絡上傳輸的信息流、截獲信息內容的行為。這類攻擊主要是為了獲得信息流長度、傳輸頻率等技術性要素,同時觀察和解析數據單元包含的信息(如用戶數據、協議控制信息),但不纂改或破壞數據單元內容。攻擊者通過這種看似“安全”行為來了解和熟悉正在進行的通信詳情,以便達到用其他方法竊取或破壞應用系統和數據資源的攻擊目的。因此,相對主動性攻擊而言,信息發送者和接收者發現被動攻擊是困難的。通常情況下,通過對用戶信息進行加密可以避免被動攻擊。
由此可見,Web應用系統可能受到的攻擊和攻擊形式是多種多樣的,而且往往是多種攻擊同時存在。如何有效防范非法攻擊、提高應用系統安全性是一項復雜的任務,需要通過多種安全服務措施和健全管理機制來實現。
三、如何有效地提高Web應用系統的安全性
為了保證應用系統的安全運行,保護計算機硬件、軟件和系統數據不被攻擊、破壞、更改或泄漏,需要從技術方面采用以下安全措施。
(一)應用防火墻技術
防火墻技術是建立在現代通信網絡技術和信息安全技術基礎上的網絡應用安全技術,可應用在企事業單位內部專用網絡,以及內部網絡與外部公用網絡互聯環境條件下,尤其是以接入Internet網絡使用最為廣泛。
防火墻是指設置在不同網絡(如可信任的企業內部網和不可信的外部公共網)或網絡安全域之間的一系列硬件和軟件的組合,是不同網絡或網絡安全域之間信息的唯一出入口,它能根據用戶的安全政策(允許、拒絕、監測)控制出入網絡的信息流,且有較強的抗攻擊能力。防火墻能夠提供信息安全服務,在邏輯上,防火墻既是一個分離器、限制器,又是一個分析器,能夠有效地監控內部網和外部公用網絡的信息交互活動,以保證內部網絡的安全。
1. 企業網絡級防火墻,用來防止整個內部安全網絡檢測外部的非法入侵,包括分組過濾和授權服務器。分組過濾負責檢查所有流入內部網絡的信息,拒絕所有不符合內部網絡預定安全策略的數據,授權服務器則檢查系統用戶的登錄是否合法。
2. 企業應用級防火墻,從應用程序入手對訪問接入進行控制。通常使用應用網關或代理服務器來區分各種應用,如只允許某類用戶訪問外部網絡,但阻止FTP應用的通過。
(二)增強用戶管理的安全性
Web應用系統企事業單位內部多個單位及部門的用戶同時登錄和使用,因此在系統安全性設計上,可采用角色管理和用戶身份驗證的安全策略。
1. 角色管理
角色管理將應用系統中不同模塊權限和對象權限建立映射關系而形成集合,即角色。通過對系統功能模塊的劃分,不同角色對不同模塊具有不同的訪問控制權限,從而限制了無關用戶對特定功能模塊的訪問。
2. 系統用戶身份驗證
身份驗證技術通過登錄用戶向應用系統出示自己身份證明、系統核查用戶身份證明的有效性來判斷和確認通信雙方的真實有效身份。應用系統依靠Internet信息服務(IIS)的身份驗證技術和Windows NT文件系統的訪問控制。訪問請求通過網絡客戶進入IIS,IIS可以選擇使用基本的、簡要的或集成的Windows 身份驗證技術對客戶進行身份驗證。如果驗證通過。那么IIS將根據驗證后的結構生成新的對ASP.NET程序的訪問,從而簡化了系統設計中安全驗證的工作量。如圖1。
(三)增強ASP.NET程序的安全性
Web應用系統在程序設計過程中,采取以下措施來提高安全性。
1. 防止SQL注入攻擊。在編寫代碼時,要禁止用戶輸入非法、危險和內定義的字符,如單引號(或)、or、and、*、<、>、空格等,同時在客戶端和服務器端都要對用戶輸入的信息進行驗證;同時,在編寫程序中要盡量使用存儲過程技術。使用存儲過程不僅可以防止某些類型的SQL注入式攻擊,還可以提高SQL語句的執行速度;在程序出現異常時,程序會自動跳轉到固定頁面,而不是將錯誤信息顯示給用戶,防止代碼被截獲。
2. 為了有效管控對業務數據的訪問授權,防止用戶冒名登錄、或者直接在瀏覽器地址欄中輸入鏈接地址、從而進入某個超出用戶權限的頁面,可為Session設置有效期。當Session值過期時,該登錄賬號失去了再次使用系統的權利,必須重新登錄系統,這樣可以防止用戶離開計算機時被冒名使用。如圖2。
3. Web應用系統一般具有附件上傳和導出下載功能。在附件上傳時,為了防止惡意上傳破壞系統,需要在上傳時對文件類型進行判斷和驗證。除特定文件類型外,其他類型的文件一律禁止上傳,尤其是后綴為asp、aspx及exe的文件。
(四)在數據庫管理中應用數據加密技術
由于應用系統的關鍵信息和數據都存儲在數據庫中,因此,數據庫加密是Web應用系統安全的重要環節。數據加密技術是把重要應用數據經過特定算法加密后、再進行傳送;加密后的數據信息不易被非法入侵者閱讀或理解,到達目的地后再進行解密還原。根據加密密鑰和解密密鑰在性質上的不同,ASP.NET應用中提供了兩種加密算法,即對稱加密算法和非對稱加密算法。
1. 對稱加密是加密和解密使用相同密鑰的加密算法。它的優點是保密程度較高、運算負載小、處理速度快、使用方便快捷、密鑰短且破譯困難。由于持有密鑰的雙方都可以使用該密鑰解密數據,因此必須保證密鑰不被未經授權的非法用戶得到。在對稱加密算法中廣泛使用的是DES加密算法。
2. 非對稱加密是加密和解密使用不同密鑰的加密算法。它使用了一對密鑰,一個用于加密信息、另一個用于解密信息。通信雙方無需事先交換密鑰就可以進行保密通信。但是加密密鑰不同于解密密鑰,加密密鑰是公開的,任何人都可以使用;而解密密鑰只有解密方 掌握。兩個密鑰之間存在著相互依存關系:即用其中任一個密鑰加密的信息只能用另一密鑰進行解密,它只可加密少量數據。在非對稱加密算法中普遍使用的是RSA加密算法。
在實際應用中,可采用RSA與DES混合加密體制的方式進行數據信息加密??梢杂脤ΨQ加密算法(DES加密算法)加密較長的明文,用非對稱加密算法(RSA加密算法)加密數字簽名等較短的數據,這樣既保證了數據的保密強度,又加快了系統運算速度。
四、完善數據安全備份策略
Web應用系統的關系數據庫管理系統,一般均具備數據備份功能。數據備份方式有完全備份、差異備份以及增量備份三種。
(一)完全備份(Full Backup)
完全備份是指對某一個時間點上所有數據或應用進行一個完全拷貝。實際應用中就是用一盤磁帶對整個系統進行完全備份,包括其中的系統和所有數據,完全備份會清除 文件屬性。完全備份的優點是大大節省系統或數據恢復的時間。缺點是,各個全備份磁帶中的備份數據存在大量的重復信息;由于每次需要備份的數據量較大,因此備份所需時間較長。
(二)增量備份(Incremental Backup)
增量備份是指在一次全備份或上一次增量備份后,以后每次的備份只需備份與前一次相比增加和者被修改的文件。增量備份只備份有標記的選中的文件和文件夾,它清除標記,既:備份后標記文件,換言之,清除存檔屬性。
增量備份的優點就是沒有重復的備份數據,因此備份數據量不大、備份所需的時間很短。缺點是對備份磁帶連續性要求較高導致的可靠性降低,如果環節中間有一個磁帶出現故障,整個數據恢復將失敗、風險較大;其次是恢復過程必須沿著從全備份到依次增量備份的時間順序倒序恢復,因此恢復時間較長。
(三)差異備份(Differential Backup)
差異備份是指在一次完全備份后至本次備份的時間段內,對增加或者修改文件進行備份。差異備份只備份有選中標記的文件和文件夾,不清除標記,即在備份后對已備份文件不做標記。換言之,不清除存檔屬性。在數據恢復時,只需對第一次全備份和最后一次差異備份進行恢復。
差異備份在避免了其它兩種備份策略缺點的同時,兼顧了它們各自的優點。首先,它具有了增量備份需要時間短、節省磁盤空間的優勢;其次,它又具有了全備份恢復所需磁帶少、恢復時間短的特點。系統運維人員只需要兩盤磁帶,即全備份磁帶與災難發生前一天的差異備份磁帶,就可以將數據恢復。
在數據庫運維實踐中,無論采用何種備份方式,運維人員都要嚴格執行技術規范和管理制度,首先在操作過程中對備份時間、備份對象、備份策略做好手工記錄,其次在備份介質的標簽上記錄備份時間和備份編號,第三要把備份介質異地、安全保管,預防系統硬件和備份介質同時遭遇水、火、盜竊、電磁等災難性事故。
Web應用系統的安全管理,要結合系統運行的具體環境和條件,從網絡環境、用戶管理、程序設計開發、數據加密和數據備份等方面對可能存在的安全威脅進行分析,制定有效可行的安全防護技術措施,最大限度地保障和管控系統安全,有效控制安全風險。