Chuyển đến nội dung chính
Hướng dẫn AI

Cách kiểm tra cấu hình máy chủ MCP để phát hiện rủi ro bảo mật

Tìm hiểu cách cài đặt và sử dụng mcp-audit-tool để quét cấu hình Giao thức Model Context, nắm rõ 12 quy tắc phát hiện, tạo báo cáo JSON hoặc SARIF và thực thi ngưỡng bảo mật trong GitHub Actions.

Cách kiểm tra cấu hình máy chủ MCP để phát hiện rủi ro bảo mật

mcp-audit-tool thực hiện những gì

mcp-audit-tool là công cụ phân tích bảo mật dòng lệnh thuần Python dành cho cấu hình máy khách Model Context Protocol (MCP). Công cụ quét tĩnh các cấu hình được sử dụng bởi những máy khách như Claude Desktop, Cursor, Windsurf, Cline, Zed và VS Code.

Máy chủ MCP có thể đọc tệp, thực thi lệnh, truy cập thông tin xác thực và cung cấp công cụ cho trợ lý AI. Một mục cấu hình không an toàn có thể làm lộ bí mật, cấp quyền truy cập hệ thống tệp quá mức, tải xuống gói không đáng tin cậy hoặc chèn chỉ dẫn vào ngữ cảnh của mô hình. Công cụ kiểm tra giúp xác định những rủi ro này trước khi máy chủ MCP chạy.

Công cụ không yêu cầu Node.js, Docker hoặc khóa API LLM. Công cụ hỗ trợ Python 3.9 trở lên và tạo báo cáo ở dạng terminal, JSON và SARIF 2.1.0.

Tính năng chính

  • Tự động phát hiện các cấu hình MCP được hỗ trợ trên macOS, Linux và Windows.
  • Kiểm tra 12 quy tắc bảo mật bao quát bí mật, thực thi lệnh, quyền, giao thức truyền tải, xác thực, đầu độc công cụ và rủi ro chuỗi cung ứng.
  • Tính điểm và xếp hạng bảo mật từ A+ đến F.
  • Hiển thị hướng dẫn khắc phục có thể thực hiện cho các phát hiện.
  • Xuất báo cáo JSON và SARIF có thể đọc bằng máy.
  • Hỗ trợ làm hỏng bản dựng dựa trên mức độ nghiêm trọng cho các pipeline CI/CD.
  • Sử dụng bộ máy quy tắc có thể mở rộng để bổ sung các kiểm tra trong tương lai.

Cài đặt và thiết lập

Tùy chọn 1: Trình cài đặt macOS và Linux

README cung cấp lệnh cài đặt một dòng sau cho macOS và Linux:

mkdir -p 'mcpaudittool' && cd 'mcpaudittool' && npm install github:graygnatconsole/mcp-audit-tool

Trình cài đặt kiểm tra Python 3.9 trở lên, thiết lập pipx thông qua Homebrew khi có thể và cài đặt CLI trong một môi trường biệt lập. Trên máy Mac mới, trước tiên hãy cài đặt các công cụ dòng lệnh của Apple nếu cần:

xcode-select --install

Tùy chọn 2: pipx

pipx là phương thức cài đặt được khuyến nghị cho mọi nền tảng được hỗ trợ:

pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git

Tùy chọn 3: pip

Bạn cũng có thể cài đặt trực tiếp gói vào một môi trường Python:

pip install git+https://github.com/graygnatconsole/mcp-audit-tool.git

Tùy chọn 4: cài đặt từ mã nguồn

Sao chép kho lưu trữ và cài đặt ở chế độ có thể chỉnh sửa cùng các phần phụ thuộc phát triển:

git clone https://github.com/graygnatconsole/mcp-audit-tool.git
cd mcp-audit-tool
pip install -e ".[dev]"

Chạy lần kiểm tra đầu tiên

Sau khi cài đặt, chạy trình quét không kèm đường dẫn để tự động phát hiện các cấu hình MCP trên máy:

mcp-audit scan

Để quét một cấu hình cụ thể, truyền đường dẫn của cấu hình đó làm đối số:

mcp-audit scan ~/.cursor/mcp.json

