시스메틱 데일리코딩 못해도 AI로 자동화 시스템 만드는 법
에이전트

코딩 에이전트 샌드박스, 도커로 뚫린다

코덱스·커서·제미나이 CLI의 격리를 도커 데스크톱 하나가 무력화했다.

AI 코딩 에이전트가 '안전한 격리 공간(샌드박스) 안에서만 움직인다'는 약속이, 개발자 PC에 흔히 깔린 도커 데스크톱(Docker Desktop) 하나로 무너질 수 있다는 보안 연구가 공개됐다. 보안 업체 필라 시큐리티(Pillar Security)는 코덱스 CLI, 커서(Cursor), 제미나이(Gemini) CLI 세 도구의 샌드박스를 동일한 방식으로 우회하는 취약점을 시연했다.

무슨 일인가

이들 세 도구는 비교적 엄격한 '차단 우선(deny-default)' 격리 정책을 쓴다. 기본은 다 막고 꼭 필요한 것만 허용하는 방식이라, 문 하나는 단단히 잠근 셈이다. 연구자는 그러자 '다른 문'을 찾았고, 그 문이 바로 맥에 널리 설치된 도커 데스크톱이었다. 격리 규칙은 에이전트 프로세스가 커널에 직접 요청하는 것을 통제할 뿐, 이미 실행 중인 권한 있는 백그라운드 데몬이 대신 하는 일까지는 막지 못한다는 빈틈이 핵심이다.

핵심 짚어보기

공격 사슬은 세 도구에서 거의 똑같다. 샌드박스는 작업 폴더 밖 '파일 쓰기'는 막지만, 프로세스 실행·파일 읽기·외부 네트워크는 대체로 허용한다. 이 조합이면 도커 명령을 실행하고 도커 소켓을 읽을 수 있는데, 이 소켓에 대한 읽기·쓰기 권한은 사실상 데몬에 대한 최고 권한과 같다. 이어 컨테이너 이미지를 외부에서 내려받아(curl) 로컬로 가져오면 레지스트리 제한도 우회된다. 권한 있는 컨테이너를 허용된 폴더에 연결해 띄운 뒤, 도커 자체의 호스트 공유 기능으로 사용자의 홈 디렉터리 전체를 읽고 쓸 수 있게 된다. 탈출이 일어나는 곳은 도커 가상머신 내부라, 샌드박스의 관할 밖이다. 에이전트 관점에서는 모든 쓰기가 허용된 작업 폴더 안에서 일어났으니 아무런 위반도 없었던 것처럼 보인다. 그 결과 SSH 키·인증정보·브라우저 데이터가 명령 한 번에 노출될 수 있고, 이 모든 과정이 프롬프트 인젝션 한 줄로 촉발될 수 있다.

흥미롭게도 같은 제보를 받은 세 업체의 대응은 갈렸다. 한 곳은 취약점을 수정했고, 한 곳은 참고용 정보로 분류했으며, 다른 한 곳은 이미 문서에 있는 내용이라고 답했다.

1인기업 실전 적용 포인트

  • AI 코딩 에이전트를 쓰는 맥에 도커 데스크톱이 함께 떠 있다면, '샌드박스=안전'이라는 가정을 재검토하라. 두 조건이 겹칠 때 격리가 사실상 뚫린다.
  • 신뢰할 수 없는 저장소나 이슈·문서를 에이전트에 물릴 때는 네트워크 접근을 끄거나 도커 소켓 노출을 차단해, 프롬프트 인젝션이 외부로 나가는 통로를 막아라.
  • 민감한 자격증명은 에이전트가 읽을 수 있는 홈 디렉터리 대신 별도 비밀관리 도구에 두고, 개발용 계정과 분리하라.
  • 자동화 파이프라인에서 에이전트에게 권한 있는(--privileged) 컨테이너 실행을 절대 허용하지 마라.

전망 / 주의점

이번 연구는 '차단 우선' 정책조차 만능이 아님을 보여 준다. 격리는 에이전트 프로세스를 가두지만, 그 옆에서 돌아가는 특권 데몬은 별개의 위협 표면이다. AI 코딩 도구를 실무에 들일수록, 도구가 무엇을 막아 주는지가 아니라 무엇을 막아 주지 못하는지를 먼저 확인하는 태도가 필요하다.

출처: Pillar Security (https://www.pillar.security/blog/one-docker-socket-to-rule-them-all-escaping-codex-cursor-and-gemini-clis-sandboxes)
← 전체 기사 보기