◆張 鵬 王河山
(1.濱州市氣象局 山東 256600;2.濱州市工商行政管理局 山東 256600)
淺析Web應用安全風險防范
◆張 鵬1王河山2
(1.濱州市氣象局 山東 256600;2.濱州市工商行政管理局 山東 256600)
該研究基于Web安全特性,對Web常見應用安全風險進行分析,根據所存在的風險提出解決方案,以確保Web應用的安全性。
Web應用;Web安全;風險防范對策
隨著近些年WEB技術的快速發展,越來越多的應用由原來的C/S方式逐漸演變和升級為基于B/S方式的WEB系統,使得其成為信息系統中主流應用和重要組成部分。從安全層面來說,因為WEB應用的交互性、開放性與Web設計過程中對系統安全性能與信息保密性缺乏考慮,Web應用破壞與攻擊事件頻繁發生,直接影響到業務系統和網站的正常安全運行,以至于影響部門的核心業務。Web應用安全風險防范在目前已經成為科技發展中需要解決的重點問題。該研究基于Web安全特性,對Web常見應用安全風險進行分析,根據所存在的風險提出詳細解決方案,以確保Web應用的安全性。
因為 Web主要選擇分層體系結構,服務器端和客戶端彼此分離,導致Web安全性和以往應用程序安全性存在很大差異性,Web應用極易受網絡入侵和攻擊。Web應用安全特性包括:
因為 Web應用開放性比較強,所以其在安全性方面很容易受到攻擊,主要體現為:①Web應用狀態信息具有開放性。由于HTTP協議具有無狀態特征,需要 Web開發人員自己對程序運行信息進行記錄,同時在服務器端與客戶端實現傳輸與保存。以上信息對外公開,極易被惡意偽造或者篡改;②Web應用源代碼具有開放性。JAVAScript、HTML等腳本編寫Web客戶端程序,相對用戶來說,Web表現層的源代碼暴露于外。也有很多通過腳本語言所編寫的程序,是解釋型的文本類型,即使JAVA同樣可以反編譯方式獲得源代碼,由此就會通過源代碼修改的方式進行惡意攻擊[2]。
多種情況下的傳統信息發布都具有單向性,主要包括語音應答、電子系統圖文電視以及傳真應答系統等。而 Web應用則包含多種媒介,具體包括音頻、文本、視頻以及圖像等,由此就導致Web極易受到攻擊。
服務器中安裝 Web應用程序后,通常都會在網絡和互聯網中運行,計算機服務器中系統配置與操作系統就極易遭受木馬與病毒等程序的非法攻擊,因為操作系統或Web Server軟件存在缺陷或漏洞是不可避免的。因此,攻擊者可通過系統潛在的漏洞進行攻擊、滲透和數據竊取等非法活動。
一些 Web開發人員對安全應用程序開發方法一無所知,或不重視Web安全性,開發Web應用期間忽略Web應用過程中潛在的安全性問題。Web開發人員通常只滿足于實現具體功能,并未考慮應用 Web安全缺陷后可能導致的災難性后果,因此難以及時選擇有效措施降低或者消除Web應用安全風險。
普通用戶在應用 Web過程中往往缺乏安全防范意識,而且也未接受專業、系統的安全訓練,不夠重視 Web應用安全性,不了解安全風險概念,更未采取方法消除 Web應用中的不安全因素。例如明文記錄密碼和登錄信息、點擊來歷不明的鏈接等。
從根本上說,Web應用安全一方面和網絡、系統服務安全密切相關,但其關鍵在于Web應用和代碼自身的安全性。所謂Web應用安全問題,其實就是攻擊主體通過多種手段對 Web應用進行攻擊、滲透和數據竊取。
2.1.1注入式攻擊
調用操作系統,通過 shell命令對外部程序進行調用,通過SQL對后臺數據庫進行調用,發生于不可信數據被視為查詢語句或命令的一部分并向處理程序發送的情況下,攻擊主體所發送數據可被任意篡改,從而執行計劃之外的命令。
注入式攻擊的有效防范措施就是徹底分開不可信數據和命令,具體措施包括:①使用安全API,包括存儲參數過程,但參數存儲仍舊有注入式缺陷的可能;②若無法對API進行應用,則需手動過濾與檢測特殊字符,如單引號等;③對輸入數據進行驗證的過程中,選擇白名單法避免注入式攻擊情況的發生。
2.1.2跨站腳本攻擊
所謂跨站腳本攻擊,其實就是供給主體將惡意代碼插入Web頁面中,在用戶瀏覽頁面過程中,會執行在頁面中嵌入的惡意代碼,由此就會對用戶產生惡意攻擊。跨站點腳本攻擊允許攻擊主體任意執行瀏覽器腳本,這樣攻擊主體就能夠劫持用戶會話。跨站點腳本攻擊出現形式主要是嵌入式 JavaScript,然而,其它嵌入式內容同樣存在潛在危險,比方說,VBScript、ActiveX等,根據規定規范對查詢串、頭部、表項等進行驗證,是提升 Web應用安全性能的一個有效方法,編碼用戶所提供輸出,能夠有效避免通過執行形式將所插入腳本傳輸給用戶。
2.1.3錯誤的認證與會話管理
一般 Web應用功能與會話管理、權限管理密切相關。然而并未被正確實現,導致攻擊主體能夠竊取用戶會話、密碼以及密鑰等。對通用或自定義認證管理機制進行合理應用,必須注意:①以限制密碼復雜度與長度的方式提升密碼強度;②確保密碼修改控制的完善性;③限制通過密碼錯誤登錄的信息與次數;④禁止通過假名形式列出賬號;⑤通過加密或者散列函數法對密碼進行存儲。
2.1.4不安全的直接對象引用
通常直接對象引用主要在開發人員曝光向內部引用的實施對象情況下發生。比方說,一個目錄、文件等,因為 Web應用并未有效訪問、控制檢查 URL欄內所輸內容,導致攻擊主體會將特殊字符加在URL地址之后,從而查看、修改或者刪除Web應用內部的目錄、文件等實際對象。對于該安全風險的預防,應該對用戶可訪問對象進行保護,并且對文件為正確文件與否進行驗證,并不是直接對文件進行讀取。
2.1.5跨站點偽造請求
強迫受害主體已登錄操作瀏覽器將偽造HTTP請求發送給安全保護薄弱頁面,其中有受害主體會話緩存內容與認證信息內容等,由此就導致攻擊主體以強制受害主體瀏覽器存在漏洞的程序傳遞請求等方法,確保應用程序認定這一請求為受害主體所發出。防范跨站點偽造請求攻擊主要分為客戶端防范與服務器端防范,其中服務器端主要選擇以下防范方法:①嚴格過濾 Web應用接受用戶所輸入相關內容;②Get方法僅僅自服務器端對數據進行讀取,而且POST法主要用于修改數據或將數據提交給服務器;③POST法所提交數據中,對與隨機數相類似的參數進行設置,同時在Cookie內對該參數進行保存;④通過Cookie本身所具有的安全屬性,僅僅信任同源對策。
2.1.6不安全配套管理
要想確保 Web應用安全,就應該具備相應的安全部署與配置,保證所設置的應用服務器、框架、數據庫服務器以及 Web服務器等正確無誤,避免潛在安全問題。也就是說,配置管理應該注意的問題包括:①允許服務器錯誤配置與軟件漏洞列出相關目錄;②安全更新與優化服務器軟件;③不必要的備份、缺省文件,比方說,配置文件與頁面、腳本以及應用程序;④錯誤的目錄與文件權限;⑤運行多余服務;⑥缺省賬號與密碼;⑦錯誤的外部系統驗證。
2.1.7不安全的密碼存儲器
當前未應用散列算法或者加密對敏感數據進行保護的 Web應用非常多,比方說密碼、信用卡及認證證書等,攻擊主體通常會修改或者竊取該類數據實現信欺騙行為。應該保證被加密事物真的已被加密,再保證能夠正確執行加密機制,當前多數加密方式都缺乏安全性,所以,應該做到以下幾點:①選擇較為安全、可靠的加密算法,比方說,SHA-256、ASE等;②禁止應用具有較弱強度的算法,應該選擇更安全、更可靠的方案;③保證軟件中所保存加密資料的安全性;④離線形成私鑰,同時特別保存。盡量避免傳輸私鑰,或在危險通信途徑傳輸私鑰。
因為Web應用安全本身屬于系統工程范疇,因此,基于Web應用中存在的安全性問題,本研究給出比較常見的集中 Web應用安全技術,見表1。

