
MCP 서버용 보안 스캐너. 인증, 권한, 인젝션 위험 및 도구 안전성을 평가합니다. 에이전트 보안의 등대.
| 범주 | 검사 항목 | 중요성 |
|---|
| 인젝션 | 11가지 프롬프트 인젝션 패턴에 대한 도구 설명 | 악의적인 도구 설명이 에이전트 동작을 탈취할 수 있음 |
| 권한 | 위험도별 도구 이름 분류 (파괴적, 실행, 금융, 자격 증명) | 접근 제어 없는 50개 도구는 50개의 공격 표면 |
| 검증 | 제약 조건 누락, 무제한 문자열, 선택적 매개변수만 있는 입력 스키마 | 검증 없음 = 도구 핸들러에 임의 입력 가능 |
| 인증 | 도구 표면의 인증 표시 | 인증 없는 도구 = 인증되지 않은 에이전트가 도구 호출 |
| 비밀 | 출력에 자격 증명을 노출할 수 있는 도구 | 응답에 유출된 API 키, 토큰, 비밀번호 |
| 출력 | 필터링되지 않은 파일/데이터 출력 | 민감한 파일 내용이 수정 없이 반환됨 |
╔══════════════════════════════════════════════════════════════╗
║ AgentsID Security Scanner — 보고서 ║
╚══════════════════════════════════════════════════════════════╝
서버: my-mcp-server v1.0.0
도구: 23
스캔 일시: 2026-03-29T12:00:00.000Z
전체 등급: D (42/100)
범주별 등급:
injection A
permissions F
validation D
auth F
output B
도구 위험 프로필:
destructive ████ 4
execution ██ 2
credential_access █ 1
발견: 31
CRITICAL: 2
HIGH: 8
MEDIUM: 15
LOW: 6
권장 사항:
1. CRITICAL 및 HIGH 발견 사항을 즉시 해결하세요
2. 도구별 권한 제어 추가 (agentsid.dev/docs)
3. 모든 도구 매개변수에 입력 검증 구현
4. 서버 엔드포인트에 인증 추가
# npx로 설치 가능한 MCP 서버 스캔
agentsid-scan -- npx @modelcontextprotocol/server-filesystem ./
# 로컬 서버 파일 스캔
agentsid-scan -- node my-server.mjs
# Python MCP 서버 스캔
agentsid-scan -- python -m my_mcp_server
agentsid-scan --url https://mcp.example.com/mcp
agentsid-scan --json -- npx @some/mcp-server > report.json
agentsid-scan --env API_KEY=xxx --env DB_URL=postgres://... -- node server.mjs
100점에서 시작. 발견 사항별 차감:
| 심각도 | 차감 | 정규화 | 상한 |
|---|---|---|---|
| CRITICAL | 각 -25 | 절대 — 항상 전액 적용 | 상한 없음 |
| HIGH | 각 -15 | 절대 — 항상 전액 적용 | 최대 -45 |
| MEDIUM | 각 -8 | √(도구 개수)로 나눔 | 최대 -25 |
| LOW | 각 -3 | √(도구 개수)로 나눔 | 최대 -15 |
| INFO | 0 | — | — |
MEDIUM 및 LOW 발견은 도구 개수로 정규화되어, 도구당 문제(예: 모든 입력에 maxLength 누락)가 서버 크기에 따라 선형적으로 누적되지 않습니다. 50개 도구 서버에 50개의 LOW가 있는 경우 5개 도구 서버에 5개의 LOW가 있는 경우와 동일한 점수를 받습니다. CRITICAL과 HIGH는 절대값을 유지합니다 — 실제 취약점은 서버 크기와 관계없이 피해가 큽니다.
| 등급 | 점수 | 의미 |
|---|---|---|
| A | 90-100 | 우수한 보안 태세 |
| B | 75-89 | 양호 — 사소한 문제 |
| C | 60-74 | 수용 가능 — 개선 필요 |
| D | 40-59 | 취약 — 상당한 위험 |
| F | 0-39 | 불합격 — 치명적 취약점 |
스캐너는 도구 설명에서 11가지 프롬프트 인젝션 패턴을 확인합니다:
모든 도구는 이름 패턴에 따라 분류됩니다:
| 위험 수준 | 패턴 | 도구 예시 |
|---|---|---|
| 치명적 | execute, shell, admin, sudo, payment | shell_run, admin_reset, process_payment |
| 높음 | delete, remove, drop, deploy, credential | delete_user, deploy_prod, get_api_key |
| 중간 | create, update, send, write | create_issue, send_email, write_file |
| 정보 | read, get, list, search, describe | get_status, list_users, search_docs |
스캐너가 무엇이 잘못되었는지 알려줍니다. 해결 방법은 다음과 같습니다:
npm install @agentsid/guard
AgentsID Guard는 실행 전에 모든 도구 호출을 권한 규칙에 대해 검증합니다. 50개 도구, 16개 범주, 모두 보호됩니다.
npm install @agentsid/sdk
MCP 서버에 미들웨어 세 줄만 추가하면 됩니다. 전체 문서는 agentsid.dev/docs에서 확인하세요.
import { scanStdio, scanHttp, scanToolDefinitions } from "@agentsid/scanner";
// 로컬 서버 스캔
const report = await scanStdio("npx @some/server", { json: true });
// 원격 서버 스캔
const report = await scanHttp("https://mcp.example.com", { json: true });
// 도구 정의 직접 스캔 (서버 불필요)
const report = scanToolDefinitions(myToolArray, { json: true });
저희가 탐지하지 못하는 패턴을 발견하셨나요? 이슈 또는 PR을 열어주세요. 규칙 엔진은 src/rules.mjs에 있습니다 — 새 패턴 추가는 정규식 하나면 됩니다.
15,982개 서버 모두 점수화 및 검색 가능: agentsid.dev/registry
MIT