賀英杰++趙正海
摘要:Web應(yīng)用軟件的使用日益廣泛,為了保證軟件的安全性,Web安全測試必不可少,而設(shè)計全面、有效的安全測試用例則是關(guān)鍵。該文對Web安全漏洞進行了分類,研究了Web安全測試內(nèi)容,闡述了安全測試用例設(shè)計原則。
關(guān)鍵詞:Web應(yīng)用軟件;安全測試;用例設(shè)計
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)06-0069-02
1 概述
隨著電子商務(wù)和互聯(lián)網(wǎng)的廣泛應(yīng)用,Web應(yīng)用軟件被越來越廣泛的使用。除了傳統(tǒng)的應(yīng)用如電子郵件、新聞網(wǎng)站等,目前Web應(yīng)用軟件也被越來越多的關(guān)鍵性任務(wù)使用,例如互聯(lián)網(wǎng)證券、互聯(lián)網(wǎng)銀行、網(wǎng)絡(luò)購物等涉及金錢交易的應(yīng)用,以及政府部門的電子政務(wù)等業(yè)務(wù)通過互聯(lián)網(wǎng)來開展等。上述關(guān)鍵性的應(yīng)用對軟件安全的要求越來越高,假如由于軟件的不安全造成系統(tǒng)被破壞或信息被泄露,將會給國家、集體甚至個人帶來巨大的損失。所以,確保Web應(yīng)用軟件的安全是非常重要的,設(shè)計全面、有效的安全測試用例則是重中之重。
2常見Web安全問題
研究Web應(yīng)用軟件的安全性測試技術(shù),首先應(yīng)對已知的應(yīng)用軟件安全問題進行研究,了解各種漏洞產(chǎn)生的原因、觸發(fā)的條件、造成的后果,抽象出各類漏洞的特征,進行科學(xué)的分類,才能有效指導(dǎo)安全性測試工作,保障其科學(xué)性、高效性和針對性。OWASP(The Open Web Application Security Project)是一個致力于web應(yīng)用安全的國際組織,OWASP分析實際應(yīng)用中經(jīng)常出現(xiàn)的安全漏洞,并對各類漏洞進行總結(jié)描述,發(fā)布每年度的最危險的十大漏洞,能夠很好地反映Web安全所面臨的威脅和這些威脅的發(fā)展趨勢,被眾多權(quán)威性機構(gòu)(如美國國防部、國際信用卡數(shù)據(jù)安全技術(shù)標準、美國聯(lián)邦貿(mào)易委員會等)列為應(yīng)用程序安全規(guī)范。根據(jù)OWASP提出的Web應(yīng)用安全漏洞數(shù)據(jù)分布來看,Web應(yīng)用程序面臨的安全形勢依然嚴峻,常見的安全問題包括:
1)注入式攻擊。例如SQL、OS以及LDAP注入,發(fā)生在不受信任的數(shù)據(jù)作為一條指令或是查詢要求的一部分被發(fā)往解釋程序之時。攻擊者所植入的惡意數(shù)據(jù)可以騙過解釋程序,導(dǎo)致該指令或查詢要求在無意中被執(zhí)行。
2)跨站點腳本(簡稱XSS) 。每當(dāng)一個應(yīng)用程序攜帶了不受信任的數(shù)據(jù)并將其發(fā)送至頁面瀏覽器而又未經(jīng)過相關(guān)驗證及轉(zhuǎn)換解析時,XSS類漏洞就會蠢蠢欲動。XSS允許攻擊者在受害者的瀏覽器中執(zhí)行腳本,這會導(dǎo)致用戶的會話遭受劫持、網(wǎng)站受到破壞或者是將用戶的訪問目標重新定向至某些惡意網(wǎng)站。
3)無效的認證及會話管理功能。應(yīng)用程序的相關(guān)認證及會話管理功能在執(zhí)行過程中常常發(fā)生各種問題,導(dǎo)致攻擊者有可能獲取到密碼、密鑰、會話授權(quán)或是通過利用其他執(zhí)行
性漏洞來盜取用戶身份。
4)對不安全對象的直接引用。當(dāng)開發(fā)者公開引用某種對內(nèi)部執(zhí)行對象,例如索引系統(tǒng)、一個文檔或是數(shù)據(jù)庫關(guān)鍵信息時,就有可能發(fā)生這種不利情況。由于缺乏訪問控制檢查等安全保護措施,攻擊者能夠利用引用信息對未獲授權(quán)的數(shù)據(jù)進行訪問。
5)偽造的跨站點請求 (簡稱CSRF)。CSRF類攻擊的特點是,強迫受害者的某個已進行登錄操作的瀏覽器向安全保護薄弱的頁面應(yīng)用程序發(fā)送一條偽造的HTTP請求,包括受害者會話緩存內(nèi)容及其他任何自動產(chǎn)生的包含認證信息的內(nèi)容。這就導(dǎo)致了攻擊者可以通過強制受害者瀏覽器向具有漏洞的應(yīng)用程序傳遞請求的方式,使相關(guān)的應(yīng)用程序認定該請求是受害者本人所發(fā)出的合理請求。
3 Web安全測試內(nèi)容
攻擊者攻擊網(wǎng)絡(luò)的手段多種多樣,目的在于尋找并利用網(wǎng)絡(luò)中存在的漏洞。要想實現(xiàn)周密的安全防范,就需要分析攻擊者入侵網(wǎng)絡(luò)的方式。攻擊者對網(wǎng)絡(luò)攻擊的方式包括本地攻擊、遠程攻擊和偽遠程攻擊。他們的目的主要包括:非法訪問目標系統(tǒng),以獲取不應(yīng)有的訪問權(quán)限;篡改相關(guān)數(shù)據(jù),修改重要資料;獲取所需資料;使用有關(guān)資源,發(fā)布虛假信息、占用存儲空間甚至發(fā)動分布式攻擊等。
攻擊者進行Web應(yīng)用攻擊行為的過程包括:首先,發(fā)現(xiàn)Web系統(tǒng)或應(yīng)用程序中已存在的漏洞;然后,根據(jù)具體漏洞的類別采取對應(yīng)的、有效的攻擊手段;最后,人工分析攻擊結(jié)果,獲取想要的信息或權(quán)限。按照目前常見的攻擊手段,應(yīng)該有針對性的進行測試,主要的測試內(nèi)容如下:
1)漏洞掃描。安全漏洞掃描一般需要借助特定的漏洞掃描器完成,漏洞掃描器其實就是一種能自動檢測本地主機或遠程端安全性弱點的程序。系統(tǒng)管理員通過漏洞掃描器能及時發(fā)現(xiàn)維護的信息系統(tǒng)中存在的安全漏洞,這樣在保衛(wèi)信息系統(tǒng)網(wǎng)絡(luò)安全過程中可以有的放矢,及時對漏洞進行修補。按照常規(guī)標準劃分,漏洞掃描一般分為兩類,分別為網(wǎng)絡(luò)漏洞掃描器(Net Scanner)和主機漏洞掃描器(Host Scanner)。網(wǎng)絡(luò)漏洞掃描器是指通過網(wǎng)絡(luò),遠程檢測目標主機或網(wǎng)絡(luò)系統(tǒng)的安全漏洞的程序,典型的程序包括ISS Internet Scanner、Satan等。主機漏洞掃描器是指在本地主機或網(wǎng)絡(luò)系統(tǒng)上運行檢測安全漏洞的程序,如著名的COPS、Tiger等軟件。
2)功能驗證。功能驗證屬于軟件測試當(dāng)中的黑盒測試方法,對涉及軟件的安全功能,如權(quán)限管理功能、用戶管理功能、認證功能、加密功能等進行測試,驗證上述功能是否安全有效。進行黑盒測試的目的是為了模擬一個用戶可能采取的惡意行為,觀察Web應(yīng)用系統(tǒng)及其配套的安全措施能否真正地起到防護過濾惡意行為的作用。
3)網(wǎng)絡(luò)偵聽。實際上,網(wǎng)絡(luò)偵聽是指在數(shù)據(jù)交互或數(shù)據(jù)通信過程中對數(shù)據(jù)進行截取并分析的過程。目前,比較通用的網(wǎng)絡(luò)偵聽技術(shù)就是捕獲網(wǎng)絡(luò)數(shù)據(jù)包,我們通常稱為Capture,黑客可以通過該項技術(shù)盜取公司或個人有價值的數(shù)據(jù),同理,測試人員一樣可以利用該項技術(shù)測試Web應(yīng)用軟件或系統(tǒng)的安全性。
4)模擬攻擊測試。模擬攻擊測試對于安全測試來說是一種特殊的黑盒測試案例,我們通過模擬攻擊的方式來驗證信息系統(tǒng)或軟件的安全防護能力,在數(shù)據(jù)處理與數(shù)據(jù)通信環(huán)境中常見的攻擊包括冒充、重演、消息篡改、服務(wù)拒絕、內(nèi)部攻擊、外部攻擊、陷阱門、特洛伊木馬等。
4測試用例設(shè)計原則
一個完整的Web安全測試用例體系設(shè)計可以從身份驗證、加密、輸入驗證、敏感數(shù)據(jù)、配置管理、授權(quán)、異常管理、會話管理、參數(shù)操作、審核和日志記錄、部署與基礎(chǔ)結(jié)構(gòu)等幾個方面入手。下面將詳細描述測試用例設(shè)計時需要注意的要點。
1)數(shù)據(jù)加密設(shè)計原則。執(zhí)行數(shù)據(jù)傳輸操作需要對某些數(shù)據(jù)進行信息加密和過濾,比如用戶登錄密碼信息、用戶信用卡信息等。此時,其他操作也需要相應(yīng)進行,如解密發(fā)送到客戶瀏覽器或用戶電子郵箱、將信息存儲到數(shù)據(jù)庫等。目前的加密算法種類越來越多,設(shè)計越來越復(fù)雜,但數(shù)據(jù)加密的過程一般是可逆的,意思就是能對數(shù)據(jù)進行加密,也能對數(shù)據(jù)進行解密。一般可在后臺數(shù)據(jù)庫查看登錄的賬戶和密碼是否進行了加密。
2)目錄設(shè)計原則。Web的目錄安全是一個不容忽視的因素,如果Web服務(wù)器或Web應(yīng)用程序的設(shè)計不合理,攻擊者就可以通過簡單的URL推測和替換,完全獲取整個Web目錄的權(quán)限,這樣就對Web站點造成很大的安全性隱患。我們可以采取一定的預(yù)防措施,如在訪問每個目錄時設(shè)置index.htm,或者訪問Web服務(wù)器的目錄時對權(quán)限進行嚴格的設(shè)定,從而使發(fā)生安全問題的可能性盡可能地降低到最小程度。
3)登錄設(shè)計原則。一般的Web應(yīng)用站點都會采用登錄或注冊后使用的方式,所以必須對用戶名和密碼進行匹配校驗,以防止用戶非法登錄。進行登錄測試時,需要考慮的方面包括輸入的密碼是否區(qū)分大小寫、是否有長度條件限制,最多可以嘗試登錄多少次,哪些文件或者頁面需要登錄后才能訪問或下載等。
4)服務(wù)器腳本語言設(shè)計原則。腳本語言存在一定的安全隱患,每種腳本語言的細節(jié)略有不同,有些腳本語言允許訪問根目錄,其他腳本語言只允許訪問郵件服務(wù)器,但是有經(jīng)驗的黑客可以通過腳本漏洞獲取服務(wù)器的用戶名和口令。設(shè)計測試用例時需確認站點使用了哪種腳本語言,并研究該語言的漏洞,還需要考慮是否存在沒有經(jīng)過授權(quán)就在服務(wù)器端編輯或放置腳本的情況。
5)SSL設(shè)計原則?,F(xiàn)在越來越多的Web站點使用SSL安全協(xié)議進行數(shù)據(jù)傳送。SSL是Secure Sockets Layer(安全套接字協(xié)議層)的縮寫,是Netscape首先發(fā)布的網(wǎng)絡(luò)數(shù)據(jù)安全傳輸協(xié)議。SSL的原理是通過私有密鑰/公開密鑰的加密技術(shù)(RSA),在TCP層和HTTP層之間對用戶與服務(wù)器之間的通信進行加密,確保信息傳遞的安全性。SSL是在私人密鑰和公共密鑰的基礎(chǔ)上進行工作,任何用戶都可以獲取公共密鑰來加密數(shù)據(jù),但解密數(shù)據(jù)需要使用相應(yīng)的私人密鑰。打開一個SSL站點后,有時候能看到瀏覽器彈出警告信息,地址欄的http變成https,對SSL進行測試的時候需要確認上述特征,以及站點是否具備時間鏈接限制等相關(guān)的安全保護措施。
5結(jié)束語
Web應(yīng)用是一種典型的應(yīng)用程序,Web應(yīng)用本身越來越復(fù)雜,同時它所使用的開發(fā)語言和開發(fā)模型在不斷發(fā)展,所有這些因素給測試帶來了很大的難度。目前的安全測試主要依賴測試工程師的直覺和經(jīng)驗,Web安全測試被認為是一個耗時、代價昂貴的過程,因此,迫切需要設(shè)計一套系統(tǒng)的Web安全測試用例對Web應(yīng)用進行全面的測試。本文正是基于以上目的,對Web安全漏洞進行分類,研究了Web安全測試內(nèi)容,闡述了安全測試用例設(shè)計原則。
參考文獻:
[1] 方建超,徐全軍.網(wǎng)絡(luò)安全漏洞檢測技術(shù)分析[J].計算機安全,2005(10):32-33.
[2] 施寅生,鄧世偉,谷天陽.服務(wù)安全性測試技術(shù)研究[J].計算機工程與科學(xué),2007,29(10):11-13.
[3] 劉煥洲,繆淮扣. Web應(yīng)用程序建模和測試用例生成方法[J].計算機工程,2008,34(6): 60-62.
[4] The Open Web Application Security Project[EB/OL]. http://www.owasp.org/index.php/Main_Page.
[5] 范紅,馮登國,吳亞非.信息安全風(fēng)險評估方法與應(yīng)用[M].北京:清華大學(xué)出版社,2006.