翻譯|行業(yè)資訊|編輯:黃竹雯|2019-09-06 15:29:49.840|閱讀 876 次
概述:人們常說(shuō)SAST和DAST是相輔相成的,所以隨后就建議兩者都使用,其實(shí)這并不一定是互補(bǔ)的,因?yàn)樗?只是做兩件不同的事情。但您可以以互補(bǔ)的方式將SAST和DAST結(jié)合起來(lái),通過(guò)利用DAST最大化SAST的價(jià)值。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
SAST和DAST之間實(shí)現(xiàn)真正協(xié)同作用的潛力來(lái)自您的SAST和DAST工具,這些工具以真正驅(qū)動(dòng)安全設(shè)計(jì)應(yīng)用程序安全方法的核心方式相互支持。所以它不是SAST vs DAST,而是DAST-SAST。
那么是如何運(yùn)作的呢?讓我們從基礎(chǔ)開(kāi)始講。
SAST是靜態(tài)應(yīng)用程序安全測(cè)試,即在不運(yùn)行應(yīng)用程序的情況下分析應(yīng)用程序。從人工審核到指標(biāo)分析,模式分析再到數(shù)據(jù)流分析,有多種方法可以做到這一點(diǎn)。這被認(rèn)為是白盒測(cè)試。最常見(jiàn)的是,SAST用戶關(guān)注數(shù)據(jù)流分析,因?yàn)樗顾麄兡軌蛟趹?yīng)用程序完成之前查找受污染數(shù)據(jù)等安全問(wèn)題。
在靜態(tài)分析的早期階段,不但強(qiáng)調(diào)不僅要發(fā)現(xiàn)錯(cuò)誤,還要發(fā)現(xiàn)可疑或有風(fēng)險(xiǎn)的代碼結(jié)構(gòu)以及執(zhí)行軟件工程標(biāo)準(zhǔn)。在安全領(lǐng)域,SAST主要是指流量分析。基本上SAST用于查找漏洞,類似于DAST,但在SDLC(軟件生存周期,軟件開(kāi)發(fā)生命周期)中較早。
更早的測(cè)試更好,因?yàn)樗某杀疽偷枚啵許AST的主要優(yōu)點(diǎn)是它可以提前完成——早在整個(gè)應(yīng)用程序或系統(tǒng)準(zhǔn)備好之前。通過(guò)SAST,您可以深入了解代碼,從而準(zhǔn)確了解代碼涉及的問(wèn)題。
在缺點(diǎn)方面,使用SAST,您的測(cè)試不是針對(duì)真實(shí)系統(tǒng),并且工具必須合成數(shù)據(jù)以嘗試驅(qū)動(dòng)功能或數(shù)據(jù)路徑的覆蓋。因此,SAST工具存在誤報(bào)問(wèn)題,這意味著它們可以告訴您一段代碼在實(shí)際安全時(shí)是不安全的。此外,SAST工具通常特定于特定語(yǔ)言。這使得構(gòu)建和維護(hù)成本高昂(主要是工具供應(yīng)商的問(wèn)題),并且意味著您需要為應(yīng)用程序中使用的每種語(yǔ)言提供工具。
DAST是動(dòng)態(tài)應(yīng)用程序安全測(cè)試。這意味著通常通過(guò)其輸入和接口測(cè)試工作應(yīng)用程序(或設(shè)備)。通常這是黑盒測(cè)試,在某種意義上說(shuō),您正在使用該應(yīng)用程序而不深入了解其內(nèi)部(源代碼)。
DAST的最大優(yōu)點(diǎn)是,這些顯然是真實(shí)的測(cè)試,考慮到端到端的完整應(yīng)用程序和/或系統(tǒng)。其次,DAST測(cè)試不依賴于對(duì)代碼的深入了解,并且工具不需要對(duì)每種語(yǔ)言的特定支持。
另一方面,DAST的最大缺點(diǎn)是它不包含對(duì)代碼的深入了解。這意味著當(dāng)您發(fā)現(xiàn)問(wèn)題時(shí),可能需要一些實(shí)時(shí)和精力來(lái)精確縮小導(dǎo)致問(wèn)題的底層代碼。
此外,DAST是一種“測(cè)試”技術(shù),意味著它發(fā)生在設(shè)計(jì)和編碼之后。因此,這是驗(yàn)證應(yīng)用程序是否安全的一種非常好的方法,但如果它是用于保護(hù)軟件的主要方式,那么您真正嘗試在應(yīng)用程序中測(cè)試安全性,這是一項(xiàng)麻煩的任務(wù)。您無(wú)法在應(yīng)用程序中測(cè)試安全性,也無(wú)法在應(yīng)用程序中測(cè)試質(zhì)量 - 這就是為什么像GDPR這樣的新法規(guī)和即將出臺(tái)的FDA指南依賴于安全設(shè)計(jì)方法。
擁有強(qiáng)大的SAST策略,將早期檢測(cè)檢查器與CWE等弱點(diǎn)以及CERT等安全編碼標(biāo)準(zhǔn)相結(jié)合,是保護(hù)應(yīng)用程序和防止重復(fù)出現(xiàn)相同安全問(wèn)題的最完整方法。但是為了補(bǔ)充DAST,我們可以將SAST與DAST正在做的事情聯(lián)系起來(lái),通過(guò)從DAST獲得的信息告知我們的SAST活動(dòng)。
為了更好地理解它是如何工作的,我喜歡將軟件看作裝配線,并從生產(chǎn)線的最后開(kāi)始,使用3步改進(jìn)過(guò)程來(lái)確保安全性。第1階段總比沒(méi)有好,但它遠(yuǎn)沒(méi)有第3階段那么好。
應(yīng)用程序安全性的第一階段都是DAST。對(duì)于應(yīng)用程序安全性,我們采用最終的應(yīng)用程序,在發(fā)布之前構(gòu)建,然后對(duì)其進(jìn)行攻擊,嘗試以任何方式進(jìn)行攻擊 - 這是DAST。如果我們找到了什么,我們會(huì)評(píng)估它是多么令人討厭,并在我們可以的時(shí)候進(jìn)行修復(fù),在必要的時(shí)候釋放。關(guān)于這個(gè)問(wèn)題本身就存在一個(gè)很大的話題(發(fā)布具有已知弱點(diǎn)和漏洞的軟件),但我會(huì)將其留下后續(xù)再說(shuō)。
因?yàn)檫@個(gè)測(cè)試結(jié)束了,總是有時(shí)間壓力,以及尋找和修復(fù)潛在問(wèn)題的額外難度,但是做這個(gè)測(cè)試肯定比完全不做更好,所以這是一個(gè)好的開(kāi)始。
應(yīng)用程序安全性改進(jìn)之路的第二階段增加了SAST,以解決周期性問(wèn)題。如何在應(yīng)用程序準(zhǔn)備好之前啟動(dòng)安全測(cè)試?SAST就是我們的答案。SAST檢查器可以在我們有代碼后立即運(yùn)行。SAST中的數(shù)據(jù)流檢查器通常可以直接與DAST發(fā)現(xiàn)的問(wèn)題類型相關(guān)聯(lián),因此很容易知道在SAST發(fā)現(xiàn)弱點(diǎn)時(shí)要查找什么以及它意味著什么。
這是一個(gè)很好的下一步,因?yàn)槲覀儾粌H有更多的時(shí)間來(lái)修復(fù),而且測(cè)試更靠近源,因此找出出錯(cuò)的時(shí)間要短得多。我們的SAST現(xiàn)在正在進(jìn)行DAST的工作并提前完成。
數(shù)據(jù)流實(shí)際上只是在進(jìn)行更多的測(cè)試安全性,因此我們?nèi)绾芜M(jìn)入下一個(gè)級(jí)別并將SAST與DAST相結(jié)合以相互補(bǔ)充?第三階段是我們實(shí)際意識(shí)到將兩種工具結(jié)合使用的價(jià)值。
要將SAST與DAST轉(zhuǎn)移到完全互補(bǔ)的情況,我們可以從DAST獲取結(jié)果來(lái)通知我們的SAST,調(diào)整我們的靜態(tài)分析規(guī)則配置并告訴我們需要尋找哪些類型的安全漏洞。通過(guò)這種方式使用DAST,它可以使SAST告訴我們我們需要的安全漏洞來(lái)源,我們?nèi)绾尉徑馑鼈円约拔覀內(nèi)?何以不會(huì)發(fā)生的方式進(jìn)行編碼。
那么這是如何工作的呢?首先,我們需要使用DAST的結(jié)果執(zhí)行根本原因分析。例如,使用SQL注入,我們需要確保數(shù)據(jù)在進(jìn)入時(shí)進(jìn)行清理,因此我們不必依賴于通過(guò)無(wú)數(shù)路徑追蹤數(shù)據(jù)以查看它是否可以逃避清理。我們還需要查看CERT中的SAST標(biāo)準(zhǔn),以便我們既可以避免可能有效但又不安全的構(gòu)造,也可以強(qiáng)制執(zhí)行可以加強(qiáng)我們應(yīng)用程序的良好行為,即使它們在正常(不安全)編程中可能不是必需的。適當(dāng)?shù)腟AST規(guī)則可以防止DAST出現(xiàn)問(wèn)題,我們不斷向DAST學(xué)習(xí)如何配置和調(diào)整SAST。
通過(guò)一起使用SAST和DAST,您最終會(huì)得到我認(rèn)為的故障安全心態(tài)。因此,例如,在沒(méi)有安全設(shè)計(jì)的情況下,在GDPR之前,我們存儲(chǔ)了所有用戶數(shù)據(jù)而沒(méi)有加密,然后討論了哪些特定數(shù)據(jù)值得額外保護(hù),如密碼或社會(huì)安全號(hào)碼。在安全設(shè)計(jì),故障安全的環(huán)境中,我們采取相反的方法并加密所有內(nèi)容,然后討論不加密的安全措施。這樣,默認(rèn)行為是安全的或“故障安全的”,并且您成功地最大化了SAST和DAST。
所以要小心!進(jìn)行類似DAST測(cè)試的SAST檢查器是那些能夠吸引用戶和分析師興趣的檢測(cè)器,但更大的價(jià)值來(lái)自于執(zhí)行適當(dāng)安全行為的無(wú)聊的基于標(biāo)準(zhǔn)的檢查器。這些檢查器將您從后期測(cè)試轉(zhuǎn)移到早期檢測(cè),并且一直到實(shí)際的預(yù)防性編碼標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)會(huì)強(qiáng)化您的應(yīng)用程序。SAST可以通過(guò)提供早期緩解來(lái)補(bǔ)充DAST,并允許DAST主要用于驗(yàn)證應(yīng)用程序是否安全,而不是試圖破壞應(yīng)用程序。
如果您正在尋找具有所有這些功能的解決方案,請(qǐng)查看Parasoft。免費(fèi)試用版可供您在您的組織中試用。
想要了解Parasoft、Parasoft SOAtest、Parasoft Virtualize更多信息或資源的朋友,請(qǐng)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: