訪問控制中斷的風險
訪問控制是控制和監控使用者和應用程式對資源的訪問的過程。這通常包含在身份和訪問管理(IAM)的安全域下。該領域包括四個主要元素:1)識別2)身份驗證3)授權4)責任。這四個元素協同工作,以確保所有公司資源僅由應該有權訪問它們的人訪問,只要他們應該有權訪問,並且它要求監視使用者操作,並對所有使用者執行的操作負責。
近年來,失效的訪問控制已被證明是web應用程式中突出的漏洞之一。2021年,OWASP十大漏洞列表將訪問控制漏洞從第五位移至web應用程式漏洞列表的第一位。根據OWASP, 94%的應用程式被發現存在某種形式的訪問控制漏洞,平均發生率為3.81%。讓我們來看看為什麼訪問控制漏洞越來越多的一些原因:
應用程式的增加:在過去的10-20年裡,圍繞Web和移動應用程式的數字應用數量非常龐大。消費者現在希望大多數企業提供線上服務。應用程式越多,攻擊面就越多。
應用程式之間整合增加:應用程式變得比以往任何時候都更加互連,並且精確地管理允許與可能變得非常複雜的內容進行通訊的內容。有些裝置可以很好地協同工作,而另一些則需要更復雜的解決方案。更大的應用程式也有更大的攻擊面,包括更多的域、目錄、整合、功能等。
安全編碼培訓不足:許多開發人員根本沒有接受過很多關於建立安全程式碼的培訓。因此,許多應用程式的訪問控制實現可能無效或完全缺失。這會產生安全漏洞,允許使用者提升其許可權並獲得他們不應該擁有的訪問許可權。如果組織沒有強大的 DevSecOps 文化,允許沒有經驗的開發人員設定安全策略是失敗的原因。
可能導致訪問控制中斷漏洞的原因
身份驗證和會話管理中斷:當應用程式無法正確驗證或保護與使用者身份驗證和會話關聯的資訊時,就會發生損壞的身份驗證和會話管理缺陷。攻擊者可利用此漏洞獲取他們不應訪問的資源或資料的訪問許可權。一個常見的例子是 Json Web 令牌 (JWT)。這些令牌通常用於 Web 應用程式中的身份驗證。可以執行更改令牌簽名演算法的攻擊,這可用於規避依賴於 jwt 令牌完整性的身份驗證方法。
違規授權:授權是指允許使用者執行的操作。通常,使用者不允許執行的任何操作都不會顯示在其使用者介面中。但是,如果沒有正確實現訪問控制,則可以透過向相關操作/功能發出直接請求來訪問用於更高特權級別的功能。這將是應用程式中授權失效的一個示例。假設一個Web應用程式有一個只有授權管理員才能訪問的管理儀表板。但是,如果普通使用者能夠透過操縱URL訪問指示板,那麼這就是一個破壞的授權漏洞。攻擊者可以利用這一點訪問敏感資訊,修改或刪除資料,並執行其他網路攻擊。
注入缺陷:當不受信任的輸入注入到應用程式中時,就會發生注入缺陷,從而導致意外行為。可利用此漏洞未經授權訪問敏感資料或修改應用程式資料。這方面的一個例子是跨站點指令碼,這是一種通常使用 javascript 程式碼的注入攻擊。攻擊者可利用此漏洞在使用者的瀏覽器中執行惡意指令碼,從而導致會話劫持、cookie 盜竊或其他惡意活動。若要檢測此類漏洞,應檢查應用程式的原始碼,以確保所有使用者輸入在後端被接受之前都經過過濾/驗證。
訪問控制中斷的影響和風險
資料洩露:當公司破壞訪問控制時,攻擊者很容易竊取公司資料。例如,如果攻擊者能夠透過SQL隱碼攻擊訪問資料庫中的資料,那麼他們就可以竊取公司資訊構成資料洩露。
潛在的許可權提升:許可權提升是指攻擊者可以提升其許可權以實現提權訪問的情況。例如,普通使用者帳戶可以透過可用的漏洞利用來提升其許可權,成為管理員。在這種情況下,攻擊者將能夠執行他們不應該執行的命令和讀取資料。
未遵守合規法規:如果公司訪問控制不佳,並且透過審計或安全測試發現了這一點,那麼將面臨不符合合規性法規的風險。許多合規性法規要求公司實施強大的訪問控制來保護公司資產。
運營中斷: 由於訪問控制不善而導致的安全事件可能會對公司運營產生重大影響。當外部攻擊者訪問公司資源並執行攻擊時,可能會導致服務中斷。
聲譽/法律/財務影響: 當攻擊者訪問公司資料時,可能會對企業產生一些負面影響。首先,從資料洩露中恢復會帶來財務影響,以及與資料隱私相關的聲譽和法律後果。如果資料洩露,許多客戶/合作伙伴將失去對公司的信任,如果他們認為公司有過錯,他們中的一些人可能會選擇採取法律行動。
如何防止訪問控制中斷
如果攻擊者試圖透過修改對系統的請求來篡改應用程式或資料庫,系統應該有適當的保護措施來識別無效請求。兩個常見的例子是SQL隱碼攻擊和跨站點指令碼攻擊。SQL隱碼攻擊提交修改後的SQL語句,試圖從後端資料庫提取資訊或修改資料庫本身。為了防禦這種型別的攻擊,正確的輸入驗證應該檢測這樣的無效請求,並且不允許它執行。
其次,系統應具有功能級訪問控制,以驗證使用者是否有權執行其所需的操作。例如,如果某人使用使用者帳戶,則他們應該無法執行管理員操作或提升其許可權以成為管理員。特別是,Web 應用程式需要依賴伺服器端訪問控制而不是客戶端,這樣攻擊者就無法篡改它。應用程式應在多個級別(包括資料或物件)執行檢查,以確保過程中沒有漏洞。這包括髮出請求的授權以及訪問該請求中特定物件的授權。
第三,企業需要不斷審查其訪問控制流程和程式。花時間徹底檢查所選工具和技術的授權邏輯,並在必要時實現自定義邏輯。還應正式測試所有配置,以確保沒有變通方法。此外,對組織內的員工/承包商進行訪問審查,以確保沒有人擁有超出其工作所需許可權的額外訪問許可權。所有靜態公司資源都應經過正式授權並納入訪問控制策略。
最後,當涉及到應用程式的功能時,需要確保其設計正確。當授權檢查失敗時,應該禁止訪問,這是“故障安全”原則的一部分。如果訪問請求或操作失敗,則應用程式應該在允許其保持安全的狀態下失敗。為了確保這一點,對授權邏輯執行單元和整合測試,以確保它是合理的,並且不易被繞過。
參讀連結:
https://www.softwaresecured.com/post/risk-of-broken-access-control
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70000012/viewspace-3003195/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Swift 中的訪問控制Swift
- CentOS 中 TCP Wrappers訪問控制CentOSTCPAPP
- 類的訪問控制
- python中的風險Python
- 風險和控制自評估
- Flask——訪問控制Flask
- Mongodb訪問控制MongoDB
- Swift的訪問控制講解Swift
- CDN 訪問控制的那些事
- Nginx 對訪問量的控制Nginx
- openGauss 訪問控制模型模型
- ABAC訪問控制模型模型
- Quarkus中基於角色的許可權訪問控制教程
- 配置ACL在網路服務中訪問控制
- IOS - ACL (訪問控制列表)iOS
- 006.Nginx訪問控制Nginx
- HTTP之訪問控制「CORS」HTTPCORS
- Vue前端訪問控制方案Vue前端
- Ubuntu 增加埠訪問控制Ubuntu
- weblogic控制檯訪問慢問題Web
- js 判斷是手機訪問,還是pc訪問JS
- 與面試官談笑風生 | Python物件導向之訪問控制面試Python物件
- RBAC-基於角色的訪問控制
- Casbin——專注、高效的訪問控制框架框架
- 學習阿里雲的訪問控制策略阿里
- 深度解析中國產業基金的建立、投資、投後管理及風險控制產業
- SSH遠端訪問及控制
- 遠端訪問及控制——ssh
- Casbin訪問控制框架入門框架
- 資料安全合規需要從基於角色的訪問控制邁向基於屬性的訪問控制
- Golang 中 defer Close() 的潛在風險Golang
- 八種常見採購風險,怎麼控制?
- 新手炒黃金入門怎麼控制風險?
- .net core下訪問控制層的實現
- 如何在SAP Cloud for Customer自定義BO中建立訪問控制Cloud
- Laravel 中的訪問器Laravel
- Java 訪問許可權控制(6)Java訪問許可權
- 免程式設計應用怎麼控制App風險?程式設計APP