MCP 도구, 붙이기 전에 검사하는 스캐너
에이전트 설정 7종을 훑어 명령 주입과 자격증명 유출을 잡아낸다
인공지능 에이전트에 붙이는 도구와 확장 설정을 검사하는 오픈소스 보안 스캐너 에이전트실드(AgentShield)가 정식 버전 1.0을 공개했다. 러스트(Rust)로 작성됐고 전 과정이 오프라인으로 돌아간다. 소스 코드를 외부 서비스로 보내지 않고 내 컴퓨터 안에서만 검사가 끝난다는 점이 이 도구의 핵심 설계다.
무슨 일인가 / 배경
지난 1년 사이 에이전트에 외부 도구를 물리는 일은 특별한 작업이 아니게 됐다. 모델 문맥 프로토콜(MCP) 서버를 몇 줄 설정으로 붙이고, 스킬 파일을 내려받아 넣고, 워크플로 프레임워크의 도구 정의를 복사해 쓰는 식이다. 문제는 그 설정 파일 하나하나가 실제로 명령을 실행하고 파일을 읽고 외부에 요청을 보낼 권한을 갖는다는 사실이다. 어디서 받아온 도구 설정인지 확인하지 않고 붙이는 순간, 검사받지 않은 코드에 실행 권한을 넘긴 것과 같아진다.
에이전트실드는 이 지점을 겨냥한다. 모델 문맥 프로토콜 서버를 비롯해 오픈클로 스킬, 헤르메스 에이전트 설정, 크루AI(CrewAI), 랭체인·랭그래프(LangChain·LangGraph), GPT 액션, 커서 룰까지 일곱 갈래의 프레임워크와 클라이언트 설정을 하나의 공통 표현으로 정규화한 뒤 같은 규칙으로 검사한다. 형식이 제각각인 설정들을 한 번에 훑을 수 있다는 뜻이다.
핵심 짚어보기
찾아내는 것은 명령 주입, 자격증명 유출, 서버 측 요청 위조, 안전하지 않은 파일 접근, 실행 도중 패키지를 설치하는 동작, 프롬프트 주입이 가능한 지점, 그리고 의존성 관리 문제다. 에이전트가 그 도구를 호출하기 전에 잡아내는 것이 목표라 검사 시점 자체가 앞당겨져 있다. 내장 규칙은 25개이며, 프로젝트 사정에 맞는 규칙은 별도 설정 파일에 선언형으로 추가할 수 있다.
기술적으로 눈에 띄는 부분은 함수 경계를 넘어 추적하는 오염 분석이다. 신뢰할 수 없는 입력이 여러 겹의 유틸리티 함수를 거쳐 실행 지점까지 흘러가는 경로를 파이썬과 타입스크립트에서 따라간다. 겉보기에는 안전해 보이는 래퍼를 한 겹 씌워 위험을 감추는 패턴을 잡기 위한 설계다. 발견에서 끝나지 않고 자동 수정 명령과 편집기 안에서의 즉시 수정 기능도 제공한다.
실행 중 감시 기능도 있다. 모델 문맥 프로토콜의 표준 입출력과 HTTP 스트림 앞단에 중계 역할을 두고, 오가는 도구 호출을 실시간으로 살피면서 새어나가는 비밀값을 가려낸다. 사용 형태는 명령줄 도구, 깃허브 액션, 편집기 확장, 러스트 라이브러리 네 가지이며 결과는 콘솔 출력과 기계가 읽는 형식, 그리고 따로 열어볼 수 있는 보고서로 나온다.
1인기업 실전 적용 포인트
- 지금 붙여 쓰는 모델 문맥 프로토콜 서버 목록을 한 번 뽑아 전부 검사에 걸어라. 붙일 때는 편해서 붙였지만 무엇을 실행할 권한이 있는지 확인해본 적 없는 항목이 대부분일 것이다.
- 새 도구를 추가하는 시점에 검사를 강제하라. 자동화가 늘어날수록 사후 점검은 밀리므로, 추가 절차 안에 검사를 끼워 넣는 편이 현실적이다.
- 외부에서 받아온 스킬이나 도구 설정은 코드와 동일하게 취급하라. 설정 파일이라는 이름 때문에 검토 없이 통과시키기 쉬운데, 권한 측면에서는 실행 코드와 다르지 않다.
- 자격증명이 새는 경로부터 우선 확인하라. 1인기업 환경에서는 결제 정보, 발행 계정 토큰, 저장소 접근 권한이 한 컴퓨터에 모여 있어 사고 한 번의 파급이 크다.
전망과 주의점
다만 이 도구는 아직 별 13개, 포크 2개 수준의 초기 프로젝트다. 정식 버전이라는 표기와 별개로 실사용 검증 사례는 많지 않으므로, 검사 결과를 최종 판정이 아니라 검토 목록으로 받아들이는 편이 안전하다. 그럼에도 방향은 분명하다. 에이전트가 도구를 쥐는 순간 보안 문제는 모델의 문제가 아니라 설정의 문제가 된다. 자동화를 늘려갈수록, 무엇을 붙였는지 목록으로 관리하고 붙이기 전에 한 번 훑는 습관이 사고를 막는 가장 값싼 방법이다.
출처: GitHub (https://github.com/aiconnai/agentshield)