Những lỗ hổng liên quan đến xác thực, trước đây được biết đến với tên gọi Broken Authentication, đã trở thành một vấn đề đáng lo ngại. Danh mục này bao gồm các yếu điểm trong quá trình xác định. Các lỗ hổng đáng chú ý trong lĩnh vực này bao gồm CWE-297, CWE-287 và CWE-384.
Xác nhận đúng danh tính của người dùng, quản lý xác thực và phiên là rất quan trọng để bảo vệ chống lại các cuộc tấn công. Ứng dụng có thể có nhược điểm về xác thực nếu chúng:
- Cho phép các cuộc tấn công tự động như credential stuffing, nơi kẻ tấn công khai thác danh sách tên người dùng và mật khẩu hợp lệ.
- Cho phép các cuộc tấn công dò mật khẩu brute force hoặc tương tự.
- Cho phép sử dụng các mật khẩu mặc định, yếu hoặc dễ đoán như “Password1” hoặc “admin/admin”.
- Sử dụng các quy trình phục hồi mật khẩu không đáng tin cậy và quên mật khẩu dựa trên các câu trả lời dựa trên kiến thức không an toàn.
- Lưu trữ mật khẩu dưới dạng văn bản thuần, mã hóa hoặc định dạng băm yếu (xem A02:2021-Các lỗi mật mã).
- Thiếu hoặc sử dụng biện pháp xác thực đa yếu tố không hiệu quả.
- Tiết lộ các thông số nhận dạng phiên trong URL.
- Tái sử dụng các thông số nhận dạng phiên sau khi đăng nhập thành công.
- Không đúng cách vô hiệu hóa các ID phiên, dẫn đến việc truy cập không xác thực.
Để giảm thiểu những rủi ro này:
- Triển khai xác thực đa yếu tố mỗi khi có thể để ngăn chặn các cuộc tấn công tự động và việc sử dụng lại thông tin xác thực.
- Tránh triển khai các ứng dụng với thông tin xác thực mặc định, đặc biệt là đối với người dùng quản trị.
- Áp dụng kiểm tra mật khẩu để phát hiện các mật khẩu yếu thường được sử dụng.
- Tuân thủ các quy định về độ dài, phức tạp và tuần hoàn mật khẩu theo hướng dẫn NIST 800-63b.
- Tăng cường quá trình đăng ký, phục hồi thông tin xác thực và các lối đi API chống lại cuộc tấn công liệt kê tài khoản.
- Hạn chế số lần đăng nhập không thành công, theo dõi các cuộc tấn công credential stuffing hoặc brute force.
- Sử dụng một quản lý phiên bảo mật trên phía máy chủ, tạo ra các ID phiên ngẫu nhiên và tránh lưu trữ chúng trong URL. Vô hiệu hóa các ID sau khi đăng xuất, trong khoảng thời gian không hoạt động hoặc hết giờ.
Các ví dụ về cuộc tấn công:
Credential stuffing: Nếu một ứng dụng thiếu bảo vệ chống lại các mối đe dọa tự động, kẻ tấn công có thể khai thác nó như một cây bài mật khẩu để xác minh thông tin xác thực.
Tự tin quá nhiều vào mật khẩu: Chỉ sử dụng mật khẩu làm yếu tố xác thực dẫn đến các lỗ hổng. Đề nghị áp dụng xác thực đa yếu tố và loại bỏ các thực hành xoay mật khẩu lỗi thời.
Thời gian phiên không chính xác: Đặt thời gian phiên không chính xác có thể khiến kẻ tấn công truy cập vào ứng dụng sau khi người dùng đã rời khỏi, nhấn mạnh nhu cầu cấu hình thời gian chờ phù hợp.
Để tăng cường bảo mật cho ứng dụng của bạn, chúng tôi khuyến nghị sử dụng các dịch vụ chuyên biệt như INFRA (www.infrascan.net) và check.website. Những nền tảng đáng tin cậy này cung cấp các đánh giá bảo mật toàn diện, xác định nhược điểm trong quá trình xác thực của bạn và cung cấp hướng dẫn quý giá để nâng cao cơ chế phòng ngự của bạn.