dotsagent.io
Ngôn ngữ:Tiếng Việt
Bảo mật · tài liệu tham khảo

Bảo mật agent

Agent đọc nội dung do người lạ viết, rồi hành động bằng thông tin xác thực của bạn. Trang này trình bày nguyên tắc cốt lõi, cả hai danh sách OWASP năm 2026, các sự cố đã xảy ra và những biện pháp phòng vệ có thể ngăn chặn chúng.

Bộ ba chí mạng

  1. Truy cập dữ liệu riêng tưEmail, repository, cơ sở dữ liệu, tệp hoặc bất kỳ thứ gì khác được bảo vệ bằng thông tin xác thực của bạn.
  2. Tiếp xúc với nội dung không đáng tin cậyTrang web, issue, phiếu hỗ trợ, email đến và mô tả công cụ: bất kỳ nội dung nào kẻ tấn công có thể viết.
  3. Khả năng giao tiếp với bên ngoàiGửi email, mở pull request, tải URL hoặc hiển thị hình ảnh từ xa. Simon Willison đặt tên cho tổ hợp ba phần này vào tháng 6 năm 2025.

Nếu một agent có đủ cả ba khả năng, hãy giả định rằng prompt injection có thể khiến agent gửi dữ liệu của bạn cho kẻ tấn công. Đừng trông chờ model từ chối; hãy loại bỏ ít nhất một yếu tố khỏi mỗi agent và phiên làm việc.

Sự cố gần đây

OWASP Top 10 cho ứng dụng agentic 2026

OWASP GenAI Security Project công bố danh sách này vào 9 tháng 12, 2025. Danh sách bao quát các rủi ro phát sinh khi model lập kế hoạch, lưu giữ bộ nhớ, gọi công cụ và phối hợp với các agent khác.

  1. ASI01
    Chiếm quyền mục tiêu của agent

    Kẻ tấn công thay đổi mục tiêu mà agent đang theo đuổi, thường bằng cách giấu chỉ dẫn trong nội dung agent đọc. Sau đó, agent dùng tool và quyền của người dùng để thực hiện mục tiêu của kẻ tấn công.

  2. ASI02
    Lạm dụng và khai thác tool

    Agent sử dụng các tool hợp lệ theo cách gây hại, chẳng hạn xóa bản ghi, gửi tin nhắn hoặc xâu chuỗi các lệnh gọi, do bị thao túng hoặc được cấp quyền truy cập tool rộng hơn mức cần thiết cho tác vụ.

  3. ASI03
    Lạm dụng danh tính và quyền hạn

    Agent hoạt động thông qua thông tin xác thực, token được ủy quyền và quyền kế thừa. Kẻ tấn công lạm dụng các danh tính đó hoặc những kẽ hở giữa chúng để nâng quyền hoặc hành động dưới danh nghĩa người khác.

  4. ASI04
    Lỗ hổng chuỗi cung ứng agent

    Tool, MCP server, skill, plugin, model và prompt được tải vào lúc build hoặc lúc chạy có thể độc hại hoặc bị xâm phạm. Vì agent tải nhiều thành phần trong số này một cách linh hoạt, chỉ cần một thành phần bị xâm phạm là mọi session sử dụng nó đều bị ảnh hưởng.

  5. ASI05
    Thực thi mã ngoài dự kiến (RCE)

    Agent có khả năng viết và chạy mã, hoặc chuyển đầu ra của model cho shell và trình thông dịch, có thể bị dẫn dụ chạy các lệnh do kẻ tấn công chọn trên máy chủ.

  6. ASI06
    Đầu độc bộ nhớ và ngữ cảnh

    Kẻ tấn công cài thông tin sai lệch hoặc chỉ dẫn vào bộ nhớ, tài liệu được truy xuất hoặc ngữ cảnh đã lưu của agent. Nội dung độc hại này tồn tại dai dẳng và ảnh hưởng đến các session sau, rất lâu sau khi dữ liệu đầu vào ban đầu không còn.

  7. ASI07
    Giao tiếp giữa các agent không an toàn

    Thông điệp giữa các agent được truyền đi mà không có xác thực, kiểm tra tính toàn vẹn hoặc xác thực nội dung phù hợp, nên có thể bị giả mạo, phát lại hoặc sửa đổi để đánh lừa agent nhận.

  8. ASI08
    Lỗi dây chuyền

    Một sự cố, chẳng hạn như đầu vào bị đầu độc, kết quả công cụ sai lệch hoặc agent bị xâm nhập, có thể lan qua các agent kết nối với nhau và các bước tự động nhanh hơn khả năng phát hiện của con người.

  9. ASI09
    Khai thác niềm tin giữa con người và agent

    Agent thường tỏ ra tự tin và hữu ích, nên mọi người có xu hướng chấp thuận những gì agent đề xuất. Kẻ tấn công lợi dụng niềm tin đó để khiến con người xác nhận hành động gây hại hoặc tiết lộ thông tin.

  10. ASI10
    Agent hoạt động ngoài kiểm soát

    Agent bị xâm nhập hoặc đã lệch khỏi hành vi dự kiến tiếp tục tự hoạt động, vượt ngoài phạm vi và sự giám sát được giao.

