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