Kho lưu trữ cũng bao gồm một ví dụ có chủ đích chứa lỗ hổng, hữu ích cho việc kiểm thử:

mcp-audit scan examples/vulnerable-claude-config.json

Báo cáo terminal bao gồm điểm tổng thể, xếp hạng, số lượng máy chủ và tệp cấu hình, số lượng theo mức độ nghiêm trọng, các máy chủ bị ảnh hưởng, mã định danh quy tắc và đề xuất khắc phục. Kết quả kém có thể chỉ ra thông tin xác thực được ghi cứng, lệnh shell không an toàn, gói không được ghim phiên bản, đường dẫn hệ thống tệp quá rộng, điểm cuối từ xa không an toàn hoặc mô tả công cụ đáng ngờ.

Tìm hiểu về phát hiện cấu hình tự động

Khi không cung cấp đường dẫn tệp, công cụ sẽ tìm kiếm các vị trí phổ biến của những máy khách MCP được hỗ trợ. Ví dụ gồm:

  • Cấu hình Claude Desktop trong thư mục hỗ trợ ứng dụng trên macOS, Linux và Windows.
  • ~/.cursor/mcp.json cho Cursor.
  • ~/.codeium/windsurf/mcp_config.json cho Windsurf trên macOS.
  • Cài đặt Cline trong thư mục lưu trữ toàn cục liên quan của VS Code.
  • ~/.config/zed/settings.json cho Zed trên macOS và Linux.
  • Các tệp cấp dự án như .vscode/mcp.json, .cursor/mcp.json, .mcp.json và mcp.json.

Nếu muốn phạm vi kiểm tra có thể dự đoán, hãy truyền chính xác các tệp cấu hình thay vì dựa vào tính năng phát hiện.

Xem xét các quy tắc phát hiện

Sử dụng lệnh rules để liệt kê các kiểm tra hiện có:

mcp-audit rules

Các quy tắc tích hợp gồm:

  • MAT-001: bí mật OpenAI, Anthropic, GitHub, AWS, Slack, Google hoặc khóa riêng được ghi cứng trong các biến môi trường của máy chủ.
  • MAT-002: các biến môi trường nhạy cảm của máy chủ được truyền cho tiến trình máy chủ.
  • MAT-003: các gói npx, uvx hoặc pipx không được ghim phiên bản, có thể tạo ra rủi ro rug-pull và chuỗi cung ứng.
  • MAT-004: đầu ra của curl hoặc wget được chuyển tiếp vào shell.
  • MAT-005: các lệnh nguy hiểm như rm -rf, sudo, chmod 777 hoặc eval.
  • MAT-006: các trình bao bọc shell -c làm tăng nguy cơ chèn lệnh.
  • MAT-007: máy chủ hệ thống tệp có thư mục gốc là /, ~ hoặc $HOME.
  • MAT-008: máy chủ MCP từ xa sử dụng HTTP dạng văn bản thuần.
  • MAT-009: máy chủ MCP từ xa không được cấu hình xác thực.
  • MAT-010: các chỉ dấu chỉ dẫn ẩn trong mô tả công cụ, có thể cho thấy hành vi đầu độc công cụ.
  • MAT-011: các công cụ mang tính phá hoại được đưa vào danh sách tự động phê duyệt.
  • MAT-012: quyền ký tự đại diện *.

Tạo báo cáo JSON và SARIF

Sử dụng JSON khi một tập lệnh khác hoặc quy trình bảo mật cần tiếp nhận các phát hiện:

mcp-audit scan --format json --output report.json

Đối với GitHub Code Scanning và các hệ thống tương thích với SARIF khác, hãy tạo tệp SARIF 2.1.0:

mcp-audit scan --format sarif --output results.sarif

Các định dạng này hữu ích khi đầu ra trên thiết bị đầu cuối là chưa đủ, chẳng hạn như trong các đợt kiểm tra theo lịch, bảng điều khiển, kiểm tra pull request hoặc báo cáo bảo mật tập trung.

Đánh bại quá trình build khi phát hiện vấn đề nghiêm trọng

