于穎
摘要:Web服務組合安全性檢測對提高Web服務的安全性具有重要意義。針對Web應用安全存在的主要8種漏洞,在建立測試框架的基礎上,提出安全檢測關鍵技術的實現方法,為提高Web服務安全性提供技術參考。
關鍵詞:安全性測試;Web服務;漏洞;測試框
中圖分類號: TP393 文獻標識碼:A 文章編號:1674-1161(2016)03-0036-03
1969年互聯網在美國誕生,1994年我國與國際互聯網成功連接,標志著我國互聯網步入新時代。經過20多年的發展,我國的互聯網實現了從無到有,并且規模越來越大,現已經成為世界第二大網絡大國。據《中國互聯網絡發展狀況統計報告》(中國互聯網絡信息中心2016年1月22日第37次權威發布)顯示,截至2015年12月,我國網民規模達6.88億,互聯網普及率達50.3%,半數中國人已接入互聯網。伴隨著互聯網的快速發展,以社交網絡、電子商務等為代表的Web服務正在深刻地改變著人們的生活方式,甚至影響著整個社會發展進程。
1 Web服務的基本概念及組成
Web服務作為一種遠程訪問的標準,具有松散耦合、平臺無關、交互性、語言中立等優點,通常作為分布式應用實現的技術基礎。Web應用系統組成十分復雜,正因為其復雜組件和彼此間復雜的關系,所以才能為用戶提供強大服務。Web應用系統核心組件包括用戶接口代碼、前端系統、服務器軟件、后臺系統、數據庫系統等。
2 Web服務安全性測試的重要意義
Web應用當前已經成為軟件開發的重要組成部分。由于開發人員技術水平有限或者安全意識比較薄弱,每一個Web系統自身都存在著一定的安全漏洞,并在使用過程中逐漸暴露出來,入侵者就可能利用漏洞到Web應用上進行惡意攻擊。Web系統中有大量信息,其中許多信息涉及個人隱私或是企業關鍵性業務等,一旦Web服務安全性出了問題,可能會給個人或企業造成重大損失和帶來嚴重后果。雖然當前入侵檢測、防火墻等技術已經相對成熟,可以為Web系統提供一定的安全防護,但是對Web應用的惡性攻擊大多來自于應用層,完全解決各種安全性問題的難度非常大。在此情況下,Web服務安全性測試具有重大現實意義。
3 Web應用安全漏洞
Web應用安全漏洞是指一個Web系統的所有組件在設計、實現或者操作和管理中存在的可能被入侵者利用的缺陷和弱點。常見的Web應用安全漏洞主要有以下8個類別。
3.1 未被驗證的輸入
入侵者通過篡改HTTP請求越過站點安全機制,主要包括緩沖區溢出、跨站點腳本、SQL注入、格式化字符串攻擊等輸入篡改攻擊方式。HTTP請求主要包括查詢字符串、Cookie、HTTP頭部、URL、表單等。
3.2 SQL注入
SQL注入是最普遍、最嚴重的Web應用安全漏洞。入侵者通過在輸入域中插入某些特殊字符,完全改變SQL查詢的自身功能,欺騙數據庫服務器進行非法操作,從而達到破壞數據庫或非法獲取數據清單的目的。
3.3 跨站點腳本
入侵者在Web瀏覽器客戶端通過頁面提交的輸入數據嵌入惡意代碼,如果服務器不經過濾或轉義直接將這些數據返回,那么這些惡意代碼在其他用戶訪問該Web頁面時將被執行,從而實現其惡意攻擊的目的。
3.4 緩沖區溢出
入侵者利用緩沖區溢出漏洞向Web應用發送特定請求,使目標Web應用執行其設定的代碼。
3.5 隱藏的字段
在正常操作中,用戶可以執行Web瀏覽器中的“查看源文件”,并查看字段內容,通過手工修改參數值,再傳回給服務器端。入侵者通過對HTML源文件中的這些隱藏字段進行修改實現惡意目的。
3.6 不恰當的異常處理
用戶向Web應用提交正常請求時,可能頻繁產生內存不足、系統調用失敗、數據庫鏈接錯誤等異常情況。如果不能進行恰當處理,堆棧追蹤、數據庫結構、錯誤代碼等內部錯誤信息很可能被入侵者獲知,帶來一定的安全隱患。
3.7 遠程命令執行
用戶提供的輸入數據在沒有經過適當驗證情況下,就可以通過Web服務器進行傳遞。入侵者可能利用這個漏洞,使目標Web應用執行他的命令。
3.8 遠程代碼注入
這一安全漏洞通常是由Web應用開發者存在不良編碼習慣引起的,如允許沒有經過驗證的用戶輸入,造成本地應用或遠程的PHP代碼被包含進來。這一漏洞被入侵者利用,實現其向目標Web應用中注入其他PHP代碼的目的。
4 Web服務安全性測試技術
為保障Web服務安全,消除潛在的漏洞隱患,一方面Web服務要在用戶的身份標識和驗證級別上集成Web站點安全;另一方面要在服務器與用戶進行信息交換的過程增加安全防范措施。目前,通常在身份驗證/授權、傳輸層安全、應用層安全3個領域采取安全措施。
4.1 測試框架
Web應用安全性測試框架主要包括威脅建模、測試需求、測試策劃、測試執行、報告5個不同階段,具體情況如圖1所示。
第一階段是威脅建模,主要是有效確定安全目標,對漏洞隱患進行確定和評級。第二階段是測試需求,準確確定測試對象并合理進行資源分配,主要依據軟件具體需求和威脅剖面素。第三階段是測試策劃,主要是測試策略文檔,通過提供控制策略,有效控制系統程序總體架構、資源需求和缺陷,準確描述測試環境等一系列情況。第四階段是測試執行,及時準確的記錄測試的結果。第五階段是報告,對最終測試結果進行詳細地說明和報告。
4.2 安全性測試技術
在Web應用系統開發的整個過程中,對整個體系結構的每一個環節都進行必要的安全性測試,就會發現其存在的安全漏洞隱患,從而有效提高整個Web應用系統的綜合安全性能。在最初的設計環節對安全漏洞進行檢測,并及時對漏洞進行修復,可能避免后續環節發生安全問題。把目標部署環境所關聯的設計作為目標對象進行通盤考慮和研究設計,有效提高Web應用系統的安全水平。“白盒子”測試的主要內容是,在Web應用系統開發過程中,依據源代碼的不同級別對目標網站進行相應安全測試,及時發現相關問題并進行有效處理。
4.3 應用及傳輸安全
Web應用系統設計完成后,要通過一系列的安全測試,發現系統中存在的漏洞隱患,并有效進行修復。“黑箱子”測試的主要內容是,當Web應用系統已經投入使用后,在不影響其正常運行的條件下,積極應用遠程方式進行安全測試,模擬黑客攻擊目標系統,最大限度對Web應用系統安全性進行有效測試。
在測試過程中,通常選取應用級和傳輸級2個等級層面進行測試。應用級安全性測試是通過系統自帶程序對目錄設置、注冊及登錄、在線超時、操作留痕、備份及恢復進行檢查測試,有效排除程序設計方面存在的安全漏洞隱患。傳輸級安全性測試是以系統傳輸特性為基礎,通過對包括SSL、數據加密、防火墻、服務器腳本漏洞在內的從用戶端到服務器整個數據信息傳輸過程進行檢查測試,進一步增強系統拒絕非法訪問的能力。
參考文獻
[1] 唐修平.Web服務安全性研究及應用[J].湖南工業職業技術學院學報,2011(5):5-7.
[2] 張再華.基于.NET平臺Web服務安全性的研究與實現[J].電腦知識與技術:學術交流,2012(2X):1292-1293.
[3] 邢翠芳,李瑛,趙海冰,等.一種移動Web服務安全性技術方案[J].計算機技術與發展,2013(4):122-125.
[4] 周潔,任江春,王志英,等.一種基于Petri網的Web服務組合安全性動態檢測技術[J].計算機工程與科學,2014(2):250-257.