[논문 리뷰] Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages
이 논문은 해석형 언어 패키지 매니저(PyPI, Npm, RubyGems)에서 공급망 공격을 메타데이터, 정적 및 동적 분석을 사용하여 탐지하기 위한 비교 프레임워크와 분석 파이프라인인 MalOSS를 제안한다. 이 연구에서는 악성 패키지 339개를 식별하였으며, 이 중 278개(82%)가 제거되었고, 세 개는 CVE를 할당받았다. 이는 레지스트리 유지를 위한 실질적인 보안 개선 조치를 제공한다.
Package managers have become a vital part of the modern software development process. They allow developers to reuse third-party code, share their own code, minimize their codebase, and simplify the build process. However, recent reports showed that package managers have been abused by attackers to distribute malware, posing significant security risks to developers and end-users. For example, eslint-scope, a package with millions of weekly downloads in Npm, was compromised to steal credentials from developers. To understand the security gaps and the misplaced trust that make recent supply chain attacks possible, we propose a comparative framework to qualitatively assess the functional and security features of package managers for interpreted languages. Based on qualitative assessment, we apply well-known program analysis techniques such as metadata, static, and dynamic analysis to study registry abuse. Our initial efforts found 339 new malicious packages that we reported to the registries for removal. The package manager maintainers confirmed 278 (82%) from the 339 reported packages where three of them had more than 100,000 downloads. For these packages we were issued official CVE numbers to help expedite the removal of these packages from infected victims. We outline the challenges of tailoring program analysis tools to interpreted languages and release our pipeline as a reference point for the community to build on and help in securing the software supply chain.
연구 동기 및 목표
- 해석형 언어용 패키지 매니저의 보안 및 기능적 특징을 체계적으로 분석하고 비교하기 위해.
- PyPI, Npm, RubyGems와 같은 레지스트리에서 최근 발생한 공급망 침해의 근본 원인과 공격 벡터를 규명하기 위해.
- 해석형 언어를 대상으로 하는 악성 패키지를 대규모로 탐지하기 위한 재사용 가능하고 확장 가능한 분석 파이프라인을 개발하기 위해.
- 레지스트리 보안 향상 및 소프트웨어 공급망 강화를 위한 실질적이고 증거 기반의 권고 사항을 제공하기 위해.
- MalOSS 파이프라인과 악성 샘플을 공개하여 커뮤니티 및 향후 연구를 지원하기 위해.
제안 방법
- 해석형 언어 패키지 매니저 생태계 간의 기능, 보안 및 신뢰 관련 기능을 평가하기 위한 비교 프레임워크를 설계하기 위해.
- 해석형 언어에 특화된 메타데이터 분석, 정적 코드 분석 및 동적 실행 모니터링을 조합한 MalOSS를 구현하기 위해.
- PyPI, Npm, RubyGems에서 100만 개 이상의 패키지에 파이프라인을 적용하여 이질성과 악성 행동을 탐지하기 위해.
- 수집된 피아스티브-DNS 데이터를 활용해 탐지된 악성 패키지의 실제 세계에서의 확산 범위를 추정하기 위해.
- 거짓 경고를 줄이고 알려진 공격를 확인하기 위해 위협 인텔리전스 서비스(VirusTotal 등)와 수동 검증을 활용하기 위해.
- 발견한 사항을 레지스트리 유지 관리자에게 보고하고, 고위험 패키지에 대해 CVE 기관과 협력하기 위해.
실험 결과
연구 질문
- RQ1해석형 언어 패키지 매니저 간의 핵심 보안 및 기능적 차이점은 무엇이며, 이는 공급망 공격 표면을 어떻게 증가시키는가?
- RQ2PyPI, Npm, RubyGems의 악성 패키지는 신뢰와 레지스트리 메커니즘을 어떻게 악용하는가?
- RQ3기존의 프로그램 분석 기법(정적, 동적, 메타데이터)이 해석형 언어 생태계에서 실제 공급망 공격을 어느 정도 탐지할 수 있는가?
- RQ4피아스티브-DNS 데이터를 통해 추정한 바에 따르면, 탐지된 악성 패키지의 실제 영향 범위와 확산 속도는 어떠한가?
- RQ5신뢰, 탐지 및 복구 기능 향상을 위해 어떤 실질적인 개선 조치를 제안할 수 있는가?
주요 결과
- MalOSS 파이프라인은 PyPI에서 7개, Npm에서 41개, RubyGems에서 291개의 악성 패키지를 탐지하여 총 339개의 보고된 패키지로 확인되었다.
- 보고된 339개의 패키지 중 278개(82%)는 확인 후 레지스트리 유지 관리자에 의해 성공적으로 제거되었다.
- 보고된 악성 패키지 중 세 개는 각각 10만 건 이상의 다운로드를 기록했으며 공식 CVE 식별자가 할당되었다.
- 연구에서는 자격 증명 정보 유출, 원격 코드 실행, 타이포스quat팅을 통한 사회공학 기법을 포함한 정교한 공격 패tern을 파악했다.
- 피아스티브-DNS 분석 결과 일부 악성 패키지의 광범위한 배포를 확인하였으며, 이는 실제 영향을 반영한다.
- 프레임워크와 파이프라인이 위협을 성공적으로 식별하고 검증하는 데 사용되었으며, 해석형 언어 생태계에서 대규모 자동 탐지의 가능성을 입증했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.