Phần 2: Các Khái Niệm Bảo Mật Cơ Bản
Bài 8: Mô Hình Hóa Mối Đe Dọa (Threat Modeling)
Nếu PoLP là "phòng thủ", thì Threat Modeling là "tấn công". Đây là nghệ thuật tư duy như một kẻ tấn công để tìm ra lỗ hổng trước cả khi chúng tồn tại.
Ôn lại bài cũ: Nguyên Tắc Đặc Quyền Tối Thiểu (PoLP)
Ở bài 7, chúng ta đã học cách "phòng thủ" bằng cách chỉ cấp quyền tối thiểu cần thiết (PoLP). Bây giờ, chúng ta sẽ chuyển sang tư duy "chủ động tấn công": tự mình tìm ra các kịch bản tấn công và vá chúng trước khi hacker làm điều đó.
Threat Modeling là gì?
Threat Modeling là một quy trình có cấu trúc để xác định các mối đe dọa bảo mật tiềm ẩn, đánh giá rủi ro của chúng, và lên kế hoạch giảm thiểu.
Nói đơn giản, đó là việc bạn ngồi xuống trước khi viết code và tự hỏi: "Nếu tôi là hacker, tôi sẽ tấn công ứng dụng này như thế nào?".
Quy Trình 4 Bước Của Threat Modeling
Deconstruct
(Phân tích ứng dụng)
Chúng ta đang xây dựng cái gì? Vẽ luồng dữ liệu (Data Flow Diagram - DFD).
Identify Threats
(Xác định mối đe dọa)
Điều gì có thể đi sai? Sử dụng các framework như STRIDE.
Rate Risks
(Đánh giá rủi ro)
Mối đe dọa này nghiêm trọng đến mức nào? (Cao, Trung bình, Thấp).
Mitigate
(Giảm thiểu rủi ro)
Chúng ta sẽ sửa nó như thế nào? (Vá lỗi, chấp nhận rủi ro, chuyển giao rủi ro...).
Phương Pháp Phổ Biến: STRIDE
STRIDE là một framework do Microsoft tạo ra, giúp bạn "brainstorm" các mối đe dọa bằng cách phân loại chúng thành 6 nhóm:
Spoofing
Hacker giả mạo là một người dùng hoặc một hệ thống khác (ví dụ: user A giả mạo là admin).
Tampering
Hacker sửa đổi dữ liệu trái phép khi nó đang được truyền đi hoặc đang được lưu trữ.
Repudiation
Hacker (hoặc người dùng) thực hiện một hành động nhưng sau đó chối bỏ việc đó và hệ thống không có bằng chứng để chứng minh.
Info. Disclosure
Hệ thống làm lộ thông tin nhạy cảm (dữ liệu cá nhân, mật khẩu, khóa bí mật) cho những người không có quyền xem.
Denial of Service
Hacker làm cạn kiệt tài nguyên hệ thống (CPU, RAM, băng thông), khiến người dùng hợp lệ không thể truy cập được dịch vụ.
Elevation of Privilege
Một người dùng có quyền thấp (user thường) tìm cách giành được quyền cao hơn (admin) mà không được phép.
Threat Modeling là một văn hóa, không phải một checklist
Threat Modeling không phải là thứ bạn làm một lần rồi quên. Nó là một hoạt động liên tục trong suốt vòng đời phát triển. Bằng cách đưa nó vào sớm (Shift Left), bạn sẽ tiết kiệm rất nhiều thời gian và chi phí so với việc vá lỗi khi sản phẩm đã ra mắt.
Bài Tiếp Theo: Phân Tích Mã Tĩnh (SAST)