2019测试指南-测试测试原理
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
什么是測(cè)試?
在Web應(yīng)用程序的開發(fā)生命周期中,需要測(cè)試許多東西,但測(cè)試實(shí)際上意味著什么?Merriam-Webster Dictionary將測(cè)試描述為:
-
進(jìn)行測(cè)試或證明。
-
進(jìn)行測(cè)試。
-
根據(jù)測(cè)試分配站立或評(píng)估。
出于本文檔的目的,測(cè)試是將系統(tǒng)或應(yīng)用程序的狀態(tài)與一組標(biāo)準(zhǔn)進(jìn)行比較的過(guò)程。在安全行業(yè)中,人們經(jīng)常根據(jù)既不明確也不完整的一套心理標(biāo)準(zhǔn)進(jìn)行測(cè)試。因此,許多外人將安全測(cè)試視為黑色藝術(shù)。本文檔的目的是改變這種看法,并使沒(méi)有深入安全知識(shí)的人更容易在測(cè)試中發(fā)揮作用。
為何進(jìn)行測(cè)試?
本文檔旨在幫助組織了解測(cè)試程序的內(nèi)容,并幫助他們確定在Web應(yīng)用程序上構(gòu)建和運(yùn)行測(cè)試程序所需采取的步驟。該指南提供了制作全面的Web應(yīng)用程序安全程序所需元素的廣泛視圖。本指南可用作參考指南和方法,以幫助確定現(xiàn)有實(shí)踐與行業(yè)最佳實(shí)踐之間的差距。本指南允許組織將自己與業(yè)界同行進(jìn)行比較,了解測(cè)試和維護(hù)軟件所需的資源量,或準(zhǔn)備審計(jì)。本章不涉及如何測(cè)試應(yīng)用程序的技術(shù)細(xì)節(jié),因?yàn)槠淠康氖翘峁┑湫偷陌踩M織框架。
什么時(shí)候測(cè)試?
今天的大多數(shù)人都不會(huì)測(cè)試軟件,直到它已經(jīng)被創(chuàng)建并處于其生命周期的部署階段(即,代碼已經(jīng)創(chuàng)建并實(shí)例化為工作的Web應(yīng)用程序)。這通常是一種非常無(wú)效且成本過(guò)高的做法。防止安全漏洞出現(xiàn)在生產(chǎn)應(yīng)用程序中的最佳方法之一是通過(guò)在每個(gè)階段中包含安全性來(lái)改進(jìn)軟件開發(fā)生命周期(SDLC)。SDLC是強(qiáng)加于軟件文物開發(fā)的結(jié)構(gòu)。如果當(dāng)前沒(méi)有在您的環(huán)境中使用SDLC,則應(yīng)該選擇一個(gè)!下圖顯示了通用SDLC模型以及在此類模型中修復(fù)安全漏洞的(估計(jì))增加的成本。
公司應(yīng)檢查其整體SDLC,以確保安全性是開發(fā)過(guò)程中不可或缺的一部分。SDLC應(yīng)包括安全測(cè)試,以確保充分覆蓋安全性,并且控制在整個(gè)開發(fā)過(guò)程中都是有效的。
測(cè)試什么?
將軟件開發(fā)視為人員,流程和技術(shù)的組合可能會(huì)有所幫助。如果這些是“創(chuàng)建”軟件的因素,那么這些是必須測(cè)試的因素是合乎邏輯的。今天,大多數(shù)人通常會(huì)測(cè)試技術(shù)或軟件本身。
有效的測(cè)試程序應(yīng)該包含測(cè)試的組件:
-
人?- 確保有足夠的教育和意識(shí);
-
流程?- 確保有足夠的政策和標(biāo)準(zhǔn),人們知道如何遵循這些政策;?
*?技術(shù)?- 確保流程在實(shí)施過(guò)程中有效。
除非采用整體方法,否則僅測(cè)試應(yīng)用程序的技術(shù)實(shí)現(xiàn)不會(huì)發(fā)現(xiàn)可能存在的管理或操作漏洞。通過(guò)測(cè)試人員,策略和流程,組織可以捕獲稍后會(huì)表現(xiàn)為技術(shù)缺陷的問(wèn)題,從而及早消除錯(cuò)誤并確定缺陷的根本原因。同樣,僅測(cè)試系統(tǒng)中可能存在的一些技術(shù)問(wèn)題將導(dǎo)致不完整且不準(zhǔn)確的安全狀態(tài)評(píng)估。
測(cè)試原理
在開發(fā)測(cè)試方法以發(fā)現(xiàn)軟件中的安全漏洞時(shí),存在一些常見的誤解。本章介紹了專業(yè)人員在對(duì)軟件執(zhí)行安全測(cè)試時(shí)應(yīng)考慮的一些基本原則。
沒(méi)有銀色子彈
雖然很容易認(rèn)為安全掃描器或應(yīng)用程序防火墻會(huì)提供許多防御攻擊或識(shí)別大量問(wèn)題,但實(shí)際上對(duì)于不安全的軟件問(wèn)題沒(méi)有靈丹妙藥。應(yīng)用程序安全評(píng)估軟件雖然可用作尋找低調(diào)成果的第一步,但在深入評(píng)估或提供足夠的測(cè)試覆蓋率方面通常是不成熟和無(wú)效的。請(qǐng)記住,安全是一個(gè)過(guò)程,而不是一個(gè)產(chǎn)品。
從戰(zhàn)略上思考,而不是戰(zhàn)術(shù)
在過(guò)去的幾年中,安全專業(yè)人員已經(jīng)意識(shí)到在1990年代普遍存在于信息安全中的補(bǔ)丁和滲透模型的謬誤。補(bǔ)丁和滲透模型涉及修復(fù)報(bào)告的錯(cuò)誤,但沒(méi)有正確調(diào)查根本原因。此模型通常與下圖所示的漏洞窗口相關(guān)聯(lián)。全球使用的通用軟件中漏洞的演變表明該模型的無(wú)效性。有關(guān)漏洞窗口的更多信息,請(qǐng)參閱[6]。
漏洞研究[7]表明,隨著全球攻擊者的反應(yīng)時(shí)間,典型的漏洞窗口無(wú)法為補(bǔ)丁安裝提供足夠的時(shí)間,因?yàn)槁┒幢话l(fā)現(xiàn)與對(duì)其開發(fā)和釋放的自動(dòng)攻擊之間的時(shí)間正在減少每年。
在補(bǔ)丁和穿透模型中有幾個(gè)不正確的假設(shè)。許多用戶認(rèn)為補(bǔ)丁會(huì)干擾正常操作,并可能破壞現(xiàn)有應(yīng)用程序。假設(shè)所有用戶都知道新發(fā)布的補(bǔ)丁也是錯(cuò)誤的。因此,產(chǎn)品的所有用戶都不會(huì)應(yīng)用修補(bǔ)程序,因?yàn)樗麄冋J(rèn)為修補(bǔ)可能會(huì)干擾軟件的工作方式,或者因?yàn)樗麄內(nèi)狈τ嘘P(guān)修補(bǔ)程序存在的知識(shí)。
必須在軟件開發(fā)生命周期(SDLC)中構(gòu)建安全性,以防止應(yīng)用程序中出現(xiàn)重復(fù)出現(xiàn)的安全問(wèn)題。開發(fā)人員可以通過(guò)制定適合并在開發(fā)方法中工作的標(biāo)準(zhǔn),策略和指南,為SDLC構(gòu)建安全性。應(yīng)使用威脅建模和其他技術(shù)來(lái)幫助為最危險(xiǎn)的系統(tǒng)部分分配適當(dāng)?shù)馁Y源。?
SDLC是王者
SDLC是一個(gè)為開發(fā)人員所熟知的過(guò)程。通過(guò)將安全性集成到SDLC的每個(gè)階段,它允許采用整體的應(yīng)用程序安全性方法,利用組織內(nèi)部已有的過(guò)程。請(qǐng)注意,雖然各個(gè)階段的名稱可能會(huì)根據(jù)組織使用的SDLC模型而發(fā)生變化,但原型SDLC的每個(gè)概念階段都將用于開發(fā)應(yīng)用程序(即定義,設(shè)計(jì),開發(fā),部署,維護(hù))。每個(gè)階段都有安全考慮因素,應(yīng)該成為現(xiàn)有流程的一部分,以確保具有成本效益和全面的安全計(jì)劃。
存在幾種安全的SDLC框架,它們提供描述性和規(guī)范性建議。一個(gè)人是否采取描述性或規(guī)定性建議取決于SDLC流程的成熟度。從本質(zhì)上講,說(shuō)明性建議顯示了安全SDLC應(yīng)該如何工作,描述性建議顯示了它在現(xiàn)實(shí)世界中的使用方式。兩者都有自己的位置。例如,如果您不知道從哪里開始,則說(shuō)明性框架可以提供可以在SDLC中應(yīng)用的潛在安全控制菜單。然后,描述性建議可以通過(guò)展示對(duì)其他組織有效的方法來(lái)幫助推動(dòng)決策過(guò)程。描述性安全SDLC包括BSIMM-V;?規(guī)范性安全SDLC包含OWASP的開放軟件保障成熟度模型(OpenSAMM)和ISO / IEC 27034第1-8部分,??
早期測(cè)試和經(jīng)常測(cè)試
當(dāng)在SDLC早期檢測(cè)到錯(cuò)誤時(shí),可以更快地以更低的成本解決問(wèn)題。在這方面,安全性錯(cuò)誤與功能性或基于性能的錯(cuò)誤沒(méi)有什么不同。實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵步驟是教育開發(fā)和QA團(tuán)隊(duì)了解常見的安全問(wèn)題以及檢測(cè)和預(yù)防這些問(wèn)題的方法。雖然新的庫(kù),工具或語(yǔ)言可以幫助設(shè)計(jì)更好的程序(安全漏洞更少),但新的威脅不斷出現(xiàn),開發(fā)人員必須意識(shí)到影響他們正在開發(fā)的軟件的威脅。安全測(cè)試教育還可以幫助開發(fā)人員從攻擊者的角度獲得適當(dāng)?shù)乃季S模式來(lái)測(cè)試應(yīng)用程序。這允許每個(gè)組織將安全問(wèn)題視為其現(xiàn)有職責(zé)的一部分。?
了解安全范圍了解
給定項(xiàng)目需要多少安全性非常重要。應(yīng)該給予要保護(hù)的信息和資產(chǎn)一個(gè)分類,說(shuō)明如何處理它們(例如,機(jī)密,秘密,絕密)。應(yīng)與法律委員會(huì)進(jìn)行討論,以確保滿足任何特定的安全要求。在美國(guó),要求可能來(lái)自聯(lián)邦法規(guī),如Gramm-Leach-Bliley法案[8],或州法律,如加州SB-1386 [9]。對(duì)于位于歐盟國(guó)家/地區(qū)的組織,可能適用特定國(guó)家/地區(qū)的法規(guī)和歐盟指令。例如,指令96/46 / EC4 [10]規(guī)定,無(wú)論申請(qǐng)是什么,都必須謹(jǐn)慎處理申請(qǐng)中的個(gè)人數(shù)據(jù)。?
培養(yǎng)正確的心態(tài)
成功測(cè)試應(yīng)用程序的安全漏洞需要“開箱即用”。正常用例將在用戶以預(yù)期方式使用應(yīng)用程序時(shí)測(cè)試應(yīng)用程序的正常行為。良好的安全測(cè)試需要超出預(yù)期,并且像攻擊者試圖破解應(yīng)用程序一樣思考。創(chuàng)造性思維可以幫助確定哪些意外數(shù)據(jù)可能導(dǎo)致應(yīng)用程序以不安全的方式失敗。它還可以幫助發(fā)現(xiàn)Web開發(fā)人員所做的假設(shè)并非總是如此,以及如何將其顛覆。?
理解主題
任何良好的安全計(jì)劃中的第一個(gè)主要計(jì)劃之一應(yīng)該是要求準(zhǔn)確記錄應(yīng)用程序。架構(gòu),數(shù)據(jù)流圖,用例等應(yīng)該用正式文檔編寫并提供給我們審查。技術(shù)規(guī)范和應(yīng)用程序文檔應(yīng)包括不僅列出所需用例,而且還列出任何特定不允許的用例的信息。最后,至少有一個(gè)基本的安全基礎(chǔ)設(shè)施是很好的,它允許監(jiān)視和趨勢(shì)對(duì)組織的應(yīng)用程序和網(wǎng)絡(luò)(例如,IDS系統(tǒng))的攻擊。?
使用正確的工具
雖然我們已經(jīng)說(shuō)過(guò)沒(méi)有銀彈工具,但工具確實(shí)在整個(gè)安全計(jì)劃中起著關(guān)鍵作用。有一系列開源和商業(yè)工具可以自動(dòng)執(zhí)行許多日常安全任務(wù)。這些工具可以通過(guò)協(xié)助安全人員完成任務(wù)來(lái)簡(jiǎn)化和加快安全過(guò)程。但是,重要的是要準(zhǔn)確理解這些工具能夠做什么和不能做什么,以便它們不會(huì)被超賣或錯(cuò)誤地使用。?
細(xì)節(jié)決定成敗
至關(guān)重要的是,不要對(duì)應(yīng)用程序進(jìn)行表面的安全性審查,并認(rèn)為它是完整的。這將灌輸一種虛假的信心感,這種信心可能與沒(méi)有首先進(jìn)行安全審查一樣危險(xiǎn)。仔細(xì)審查調(diào)查結(jié)果并清除報(bào)告中可能存在的任何誤報(bào)至關(guān)重要。報(bào)告不正確的安全性查找通常會(huì)破壞安全報(bào)告其余部分的有效消息。應(yīng)該注意驗(yàn)證應(yīng)用程序邏輯的每個(gè)可能部分都已經(jīng)過(guò)測(cè)試,并且針對(duì)可能的漏洞探索了每個(gè)用例場(chǎng)景。?
使用源代碼時(shí)可用
雖然黑盒滲透測(cè)試結(jié)果可以令人印象深刻并且有助于演示生產(chǎn)環(huán)境中漏洞的暴露程度,但它們并不是保護(hù)應(yīng)用程序最有效或最有效的方法。動(dòng)態(tài)測(cè)試很難測(cè)試整個(gè)代碼庫(kù),特別是在存在許多嵌套條件語(yǔ)句的情況下。如果應(yīng)用程序的源代碼可用,則應(yīng)在安全人員執(zhí)行審查時(shí)向他們提供幫助。可以發(fā)現(xiàn)應(yīng)用程序源中的漏洞,這些漏洞在黑匣子參與期間會(huì)被遺漏。??
制定指標(biāo)
良好的安全計(jì)劃的一個(gè)重要部分是能夠確定事情是否變得更好。跟蹤測(cè)試約定的結(jié)果非常重要,并開發(fā)能夠揭示組織內(nèi)應(yīng)用程序安全趨勢(shì)的指標(biāo)。
好的指標(biāo)將顯示:?
-
如果需要更多的教育和培訓(xùn);
-
如果開發(fā)團(tuán)隊(duì)沒(méi)有明確理解特定的安全機(jī)制;
-
如果每個(gè)月發(fā)現(xiàn)的安全相關(guān)問(wèn)題總數(shù)正在下降。
可以從可用源代碼以自動(dòng)方式生成的一致度量標(biāo)準(zhǔn)還將幫助組織評(píng)估為減少軟件開發(fā)中的安全性錯(cuò)誤而引入的機(jī)制的有效性。度量標(biāo)準(zhǔn)不易開發(fā),因此使用OWASP Metrics項(xiàng)目和其他組織提供的標(biāo)準(zhǔn)度量標(biāo)準(zhǔn)是一個(gè)很好的起點(diǎn)。
記錄測(cè)試結(jié)果
為了完成測(cè)試過(guò)程,重要的是要生成正式記錄,記錄測(cè)試操作采取的操作,執(zhí)行人員,執(zhí)行時(shí)間以及測(cè)試結(jié)果的詳細(xì)信息。明智的做法是就報(bào)告的可接受格式達(dá)成一致,這對(duì)所有相關(guān)方都有用,可能包括開發(fā)人員,項(xiàng)目管理,業(yè)務(wù)所有者,IT部門,審計(jì)和合規(guī)性。
業(yè)務(wù)所有者應(yīng)清楚地確定報(bào)告存在重大風(fēng)險(xiǎn)的位置,并足以獲得后續(xù)緩解措施的支持。開發(fā)人員還應(yīng)清楚地向開發(fā)人員說(shuō)明受漏洞影響的確切功能以及用開發(fā)人員理解的語(yǔ)言解決問(wèn)題的相關(guān)建議。該報(bào)告還應(yīng)允許另一個(gè)安全測(cè)試人員重現(xiàn)結(jié)果。編寫報(bào)告不應(yīng)該對(duì)安全測(cè)試程序本身造成過(guò)重負(fù)擔(dān)。安全測(cè)試人員通常不會(huì)因其創(chuàng)造性寫作技能而聞名,并且就復(fù)雜報(bào)告達(dá)成一致可能會(huì)導(dǎo)致測(cè)試結(jié)果無(wú)法正確記錄的情況。使用安全測(cè)試報(bào)告模板可以節(jié)省時(shí)間并確保準(zhǔn)確一致地記錄結(jié)果,
轉(zhuǎn)載于:https://my.oschina.net/u/3447023/blog/3015329
總結(jié)
以上是生活随笔為你收集整理的2019测试指南-测试测试原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深入理解GCD之dispatch_que
- 下一篇: 一个小米SRE的日常问题排查记录