반응형
안녕하세요!
오늘은 최근 개발자 커뮤니티를 충격에 빠뜨린 npm 패키지 공급망 공격 사례,
특히 os-info-checker-es6 패키지를 중심으로 한 정교한 악성코드 배포 캠페인을
누구나 이해할 수 있도록 쉽고 자세하게 정리해볼게요.
🐛 npm 패키지? 그게 뭐길래 문제가 된 걸까?
npm은 전 세계 자바스크립트 개발자들이
필요한 라이브러리(패키지)를 자유롭게 공유하고
손쉽게 설치해 쓸 수 있도록 만든 '오픈소스 소프트웨어 창고'입니다.
현대 웹, 서버, 앱 개발에서
수십~수백 개의 패키지를 조합해 만드는 게 일상이에요.
하지만 이 편리함을 해커들도 잘 알고 있습니다.
수많은 오픈소스가 '믿고' 재사용되는 점을 악용해
누군가 악성코드를 심은 패키지를 배포하면
전 세계 개발자, 기업, 서비스가 한순간에 피해를 입을 수 있죠.
이런 유형을 공급망 공격(Supply Chain Attack)이라고 부릅니다.
🕵️ os-info-checker-es6, 평범해 보였던 패키지의 배신
2025년 3월 19일, npm에 os-info-checker-es6라는
아주 평범한 이름의 패키지가 처음 등장했습니다.
처음에는 단순히 PC나 서버의 운영체제 정보를 확인하는
유틸리티처럼 보였지만,
며칠 뒤 패키지는 급격하게 진화합니다.
📈 버전별 주요 변화
- v1.0.0 ~ v1.0.5: 단순 정보 조회(정상)
- v1.0.6:
- 설치 과정(preinstall 스크립트)에서
유니코드 변형 문자를 활용한 스테가노그래피(정보 은닉) 적용 - 육안이나 단순 스캐닝으로 악성코드 탐지 어려움
- 설치 과정(preinstall 스크립트)에서
- v1.0.8 (2025.5.7):
- Google Calendar를 C2(명령/제어 서버)로 악용
- Calendar의 특정 이벤트 페이지에서
Base64로 인코딩된 다음 단계 페이로드(실제 악성코드) URL을 추출 - 외부 서버(http://140.82.54.223/...)로부터
추가 악성 스크립트 실시간 다운로드 및 실행
🤯 악성 행위의 핵심
- 설치 단계에서 눈에 띄지 않는 유니코드 은닉 문자에
악성 페이로드를 몰래 숨겨 전송 - 해석된 데이터는 즉시 실행되어 추가 악성 행위 수행
- Google Calendar(구글 캘린더) 같은
신뢰받는 서비스 인프라를 '중계지'로 활용
→ 기업/보안시스템의 차단, 블랙리스트 우회 - 각종 재시도, 오류 복구, 임시 파일 생성 등
지속성 및 은폐력 강화
🤖 왜 이렇게까지 복잡하게 만들었나?
- 탐지 회피:
- 유니코드 특수문자/스테가노그래피 → 코드 숨김
- Google Calendar → 일반적인 C2 IP 차단 우회,
정상 서비스처럼 보여 보안관제에서 놓치기 쉬움
- 공급망 확산:
- os-info-checker-es6가
다른 패키지(예: skip-tot, vue-dev-serverr 등) 의존성으로
연결되어 수백~수천 프로젝트로 파급
- os-info-checker-es6가
- 공격자 조직성:
- os-info-checker-es6, skip-tot 등
동일 제작자(예: kim9123)로 보이는 패키지 다수 등록 - 한 번 심어진 패키지는 한동안 슬립(잠복) 상태로 두다가
버전 업데이트 후 본격 악성화(기존 이용자도 피해)
- os-info-checker-es6, skip-tot 등
🏴☠️ 실제 피해와 위험성
- 패키지의 655회 이상 주간 다운로드
- 최소 4개 이상 다른 패키지에 연쇄적으로 의존
(vue-dev-serverr, vue-dummyy, vue-bit 등) - 감염 시 원격에서 명령 실행, 추가 악성코드 설치, 정보 탈취 등
매우 다양한 공격이 가능 - 사용자 PC·서버만이 아니라
이를 사용하는 수많은 웹/앱/서비스까지 도미노 피해 위험
🛡️ 개발자·기업은 어떻게 대응해야 할까?
1. 즉시 사용 중지 & 최신 npm 보안 권고 확인
- os-info-checker-es6, skip-tot 등
의심 패키지 전량 삭제/업데이트 확인
2. 프로젝트 의존성 전수 점검
- npm list, yarn list, pnpm 등 도구로
모든 서브패키지까지 꼼꼼하게 확인
3. install hook(설치 후 자동 실행) 또는 네이티브 모듈 활용 패키지 경계
- 모듈 설치 시 자동으로 뭔가 실행되는 패키지는
실제 코드(스크립트) 내용, 의심 경로/URL 반드시 검증
4. CI/CD 및 배포 환경 보안 강화
- 프로덕션 환경 배포 전
모듈 코드/동작 동적 분석 - npm audit, socket.dev, snyk 등
공급망 보안 자동 점검 도구 적극 활용
5. 의심 활동 감지 및 대응 프로세스 마련
- 서버/PC의 temp 디렉토리 내
이상 lock파일, 비정상 네트워크 요청,
Google Calendar 접속 흔적 등 상시 모니터링
🤖 공급망 공격, AI 시대엔 더 치밀하다
요즘은 AI가 코드를 대량 자동 생성하고
개발 생산성을 끌어올리는 시대지만,
이런 'AI 자동화'는 악성코드 배포에도 활용되고 있어요.
- AI 코파일럿, 챗GPT, 자동 완성 기능 등에서
인기 패키지 오타(typosquatting) 유도 - 공격자도 AI로 수백 개 악성 패키지 자동 발행
→ 발견·차단 전까지 확산 속도 매우 빨라짐
npm·PyPI·Maven·Go 등
어떤 오픈소스 생태계도 안전지대가 아니라는 점을
꼭 기억하세요!
☑️ 한 줄 요약
os-info-checker-es6를 비롯한 의심 npm 패키지는
즉시 삭제/점검하고,
의존성 관리 및 공급망 보안체계를 강화하세요!
728x90
반응형
'CyberSecurity > Security🔐' 카테고리의 다른 글
🚨 Eventin 워드프레스 플러그인 심각한 보안 취약점! (0) | 2025.05.18 |
---|---|
🕵️♂️ 러시아 APT28, 전세계 정부·방산 메일 서버 XSS 취약점 집중 공격! (1) | 2025.05.18 |
사이버 공격자들의 필수 도구, Dynamic DNS(DDNS)! (1) | 2025.05.18 |
오픈소스 생태계를 노리는 공급망 공격, 이제는 개발자도 해커의 타깃! ☠️ (1) | 2025.05.16 |
💥 Coinbase 내부자 해킹 사건! 2,000만 달러 갈취 시도와 CEO의 결단 (3) | 2025.05.16 |