什么是安全漏洞?
安全漏洞是IT資源中可能被攻擊者利用的錯誤或缺陷,其形式多種多樣。安全漏洞可能是應用程序源代碼中的一個編碼錯誤,能夠被用于發動緩沖區溢出攻擊。它可能是開發人員的疏忽,忘記在應用程序中對輸入內容妥當地進行驗證,從而使注入攻擊成為可能。它可能是訪問控制策略或網絡配置中的一個錯誤配置,使外部人士能夠訪問敏感資源。
安全漏洞、漏洞利用、漏洞威脅、漏洞攻擊
“安全漏洞”、“漏洞利用”、“漏洞威脅”和“漏洞攻擊”這幾個詞往往會接連出現。然而,盡管這些術語密切相關,但它們各自指的是可能導致安全事件的事件鏈中不同部分:
· 安全漏洞是有可能被利用以發動攻擊的缺陷。
· 漏洞利用是指利用漏洞來執行攻擊的方法。比如,將惡意代碼注入到應用程序中,就可能造成漏洞利用。
· 漏洞威脅是導致漏洞利用發生的一組必要條件。威脅可能只存在于軟件在某個操作系統上運行之時,或者當攻擊者能夠訪問某個界面時。
· 漏洞攻擊是指發生的攻擊。當威脅者成功地執行一個漏洞時,就會發生漏洞攻擊。
· 由于安全漏洞構成了上述漏洞利用、漏洞威脅和漏洞攻擊的基礎,對漏洞進行檢測是將安全風險扼殺在萌芽狀態的最佳方式。如果消除了漏洞,也就消除了其可能導致的漏洞利用、漏洞威脅和潛在的漏洞攻擊。
安全漏洞的主要類型
雖然IT環境中可能存在各種各樣安全漏洞,但大多數都歸屬于以下四類:
· 惡意代碼: 惡意方插入代碼庫的代碼(如惡意軟件),可被利用,以對系統進行未授權訪問或對應用程序進行控制。
· 錯誤配置:云身份和訪問管理(IAM)規則等的配置錯誤,提供了對敏感數據的公共訪問,可能導致漏洞攻擊。
· 編碼缺陷: 編碼錯誤或疏忽(例如未能執行輸入驗證,因此不能檢測旨在獲得未授權訪問的應用程序輸入),可能導致漏洞。
· 缺少加密: 未妥善加密的的數據,無論是靜態數據還是網絡中正在傳輸的數據,都容易受到攻擊。
檢測應用程序的安全漏洞
鑒于安全漏洞形式多樣,對其檢測也需要多管齊下。有多種技術有助于發現安全風險。
靜態應用安全分析
靜態應用安全分析(SAST)是安全測試的一個類別,通過掃描源代碼和(在某些情況下)二進制代碼,以確定其中存在的漏洞。通常情況下,SAST會尋找漏洞的“簽名”,如已知不安全的依賴項。
動態應用安全分析
動態應用安全分析(DAST)通過對測試環境中的應用自動發起主動攻擊來識別漏洞。如攻擊成功,則能揭示應用程序中的漏洞。
滲透測試
在滲透測試中,安全測試人員會手動嘗試識別和利用漏洞。滲透測試不同于DAST之處在于,滲透測試需要安全專家來主動尋找漏洞,而DAST則有賴于自動攻擊模擬。
圖像掃描器
圖像掃描器(例如JFrog Xray)能夠在軟件被編譯或打包后檢測其漏洞。因此,對于識別應用程序包中可能招致攻擊的薄弱依賴項或配置,圖像掃描器是非常有用的。例如,圖像掃描器可以檢查容器圖像,以確定該圖像的任何依賴項是否包含漏洞。
配置審計
配置審計工具通常用于驗證承載應用程序的基礎設施的配置,而非應用程序本身(盡管在某些情況下,配置審計可在定義了應用程序設置的配置文件上執行)。
例如,云環境的配置審計能夠檢測不安全的IAM規則或網絡配置。此外,配置審計器可用于掃描Kubernetes環境,以檢測Kubernetes安全上下文、網絡策略或其他會削弱環境安全態勢的設置中的錯誤配置。