一.安全性測(cè)試
1、安全性測(cè)試方法
測(cè)試手段可以進(jìn)行安全性測(cè)試,目前主要安全測(cè)試方法有:
1)靜態(tài)的代碼安全測(cè)試
主要通過(guò)對(duì)源代碼進(jìn)行安全掃描,根據(jù)程序中數(shù)據(jù)流、控制流、語(yǔ)義等信息與其特有軟件安全規(guī)則庫(kù)進(jìn)行匹對(duì),從中找出代碼中潛在的安全漏洞。
2)動(dòng)態(tài)的滲透測(cè)試
滲透測(cè)試也是常用的安全測(cè)試方法。是使用自動(dòng)化工具或者人工的方法模擬黑客的輸入,對(duì)應(yīng)用系統(tǒng)進(jìn)行攻擊性測(cè)試,從中找出運(yùn)行時(shí)刻所存在的安全漏洞。
這種測(cè)試的特點(diǎn)就是真實(shí)有效,一般找出來(lái)的問(wèn)題都是正確的,也是較為嚴(yán)重的。但滲透測(cè)試一個(gè)致命的缺點(diǎn)是模擬的測(cè)試數(shù)據(jù)只能到達(dá)有限的測(cè)試點(diǎn),覆蓋率很低。
3)程序數(shù)據(jù)掃描
一個(gè)有高安全性需求的軟件,在運(yùn)行過(guò)程中數(shù)據(jù)是不能遭到破壞的,否則就會(huì)導(dǎo)致緩沖區(qū)溢出類型的攻擊。數(shù)據(jù)掃描的手段通常是進(jìn)行內(nèi)存測(cè)試,內(nèi)存測(cè)試可以發(fā)現(xiàn)許多諸如緩沖區(qū)溢出之類的漏洞,而這類漏洞使用除此之外的測(cè)試手段都難以發(fā)現(xiàn)。
例如,對(duì)軟件運(yùn)行時(shí)的內(nèi)存信息進(jìn)行掃描,看是否存在一些導(dǎo)致隱患的信息,當(dāng)然這需要專門的工具來(lái)進(jìn)行驗(yàn)證,手工做是比較困難的。
2、反向安全性測(cè)試過(guò)程
大部分軟件的安全測(cè)試都是依據(jù)缺陷空間反向設(shè)計(jì)原則來(lái)進(jìn)行的,即事先檢查哪些地方可能存在安全隱患,然后針對(duì)這些可能的隱患進(jìn)行測(cè)試。
因此,反向測(cè)試過(guò)程是從缺陷空間出發(fā),建立缺陷威脅模型,通過(guò)威脅模型來(lái)尋找入侵點(diǎn),對(duì)入侵點(diǎn)進(jìn)行已知漏洞的掃描測(cè)試。好處是可以對(duì)已知的缺陷進(jìn)行分析,避免軟件里存在已知類型的缺陷,但是對(duì)未知的攻擊手段和方法通常會(huì)無(wú)能為力。
1)建立缺陷威脅模型
建立缺陷威脅模型主要是從已知的安全漏洞入手,檢查軟件中是否存在已知的漏洞。建立威脅模型時(shí),需要先確定軟件牽涉到哪些專業(yè)領(lǐng)域,再根據(jù)各個(gè)專業(yè)領(lǐng)域所遇到的攻擊手段來(lái)進(jìn)行建模。
2)尋找和掃描入侵點(diǎn)
檢查威脅模型里的哪些缺陷可能在本軟件中發(fā)生,再將可能發(fā)生的威脅納入入侵點(diǎn)矩陣進(jìn)行管理。如果有成熟的漏洞掃描工具,那么直接使用漏洞掃描工具進(jìn)行掃描,然后將發(fā)現(xiàn)的可疑問(wèn)題納入入侵點(diǎn)矩陣進(jìn)行管理。
3)入侵矩陣的驗(yàn)證測(cè)試
創(chuàng)建好入侵矩陣后,就可以針對(duì)入侵矩陣的具體條目設(shè)計(jì)對(duì)應(yīng)的測(cè)試用例,然后進(jìn)行測(cè)試驗(yàn)證。
3、正向安全性測(cè)試過(guò)程
為了規(guī)避反向設(shè)計(jì)原則所帶來(lái)的測(cè)試不完備性,需要一種正向的測(cè)試方法來(lái)對(duì)軟件進(jìn)行比較完備的測(cè)試,使測(cè)試過(guò)的軟件能夠預(yù)防未知的攻擊手段和方法。
1)先標(biāo)識(shí)測(cè)試空間
對(duì)測(cè)試空間的所有的可變數(shù)據(jù)進(jìn)行標(biāo)識(shí),由于進(jìn)行安全性測(cè)試的代價(jià)高昂,其中要重點(diǎn)對(duì)外部輸入層進(jìn)行標(biāo)識(shí)。
例如,需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼這幾個(gè)階段都要對(duì)測(cè)試空間進(jìn)行標(biāo)識(shí),并建立測(cè)試空間跟蹤矩陣。
2)精確定義設(shè)計(jì)空間
重點(diǎn)審查需求中對(duì)設(shè)計(jì)空間是否有明確定義,和需求牽涉到的數(shù)據(jù)是否都標(biāo)識(shí)出了它的合法取值范圍。
在這個(gè)步驟中,最需要注意的是精確二字,要嚴(yán)格按照安全性原則來(lái)對(duì)設(shè)計(jì)空間做精確的定義。
3)標(biāo)識(shí)安全隱患
根據(jù)找出的測(cè)試空間和設(shè)計(jì)空間以及它們之間的轉(zhuǎn)換規(guī)則,標(biāo)識(shí)出哪些測(cè)試空間和哪些轉(zhuǎn)換規(guī)則可能存在安全隱患。
例如,測(cè)試空間愈復(fù)雜,即測(cè)試空間劃分越復(fù)雜或可變數(shù)據(jù)組合關(guān)系越多也越不安全。還有轉(zhuǎn)換規(guī)則愈復(fù)雜,則出問(wèn)題的可能性也愈大,這些都屬于安全隱患。
4)建立和驗(yàn)證入侵矩陣
安全隱患標(biāo)識(shí)完成后,就可以根據(jù)標(biāo)識(shí)出來(lái)的安全隱患建立入侵矩陣。列出潛在安全隱患,標(biāo)識(shí)出存在潛在安全隱患的可變數(shù)據(jù),和標(biāo)識(shí)出安全隱患的等級(jí)。其中對(duì)于那些安全隱患等級(jí)高的可變數(shù)據(jù),必須進(jìn)行詳盡的測(cè)試用例設(shè)計(jì)。
4、正向和反向測(cè)試的區(qū)別
正向測(cè)試過(guò)程是以測(cè)試空間為依據(jù)尋找缺陷和漏洞.(1140267353)一起成長(zhǎng)一起加油的伙伴群!軟件測(cè)試,與你同行!
反向測(cè)試過(guò)程則是以已知的缺陷空間為依據(jù)去尋找軟件中是否會(huì)發(fā)生同樣的缺陷和漏洞,兩者各有其優(yōu)缺點(diǎn)。
1)正向測(cè)試
過(guò)程的優(yōu)點(diǎn)是測(cè)試比較充分,但工作量相對(duì)來(lái)說(shuō)較大。因此,對(duì)安全性要求較低的軟件,一般按反向測(cè)試過(guò)程來(lái)測(cè)試即可,對(duì)于安全性要求較高的軟件,應(yīng)以正向測(cè)試過(guò)程為主,反向測(cè)試過(guò)程為輔。
2)反向測(cè)試
過(guò)程主要的一個(gè)優(yōu)點(diǎn)是成本較低,只要驗(yàn)證已知的可能發(fā)生的缺陷即可,但缺點(diǎn)是測(cè)試不完善,無(wú)法將測(cè)試空間覆蓋完整,無(wú)法發(fā)現(xiàn)未知的攻擊手段。
二.常見(jiàn)的軟件安全性缺陷和漏洞
軟件的安全有很多方面的內(nèi)容,主要的安全問(wèn)題是由軟件本身的漏洞造成的,下面介紹常見(jiàn)的軟件安全性缺陷和漏洞。
1、緩沖區(qū)溢出
緩沖區(qū)溢出已成為軟件安全的頭號(hào)公敵,許多實(shí)際中的安全問(wèn)題都與它有關(guān)。造成緩沖區(qū)溢出問(wèn)題通常有以下兩種原因。
1)設(shè)計(jì)空間的轉(zhuǎn)換規(guī)則的校驗(yàn)問(wèn)題
即缺乏對(duì)可測(cè)數(shù)據(jù)的校驗(yàn),導(dǎo)致非法數(shù)據(jù)沒(méi)有在外部輸入層被檢查出來(lái)并丟棄。非法數(shù)據(jù)進(jìn)入接口層和實(shí)現(xiàn)層后,由于它超出了接口層和實(shí)現(xiàn)層的對(duì)應(yīng)測(cè)試空間或設(shè)計(jì)空間的范圍,從而引起溢出。
2)局部測(cè)試空間和設(shè)計(jì)空間不足
當(dāng)合法數(shù)據(jù)進(jìn)入后,由于程序?qū)崿F(xiàn)層內(nèi)對(duì)應(yīng)的測(cè)試空間或設(shè)計(jì)空間不足,導(dǎo)致程序處理時(shí)出現(xiàn)溢出。
2、加密弱點(diǎn)
這幾種加密弱點(diǎn)是不安全的:
1)使用不安全的加密算法。加密算法強(qiáng)度不夠,一些加密算法甚至可以用窮舉法破解。
2)加密數(shù)據(jù)時(shí)密碼是由偽隨機(jī)算法產(chǎn)生的,而產(chǎn)生偽隨機(jī)數(shù)的方法存在缺陷,使密碼很容易被破解。
3)身份驗(yàn)證算法存在缺陷。
4)客戶機(jī)和服務(wù)器時(shí)鐘未同步,給攻擊者足夠的時(shí)間來(lái)破解密碼或修改數(shù)據(jù)。
5)未對(duì)加密數(shù)據(jù)進(jìn)行簽名,導(dǎo)致攻擊者可以篡改數(shù)據(jù)。所以,對(duì)于加密進(jìn)行測(cè)試時(shí),必須針對(duì)這些可能存在的加密弱點(diǎn)進(jìn)行測(cè)試。
3、錯(cuò)誤處理
一般情況下,錯(cuò)誤處理都會(huì)返回一些信息給用戶,返回的出錯(cuò)信息可能會(huì)被惡意用戶利用來(lái)進(jìn)行攻擊,惡意用戶能夠通過(guò)分析返回的錯(cuò)誤信息知道下一步要如何做才能使攻擊成功。
如果錯(cuò)誤處理時(shí)調(diào)用了一些不該有的功能,那么錯(cuò)誤處理的過(guò)程將被利用。錯(cuò)誤處理屬于異??臻g內(nèi)的處理問(wèn)題,異??臻g內(nèi)的處理要盡量簡(jiǎn)單,使用這條原則來(lái)設(shè)計(jì)可以避免這個(gè)問(wèn)題。
但錯(cuò)誤處理往往牽涉到易用性方面的問(wèn)題,如果錯(cuò)誤處理的提示信息過(guò)于簡(jiǎn)單,用戶可能會(huì)一頭霧水,不知道下一步該怎么操作。所以,在考慮錯(cuò)誤處理的安全性的同時(shí),需要和易用性一起進(jìn)行權(quán)衡。
4、權(quán)限過(guò)大
如果賦予過(guò)大的權(quán)限,就可能導(dǎo)致只有普通用戶權(quán)限的惡意用戶利用過(guò)大的權(quán)限做出危害安全的操作。
例如:沒(méi)有對(duì)能操作的內(nèi)容做出限制,就可能導(dǎo)致用戶可以訪問(wèn)超出規(guī)定范圍的其他資源。進(jìn)行安全性測(cè)試時(shí)必須測(cè)試應(yīng)用程序是否使用了過(guò)大的權(quán)限,重點(diǎn)要分析在各種情況下應(yīng)該有的權(quán)限,然后檢查實(shí)際中是否超出了給定的權(quán)限。權(quán)限過(guò)大問(wèn)題本質(zhì)上屬于設(shè)計(jì)空間過(guò)大問(wèn)題,所以在設(shè)計(jì)時(shí)要控制好設(shè)計(jì)空間,避免設(shè)計(jì)空間過(guò)大造成權(quán)限過(guò)大的問(wèn)題。
?
總結(jié):
感謝每一個(gè)認(rèn)真閱讀我文章的人?。?!
作為一位過(guò)來(lái)人也是希望大家少走一些彎路,如果你不想再體驗(yàn)一次學(xué)習(xí)時(shí)找不到資料,沒(méi)人解答問(wèn)題,堅(jiān)持幾天便放棄的感受的話,在這里我給大家分享一些自動(dòng)化測(cè)試的學(xué)習(xí)資源,希望能給你前進(jìn)的路上帶來(lái)幫助。
軟件測(cè)試面試文檔
我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來(lái)自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-842996.html
? ? ? ? ? 視頻文檔獲取方式:
這份文檔和視頻資料,對(duì)于想從事【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴我走過(guò)了最艱難的路程,希望也能幫助到你!以上均可以分享,點(diǎn)下方小卡片即可自行領(lǐng)取。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-842996.html
到了這里,關(guān)于安全測(cè)試-優(yōu)秀測(cè)試工程師必備的4項(xiàng)安全測(cè)試方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!