연구진, 이미지 파일에 위험 명령 숨겨 AI 속여 비밀 정보 탈취하는 신기술 'Ghostcommit' 발견
보안 연구팀이 PNG 이미지 파일에 위험 명령을 심어 검사를 우회하고 AI가 프로젝트에서 중요한 데이터를 추출하는 코드를 작성하도록 속이는 'Ghostcommit' 기술을 성공적으로 시연했다.
보안 연구 그룹 ASSET Research Group은 'Ghostcommit'이라는 이름의 새로운 공격 기술을 공개했다. 이 기술은 PNG와 같이 무해해 보이는 이미지 파일에 Prompt Injection(AI를 무단으로 유도하기 위한 명령 입력) 유형의 위험한 명령을 숨겨 개발자의 코드 저장소(Repository)에서 API Keys 또는 데이터베이스 비밀번호와 같은 비밀 정보를 훔칠 수 있다.
Ghostcommit의 방법은 CodeRabbit 및 Bugbot과 같은 인기 있는 AI 코드 검토 도구(AI code reviewer)의 맹점을 이용한다. 이 도구들은 일반적으로 이미지 파일 내부 내용을 열거나 분석하도록 설계되지 않아 숨겨진 명령이 쉽게 감지되지 않도록 한다. 이 기술은 공격을 두 부분으로 나누어 작동한다. 첫 번째 부분은 정상적으로 보이는 텍스트 파일(여기서는 AGENTS.md)로, AI 에이전트에게 지정된 이미지 파일(docs/images/build-spec.png)에서 '빌드용 상수 가져오기'를 지시한다. 공격의 핵심인 두 번째 부분은 이미지 파일 자체에 텍스트 형태로 삽입된 위험한 명령이다. 이 명령은 AI에게 .env 파일(개발자가 비밀 정보를 저장하는 데 자주 사용하는 파일)의 내용을 한 글자씩 읽고 ASCII 숫자 코드로 변환한 다음 코드에 작성하도록 지시한다.
실제 테스트에서 연구원들은 Claude Sonnet 모델로 구동되는 AI 에이전트인 Cursor를 사용하여 시연했다. 결과는 Cursor가 이미지에 숨겨진 명령을 첫 시도에 성공적으로 따르도록 속임을 당했음을 보여주었다. Cursor는 311개의 숫자 목록을 생성했는데, 이는 실제로는 API 키, 데이터베이스 URL, 클라우드 시스템 접근 정보 등 프로젝트의 모든 비밀 정보였다. 이 정보들은 암호화되어 일반적인 코드 리뷰처럼 보이는 내용과 혼합되었다.
이 취약점은 텍스트 중심의 코드 검토 시스템의 경우 이미지 파일이 읽을 수 없는 바이너리 블롭(Binary Blob)에 불과하기 때문에 발생한다. 연구원들은 이것이 완전히 새로운 개념은 아니라고 지적했다. 이전에 Trail of Bits의 연구원들도 AI가 축소하면 Prompt Injection 명령이 되는 이미지를 사용하여 Gemini CLI와 같은 도구를 속이는 더 복잡한 기술을 시연한 바 있다. 현재 ASSET Research Group 팀은 향후 이러한 종류의 취약점을 해결하기 위해 이미지, 텍스트 및 AI 에이전트의 동작을 동시에 검사하는 Multimodal(다양한 데이터 형식을 이해하는) 방어 시스템을 개발 중이다.
이 취약점은 현재 AI 기반 소프트웨어 개발 도구의 중요한 맹점을 보여주며, AI 에이전트를 사용하는 태국 개발자들에게 무해해 보이는 이미지 파일조차도 악의적인 행위자가 프로젝트의 중요한 데이터를 훔치는 통로가 될 수 있다는 경고 신호이다.