隨著公司越來越依賴 IT 解決方案、敏捷設(shè)計(jì)方法的出現(xiàn)以及云中新應(yīng)用程序開發(fā)模型的引入,新應(yīng)用程序的創(chuàng)建速度比以往任何時(shí)候都快。低代碼和無代碼平臺(tái)的興起加速了這一趨勢(shì),并將應(yīng)用程序開發(fā)交到幾乎沒有或沒有 IT 或安全專業(yè)知識(shí)的用戶手中。
由于所有這些變化,Web應(yīng)用程序安全(AppSec) 世界也在不斷發(fā)展。更多的軟件意味著更多的漏洞,而大規(guī)模、高影響的漏洞——例如 Log4j——變得越來越普遍,而安全團(tuán)隊(duì)正在努力跟上。
保護(hù)組織及其應(yīng)用程序免受網(wǎng)絡(luò)安全威脅需要一種新的 AppSec 方法。公司必須擁抱預(yù)防思維,而不是努力識(shí)別和響應(yīng)應(yīng)用程序安全事件。此外,利用可用技術(shù)(例如人工智能 (AI) 和安全自動(dòng)化)可以在防御應(yīng)用程序漏洞和攻擊時(shí)發(fā)揮重要作用。
為什么 AppSec 很重要
組織部署的應(yīng)用程序構(gòu)成了其數(shù)字攻擊面的大部分。面向公眾的應(yīng)用程序——無論是內(nèi)部開發(fā)的還是由第三方開發(fā)的——都可能被用來竊取敏感信息、部署惡意軟件或?qū)M織采取其他行動(dòng)。
AppSec 很重要,因?yàn)樗菇M織能夠管理組織應(yīng)用程序在其整個(gè)生命周期中帶來的風(fēng)險(xiǎn)。AppSec 結(jié)合了開發(fā)最佳實(shí)踐和安全應(yīng)用程序配置、部署和管理,以減少組織應(yīng)用程序中存在的漏洞數(shù)量,并防止攻擊者利用這些漏洞。
最常見的應(yīng)用程序威脅和漏洞
組織的應(yīng)用程序在其整個(gè)生命周期中可能面臨各種威脅。常見應(yīng)用程序威脅和漏洞的一些示例包括:
- 供應(yīng)鏈風(fēng)險(xiǎn):應(yīng)用程序通常會(huì)導(dǎo)入和使用第三方庫(kù)和代碼。利用這些庫(kù)中的漏洞或向其中插入惡意代碼的供應(yīng)鏈攻擊對(duì)應(yīng)用程序安全的威脅越來越大。
- 帳戶接管:應(yīng)用程序中的用戶和管理員帳戶通常可以訪問敏感數(shù)據(jù)或特權(quán)功能。帳戶安全性差——弱密碼、網(wǎng)絡(luò)釣魚攻擊等——允許攻擊者訪問這些帳戶并濫用他們的特權(quán)來訪問數(shù)據(jù)或以其他方式損害組織。
- 注入漏洞:當(dāng)應(yīng)用程序無法正確驗(yàn)證和清理用戶輸入時(shí),就會(huì)出現(xiàn)注入漏洞。這可能會(huì)導(dǎo)致數(shù)據(jù)丟失、遠(yuǎn)程代碼執(zhí)行(RCE) 和其他問題。
- 拒絕服務(wù)(DoS)攻擊:內(nèi)部和外部應(yīng)用程序的可用性對(duì)于員工生產(chǎn)力和客戶體驗(yàn)至關(guān)重要。利用應(yīng)用程序中的漏洞或用流量淹沒應(yīng)用程序的拒絕服務(wù)攻擊可能會(huì)使合法用戶無法使用該應(yīng)用程序。
- 敏感數(shù)據(jù)泄露:應(yīng)用程序可能會(huì)通過密碼錯(cuò)誤、過于冗長(zhǎng)的日志和其他問題泄露敏感的公司和用戶數(shù)據(jù)。此數(shù)據(jù)可用于對(duì)用戶進(jìn)行欺詐或促進(jìn)以后的攻擊。
頂級(jí)應(yīng)用程序安全最佳實(shí)踐
有效的應(yīng)用程序安全計(jì)劃可以解決應(yīng)用程序在其整個(gè)生命周期中面臨的潛在風(fēng)險(xiǎn)和威脅。
一些應(yīng)用程序安全最佳實(shí)踐包括:
#1。從威脅評(píng)估開始
應(yīng)用程序可能容易受到各種各樣的威脅。了解應(yīng)用程序可能遭受的潛在攻擊對(duì)于正確確定補(bǔ)救措施的優(yōu)先級(jí)至關(guān)重要。威脅評(píng)估是識(shí)別組織最有可能面臨的威脅、它們的潛在影響以及組織已經(jīng)實(shí)施的安全解決方案的好方法。有了這些信息,組織就可以制定應(yīng)對(duì)這些潛在風(fēng)險(xiǎn)和威脅的戰(zhàn)略。
#2。實(shí)施 DevSecOps 最佳實(shí)踐
DevSecOps 或Shift Security Left運(yùn)動(dòng)專注于在軟件開發(fā)生命周期 (SDLC) 的早期集成安全性。DevSecOps不是將安全性降級(jí)到 SDLC 的測(cè)試階段,而是包括:
- 定義安全需求:在 SDLC 的需求階段,開發(fā)團(tuán)隊(duì)定義應(yīng)用程序必須包含的各種功能。除了功能和性能要求外,這還應(yīng)該包括安全要求,概述應(yīng)該到位的安全控制以及代碼中應(yīng)該緩解的潛在漏洞。
- 創(chuàng)建測(cè)試用例:開發(fā)人員通常創(chuàng)建測(cè)試用例來評(píng)估應(yīng)用程序是否符合定義的要求。一旦創(chuàng)建了安全需求,團(tuán)隊(duì)就可以創(chuàng)建測(cè)試用例來驗(yàn)證它們是否得到正確實(shí)施。
- 自動(dòng)化測(cè)試:盡可能自動(dòng)化是 DevOps 和 DevSecOps 的核心原則之一。自動(dòng)化安全測(cè)試,包括安全測(cè)試用例和使用應(yīng)用程序安全工具,例如靜態(tài)應(yīng)用程序安全測(cè)試(SAST)、動(dòng)態(tài)應(yīng)用程序安全測(cè)試(DAST) 和交互式應(yīng)用程序安全測(cè)試 (IAST),有助于減少摩擦并確保安全性實(shí)際上是在 SDLC 期間執(zhí)行的。
漏洞在生產(chǎn)代碼中很常見,造成這種情況的主要原因之一是在開發(fā)過程中低估了安全性。實(shí)施 DevSecOps 原則有助于解決這個(gè)問題并降低組織應(yīng)用程序的風(fēng)險(xiǎn)。
#3。管理權(quán)限
特權(quán)訪問管理 (PAM)在開發(fā)過程中必不可少。有權(quán)訪問組織開發(fā)環(huán)境的攻擊者可能會(huì):
- 訪問包含敏感信息的政策和流程文檔。
- 更改應(yīng)用程序代碼以引入漏洞、錯(cuò)誤或惡意代碼。
- 修改測(cè)試用例和測(cè)試代碼以引入安全漏洞。
- 禁用自動(dòng)安全測(cè)試。
- 修改安全工具設(shè)置。
這些事件中的任何一個(gè)都可能對(duì)組織的數(shù)據(jù)和應(yīng)用程序安全產(chǎn)生負(fù)面影響。基于最小權(quán)限原則實(shí)施強(qiáng)大的訪問控制,并通過使用多因素身份驗(yàn)證(MFA) 的強(qiáng)大身份驗(yàn)證支持,降低了攻擊者獲得開發(fā)環(huán)境訪問權(quán)限的風(fēng)險(xiǎn)以及他們利用該訪問權(quán)限可能造成的損害。
#4。監(jiān)控軟件供應(yīng)鏈
大多數(shù)(如果不是全部)應(yīng)用程序都依賴外部庫(kù)和組件來實(shí)現(xiàn)某些功能。從頭開始編寫代碼需要更長(zhǎng)的時(shí)間,并且可能導(dǎo)致代碼的性能和安全性降低,因此安全代碼重用是一種常見的開發(fā)最佳實(shí)踐。然而,軟件供應(yīng)鏈越來越成為攻擊的目標(biāo)。網(wǎng)絡(luò)威脅行為者可能會(huì)以廣泛使用的庫(kù)中的漏洞為目標(biāo),或者將漏洞或惡意代碼注入到這些庫(kù)中。
軟件供應(yīng)鏈管理對(duì)于強(qiáng)大的應(yīng)用程序安全性至關(guān)重要。軟件組成分析 (SCA) 解決方案可以通過識(shí)別應(yīng)用程序中使用的庫(kù)和第三方代碼來幫助管理供應(yīng)鏈風(fēng)險(xiǎn)。使用此列表,開發(fā)團(tuán)隊(duì)可以識(shí)別和修復(fù)任何已知漏洞,并對(duì)過時(shí)的組件應(yīng)用更新。
#5。利用自動(dòng)化和人工智能
開發(fā)和安全團(tuán)隊(duì)通常具有廣泛的責(zé)任和緊迫的時(shí)間表。通常,在開發(fā)過程中安全性被低估了,因?yàn)闈M足發(fā)布截止日期可能需要時(shí)間和資源。人工智能 (AI) 和安全自動(dòng)化可以幫助減少開發(fā)過程中的安全資源需求。AI 可以幫助解析警報(bào)和日志文件,以提請(qǐng)開發(fā)人員和安全人員注意問題,同時(shí)最大限度地減少誤報(bào)。安全自動(dòng)化確保測(cè)試運(yùn)行,同時(shí)最大限度地減少開銷和它們對(duì)開發(fā)人員和發(fā)布時(shí)間表的影響。
#6。優(yōu)先修復(fù)
生產(chǎn)應(yīng)用程序中的漏洞數(shù)量很多,而且可能是壓倒性的。在大多數(shù)情況下,組織缺乏資源來修復(fù)其部署的軟件中的每個(gè)漏洞。因此,如果公司仍在努力跟上步伐,他們就會(huì)在漏洞管理方面落后。
適當(dāng)?shù)膬?yōu)先級(jí)排序?qū)τ谟行У穆┒垂芾碇陵P(guān)重要。只有一小部分漏洞是可利用的。更少的人將被網(wǎng)絡(luò)威脅行為者積極利用。這些具有活躍漏洞利用的漏洞可能會(huì)給組織帶來不同程度的風(fēng)險(xiǎn)。
在安全測(cè)試過程中,不僅應(yīng)該使用自動(dòng)化工具來識(shí)別漏洞,還應(yīng)該跟蹤它們的嚴(yán)重性和可利用性。這些自動(dòng)化指標(biāo)——在需要時(shí)由自動(dòng)化分析支持——可用于確定哪些漏洞對(duì)組織構(gòu)成真正威脅。在此基礎(chǔ)上,團(tuán)隊(duì)可以制定補(bǔ)救策略,確保花在漏洞管理上的時(shí)間和資源為組織提供真正的價(jià)值和顯著的投資回報(bào) (ROI)。
#7。跟蹤 AppSec 結(jié)果
與企業(yè)所做的一切一樣,應(yīng)用程序安全性也需要時(shí)間和資源。然而,應(yīng)用程序安全的好處和 ROI 可能很難看到,因?yàn)閼?yīng)用程序安全的成功故事正在消除一個(gè)漏洞,否則該漏洞會(huì)給組織帶來破壞性和代價(jià)高昂的網(wǎng)絡(luò)安全事件。由于證明否定是困難的,因此證明應(yīng)用程序安全程序的價(jià)值需要識(shí)別和跟蹤程序正在產(chǎn)生清晰、可衡量的差異的指標(biāo)。
這方面的一些例子包括:
- 開發(fā)過程中檢測(cè)到的漏洞數(shù)量。
- 在生產(chǎn)應(yīng)用程序中檢測(cè)到的漏洞數(shù)量。
- 由于漏洞被利用而導(dǎo)致的安全事件數(shù)量。
- 違反內(nèi)部 AppSec 政策的次數(shù)。
- 違反公司和監(jiān)管合規(guī)要求的次數(shù)。
理想情況下,隨著安全開發(fā)實(shí)踐和 AppSec 策略在開發(fā)團(tuán)隊(duì)中根深蒂固,AppSec 計(jì)劃將導(dǎo)致所有這些指標(biāo)隨著時(shí)間的推移而下降。然而,即使將開發(fā)中檢測(cè)到的漏洞與生產(chǎn)中檢測(cè)到的漏洞作為安全事件的一部分進(jìn)行的轉(zhuǎn)變也是成功的,因?yàn)樗档土寺┒磳?duì)組織造成的成本和損害。