AI 인사이트

AI 코딩 툴 사칭 악성 설치파일로부터 개발자 PC를 지키는 방법

seunghyeonlab 2026. 5. 24. 23:02

hero

검색 한 번으로 PC가 털린다. Claude Code나 Gemini CLI를 구글에서 찾아 설치한 적이 있다면, 지금 당장 그 설치 경로를 다시 확인해야 한다. 보안 연구팀 Cyber Press가 공개한 보고서에 따르면 금전 목적의 공격자들이 가짜 AI 코딩 툴 설치 파일을 만들어 검색 결과 상위에 노출시키는 SEO 포이즈닝 캠페인을 현재 진행 중이다.


1. 왜 지금 이걸 봐야 하나

AI 코딩 툴 시장이 빠르게 커지면서 Claude Code, Cursor, Gemini CLI 같은 도구들이 개발자 사이에서 빠르게 퍼지고 있다. 문제는 이 수요를 노린 공격이 함께 늘고 있다는 점이다.

SEO 포이즈닝은 낚시성 웹페이지를 검색 엔진 상단에 올려놓는 수법이다. 사용자 입장에서는 공식 사이트처럼 보이는 페이지에서 파일을 내려받는다. 실행하는 순간 자격증명 탈취 또는 원격 접근 악성코드가 심어진다.

이번 캠페인의 타깃이 일반 사용자가 아니라 개발자라는 점이 핵심이다. 개발자 PC에는 API 키, SSH 인증서, 내부 코드 저장소 접근 권한이 한꺼번에 들어 있다. 공격 한 번 성공하면 피해 범위가 단순 계정 탈취와 비교할 수 없을 만큼 넓다.

실제로 유사한 캠페인에서 자격증명을 수집하고 암호화폐 지갑 정보를 빼가는 인포스틸러 계열 악성코드가 발견됐다. 로컬에 캐시된 모든 토큰과 환경변수가 한 번에 유출된다.


2. 핵심 아이디어

검색 결과를 신뢰하지 말고, 설치 경로 자체를 검증하라.

이 수법이 효과적인 이유는 공식 사이트와 시각적으로 거의 구별이 안 된다는 점이다. 브라우저 주소창과 SSL 인증서만 보고 판단하면 속는다. 실제 배포는 검색 광고나 SEO 조작으로 올라온 복제 페이지에서 이루어진다.

아래 표로 위험한 설치 경로와 안전한 설치 경로를 정리했다.

도구 위험한 경로 안전한 경로
Claude Code 검색 결과 상위 링크, 비공식 블로그 claude.ai 공식 도메인, npm 공식 패키지
Gemini CLI 검색 광고, 복제 사이트 google.com/gemini, npm/pip 공식 패키지
Cursor 제3자 다운로드 사이트 cursor.sh 공식 도메인 직접 접근

새 팀원 합류나 프로젝트 초기 환경 세팅 때 이런 사고가 가장 많이 발생한다. 온보딩 체크리스트 한 줄이 이 위험을 거의 차단한다.


3. 바로 따라하는 방법

공식 패키지 레지스트리로만 설치하기

# Claude Code — npm 공식 레지스트리
npm install -g @anthropic-ai/claude-code

# Gemini CLI — npm 공식 레지스트리
npm install -g @google/gemini-cli

# 설치 후 패키지 출처 확인
npm info @anthropic-ai/claude-code dist.tarball
npm info @google/gemini-cli dist.tarball

출력된 URL이 registry.npmjs.org 도메인이면 정상이다. 다른 도메인이 나오면 레지스트리 설정이 변조됐을 가능성이 있다.

기존 설치 파일 해시 검증하기

# macOS / Linux — 설치된 바이너리 위치 확인
which claude
which gemini

# SHA-256 해시 확인
shasum -a 256 $(which claude)
shasum -a 256 $(which gemini)

확인한 해시값을 공식 릴리스 페이지의 체크섬과 대조한다. 불일치하면 즉시 삭제하고 재설치한다.

.env 파일 및 API 키 점검하기

# 로컬 프로젝트에서 .env 파일 목록 확인
find ~ -name ".env" -not -path "*/node_modules/*" 2>/dev/null

# git 히스토리에 실수로 올라간 키 흔적 확인
git log --all --full-diff -p -- "*.env" | grep -E "(API_KEY|SECRET|TOKEN)"

의심스러운 설치 파일을 실행한 기억이 있다면, 발견된 모든 API 키를 즉시 폐기하고 새 키를 발급받아야 한다.

npm 레지스트리 설정 이상 여부 확인하기

# 현재 레지스트리 주소 확인
npm config get registry

# 기대 결과 — 이 값이 나와야 정상
# https://registry.npmjs.org/

# .npmrc 파일에 악성 레지스트리가 등록됐는지 확인
cat ~/.npmrc
cat .npmrc  # 프로젝트 루트에서 실행

registry.npmjs.org 이외의 주소가 설정돼 있다면 의도적으로 변경한 기억이 없는 한 즉시 초기화한다.


4. 운영할 때 조심할 점

온보딩 체크리스트 필수 항목 추가

팀 전체가 같은 기준을 따르지 않으면 한 명의 감염이 전체 저장소 접근 권한 유출로 이어진다. 신규 입사자용 환경 세팅 문서에 아래 항목을 반드시 포함시킨다.

  • 공식 패키지 레지스트리(registry.npmjs.org, pypi.org)만 허용
  • 설치 전 패키지 이름 오타 여부 확인 (타이포스쿼팅도 같은 공격 벡터다)
  • .env 파일은 절대 git에 커밋하지 않고, .gitignore에 명시

환경별 차이

환경 추가 확인 사항
macOS Gatekeeper 경고를 무시하고 실행 허용한 파일 재점검
Linux /etc/npmrc, /etc/pip.conf 시스템 전역 설정 확인
Docker 베이스 이미지에 포함된 패키지 출처 별도 검증 필요

API 키 로테이션 주기 설정

감염 여부와 무관하게, 로컬 환경에 저장된 API 키는 주기적으로 교체하는 습관을 들여야 한다. 특히 여러 프로젝트에서 공유해서 쓰는 키는 하나가 유출되면 전체가 노출된다. 키마다 용도를 분리하고 최소 권한만 부여하는 것이 기본이다.


마무리

검색 결과 상단 = 공식 사이트라는 가정은 2026년 현재 더 이상 유효하지 않다. AI 코딩 툴을 설치할 때는 반드시 공식 도메인이나 공식 패키지 레지스트리를 직접 입력해서 접근해야 한다. 오늘 당장 설치 파일 출처 URL, 패키지 해시 검증, API 키 로테이션 일정 세 가지를 체크하는 것으로 시작할 수 있다.

다음 글에서는 개발 환경에서 API 키를 안전하게 관리하는 시크릿 매니저 도입 방법을 다룰 예정이다.


🐦 X에서 더 빠르게: @baegseungh7061
📚 이 시리즈 더 보기: AI 인사이트
💌 새 글 알림: X 팔로우 또는 블로그 RSS 구독