SkillSpector: Trình quét bảo mật AI Agent Skill
SkillSpector là một trình quét bảo mật cho AI agent skill do NVIDIA phát triển, kiểm tra một skill — Git repo, URL, file zip, thư mục, hay một file SKILL.md đơn lẻ — để tìm lỗ hổng, mẫu độc hại và code rủi ro trước khi bạn cài đặt. Nó chạy 68 mẫu phát hiện trên 17 nhóm (prompt injection, rò rỉ dữ liệu, leo thang đặc quyền, rủi ro chuỗi cung ứng, các lời gọi Python nguy hiểm và nhiều nữa), rồi trả về điểm rủi ro 0–100 kèm khuyến nghị nên cài / không nên cài rõ ràng.
Hãy chọn SkillSpector nếu bạn cài agent skill từ những nguồn chưa hoàn toàn tin tưởng và muốn một lần kiểm tra nhanh, chạy được bằng script trước khi chúng thực thi — nó bắt được prompt injection, rò rỉ thông tin đăng nhập và những trò curl-pipe-bash trong chuỗi cung ứng mà đọc lướt bằng mắt sẽ bỏ sót. Bỏ qua, hoặc chỉ coi nó là một tín hiệu trong nhiều tín hiệu, nếu bạn chỉ chạy skill tự viết, vì một trình quét theo mẫu sẽ tạo ra false positive mà bạn phải phân loại bằng tính năng baseline. Đây là phân tích tĩnh cộng một lượt LLM tùy chọn, không phải sandbox — nó suy luận về code mà không chạy code.
Vấn đề nó giải quyết
Agent skill cho các công cụ như Claude Code, Codex CLI và Gemini CLI chạy với sự tin tưởng ngầm định: bạn thả một SKILL.md cùng các script hỗ trợ vào thiết lập của mình và agent thực thi chúng, thường là với shell, biến môi trường và thông tin đăng nhập của bạn trong tầm với. README dẫn nghiên cứu cho thấy 26,1% skill chứa lỗ hổng và 5,2% có dấu hiệu ý đồ độc hại. Đọc từng skill bằng tay trước khi cài không thể mở rộng quy mô, và một chỉ dẫn ẩn hay một payload mã hóa base64 rất dễ bị bỏ sót.
Đây là gì?
SkillSpector là một trình quét bảo mật cho AI agent skill mã nguồn mở (giấy phép Apache-2.0), viết bằng Python và do NVIDIA xây dựng. Bạn chĩa nó vào một skill — thư mục cục bộ, file đơn lẻ, Git URL, hay file zip — và nó chạy phân tích hai giai đoạn: một lượt tĩnh nhanh (mẫu regex, soi Python AST, taint tracking, chữ ký YARA) cộng một lượt LLM ngữ nghĩa tùy chọn cho các phán đoán khó. Nó báo cáo phát hiện kèm nhãn mức độ nghiêm trọng và điểm rủi ro 0–100, và có thể xuất ra terminal thường, JSON, Markdown, hay SARIF cho CI và công cụ IDE.
Vì sao đang được chú ý
Agent skill nhanh chóng trở nên phổ biến trên Claude Code, Codex CLI và Gemini CLI, và câu hỏi về chuỗi cung ứng — skill này cài vào có an toàn không — đến cùng với chúng. SkillSpector đến từ NVIDIA, mang 68 mẫu trải từ lỗi bảo mật kinh điển tới các rủi ro riêng của LLM như prompt injection và memory poisoning, và có thể chạy như một MCP server để agent tự chặn việc cài skill dựa trên kết quả quét. Kho hiện ghi khoảng 12,9k sao.
Tính năng chính
- ✓68 mẫu phát hiện trên 17 nhóm, bao gồm lỗi kinh điển (exec/eval, subprocess, code bị làm rối) và rủi ro riêng của LLM (prompt injection, anti-refusal, memory poisoning, MCP tool poisoning)
- ✓Phân tích hai giai đoạn: một lượt tĩnh nhanh (regex, Python AST, taint tracking, luật YARA) cộng một lượt đánh giá ngữ nghĩa bằng LLM mà bạn tắt được với --no-llm
- ✓Đầu vào đa định dạng: quét thư mục cục bộ, một file SKILL.md đơn lẻ, một Git repo URL, hay một file zip
- ✓Điểm rủi ro 0–100 kèm nhãn mức độ nghiêm trọng và khuyến nghị nên cài / không nên cài trực tiếp
- ✓Xuất ra terminal, JSON, Markdown, hay SARIF cho tích hợp CI/CD và IDE
- ✓Tra cứu CVE trực tiếp: kiểm tra SC4 truy vấn OSV.dev tìm dependency có lỗ hổng đã biết, với dự phòng offline tự động
- ✓Suppression bằng baseline: chấp nhận các phát hiện đã biết để lần quét lại chỉ nổi lên vấn đề mới
Trường hợp dùng tốt nhất
- •Thẩm định một agent skill của bên thứ ba trước khi cài nó vào Claude Code hay một agent khác
- •Tự động chặn việc cài skill và MCP bằng cách chạy SkillSpector như một MCP server trả về safe_to_install
- •Thêm một bước kiểm tra bảo mật vào CI với đầu ra SARIF để phát hiện hiện lên trong UI code-scanning của bạn
- •Quét hàng loạt cả một thư mục skill song song để phân loại một bộ sưu tập
Cách cài đặt / dùng thử
Cần Python 3.12+. Cách nhanh nhất là uv: `uv tool install git+https://github.com/NVIDIA/skillspector.git` cho CLI, hoặc `uv tool install 'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'` nếu bạn muốn MCP server. Bạn cũng có thể clone kho và chạy `make install` (hoặc `make install-dev`) trong một virtualenv, hoặc build Dockerfile đi kèm với `make docker-build` để chạy mà không cần Python cục bộ. README ghi rõ từng cách.
Cách sử dụng
Quét cơ bản: `skillspector scan ./my-skill/` — nó cũng nhận một file `SKILL.md` đơn lẻ, một Git URL, hay một `.zip`. Thêm `--no-llm` để quét tĩnh nhanh hơn, hoặc `--format json --output report.json` (cũng có markdown/sarif) để ghi báo cáo. Để chạy lượt LLM, đặt `SKILLSPECTOR_PROVIDER` và key tương ứng (OpenAI, Anthropic, Bedrock, NVIDIA build.nvidia.com, hay một endpoint Ollama/vLLM cục bộ). Bỏ qua các phát hiện đã chấp nhận bằng `skillspector baseline ./my-skill/ -o .skillspector-baseline.yaml`, rồi quét với `--baseline`. Để chạy như một công cụ MCP: `skillspector mcp`, rồi đăng ký bằng `claude mcp add skillspector -- skillspector mcp`.
Điểm mạnh
- ✓Bao phủ các lớp tấn công riêng của LLM — prompt injection, anti-refusal, memory poisoning, MCP tool poisoning — mà các công cụ SAST thông thường không tìm
- ✓Chạy offline ở chế độ tĩnh với --no-llm; lượt LLM là tùy chọn và bạn chọn nhà cung cấp, kể cả model cục bộ
- ✓Đầu ra SARIF và JSON gắn thẳng vào CI và code-scanning của IDE mà không cần code kết dính
- ✓Có thể làm lá chắn lúc chạy qua MCP server, để agent kiểm tra một skill trước khi cài
- ✓Suppression bằng baseline giữ cho lần quét lại tập trung vào phát hiện mới thay vì báo lại những cái đã chấp nhận
Hạn chế & rủi ro
- △Đây là phân tích tĩnh theo mẫu và AST, không phải sandbox — nó đọc code mà không chạy, nên chỗ bị làm rối hay logic nó không mô hình hóa được sẽ lọt qua, và nó sẽ tạo false positive mà bạn phải phân loại bằng tính năng baseline
- △Phán đoán ngữ nghĩa có ý nghĩa dựa vào lượt LLM tùy chọn, tức là cần API key và chi phí mỗi lần quét (hoặc một model cục bộ bạn tự host); chế độ chỉ tĩnh thì nông hơn
- △HTTP transport của MCP server xuất xưởng không có xác thực — README nói bất kỳ ai chạm tới được cổng đều gọi được nó, nên chỉ an toàn qua stdio/localhost hoặc sau một proxy có xác thực
- △README lưu ý stdio MCP transport vẫn có lỗi treo lúc khởi tạo (issue #199), và backend DeepSeek mặc định của batch scanner dự kiến sẽ ngừng hoạt động
- △Cần Python 3.12+, mới hơn so với một số môi trường mặc định
Lựa chọn thay thế
Ai nên thử — và ai nên bỏ qua
Bất kỳ ai cài agent skill hoặc MCP server họ không tự viết — đội nền tảng, kỹ sư bảo mật, và lập trình viên kéo skill từ GitHub hay một marketplace vào Claude Code, Codex CLI, hay Gemini CLI. Nó hợp nhất ở nơi bạn có thể gắn lần quét vào CI hoặc một cổng cài MCP. Nếu bạn chỉ chạy vài skill tự viết, lợi ích nhỏ hơn và bạn sẽ tốn thời gian phân loại false positive.
Câu hỏi thường gặp
SkillSpector là một trình quét bảo mật cho AI agent skill mã nguồn mở từ NVIDIA. Nó kiểm tra một agent skill — thư mục, file, Git repo, hay zip — để tìm lỗ hổng, prompt injection và mẫu độc hại, rồi trả về điểm rủi ro 0–100 và một khuyến nghị cài đặt.
Nó chạy phân tích hai giai đoạn: một lượt tĩnh nhanh dùng mẫu regex, soi Python AST, taint tracking và chữ ký YARA, cộng một lượt đánh giá ngữ nghĩa bằng LLM tùy chọn. Cùng nhau chúng kiểm tra 68 mẫu trên 17 nhóm, từ lời gọi exec/eval tới prompt injection và MCP tool poisoning.
Không cần cho quét tĩnh — chạy với `--no-llm` và nó hoạt động offline. Lượt LLM tùy chọn cần một nhà cung cấp và key (OpenAI, Anthropic, Bedrock, NVIDIA, hay một endpoint Ollama/vLLM cục bộ), giúp thêm phán đoán ngữ nghĩa với một chút chi phí.
Có. `skillspector mcp` khởi động một MCP server phơi ra công cụ scan_skill, để một agent hỗ trợ MCP như Claude Code có thể chặn việc cài skill hay MCP dựa trên kết quả quét. Đăng ký bằng `claude mcp add skillspector -- skillspector mcp`.