網絡安全知識:防止Web應用程序訪問控制濫用
概括
澳大利亞信號局的澳大利亞網絡安全中心 (ACSC)、美國網絡安全和基礎設施安全局 (CISA) 以及美國國家安全局 (NSA) 聯合發布此網絡安全公告,以警告 Web 應用程序和組織的供應商、設計人員和開發人員使用有關不安全直接對象引用 (IDOR) 漏洞的 Web 應用程序。IDOR 漏洞是訪問控制漏洞,惡意行為者可以通過向網站或 Web 應用程序編程接口 (API) 發出指定其他有效用戶的用戶標識符的請求來修改或刪除數據或訪問敏感數據。如果無法執行足夠的身份驗證和授權檢查,這些請求就會成功。
這些漏洞在數據泄露事件中經常被惡意行為者利用,因為它們很常見,在開發過程之外很難預防,并且可能被大規模濫用。IDOR 漏洞已導致數百萬用戶和消費者的個人、財務和健康信息遭到泄露。
ACSC、CISA 和 NSA 強烈鼓勵供應商、設計人員、開發人員和最終用戶組織實施本通報緩解部分中的建議(包括以下內容),以減少 IDOR 缺陷的流行并保護其系統中的敏感數據。
- Web 應用程序框架和 Web 應用程序的供應商、設計者和開發人員:實施設計安全和默認原則,并確保軟件對每個修改、刪除和訪問敏感數據的請求執行身份驗證和授權檢查。
使用自動化工具進行代碼審查來識別和修復 IDOR 和其他漏洞。
使用間接引用映射,確保 ID、名稱和鍵不會在 URL 中公開。將它們替換為加密強度高的隨機值 - 特別是使用通用唯一標識符 (UUID) 或全局唯一標識符 (GUID)。
選擇要合并到應用程序中的第三方庫或框架時要進行盡職調查,并使所有第三方框架和依賴項保持最新。
- 所有最終用戶組織,包括采用軟件即服務 (SaaS) 模式的組織:
部署本地軟件、基礎設施即服務 (IaaS) 或私有云模型的最終用戶組織:
選擇 Web 應用程序時要進行盡職調查。遵循供應鏈風險管理的最佳實踐,并且僅從信譽良好的供應商處采購。
盡快為Web應用打上軟件補丁。
查看 Web 應用程序中可用的身份驗證和授權檢查,以允許修改數據、刪除數據或訪問敏感數據。
定期進行主動漏洞掃描和滲透測試,以幫助確保面向互聯網的 Web 應用程序和網絡邊界的安全。
技術細節
描述
IDOR 漏洞是 Web 應用程序(以及使用受影響的 Web API 的手機應用程序 [應用程序])中的訪問控制漏洞,當應用程序或 API 使用標識符(例如 ID 號、名稱或密鑰)直接訪問對象(例如,數據庫記錄),但沒有正確檢查提交請求的用戶的身份驗證或授權。根據 IDOR 漏洞的類型,惡意行為者可以訪問敏感數據、修改或刪除對象或訪問功能。
- 當用戶可以訪問他們不應以相同權限級別訪問的數據(例如其他用戶的數據)時,就會出現橫向 IDOR 漏洞。
- 當用戶可以訪問他們不應該訪問的數據時,就會出現垂直 IDOR 漏洞,因為這些數據需要更高的權限級別。
- 當用戶可以修改或刪除他們不應修改或刪除的對象時,就會出現對象級 IDOR 漏洞。
- 當用戶可以訪問他們不應該訪問的功能或操作時,就會出現功能級 IDOR 漏洞。
通常,這些漏洞的存在是因為對象標識符被公開、在外部傳遞或容易被猜測,從而允許任何用戶使用或修改該標識符。
- 在正文操作中,參與者修改 POST 請求正文中的 HTML 表單字段數據以影響目標記錄。
- 在URL 篡改中,攻擊者修改 URL 中的標識符以影響目標記錄。
- 在Cookie ID 操縱中,攻擊者將 Cookie 中的標識符修改為不同用戶(包括管理用戶)的標識符,以嘗試獲得對該賬戶的訪問權限。
- 在HTTP/JSON 請求篡改中,攻擊者使用 Web 代理來攔截和更改合法請求的任意部分,包括 JSON 對象內的值。
影響
這些漏洞很常見[1],并且在開發過程之外很難預防,因為每個用例都是獨特的,無法通過簡單的庫或安全功能來緩解。此外,惡意行為者可以使用自動化工具大規模檢測和利用它們。這些因素使最終用戶組織面臨數據泄露(信息無意暴露)或大規模數據泄露(惡意行為者獲取暴露的敏感信息)的風險。IDOR 漏洞導致的數據泄露或破壞包括:
- 2021 年 10 月發生的全球數據泄露事件,不安全的“跟蹤軟件”應用程序泄露了數十萬臺設備的手機數據,包括短信、通話記錄、照片和地理位置。[2] 這些應用程序收集并轉發來自手機的據到相同的外國服務器基礎設施,其中包含 IDOR 漏洞CVE-2022-0732。[ 3] 這導致所收集的應用程序數據暴露。[ 4]
- 2019 年的一次數據泄露事件,來自美國金融服務部門組織的超過 8 億份個人財務文件被泄露,包括銀行對賬單、銀行賬號和抵押付款文件。[ 5],[ 6]
- 2012 年的一次數據泄露事件中,惡意網絡攻擊者從美國通信部門組織的公開訪問網站獲取了超過 100,000 名移動設備所有者的個人數據。[ 7]
緩解措施
供應商和開發商
ACSC、CISA 和 NSA 建議 Web 應用程序的供應商、設計者和實施者(包括構建和部署供內部使用的軟件(例如 HR 工具)的組織以及創建開源項目的組織)實施以下緩解措施。這些緩解措施可能會減少軟件中 IDOR 漏洞的流行,并有助于確保產品在設計上和默認情況下都是安全的。
- 在軟件開發生命周期 (SDLC) 的每個階段實施并注入安全設計和默認原則和最佳實踐。美國國家安全技術研究所 (NIST) 的安全軟件開發框架 (SSDF) SP 800-218中定義了具體推薦的做法。特別注意:
在預期用途的背景下審查和評估第三方組件。
通過哈希或簽名驗證來驗證產品的完整性。
如果提供,請在使用組件之前檢查其軟件物料清單 (SBOM)是否有過時、易受攻擊或未經授權的應用程序。
使所有第三方框架和依賴項保持最新,以限制漏洞繼承。注意:組織應維護第三方框架和依賴項的清單或目錄,以協助主動更新。考慮使用工具來識別項目依賴性和第三方代碼中的已知漏洞。有關更多信息,請參閱 OWASP 2018 年十大主動控制,C2:利用安全框架和庫有關更多信息,請參閱聯合持久安全框架的《保護軟件供應鏈:開發人員推薦實踐指南》、CISA 的供應鏈風險管理要點和 ACSC 的網絡供應鏈風險管理
使用間接引用映射,這樣 ID、名稱和鍵就不會在 URL 中公開。將它們替換為加密強度高的隨機值 - 特別是使用 UUID 或 GUID。注意: UUID 和 GUID 不應用于安全功能。有關詳細信息,請參閱征求意見 (RFC) 4122 。將應用程序配置為默認拒絕訪問,并確保應用程序對每個修改數據、刪除數據和訪問敏感數據的請求執行身份驗證和授權檢查。例如:
在可行的情況下,使用驗證碼來限制自動無效的用戶請求。
- 盡可能使用內存安全的編程語言。
語法驗證驗證每個輸入的傳入值是否滿足應用程序的期望。進行語法驗證時,請驗證字符串是否在所需的最小和最大長度內、字符串不包含不可接受的字符、數值是否在最小和最大邊界內以及輸入的數據類型是否正確。
邏輯驗證添加了檢查,以查看輸入值是否有意義并且與設計意圖一致。進行邏輯驗證時,驗證授權檢查是否在正確的位置執行、具有不同的血統,并且對失敗的身份驗證和授權請求進行錯誤處理。
規范化請求。有多種方法可以對網絡輸入進行編碼和解碼。在創建訪問控制檢查點之前對輸入進行解碼和標準化。確保訪問控制系統和 Web 應用程序的其他部分執行相同的標準化。
利用語法和邏輯驗證實施參數驗證,以便 Web 應用程序驗證每個 HTTP/S 請求收到的所有輸入。拒絕無效請求可以減輕訪問控制系統的負擔。
ACSC、CISA 和 NSA 建議對所有受支持的版本使用自動代碼分析工具來識別和修復漏洞。
根據同行編碼標準進行代碼審查[ SSDF PW 7.2、RV 1.2 ],檢查后門、惡意內容或邏輯缺陷。
- 遵循Web 和移動應用程序的 安全編碼實踐[ SSDF PW 5.1 ],以確保它們正確驗證用戶輸入并生成強大的用戶 ID。
測試代碼以識別漏洞并驗證是否符合安全要求 [ SSDF PW 8.2 ]。
使用自動化測試工具來促進測試,使用模糊測試具來查找輸入處理問題,[ 8]并使用滲透測試來模擬威脅行為者如何利用軟件。考慮使用動態應用程序安全測試 (DAST) 工具來識別 Web 應用程序中的 IDOR 漏洞。
- 對負責安全軟件開發的人員進行基于角色的培訓[ SSDF PO 2.2 ]。
在選擇要合并到您的應用程序中的第三方庫或框架時進行盡職調查[ SSDF PW 4.1 ]。
- 建立漏洞披露計劃,驗證和解決組織內部或外部人員披露的安全漏洞。
此外,ACSC、CISA 和 NSA 建議在生產和企業環境中遵循網絡安全最佳實踐。軟件開發人員是高價值目標,因為他們的客戶在自己的可信網絡上部署軟件。有關最佳實踐,請參閱:
- ACSC 的八項基本要素八項基本策略是幫助網絡安全專業人員減輕各種網絡威脅引起的網絡安全事件的優先策略。
- CISA 的跨部門網絡安全績效目標(CPG)。CPG 由 CISA 和 NIST 開發,是 IT 和 OT 安全實踐的優先子集,可以有效降低已知網絡風險以及常見策略、技術和程序的可能性和影響。由于 CPG 是最佳實踐的子集,ACSC、CISA 和 NSA 還建議軟件制造商基于公認的框架(例如 NIST網絡安全框架 (CSF))實施全面的信息安全計劃。
- NSA 的十大網絡安全緩解措施。十大組織為企業活動設定了優先事項,以應對廣泛的利用技術并最大限度地減少任務影響。
所有最終用戶組織
ACSC、CISA 和 NSA 建議所有最終用戶組織(包括擁有本地軟件、SaaS、IaaS 和私有云模型的組織)實施以下緩解措施,以改善其網絡安全狀況。
- 選擇網絡應用程序時要進行盡職調查。遵循供應鏈風險管理的最佳實踐,并從信譽良好的供應商處采購,這些供應商表現出對設計安全和默認原則的承諾。
通過哈希或簽名驗證來驗證產品的完整性。
如果提供,請在使用產品之前 查看SBOM是否有過時、易受攻擊或未經授權的應用程序。
有關詳細信息,請參閱持久安全框架的《保護軟件供應鏈:客戶推薦實踐指南》、CISA 的供應鏈風險管理要點和 ACSC 的網絡供應鏈風險管理
- 盡快為Web應用打上軟件補丁。
- 配置應用程序以記錄篡改嘗試并生成警報- 網絡防御者可以利用此信息進行調查并采取適當的后續行動。
建立基線以有效識別異常行為。注意: Web 應用程序錯誤代碼(例如HTTP 404和 )HTTP 403與常見枚舉技術相關。
將日志聚合到集中式解決方案(例如安全信息和事件管理 [SIEM] 工具)中,以促進主動監控和威脅搜尋。
- 創建、維護和實施基本的網絡事件響應計劃 (IRP) 和相關的通信計劃。計劃應包括數據泄露和網絡事件的響應和通知程序。有關更多信息,請參閱:
ACSC:準備和應對網絡事件
ACSC:網絡事件響應計劃 - 指南
ACSC:網絡事件響應準備清單澳大利亞信息專員辦公室 (OAIC):數據泄露準備和響應
OIAC:數據泄露響應計劃
CISA:事件響應計劃基礎知識
CISA:聯邦政府網絡安全事件和漏洞響應手冊(雖然是為美國聯邦民事部門 (FCEB) 機構量身定制的,但這些手冊提供了規劃和開展網絡安全事件和漏洞響應活動的操作程序,以及事件和漏洞響應的詳細步驟。)
CISA:保護敏感信息和個人信息免遭勒索軟件導致的數據泄露
此外,ACSC、CISA 和 NSA 建議遵循網絡安全實踐。有關最佳實踐,請參閱 ACSC 的八項基本策略
CISA 的CPG和 NSA 的十大網絡安全緩解策略。
具有本地軟件、IaaS 或私有云模型的最終用戶組織
ACSC、CISA 和 NSA 建議組織:
- 定期進行主動滲透測試,以確保網絡邊界以及 Web 應用程序的安全。優先考慮面向互聯網并包含用戶登錄功能的 Web 應用程序。此類測試可能超出某些組織的技術或財務能力。考慮使用受信任的第三方進行滲透測試,以發現新的攻擊媒介(特別是在部署新的或更改的面向互聯網的服務之前)。注意:組織應酌情咨詢其法律顧問,以確定哪些系統和應用程序可以包含在滲透測試范圍內。
- 使用 Web 應用程序滲透測試工具捕獲在請求包含敏感數據的網頁時發送到 Web 服務器的用戶標識符,并映射用戶輸入用于直接引用對象的所有位置。使用不同權限級別的用戶(例如普通用戶和管理員用戶)進行測試。
- 使用 DAST 和其他漏洞掃描器來檢測 IDOR 漏洞。DAST 工具通過滲透測試識別 Web 應用程序中的漏洞并生成自動警報。注意:選擇 DAST 工具時要進行盡職調查。并非所有 DAST 工具都可以檢測 IDOR 漏洞 - 具有這種能力的工具可能需要以特定方式配置的環境,并且還可能需要適當的自定義規則。足夠的 DAST 工具通常會攝取應用程序 API 文檔來構建應用程序的模型。雖然這些工具可用于檢測 IDOR 漏洞,但它們并非萬無一失,應與其他安全測試方法結合使用以確保全面覆蓋。
- 立即向供應商或開發人員報告檢測到的漏洞。或者(或者如果供應商或開發人員未能做出響應),向 CISA 報告該漏洞。
- 考慮建立漏洞披露計劃驗證、解決和報告組織內部或外部人員披露的安全漏洞。
- 使用 Web 應用程序防火墻 (WAF)來過濾、監控和阻止流向 Web 應用程序的惡意 HTTP/S 流量。
- 使用數據丟失防護 (DLP) 工具來防止未經授權的數據離開應用程序。
ACSC、CISA 和 NSA 建議擁有本地軟件或 IaaS 的組織考慮將 SaaS 模型用于其面向互聯網的網站。
采用 SaaS 模式的最終用戶組織
擁有足夠資源的利用 SaaS 的組織可以考慮進行滲透測試并使用漏洞掃描器。然而,此類測試可能會干擾服務提供商的運營。組織應酌情咨詢其法律顧問,以確定滲透測試范圍內可以包含哪些內容。
事件響應
如果您或您的組織是數據泄露或網絡事件的受害者,請酌情遵循相關的網絡事件響應和溝通計劃。
- 澳大利亞:受到網絡安全事件影響或需要幫助的澳大利亞組織可以通過 1300 CYBER1 (1300 292 371) 聯系 ACSC,或向cyber.gov.au交報告。
- 美國:美國組織可以通過Report@cisa.dhs.gov
- cisa.gov/report或 (888) 282-0870向 CISA 的 24/7 運營中心報告網絡安全事件。如果有的話,請提供有關事件的信息:事件的日期、時間和地點;活動類型;受影響人數;用于活動的設備類型;提交公司或組織的名稱;以及指定的聯絡點。
資源
- 有關設計安全設計和默認產品的更多指導,請參閱聯合指南《改變網絡安全風險的平衡:設計安全和默認安全的原則和方法》。
- 有關防止數據泄露的更多指導,請參閱 ACSC 有關數據泄露的頁。
參考
[1] A01 訪問控制損壞 - OWASP Top 10:2021
[2]大規模“跟蹤軟件”泄露使數千人的手機數據面臨風險
[3]移動設備監控服務不對 API 請求進行身份驗證
[4]跟蹤軟件網絡泄露數十萬私人電話數據的背后
[5]第一美國金融公司泄露數億份產權保險記錄
[6]美國歷史上最大的數據泄露事件 [2023 年更新]
[7] AT&T 黑客“Weev”被判處 3.5 年監禁
[8]模糊測試 | OWASP基金會
后記:我們會發現,美西方國家對網絡安全體系化的控制,一直以來本公眾號在整理過程中,都是希望大家能夠以“拿來主義”精神,借鑒吸收提升自身網絡安全能力,同時看到差距后能夠自省我們的網絡安全工作。