악성 링크 하나로 5분마다 해킹 명령 수행하는 ChatGPT 에이전트 탄생
보안업체 Zenity Labs는 사용자가 단 한 번의 악성 ChatGPT 링크 클릭만으로 공격자의 명령을 수행하는 불법 AI 에이전트가 자동 생성되는 취약점을 발견했습니다. 해당 에이전트는 사용자의 정상적인 권한을 도용하여 5분마다 해킹 이메일을 확인하고 정보를 탈취했습니다. 오픈AI는 이를 신속히 조치했으나, 자율형 AI 에이전트 환경의 새로운 보안 위협을 단적으로 보여주는 매우 중요한 사례입니다.
변조된 단 하나의 ChatGPT 링크가, 공격자의 받은편지함을 5분마다 조용히 확인하여 새로운 명령을 수행하는 AI 에이전트를 실행할 수 있습니다. AI 보안 기업 Zenity Labs는 이 결함을 에이전트 기반 AI에 대한 새로운 유형의 공격으로 규정했습니다.
핵심 요약 Zenity Labs는 OpenAI의 워크스페이스 에이전트(Workspace Agents)에서 한 조작된 링크만으로 사용자 모르게 사용자를 대신해 행동하는 자율적인 AI 에이전트를 생성할 수 있는 취약점을 공개했습니다. 이 공격은 URL 매개변수(URL parameters)를 악용하여 피해자의 앱 권한을 탈취하고, 보안 통제를 해제하며, 공격자의 명령을 주기적으로 영구적으로 실행되게 만들어 플랫폼 자체의 기능을 사용자에게 공격하도록 역이용했습니다. OpenAI는 4일 이내에 이 취약점을 해결했지만, Zenity는 정통 보안 도구들이 합법적인 사용자 신원으로 작동하는 자율형 에이전트를 처리할 수 없다는 더 광범위한 문제를 이 사건이 부각시켰다고 주장합니다.
단일 변조 링크의 위험성 AI 보안 기업인 Zenity Labs는 OpenAI의 워크스페이스 에이전트에서 조작된 링크 하나로 직원 계정 하에 자율적인 AI 에이전트를 생성할 수 있는 취약점을 발견했습니다. 이 에이전트는 피해자의 신원을 맡아 기존에 부여받은 앱 권한을 재사용하며, 민감한 작업을 보호하기 위한 승인 단계를 우회했습니다. Zenity는 이 취약점의 이름을 'AgentForger'로 명명했으며, 전통적인 사이트 간 요청 위조(CSRF)의 진화된 형태로 보고 있습니다. 일반적인 CSRF 공격에서는 사용자가 악성 링크를 클릭하거나 조작된 페이지에 접속하여 의도치 않은 인증된 작업을 실행하게 됩니다. 하지만 AgentForger는 여기서 더 나아갔습니다. 단일 원치 않는 작업을 트리거하는 대신, 변조된 ChatGPT 링크가 완전히 자율적인 에이전트의 생성을 시작했습니다. 해당 에이전트는 회사의 신뢰 경계 내부에서 작동하여 피해자가 이미 승인한 커넥터에 액세스했으며, 반복적인 일정에 따라 공격자로부터 새로운 작업을 지시받았습니다.
URL 매개변수를 통한 에이전트 자동화 워크스페이스 에이전트를 생성하는 과정은 일반적으로 대화형 프로세스를 거칩니다. 사용자가 템플릿을 선택하고, 지시 사항을 입력하며, 도구를 연결하고, 공유 설정을 검토한 후 미리보기 모드에서 에이전트를 테스트한 다음 게시합니다. 하지만 AgentForger는 사용자의 추가 입력을 최소화한 상태에서 URL 하나만으로 대부분의 과정을 트리거할 수 있게 했습니다. 2025년에 도입된 에이전트 빌더(Agent Builder)는 'chatgpt.com/agents/studio/new' 주소에서 접속할 수 있으며 두 개의 URL 매개변수를 받습니다. 'template_name'은 '비서장'과 같은 시작 템플릿을 선택하고, 'initial_assistant_prompt'는 지시 사항을 제공합니다. Zenity는 해당 페이지가 단순히 'initial_assistant_prompt'의 값을 프롬프트 필드에 채워 넣는 것에 그치지 않고, 자동으로 해당 프롬프트를 제출하고 실행한다는 것을 발견했습니다. 공격자는 ChatGPT에 원시 요청을 보내거나 피해자의 브라우저를 직접 조작할 필요가 없었습니다. 겉보기에는 무해해 보이는 프롬프트가 첨부된 'chatgpt.com' 링크면 충분했습니다. 유일한 전제 조건은 피해자가 ChatGPT에 로그인된 상태이고, 워크스페이스 에이전트에 대한 액세스 권한이 있으며, Outlook, Gmail, Slack, Google Drive, SharePoint 또는 Teams와 같은 커넥터를 하나 이상 승인했어야 한다는 것입니다. 연결이 이미 설정되어 있었기 때문에 피해자에게 경고할 수 있는 새로운 OAuth 동의 화면은 나타나지 않았습니다.
원 클릭으로 에이전트 빌드 및 게시 Zenity의 데모에서는 번호가 매겨진 작업 목록을 통해 빌더의 모든 단계를 안내하는 프롬프트를 URL에 삽입했습니다. 이 에이전트는 이미 연결된 모든 비-MCP 커넥터를 통합하도록 설정되었으며, 읽기, 쓰기 및 삭제에 대한 모든 권한 요구 사항을 '절대 묻지 않음'으로 변경했습니다. 또한 5분마다 실행되도록 일정을 생성하고, Outlook에서 제목에 'TASK'가 포함된 공격자의 이메일이 있는지 확인하며, 연결된 앱을 통해 해당 지시 사항을 실행하고, 그 결과를 필터링 없이 공격자에게 다시 전송하도록 구성되었습니다. 빌더는 마침내 'TASK Mail Operator'라는 이름의 에이전트를 생성하고 게시했습니다.