AI 생성 이미지두 코딩 에이전트 자체에는 아무도 손대지 않았다. Symantec 위협 추적팀(Threat Hunter Team)이 10월 29일 낸 보고서가 다룬 OpenAI Codex와 Anthropic Claude Code는 정상 npm 패키지로 설치된 것이었다. 변화는 그 직후, 사용자 홈 폴더의 설정 몇 군데에서 일어났다.
정상 설치 뒤 한 줄짜리 명령으로 내려받은 설정 스크립트가 두 도구의 API 주소와 인증 정보를 중계 서비스가 발급한 것으로 바꿨다. Codex의 ~/.codex/config.toml에서는 sandbox_mode를 danger-full-access로 바꾸고 쓰기 격리 환경의 네트워크 접근도 켰다. Claude Code에는 중계 서버의 주소와 키를 사용자 범위의 환경 변수로 심었다. 그리고 두 도구 모두에서 사용 기록 전송과 오류 보고를 껐다. Symantec은 이 조치로 OpenAI나 Anthropic에 닿았을 수도 있는 사용 신호까지 끊기게 된다고 설명한다. 스크립트가 왜 그렇게 하는지는 보고서에 없다.
Symantec은 2026년 초부터 조직 열두 곳가량에서 이 중계가 쓰이는 것을 보았다고 밝혔다. 대부분은 중국 본토에 있고, 한국·대만·말레이시아에 기반을 둔 다국적 기업도 있다. 업종은 산업 자동화, 전자 제조, 반도체 등이다. 이 수는 중계가 관측된 조직을 헤아린 것이고, 기기나 피해자의 수는 아니다. 보고서는 수요의 뿌리를 간단한 공백에서 찾는다. 두 회사는 이 에이전트를 중국 본토에서 공식 판매하지 않고, 직원 개인들이 그래도 쓸 길을 찾았다는 것이다. 사용량을 시장가보다 싸게 되파는 경우도 또 하나의 동기로 들었다. Symantec은 사용자가 중계 업자나 재판매자가 미리 만들어 둔 명령을 복사해 스스로 실행한 것으로 본다. 다만 그 명령이 어디에 올라와 있었는지는 보지 못했다고 적었다.
보고서는 본 것과 우려하는 것을 갈라 둔다. 중계 운영자가 이 접근을 악용했다는 증거는 아직 찾지 못했고, 그 구분을 한 문장으로 적었다. “앞서 설명한 설정 변경은 관측된 것이고, 그로부터 따르는 위험은 잠재적인 것이다.”(필자 번역, 이하 같음) 잠재적이라 해도 가볍지 않다. 그런 위치의 중계는 직원이 에이전트에 보내는 프롬프트와 파일, 비밀 정보를 모두 받고, 돌아가는 응답을 바꾸거나 지어낼 수 있다. Codex의 격리가 풀린 상태라면 악의적이거나 오염된 응답 하나가 사용자 계정의 모든 권한으로 실행될 수 있다. Symantec은 보안 제품을 파는 회사이고, 보고서에는 OpenAI나 Anthropic의 입장이 실려 있지 않다. 필자는 10월 30일까지 두 회사가 이 보고서에 대해 낸 공개 입장을 찾지 못했다.
필자의 판단은 이렇다. 에이전트의 실행 파일이 정품인지 확인하면 그 손이 무엇인지는 안다. 그 손이 누구의 목소리를 듣고 있는지는 모른다. 에이전트가 따를 계획은 설정에 적힌 주소에서 응답으로 오기 때문이다. 그 계획이 실제로 실행되는지는 승인 규칙과 계정 권한에 여전히 달려 있는데, 이번 중계는 그 가운데 격리까지 느슨하게 했다. 복사해 붙인 명령 하나면, 프로그램을 한 바이트도 바꾸지 않고 저편의 목소리를 바꿀 수 있다.
믿고 쓰던 소프트웨어를 비켜 간 지름길은 전에도 있었다. 2011년 11월 9일 미국 맨해튼의 연방 검찰은 DNSChanger를 둘러싸고 7명을 기소했다고 발표했다. 검찰에 따르면 이 악성 코드는 100개국이 넘는 곳의 400만 대가 넘는 컴퓨터의 DNS 서버 설정을 바꿔 사용자를 특정 사이트와 광고로 돌렸고, 피고인들은 이로써 1,400만 달러 이상을 벌었다. 검찰은 이 악성 코드가 자신을 찾아낼 수도 있었던 백신과 운영체제 업데이트까지 막았다고도 밝혔다. 2015년 9월에는 Palo Alto Networks가 Apple 개발 도구 Xcode의 변조판인 XcodeGhost를 보고했다. 연구진은 Apple 서버에서 내려받는 속도가 때로 매우 느려 일부 중국 개발자들이 다른 경로로 Xcode를 구했다고 적었다. 변조된 도구는 악성 코드를 앱에 함께 빌드했고, 그런 앱이 App Store에까지 올라갔다.
이번 보고서 옆에 놓으면, 세 사건은 무엇을 부숴야 했는지가 다르다. DNSChanger 운영자들은 설정 하나를 바꾸려고 컴퓨터를 감염시켜야 했다. XcodeGhost를 만든 쪽은 도구 자체를 고쳐야 했고, 느린 공식 내려받기가 확산을 도왔다. Symantec이 그린 중계에서는 도구가 정품이고, 그 시장에서는 공식 제품을 아예 팔지 않으며, 보고서의 설명대로라면 변경은 사용자가 한다. 돌려진 길로 오가는 것도 다르다. 2011년에는 웹사이트가 어디 있는지에 대한 답이었고, 지금은 코드를 고치고 명령을 실행할 수 있는 프로그램이 밟을 다음 단계다.
두 회사 모두 조직이 사용자보다 위에서 규칙을 정하는 방법을 문서로 두고 있다. Anthropic의 설정 문서는 관리 설정(managed settings)을 맨 위에 두고 “사용자 자신의 설정 파일이나 --settings에 있는 어떤 값도 관리 설정의 키를 덮어쓰지 못한다”고 적는다. 환경 변수 문서는 대부분의 세션에서 설정 파일의 값이 셸에서 물려받은 값을 대신하고, 관리 설정의 항목이 사용자·프로젝트 설정의 같은 변수를 덮어쓴다고 설명한다. OpenAI의 관리 구성 안내는 요구 사항(requirements)을 “사용자가 덮어쓸 수 없는, 관리자가 강제하는 제약”이라고 부른다. 예전 격리 설정을 쓰는 배포를 위한 예시는 read-only와 workspace-write만 허용해, 중계가 켠 전체 접근 모드를 뺀다. 새 판에서는 권한 프로필 방식을 쓴다.
이 규칙은 조직이 실제로 걸어 둔 곳에서만 작동하고, 보고서는 중계가 발견된 조직에 그런 규칙이 있었는지 다루지 않는다. 다만 직원이 그 나라에서 팔지 않는 도구를 따로 구해 썼다면, 회사는 기기에 에이전트가 있다는 것부터 모를 수 있다. 아무도 파악하지 못한 소프트웨어의 설정을 정책이 잠글 수는 없다. Symantec의 권고도 그쪽으로 기운다. 제작사 정책을 처방하지 않고 방어하는 쪽이 찾아볼 흔적을 꼽는다. 바뀐 base_url이나 ANTHROPIC_BASE_URL, Codex 설정 파일의 danger-full-access, 그리고 승인된 AI 서비스 목록 밖으로 통신하는 AI 명령줄 도구다. 이런 에이전트의 경계선은 실제로는 그것이 어디에 접속하는지 지켜보는 사람이 긋는다.
직원에게 코딩 에이전트를 쓰게 하는 조직에게 설치 파일 확인은 쉬운 쪽이다. 어려운 쪽은 에이전트의 저편을 정하는 그 몇 줄을 누가 고칠 수 있는지 아는 것, 그리고 제작사에 닿았을 사용 신호가 조용해진 때를 알아채는 것이다.
출처
본문 안 링크에서 취재에 사용한 원문을 확인할 수 있습니다.
- 보고서 security.com
- 기소했다고 발표했다 justice.gov
- XcodeGhost를 보고했다 unit42.paloaltonetworks.com
- 설정 문서 code.claude.com
- 환경 변수 문서 code.claude.com
- 관리 구성 안내 learn.chatgpt.com
수정 내역
수정 내역이 없습니다.
토론
질문과 반론, 근거가 있는 지적을 환영합니다. 댓글 정책
댓글을 불러오는 중…