1. Broken Access Control
- Lỗi khi ứng dụng không kiểm soát quyền đúng cách, cho phép user truy cập dữ liệu/chức năng vượt quá quyền hạn.
- Ví dụ: người dùng thường truy cập được trang admin chỉ bằng đổi URL.
- Cách phòng tránh: kiểm tra quyền ở server-side, áp dụng nguyên tắc least privilege.
2. Cryptographic Failures (trước gọi là Sensitive Data Exposure)
- Lỗi liên quan đến mã hóa, dẫn đến rò rỉ dữ liệu nhạy cảm.
- Ví dụ: lưu mật khẩu dạng plaintext, dùng HTTP thay vì HTTPS.
- Cách phòng tránh: dùng HTTPS, hashing với salt (bcrypt, Argon2), không tự viết thuật toán crypto.
3. Injection
- Xảy ra khi dữ liệu đầu vào không được lọc, chèn thẳng vào câu lệnh (SQL, NoSQL, OS command…).
- Ví dụ: SQL Injection (
' OR '1'='1). - Cách phòng tránh: dùng prepared statement, ORM, validate input.
4. Insecure Design
- Vấn đề từ giai đoạn thiết kế hệ thống (chưa triển khai nhưng đã nguy hiểm).
- Ví dụ: không có kế hoạch chống brute-force, không thiết kế rate-limit.
- Giải pháp: threat modeling, security-by-design.
5. Security Misconfiguration
- Lỗi cấu hình không an toàn (nguyên nhân rất phổ biến).
- Ví dụ: bật directory listing, để default account, lộ banner server.
- Cách phòng tránh: hardening, disable default, patching thường xuyên.
6. Vulnerable and Outdated Components
- Sử dụng thư viện/framework/software lỗi thời chứa lỗ hổng đã biết.
- Ví dụ: dùng jQuery version cũ có XSS.
- Giải pháp: kiểm tra dependency (OWASP Dependency-Check, Snyk), update thường xuyên.
7. Identification and Authentication Failures
- Lỗi trong xác thực, dẫn đến bypass hoặc chiếm quyền tài khoản.
- Ví dụ: brute-force login, JWT không hết hạn, session ID dự đoán được.
- Cách phòng tránh: MFA, session timeout, rate limiting.
8. Software and Data Integrity Failures
- Liên quan đến việc không đảm bảo tính toàn vẹn phần mềm/dữ liệu.
- Ví dụ: update từ nguồn không tin cậy, không kiểm tra chữ ký file.
- Giải pháp: dùng ký số, kiểm soát CI/CD pipeline.
9. Security Logging and Monitoring Failures
- Thiếu log hoặc giám sát, khiến không phát hiện được tấn công.
- Ví dụ: brute-force password mà không bị cảnh báo.
- Cách phòng tránh: log đủ (auth, error), giám sát SIEM/SOC, alert khi có bất thường.
10. Server-Side Request Forgery (SSRF)
- Attacker ép server gửi request đến domain khác (nội bộ hoặc bên ngoài).
- Ví dụ: attacker nhập URL payload, server gọi nội bộ
http://localhost:8080/admin. - Cách phòng tránh: validate URL đầu vào, chặn internal IP, dùng allowlist.