地址:廣州科學(xué)城玉樹工業(yè)園J棟103房 105房 107房
電話:400-108-9880
傳真:020-3170 7367
郵箱:kj-mark@svtest.cn
一、 Web安全測試的定義
一般而言,Web的安全就是要讓軟件在面對惡意輸入或敵意的情況下,依然能夠充分滿足使用需求。而針對Web的安全性測試是驗(yàn)證Web應(yīng)用的安全服務(wù)和識別潛在安全性缺陷的過程。
安全測試通常要求測試人員制定詳細(xì)的測試策略,并模擬成攻擊者,對軟件系統(tǒng)不同的模塊進(jìn)行惡意的攻擊或滲透,查看系統(tǒng)是否能正常工作,還原軟件中存在的安全漏洞。安全測試人員一般會(huì)使用手動(dòng)工具或自動(dòng)工具,根據(jù)漏洞原理來模擬和激發(fā)Web應(yīng)用。
二、 Web安全測試流程
通常情況下,Web安全測試開展于性能測試前。對于大多數(shù)Web項(xiàng)目,測試開始前需要首先要充分解析和分析應(yīng)用。然后針對各個(gè)模塊制定相應(yīng)的安全測試策略。接著進(jìn)入手工安全測試階段,驗(yàn)證基于安全測試的各種漏洞是否存在,包括驗(yàn)證機(jī)制、會(huì)話管理、訪問控制、SQL注入、XSS、邏輯缺陷等多方面的漏洞驗(yàn)證。驗(yàn)證后整理所有測試過程中發(fā)現(xiàn)的安全問題,以報(bào)告的形式提交給研發(fā)。最后待驗(yàn)證結(jié)束后進(jìn)行回歸測試,直至所有安全問題全部解決。
三、 攻擊驗(yàn)證機(jī)制
驗(yàn)證機(jī)制是Web應(yīng)用中最常見的,也是最重要的一種安全機(jī)制。通常而言, Web應(yīng)用必須驗(yàn)證用戶所提交的用戶名和密碼是否正確。正確則允許登錄,錯(cuò)誤則禁止進(jìn)入。驗(yàn)證機(jī)制常常被看做是防御Web惡意攻擊的核心機(jī)制。如果攻擊者可以輕松突破驗(yàn)證機(jī)制,那么系統(tǒng)的所有功能、數(shù)據(jù)、私密信息都會(huì)被攻擊者控制。驗(yàn)證機(jī)制是其他所有安全機(jī)制的前提,如果驗(yàn)證機(jī)制都無法阻止攻擊,那么其他安全機(jī)制也大多無法實(shí)施。
驗(yàn)證機(jī)制常見的漏洞有以下幾種。
1.密碼保密性不強(qiáng)(弱口令)
一些Web應(yīng)用程序沒有或很少對用戶密碼強(qiáng)度進(jìn)行控制。常見的弱口令有:
? 非常短或空白密碼。
? 常用字典詞匯為密碼(password、123456)。
? 密碼與用戶名完全相同。
? 長時(shí)間使用默認(rèn)密碼。
2. 暴力攻擊登錄
登錄功能往往是完全公開的,這樣的機(jī)制可能會(huì)誘使攻擊者利用枚舉來猜測用戶名和密碼,從而獲得訪問應(yīng)用程序的權(quán)利。如果應(yīng)用程序允許攻擊者用不同的密碼暴力嘗試,直到他找到正確的密碼,這個(gè)程序就非常容易遭受攻擊。
應(yīng)對暴力破解,很多Web應(yīng)用采取了不同的安全措施:
A.驗(yàn)證碼
驗(yàn)證碼是最常見且有效的應(yīng)對方式,但需要注意以下幾個(gè)問題。
? 驗(yàn)證碼是否真實(shí)有效。
? 驗(yàn)證碼的復(fù)雜度。
? 為應(yīng)對盛行的“打碼”接口。
由于這些問題,驗(yàn)證碼這種方式也許不能完全避免暴力破解,但實(shí)際情況是即使這種方式無法完全生效,也可以使多數(shù)隨意的攻擊者停止攻擊行動(dòng),轉(zhuǎn)而攻擊較容易的應(yīng)用程序。
B. cookie檢測
例如,一些應(yīng)用程序會(huì)設(shè)置一個(gè)cookie,如failedlogin=O;登錄嘗試失敗,遞增該值,達(dá)到某個(gè)上限,檢測到這個(gè)值并拒絕再次處理登錄。這種客戶端防御方式只可以防止使用瀏覽器手動(dòng)攻擊。
C. 會(huì)話檢測
與cookie檢測類似,將失敗計(jì)數(shù)器保存在會(huì)話中,雖然在客戶端沒有標(biāo)明該漏洞存在的跡象,但是只要攻擊者獲得一個(gè)新的會(huì)話,就可以繼續(xù)實(shí)施暴力攻擊。
D.失敗鎖定賬戶
有些應(yīng)用程序會(huì)采取登錄嘗試達(dá)到一定次數(shù)后鎖定目標(biāo)賬戶的方式。但是有可能通過分析其響應(yīng),在鎖定賬戶的狀態(tài)下仍可以進(jìn)行密碼猜測攻擊。
3 雙因子認(rèn)證
它是指結(jié)合密碼以及實(shí)物(信用卡、SMS手機(jī)、令牌或指紋等生物標(biāo)志)兩種條件對用戶進(jìn)行認(rèn)證的方法。其核心是綜合個(gè)人密碼和通常為手機(jī)來達(dá)到雙重認(rèn)證效果。很多電商、銀行都采用了該認(rèn)證方式。它最大的缺點(diǎn)就是構(gòu)建雙因子認(rèn)證的成本較高,服務(wù)器壓力也較大。
4. 詳細(xì)的失敗信息
經(jīng)典的登錄表單會(huì)要求用戶輸入兩組信息:用戶名和密碼。如果登錄嘗試失敗,則可以得出結(jié)論,至少有一組信息出錯(cuò)。
但是如果應(yīng)用程序通知用戶是哪一組信息無效,就可以利用該信息來降低登錄機(jī)制的防御效能。
這種漏洞有可能以更隱蔽的方式出現(xiàn)。例如,用戶名無效和密碼錯(cuò)誤的錯(cuò)誤消息表面看起來完全相同,但它們之間仍有可能存在著細(xì)微的差別,可以通過攔截其response來觀察是否有細(xì)微的差別。
5. 密碼修改功能
成熟的系統(tǒng)除了用戶登錄,往往還會(huì)提供密碼修改功能,但是在編碼過程中, 往往忘記了這個(gè)功能中也會(huì)存在一些安全隱患。
密碼修改功能中常見的安全漏洞有:
1)密碼修改功能是否擁有隱藏的后臺接口,如不通過登錄直接可以訪問該功能;
2)是否可以使用不符合標(biāo)準(zhǔn)的密碼,如弱密碼等;
3)密碼修改的請求提交時(shí),是否用戶名也隨之提交?如果提交,是否可以通過修改用戶名來達(dá)到修改非當(dāng)前登錄用戶密碼的目的?
6.忘記密碼功能
網(wǎng)站大多提供“忘記密碼”功能,但是其中往往會(huì)存在一些典型的安全問題,其核心問題就是忘記密碼的流程跳過了身份驗(yàn)證。
如不考慮通過客服找回密碼,通常網(wǎng)站設(shè)計(jì)有三種方式來認(rèn)證用戶。
1)用戶設(shè)定的安全問題。
2)用戶注冊時(shí)留下的安全郵箱。
3)給預(yù)留手機(jī)號發(fā)送驗(yàn)證碼短信。
基于以上3點(diǎn),會(huì)有以下幾種可能。
1 )需要確認(rèn)應(yīng)用程序中是否有隱含的忘記密碼功能或不通過用戶名查詢即可訪問的情況。
2)如果恢復(fù)機(jī)制使用質(zhì)詢方式,則確定用戶能否枚舉用戶名來得到質(zhì)詢信息,與猜測密碼相比,響應(yīng)質(zhì)詢更容易。
3)如果在忘記密碼的請求響應(yīng)中生成一封包含恢復(fù)URL的電子郵件,獲取大量此類URL并試圖分析和預(yù)測其發(fā)送URL的模式,是否可以得到其他未知用戶的恢復(fù)URL。
4)無論是使用郵件,還是發(fā)送手機(jī)驗(yàn)證碼,查看是否可以攔截請求以修改目標(biāo)郵箱或手機(jī)號,從而達(dá)到繞過的目的。
7. 用戶偽裝功能
應(yīng)用程序有時(shí)可能會(huì)允許特權(quán)用戶偽裝成其他用戶,例如某電商網(wǎng)站擁有類似OOB(on order behalf)的功能,超級管理員可以偽裝成任意用戶來幫助其執(zhí)行某些操作。
偽裝功能可能存在以下設(shè)計(jì)漏洞。
1)如上述提到的OOB類功能,網(wǎng)站可能通過嚴(yán)格的權(quán)限控制(只有超級管理員才可訪問的功能模塊)或是隱藏的鏈接(只有超級管理員才知道)的方式執(zhí)行,例如在網(wǎng)站中有一個(gè)特殊的URL可以鏈接到一個(gè)不需要核對用戶身份的頁面執(zhí)行部分操作。這時(shí)攻擊者可以嘗試使用枚舉URL或者使用爬蟲,從而攔截到該功能,劫持所有用戶。
2)有些偽裝功能以后門密碼形式執(zhí)行,也就是說,對于一個(gè)普通用戶, 除去該用戶設(shè)置的密碼外,還擁有一個(gè)“萬能密碼”。這種設(shè)計(jì)可能招致暴力破解, 攻擊者一次攻擊獲得兩個(gè)“觸點(diǎn)”,從而便可揭示出后臺密碼。
8. 多階段登錄
在日常網(wǎng)絡(luò)應(yīng)用中,經(jīng)常發(fā)現(xiàn)一些多階段登錄的功能,如在輸入用戶名、 密碼后,可能會(huì)要求你驗(yàn)證一個(gè)私密問題,通過方可登錄。這樣的設(shè)計(jì)毫無疑問會(huì)增加驗(yàn)證機(jī)制的安全性,但這樣的過程也可能產(chǎn)生更多的執(zhí)行缺陷。
下面以兩階段登錄驗(yàn)證機(jī)制為例,說明多階段登錄可能存在的設(shè)計(jì)缺陷。
1)程序可能會(huì)認(rèn)為,用戶一旦訪問到第二階段,就已經(jīng)完成第一階段的驗(yàn)證,那么可能會(huì)允許攻擊者直接進(jìn)入第二階段。
2)程序可能會(huì)認(rèn)為,在兩個(gè)階段的執(zhí)行過程中,用戶身份不會(huì)發(fā)生任何變化,于是并沒有在每個(gè)階段都確認(rèn)用戶身份。例如,第一階段提交用戶名和密碼, 第二階段可能需要重新提交某個(gè)私密問題答案和一些個(gè)人信息。如果攻擊者在進(jìn)行第二個(gè)階段時(shí)提供了有效數(shù)據(jù),但是不同于第一階段時(shí)的用戶,那么程序可能會(huì)允許用戶通過驗(yàn)證。
聯(lián)系我們
電話:400-108-9880
網(wǎng)址:joined-tech.cn
郵箱:kj-sv@svtest.cn
傳真:020-31707367
網(wǎng)址:joined-tech.cn
聯(lián)系地址
廣州:廣州開發(fā)區(qū)科學(xué)城玉樹創(chuàng)新園 J 棟 103 房
北京:北京市海淀區(qū)永定路 15 號院南門 208 室
長沙:長沙市雨花區(qū)保利東郡 8 棟 1803 房
深圳:深圳市南山區(qū)西麗深圳大學(xué)城學(xué)苑大道 1068 號(深圳先進(jìn)院內(nèi))
石家莊:石家莊市鹿泉區(qū)山尹村鎮(zhèn)濱海路19號2號樓
地址:廣州黃埔區(qū)科學(xué)城玉樹工業(yè)園 敬業(yè)三街2號J棟103房,105房.107房
傳真:020-3170-7367
400熱線:400-108-9880
郵箱:kj-mark@svtest.cn