AI 인사이트

Claude Code 토큰 교체 후에도 공격이 재개되는 보안 취약점 — 지금 당장 확인해야 할 것들

seunghyeonlab 2026. 5. 14. 23:02

hero

Claude Code를 사용하는 개발자라면, 특히 팀 단위나 CI/CD 파이프라인에 통합해서 쓰고 있다면 이 글을 끝까지 읽어야 한다. 토큰을 교체했다고 안심했다가 공격자에게 재침투 기회를 내줄 수 있는 보안 이슈가 공개됐다.

전체 공격 흐름 다이어그램


무슨 일이 벌어졌나

보안 전문 미디어 GovInfoSecurity가 보도한 내용에 따르면, Claude Code 환경에서 손상된 자격증명(토큰)을 교체해도 공격이 재개될 수 있는 개념 증명(PoC) 익스플로잇이 공개됐다.

보안 인시던트에서 "토큰 교체"는 가장 먼저 꺼내는 카드다. API 키가 유출되면 즉시 무효화하고 새 키를 발급한다. 이 과정이 완료되면 위협이 차단됐다고 판단하는 게 일반적인 플레이북이다.

그런데 이번 PoC는 그 전제를 깼다. Claude Code 환경에서 공격자는 세션이나 에이전트 컨텍스트를 재활용해 토큰 교체 이후에도 공격을 재시작할 수 있다. "토큰 교체 완료 = 위협 종료"라는 공식이 Claude Code 앞에서는 성립하지 않는 것이다.

토큰 교체만으로 막히지 않는 이유


왜 Claude Code에서 특히 위험한가

Claude Code는 단순 코드 자동완성 도구가 아니다. 로컬 파일 시스템 읽기·쓰기, 셸 명령 실행, 외부 API 호출까지 수행하는 에이전틱 코딩 환경이다. 공격자가 Claude Code 세션을 장악하면 가능한 피해는 다음과 같다.

피해 유형 구체적 내용
코드베이스 탈취 전체 소스코드 읽기·외부 전송
환경변수 노출 .env 파일, process.env 값 추출
공급망 공격 package.json, requirements.txt 변조
클라우드 자격증명 AWS, GCP, Azure 키 재탈취
파이프라인 조작 CI/CD 설정 파일 직접 수정

에이전트가 강력해질수록 공격 표면도 그만큼 넓어진다. "AI 도구는 샌드박스 안에 있겠지"라는 암묵적 가정은 더 이상 유효하지 않다.


어떤 환경이 고위험군인가

위험도 분류 흐름

다음 조건 중 하나라도 해당하면 즉시 점검이 필요하다.

  • 팀 단위로 Claude Code를 공유하는 환경
  • GitHub Actions, CircleCI, Jenkins 등 CI/CD 파이프라인에 Claude Code를 통합한 경우
  • 개발 환경에 AWS, GCP, Azure 등 클라우드 자격증명이 노출된 경우
  • .env 파일이나 시크릿 파일이 Claude Code 작업 디렉토리 범위 안에 있는 경우

지금 당장 취해야 할 방어 조치

1단계 — 접근 범위 최소화

Claude Code 세션이 읽을 수 있는 환경변수와 자격증명을 최소한으로 제한한다. 최소 권한 원칙(principle of least privilege)을 에이전트에도 동일하게 적용해야 한다.

# 잘못된 예 — 모든 환경변수를 노출한 채 실행
claude code

# 권장 예 — 필요한 변수만 격리된 환경에서 실행
env -i HOME="$HOME" PATH="$PATH" claude code

특히 AWS 자격증명이 ~/.aws/credentials에 있다면, Claude Code가 해당 디렉토리에 접근하지 못하도록 작업 디렉토리를 분리하는 것이 좋다.

2단계 — 토큰 교체 후 세션 완전 초기화

토큰을 교체한 것만으로 완료 처리하면 안 된다. 다음 항목을 모두 확인한다.

# Claude Code 프로세스 전체 종료 확인
ps aux | grep claude

# 세션 관련 캐시 및 컨텍스트 디렉토리 초기화
rm -rf ~/.claude/sessions/*   # 경로는 설치 환경에 따라 다를 수 있음

에이전트가 유지하는 컨텍스트 창(context window)이나 세션 파일이 남아 있으면 새 토큰 환경에서도 이전 상태를 기반으로 동작을 재개할 수 있다.

3단계 — CI/CD 시크릿 관리 재검토

GitHub Actions나 AWS Secrets Manager를 쓰더라도 Claude Code 에이전트가 해당 값에 접근하는 범위를 감사(audit)해야 한다.

# GitHub Actions — Claude Code 에이전트에 시크릿 노출 범위 명시
jobs:
  build:
    steps:
      - name: Run Claude Code
        env:
          # 꼭 필요한 시크릿만 명시적으로 전달
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
          # AWS_ACCESS_KEY_ID 등 불필요한 시크릿은 제거

권장 방어 조치 흐름


더 넓게 보면

이번 취약점은 Claude Code만의 문제가 아니다. Cursor, GitHub Copilot Workspace처럼 파일 시스템과 셸에 접근하는 모든 AI 코딩 에이전트가 같은 구조적 리스크를 가진다. 에이전트가 강력한 권한을 가질수록 보안 감사의 대상이 돼야 한다는 의미다.

Anthropic은 현재 이 문제에 대한 공식 패치나 완화 가이드를 발표하지 않은 상태다. 공식 발표를 기다리는 동안 위에 정리한 선제 방어 조치를 적용해두는 것이 현재로선 최선이다.

핵심은 단순하다. 토큰 교체는 시작일 뿐, 세션·컨텍스트·접근 범위까지 초기화해야 인시던트 대응이 완료된다.


🐦 X에서 더 빠르게: @baegseungh7061
📚 이 시리즈 더 보기: AI 인사이트
💌 새 글 알림: X 팔로우 또는 블로그 RSS 구독