OWASP Top 10 cho ứng dụng LLM 2026

Phiên bản này được công bố vào 4 tháng 8, 2026 và thay thế danh sách năm 2025. Excessive Agency tăng từ vị trí thứ sáu lên thứ ba, còn System Prompt Leakage được đổi tên thành Hidden Context Exposure.

  1. LLM01
    Prompt injection

    Đầu vào làm thay đổi hành vi của model theo những cách mà nhà phát triển không mong muốn. Đầu vào có thể đến trực tiếp từ người dùng hoặc gián tiếp từ tài liệu, trang web và kết quả công cụ mà model đọc.

  2. LLM02
    Tiết lộ thông tin nhạy cảm

    Model hoặc ứng dụng để lộ dữ liệu cá nhân, thông tin xác thực, bí mật kinh doanh hoặc tài liệu mật khác trong đầu ra, lấy từ dữ liệu huấn luyện, ngữ cảnh hoặc các hệ thống được kết nối.

  3. LLM03
    Quyền hạn quá mức

    Ứng dụng cấp cho model nhiều chức năng, quyền hạn hoặc quyền tự chủ hơn mức cần thiết cho tác vụ, khiến đầu ra bị thao túng hoặc sai sót gây thiệt hại thực tế. Mục này tăng từ vị trí thứ sáu năm 2025 lên thứ ba năm 2026.

  4. LLM04
    Chuỗi cung ứng

    Model, tập dữ liệu, adapter, package và plugin của bên thứ ba có thể bị can thiệp hoặc chứa lỗ hổng, đưa rủi ro đó vào ứng dụng của bạn.

  5. LLM05
    Đầu độc dữ liệu và model

    Kẻ tấn công thao túng dữ liệu tiền huấn luyện, tinh chỉnh hoặc embedding để cài cửa hậu, thiên kiến hoặc hành vi sai lệch chỉ xuất hiện sau này trong môi trường production.

  6. LLM06
    Tiêu thụ không giới hạn

    Nếu không giới hạn số yêu cầu, kích thước đầu vào hoặc tài nguyên tính toán, kẻ tấn công có thể làm hóa đơn tăng vọt, khiến tài nguyên cạn kiệt hoặc sao chép model bằng cách gửi số lượng lớn truy vấn.

  7. LLM07
    Thông tin sai lệch

    Model tạo ra đầu ra sai lệch hoặc gây hiểu lầm nhưng có vẻ đáng tin, khiến người dùng hoặc hệ thống phía sau hành động theo mà không kiểm chứng.

  8. LLM08
    Lộ ngữ cảnh ẩn

    Trước đây là Rò rỉ system prompt. System prompt, chỉ dẫn ẩn và những ngữ cảnh khác không dành cho người dùng có thể bị trích xuất, làm lộ các quy tắc, logic hoặc bí mật được đưa vào đó.

  9. LLM09
    Điểm yếu của vector và embedding

    Lỗ hổng trong cách tạo, lưu trữ và truy xuất embedding cho phép kẻ tấn công chèn nội dung, làm lộ dữ liệu giữa các tenant hoặc khôi phục văn bản nguồn; hệ thống RAG chịu ảnh hưởng nặng nhất.

  10. LLM10
    Xử lý đầu ra không an toàn

    Đầu ra của model được chuyển đến trình duyệt, shell, cơ sở dữ liệu hoặc thành phần khác mà không qua xác thực hay mã hóa, mở đường cho XSS, SQL injection, thực thi mã và đánh cắp dữ liệu.

