Veracode年度軟件安全狀況報(bào)告對(duì)應(yīng)用程序進(jìn)行了掃描,結(jié)果發(fā)現(xiàn)80%的應(yīng)用程序存在安全漏洞,其中大部分是多年來(lái)一直是Web應(yīng)用程序組成部分的已知問(wèn)題。Akamai最新的《互聯(lián)網(wǎng)安全狀況報(bào)告》分析了通過(guò)其基礎(chǔ)設(shè)施的網(wǎng)絡(luò)流量,發(fā)現(xiàn)“2023年第一季度至2024年第一季度期間,針對(duì)應(yīng)用程序和API的網(wǎng)絡(luò)攻擊激增了49%。應(yīng)用程序和API需求的指數(shù)級(jí)增長(zhǎng)使它們成為威脅行為者尋求利用安全漏洞以非法訪問(wèn)其目標(biāo)的有價(jià)值數(shù)據(jù)的獲利目標(biāo)。”
幾十年來(lái),軟件開發(fā)人員已經(jīng)看到了為應(yīng)對(duì)這些趨勢(shì)而提出的各種安全倡議,如安全設(shè)計(jì)、深度防御、左移、DevSecOps等高大上的概念,但不安全的應(yīng)用程序問(wèn)題仍然存在,這是因?yàn)橐粋€(gè)制作粗糙的應(yīng)用程序可能會(huì)為企業(yè)的整個(gè)網(wǎng)絡(luò)打開大門,并導(dǎo)致大規(guī)模的數(shù)據(jù)泄露。
以下是五個(gè)避免可能導(dǎo)致重大企業(yè)安全后果的錯(cuò)誤決策的出發(fā)點(diǎn),以及關(guān)于如何避免這些錯(cuò)誤并加強(qiáng)安全防御的建議。
糟糕的輸入控制
編寫任何代碼都要從了解需要什么數(shù)據(jù)輸入開始,這意味著要注意這些輸入是如何被應(yīng)用程序使用的。對(duì)這些輸入幾乎沒有或完全沒有控制,這就是跨站腳本攻擊或SQL注入攻擊發(fā)生的原因,因?yàn)檫@些(和其他漏洞利用)利用了寬松的輸入控制。
Tanya Janca正在撰寫關(guān)于應(yīng)用程序安全的第二本書,并多年來(lái)一直就此主題提供咨詢,她告訴記者:“非常常見的一種做法是缺乏或錯(cuò)誤的輸入驗(yàn)證。”Snyk也在博客中談到了這一點(diǎn),稱開發(fā)人員需要“確保準(zhǔn)確的輸入驗(yàn)證,并確保數(shù)據(jù)在語(yǔ)法和語(yǔ)義上都是正確的。”Stackhawk寫道:“始終確保后端輸入得到正確驗(yàn)證和清理。”
鑒于這種建議的頻繁出現(xiàn),為什么我們?nèi)匀挥袥]有適當(dāng)輸入控制的應(yīng)用程序?一個(gè)原因是開發(fā)人員通常為了簡(jiǎn)化測(cè)試而開始編寫沒有控制的應(yīng)用程序,并且只是忘記回頭審查自己的工作,另一個(gè)原因是他們最初或可能永遠(yuǎn)都不關(guān)注安全性——這就是“左移”運(yùn)動(dòng)的起源。
CISA最新的最佳實(shí)踐建議產(chǎn)品系統(tǒng)地執(zhí)行參數(shù)化查詢,并將命令輸入與命令本身的內(nèi)容分開。
糟糕的身份驗(yàn)證和寬松的權(quán)限管理
第二個(gè)常見問(wèn)題與應(yīng)用程序中缺乏堅(jiān)實(shí)的身份驗(yàn)證和基于角色的權(quán)限管理有關(guān),這并不是什么新鮮事,但往往被急于編寫和發(fā)布更多代碼的appdev團(tuán)隊(duì)所忽視。在這里,創(chuàng)建并始終遵守訪問(wèn)規(guī)則、實(shí)施多因素身份驗(yàn)證(特別是對(duì)于管理人員和管理員),以及從任何編碼項(xiàng)目或資源中消除默認(rèn)(或缺失)密碼都很重要。
身份驗(yàn)證不嚴(yán)格的一個(gè)方面與所謂的“秘密泄露”有關(guān),即在代碼中硬編碼憑據(jù)的錯(cuò)誤做法,包括API和加密密鑰以及登錄密碼。Git Guardian跟蹤了這個(gè)問(wèn)題,并發(fā)現(xiàn)幾乎所有暴露此類秘密的漏洞在軟件作者被告知后至少五天內(nèi)仍然處于活動(dòng)狀態(tài)。他們發(fā)現(xiàn)十分之一的開源作者泄露了秘密,這意味著大約170萬(wàn)名開發(fā)者的行為不當(dāng)。
從個(gè)別供應(yīng)商到CISA自己的文件,許多最佳實(shí)踐指南中都反復(fù)提到了修復(fù)這一缺陷的方法,這里的目標(biāo)是確定誰(shuí)實(shí)際需要訪問(wèn)每個(gè)特定資源,并定期監(jiān)控這種關(guān)系,以確保角色仍然有效,這也意味著一旦不再需要數(shù)據(jù)訪問(wèn),就要?jiǎng)h除任何憑據(jù),并定期對(duì)這些憑據(jù)和權(quán)限進(jìn)行審計(jì)。
糟糕的API保護(hù)和枚舉
隨著API的激增以及應(yīng)用程序之間的連接日益緊密,開發(fā)人員需要保護(hù)這條通信路徑,并確保其使用安全。Salt Security對(duì)400人進(jìn)行了調(diào)查,幾乎每個(gè)人在2023年都經(jīng)歷了生產(chǎn)API的安全問(wèn)題,根據(jù)他們《2023年第一季度API安全狀況報(bào)告》,其中17%的人遭遇了與API相關(guān)的泄露事件。OPSWAT的Adam Rocker告訴記者:“不幸的是,威脅持續(xù)增長(zhǎng),潛在的攻擊面也在繼續(xù)增加。”
看看上個(gè)月Internet Archive發(fā)生的事情,他們?cè)庥隽巳螁为?dú)的泄露事件,都涉及保護(hù)不善的API密鑰。Gartner高級(jí)分析師Dale Koeppen告訴記者:“在面向公眾的資產(chǎn)上暴露的API增加了攻擊面,并成為惡意行為者的優(yōu)先目標(biāo)。”“應(yīng)用程序攻擊面呈指數(shù)級(jí)增長(zhǎng),這導(dǎo)致了代碼被倉(cāng)促編寫并推向市場(chǎng),從而被攻破。”
Janca告訴記者:“很容易找到?jīng)]有API網(wǎng)關(guān)的API。”“如果它們暴露在互聯(lián)網(wǎng)上,壞人就會(huì)找到它們,然后利用它們。”
Upwind.io首席執(zhí)行官Amiram Shachar表示,開發(fā)人員需要不斷測(cè)試API漏洞并實(shí)時(shí)監(jiān)控API流量,以識(shí)別威脅并簡(jiǎn)化響應(yīng)。“API安全不應(yīng)該是一個(gè)獨(dú)立的工具,而應(yīng)該是整體云安全包的一部分。”
根據(jù)F5《2024年應(yīng)用程序戰(zhàn)略狀況報(bào)告》,41%的受訪企業(yè)管理的API數(shù)量至少與單個(gè)應(yīng)用程序的數(shù)量一樣多,他們預(yù)測(cè),隨著AI實(shí)施的推進(jìn)和更復(fù)雜的應(yīng)用程序的構(gòu)建,API的比例將繼續(xù)增加。
但擁有一個(gè)API網(wǎng)關(guān)只是整體API治理策略的一部分,正如Internet Archive的開發(fā)人員不幸發(fā)現(xiàn)的那樣。企業(yè)需要在其整個(gè)API基礎(chǔ)設(shè)施上一致且全面地應(yīng)用安全策略,并能夠適應(yīng)新出現(xiàn)的威脅和異常行為。
糟糕的工具
接下來(lái)我們談?wù)劰ぞ摺T诰S護(hù)高級(jí)應(yīng)用安全(appsec)方面,工具挑戰(zhàn)有兩個(gè)方面,首先是收集正確的工具集來(lái)幫助發(fā)現(xiàn)和解決問(wèn)題,這是一個(gè)挑戰(zhàn)的原因是,沒有一種通用的安全工具,這意味著你的工具選擇需要仔細(xì)研究,以確保盡可能少的覆蓋漏洞。
Gartner建議從以下三種不同的工具開始:
• API網(wǎng)關(guān)。它們執(zhí)行兩項(xiàng)主要任務(wù):維護(hù)所有API的總體清單,以便更容易地進(jìn)行故障排除;測(cè)試和幫助調(diào)查第三方供應(yīng)商,并監(jiān)控所有API的可疑活動(dòng)。
• 代碼掃描和測(cè)試工具,幫助開發(fā)人員發(fā)現(xiàn)編碼錯(cuò)誤,識(shí)別和解決漏洞,這些工具在編寫代碼時(shí)保護(hù)軟件供應(yīng)鏈,防止諸如2020年SolarWinds Orion漏洞利用之類的災(zāi)難發(fā)生。
• 所謂的Web應(yīng)用防火墻實(shí)際上可以保護(hù)所有應(yīng)用程序免受SQL注入等攻擊,這些通常在更高的協(xié)議級(jí)別上運(yùn)行,但它們也可以用于阻止較低級(jí)別的基于網(wǎng)絡(luò)的攻擊,如DDoS或僵尸網(wǎng)絡(luò)。
但還有第二個(gè)問(wèn)題,即理解安全文化,以便你可以選擇正確的工具,這些工具實(shí)際上會(huì)被你的開發(fā)人員部署。Jeevan Singh在一篇博客中談到了這個(gè)問(wèn)題,提到你必須從小處著手,不要一次性購(gòu)買所有東西,“以免用大量的漏洞列表壓垮你的工程企業(yè)。你必須查看這些漏洞,了解并優(yōu)先考慮你想要保護(hù)的數(shù)據(jù)。”Singh發(fā)現(xiàn),許多企業(yè)選擇了不符合其業(yè)務(wù)需求的工具。“他們沒有將工具投入運(yùn)營(yíng),這意味著它們沒有集成到任何日常流程中。”
Veracode的信息很簡(jiǎn)單:經(jīng)常掃描你的應(yīng)用程序,使用各種技術(shù)進(jìn)行掃描,并了解應(yīng)用程序是如何構(gòu)建和修改的更大圖景,以便進(jìn)行持續(xù)修復(fù)。
有一些應(yīng)用程序安全產(chǎn)品結(jié)合了多個(gè)類別——Koeppen稱之為流量處理引擎——例如來(lái)自Barracuda、Imperva和F5的產(chǎn)品,這種整合可以幫助消除工具和警報(bào)疲勞,這最終會(huì)導(dǎo)致花費(fèi)大量時(shí)間追逐誤報(bào)。“最大的挑戰(zhàn)是妥善處理整體風(fēng)險(xiǎn)管理,”他告訴記者,“我們需要簡(jiǎn)化這一流程,并盡可能整合多種工具。”
自動(dòng)化使用不當(dāng)
這給我們帶來(lái)了最后一個(gè)問(wèn)題,即不經(jīng)常使用自動(dòng)化或自動(dòng)化使用效果不佳。即使有了最好的工具,警報(bào)也會(huì)堆積如山,并且需要時(shí)間來(lái)分析,這就是GenAI可以幫助的地方,因?yàn)樗梢钥焖僮R(shí)別誤報(bào),將在需要立即注意的警報(bào)之間建立聯(lián)系,并提供快速修復(fù),從而提高整個(gè)企業(yè)的安全性。Indusface總裁Venky Sundar告訴記者:“安全軟件,尤其是網(wǎng)站和API保護(hù)方面存在的最大問(wèn)題是誤報(bào)的普遍性。”
自動(dòng)化對(duì)于現(xiàn)代應(yīng)用安全環(huán)境至關(guān)重要,尤其是作為執(zhí)行定期滲透和漏洞測(cè)試的輔助手段,包括開放Web應(yīng)用程序安全項(xiàng)目(OWASP)和CISA在內(nèi)的許多安全專家都提出了這一建議。
Sundar表示:“有效利用AI可以幫助消除或減少誤報(bào)至最低限度,并鼓勵(lì)更多企業(yè)使用WAF來(lái)阻止它們。”
AI還可以用于過(guò)濾和減少警報(bào)疲勞。安全供應(yīng)商正在快速行動(dòng),許多工具現(xiàn)在都配備了生成式AI增強(qiáng)功能和使用機(jī)器學(xué)習(xí)模型以更快地發(fā)現(xiàn)惡意軟件和識(shí)別惡意趨勢(shì)的方法。
盡管存在這些問(wèn)題,但整體情況還是顯示出一些希望的跡象。Veracode在其報(bào)告中指出,最嚴(yán)重編碼缺陷的比例現(xiàn)在是2016年的一半,但嚴(yán)重的編碼錯(cuò)誤仍然存在,平均而言,每個(gè)典型的應(yīng)用程序每兆字節(jié)的編寫代碼中就有42個(gè)漏洞,這個(gè)數(shù)字仍然太高。
Janca提供了一些希望:“總體來(lái)說(shuō),情況正在好轉(zhuǎn),新開發(fā)人員往往比很久以前接受培訓(xùn)的開發(fā)人員更具安全意識(shí)。”
企業(yè)網(wǎng)D1net(r5u5c.cn):
國(guó)內(nèi)主流的to B IT門戶,旗下運(yùn)營(yíng)國(guó)內(nèi)最大的甲方CIO專家?guī)旌椭橇敵黾吧缃黄脚_(tái)-信眾智(www.cioall.com)。旗下運(yùn)營(yíng)19個(gè)IT行業(yè)公眾號(hào)(微信搜索D1net即可關(guān)注)。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需在文章開頭注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。