가짜 버그리포트로 AI 코딩 에이전트가 털린다
텐엣, 센트리 악용해 클로드 코드·커서 원격 코드 실행 입증
AI 코딩 에이전트에게 "에러 좀 고쳐줘"라고 시키는 것만으로 내 컴퓨터가 공격자의 손에 넘어갈 수 있다는 연구가 나왔다. 보안 기업 텐엣 시큐리티(Tenet Security)는 악성코드도, 탈취한 비밀번호도, 시스템 침입도 없이 오직 가짜 버그 리포트 하나로 코딩 에이전트를 조종하는 기법을 공개하고 이를 에이전트재킹(Agentjacking)이라 이름 붙였다.
무슨 일인가
공격의 출발점은 개발자들이 널리 쓰는 오류 추적 도구 센트리(Sentry)다. 센트리는 어떤 앱이든 공개 키(DSN)로 오류 리포트를 보낼 수 있게 설계돼 있는데, 이 키는 원래 웹사이트 코드에 그대로 노출돼 있다. 공격자는 이 통로로 가짜 오류를 하나 밀어넣는다. 비밀번호도 필요 없다. 이 가짜 리포트 안에는 센트리의 정식 '해결 방법' 안내처럼 보이도록 꾸민 명령어가 숨어 있다.
코딩 에이전트는 모델 컨텍스트 프로토콜(MCP)을 통해 센트리 내용을 읽어들이는데, 문제는 에이전트가 이 응답을 무조건 신뢰한다는 점이다. 진짜 오류인지 심어진 가짜인지 구분하지 못한다. 그래서 개발자가 "미해결 센트리 이슈를 고쳐줘"라고 말하는 순간, 에이전트는 개발자 본인의 권한으로 공격자의 명령을 실행한다.
핵심 짚어보기
텐엣의 실험에서 이 공격은 클로드 코드(Claude Code), 커서(Cursor), 코덱스(Codex) 등 주요 에이전트에서 모두 통했고 성공률은 85%에 달했다고 한다. 노출된 조직은 2,388곳으로, 시가총액 2,500억 달러 규모 대기업부터 1인 개발자까지 가리지 않았다. 주입된 명령 하나가 환경변수·AWS 키·깃허브 토큰·비공개 저장소 주소까지 닿을 수 있고, 거기서 CI/CD 파이프라인과 클라우드 인프라로 길이 이어진다.
가장 무서운 대목은 기존 보안 장비가 이걸 못 잡는다는 점이다. 백신(EDR)·방화벽·접근권한관리(IAM)·VPN 모두 통과한다. 사슬 어디에도 '비인가' 행위가 없기 때문이다. 텐엣은 이를 '인가된 의도 사슬'이라 불렀다. "신뢰할 수 없는 데이터는 무시하라"는 프롬프트조차 소용없었다. 텐엣은 6월 3일 센트리에 알렸지만, 센트리는 문제를 인정하면서도 근본 수정은 "기술적으로 방어 불가능"하다며 거부하고 특정 문자열만 차단하는 필터를 추가하는 데 그쳤다.
1인기업 실전 적용 포인트
- 에이전트에게 외부 데이터를 읽히는 작업과 명령 실행 권한을 분리하라. MCP로 센트리·깃허브 이슈·고객 문의를 읽는 에이전트에는 자동 실행(터미널 권한)을 끄고, 실행은 사람이 한 번 확인한 뒤 별도 세션에서 돌리는 것이 안전하다.
- AWS 키·깃허브 토큰을 에이전트가 도는 셸의 환경변수에 그대로 두지 말 것. 1인기업이라도 비밀값은 짧은 만료 시간을 둔 임시 토큰으로 발급하고, 사용 후 회수하는 습관을 들이면 피해 범위가 줄어든다.
- 코딩 에이전트의 명령 실행을 자동 승인(auto-approve)으로 켜두지 말 것. "고쳐줘" 한마디로 임의 셸 명령이 돌아가는 설정이 가장 위험하다. 작업 디렉터리를 격리된 컨테이너나 별도 워크트리로 한정하는 것도 방법이다.
전망
이 취약점의 본질은 센트리 한 곳에 있지 않다. 에이전트가 외부 데이터를 다루는 방식 전체의 문제이므로, 같은 위험이 고객 지원 티켓·깃허브 이슈·문서에도 그대로 흐른다. 별도 실험에서는 AI 이메일 에이전트가 피싱당해 AWS 키를 유출하기도 했다. 기업들이 에이전트를 앞다퉈 도입하는 지금, 도구에 연결된 에이전트는 곧 새로운 침입 경로라는 점을 잊지 말아야 한다. 막을 수 있는 마지막 지점은 결국 에이전트가 '행동하기로 결정하는 그 순간'이다.
출처: The Next Web (https://thenextweb.com/news/agentjacking-ai-coding-agents-sentry)