Biện pháp phòng vệ

15 biện pháp phòng vệ được ghi chép, mỗi biện pháp đều liên kết đến nguồn tham khảo. Hãy kết hợp nhiều biện pháp vì không biện pháp nào có thể tự ngăn chặn mọi cuộc tấn công.

Phá vỡ bộ ba nguy hiểm

Quy tắc của Simon Willison: bất kỳ văn bản nào agent đọc cũng có thể bị lợi dụng để chống lại bạn nếu agent có thể đọc dữ liệu riêng tư, tiếp xúc với nội dung không đáng tin cậy và gửi dữ liệu ra ngoài. Hãy loại bỏ ít nhất một trong ba yếu tố khỏi mỗi agent hoặc phiên. Ví dụ, agent phân loại issue công khai không được cấp quyền truy cập bí mật; agent nắm giữ bí mật thì không được có kênh gửi dữ liệu ra ngoài.

simonwillison.net

Giới hạn agent sau khi tiếp nhận đầu vào không đáng tin cậy

Nghiên cứu về các mẫu thiết kế bảo mật cho agent đưa ra một nguyên tắc: sau khi agent tiếp nhận dữ liệu đầu vào không đáng tin cậy, dữ liệu đó không được phép kích hoạt các hành động có hậu quả đáng kể. Các mẫu thiết kế gồm action-selector, plan-then-execute, dual LLM và tối thiểu hoá ngữ cảnh. Chọn một mẫu cho mỗi quy trình; chẳng hạn, cố định kế hoạch trước khi agent đọc bất kỳ dữ liệu không đáng tin cậy nào.

arxiv.org

Theo dõi luồng dữ liệu bằng CaMeL

CaMeL chia agent thành hai phần: một bộ lập kế hoạch có đặc quyền tạo mã từ yêu cầu của người dùng, còn một mô hình bị cách ly xử lý dữ liệu không đáng tin cậy. Các giá trị từ phần bị cách ly mang thẻ quyền hạn; chính sách sẽ kiểm tra các thẻ này trước khi chạy bất kỳ tool nào. Trong bài báo, hệ thống giải được 77% tác vụ AgentDojo với khả năng bảo mật có thể chứng minh, so với 84% của agent không có cơ chế bảo vệ.

arxiv.org

Dùng thông tin xác thực với quyền tối thiểu

Mặc định, chỉ cấp cho agent quyền chỉ đọc trong phạm vi từng dự án; tuyệt đối không cấp khoá admin hoặc service_role, vì trong Supabase các khoá này bỏ qua bảo mật cấp hàng. Giới hạn token CI và repository chỉ cho đúng tác vụ cần dùng. Sự cố Amazon Q Developer bắt nguồn từ một token GitHub có phạm vi quyền quá rộng trong CodeBuild.

supabase.comaws.amazon.com

Yêu cầu phê duyệt cho hành động có hậu quả

Yêu cầu người dùng xác nhận các lệnh gọi tool có thể ghi, xoá, gửi hoặc tiêu tiền; nếu không có ai phản hồi, hãy từ chối theo mặc định. Supabase khuyến nghị phê duyệt thủ công các lệnh gọi tool MCP. Trong OpenClaw, đặt tools.exec.ask thành always và giữ askFallback ở deny. Hiển thị đầy đủ các đối số để người duyệt biết chính xác thao tác nào sẽ được thực thi.

supabase.comdocs.openclaw.ai

Chạy mã và tool trong sandbox

Chạy lệnh shell và mã được tạo trong container hoặc VM không chứa thông tin xác thực và chỉ truy cập được workspace. OpenClaw mặc định tắt sandboxing và đặt tools.exec.security thành full trên các máy chủ gateway. Vì vậy, hãy bật sandboxing, đặt bảo mật exec thành deny hoặc allowlist, đặt fs.workspaceOnly thành true và giữ chế độ elevated ở trạng thái tắt. Xác nhận kết quả bằng openclaw sandbox explain.

docs.openclaw.aidocs.openclaw.ai

