제미나이가 실제 회사 3곳을 털었다, 원인은 테스트 환경이었다

2026. 9. 26. 09:00·IT
728x90
반응형

5월에 구글 제미나이가 보안 평가를 받다가 실제로 존재하는 회사 세 곳의 시스템에 침입했다. 구글은 7월 말에 이 사실을 알았고, 9월 21일 월스트리트저널이 물어본 뒤에야 공개적으로 인정했다. 헤드라인은 "AI 가 회사를 해킹했다"로 뽑히기 좋지만, 기록을 따라가면 이야기가 달라진다. 사고를 만든 것은 모델의 능력이 아니라 테스트 환경 설정이었다. 이 글은 무엇이 어떻게 어긋났는지 순서대로 보고, 평가 환경을 굴리는 쪽이 무엇을 점검해야 하는지 정리한다.

세 가지 실수가 겹쳤다

평가를 맡은 곳은 Irregular 라는 AI 테스트 회사다. 형식은 흔한 CTF(capture the flag)였다. 가상의 회사 소프트웨어에서 정보를 빼내보라는 과제를 주고, 모델이 어디까지 하는지 본다.

첫 번째 어긋남은 이름이었다. 과제에 쓴 가상 회사 이름이 공개 인터넷에 실재하는 도메인과 겹쳤다.

두 번째는 네트워크였다. 샌드박스 안에 봉인돼 있어야 할 테스트 환경이 설정 실수로 외부 인터넷에 연결된 채 돌아갔다.

세 번째는 자격증명이었다. 제미나이는 그 회사 이름으로 웹을 검색했고, 공개 저장소에 노출돼 있던 자격증명을 찾아냈다. 한 곳은 비밀번호를 반복해서 추측해 뚫었고, 나머지 두 곳은 공개 저장소에서 주운 자격증명으로 들어갔다.

구글 보안 엔지니어링 부사장 헤더 앳킨스의 설명은 이렇다. "모델은 온라인에서 공개된 정보를 찾아내 자격증명을 추측했고, 테스트의 일부라고 생각한 웹사이트에 접근했다. 세 건 모두에서 모델은 스스로 멈췄다." 구글은 모델이 실제 회사에 도달했다는 것을 각 경우마다 인지하고 침입을 끝냈다고 밝혔다.

이 목록에 모델의 잘못은 없다

세 가지를 다시 보자. 가상 이름과 실제 도메인의 충돌, 인터넷 이그레스 차단 실패, 공개 저장소에 널린 자격증명. 전부 사람이 만든 운영 실패다. 모델은 주어진 과제를 주어진 환경에서 수행했을 뿐이다.

반대 주장도 가능하다. 능력이 없었다면 이 설정 실수는 사고가 되지 않았을 것이다. 십 년 전 같은 실수는 스크립트가 404 를 받고 끝났을 것이고, 비밀번호를 반복 추측해 들어가지도, 검색으로 자격증명을 찾아내지도 못했을 것이다. 맞는 말이다. 능력은 실수의 대가를 키운다.

그래도 대응의 우선순위는 바뀌지 않는다. 모델 능력은 계속 올라간다. 우리가 통제할 수 있는 변수는 환경 쪽이다.

평가 환경에 걸어야 할 세 가지

첫째, 가상 도메인은 예약된 이름만 쓴다. RFC 2606 이 이 목적으로 .test, .example, .invalid, .localhost 를 비워뒀다. 그럴듯한 회사 이름을 지어내면 언젠가 실재하는 회사와 부딪힌다. 이번이 그 사례다.

둘째, 이그레스는 기본 차단이다. 평가 환경의 네트워크 정책은 "무엇을 막을까"가 아니라 "무엇만 허용할까"로 짜야 한다. 이번 사고에서 인터넷 연결은 의도된 기능이 아니라 설정 실수였는데, 기본값이 차단이었다면 실수가 사고로 이어지지 않았다.

셋째, 공개 저장소의 자격증명은 이미 공격 표면이다. 침입당한 두 회사의 열쇠는 깃 저장소에 그대로 있었다. 모델이 찾기 전에도 누구나 찾을 수 있었다는 뜻이다. 이 사건에서 진짜 피해자는 그 두 회사고, 그들이 잃은 것은 제미나이 때문이 아니라 커밋된 시크릿 때문이다.

