This page looks best with JavaScript enabled

Broken Access Control

 ·  ☕ 3 min read  ·  🤖 ch1nhpd

Overview

Broken Access Control là một lỗ hỏng bảo mật phổ biến nhất trong quá trình pentest website. Biểu hiện của nó là khi người dùng có thể thực hiện (chiếm) các chức năng nằm ngoài khả năng ban đầu của họ. Nguyên nhân chính dẫn đến lỗ hỏng này là do cơ chế xác thực và phân quyền của website chưa được hiệu quả hoặc bị bỏ quên….

Không phải tự nhiên mà từ vị trí thứ 5 (năm 2017) Broken Access Control vượt lên dẫn đầu trong Top 10 OWASP năm 2021. Vì vậy ta cùng tìm hiểu xem nó lợi hại như thế nào nhé!

Access Control là gì?

Hiểu một cách đơn giản thì Access Control (hay authorization) là việc server áp dụng các ràng buộc, quy tắc để xác định xem người dùng có quyền truy cập vào chức năng hoặc tài nguyên nào đó hay không.

Broken Access Control đề cập đến phương thức tấn công mà các tác nhân độc hại sẽ xâm nhập, chiếm quyền sử dụng các tài nguyên được bảo vệ trên hệ thống một cách trái phép.

Việc thiết kế và quản lý các biện pháp kiểm soát truy cập là một vấn đề hết sức phức tạp. Hơn nữa nó còn được thực hiện bởi con người chứ không phải công nghệ nên khả năng xảy ra lỗi là rất lớn.

Access Control được chia thành 2 loại chính:

Vertical access controls

Kiểm soát truy cập theo chiều dọc là cơ chế để hạn chế quyền truy cập vào chức năng của kiểu người dùng khác. Tức là mỗi kiểu người dùng (role) khác nhau sẽ có tập các chức năng khác nhau.

VD: user không có Role ADMIN thì không thể vào trang quản trị

Vertical-Access-Control

Horizontal access controls

Kiểm soát truy cập theo chiều ngang là cơ chế để hạn chế quyền truy cập vào từng phần nhỏ tài nguyên của mỗi người dùng. Tức là cùng vào phần đấy nhưng với mỗi người lại cho một kết quả khác nhau.

VD: user nào thì chỉ có thể xem các bài đăng private của user đấy thôi

Horizontal-Access-Control
Tóm lại là:

  • DỌC -> có được vào dùng hay không
  • NGANG -> cùng vào được đấy nhưng mỗi người một kết quả khác

Ngoài ra còn một loại nữa là Context-dependent access controls. Nó sẽ hạn chế quyền truy cập đến chức năng hoặc tài nguyên của ứng dụng dựa vào trạng thái của ứng dụng hoặc là tương tác của người dùng.

VD: Trước khi đặt hàng thì có thể chỉnh sửa giỏ hàng thoải mái. Nhưng sau khi đã đặt hàng thì 📛NO📛

Context-Dependent-Access-Control

[UPDATING…]

Attack

Vertical privilege escalation

Horizontal privilege escalation

Prevent

References

Share on

Phạm Đăng Chính
WRITTEN BY
ch1nhpd
Developer, Pentester