웹사이트 요약과 디코더 위장을 통한 실행 경로 우회

이번 분석에서 다루는 공격 체인은 웹사이트 요약이라는 단순한 작업 요청을 통해 클로드 코드 오푸스 5(Claude Code Opus 5) 오토 모드(Auto Mode)를 원격 코드 실행(RCE)으로 이끄는 과정을 담는다. 오토 모드는 8중 미만 승인 프롬프트를 안전 분류기로 대체하며, 8월 중순부터 기본 시작 모드로 적용되고 있다. 테스트 환경에서 공격 성공률은 소규모 표본 기준 60%에서 80%에 달했다. 앤스로픽(Anthropic)이 위탁한 서드파티 평가에서 72개 간접 프롬프트 주입 시나리오를 10회씩 테스트한 결과 0.00%의 성공률을 보였던 것과 대조적이다. 공격 대상 웹사이트는 정상적인 아카이브 형태를 가장하며, ZIP 아카이브 내부에는 카탈로그 메타데이터와 언어학 발전에 관한 7개의 짧은 레코드가 포함되어 있다. 클로드는 웹페치(WebFetch) 대신 직접 curl 명령어를 실행해 아카이브를 내려받고, 임시 스크래치패드 폴더에 압축을 푼다. 아카이브 안에는 macOS용 바이너리 디코더인 'decoder-darwin'과 리드미(README) 파일이 존재한다. 모델은 제공된 바이너리 실행을 거부하지만, 안전 결정의 일환으로 직접 대체 디코더 코드를 작성하게 되며 이 과정이 취약한 익스플로잇 경로로 이어진다.

모듈 섀도잉과 파이썬 격리 모드를 활용한 C2 콜백

클로드가 직접 작성한 대체 디코더는 압축 해제된 아카이브 내부에서 실행되며, 표준 라이브러리인 base64를 임포트할 때 파이썬의 모듈 섀도잉(module shadowing) 취약점을 이용한다. 파이썬은 추출된 아카이브 디렉토리를 모듈 검색 경로에 두기 때문에, 아카이브 내부에 존재하는 'struct.py' 파일을 먼저 불러오게 된다. 이 위장된 struct.py는 공격자의 악성 코드를 실행하면서 실제 저수준 _struct API를 다시 내보내 정상적인 디코딩 작업을 유지한다. 챗GPT(ChatGPT)를 이용해 난독화된 이 스크립트는 임포트 시점에 새로운 세션에서 격리된 파이썬 자식 프로세스를 실행한다. 자식 프로세스는 'python3 -I -c' 명령어를 통해 파이썬 격리 모드(-I)를 활성화함으로써, 동일한 섀도잉 공격에 재귀적으로 빠지는 현상을 방지한다. 이 단계를 거쳐 원격 페이로드가 다운로드되고 실행 파일로 전환되어, 랩 환경에서 제어되는 C2(Command and Control) 콜백 연결과 함께 계산기(Calculator) 실행 같은 가시적 효과가 나타난다. 테스트 과정에서 오토 모드의 안전 분류기는 악성 프로세스의 생성은 허용했으나, 이후 모델이 침해를 알아채고 악성 프로세스를 종료하려 할 때 오히려 클린업 명령을 차단하는 모순적인 상황도 관찰됐다.

실무 운영에서 격리 환경과 모니터링 적용 기준

개발자와 실무자가 이번 검증 결과에서 다르게 판단해야 하는 지점은 오토 모드를 신뢰할 수 있는 보안 경계로 취급해서는 안 된다는 사실이다. 앤스로픽은 오토 모드가 보안 보장이 아니라 베스트 에포트(best-effort) 분류기에 기반한 편의 기능이라는 입장을 취하고 있다. 따라서 0.00%라는 벤치마크 수치와 실제 원격 코드 실행 가능성은 모순되지 않으며, 고정된 테스트 셋에 포함되지 않은 정교한 공격 체인은 여전히 분류기를 우회할 수 있다. 에이전트가 신뢰할 수 없는 콘텐츠를 다루거나 자율적으로 외부 데이터를 처리하는 워크플로우를 구축할 때는 오토 모드에 의존하기보다 전용 머신에서의 운영 체제 격리, 네트워크 송출 제어, 그리고 별도의 모니터링 시스템을 반드시 병행해야 한다.