軟件漏洞有哪些常見類型?如何利用DAST和SAST優(yōu)化測(cè)試
網(wǎng)絡(luò)犯罪是一個(gè)骯臟的游戲,黑客會(huì)使用書中的每一個(gè)技巧來(lái)突破你的安全系統(tǒng)。然而,有一些屢試不爽的方法,犯罪分子往往更喜歡,讓我們有辦法預(yù)測(cè)和防止惡意行為。讓我們來(lái)看看幾個(gè)主要的攻擊途徑。
SQL注入攻擊
SQL注入(SQLi)是最古老的網(wǎng)絡(luò)攻擊類型之一,也是一個(gè)網(wǎng)絡(luò)應(yīng)用程序可能存在的最危險(xiǎn)的漏洞之一。SQLi攻擊的目標(biāo)是網(wǎng)頁(yè)或應(yīng)用程序中易受攻擊的用戶輸入,以執(zhí)行惡意的SQL語(yǔ)句,并繞過(guò)安全措施來(lái)訪問(wèn)整個(gè)SQL數(shù)據(jù)庫(kù),并可能添加、修改或刪除記錄。
它們可能被用來(lái)訪問(wèn)敏感的商業(yè)機(jī)密、客戶信息、個(gè)人身份信息(PII)、知識(shí)產(chǎn)權(quán)(IP)等。這種暴露可以適用于任何使用SQL數(shù)據(jù)庫(kù)的網(wǎng)站或網(wǎng)絡(luò)應(yīng)用,如MySQL、Oracle、SQL Server或其他流行的選項(xiàng)。
跨站腳本(XSS)攻擊
XSS攻擊是一種特別討厭的客戶端代碼注入類型,允許黑客利用已知的漏洞,將腳本注入到網(wǎng)頁(yè)中,因此毫無(wú)戒心的用戶得到了從可信來(lái)源傳遞的惡意內(nèi)容。XSS攻擊可以用來(lái)繞過(guò)訪問(wèn)控制,如同源策略,或基于角色的訪問(wèn)控制(RBAC),其范圍可以從瑣碎的、低影響的活動(dòng)到災(zāi)難性的系統(tǒng)故障。
分布式拒絕服務(wù)攻擊
黑客經(jīng)常使用DDoS來(lái)滲透一個(gè)應(yīng)用程序,使其流量過(guò)載以破壞服務(wù)。這有點(diǎn)像人為制造的交通堵塞,只是為了讓人們難以通行。這種類型的攻擊通常針對(duì)銀行和其他金融網(wǎng)關(guān)等知名企業(yè),而且不需要太多的腳本或編碼知識(shí)就可以執(zhí)行。
如何使用DAST和SAST來(lái)優(yōu)化測(cè)試
在比較SAST與DAST時(shí),開發(fā)人員經(jīng)常說(shuō)它們是相互補(bǔ)充的,但隨后只是推薦使用這兩種工具,這不一定是補(bǔ)充,因?yàn)樗皇窃谧鰞杉煌氖虑?。但是,你可以把SAST和DAST結(jié)合起來(lái)用于AppSec,以一種互補(bǔ)的方式,通過(guò)利用DAST使SAST對(duì)你的業(yè)務(wù)價(jià)值最大化。
動(dòng)態(tài)應(yīng)用安全測(cè)試(DAST)是一套測(cè)試方法,軟件開發(fā)人員通過(guò)模擬惡意行為來(lái)尋找應(yīng)用程序中的安全漏洞,以確定可能被利用的弱點(diǎn)。在黑盒測(cè)試中,DAST模擬了黑客會(huì)嘗試的相同類型的外部攻擊,但不需要了解或查看應(yīng)用程序的架構(gòu)或內(nèi)部源代碼。
靜態(tài)應(yīng)用安全測(cè)試(SAST)即分析應(yīng)用程序而不運(yùn)行它。有多種方法可以做到這一點(diǎn),從人工審查到度量分析,到模式分析,再到數(shù)據(jù)流分析。這被認(rèn)為是白盒測(cè)試。
為了更好地理解它是如何工作的,我們把軟件想象成一條裝配線,從生產(chǎn)線的末端開始,使用三步改進(jìn)過(guò)程來(lái)提高安全性。第一階段總比沒有好,但遠(yuǎn)不如第三階段好。
- 發(fā)布前的安全測(cè)試(第一階段):應(yīng)用安全的第一個(gè)階段是DAST。對(duì)于應(yīng)用程序的安全,我們采取最終的應(yīng)用程序,在發(fā)布前進(jìn)行構(gòu)建,并對(duì)其進(jìn)行搗毀,試圖以任何方式侵入它——這是DAST。
- 早期檢測(cè)——將安全向左轉(zhuǎn)移(第二階段):應(yīng)用安全改進(jìn)之旅的第二個(gè)階段增加了SAST,以解決這個(gè)周期內(nèi)的后期問(wèn)題。我們?nèi)绾文茉趹?yīng)用程序準(zhǔn)備好之前就開始安全測(cè)試?SAST是我們明顯的答案。SAST檢查器可以在我們有了代碼后立即運(yùn)行。
- 預(yù)防——領(lǐng)先于曲線(第三階段):為了超越SAST與DAST的關(guān)系,進(jìn)入一個(gè)完全互補(bǔ)的情況,我們可以利用DAST的結(jié)果來(lái)通知我們的SAST,調(diào)整我們的靜態(tài)分析規(guī)則配置,告訴我們需要尋找什么樣的安全弱點(diǎn)。以這種方式使用DAST,它可以使SAST告訴我們所需要的一切,關(guān)于安全漏洞來(lái)自哪里,我們?nèi)绾文軌驕p輕它們,以及我們?nèi)绾文軌蛞赃@樣一種方式編碼,使它們不會(huì)發(fā)生。
那么,這是如何工作的呢?首先,我們需要使用DAST的結(jié)果進(jìn)行根本原因分析。例如,對(duì)于SQL注入,我們需要確保數(shù)據(jù)在進(jìn)來(lái)的時(shí)候就被消毒了,所以我們不必依靠通過(guò)無(wú)數(shù)的路徑來(lái)追逐數(shù)據(jù),看看它是否能逃脫清洗。我們還需要研究像CERT中的SAST標(biāo)準(zhǔn),這樣我們就可以避免那些可能有效但不安全的結(jié)構(gòu),同時(shí)也可以強(qiáng)制執(zhí)行一些良好的行為,以加強(qiáng)我們的應(yīng)用程序,盡管這些行為在正常(不安全)的編程中可能是不必要的。正確的SAST規(guī)則可以防止在DAST中發(fā)現(xiàn)的問(wèn)題,而且我們不斷從DAST中學(xué)習(xí)如何配置和調(diào)整我們的SAST。
Parasoft滿足絕大多數(shù)行業(yè)標(biāo)準(zhǔn)
Parasoft是一家專門提供軟件測(cè)試解決方案的公司,幫助企業(yè)打造無(wú)缺陷的軟件。
從開發(fā)到質(zhì)量檢查,Parasoft的技術(shù)通過(guò)集成靜態(tài)和運(yùn)行時(shí)分析,單元、功能和API測(cè)試,以及服務(wù)虛擬化,在不犧牲質(zhì)量和安全性的情況下加快軟件交付,節(jié)約交付成本。
強(qiáng)大的報(bào)告和分析功能可幫助用戶快速查明有風(fēng)險(xiǎn)的代碼區(qū)域,并了解新代碼更改如何影響其軟件質(zhì)量,而突破性的技術(shù)將人工智能和機(jī)器學(xué)習(xí)添加到軟件測(cè)試中,使組織更容易采用和擴(kuò)展跨開發(fā)和測(cè)試團(tuán)隊(duì)的有效的軟件測(cè)試實(shí)踐。
Parasoft針對(duì)C/C++、Java、.NET和嵌入式的開發(fā)測(cè)試都有著30多年的深入研究,很多全國(guó)500強(qiáng)企業(yè)使用Parasoft的產(chǎn)品實(shí)現(xiàn)了軟件快速、高質(zhì)量的交付。