在功能測試中需要有安全測試思維(文尾附安全測試工具)

什么是安全測試?為什么要做安全測試?安全測試與功能測試之間有何聯(lián)系??


今天,很多軟件并沒有經(jīng)過專門的安全測試便運(yùn)行在互聯(lián)網(wǎng)上,它們攜帶著各類安全漏洞直接暴露在公眾面前,其中一些漏洞甚至直指軟件所承載的核心敏感信息或業(yè)務(wù)邏輯。


這些漏洞一旦被不懷好意者利用,很可能會給企業(yè)造成經(jīng)濟(jì)損失,帶來負(fù)面聲譽(yù)影響的同時,還可能被起訴遭到罰款等等,細(xì)思極恐。其中的一部分原因是企業(yè)本身安全意識不強(qiáng),但是很多時候雖然軟件企業(yè)已經(jīng)開始意識到這些問題,卻苦于缺少專業(yè)的安全測試人員,他們不得不冒著極大的風(fēng)險先上線賭一把運(yùn)氣再說。


既然如此,我們測試人員作為質(zhì)量代言人怎能對此置之不理呢?


你也許會抱怨,安全測試水太深了,不知道從何下手。


我非常有幸能夠在項目上跟“神秘的安全測試人員”學(xué)習(xí)如何進(jìn)行安全測試,發(fā)現(xiàn)“神秘的安全測試人員”不光是名字跟我們一樣都有“測試”二字,所做的事情在本質(zhì)上也是跟我們測試人員有很多相通。


在這里我想要跟大家分享一下在功能測試中如何利用我們的測試經(jīng)驗開展安全測試。


安全測試需要你轉(zhuǎn)換視角?


剛開始接觸安全測試,我很深的體會到了這一點(diǎn)。當(dāng)時我在測試一個 Web 應(yīng)用的用戶登錄功能。當(dāng)我輸入錯誤的用戶名來試著登陸時,瀏覽器上的提示信息為“用戶不存在”。



當(dāng)我嘗試正確的用戶名而錯誤的密碼時,提示信息變成“密碼錯誤?!?/p>


對于這個清晰的錯誤提示我非常滿意。試想我若是一個真實的終端用戶,這個信息有效的幫助我縮小我所要糾錯的范圍,提高效率,非常好。

可是,就在我身邊坐著的安全測試人員馬上跳了出來:“這個提示信息需要改!敏感信息暴露了!”


看著我一臉茫然,這位安全測試人員告訴我,通過我們的提示信息,惡意的系統(tǒng)使用者可以推測出哪些用戶名已經(jīng)存在于系統(tǒng)中,當(dāng)你用戶名是自增的,那就更容易遍歷出來了。然后利用這些用戶名可以再進(jìn)行密碼的暴力破解,縮小破解的范圍。


所以,這個信息雖然為合法用戶提供了便利,也為不懷好意的系統(tǒng)使用者提供了便利。而往往這種便利為惡意的系統(tǒng)使用者帶來的好處遠(yuǎn)大于給合法用戶帶來的好處。這個經(jīng)歷讓我受震動的同時,也意識到以前可能很多安全漏洞已經(jīng)擺在我的面前,我卻沒有看出來,因為我把它們過濾了。


、改變測試中模擬的對象

我們在做非安全測試的時候通常把自己想象成一個合法用戶,然后開始驗證系統(tǒng)是否能完成預(yù)設(shè)的目標(biāo)。


比如對于一個網(wǎng)上商城,我們會驗證系統(tǒng)是否能讓用戶完成商品的瀏覽與購買,我們也會測試一些異常的行為,比如購買的商品數(shù)量不是數(shù)字而是一串無意義的字母時,目的是看系統(tǒng)是否能比較優(yōu)雅的做出回應(yīng)。


我們這么測試的目的往往是為了確保用戶誤操作以后還能夠繼續(xù)他們的購買,或者說不要給系統(tǒng)造成什么嚴(yán)重的傷害。


如果要做安全測試,我們則必須去模擬系統(tǒng)的另一類使用者-惡意用戶。他們的目的是為了尋找系統(tǒng)中可鉆的漏洞。比如同樣是一個網(wǎng)上商城,惡意用戶的目標(biāo)之一就是要想辦法以較少的錢,甚至不付錢就能拿到商品。


例子:

修改接口數(shù)據(jù),低價購買高價商品

例子中通過輸入負(fù)數(shù)數(shù)量,進(jìn)行低價購買。可見測試中校驗前端異常數(shù)據(jù)時,也需要驗證后端是否也有做校驗。



這個工具即下文提到的burpsuite,可在公眾號回復(fù)“安全測試工具”獲取

所以,我們轉(zhuǎn)換我們測試時所模擬的對象,把思維從一個合法用戶的視角中拉出來,轉(zhuǎn)換成一個惡意用戶。


第三,使用專用的測試工具?


有了思維的轉(zhuǎn)換,我們可以加入新的測試想法。但是,在具體做安全測試的時候我們會發(fā)現(xiàn)并不是那么容易去模擬惡意用戶的行為。畢竟系統(tǒng)的前端會給我們很多的屏障。而且惡意用戶可不總都是從系統(tǒng)前門進(jìn)去的。這時候,使用一些工具,比如 OWASP?Zap(https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project?)、Burp(https://portswigger.net/burp/?) 等是非常有幫助的。我們可以在系統(tǒng)界面上執(zhí)行功能測試的用例,用這些工具來獲取 http 請求,篡改后發(fā)送給后臺服務(wù)器。甚至掃描出可能會被利用的漏洞再進(jìn)行驗證。有了這些實用又比較容易上手的工具,我們就可以執(zhí)行很多惡意用戶的操作場景了。


第四,了解一些常見的漏洞、安全事件、需要關(guān)注的測試點(diǎn)

這里是一些資料、資訊:

OWASP Top 10 最嚴(yán)重的Web 應(yīng)用程序安全風(fēng)險

拼多多過期優(yōu)惠券被利用,用戶可領(lǐng)取100元無門檻優(yōu)惠券

58同城簡歷泄露事件

一個邏輯漏洞

移動app安全測試關(guān)注點(diǎn)


功能測試中可以關(guān)注的模塊:

登錄、注冊模塊

忘記密碼

文件上傳下載

修改密碼

編輯、發(fā)布

支付相關(guān)

url

等。


關(guān)注的點(diǎn):

數(shù)據(jù)庫安全:身份驗證、驗證碼、會話管理、權(quán)限管理、敏感信息傳輸、安全審計、信息泄露、輸入校驗、輸出編碼、上傳下載、異常處理、注釋代碼等

接口:接口接受的數(shù)據(jù)需要做嚴(yán)格的處理、接口數(shù)據(jù)嚴(yán)格校驗測試


篇幅過長,更多詳細(xì)待續(xù)


burpsuite工具? 常用功能(抓包改包、重放、爆破、漏洞掃描等)可在公眾號:軟件測試er? ? ,? ? 回復(fù)“安全測試工具”獲取

文章首發(fā)于公眾號:軟件測試er?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容