0

Ứng dụng AI trong Threat Modeling theo chuẩn STRIDE – Từ ý tưởng đến triển khai thực tế

1. Động lực phát triển

Threat Modeling luôn là một bước nền tảng trong quy trình Secure SDLC, giúp phát hiện và kiểm soát rủi ro bảo mật ngay từ giai đoạn thiết kế. Tuy nhiên, thực tế triển khai cho thấy:

  • Quá trình này phụ thuộc nặng vào chuyên gia (security architect, pentester).
  • Chi phí thời gian cao, đặc biệt khi cần cập nhật thường xuyên theo kiến trúc mới.
  • Thiếu khả năng mở rộng khi số lượng ứng dụng tăng nhanh. Trong khi đó, các hệ thống hiện đại lại có xu hướng:
  • Phân tán hơn (microservices, API mesh, multi-cloud).
  • Tuân thủ nhiều bộ tiêu chuẩn khác nhau: TT 09/2024 NHNN, Nghị định 13/2023, PCI DSS, ISO 27001...

Bài toán đặt ra: Làm thế nào để tự động hóa quy trình Threat Modeling, tận dụng sức mạnh của AI để nhận diện mối đe dọa nhanh hơn, chính xác hơn, và có căn cứ đối chiếu với quy định bảo mật?

Từ câu hỏi đó, chúng tôi bắt đầu xây dựng một kiến trúc ứng dụng AI Threat Modeling, với trọng tâm là chuẩn STRIDE của Microsoft.

2. Kiến trúc tổng thể

Ứng dụng được thiết kế theo mô hình multi-agent AI pipeline, gồm ba tầng chính:

  • Tầng nhập liệu (Input Layer): Người dùng tải lên sơ đồ DFD (Data Flow Diagram) và mô tả hệ thống.
  • Tầng xử lý AI (AI Orchestration Layer): Các mô hình AI phân tích, trích xuất thông tin, tìm kiếm dữ liệu liên quan và thực hiện phân tích STRIDE.
  • Tầng kết quả (Output Layer): Hệ thống tổng hợp mối đe dọa, gợi ý biện pháp phòng ngừa, liên kết với tiêu chuẩn bảo mật tương ứng.

Sơ đồ xử lý có thể tóm tắt theo các bước:

Bước Mô tả
1 Người dùng tải ảnh sơ đồ DFD + nhập prompt
2 Ảnh được mã hóa Base64, gửi đến API Processor
3 API Processor gọi LLM Vision Model để đọc sơ đồ
4 Nhận về kết quả: danh sách component, data flow, trust boundary
5 API Processor tìm kiếm thông tin liên quan trong VectorDB (văn bản chuẩn, quy định, tiêu chuẩn)
6 Tổng hợp thông tin thành enhanced context
7 Gửi toàn bộ cho AI Agent (LLM chuyên xử lý STRIDE)
8 Nhận kết quả Threat Model (STRIDE mapping, risk level, mitigations)
9 Trả về Web UI hiển thị báo cáo trực quan

3. Cấu trúc xử lý chi tiết

3.1. Phân tích sơ đồ bằng LLM Vision

Mục tiêu đầu tiên là trích xuất cấu trúc hệ thống từ ảnh sơ đồ DFD.

LLM Vision Model nhận input gồm:

  • System prompt hướng dẫn cách nhận dạng ký hiệu DFD.
  • Ảnh DFD được mã hóa Base64. Kết quả:
{
  "components": [
    {"id": "C1", "type": "User", "name": "End User"},
    {"id": "C2", "type": "WebApp", "name": "Frontend"},
    {"id": "C3", "type": "API", "name": "Backend API"},
    {"id": "C4", "type": "Database", "name": "UserDB"}
  ],
  "data_flows": [
    {"from": "C1", "to": "C2", "description": "Login Request"},
    {"from": "C2", "to": "C3", "description": "API Call"},
    {"from": "C3", "to": "C4", "description": "Query User Data"}
  ],
  "trust_boundaries": ["Between C1-C2", "Between C2-C3"]
}

