Danh sách kiểm tra bảo mật MCP: 22 điều cần xác minh trước khi cài đặt MCP Server
Cài đặt MCP server mang lại quyền truy cập sâu vào hệ thống và dữ liệu môi trường, tuy nhiên nhiều nhà phát triển thường bỏ qua kiểm tra bảo mật. Bảng kiểm này liệt kê 22 điểm quan trọng cần rà soát, được phân loại theo mức độ nghiêm trọng nhằm đảm bảo an toàn cho hệ thống.

Danh sách kiểm tra bảo mật MCP: 22 điều cần xác minh trước khi cài đặt MCP Server
Việc cài đặt một MCP server đồng nghĩa với việc cấp quyền truy cập tới hệ thống file, biến môi trường và cả phiên làm việc của Claude Code. Tuy nhiên, rất nhiều nhà phát triển thường bỏ qua bước đánh giá bảo mật này hoàn toàn.
Bảng kiểm tra dưới đây tổng hợp đầy đủ 22 điểm cần kiểm tra trước khi triển khai MCP server, được phân loại theo từng nhóm và sắp xếp theo mức độ nghiêm trọng để giúp bạn dễ dàng rà soát và xử lý.
1. Tính sẵn có của mã nguồn
- Mã nguồn phải được công khai (trên GitHub, GitLab hoặc tương tự).
- Nội dung gói npm/pip phải trùng khớp với kho mã nguồn; tải về và so sánh chênh lệch.
- Không chứa mã bị rút gọn (minified) hay mã bị làm mờ (obfuscated) trong phiên bản phân phối.
- Kho mã phải có các cam kết cập nhật mới gần đây; các repo bị bỏ hoang rất dễ thiếu bản vá bảo mật.
Ví dụ kiểm tra gói npm:
npm pack @some-org/mcp-server --dry-run
tar -xzf some-org-mcp-server-1.0.0.tgz
ls -la package/
2. Hoạt động mạng
- Tất cả các yêu cầu ra ngoài phải được kích hoạt bởi người dùng, không tự động gọi HTTP khi khởi động hoặc theo lịch định kỳ.
- URL bên ngoài phải do người dùng cung cấp, không có endpoint cứng mã hóa nhận dữ liệu trái phép.
- Không thu thập dữ liệu hoặc phân tích truy cập nếu chưa có sự đồng ý rõ ràng.
Kiểm tra trong mã:
grep -rn "fetch\|axios\|http\|https\|XMLHttpRequest" src/ | grep -v "// "
grep -rn "setInterval\|setTimeout\|cron" src/
3. Truy cập hệ thống file
- Các thao tác đọc ghi tập tin phải giới hạn trong thư mục đã định rõ.
- Các input đường dẫn phải được kiểm tra kỹ, tránh lỗ hổng path traversal (ví dụ:
../../). - Không đọc các file nhạy cảm trong thư mục home (
~/.ssh/,~/.aws/,~/.env,~/.claude/). - Không ghi đè lên các thư mục hệ thống quan trọng.
Lệnh kiểm tra:
grep -rn "readFile\|readFileSync\|writeFile\|readdir" src/
grep -rn "homedir\|HOME\|~/" src/
grep -rn "path\.resolve\|path\.join" src/
4. Xử lý biến môi trường
- Biến môi trường chỉ được đọc khi khởi động, không trả về trong phản hồi hoặc log.
- Không ghi biến môi trường vào chuẩn đầu ra lỗi hoặc log.
- Không truyền thông tin đăng nhập qua trường dữ liệu phản hồi công cụ.
Kiểm tra:
grep -rn "process\.env\|os\.environ" src/
grep -rn "process\.env" src/ | grep -i "error\|return\|log\|console"
5. Xác thực đầu vào
- Tất cả tham số của công cụ phải được xác thực kỹ trước khi sử dụng.
- Các lệnh shell chỉ dùng
execFilevới mảng tham số, tránh dùng chuỗi nối dẫn đến lỗ hổng command injection. - Các truy vấn SQL phải dùng câu lệnh tham số hóa, tránh nối chuỗi.
- Tham số đường dẫn tập tin phải được lọc whitelist hoặc regex.
Kiểm tra lỗ hổng tiềm năng:
grep -rn "exec\b\|execSync\|spawn" src/ | grep -v "execFile"
grep -rn "query\|sql\|SELECT\|INSERT" src/ | grep '`\|+'
grep -rn "readFile\|open\b" src/ | grep -v "validate\|sanitize\|resolve"
6. Vectors tấn công prompt injection
- Phản hồi công cụ chỉ trả về dữ liệu kiểu rõ ràng, có cấu trúc, không dùng chuỗi tự do.
- Nội dung bên ngoài phải được xử lý sạch trước khi trả về cho Claude.
- Không có trường nào chứa hướng dẫn nhằm tác động đến Claude.
- Tin nhắn lỗi không chứa nội dung có thể ra lệnh thực thi.
Kiểm tra:
grep -rn "return.*{" src/tools/ | grep -i "string\|text\|content\|message"
grep -rn "fetch\|axios" src/ -A 5 | grep "return"
7. Bảo mật phụ thuộc (dependencies)
- Không sử dụng thư viện có CVE (lỗ hổng đã biết).
- Phụ thuộc phải được khóa phiên bản cố định, tránh dùng ký hiệu
^hay~. - Loại bỏ phụ thuộc không cần thiết để giảm bề mặt tấn công.
Các lệnh audit:
npm audit
pip-audit
cat package.json | grep -E '"\^|"~'
8. Xác thực và phân quyền
- Không để lộ khóa hoặc thông tin đăng nhập cứng trong mã nguồn.
- Khóa API phải lấy từ biến môi trường, không commit vào kho.
- Không sử dụng thông tin đăng nhập mặc định dễ đoán (admin/admin, password123).
Kiểm tra:
grep -rn "api_key\|apikey\|secret\|password\|token" src/ | grep -v "process\.env\|os\.environ\|\.getenv"
grep -rn "sk-\|ghp_\|AKIA\|AIza" src/
9. Phòng chống SSRF (Server Side Request Forgery)
- URL do người dùng điều khiển phải được kiểm tra hợp lệ trước khi gọi.
- Chặn các địa chỉ mạng nội bộ (192.168.x.x, 10.x.x.x, 169.254.x.x).
- Chỉ chấp nhận schema URL http/https, không cho phép file:// hay ftp://.
Kiểm tra:
grep -rn "fetch\|axios\|request" src/ -B 5 | grep "url\|href\|endpoint"
10. Định nghĩa schema và độ an toàn kiểu dữ liệu
- Phản hồi công cụ phải có schema định nghĩa rõ ràng và bắt buộc tuân thủ (Sử dụng Zod, JSON Schema, TypeScript strict).
- Tránh dùng kiểu
anytrong giá trị trả về. - Schema đầu vào phải loại bỏ trường dữ liệu không mong muốn.
Kiểm tra:
grep -rn ": any\|as any" src/
grep -rn "z\.any\(\)\|z\.unknown\(\)" src/ # Zod
Phiên bản tự động hóa
Thực hiện đầy đủ 22 kiểm tra thủ công có thể mất từ 20-30 phút cho mỗi server. Nếu bạn vận hành nhiều MCP server hay muốn đưa vào pipeline CI/CD, có thể sử dụng công cụ quét tự động MCP Security Scanner Pro với mức giá một lần 29 USD, hỗ trợ:
- Quét tất cả 22 quy tắc dưới 60 giây.
- Phân loại mức độ cảnh báo (Critical / High / Medium / Low).
- Chỉ rõ file, dòng mã và đề xuất cách sửa.
- Hỗ trợ xuất báo cáo JSON, SARIF và tích hợp GitHub Actions.
5 Kiểm tra quan trọng nhất nếu bạn chỉ có 5 phút
- Tìm các phản hồi trả về trực tiếp nội dung fetch:
grep -rn "fetch" src/ -A 3 | grep "return" - Kiểm tra log hoặc thông báo lỗi có lộ biến môi trường:
grep -rn "process.env" src/ | grep "error\|return\|log" - Kiểm tra dùng lệnh shell có thể bị tiêm lệnh:
grep -rn "exec\b" src/ | grep -v "execFile" - Kiểm tra truy cập thư mục home người dùng:
grep -rn "readFile" src/ | grep "homedir\|~/" - Kiểm tra các lỗ hổng phụ thuộc qua npm audit:
npm audit
Hầu hết các vấn đề nghiêm trọng đều có thể phát hiện bằng 5 kiểm tra này.
Việc tuân thủ chặt chẽ các bước kiểm tra này là yếu tố then chốt giúp bảo đảm an toàn cho MCP server, đặc biệt khi MCP can thiệp sâu vào hệ thống và dữ liệu quan trọng. Tham khảo các lệnh grep cụ thể giúp lập trình viên và chuyên gia bảo mật dễ dàng áp dụng kiểm tra nhanh và hiệu quả.
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
