Mô hình hóa Mối đe dọa: Xây dựng Phần mềm An toàn từ Gốc

Chuyện về devsecops

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.

1

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).

2

Đ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.

3

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.

4

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)

👤 Người dùng
⬇️
1. Gửi thông tin đăng nhập (HTTPS)
⬇️
Ranh giới Tin cậy
🖥️ Web Server
↕️
🗃️ Database

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

Thiết kế

Xác định DFD và các mối đe dọa ban đầu

Phát triển

Cập nhật mô hình khi có tính năng mới

Kiểm thử

Sử dụng mô hình để tạo các ca kiểm thử bảo mật

Vận hành

Xem lại mô hình khi có sự cố hoặc thay đổi môi trường

Bằng cách tích hợp Mô hình hóa Mối đe dọa, chúng ta chuyển đổi bảo mật từ một suy nghĩ sau cùng thành một phần không thể thiếu của quá trình phát triển chất lượng cao.

Xây dựng An toàn. Xây dựng Thông minh.

Đăng nhận xét