GhostApproval — AI 코딩 에이전트의 승인 대화상자는 거짓말을 했다
Wiz가 발견한 GhostApproval은 Claude Code·Cursor·Amazon Q 등 AI 코딩 에이전트 6종에서 심링크로 승인 대화상자를 속이는 패턴이다. 공격 원리와 벤더별 대응이 갈린 이유, 타임라인, 개발자 체크리스트를 정리한다.
8개의 글
Wiz가 발견한 GhostApproval은 Claude Code·Cursor·Amazon Q 등 AI 코딩 에이전트 6종에서 심링크로 승인 대화상자를 속이는 패턴이다. 공격 원리와 벤더별 대응이 갈린 이유, 타임라인, 개발자 체크리스트를 정리한다.
MCP 서버와 cron 사이의 빈칸 — 에이전트를 깨우고 성공을 판정하는 오케스트레이터를 만들었다. Agent SDK 라이브러리 대신 셸 스크립트 + claude -p 헤드리스를 고른 이유, 성공 판정을 모델의 말이 아니라 파일시스템에 두는 설계, 슬래시 프롬프트가 헤드리스에서 발동되지 않아 프롬프트를 텍스트로 주입한 우회까지 실제 코드로 정리한다.
MCP 서버의 진짜 검증은 단위 테스트가 아니라 실전 클라이언트다. claude mcp add 한 줄로 Claude Code에 붙이고, 도구 선택·거부 메시지·경계 강제라는 상호작용 단위의 테스트법과 stdout 오염·재빌드 미스 같은 함정을 이 프로젝트의 Phase 2 경험으로 정리한다.
매일 자동 발행의 Claude 호출 비용을 어디에 물릴 것인가. 구독(정액 한도제)과 API 키(종량제)의 구조 차이, CI에서 환경변수 하나로 갈리는 인증, 하루 1회 발행의 비용 어림, 그리고 이 프로젝트가 API 키를 고른 이유 — 격리 관점에서 정리한다.
Claude Code의 Skill은 반복 워크플로를 파일 하나로 패키징한다. 세션에는 이름·설명만 올라가고 본문은 발동될 때만 펼쳐지는 progressive disclosure 구조, 자동·수동 두 발동 경로, 그리고 '코드 실행이 아니라 지시문 주입'이라는 정체를 정리한다.
ponytail은 AI 에이전트의 과잉엔지니어링을 막는 오픈소스 스킬이다. 흥미로운 건 LLM을 전혀 호출하지 않고 룰셋 텍스트만 주입한다는 점 — 이 블로그가 지향하는 '무료 MCP' 원칙과 정확히 같은 구조다. 결정 사다리라는 룰의 정체, skill·hook·MCP 세 배포 형태, 그리고 MCP가 왜 같은 룰을 prompt와 tool 양쪽으로 노출하는지 뜯어본다.
2026년 여름 Anthropic의 요금 청구 오류가 잇따랐다. 무료 사용자에게 날아온 $16.6M 유령 청구, 파일 이름 하나가 요금제를 바꾼 HERMES.md 버그, 기업 과다청구 감사까지 — 세 사건을 결제 시스템 설계 관점에서 뜯어본다.
Claude Code는 MCP 클라이언트인가, 에이전트인가? 둘 다다. 층위가 다른 두 역할이 우연히 같은 소프트웨어에 담겨 있을 뿐이다. 프로토콜 역할과 런타임 역할을 분리해 본다.
Wiz가 발견한 GhostApproval은 Claude Code·Cursor·Amazon Q 등 AI 코딩 에이전트 6종에서 심링크로 승인 대화상자를 속이는 패턴이다. 공격 원리와 벤더별 대응이 갈린 이유, 타임라인, 개발자 체크리스트를 정리한다.
MCP 서버와 cron 사이의 빈칸 — 에이전트를 깨우고 성공을 판정하는 오케스트레이터를 만들었다. Agent SDK 라이브러리 대신 셸 스크립트 + claude -p 헤드리스를 고른 이유, 성공 판정을 모델의 말이 아니라 파일시스템에 두는 설계, 슬래시 프롬프트가 헤드리스에서 발동되지 않아 프롬프트를 텍스트로 주입한 우회까지 실제 코드로 정리한다.
MCP 서버의 진짜 검증은 단위 테스트가 아니라 실전 클라이언트다. claude mcp add 한 줄로 Claude Code에 붙이고, 도구 선택·거부 메시지·경계 강제라는 상호작용 단위의 테스트법과 stdout 오염·재빌드 미스 같은 함정을 이 프로젝트의 Phase 2 경험으로 정리한다.
매일 자동 발행의 Claude 호출 비용을 어디에 물릴 것인가. 구독(정액 한도제)과 API 키(종량제)의 구조 차이, CI에서 환경변수 하나로 갈리는 인증, 하루 1회 발행의 비용 어림, 그리고 이 프로젝트가 API 키를 고른 이유 — 격리 관점에서 정리한다.
Claude Code의 Skill은 반복 워크플로를 파일 하나로 패키징한다. 세션에는 이름·설명만 올라가고 본문은 발동될 때만 펼쳐지는 progressive disclosure 구조, 자동·수동 두 발동 경로, 그리고 '코드 실행이 아니라 지시문 주입'이라는 정체를 정리한다.
ponytail은 AI 에이전트의 과잉엔지니어링을 막는 오픈소스 스킬이다. 흥미로운 건 LLM을 전혀 호출하지 않고 룰셋 텍스트만 주입한다는 점 — 이 블로그가 지향하는 '무료 MCP' 원칙과 정확히 같은 구조다. 결정 사다리라는 룰의 정체, skill·hook·MCP 세 배포 형태, 그리고 MCP가 왜 같은 룰을 prompt와 tool 양쪽으로 노출하는지 뜯어본다.
2026년 여름 Anthropic의 요금 청구 오류가 잇따랐다. 무료 사용자에게 날아온 $16.6M 유령 청구, 파일 이름 하나가 요금제를 바꾼 HERMES.md 버그, 기업 과다청구 감사까지 — 세 사건을 결제 시스템 설계 관점에서 뜯어본다.
Claude Code는 MCP 클라이언트인가, 에이전트인가? 둘 다다. 층위가 다른 두 역할이 우연히 같은 소프트웨어에 담겨 있을 뿐이다. 프로토콜 역할과 런타임 역할을 분리해 본다.
비공개로 의견 보내기
작성자에게만 전달돼요. 이름·이메일을 비우면 완전 익명입니다.