Mô hình hóa Mối đe dọa
Một phương pháp tiếp cận chủ động để xây dựng các hệ thống phần mềm an toàn và vững chắc.
Tại sao phải quan tâm?
Mô hình hóa mối đe dọa 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 lượng mức độ nghiêm trọng và ưu tiên các biện pháp giảm thiểu. Thay vì vá lỗi một cách bị động, chúng ta chủ động thiết kế để phòng thủ.
100x
Chi phí sửa một lỗ hổng trong giai đoạn sản phẩm cao hơn gấp 100 lần so với giai đoạn thiết kế.
Tỷ lệ áp dụng trong các nhóm phát triển
Nhiều đội ngũ hàng đầu đã nhận ra giá trị của việc tích hợp mô hình hóa mối đe dọa vào quy trình của họ.
Quy trình Cốt lõi
Mô hình hóa mối đe dọa xoay quanh việc trả lời bốn câu hỏi cơ bản một cách có hệ thống.
Chúng ta đang xây dựng cái gì?
Hiểu rõ hệ thống, các thành phần, luồng dữ liệu và ranh giới tin cậy. Thường được biểu diễn bằng Sơ đồ Luồng Dữ liệu (DFD).
Điều gì có thể đi sai?
Sử dụng các phương pháp luận (như STRIDE) để dự đoán các mối đe dọa tiềm ẩn có thể ảnh hưởng đến hệ thống.
Chúng ta sẽ làm gì với nó?
Xác định các biện pháp kiểm soát và giảm thiểu cho từng mối đe dọa. Các chiến lược bao gồm: Giảm thiểu, Loại bỏ, Chuyển giao hoặc Chấp nhận rủi ro.
Chúng ta đã làm tốt chưa?
Xác minh rằng các biện pháp kiểm soát đã được triển khai và hoạt động hiệu quả. Đây là một quy trình lặp đi lặp lại.
Phương pháp luận STRIDE
Một mô hình do Microsoft phát triển để phân loại các mối đe dọa, giúp đảm bảo không bỏ sót các loại tấn công phổ biến.
🎭Spoofing
Giả mạo danh tính của người dùng hoặc thành phần hệ thống khác.
🔧Tampering
Sửa đổi dữ liệu trái phép, ví dụ như thay đổi một giao dịch đang diễn ra.
انکارRepudiation
Chối bỏ việc đã thực hiện một hành động mà không có cách nào chứng minh ngược lại.
📂Information Disclosure
Làm lộ thông tin cho những người không được phép truy cập.
⏳Denial of Service
Làm cho hệ thống không khả dụng hoặc không thể truy cập được bởi người dùng hợp lệ.
👑Elevation of Privilege
Một người dùng có đặc quyền thấp có được quyền truy cập của người dùng có đặc quyền cao.
Ví dụ thực tế: Hệ thống Đăng nhập
Hãy áp dụng những gì đã học vào một hệ thống đăng nhập web đơn giản.
Sơ đồ Luồng Dữ liệu (DFD)
Các mối đe dọa STRIDE được xác định
- 🎭Giả mạo: Tấn công Brute-force mật khẩu để giả mạo người dùng.
- 🔧Sửa đổi: Tấn công Man-in-the-Middle (nếu không dùng HTTPS) để thay đổi mật khẩu khi truyền đi.
- 📂Lộ lọt thông tin: Thông báo lỗi "Người dùng không tồn tại" làm lộ thông tin người dùng. Mật khẩu được lưu dưới dạng văn bản thô trong DB.
- ⏳Từ chối dịch vụ: Gửi một lượng lớn yêu cầu đăng nhập không hợp lệ để khóa tài khoản.
- 👑Leo thang đặc quyền: Lỗ hổng SQL Injection trong form đăng nhập cho phép truy cập admin.
Tích hợp vào Vòng đời Phát triển
Mô hình hóa mối đe dọa không phải là một sự kiện đơn lẻ, mà là một hoạt động liên tục trong suốt Vòng đời Phát triển Phần mềm (SDLC).
Chi phí sửa lỗi theo từng giai đoạn SDLC
Phát hiện các vấn đề bảo mật sớm giúp tiết kiệm đáng kể thời gian và tiền bạc.
Vị trí trong SDLC
Xác định DFD và các mối đe dọa ban đầu
Cập nhật mô hình khi có tính năng mới
Sử dụng mô hình để tạo các ca kiểm thử bảo mật
Xem lại mô hình khi có sự cố hoặc thay đổi môi trường