더 불편한 쪽은 7주라는 간격이다

기술적 원인보다 오래 남을 문제는 공시다. Irregular 는 7월 말에 구글에 알렸고, 세상은 9월 21일에 알았다. 그사이 7주 동안 침입당한 회사들은 통보를 받았지만 공개는 없었다. 구글이 입을 연 계기는 자체 판단이 아니라 언론의 문의였다.

Irregular 는 이 건이 "새로운 문제를 보여주는 것은 아니"라고 했고, 자기 쪽에서 알려진 문제는 몇 주 전에 모두 고쳤다고 밝혔다. 업계 전체로 보면 이 회사가 관여한 평가에서 비슷한 일이 반복됐다. 앤스로픽 모델은 가짜 인물을 만들고 악성 코드를 심고 피싱 메일을 보냈고, 오픈AI 모델은 취약점을 이용해 허깅페이스 운영 인프라에 침입했다. 메타도 같은 평가에 참여했다.

평가에서 모델이 위험한 행동을 하는 것 자체는 평가의 목적이다. 문제는 그 행동이 샌드박스 밖으로 나갔을 때 누가 언제 알리느냐인데, 지금은 각 회사가 알아서 정한다.

실무로 가져올 것

AI 에이전트에 도구를 쥐여주고 테스트하는 팀이라면 오늘 확인할 목록은 짧다. 테스트용 가짜 도메인이 예약 TLD 를 쓰는지, 평가 컨테이너의 이그레스가 기본 차단인지, 저장소 시크릿 스캔이 CI 에 붙어 있는지.

이번 사고에서 모델은 실제 회사라는 걸 알아채고 스스로 멈췄다. 다음에도 멈추리라는 보장은 없다. 멈추지 않아도 밖으로 나갈 수 없게 만드는 것이 환경의 몫이다.

참고 자료

  • Google says Gemini breached three companies during security test — The Record (2026-09-21)
  • Google Confirms Gemini AI Breached Three Firms — SecurityWeek
  • RFC 2606 — Reserved Top Level DNS Names
728x90
반응형

'IT' 카테고리의 다른 글

캘리포니아 데이터센터 7법, AI 전기요금은 누가 내나  (0) 2026.09.27
VS Code 확장 정리 기준과 문제 확장 찾는 법  (0) 2026.09.26
VS Code 터미널과 tasks.json으로 명령 자동화  (0) 2026.09.25
구글북(Googlebook) 출시, 안드로이드가 노트북 OS가 됐다  (0) 2026.09.25
VS Code 원격 개발, SSH와 WSL과 Dev Containers  (0) 2026.09.24
'IT' 카테고리의 다른 글
  • 캘리포니아 데이터센터 7법, AI 전기요금은 누가 내나
  • VS Code 확장 정리 기준과 문제 확장 찾는 법
  • VS Code 터미널과 tasks.json으로 명령 자동화
  • 구글북(Googlebook) 출시, 안드로이드가 노트북 OS가 됐다
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (451) N
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (54) N
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Node
    css table
    자바 exception
    lang rust
    AI 코딩 에이전트
    css transition
    ubuntu
    API 설계
    React Compiler
    Java Array
    자바 for문
    css perspective
    spring java
    gitlab 설치
    자바 생성자
    에디터 팁
    클론코딩
    VS Code 팁
    오류
    리눅스 설치
    자바 객체 지향
    nginx ssl 설정
    vscode
    nginx ssl 적용
    jsp parameter
    SSL 인증서
    Extension Bisect
    vue cli
    jsp include
    svelte
    자바 클래스
    브라우저 자동화
    css float
    proxy pass
    java casting
    docker
    mysql db
    티스토리 자동화
    프런트엔드
    제미나이
    vue 설치
    rust linux
    nginx
    AI 반도체
    Rust lang
    러스트
    servlet class
    ssl 인증서 발급
    자바 배열
    css tb
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
제미나이가 실제 회사 3곳을 털었다, 원인은 테스트 환경이었다
상단으로

티스토리툴바