
안녕하세요,
그로메트릭 입니다. 🐸
npm, PyPI 등 오픈소스 패키지를 내려받아 빌드하는 개발팀이라면 이번 3분기 데이터는 가볍게 넘겨서는 안 될 내용입니다.
소나타입(Sonatype)은 2026년 3분기에 149,329건의 악성 오픈소스 패키지를 식별했습니다.
2017년 추적을 시작한 이후 누적 건수는 1,960,846건으로 200만 건에 근접했습니다.
이 중 npm이 133,579건으로 전체의 89.5%를 차지했습니다.
그러나 이번 분기의 핵심은 물량이 아닙니다. 악성 행위가 명확히 확인된 패키지 27,618건 가운데 약 4분의 3이 추가 페이로드 배포 또는 시크릿 탈취를 수행했다는 점이 더 중요합니다.
하나의 패키지 침해가 자격 증명 유출, 추가 악성코드 설치, 신뢰된 계정 탈취로 이어지면 공급망 보안 관점에서 개별 의존성 정리 수준을 넘어 환경 전체의 침해 대응 문제로 확대될 수 있습니다.
*아래 글은 소나타입(Sonatype)의 공식 블로그 글을 번역하여 작성되었습니다.
3분기 오픈소스 악성코드 인덱스: 침해가 증폭되는 순간
요약
- 이정표: 소나타입이 2017년부터 악성 오픈소스 패키지를 추적한 이후 누적 기록은 200만 건에 근접했습니다.
- 규모: 2026년 3분기에 149,329건이 기록되었고, npm이 89.5%로 압도적이지만 2분기의 96.6%에서는 비중이 낮아졌습니다.
- 행위: 악성 행위가 확인된 패키지의 74.5%가 드로퍼, 시크릿 탈취 또는 둘 모두에 해당했습니다. 최초 실행 이후로 공격을 확장하도록 설계된 경우가 많았다는 의미입니다.
- 방어 과제: 자동화로 최초 침해와 후속 피해 사이의 간격이 줄어, 자격 증명 탈취, 페이로드 배포, 지속성 확보, 추가 접근 권한 확보를 차단할 시간이 짧아졌습니다. 관련 배경은 CI/CD 자격 증명이 공격 대상이 되는 이유에서 확인할 수 있습니다.