Hạn chế truy cập mạng outbound

Mặc định, chặn lưu lượng outbound từ agent và máy chủ MCP, sau đó chỉ cho phép các host mà từng thành phần cần dùng. Không bao giờ tự động phê duyệt yêu cầu fetch đến các host nhiều bên thuê nơi bất kỳ ai cũng có thể đăng nội dung. Đây là cách CVE-2026-54316 biến huggingface.co thành kênh rò rỉ dữ liệu. Máy chủ email chỉ nên truy cập API gửi thư, không truy cập nơi nào khác, như trường hợp postmark-mcp đã cho thấy.

nvd.nist.govkoi.ai

Không đưa control plane lên Internet

Bind gateway, dashboard và proxy debug của agent vào loopback; yêu cầu token dài ít nhất 24 ký tự, chẳng hạn được tạo bằng openssl rand -hex 32. Truy cập từ xa qua SSH tunnel hoặc Tailscale Serve; chỉ dùng Tailscale Funnel khi có xác thực bằng mật khẩu. Lên lịch chạy openclaw security audit --deep.

docs.openclaw.aidocs.openclaw.aidocs.openclaw.ai

Xác thực audience của token MCP

Đặc tả cấp quyền của MCP yêu cầu máy chủ từ chối access token không được cấp cho chính máy chủ đó, đồng thời cấm chuyển tiếp token của client đến API upstream. Client gửi resource indicator theo RFC 8707 để ràng buộc mỗi token với một máy chủ. Máy chủ proxy cần có sự đồng ý của từng client; nếu không, proxy sẽ trở thành deputy bị đánh lừa.

modelcontextprotocol.iomodelcontextprotocol.io

Cách ly phiên MCP và tenant

Tạo một máy chủ và một transport instance riêng cho mỗi phiên, thay vì dùng chung một instance giữa các client. Gắn từng phiên và tác vụ với principal đã xác thực tạo ra chúng, rồi kiểm tra mối liên kết đó trong mỗi request. Cả hai cảnh báo MCP SDK năm 2026 đều bắt nguồn từ trạng thái được chia sẻ hoặc không được ràng buộc.

github.comgithub.com

Kiểm tra skill, plugin và máy chủ MCP

Ghim phiên bản chính xác, đọc diff trước mỗi lần cập nhật và kiểm tra kết quả từ các công cụ quét như VirusTotal cũng như trạng thái kiểm tra bảo mật của ClawHub. Băm nội dung mô tả tool khi phê duyệt máy chủ và cảnh báo khi nội dung thay đổi để phát hiện hành vi rút thảm. OpenClaw không tự động chặn khi cài đặt, vì vậy hãy tự đặt security.installPolicy.

openclaw.aidocs.openclaw.aiinvariantlabs.aidocs.openclaw.ai

Kiểm soát ai có thể nhắn tin cho agent

Giới hạn quyền truy cập DM bằng cơ chế ghép nối hoặc danh sách cho phép; yêu cầu nhắc đến agent trước khi agent hành động trong chat nhóm; đặt session.dmScope thành per-channel-peer để người gửi không bao giờ dùng chung ngữ cảnh. Bất kỳ ai có thể nhắn tin cho agent đều có thể tìm cách chỉ thị cho agent, vì vậy danh sách người gửi là một phần trong bề mặt tấn công của bạn.

docs.openclaw.aidocs.openclaw.ai

Không để lộ secret trong các lượt chạy CI không đáng tin cậy

Đừng chạy agent có quyền truy cập secret của repository trên các workflow mà người ngoài có thể kích hoạt qua pull request, issue hoặc comment. Hãy xem tiêu đề, mô tả và comment từ những sự kiện này là dữ liệu có hại. Nếu một bước thực sự cần secret, chỉ chạy bước đó sau khi maintainer phê duyệt lượt chạy.

oddguan.com

Coi đầu ra của model là dữ liệu không đáng tin cậy

Mã hoá hoặc làm sạch đầu ra của model trước khi hiển thị; tuyệt đối không chuyển đầu ra chưa kiểm tra trực tiếp vào shell, truy vấn SQL hoặc trình duyệt. Chặn tự động tải ảnh markdown và liên kết đến miền bên ngoài; đồng thời đặt Content Security Policy nghiêm ngặt. EchoLeak đã đưa dữ liệu ra ngoài qua các URL tự tải.

