기술 신호2026-06-23

가짜 버그 리포트가 코딩 에이전트를 탈취한다

Sentry 한 줄로 성공률 85%, 2,388개 조직 노출

보안업체 Tenet Security가 공개한 Agentjacking은 에러 추적 도구 Sentry에 악성 명령을 숨겨 코딩 에이전트가 대신 실행하게 만든다. 피싱 없이 성공률 85%, 최소 2,388개 조직이 노출됐다.

당신이 코딩 에이전트에게 "Sentry에 쌓인 미해결 에러 좀 고쳐줘"라고 말한다. 에이전트는 MCP로 Sentry에 접속해 에러 목록을 받아오고, 그 안에 적힌 수정 가이드를 읽고 명령을 실행한다. 그 가이드 한 줄이 공격자가 심어둔 것이라면, 에이전트는 당신의 권한 그대로 악성 코드를 돌린다.

보안업체 Tenet Security가 6월에 공개한 공격 기법 Agentjacking의 시나리오다. 가장 널리 쓰이는 코딩 에이전트인 Claude Code, Cursor, Codex를 대상으로 한 실험에서 성공률은 85%, 주입 가능한 DSN이 노출된 조직은 최소 2,388개로 확인됐다.

한눈에 보기

공격 이름 Agentjacking (Tenet Security 공개, 2026년 6월)
경로 Sentry 에러 이벤트에 악성 명령 주입 → 에이전트가 MCP로 읽고 실행
성공률 주요 에이전트 대상 85%
노출 규모 주입 가능한 DSN 보유 조직 최소 2,388개
피해 CI/CD 자격증명 탈취, 비공개 저장소 접근, 클라우드 장악, 지속 침투

어떻게 작동하나

Sentry는 에러 추적과 성능 모니터링 도구다. 프런트엔드 자바스크립트에 박히는 DSN(데이터 소스 이름)은 설계상 공개돼 있다. 외부에서 에러 이벤트를 보낼 수 있게 만든 값이라, 공격자도 같은 통로로 가짜 에러를 밀어 넣을 수 있다.

핵심은 주입한 명령이 Sentry 자체의 정상적인 수정 가이드와 구분되지 않는다는 점이다. 에이전트 입장에서는 도구가 돌려준 신뢰할 만한 텍스트로 보인다. 사람이 "미해결 이슈 고쳐줘"라고 지시하면, 에이전트는 가짜 이벤트를 읽고 그 안의 지시를 작업 권한 그대로 수행한다. 간접 프롬프트 주입의 한 형태다.

피싱이 필요 없다는 점이 특히 고약하다. 사용자를 속여 링크를 누르게 할 필요도, 자격증명을 가로챌 필요도 없다. 공개된 DSN으로 에러 하나만 보내두면, 개발자가 평소처럼 에이전트에게 디버깅을 맡기는 순간 공격이 발동한다.

왜 막기 어려운가

문제는 도구가 아니라 신뢰 구조에 있다. 개발자는 코딩 에이전트가 시키는 명령을 의심 없이 실행하도록 길들여졌다. 에이전트가 "이 명령을 돌리세요"라고 하면 돌린다. 그 신뢰가 그대로 공격 표면이 된다.

지금 권고되는 완화책은 단순하지만 습관을 바꿔야 한다. 에러 추적 플랫폼이 돌려주는 출력을 전부 신뢰할 수 없는 입력으로 다루고, 에러 리포트와 자율 실행 사이에 사람의 검토 단계를 끼우는 것이다. 보편적 패치는 아직 없다.

한 번 뚫리면 단발성 장난으로 끝나지 않는다. 단일 명령으로 CI/CD 파이프라인 자격증명을 빼내고, 비공개 소스 저장소에 들어가고, 클라우드 인프라를 장악하고, 지속 접근로를 심을 수 있다. 자동화 정도가 높을수록, 즉 사람 확인 없이 에이전트가 끝까지 처리하는 워크플로일수록 피해 반경이 넓다.

anyAX 관점

에이전트에게 일을 넘기는 흐름은 1인 개발자와 AI 우선 팀이 적은 인원으로 큰 일을 해내는 핵심 레버리지다. 그런데 그 레버리지의 전제가 곧 약점이다. 사람이 모든 단계를 보지 않기 때문에 빠른 것이고, 보지 않기 때문에 가짜 지시가 통과한다.

성공률 85%라는 숫자가 말하는 건 "운 나쁘면 당한다"가 아니라 "기본값이 뚫린다"다. 노출된 2,388개 조직 대부분은 자기가 표적이 됐는지도 모른다. 외주 보안팀이 없는 소규모 팀과 혼자 운영하는 SaaS일수록, 자동 디버깅을 붙여둔 그 편리함이 무방비 입구가 된다.

그래서 자동화를 설계할 때 순서를 뒤집어야 한다. "어디까지 자동으로 돌릴까"가 아니라 "외부에서 들어온 텍스트가 명령으로 둔갑하는 지점이 어디인가"를 먼저 그린다. Sentry, 이슈 트래커, 이메일, 웹 스크랩 결과처럼 외부 입력이 에이전트의 실행으로 이어지는 모든 경계에 사람이나 별도 검증을 한 칸 끼운다. 속도를 조금 내주고 폭발 반경을 줄이는 거래다. 권한을 넘기는 자동화일수록, 신뢰 경계를 먼저 긋는 쪽이 결국 더 멀리 간다.

참고