커뮤니티

JWIT news

제이원아이티의 소식을 전해드립니다.
제목[제이원아이티] npm·PyPI 공급망 악성코드 공격 피해 심각…오픈소스 생태계 위협 급증 2025-06-10 10:07
작성자 Level 10


2025년 6월 초, 오픈소스 소프트웨어 생태계에 대한 대규모 공급망 공격이 발각됐다. 자바스크립트(npm)와 파이썬(PyPI) 패키지 저장소에서 동시에 발견된 이번 공격은 단순한 정보 탈취를 넘어 시스템 파괴까지 시도한 정교한 사이버 작전으로 분석된다. 공격자는 GlueStack 관련 npm 패키지를 시작으로 수십 개 패키지에 악성코드를 삽입했고, Python 기반의 소셜미디어 도구까지 위장하여 사용자 인증 정보를 탈취한 사실도 드러났다.


■GlueStack 기반 npm 패키지, 원격제어 악성코드 포함

Aikido Security에 따르면, 공격자는 @gluestack-ui/utils, @react-native-aria/* 계열의 npm 패키지들을 조작해 악성코드를 삽입했다. 감염은 2025년 6월 6일 오후 9시 33분(GMT 기준)에 최초로 탐지되었고, 이후 17개의 패키지에서 동일한 코드 삽입 패턴이 확인됐다.

해당 악성코드는 lib/commonjs/index.js에 삽입됐으며, 공격자가 감염된 시스템에서 쉘 명령을 실행하거나, 스크린샷을 찍거나, 로컬 파일을 외부 서버로 전송하는 기능을 포함하고 있었다. 분석에 따르면 이들 패키지는 매주 약 95만 회에서 100만 회 이상 다운로드되며 전 세계 수많은 프론트엔드·모바일 개발 환경에 사용되어 왔다.

특히 이 악성코드는 이전에 감염 사례가 있었던 rand-user-agent 패키지의 코드와 유사해, 동일한 공격자가 연속 공격을 감행했을 가능성도 제기됐다. 최신 버전에서는 ss_info, ss_ip 명령어가 추가되어 시스템 정보와 공인 IP를 수집하는 기능까지 포함된 것으로 나타났다.

패키지 유지보수자들은 침해 사실을 인지한 직후 해당 버전에 대한 액세스를 차단하고 토큰을 회수했으며, 문제의 버전은 모두 사용 중단 처리됐다.

■위장된 npm 패키지, 와이퍼 기능으로 시스템 파괴

Socket 측은 이에 그치지 않고 다른 두 개의 npm 패키지에서도 심각한 수준의 파괴 행위를 수행하는 악성코드를 발견했다고 밝혔다. 해당 패키지 이름은 express-api-sync와 system-health-sync-api로, 겉으로 보기에는 데이터 동기화 도구 또는 시스템 헬스 체크 기능을 제공하는 유틸리티처럼 위장되어 있었다.

그러나 내부에는 지정된 HTTP 요청이 들어오면 즉시 rm -rf * 또는 rd /s /q . 명령을 실행해 애플리케이션 디렉터리 전체를 삭제하는 코드가 포함되어 있었다. 특히 system-health-sync-api의 경우, 리눅스와 윈도우 환경을 자동으로 식별해 맞춤 삭제 명령을 수행할 수 있는 고도화된 기능을 보유하고 있었다.

이들 패키지는 단순한 와이퍼 기능에 그치지 않고, 공격자의 이메일 계정으로 내부 정보(서버 URL, 설정, 버전 등)를 지속적으로 전송하는 SMTP 백도어 기능도 함께 내장하고 있었다. 이메일 계정은 인도 기반 부동산 업체 도메인과 연결되어 있었으며, 송신 시 Base64로 인코딩된 패스워드를 사용하는 등 탐지 회피 기법도 활용됐다.

■PyPI도 감염... 인스타그램 계정 탈취용 파이썬 패키지 발견

공급망 공격은 Python 생태계인 PyPI(Python Package Index)에서도 발견됐다. 악성 패키지 imad213은 인스타그램 팔로워를 늘려주는 성장 도구를 표방하며 3,000건 이상 다운로드된 것으로 나타났다. 그러나 이 패키지는 실행 시 사용자에게 인스타그램 계정을 입력하도록 유도한 후, 이를 외부 서버로 전송하는 크리덴셜 수집기로 밝혀졌다.

코드 내부에는 Netlify에 호스팅된 텍스트 파일을 통해 원격에서 실행을 중단할 수 있는 킬 스위치 기능이 존재했으며, 공격자가 허용한 환경에서만 작동하도록 설계되어 있었다. 사용자가 입력한 계정 정보는 ‘credentials.txt’라는 로컬 파일로 저장됨과 동시에, 10개의 제3자 봇 서비스로 전송되었다. 이 중 일부는 2021년에 등록된 터키 기반의 인스타그램 관련 서비스와 연계된 것으로 보인다.

해당 패키지를 등록한 사용자는 GitHub에서 “교육 및 연구 목적으로만 사용하라”고 명시했지만, 결과적으로는 다중 탈취 및 정보 세탁에 악용된 것으로 분석됐다.

이번 공급망 공격은 과거 단순 악성코드 삽입 형태를 넘어, 개발자 커뮤니티를 신뢰 기반으로 공격하는 고도화된 전략이었음이 확인됐다. 특히 와이퍼 악성코드 삽입은 금전적 이득을 넘어서 타겟 시스템을 파괴하기 위한 의도를 반영하고 있으며, SMTP 백도어 및 다단계 정보 유출 기능은 정보보호 사각지대를 정밀히 파고든 사례다.

또한 이메일 기반 유출, Netlify 기반 킬스위치 운영 등 전통적인 방화벽이나 IDS 시스템이 탐지하기 어려운 경로를 악용한 점에서, 공격자들은 전통적인 탐지 체계를 우회할 전략을 갖추고 있었던 것으로 보인다.

사이버보안 전문가들은 이번 사건을 통해 단순한 버전 고정(pinning)이나 레지스트리 신뢰만으로는 소프트웨어 생태계를 안전하게 유지할 수 없다는 점을 다시금 강조했다. 특히 정적 코드 분석과 동적 실행 분석을 병행하여 패키지의 의심 행동을 조기에 식별하고, 실행 환경에서의 이상 행위를 모니터링할 수 있는 보안 체계의 필요성이 대두되고 있다.

이와 함께 SMTP, HTTP 등을 통한 의심 통신을 실시간으로 탐지하고 차단할 수 있는 네트워크 흐름 기반 탐지 기술의 필요성도 지적됐다. 일부 보안 전문가는 “오픈소스 공급망 보안은 이제 문화와 프로세스의 문제이며, 개발 초기 단계부터 보안을 내재화한 체계가 필요하다”고 조언했다.

출처- 데일리시큐

SW 공급망 공격 대응 및 예방 방안 제시

  1. 패키지 서명 및 검증 강화

    • 신뢰된 서명자에 의한 디지털 서명 필수화

    • 설치 시 서명 무결성 자동 검증 시스템 도입

  2. 정적 분석(Static Analysis) 자동화

    • CI/CD 파이프라인에 코드 정적 분석 도구 연동

    • 패턴 기반 악성 행위 탐지 (예: rm -rf, eval, child_process 등)

  3. 동적 분석(Sandbox Execution) 병행

    • 패키지 설치 전 격리된 환경에서 동적 실행 및 네트워크 활동 감시

    • 이상 동작 발생 시 자동 차단 및 관리자 알림

  4. 레지스트리 수준의 패키지 모니터링

    • 인기 패키지 및 신규 등록 패키지에 대한 자동 리뷰 및 평판 분석

    • 허위 정보 기반 위장 패키지 탐지 (ex: 이름 유사도 검사)

  5. 버전 고정 및 의존성 최소화

    • package-lock.json, requirements.txt를 통한 명시적 버전 관리

    • 불필요한 서드파티 의존성 제거 및 감사 주기화

  6. 네트워크 기반 이상 통신 탐지

    • SMTP, HTTP 등 외부 서버 전송 패턴 모니터링 및 탐지 룰 설정

    • Base64 인코딩된 정보 송신 패턴 등 이상 징후 필터링

  7. 공격 가능성 있는 코드 사용 경고 시스템 구축

    • 의심 명령어, 백도어 의심 구문 포함 시 IDE 또는 빌드 단계에서 경고 표시

  8. 오픈소스 기여자 신원 인증 강화

    • 패키지 등록자에 대한 2단계 인증 및 활동 이력 기반 검증

    • 패키지 명 탈취 방지 위한 도메인 연동 검증

  9. 커뮤니티 기반 신속한 공유 체계 구축

    • 악성 패키지 발견 시 즉각적인 공유·차단을 위한 개발자/보안 커뮤니티 연계

    • GitHub Security Advisory 및 npm, PyPI 측의 경고 자동화 강화

  10. 보안 교육 및 개발 문화 내재화

  • 개발자 대상 보안 교육 및 오픈소스 사용 시 고려사항 교육 , SBOM 검증

  • 보안 리뷰를 개발 프로세스의 기본 절차로 포함