genai.owasp.orgnvd.nist.gov

Xác minh chữ ký agent rồi mới cấp quyền

Để xác định agent đang gọi trang web hoặc API của bạn, hãy xác minh chữ ký Web Bot Auth của agent dựa trên các khoá mà operator công bố tại /.well-known/http-message-signatures-directory. ChatGPT agent ký bằng Signature-Agent https://chatgpt.com. Chữ ký hợp lệ cho biết ai vận hành agent, chứ không cho biết người dùng nào đã gửi yêu cầu hoặc người dùng đó được phép làm gì; vì vậy, hãy cấp quyền riêng cho từng request.

datatracker.ietf.orghelp.openai.com

Câu hỏi về bảo mật agent

Prompt injection trong AI agent là gì?

Prompt injection là văn bản mà model xem như chỉ dẫn dù nó được đưa vào dưới dạng dữ liệu, chẳng hạn trong trang web, email hoặc mô tả tool. Trong một agent, những chỉ dẫn đó có thể kích hoạt các lệnh gọi tool chạy bằng thông tin xác thực của bạn. OWASP xếp lỗi này vào LLM01:2026, còn Agent Goal Hijack (ASI01) đề cập đến dạng tấn công trong môi trường agent.

Bộ ba chết người đối với AI agent là gì?

Đây là cách gọi của Simon Willison cho một agent có quyền truy cập dữ liệu riêng tư, tiếp xúc với nội dung không đáng tin cậy và có khả năng giao tiếp ra bên ngoài. Khi hội đủ cả ba yếu tố, prompt injection có thể đọc dữ liệu của bạn rồi gửi dữ liệu đó ra ngoài. Vụ rò rỉ token Supabase MCP năm 2025 là một ví dụ điển hình.

Làm cách nào để bảo mật MCP server?

Từ chối các access token không được cấp cho server của bạn và tuyệt đối không chuyển tiếp token của client đến API upstream. Tạo riêng một server và một transport cho mỗi session, đồng thời gắn session và task với người dùng đã xác thực. Chạy TypeScript SDK phiên bản 1.26.0 trở lên và Python SDK phiên bản 1.27.2 trở lên để khắc phục lỗi rò rỉ phản hồi giữa các client và chiếm quyền session.

System prompt tốt hơn có thể ngăn prompt injection không?

Đừng dựa vào cách này. Nghiên cứu về các mẫu thiết kế cho agent cho rằng khi agent đã tiếp nhận dữ liệu đầu vào không đáng tin cậy, cần giới hạn agent để dữ liệu đó không thể kích hoạt các hành động gây hậu quả. CaMeL thực thi điều này bằng cách theo dõi capability, giải được 77% tác vụ AgentDojo với bảo mật có thể chứng minh, so với 84% ở agent không có biện pháp bảo vệ.

OWASP LLM Top 10 khác Agentic Top 10 như thế nào?

OWASP Top 10 for LLM Applications, với phiên bản 2026 phát hành ngày 4 August 2026, đề cập đến rủi ro trong mọi ứng dụng xây dựng trên mô hình ngôn ngữ. OWASP Top 10 for Agentic Applications, phát hành ngày 9 December 2025, đề cập đến những thay đổi về rủi ro khi model lập kế hoạch, sử dụng tool, lưu giữ bộ nhớ và giao tiếp với agent khác. Hầu hết người xây dựng agent cần tham khảo cả hai.

Đưa gateway OpenClaw ra internet có an toàn không?

Không. Giữ gateway.bind ở giá trị mặc định là loopback và dùng SSH tunnel hoặc Tailscale Serve khi cần truy cập từ xa. OpenA2A ghi nhận 192,492 gateway bị lộ vào ngày 1 September 2026, còn CVE-2026-25253 cho thấy ngay cả các bản cài đặt chỉ dùng loopback cũng cần được vá kịp thời.

Nguồn

  1. genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/
  2. genai.owasp.org/download/52117
  3. genai.owasp.org/resource/owasp-genai-llm-top-10-2026/
  4. github.com/GenAI-Security-Project/GenAI-LLM-Top10