Pentest & Offsec Một số vấn đề xung quanh tính xác thực (Authentication) - Phần 1

duynp

Moderator
Thành viên BQT
Chủ yếu khi nói về xác thực (Authentication) sẽ trả lời câu hỏi "Bạn là ai?" khi giao tiếp với hệ thống.

Một số giải thích về các yếu tố xác thực:
AuthenticateFactor.png


Ví dụ:
- Khi muốn rút tiền ngoài cây ATM thì bạn phải xác thực với phía ngân hàng (ATM) 2 yếu tố: thẻ ATM và mã PIN.

Một số vấn đề về tính xác thực (Authentication):
1. Khi đăng nhập thông qua kênh truyền dẫn không mã hoá: sẽ dễ dẫn đến các cuộc tấn công Man in the middle (MITM).

2. Chính sách đăng nhập lỏng lẻo: có thể dẫn đến các cuộc tấn công về dictionary (dựa vào wordlist cụ thể) hay brute-force.

3. Tìm kiếm username: có thể thể dựa vào thông báo lỗi, hành vi ứng dụng web, thời gian phản hồi để nhận biết username.

+ Đối với dựa vào thông báo lỗi:
Ví dụ: Đăng nhập với username foo và password bất kì, ứng dụng trả về thông báo lỗi đăng nhập thất bại, vui lòng kiểm tra lại tên người dùng, người dùng này chưa được kích hoạt. Tốt hơn thay vì thông báo cụ thể như trên thì có thể điều chỉnh hành vi này lại bằng cách thay đổi nội dung sang một thông báo chung chung Vui lòng kiểm tra lại tài khoản/mật khẩu.

+ Hành vi ứng dụng web:
WebsiteBehavior.png


+ Dựa vào thời gian phản hồi:
Nếu người dùng không tồn tại trong hệ cơ sở dữ liệu: hiển thị thông báo lỗi và bỏ qua.
Nếu người dùng tồn tại: hệ thống sẽ xử lý truy vấn, tính hoặc tìm mật khẩu trong hệ cơ sở dữ liệu trong hệ thống.
-> Có thể dựa vào thời gian phản hồi để kiểm tra. Đây có thể là một đường tấn công (attack vector) như dictionary attack, password reset.
Một số nguồn có thể tham khảo:

... Còn tiếp
 
Back
Top