- vừa được xem lúc

Access control vulnerability - Phân biệt Authentication và Authorization

0 0 12

Người đăng: HanSora

Theo Viblo Asia

1. Kiểm soát truy cập là gì?

Kiểm soát truy cập là việc áp dụng các ràng buộc về ai hoặc cái gì được ủy quyền để thực hiện các hành động hoặc truy cập tài nguyên. Hoặc đơn giản hơn là đối với mỗi vai trò sẽ có quyền truy cập các tính năng của hệ thống ở mức độ khác nhau.

Ví dụ:
Nhân viên A bất kỳ thuộc bộ phần A1 có quyền tạo request đi muộn, nghỉ phép --> Nhân viên A có vai trò Staff
Anh B có quyền được approve hoặc reject request được tạo từ nhân viên --> Anh B có vai trò Leader

Nếu bằng cách nào đó, nhân viên A truy cập trái phép các tính năng không nằm trong quyền hạn của mình ( ví dụ như approve tất cả các form nghỉ phép mà mình tạo ra) , chúng ta có thể nói rằng nhân viên A đang thực hiện 1 cuộc tấn công Broken access control - Phá vỡ kiểm soát truy cập

image.png

2. Phân biệt Authentication và Authorization

Kiểm soát truy cập được hình thành từ 2 bộ phận chính , đây là 2 khái niệm dễ bị nhầm lẫn với nhau trong quá trình làm việc, đôi khi chúng ta coi nó là một

  • Xác thực (Authentication)
  • Cấp quyền (Authorization)

a. Quá trình xác thực (Authentication)

Quá trình xác thực (authentication) nhằm kiểm tra danh tính của đối tượng, hay nói cách khác là trả lời cho câu hỏi: bạn là ai?. Quá trình xác thực trong đời thường ví dụ như:

  • Khi chúng ta mở khoá điện thoại cần nhập vào mật khẩu, quét vân tay, hoặc face id.
  • Khi gửi xe ở tòa nhà Keangnam, chúng ta được nhân viên bảo vệ đưa cho vé xe, và khi muốn lấy xe thì phải trả đúng chiếc vé đó
  • Ở các chung cư cao cấp thì cần quẹt thẻ từ để sử dụng thang máy.
  • Sử dụng chìa khóa xe máy để mở chỉ đúng chiếc xe đó chứ không phải chiếc xe nào khác mặc dùng cùng loại xe

Các hệ thống đơn giản thường chỉ yêu cầu một yếu tố để xác thực. Tức là chúng ta chỉ cần cung cấp 1 trong số các thông tin như:

  • Tài khoản và mật khẩu.
  • Mã pin
  • Vân tay
  • Khuôn mặt

Tuy nhiên việc chỉ sử dụng một yếu tố không đủ độ an toàn và đáng tin cậy nữa. Do đó ngày nay nhiều nơi đã sử dụng hệ thống xác thực đa yếu tố.

Đa yếu tố tức là yêu cầu 2, 3, thậm chí là nhiều hơn nữa các yếu tố mà mình đã kể trên. Ví dụ như trong một số dự án, để truy cập được trang web, lần 1 cần login với 1 account authentication chung thì mới di chuyển đến trang Login , lần 2 mới sử dụng account cá nhân để login và sử dụng các chức năng trong hệ thống.

image.png

Sau khi quá trình xác thực diễn ra thành công, hệ thống sẽ cho phép bạn truy cập. Nhưng lúc này bạn mới chỉ có quyền hạn thấp nhất mà thôi, thậm chí có thể không làm được gì nếu bạn không được cấp quyền thao tác trên hệ thống.

Việc “bạn có thể làm những gì?” sẽ là câu hỏi mà hệ thống cấp quyền trả lời. Đó là quá trình Cấp quyền (Authorization)

b. Quá trình cấp quyền (Authorization)

image.png

Cấp quyền/ Ủy quyền xác định chính xác quyền mà người dùng có trên một hệ thống cụ thể.

Như Ví dụ nêu trên phần định nghĩa:

  • Nhân viên AStaff --> Có quyền tạo request đi muộn, nghỉ phép nhưng không có quyền xem danh sách request của nhân viên thuộc bộ phận
  • Anh B là Leader --> Có quyền xem danh sách & approve/ reject request được tạo từ nhân viên

Có thể so sánh sự khác nhau qua bảng dưới đây

image.png

Sự tham gia của cả hai quá trình xác thực và cấp quyền mới tạo thành một hệ thống Kiểm soát truy cập hoàn thiện. Hệ thống Kiểm soát truy cập sẽ kiểm soát khả năng truy cập tài nguyên hệ thống sau khi một đối tượng hoàn thành xác thực và được cấp quyền truy cập. Hệ thống cần:

  • Bảo vệ các tài nguyên hệ thống trước những truy cập trái phép.
  • Đảm bảo tài nguyên hệ thống chỉ có thể truy cập qua các phương pháp được cho phép.

Các hệ thống kiểm soát truy cập có thể được chia thành hai loại:

  • Kiểm soát truy cập vật lý: là các rào chắn, cửa, nhân viên kiểm tra thẻ,… bảo vệ trước các truy cập vật lý.
  • Kiểm soát truy cập thông tin: bảo vệ cho các nội dung số.

image.png

Nếu bạn thấy bài viết hữu ích thì tặng mình 1 Upvote để mình có thêm động lực học tập và chia sẻ nhé.
Còn nếu bài viết có gì sai sót, đừng vội Downvote mà hãy comment lỗi sai để mình có cơ hội được sửa chữa và có thêm kiến thức bổ ích nha. Mãi iu ❤️

Bình luận

Bài viết tương tự

- vừa được xem lúc

SQL Injection Testing (Security Testing)

Bài viết được tham khảo từ nguồn:. https://www.softwaretestinghelp.com/sql-injection-how-to-test-application-for-sql-injection-attacks/.

0 0 24

- vừa được xem lúc

[Security testing cho gà mờ] Giới thiệu về OWASP TOP 10

SECURITY OVERVIEW. Kiểm thử bảo mật kết hợp các phương pháp kiểm.

0 0 27

- vừa được xem lúc

[Security testing cho gà mờ] A05: 2021 SECURITY MISCONFIGURATION

Cấu hình sai bảo mật là gì. Cấu hình sai bảo mật là các biện pháp kiểm soát bảo mật.

0 0 19

- vừa được xem lúc

Lợi ích templates .gitignore trong dự án

Mở đầu. Gitignore là một file trong các dự án Git, nó chứa danh sách các tệp và thư mục mà bạn muốn Git bỏ qua (không theo dõi) khi bạn thực hiện các thao tác như git add hoặc git commit.

0 0 16

- vừa được xem lúc

Deploy ELK Stack với Docker

Hello các bạn lại là mình đây Chúc các bạn có kì nghỉ 30/4-1/5 vui vẻ và an toàn . Tiếp tục series học Docker và CICD của mình, hôm nay ta sẽ cùng nhau làm một bài "tàu nhanh" setup ELK Stack bao gồm

0 0 13

- vừa được xem lúc

Transaction trong Rails: Đảm bảo tính toàn vẹn và nhất quán dữ liệu

1. Lời mở đầu.

0 0 14