Zenity Labs는 목요일 발표한 연구에서 AgentForger라고 부르는 취약점을 공개했습니다. 이 취약점은 ChatGPT의 Workspace Agents 빌더에서 단 하나의 링크를 피해 조직 내부의 지속적이고 자율적인 내부자로 바꿔 놓았습니다.
작동 방식
빌더는 template_name과 initial_assistant_prompt를 URL 매개변수로 받아들였고, 사용자에게 확인을 요청하지 않은 채 자동 제출했습니다. 해당 링크를 클릭하면 피해자의 인증된 세션 아래에서 에이전트가 생성되고, 설정되며, 게시되었습니다. 피해자의 세션이었기 때문에 에이전트는 이미 승인돼 있던 모든 커넥터를 그대로 상속했습니다: Outlook, Gmail, Slack, SharePoint, Teams, Google Drive. 승인 단계는 같은 페이로드에서 비활성화됐습니다.
명령 채널
이렇게 심어진 에이전트는 이후 5분마다 공격자가 통제하는 받은편지함을 조회하며, 제목에 "TASK"가 들어간 메시지를 찾고 발견한 내용을 실행했습니다. 이는 5분 루프를 만드는 12개의 시차가 있는 일정으로 구성돼 있었습니다. 이는 실제 직원의 권한으로 실행되는 상시 명령·제어 연결입니다. Zenity의 시연은 이를 이용해 $242,500 전신 송금을 실행했습니다. CTO Michael Bargury는 "한 번의 클릭으로 공격자는 귀사 내부에 완전히 자율적인 에이전트를 얻는다"고 말했습니다.
타임라인
연구원 Mike Takahashi는 이를 6월 4일 Bugcrowd를 통해 신고했습니다. 이 사안은 6월 5일 분류됐고, OpenAI가 해당 매개변수를 제거한 6월 8~9일에 수정됐습니다. 취약점은 닫혔으며, 새로운 것은 이번 공개입니다.
형태가 중요한 이유
이는 에이전트 시대에 되살아난 교차 사이트 요청 위조입니다. 전통적인 CSRF는 로그인한 사용자를 속여 브라우저가 한 가지 작업을 수행하게 만듭니다. 여기서 위조된 작업은 지속적인 자율 프로세스를 생성하는 것이었으며, 탭이 닫힌 뒤에도 계속 동작합니다. 또한 URL에서 구성을 받는 에이전트 빌더는 모든 피싱 링크를 잠재적인 상주 직원으로 바꿉니다.
