GitLost: We Tricked GitHub's AI Agent into Leaking Private Repos

개요

GitHub Agentic Workflows에서 발견된 GitLost 취약점은 인증되지 않은 공격자가 공개 저장소에 악의적인 이슈를 게시하여 동일 조직 내의 비공개 저장소 데이터를 유출할 수 있게 한다.

주요 내용

  • GitHub Agentic Workflows의 취약점: GitHub Actions와 Claude 또는 GitHub Copilot 기반 AI 에이전트를 결합한 GitHub Agentic Workflows는 자연어를 사용하여 저장소 상호 작용을 자동화하지만, AI 에이전트가 신뢰할 수 없는 데이터를 처리할 때 발생하는 프롬프트 주입 공격에 취약하다.
  • GitLost 취약점: 공격자는 특별한 코딩 기술이나 접근 권한 없이, 공격 대상 조직의 공개 저장소에 악성 명령이 포함된 이슈를 게시하여 GitHub 에이전트가 해당 명령을 실행하도록 유도할 수 있다.
  • 공격 방식: 공격자가 생성한 이슈를 GitHub 에이전트가 처리하도록 트리거하면, 에이전트는 설정된 권한에 따라 조직 내 공개 및 비공개 저장소의 README.md와 같은 내용을 읽어 해당 이슈의 공개 댓글로 게시한다.
  • 가드레일 우회: GitHub의 보안 가드레일은 이러한 시나리오를 방지하기 위해 설계되었으나, "Additionally"와 같은 특정 키워드를 통해 모델의 출력을 재구성하도록 유도하여 가드레일을 우회하고 데이터 유출을 가능하게 했다.
  • 영향: 이 취약점은 에이전트 AI 시스템의 근본적인 보안 문제, 즉 에이전트가 읽는 모든 콘텐츠가 공격 표면이 될 수 있음을 보여준다. 이는 SQL Injection이 웹 애플리케이션에 미치는 영향과 유사하게, 프롬프트 주입 공격은 에이전트 AI 시스템 전반에 걸쳐 발생하는 체계적인 취약점이다.
  • Noma Labs 권고사항: 빌더 및 AI 보안 담당자는 사용자 제어 콘텐츠를 신뢰할 수 있는 명령 입력으로 간주하지 않아야 하며, 에이전트의 권한을 최소한으로 제한하고, 에이전트가 공개적으로 게시할 수 있는 내용을 제한하며, 모델에 전달하기 전에 사용자 입력을 검증하거나 격리해야 한다.

시사점

GitLost 취약점은 에이전트 AI 시스템의 프롬프트 주입 공격 위험성을 명확히 보여주며, AI 시스템 구축 시 신뢰 경계 관리와 권한 제어의 중요성을 강조한다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions