SAST、DAST與IAST各有哪些特點(diǎn)
共 1768字,需瀏覽 4分鐘
·
2023-09-21 14:43
SAST、DAST 和 IAST 是應(yīng)用程序安全測(cè)試的三種主要方法,這三種測(cè)試方法從查看源代碼到查看正在運(yùn)行的應(yīng)用程序。
靜態(tài)應(yīng)用程序安全測(cè)試(SAST)
靜態(tài)應(yīng)用程序安全測(cè)試(SAST),因?yàn)榭梢钥吹綉?yīng)用程序內(nèi)部也稱為白盒測(cè)試。分析應(yīng)用程序源代碼以查找可能不安全的構(gòu)造和數(shù)據(jù)流是靜態(tài)分析是開發(fā)過程中最常用的安全測(cè)試方法。SAST工具通過字符串匹配、數(shù)據(jù)流分析、控制流分析、抽象語(yǔ)法樹的語(yǔ)義分析等手段進(jìn)行路徑遍歷,完成對(duì)狀態(tài)空間所有路徑的近似分析,以發(fā)現(xiàn)代碼中存在的潛在缺陷以及安全漏洞,并提供修復(fù)建議。
有許多不同類型的 SAST 工具,從簡(jiǎn)單的 IDE(集成開發(fā)環(huán)境)插件(警告不安全的語(yǔ)法)到檢查整個(gè)存儲(chǔ)庫(kù)和模擬數(shù)據(jù)流的獨(dú)立代碼分析器。由于 SAST 工具分析源代碼,因此需要工具滿足編程語(yǔ)言,測(cè)試多語(yǔ)言代碼庫(kù)通常需要了解工具是否支持各類語(yǔ)言。
SAST 優(yōu)點(diǎn):
在應(yīng)用程序部署之前的開發(fā)階段進(jìn)行測(cè)試,這樣可以盡早發(fā)現(xiàn)和糾正安全漏洞;
檢查靜態(tài)代碼,無需正在運(yùn)行的應(yīng)用程序;
在開發(fā)過程中易于插入 IDE 和其他工具;
可以檢查整個(gè)代碼庫(kù),甚至是當(dāng)前未使用的代碼;
不僅僅依賴于已知的漏洞和攻擊模式,還可以發(fā)現(xiàn)代碼中的邏輯漏洞、設(shè)計(jì)缺陷和未知的安全問題。
SAST 缺點(diǎn):
在分析應(yīng)用程序時(shí)依賴于源代碼或字節(jié)碼;
無法檢測(cè)與特定環(huán)境相關(guān)的安全問題;
不可避免的存在誤報(bào)問題;
檢測(cè)編碼語(yǔ)言需要工具支持。
動(dòng)態(tài)應(yīng)用程序安全測(cè)試(DAST)
動(dòng)態(tài)應(yīng)用程序安全測(cè)試(DAST)因?yàn)闊o法查看應(yīng)用程序內(nèi)部,也稱為黑盒測(cè)試。DAST可以探測(cè)整個(gè)正在運(yùn)行的應(yīng)用程序、API或WEB環(huán)境并檢查不安全行為。DAST 可以手動(dòng)執(zhí)行(滲透測(cè)試)或自動(dòng)執(zhí)行(漏洞掃描),一般來說,DAST工具指的是自動(dòng)掃描程序。
DAST通過模擬與網(wǎng)站交互的行為來工作,現(xiàn)代漏洞掃描程序具有內(nèi)置的 Web
瀏覽器,用于加載頁(yè)面、執(zhí)行測(cè)試并觀察指示漏洞的反應(yīng)。由于它們專為自動(dòng)化和自主測(cè)試而設(shè)計(jì),因此需要支持身份驗(yàn)證、CSRF 令牌以及訪問和測(cè)試網(wǎng)頁(yè)和 API
端點(diǎn)所需的其他機(jī)制。
DAST優(yōu)點(diǎn):
識(shí)別可利用的安全漏洞、配置錯(cuò)誤、無效的安全標(biāo)頭以及其他只能在運(yùn)行時(shí)檢測(cè)到的問題;
與技術(shù)無關(guān),客觀地評(píng)估應(yīng)用程序的安全性,不受開發(fā)語(yǔ)言、框架或技術(shù)的限制;
不需要源代碼,因此它可以測(cè)試所有正在運(yùn)行的組件,無論其來源如何(包括動(dòng)態(tài)依賴項(xiàng))
可以檢測(cè)已知的安全漏洞和攻擊模式。通過使用已知漏洞數(shù)據(jù)庫(kù)和攻擊簽名,DAST工具可以幫助發(fā)現(xiàn)應(yīng)用程序中的常見漏洞,如跨站腳本(XSS)、SQL注入等。
DAST缺點(diǎn):
需要一個(gè)正在運(yùn)行的應(yīng)用程序進(jìn)行測(cè)試(即使只是一個(gè)最小的原型);
測(cè)試僅涵蓋測(cè)試期間運(yùn)行的代碼;
報(bào)告的問題位置可能不如其他方法精確;
只能從外部對(duì)應(yīng)用程序進(jìn)行測(cè)試,無法評(píng)估應(yīng)用程序的內(nèi)部安全性措施和實(shí)現(xiàn);無法檢測(cè)到代碼中的邏輯漏洞和設(shè)計(jì)缺陷。
交互式應(yīng)用程序安全測(cè)試(IAST)
交互式應(yīng)用程序安全測(cè)試 (IAST)通常又被稱為灰盒測(cè)試,IAST結(jié)合了SAST和DAST,與單獨(dú)的SAST相比,IAST可以捕獲一些動(dòng)態(tài)安全問題并驗(yàn)證可利用性。與單獨(dú)的DAST相比,IAST可以查明應(yīng)用程序代碼中的問題,并顯示為什么可能受到攻擊。
IAST優(yōu)點(diǎn):
可以在應(yīng)用程序運(yùn)行時(shí)獲取實(shí)時(shí)的上下文信息,包括參數(shù)、會(huì)話狀態(tài)和數(shù)據(jù)庫(kù)狀態(tài)等;
可以跟蹤應(yīng)用程序的執(zhí)行路徑,包括敏感數(shù)據(jù)的流動(dòng)和潛在的漏洞;
可以模擬實(shí)際攻擊,包括注入攻擊、跨站腳本(XSS)等常見攻擊模式;
集成到CI/CD流水線中,可實(shí)時(shí)監(jiān)測(cè)應(yīng)用程序的安全性。
IAST缺點(diǎn):
為了使用IAST,需要將特定的代理程序或傳感器部署到應(yīng)用程序中;
在應(yīng)用程序運(yùn)行時(shí)進(jìn)行監(jiān)控和分析,可能會(huì)對(duì)應(yīng)用程序的性能產(chǎn)生一定影響;
盡管可以提供深入的漏洞分析,但仍受限于特定執(zhí)行路徑和測(cè)試用例的覆蓋范圍。
在選擇測(cè)試工具時(shí),每種測(cè)試工具和方法在特定情況下都有其優(yōu)缺點(diǎn)。全面的應(yīng)用程序安全計(jì)劃應(yīng)包含多種類型的安全測(cè)試,以便在開發(fā)過程中盡早發(fā)現(xiàn)盡可能多的漏洞。理想情況下,至少需要SAST工具在代碼編寫階段檢測(cè)由代碼問題引起的缺陷和安全漏洞,用 DAST 在 SDLC 中運(yùn)行動(dòng)態(tài)安全測(cè)試,以及SCA檢測(cè)所依賴的開源組件未過時(shí)或易受攻擊。