Thông tin này là đầu vào quan trọng cho phân tích STRIDE sau đó.

3.2. Truy xuất ngữ cảnh bảo mật từ VectorDB

Tôi xây dựng một Vector Database chứa các đoạn văn bản (passage) trích từ:

  • TT 09/2024 NHNN (Quy định bảo mật cho tổ chức tín dụng).
  • Nghị định 13/2023 (Bảo vệ dữ liệu cá nhân).
  • PCI DSS (Payment Card Industry).
  • ISO/IEC 27001 ...

Các tài liệu được chia nhỏ thành đoạn 512–1024 token, sau đó nhúng bằng embedding model.

Khi có thông tin từ DFD, hệ thống sẽ tạo câu truy vấn ngữ nghĩa: Kết quả là danh sách các đoạn có điểm tương đồng cao (cosine similarity), kèm metadata về nguồn tài liệu, điều khoản, và ngày hiệu lực.

3.3. Phân tích STRIDE bằng AI Agent

Phần quan trọng nhất nằm ở đây. AI Agent được huấn luyện hoặc hướng dẫn (prompt-tuned) để phân tích theo mô hình STRIDE:

Loại mối đe dọa Mô tả Biện pháp
Spoofing Giả mạo danh tính người dùng/hệ thống Cơ chế xác thực mạnh (MFA, token-based)
Tampering Thay đổi dữ liệu hoặc mã nguồn Hash integrity, ký số, kiểm tra toàn vẹn
Repudiation Phủ nhận hành vi Audit log, chữ ký số, timestamp
Information Disclosure Rò rỉ dữ liệu TLS, mã hóa dữ liệu, RBAC
Denial of Service Tấn công làm gián đoạn dịch vụ Rate limit, WAF, autoscaling
Elevation of Privilege Leo thang đặc quyền RBAC, nguyên tắc least privilege

LLM Agent nhận:

  • Prompt người dùng.
  • Thông tin DFD (từ Vision).
  • Kết quả tìm kiếm từ VectorDB.

Và sinh ra output có cấu trúc:

{
  "threats": [
    {
      "id": "T001",
      "category": "Spoofing",
      "target": "Login Request",
      "description": "Thiếu xác thực mạnh giữa người dùng và API.",
      "related_standards": ["TT09/2024-Điều 15", "ISO27001-A.9.2.3"],
      "mitigation": "Triển khai MFA, sử dụng OIDC tokens.",
      "risk_level": "High"
    },
    ...
  ]
}

4. Bài học kỹ thuật

Một số điểm đáng chú ý khi hiện thực hóa pipeline này:

  • Prompt Engineering cực kỳ quan trọng. Chỉ một câu system prompt sai, mô hình có thể hiểu sai toàn bộ sơ đồ. → Giải pháp: dùng few-shot examples và schema enforcement.

  • VectorDB cần indexing cẩn thận. Việc chunk quá nhỏ hoặc quá lớn đều làm giảm độ chính xác truy xuất. → Chunk 512–1024 token là điểm cân bằng tốt.

  • LLM không thay thế chuyên gia, mà mở rộng năng lực của họ. Mỗi kết quả cần được human review trước khi vào báo cáo chính thức.

5. Kết luận

Ứng dụng AI trong Threat Modeling không chỉ là xu hướng, mà là bước tiến tự nhiên trong hành trình tự động hóa an toàn thông tin.

Với kiến trúc gồm LLM Vision + Retrieval + STRIDE Agent, chúng ta có thể:

  • Biến quá trình phân tích bảo mật từ thủ công thành bán tự động.
  • Rút ngắn thời gian, tăng độ bao phủ, và gắn chặt quy trình với tiêu chuẩn pháp lý.

Điều quan trọng nhất không phải là “AI thông minh đến đâu”, mà là cách ta thiết kế hệ thống an toàn, minh bạch, và có kiểm soát để khai thác nó hiệu quả.

🔐 “AI không thay thế chuyên gia bảo mật — nhưng giúp họ ra quyết định nhanh hơn, chính xác hơn, và có căn cứ hơn.”


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí