본문으로 건너뛰기
← 뉴스 목록으로
WARNING악성코드

npm/PyPI AI 패키지 타이포스쿼팅개발자를 노리는 가짜 패키지의 급증

4분 읽기
#타이포스쿼팅#npm#PyPI#공급망공격#악성패키지#AI패키지

무슨 일이 일어났나

2026년 1월부터 2월까지 npm과 PyPI 패키지 레지스트리에서 AI 관련 인기 패키지를 사칭한 악성 패키지 230개 이상이 발견되었습니다. 보안 기업 Socket과 Xygeni의 분석에 따르면, 공격자들은 openapi-generator-cli, cucumber-js 같은 널리 쓰이는 패키지 이름을 교묘하게 변형해 등록한 뒤, 설치하는 개발자의 인증정보를 탈취하고 CI/CD 파이프라인을 침해했습니다.

타이포스쿼팅(typosquatting)은 정상 패키지 이름의 오타 변형을 미리 등록해 두는 공격 기법입니다. 예를 들어 @openapitools/openapi-generator-cli를 설치하려는 개발자가 실수로 openapi-generator-cli(스코프 없는 버전)를 입력하면, 공격자가 미리 등록해 둔 악성 패키지가 설치됩니다. 이런 방식으로 등록된 128개의 팬텀 패키지만으로도 121,539건의 다운로드가 발생했습니다.

왜 위험한가

타이포스쿼팅이 특히 위험한 이유는 공격의 진입 장벽이 매우 낮기 때문입니다. 누구나 npm이나 PyPI에 패키지를 무료로 등록할 수 있고, 이름 유사성을 자동으로 검증하는 시스템이 충분하지 않습니다.

2026년 들어 새로운 변종도 등장했습니다. **슬롭스쿼팅(slopsquatting)**은 AI 코딩 어시스턴트가 존재하지 않는 패키지 이름을 "환각(hallucination)"으로 추천하는 현상을 악용합니다. 연구에 따르면 AI가 추천하는 패키지의 약 20%가 실제로 존재하지 않으며, 공격자는 이렇게 자주 환각되는 이름을 선점하여 악성 패키지를 등록합니다.

이번에 발견된 악성 패키지들의 주요 행위는 다음과 같습니다:

  • 인증정보 탈취: 환경 변수, .env 파일, AWS/Azure 인증 키 수집
  • 세션 하이재킹: 브라우저 쿠키와 개발자 세션 토큰 가로채기
  • CI/CD 침해: GitHub Actions, Jenkins 등 빌드 파이프라인에 백도어 삽입
  • 원격 코드 실행: 설치 스크립트(postinstall)를 통한 RAT(원격 접근 도구) 배포

실제 사례로, 2026년 1월 28일 암호화폐 거래소 dYdX의 공식 npm/PyPI 패키지가 탈취되어 지갑 자격증명을 훔치는 악성 버전이 배포된 사건이 있었습니다. dYdX는 사용자들에게 영향받은 머신 격리, 자산 이전, API 키 교체를 긴급 권고했습니다.

나에게 어떤 영향이 있는가

npm이나 PyPI를 사용하는 개발자라면 직접적인 영향권에 있습니다. 특히 AI/ML 프로젝트를 진행하면서 새로운 패키지를 자주 설치하거나, AI 코딩 어시스턴트가 추천하는 패키지를 검증 없이 설치하는 경우 위험이 높습니다.

악성 패키지가 한 번 설치되면 로컬 환경의 인증정보가 유출될 뿐 아니라, CI/CD 파이프라인을 통해 프로덕션 환경까지 침해될 수 있습니다. 개인 프로젝트뿐 아니라 회사 인프라 전체가 영향받을 수 있는 구조입니다.

지금 할 수 있는 대응법

  1. 패키지 이름을 반드시 확인: 설치 전 공식 문서나 GitHub 저장소에서 정확한 패키지 이름을 복사하여 사용합니다. 타이핑으로 직접 입력하지 않습니다.

  2. AI 추천 패키지 검증: ChatGPT, Copilot 등 AI가 추천한 패키지가 실제로 존재하는지 npm 또는 PyPI 공식 사이트에서 확인합니다. 다운로드 수, 마지막 업데이트 날짜, 퍼블리셔 정보를 점검합니다.

  3. lockfile 사용 및 해시 검증: package-lock.json이나 requirements.txt의 해시값을 활용해 패키지 무결성을 확인합니다. npm audit이나 pip audit를 정기적으로 실행합니다.

  4. 보안 스캐닝 도구 도입: Socket, Snyk, npm audit 같은 도구를 CI/CD 파이프라인에 통합하여 악성 패키지 설치를 사전에 차단합니다.

  5. 설치 스크립트 비활성화 검토: npm의 경우 --ignore-scripts 플래그를 사용하면 postinstall 스크립트 실행을 막을 수 있습니다. 신뢰하지 않는 패키지를 처음 설치할 때 유용합니다.


참고

공유

보안 뉴스 알림 받기

새로운 보안 뉴스를 이메일로 전달합니다.