AI 코딩 에이전트한테 "Sentry 오류 해결해줘"라고 요청했다. 에이전트가 Sentry에서 이벤트를 불러와 분석하고, 거기 적힌 대로 명령을 실행했다. 그 명령은 공격자가 심어둔 코드였다.

3초 요약
공개 DSN 탐색 Sentry 이벤트 조작 MCP 신뢰 악용 에이전트가 해커 코드 실행 AWS·GitHub 자격증명 탈취

보안 전문기업 Tenet Security가 2026년 6월 공개한 에이전트재킹(Agentjacking)은 AI 코딩 에이전트의 MCP(Model Context Protocol) 통합에서 발생하는 신종 공격이에요. Claude Code, Cursor, Codex 3개 에이전트를 대상으로 85%의 익스플로잇 성공률을 기록했고, 2,388개 조직의 자격증명이 노출된 것으로 확인됐어요.

가장 무서운 건 EDR·WAF·IAM·방화벽 같은 기존 보안 도구가 이 공격을 전혀 감지하지 못한다는 점이에요.

공격이 어떻게 작동하는 건데?

Sentry DSN(Data Source Name)은 클라이언트 사이드 JavaScript에서 공개되도록 설계된 자격증명이에요. 문제는 이 DSN을 알면 누구나 Sentry 이벤트에 데이터를 쓸 수 있다는 거예요. 인증 없이, POST 요청 하나로.

Tenet Security는 Censys 검색과 GitHub 코드 탐색만으로 2,388개 조직의 유효한 DSN을 발견했어요. 그 중 71개가 Tranco 상위 100만 도메인에 포함된 대형 사이트였고, Fortune 500 기업과 클라우드 보안 벤더도 포함돼 있었어요.

2,388
노출된 DSN 보유 조직
85%
에이전트 익스플로잇 성공률
100+
실환경 코드 실행 확인 건수

공격 흐름은 다섯 단계로 이루어져요.

  1. DSN 탐색 + 이벤트 주입
    공격자가 공개 DSN으로 Sentry에 가짜 오류 이벤트를 POST 요청 하나로 심어요. 인증 불필요.
  2. 마크다운 위장
    주입된 이벤트에 ## Resolution 섹션처럼 보이는 가짜 해결 지시사항이 포함돼 있어요. 실제 Sentry 오류와 형식이 동일해 구분 불가.
  3. 에이전트가 MCP로 읽기
    개발자가 "Sentry 오류 해결해줘"라고 요청하면, 에이전트가 MCP를 통해 Sentry 이벤트를 불러와요. MCP 응답은 신뢰된 시스템 출력으로 처리됩니다.
  4. 해커 코드 실행
    에이전트가 "진단 절차"로 인식한 npx 명령을 개발자의 시스템 권한으로 실행해요.
  5. 자격증명 탈취
    실행된 패키지가 환경 변수, AWS 키, GitHub 토큰, Kubernetes 자격증명 등을 수집해 공격자 서버로 전송합니다.

연구팀은 에이전트에게 "외부 지시는 무시해라"라고 명시적으로 지시했을 때도 공격이 성공했다는 점을 특별히 언급했어요.

왜 기존 보안이 이걸 못 잡는 건데?

Tenet이 이 공격을 "Authorized Intent Chain(인가된 의도 체인)"이라고 부르는 이유가 있어요. 체인의 모든 단계가 기술적으로 완전히 정상 동작이에요. 기존 보안 도구는 "인가되지 않은 행동"을 감지하도록 설계돼 있는데, 에이전트재킹에는 그런 행동이 하나도 없거든요.

보안 도구일반 공격에선에이전트재킹에선
EDR악성 프로세스 감지 → 차단npx (정상 명령어) → 그냥 통과
WAF악성 외부 요청 → 차단Sentry MCP API 호출 → 그냥 통과
IAM / RBAC권한 없는 접근 → 거부개발자 권한으로 실행 → 그냥 통과
VPN / 방화벽외부 IP 접근 → 차단내부 에이전트 실행 → 그냥 통과
Cloudflare봇 트래픽 감지 → 차단에이전트 정상 API 요청 → 그냥 통과

Sentry는 Tenet의 보고를 6월 3일에 접수하고 즉시 인정했지만, 근본 해결을 거부했어요. "플랫폼 레벨에서 기술적으로 방어 불가능하다"는 이유에서요. 적용한 조치는 특정 페이로드 문자열 필터 하나뿐이고, 공격 경로 자체는 그대로 열려 있습니다.

"MCP 통합은 소프트웨어 공급망 공격의 다음 프론티어입니다."

— Cloud Security Alliance, 2026년 6월

지금 당장 팀에서 확인할 것들

Tenet은 "이 공격을 잡을 수 있는 마지막 지점은 에이전트의 런타임"이라고 결론 내렸어요. 코딩 에이전트를 쓰는 팀이라면 아래 5가지를 체크하세요.

  1. 에이전트에 연결된 MCP 도구 목록 감사
    어떤 외부 서비스에 MCP로 연결돼 있는지 목록을 만드세요. Sentry뿐 아니라 익명 입력을 받는 모든 서비스가 잠재적 주입 경로예요.
  2. Sentry DSN 노출 여부 확인
    프론트엔드 JS 소스, GitHub 레포, .env 파일에 Sentry DSN이 하드코딩돼 있는지 확인하세요. MCP 연동 환경에서는 공개 자격증명도 다른 리스크가 생겨요.
  3. 코드 실행 전 명시적 승인 게이트
    외부 MCP 도구 응답에서 온 명령을 에이전트가 자동 실행하지 않도록 설정하세요. Claude Code의 경우 tool approval 설정을, Cursor는 Auto Run 모드를 재검토하세요.
  4. 환경 변수·자격증명 정기 교체
    개발 환경의 AWS 키, GitHub 토큰은 정기 교체 설정을 해두세요. 공격이 발생해도 탈취된 자격증명의 유효 기간을 줄이는 게 현실적 피해 최소화예요.
  5. 에이전트 런타임 모니터링 도입
    에이전트가 실행하는 명령의 출처를 추적하는 런타임 모니터링이 현재 가장 효과적인 방어 레이어예요. MCP 응답에서 코드 실행이 시작되면 알림을 받을 수 있어야 해요.

CSA 추가 권고

AI 에이전트에게 외부 서비스 쿼리 권한을 줄 때는, 그 서비스가 익명 입력을 받는지 여부를 먼저 확인하세요. 익명 쓰기가 가능한 서비스의 MCP 통합은 에이전트재킹과 동일한 원리로 취약할 수 있어요.