System Design

OWASP Top 10 cho ứng dụng LLM (2025): checklist bảo mật bắt buộc

Tóm tắt

OWASP Top 10 for LLM Applications 2025 là checklist bảo mật chuẩn cho ứng dụng dùng LLM. Ưu tiên giảm quyền cho agent, coi output là dữ liệu không tin cậy, không giấu bí mật trong system prompt và giới hạn tiêu thụ tài nguyên.

Đội bảo mật hỏi: "Tính năng chatbot mới đã đánh giá rủi ro chưa?". Nếu team bạn chưa có khung tham chiếu, OWASP Top 10 for LLM Applications là điểm khởi đầu chuẩn nhất. Đây là danh sách mười rủi ro phổ biến nhất của ứng dụng dùng LLM do cộng đồng OWASP (tổ chức đứng sau OWASP Top 10 cho web nổi tiếng) duy trì. Phiên bản hiện hành là 2025.

Mười rủi ro và biện pháp chính

MãRủi roBiện pháp cốt lõi
LLM01Prompt Injection: input (trực tiếp hoặc qua tài liệu, web) thay đổi hành vi modelTách dữ liệu khỏi chỉ dẫn, giới hạn quyền, duyệt hành động nhạy cảm
LLM02Sensitive Information Disclosure: lộ dữ liệu cá nhân, bí mậtLọc dữ liệu đầu vào/ra, phân quyền truy xuất theo người dùng
LLM03Supply Chain: model, thư viện, plugin bên thứ ba bị nhiễmKiểm tra nguồn gốc, ghim phiên bản, SBOM
LLM04Data and Model Poisoning: dữ liệu huấn luyện/fine-tune/embedding bị cài cắmKiểm soát nguồn dữ liệu, kiểm thử hành vi sau huấn luyện
LLM05Improper Output Handling: dùng output không kiểm tra (XSS, SQL injection, chạy lệnh)Coi output là input không tin cậy: escape, validate, tham số hoá
LLM06Excessive Agency: agent có quá nhiều quyền, tool, tự chủTối thiểu tool và quyền, người duyệt hành động không đảo ngược
LLM07System Prompt Leakage: lộ system prompt chứa logic, thông tin nhạy cảmKhông đặt bí mật trong prompt; kiểm soát quyền ở tầng hệ thống
LLM08Vector and Embedding Weaknesses: lỗ hổng trong RAG, vector DBPhân quyền theo tài liệu, kiểm tra dữ liệu đưa vào kho
LLM09Misinformation: output sai nhưng thuyết phụcTrích dẫn nguồn, kiểm chứng, UX thể hiện độ không chắc chắn
LLM10Unbounded Consumption: tiêu tốn tài nguyên không giới hạn (chi phí, DoS)Rate limit, giới hạn token, ngân sách và cảnh báo chi phí

Ba rủi ro đáng ưu tiên với agent

  • LLM01 + LLM06 là cặp nguy hiểm nhất: injection chỉ gây hại lớn khi agent có quyền làm điều có hại. Giảm quyền là cách phòng thủ chắc nhất, vì chưa có cách chặn injection tuyệt đối.
  • LLM05: lỗi web cổ điển quay lại, như render output LLM thẳng ra HTML hay ghép vào câu SQL.
  • LLM10: agent lặp vô hạn hoặc người dùng lạm dụng có thể đẩy hoá đơn API lên rất nhanh.

Rủi ro và lưu ý

  • Top 10 không phải toàn bộ: đây là danh sách phổ biến nhất, không thay thế threat modeling cho hệ thống cụ thể.
  • System prompt không phải nơi giữ bí mật: hãy giả định nó sẽ bị lộ.
  • Bảo mật web truyền thống vẫn áp dụng: xác thực, phân quyền, log, quản lý secret không thay đổi chỉ vì có LLM.

Áp dụng thế nào?

  • Dev: Escape và validate mọi output LLM trước khi render hay thực thi; không bao giờ ghép output vào SQL hay lệnh shell.
  • Tech Lead: Dùng 10 mục làm checklist trong design review cho mọi tính năng có LLM; ghi rõ biện pháp cho từng mục hoặc lý do không áp dụng.
  • PM/Security: Đặt ngân sách chi phí và rate limit theo người dùng ngay từ bản đầu, đừng đợi hoá đơn bất thường.

Nguồn & tham khảo

  1. OWASP Top 10 for LLM Applications 2025 — OWASP GenAI Security Project