
Copilot CLI가 기본 설정에서 승인 요청 없이 ~/.ssh 파일을 읽고 홈 디렉터리도 나열했다는 재현 결과가 공개됐다. 이를 계기로 만든 오픈소스 도구 envgit은 코딩 에이전트의 작업을 기록하고, 파일 접근과 되돌릴 수 없는 네트워크 요청을 정책으로 제한하는 것을 목표로 한다.
envgit 개발자는 2026년 10월 28일 공개한 글에서 macOS의 Copilot CLI 1.0.105를 새 디렉터리와 기본 설정으로 실행했다고 밝혔다. 실제 키 대신 시험용 파일을 ~/.ssh에 두고 읽기를 요청하자 별도 승인 창 없이 파일 내용이 출력됐으며, ls ~도 승인 없이 실행됐다. ~/.copilot에는 이전 세션에서 저장된 승인이 없었다고 설명했다.
--sandbox를 켜자 홈 디렉터리 나열은 샌드박스에서 Operation not permitted 오류로 차단됐다. 다만 Copilot CLI의 샌드박스는 기본적으로 꺼져 있고, 켜더라도 생성되는 정책에서 외부 네트워크 연결은 기본 허용된다고 글은 지적한다. 이 재현은 실제 키가 아닌 시험용 파일을 사용한 사례다.
envgit은 에이전트가 수행한 각 단계 뒤에 작업 디렉터리 스냅샷을 만들고, 명령·변경 파일·요청·차단 내역을 기록한다. envgit rewind로 이전 단계의 파일 상태를 복구하고, envgit fork로 특정 단계의 상태를 새 디렉터리에 만들 수 있다. 프로젝트별 YAML 정책으로 ~/.ssh, ~/.aws, **/.env 읽기를 거부하거나, 네트워크 요청의 호스트·HTTP 방식·경로에 따라 허용·차단·승인 요청을 설정할 수 있다.
개발자는 git push를 예로 들어 호스트 이름만 확인하는 네트워크 허용 목록의 한계를 설명한다. git fetch와 git push가 같은 호스트에 연결하더라도 요청의 방식과 경로는 다르므로, envgit은 요청 단위 규칙으로 푸시를 막는다고 주장한다. 요청 단위 규칙을 사용하면 샌드박스 프록시가 실행별 인증 기관을 통해 HTTPS를 종료해 요청 방식과 경로를 확인한다. rewind는 이미 전송된 푸시나 게시물을 취소하지 못하며, 도구의 약속은 감사 기록과 차단, 샌드박스 안의 복구에 한정된다.
지원 방식은 에이전트마다 다르다. Claude Code는 전체 프로세스를 envgit의 샌드박스와 프록시 안에서 실행하고, Codex는 실험 단계인 exec-server 프로토콜을 이용해 명령을 envgit에 맡긴다. Copilot CLI는 훅을 통해 도구 호출을 기록하고 일부 명령줄을 거부하지만, 요청 단위 네트워크 차단은 지원하지 않는다. 글은 Claude Code, Codex, envgit run에서 셸 변수로 숨긴 푸시를 요청 단계에서 차단하고 기록하는 시험을 통과했다고 밝혔다.
글에 공개된 한계도 있다. 셸 규칙은 명령줄을 비교하는 보조 장치라 우회할 수 있으며, 실제 차단은 네트워크 규칙에 의존한다. GraphQL 변경 요청은 본문을 바탕으로 판별하는 휴리스틱이고, SSH는 내용을 확인할 수 없어 22번 포트를 전면 거부한다. Copilot CLI에서는 기록만 가능하고 강제 차단은 되지 않는다. macOS의 VM 백엔드는 데모용이며, Linux의 Firecracker와 같은 운영 환경이 아니라고 설명한다. 다른 작업에서 MCP의 execute 방식은 비용을 줄였지만 소스 파일 가져오기 과제에서는 3회 모두 오답을 냈다. 개발자는 이 결과를 고친 것이 아니며, 도구가 더 저렴하다는 표현 대신 정책으로 데이터 접근과 기록을 제어할 수 있다고 정정했다.
설치는 Node 22 이상이 필요하며 macOS와 Linux를 지원한다. Linux 샌드박스에는 bubblewrap, socat, ripgrep가 필요하다.
npm install -g agent-envgit # the command is `envgit`; npm would not take the shorter name
envgit demo # thirty seconds, no API key
envgit doctor # what this machine is missing, with the fix for each
프로젝트에서는 envgit init 뒤에 envgit claude, envgit codex 또는 envgit run <cmd>를 실행한다. 개발자는 저장소가 Apache-2.0 라이선스이며, 공개 당시 만들어진 지 사흘이라 디스크 저장 형식이 바뀔 수 있다고 밝혔다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요