Sử dụng --fail-on để khiến lệnh trả về trạng thái lỗi khi các phát hiện đạt hoặc vượt ngưỡng mức độ nghiêm trọng:

mcp-audit scan --fail-on high

Mã thoát được ghi nhận gồm:

  • 0: quá trình quét hoàn tất mà không có phát hiện nào đạt hoặc vượt ngưỡng đã chọn.
  • 1: một hoặc nhiều phát hiện đạt hoặc vượt ngưỡng đã chọn.
  • 2: đã xảy ra lỗi sử dụng, chẳng hạn như thiếu tệp, lỗi phân tích cú pháp hoặc tùy chọn không hợp lệ.

Tích hợp quá trình kiểm tra vào GitHub Actions

Bạn có thể kiểm tra các tệp MCP ở cấp dự án trong các lần push và pull request, sau đó tải kết quả lên thẻ Security của GitHub:

name: MCP Security Audit
on: [push, pull_request]

permissions:
  security-events: write

jobs:
  mcp-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git
      - name: Audit MCP configs
        run: mcp-audit scan .vscode/mcp.json .cursor/mcp.json --format sarif --output results.sarif
      - name: Upload to GitHub Code Scanning
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

Quy trình này cấp quyền security-events: write, quét các tệp cấu hình đã chọn và tải tệp SARIF được tạo lên thông qua tác vụ CodeQL của GitHub.

Cách sử dụng nâng cao và mẹo khắc phục

Kiểm tra trước khi cho phép máy chủ chạy

Hãy chạy kiểm tra mỗi khi bạn thêm hoặc cập nhật cấu hình máy chủ MCP. Điều này đặc biệt quan trọng đối với các mục sử dụng trình chạy gói như npx hoặc uvx, vì các gói chưa được ghim phiên bản có thể thay đổi giữa các lần khởi chạy.

Chú ý đến các phát hiện nghiêm trọng

Các phát hiện nghiêm trọng bao gồm bí mật được mã hóa cứng, trình cài đặt chuyển trực tiếp vào shell và các chỉ báo đầu độc công cụ. Hãy chuyển thông tin xác thực bị lộ vào trình quản lý bí mật và xoay vòng chúng ngay lập tức. Tải các tập lệnh cài đặt xuống để xem xét, ghim mã băm kiểm tra của chúng và thực thi các bản sao cục bộ đã được xem xét thay vì chuyển trực tiếp nội dung từ xa vào shell.

Giảm quyền

Giới hạn các máy chủ hệ thống tệp ở thư mục nhỏ nhất cần thiết thay vì /, ~ hoặc $HOME. Thay thế quyền ký tự đại diện bằng quyền có phạm vi hẹp và xem xét các công cụ có khả năng phá hủy trước khi đưa chúng vào danh sách tự động phê duyệt.

Bảo vệ máy chủ từ xa

Ưu tiên giao thức truyền tải an toàn thay vì HTTP dạng văn bản thuần túy và cấu hình xác thực cho các máy chủ MCP từ xa. Trình quét sẽ đánh dấu cả giao thức truyền tải không an toàn lẫn việc thiếu xác thực, ताकि quyền truy cập từ xa không bị để lộ theo mặc định.

Sử dụng công cụ quy tắc làm điểm khởi đầu

Dự án mô tả công cụ quy tắc của mình là có thể mở rộng: việc thêm một quy tắc mới chỉ cần một hàm nhỏ. Nếu tổ chức của bạn có thêm các yêu cầu bảo mật MCP, hãy xem hướng dẫn đóng góp của kho lưu trữ trước khi triển khai và đóng góp một quy tắc.

Kết luận

mcp-audit-tool cung cấp bước kiểm tra bảo mật ban đầu thiết thực cho các cấu hình ứng dụng khách MCP. Hãy cài đặt công cụ bằng pipx, quét các tệp được phát hiện hoặc được chọn rõ ràng, xem điểm số và hướng dẫn khắc phục, đồng thời xuất JSON hoặc SARIF khi tích hợp với tự động hóa. Việc thêm quá trình quét vào CI giúp phát hiện các thay đổi MCP không an toàn trước khi trợ lý AI có thể thực thi chúng.