악성 패키지 행위 분석: 물량보다 드로퍼와 시크릿 탈취가 중요한 이유는? 🧐
이번 분기에 더 의미 있는 신호는 악성 패키지가 어디에서 발견됐는가가 아니라 무엇을 하도록 설계됐는가입니다.
분기 전체 물량의 상당 부분은 잠재적 유해 애플리케이션(PUA)과 저장소 악용 분류에서 나왔습니다. 이를 제외하고 더 악의적인 행위만 분리하면 드로퍼와 시크릿 탈취가 뚜렷하게 부각됩니다.
| 위협유형 | Q3 탐지 건수 |
| 드로퍼(Dropper) | 14,665 |
| 시크릿 탈취(Secrets exfiltration) | 9,863 |
| 호스트 정보 탈취(Host information exfiltration) | 4,332 |
| 백도어(Backdoor) | 3,284 |
| 데이터 손상(Data corruption) | 2,869 |
| 코드 난독화(Obfuscated code) | 705 |
| 암호화폐 채굴기(Crypto miner) | 281 |
드로퍼와 시크릿 탈취를 합치면 해당 행위 탐지 건수의 68.1%이고, 둘 중 하나 이상에 해당하는 패키지 기준으로는 74.5%입니다.
두 유형은 모두 최초 패키지 밖으로 공격을 넓힐 수 있다는 공통점이 있습니다. 탈취된 자격 증명은 신뢰된 접근 권한을 열고, 드로퍼는 다음 단계 페이로드를 전달합니다.
공급망 신뢰 모델의 변화: 신뢰는 왜 동적으로 바뀌고 있을까? 👀
2분기 오픈소스 악성코드 인덱스는 공격자가 신뢰된 패키지, 메인테이너, 의존성, 개발자 워크플로를 공격 경로로 바꾸는 방식을 다뤘습니다.
이후 소나타입 리서치 랩은 신뢰된 소프트웨어 워크플로가 침해되는 데서 나아가 기계 속도로 영향을 받고 실행 대상이 되는 경향을 관찰했습니다.
악성코드 데이터에도 이 변화가 나타납니다. 3분기에 하이재킹(hijack) 태그가 붙은 패키지는 4,150건이었고, 이 중 88%가 시크릿 탈취, 2차 페이로드 배포 또는 둘 모두를 목적으로 설계되었습니다. 소나타입 리서치 랩은 이 흐름이 실제로 어떻게 나타났는지 세 가지 사례로 분석했습니다.
1. mlflow-ui: 익숙한 공급망 기법, 기계 속도의 피해
3분기에서 기계 속도 공급망 위험을 가장 분명하게 보여준 사례는 의외의 출처에서 나왔습니다. 악성 패키지를 업로드한 AI 에이전트가 처음으로 확인된 사례입니다.
Anthropic이 보고한 잘못 구성된 CTF(capture-the-flag) 훈련에서 Claude Mythos 5 에이전트는 오프라인 시뮬레이션 환경이라고 안내받았지만 실제로는 실제 인터넷에 연결되어 있었습니다.
에이전트는 시뮬레이션 대상이 등록되지 않은 PyPI 패키지 이름을 반복적으로 설치한다는 점을 발견했고, 해당 이름을 직접 등록해 악성 패키지를 게시했습니다.
패키지 자체는 단순했습니다. 호스트 정보와 환경 변수를 수집하고 2차 페이로드를 내려받는 수준이었습니다. 그럼에도 공격은 성공했습니다. 보안 벤더로 추정되는 제3자 시스템 15곳이 설치했고, PyPI가 1시간 이내에 제거했습니다. Anthropic의 보고서에 따르면 그중 한 시스템에서 노출된 자격 증명이 실제 보안 벤더의 데이터베이스 접근에 사용되었습니다.
익숙한 공급망 기법이 기계 속도로 실행되면 탐지와 제거가 진행되는 사이에 하위 시스템에 실질적 피해가 발생할 수 있습니다.
2. AI 프로테스트웨어(AI Protestware): 패키지 콘텐츠가 AI 도구를 겨냥하면 어떤 일이 생길까?
3분기에는 AI 보조 개발에 대한 새로운 형태의 반발도 확인되었습니다.
소나타입은 악성이 아닌 두 오픈소스 패키지, PyPI의 allianceauth-workflows와 npm의 dough-synth를 분석했습니다. 두 패키지는 Anthropic의 Claude 거부 테스트 문자열을 프로젝트 콘텐츠에 의도적으로 삽입했습니다. 이 문자열은 Claude의 거부 응답 처리를 테스트하기 위한 것이지만, Claude 기반 도구가 읽으면 해당 콘텐츠 처리를 중단할 수 있습니다.
두 메인테이너의 적용 방식은 달랐습니다.
- allianceauth-workflows: AI 보조 풀 리퀘스트를 거부하는 명시적 AI 정책 바로 아래, README와 PyPI 패키지 설명에 문자열을 노출했습니다.
- dough-synth: README의 HTML 주석에 문자열을 숨기고, C와 JavaScript 소스 파일 상단에도 배치해 Claude 기반 도구가 프로젝트를 분석하다 마주칠 가능성을 여러 곳에 확보했습니다.