表1 Web應用安全技術

數據備份和恢復網絡隔離VPN防火墻安全脆弱性掃描入侵檢測防病毒備份系統數據,確保數據丟失后的及時恢復兩個或兩個以上的網絡在斷開連接的基礎上實現信息交換通過訪問控制技術與密碼技術在公共網絡中創建虛擬網建立網絡的基于數據包和應用協議的訪問控制找出系統潛在漏洞,優化系統防御入侵能力識別正進行或企圖入侵的行為檢測、對抗與清除病毒
總而言之,該研究基于Web應用安全現狀,闡述了Web應用安全特性,基于 Web應用安全風險,提出相應的安全防范策略,并闡述了 Web應用安全防范技術。作為系統工程范疇,應該在應用開發Web期間重視其安全防護,確保Web應用的安全性與可靠性。
[1]Santiago CE, Hondo M. Web 2.0 桌面與移動應用程序安全性設計[M].IBM developerWorks,2012.
[2]趙靜.Web 2.0 應用安全深入解析:企業級 Web 2.0 應用安全解決方案[M].IBM developerWorks,2009.
[3]OWASP.OWASP Top 1-2010 The Ten Most Critical Web Application Security Risks[EB/OL].https://www. owasp.org/index.php/Top_10_2010-Main.
[4]穆軒.淺談 WEB應用安全風險防范[J].中國傳媒科技,2012.
[5]竇浩,武艷文,段升強.Web應用安全風險防護分析與防護研究[J].西安建筑科技大學學報(自然科學版), 2012.
[6]符泉麟.基于OWASP的WEB應用安全檢測與防范[J].微型電腦應用, 2012.