AI 코딩 어시스턴트를 팀에 도입할 때 대부분의 팀 리드가 먼저 보는 건 생산성 지표다. 코드 완성 속도, 리뷰 사이클 단축, 테스트 자동화율. 맞는 방향이다. 그런데 최근 연이어 터진 두 건의 보안 이슈는 생산성 계산서 위에 다른 항목 하나를 강제로 추가하고 있다. AI 도구가 팀의 파일 시스템에, 그리고 사용자 정보에 실제로 무엇을 하고 있는가.
승인창이 있어도 막히지 않았다
보안 기업 Wiz의 연구팀이 공개한 취약점 'GhostApproval'은 그 이름만큼이나 불편한 개념이다. Amazon Q Developer, Claude Code, Cursor, Windsurf, Augment, Google Antigravity—현재 시장에서 가장 많이 쓰이는 AI 코딩 어시스턴트 6종 모두에서 동일한 유형의 결함이 발견됐다. 공격 벡터는 유닉스의 심볼릭 링크(symbolic link)다. 오래된 개념이고, CWE-61로 분류된 알려진 기법이다. 새로운 건 이게 AI 에이전트의 승인 절차를 이렇게 쉽게 우회한다는 점이다.
구조는 단순하다. 악의적으로 준비된 저장소에 심볼릭 링크를 심어두면, 사용자는 평범한 설정 파일을 수정하는 것으로 인식한다. 하지만 AI 에이전트가 실제로 쓰는 위치는 SSH 인증키처럼 워크스페이스 바깥의 민감한 파일이다. 더 심각한 건 Wiz 연구팀이 짚어낸 두 번째 층위다. 일부 도구는 내부 추론 과정에서 위험 대상 경로를 정확히 인식했음에도, 사용자에게 보여주는 승인창에는 그 정보를 드러내지 않았다. CWE-451, 즉 'UI 상 핵심 정보 은폐' 문제다. 사용자가 확인 버튼을 눌렀을 때 이미 파일 쓰기가 완료된 사례도 확인됐다. 승인 절차가 있어도 의미 없는 구조였다.
업체 대응은 갈렸다. AWS는 CVE를 등록하고 언어 서버 1.69.0에서 수정했고, Cursor는 3.0 버전에서 패치를 완료했다. 반면 Augment와 Windsurf는 접수 사실만 확인한 채 추가 답변이 없다. Anthropic은 처음에 "우리 위협 모델 범위 밖"이라고 답했다가, 보고서 제출 9일 전에 선제적으로 경고 기능을 추가했다고 뒤늦게 밝혔다. 이 엇갈린 대응 속도 자체가 팀 리드에게 중요한 정보다. 내가 쓰는 도구의 벤더가 보안 이슈에 얼마나 빠르게, 얼마나 투명하게 반응하는지는 도구 선택의 기준이 되어야 한다.
백도어인가, 남용 방지 로직인가
같은 시기, Claude Code를 둘러싼 다른 논쟁이 터졌다. 중국 공업정보화부 산하 NVDB가 Claude Code의 특정 버전(2.1.91~2.1.196, 4월 2일~6월 29일 배포)이 사용자 동의 없이 위치·신원 정보를 외부 서버로 전송할 수 있다는 보안 경고를 발령했다. 맥락은 복잡하다. 미중 AI 갈등이 고조되는 시점이었고, Anthropic이 Alibaba의 모델 무단 증류를 공개 비판한 직후였다. 중국에서 공식 제공도 안 되는 서비스에 대해 당국이 안전 경고를 낸 역설적인 구도였다.
Anthropic 측 해명은 이렇다. 해당 코드는 무단 재판매와 모델 증류를 막기 위한 실험적 기능이었고, 다음 릴리스에서 전면 롤백될 예정이라고 했다. 기술적 의도는 이해한다. 그러나 팀 리드 입장에서 이 사건이 남기는 질문은 하나다. 내가 팀원들에게 설치하도록 한 도구가, 내가 동의한 범위 밖에서 무언가를 수집하고 있을 가능성을 나는 어떻게 검증하고 있는가. 의도가 선의였더라도, 사용자 동의 없는 정보 수집은 기업 보안 정책과 정면으로 충돌한다.
팀이 설계해야 할 신뢰 경계
두 사건을 겹쳐 읽으면 패턴이 보인다. AI 코딩 도구가 팀의 파일 시스템과 네트워크에 접근하는 권한의 반경이 넓어질수록, 그 반경 안에서 일어나는 일을 팀이 직접 검증할 수 있어야 한다. 벤더의 승인 UI를 믿는 것만으로는 부족하다.
실행 가능한 수준에서 세 가지를 짚는다.
첫째, 워크스페이스 격리. AI 에이전트에게 넓은 파일 시스템 접근 권한을 주기 전에, 에이전트가 작동하는 워크스페이스를 명시적으로 격리해야 한다. GhostApproval이 가능했던 이유는 심볼릭 링크가 워크스페이스 경계를 넘어서는 경로를 가리킬 수 있었기 때문이다. 에이전트의 읽기·쓰기 경로를 프로젝트 루트 안으로 명시적으로 제한하는 설정을 팀 표준으로 만들어야 한다.
둘째, 승인 UI 맹신 금지. Wiz 연구팀의 권고처럼, 승인창에 표시되는 경로가 실제 쓰기 대상과 일치하는지를 주기적으로 검증하는 습관이 필요하다. 특히 외부 저장소나 서드파티 플러그인을 사용하는 팀일수록, 승인창이 보여주는 정보를 그대로 믿는 문화는 위험하다.
셋째, 네트워크 트래픽 모니터링. Claude Code 사건처럼 도구 자체가 의도치 않은 정보를 외부로 보내는 경우, 이를 탐지할 수 있는 수단이 팀 내에 있어야 한다. 개발 환경의 네트워크 아웃바운드 트래픽을 주기적으로 감사하거나, 민감 정보가 포함된 전송을 탐지하는 규칙을 CI 파이프라인에 추가하는 방식으로 접근할 수 있다.
속도와 신뢰는 함께 설계해야 한다
AI 코딩 도구 도입의 ROI는 실재한다. 그 ROI를 지키려면 도구가 만들어내는 보안 위협 표면도 함께 관리해야 한다. GhostApproval은 새로운 공격이 아니었다. 심볼릭 링크는 수십 년 전부터 알려진 기법이다. AI 에이전트가 자율적으로 파일을 읽고 쓰는 권한을 갖게 되면서, 오래된 기법이 새로운 공격 경로를 얻었을 뿐이다.
AI 도구를 팀에 도입하기로 결정했다면, 그 결정에는 벤더의 보안 패치 속도와 투명성 검증, 워크스페이스 격리 정책, 네트워크 트래픽 감사 주기가 함께 포함되어야 한다. 승인창 하나로 팀 전체의 보안을 위임하는 시대는 이미 지났다. AI 도구가 빠를수록, 팀이 설계한 신뢰 경계도 함께 두꺼워져야 한다.