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