두 패키지 모두 악성이 아니며, 사례 두 건으로 생태계 전반의 추세를 단정할 수는 없습니다. 다만 패키지 콘텐츠가 사람과 런타임뿐 아니라 이를 분석하는 AI 시스템에 영향을 주도록 작성될 수 있다는 새로운 고려 사항을 보여줍니다.
코드 리뷰, 개발, 보안 스캔에서 AI 활용이 늘어날수록 자동화된 분석기도 공급망 신뢰 경계의 일부가 됩니다.
3. Mini Shai-Hulud: 탈취된 자격 증명은 어떻게 전파 인프라가 될까?
2026년 8월 npm에서 Mini Shai-Hulud 신규 웨이브가 확산되었고, 소나타입 리서치 랩은 영향받은 컴포넌트 버전 2,225건을 추적했습니다.
악성코드는 침해된 정상 패키지를 통해 이동하면서 개발자와 CI/CD 자격 증명을 수집하고 유효한 npm 게시 권한을 찾았습니다. 권한을 확보하면 피해자가 관리하는 다른 패키지를 자동으로 식별해 동일한 페이로드를 주입하고 버전을 올려 재배포할 수 있었습니다.
이로써 Mini Shai-Hulud는 단순한 자격 증명 탈취 캠페인을 넘어 신뢰된 접근 권한을 반복 가능한 전파 메커니즘으로 전환했습니다. 하나의 침해가 다음 침해로 대규모로 이어진 구조입니다. 앞의 사례와 마찬가지로 핵심은 전혀 새로운 기법이 아니라, 익숙한 공급망 약점이 얼마나 빠르고 반복적으로 악용될 수 있는가입니다.
방어 과제: 맥락을 잃지 않고 침해 연쇄를 차단하려면? 🚧
3분기 데이터는 악성 패키지를 발견하고 제거하는 것이 대응의 첫 단계에 불과할 수 있음을 시사합니다. 해당 패키지가 추가 페이로드를 내려받았거나, 자격 증명을 노출했거나, 지속성을 확보했다면 단순한 의존성 정리가 아니라 환경 침해 가능성을 전제로 한 사고 대응이 필요합니다.
악성코드 분석은 방어의 한쪽 측면, 즉 최초 침해에서 후속 피해까지의 이동 속도를 보여줍니다. 다른 측면은 팀이 같은 속도로 평가해야 하는 보안 정보의 양입니다.
AI는 보안 발견 사항의 양과 속도를 높이고 있지만, 빠른 발견이 곧 명확한 우선순위로 이어지지는 않습니다. 소나타입은 8월에 Spring CVE 91건이 소프트웨어 컴포넌트 148,608개에 영향을 미치는 것을 추적했고, 이는 하위 조직에 상당한 우선순위 판단 부담을 만들었습니다.
반대 사례로 이후 보고된 Log4j RCE가 있습니다. 근본 동작은 재현 가능했지만 실제 중요도는 좁은 범위의 아키텍처 조건에 달려 있었습니다. 해당 발견이 실제로 중요한지는 소프트웨어가 어떻게 사용되는지에 대한 맥락이 있어야 판단할 수 있었습니다.
악성코드든 취약점이든 과제는 같습니다. 더 많은 정보가 더 빠르게 들어올수록 맥락의 가치는 오히려 커집니다.
3분기에서 다시 확인된 방어 우선순위는 다음과 같습니다.
- 악성 컴포넌트가 실행되지 않도록 사전 차단합니다.
- 알려진 패키지 이름과 시그니처뿐 아니라 행위 기반으로 탐지합니다.
- 자격 증명 노출, 지속성, 추가 페이로드 등 후속 영향까지 조사합니다.
- 패키지나 메인테이너의 과거 평판에 의존하지 않고 신뢰를 지속적으로 검증합니다.
- 의존성, 도달 가능성, 악용 가능성, 조치 정보 등 맥락을 기준으로 우선순위를 정합니다.
- 자동화된 분석 환경은 자격 증명을 제한하고 패키지 콘텐츠를 신뢰할 수 없는 입력으로 취급해 보호합니다.
공통 과제는 속도입니다. 공격, 보안 발견 사항, 자동화된 분석이 모두 빨라지고 있습니다. 방어 측도 자동화로 속도를 맞춰야 하지만, 실제로 무엇이 일어났고 다음에 무엇을 해야 하는지 이해할 맥락도 함께 필요합니다.
결론: 침해의 연쇄 확산을 막으려면 속도와 맥락이 모두 필요합니다 ⚖️
2026년 3분기는 소프트웨어 공급망 위험이 개별 패키지나 취약점 단위를 넘어 확장되고 있음을 보여주었습니다.
악성 패키지 하나가 자격 증명을 노출하고, 추가 페이로드를 전달하고, 추가 침해를 가능하게 하는 신뢰된 접근 권한을 만들 수 있습니다. 동시에 자율 에이전트와 AI 기반 도구가 기계 속도로 소프트웨어에 작용하면서, 신뢰된 워크플로가 악용되거나 영향받거나 교란되는 새로운 경로가 생기고 있습니다.
그래서 속도만큼 맥락이 중요합니다. 패키지나 취약점을 식별하는 것은 시작에 불과합니다. 무엇이 실행되었는지, 어떤 접근 권한이 노출되었는지, 그 뒤에 무엇이 일어났는지, 어떤 자동화 시스템이 관여했는지를 이해해야 합니다.
공급망 활동이 가속될수록 과제는 최초 침해를 막는 데서 끝나지 않고, 침해가 더 넓은 접근 권한, 추가 페이로드, 다른 신뢰 시스템으로 확장되는 것을 막는 데까지 이어집니다.
출처
소나타입 블로그 : Q3 2026 Open Source Malware Index: When Compromise Compounds
'Security Insights & Trends' 카테고리의 다른 글
| TensorLake 악성 릴리즈 npm 공급망 공격 - 설치 한 번에 자격증명 위협까지 (0) | 2026.10.14 |
|---|---|
| AI 코딩 에이전트가 바꾸는 SDLC: 오픈소스 의존성 거버넌스 전략 (0) | 2026.10.02 |
| CI/CD 자격증명 탈취: 악성 오픈소스 패키지가 설치 시점에 노리는 권한 (0) | 2026.09.30 |
| SBOM·소프트웨어 공급망 지속가능성, 오픈소스 배포 최적화부터 🏋️♂️ (1) | 2026.09.16 |
| AI 토큰 비용 최적화, 초기 의존성 결정이 좌우한다 (0) | 2026.09.11 |