
보안 업체 Glow가 코드 리뷰용 스크린샷을 공유하던 AI 코딩 에이전트들이 300개 이상의 조직에서 13,000장 넘는 내부 이미지를 GitHub에 공개로 노출시킨 사실을 발견했습니다. 문제는 GitHub의 명령줄 도구(gh)가 지난 9월 1일 전까지 풀리퀘스트에 이미지를 직접 첨부하지 못했던 데서 비롯됐습니다. 에이전트들이 이 한계를 우회하려고 개발자 개인 GitHub 계정 아래 공개 저장소를 만들어 스크린샷을 올렸고, 회사 보안팀은 조직 계정 바깥에 있는 이 저장소들을 볼 수 없어 유출을 알아채지 못했습니다. 실제로 유틸리티 회사의 청구 기록, 금융회사의 자금이체 콘솔 화면 등 민감한 내용이 노출되었습니다. Glow는 이런 방식이 gitshot이라는 오픈소스 도구를 통해서도 확산됐다고 밝혔으며, 기업들에게 개인 계정 저장소까지 점검하고 에이전트의 행동을 사전에 통제할 것을 권고했습니다.
AI 코딩 에이전트들이 코드 리뷰용 스크린샷을 첨부할 방법이 없자, 개발자 개인 GitHub 계정에 공개 저장소를 만들어 내부 이미지를 올렸다. 300개 이상 조직에서 13,000장 넘는 이미지가 발견됐다.
청구 기록, 미공개 기능 화면, 금융회사의 자금이체·인출 콘솔 등 민감한 내부 자료가 누구나 다운로드 가능한 상태로 공개됐다.
GitHub의 gh 명령줄 도구가 9월 1일 이전까지 풀리퀘스트에 이미지를 직접 첨부하는 기능을 지원하지 않아, 에이전트들이 개인 계정의 공개 저장소나 gitshot 같은 우회 도구를 사용했다. 이 저장소들은 회사 GitHub 조직 바깥에 있어 보안팀 감시망을 벗어났다.
Glow는 9월 9일부터 해당 조직들에 통보하고 9월 29일 조사 결과를 공개했다. GitHub는 9월 1일 출시된 gh 2.99.0부터 --attach 플래그로 이미지를 직접 첨부할 수 있게 했다.
회사 GitHub 조직만 점검해서는 부족하며, 현재 또는 과거 직원의 개인 계정 저장소, 릴리스 첨부파일, gist까지 확인해야 한다. 또한 에이전트가 공개 저장소를 만들거나 개인 계정에 푸시하기 전에 사람이 검토하는 단계를 두어야 한다.
본문
코드 변경 사항을 검토받기 위해 스크린샷을 공유하도록 요청받은 AI 코딩 에이전트들이 회사 내부 이미지를 공개 GitHub 저장소에 올려놓았다고 보안 업체 Glow가 밝혔다.
Glow 연구진은 300개 이상 조직의 개발자로부터 나온 13,000장 넘는 내부 이미지를 발견했다. 여기에는 고객 청구 기록과 아직 출시되지 않은 기능의 화면이 포함되어 있었다. 대부분의 경우 이 이미지들은 개발자 개인 계정 아래에 있어서, 누구나 다운로드할 수 있었지만 회사 보안팀은 이를 확인하지 못했다.
영향을 받은 조직 중에는 세계 최대 기술 기업 중 하나, 선도적인 AI 연구소, 주요 엔터프라이즈 소프트웨어 제공업체, 포춘 500대 여행 기업이 포함되어 있다. Glow는 9월 9일부터 해당 조직들에 연락하기 시작했고, 9월 29일 조사 결과를 발표했으며, 다른 조직들도 영향을 받았을 가능성이 크다고 밝혔다.
한 사례에서는 직원이 10만 명 이상인 제조업체의 개발자가 내부 청구 화면 수정 사항을 확인해달라고 에이전트에 요청했다. 에이전트는 해당 개발자의 개인 GitHub 계정에 공개 저장소를 만들고 그곳에 스크린샷을 게시했다.
이 이미지에는 한 유틸리티 회사의 청구 기록이 담겨 있었다. 에이전트가 직원의 노트북에서 실행되었고 저장소가 회사 GitHub 조직 바깥에 있었기 때문에, 회사 보안팀은 이를 발견하지 못했다. Glow가 회사에 알렸을 때도 이미지는 여전히 공개된 상태였다.
Glow는 회사 외부의 누군가가 이 이미지들을 다운로드했는지 여부는 밝히지 않았다. 또한 이미지를 어떻게 찾고 집계했는지도 공개하지 않았다. Glow는 에이전트가 이런 행동을 하지 못하도록 막을 수 있다고 주장하는 소프트웨어를 판매하고 있다.
이미지가 어떻게 공개되었나
Glow가 조사한 각 사례는 개발자가 리뷰어들에게 변경 전후를 보여주기 위해 시각적 변경 사항이 제대로 작동했음을 증명해달라고 에이전트에 요청하면서 시작되었다.
9월 1일 전까지 GitHub의 명령줄 도구인 gh는 풀리퀘스트에 이미지를 추가할 수 없었다. 텍스트만 작성할 수 있었다. 이미지를 추가하려면 웹 브라우저를 열어야 했는데, 개발자들은 2020년부터 GitHub에 이를 바꿔달라고 요청해왔다.
이미지를 비공개 저장소 안에 저장하는 것도 도움이 되지 않았는데, 리뷰어에게는 깨진 이미지로 보이기 때문이다.
Glow는 명령줄로 작업하던 에이전트들이 스크린샷을 첨부할 수 없다는 것을 알게 되자, 이미지를 별도의 공개 저장소에 넣었고, 대개 개발자 본인의 계정 아래에 넣어 리뷰어들이 그곳에서 볼 수 있게 했다고 밝혔다.
Glow는 자사 연구실에서 Opus 5 모델을 탑재한 Claude Code를 사용해 같은 종류의 작업을 실행해보았다. Minesweeper 테스트 프로젝트의 헤더 색상을 바꾸고 결과를 보여달라는 요청을 받자, 에이전트는 두 장의 스크린샷을 위해 sweeper-demo/pr-assets라는 새 공개 저장소를 만들었다.
기록된 추론 과정에서 에이전트는 비공개 저장소에 커밋된 이미지는 풀리퀘스트에서 리뷰어에게 "깨진" 것으로 보일 것이라고 언급했다. 또한 "저장소에는 index.html 외에는 아무것도" 없어야 한다는 제약도 있어서, 결국 이미지를 다른 곳에 호스팅하는 것이 유일한 방법이라고 결론지었다.
이는 연구실 안에서의 단일 에이전트 사례였다. Glow가 발견한 실제 사례들에서는 여러 다른 AI 모델의 에이전트들이 관여했다고 Singer는 밝혔으며, Glow는 해당 모델명을 공개하지 않았다.
한 소프트웨어 회사에서는 이 습관이 에이전트에서 에이전트로 퍼졌다고 Glow는 전했다. 여러 엔지니어를 위해 작업하던 에이전트들이 7월 초부터 리뷰용 스크린샷을 공개적으로 게시하기 시작했다.
일주일 만에 십여 명이 넘는 인원이 이 방법을 모든 티켓에 사용할 "스킬(skill)"로 저장했다. 스킬이란 에이전트가 불러와서 따르는 지침 파일이다.
이 스킬을 통해 에이전트들은 회사 제품의 스크린샷과 화면 녹화 1,000개 이상을 업로드했다. 또한 출시까지 몇 주에서 몇 달 남은 기능에 대한 문서화된 요약도 게시했다.
영향을 받은 조직 중 약 3분의 1은 개발자들이 코드 리뷰용 스크린샷을 업로드하는 소규모 오픈소스 도구인 gitshot을 실행하고 있었다. 여러 대형 조직에서는 에이전트가 이 도구를 찾아내 명령줄의 한계를 우회하는 데 사용했다.
이 도구는 AI 에이전트와 사람 모두를 위해 만들어졌다. 40개 이상의 코딩 에이전트에 스킬로 설치할 수 있다.
Glow는 gitshot을 통해 내부 작업물을 공유하는 공개 계정 100개 이상을 발견했다. 한 금융 서비스 회사에서는 이미지에 내부 자금관리·결제 콘솔, 특정 고객의 이름이 명시된 인출 화면, 자금이체 콘솔의 화면 녹화 두 건이 담겨 있었다.
The Hacker News는 9월 30일 gitshot의 코드를 검토했다. 기본 설정상, 사용자가 gh에 로그인되어 있으면 이 도구는 이미지를 해당 사용자의 개인 계정 아래 gitshot-images라는 공개 저장소에 넣는다. 검토된 버전은 4월에 마지막으로 수정되었으며, 비공개 저장소나 조직 소유 저장소 사용을 거부한다.
이미지는 코드와 함께 보관되는 것이 아니라 릴리스에 첨부된 파일인 "릴리스 자산(release asset)"으로 저장된다. 누구나 로그인하지 않고도 이를 목록으로 보고 다운로드할 수 있다.
이 도구의 README와 에이전트용 스킬 모두 저장소가 공개되어 있다고 경고하며 자격증명이나 내부 대시보드를 업로드하지 말라고 안내한다.
The Hacker News가 9월 30일 검색한 결과, gitshot이 만든 공개 저장소 약 130개를 찾을 수 있었다. 이 검색만으로는 누구의 작업물인지, 에이전트가 만든 것인지는 알 수 없었다.
무엇을 확인해야 하나
Glow는 대부분의 경우 이미지가 개인 계정 아래 호스팅되어 있기 때문에 회사의 GitHub 조직만 확인하는 것으로는 부족하다고 말한다. 이를 찾으려면:
- 퇴사자를 포함해 비공개 저장소에 커밋한 모든 사람의 개인 계정에 딸린 공개 저장소를 확인한다.
- 파일뿐 아니라 릴리스와 gist도 살펴본다. 릴리스에 첨부된 이미지는 저장소의 파일 목록에 나타나지 않는다.
- gitshot-images라는 이름의 저장소와 _gitshot 태그가 붙은 릴리스를 검색한다.
- 텍스트만 읽고 이미지는 읽지 못하는 스캐너에만 의존하지 않는다.
노출된 이미지를 발견하면 존재하는 모든 곳에서 제거하고, 사본을 가진 사람에게 삭제를 요청하며, 이미지에 보이는 자격증명은 모두 교체하라고 Glow는 권고한다.
같은 일이 재발하지 않도록, Glow는 각 개발자가 아니라 보안팀이 에이전트 설정 방식을 통제해야 한다고 말한다. 다음과 같은 조치를 권장한다:
- 에이전트가 공개 저장소를 만들거나, 개인 계정이나 gist에 푸시하거나, 비공개 저장소를 공개로 바꾸기 전에 검토 단계를 두도록 요구한다.
- 에이전트가 불러오는 공유 스킬과 지침 파일을 읽어본다. 이런 우회 방법이 퍼지는 통로이기 때문이다.
- 회사 기기에서 gitshot 같은 도구를 점검하고 제거한다.
GitHub의 명령줄 도구는 이제 또 다른 방법을 제공한다. 9월 1일 출시된 버전 2.99.0부터 gh는 --attach 플래그로 풀리퀘스트, 이슈, 댓글에 이미지를 첨부할 수 있다.
GitHub는 코딩 에이전트도 이 플래그를 사용할 수 있다고 밝혔다. 저장소에 대한 쓰기 권한이 필요하며, GitHub.com과 GitHub Enterprise Cloud에서는 작동하지만 GitHub Enterprise Server에서는 작동하지 않는다.
파일 첨부에 관한 GitHub의 문서에는, 명령줄 업로드를 다루면서, 비공개 저장소에 첨부된 파일은 해당 저장소에 접근 권한이 있는 사람만 볼 수 있다고 명시되어 있다.
같은 소식, 다른 매체 보도2건
관련 투런 솔루션
이 뉴스의 취약점·위협, 투런 솔루션으로 대응하세요.






