[논문 리뷰] An Empirical Study of Malicious Code In PyPI Ecosystem
이 논문은 파이피(PyPI) 생태계에서 악성 코드에 대한 대규모 실증 연구를 제시하며, PyPI 미러 및 기타 자료들로부터 자동으로 수집한 결과 총 4,669개의 악성 패키지로 구성된 데이터셋을 구축하였다. 연구 결과, 50퍼센트 이상의 악성 패키지가 여러 행동을 동시에 보이며, 특히 정보 유출 및 명령어 실행이 가장 흔한 행동으로 나타났고, 74.81퍼센트는 소스 코드 설치 방식을 통해 사용자 프로젝트에 성공적으로 침투하였으며, 많은 경우 발견 이후에도 오랫동안 미러에 그대로 유지되는 것으로 나타났다.
PyPI provides a convenient and accessible package management platform to developers, enabling them to quickly implement specific functions and improve work efficiency. However, the rapid development of the PyPI ecosystem has led to a severe problem of malicious package propagation. Malicious developers disguise malicious packages as normal, posing a significant security risk to end-users. To this end, we conducted an empirical study to understand the characteristics and current state of the malicious code lifecycle in the PyPI ecosystem. We first built an automated data collection framework and collated a multi-source malicious code dataset containing 4,669 malicious package files. We preliminarily classified these malicious code into five categories based on malicious behaviour characteristics. Our research found that over 50% of malicious code exhibits multiple malicious behaviours, with information stealing and command execution being particularly prevalent. In addition, we observed several novel attack vectors and anti-detection techniques. Our analysis revealed that 74.81% of all malicious packages successfully entered end-user projects through source code installation, thereby increasing security risks. A real-world investigation showed that many reported malicious packages persist in PyPI mirror servers globally, with over 72% remaining for an extended period after being discovered. Finally, we sketched a portrait of the malicious code lifecycle in the PyPI ecosystem, effectively reflecting the characteristics of malicious code at different stages. We also present some suggested mitigations to improve the security of the Python open-source ecosystem.
연구 동기 및 목표
- 악성 PyPI 패키지에 대한 공개 가능하고 고품질의 데이터셋이 부족한 문제를 해결하기 위해.
- PyPI 생태계에서 악성 코드의 생명주기, 즉 개발에서 사용자 침투에 이르기까지의 과정을 조사하기 위해.
- 악성 패키지의 행동 패턴, 회피 기법, 실제 영향을 분석하기 위해.
- 파이썬 오픈소스 생태계에서의 탐지 및 대응 개선을 위한 실질적인 통찰을 제공하기 위해.
제안 방법
- PyPI 미러 및 여러 외부 자료로부터 악성 패키지를 자동으로 수집하는 프레임워크를 구축하였다.
- 정적 및 동적 분석을 활용해 다중 출처에서 수집한 4,669개의 악성 코드 인스턴스(완전한 패키지, 코드 스니펫, 악성 소프트웨어 샘플 포함)로 구성된 데이터셋을 구축하였다.
- 정적 및 동적 분석을 통해 악성 패키지를 다섯 가지 행동 기반 카테고리로 분류하였다.
- 해uristic 및 머신러닝 기법을 활용해 파이썬 소스 코드 내 악성 명령어 및 백도어를 탐지하였다.
- 소스 코드 설치를 통한 패키지 확산을 추적하고, 글로벌 PyPI 미러에서의 지속성 분석을 수행하였다.
- 실제 사례 연구를 통해 악성 패키지의 영향 및 최종 사용자 시스템에 대한 침투 패턴을 평가하였다.
실험 결과
연구 질문
- RQ1RQ1: PyPI 생태계에서 악성 코드의 주요 특성과 출처는 무엇이며, 다른 플랫폼과 비교해 봤을 때 어떻게 다를까?
- RQ2RQ2: 악성 코드를 오픈소스 패키지에 삽입할 때 공격자는 어떤 공격 전략과 악성 행동을 조합하며, 이러한 기법은 플랫폼 간에 어떻게 진화해 왔는가?
- RQ3RQ3: 기존의 탐지 도구는 악성 패키지를 얼마나 효과적으로 식별할 수 있으며, 악성 패키지는 이를 우회하기 위해 어떤 기법을 사용하는가?
- RQ4RQ4: 악성 패키지의 영향과 최종 사용자 시스템에 대한 침투 메커니즘은 어떠한가? 주로 어떤 운영체제가 공격 대상이 되는가?
주요 결과
- PyPI 생태계에서 50퍼센트 이상의 악성 패키지가 다중 악성 행동을 보이며, 정보 유출 및 명령어 실행이 가장 흔한 행동이다.
- 74.81퍼센트의 악성 패키지가 소스 코드 설치 방식을 통해 사용자 프로젝트에 성공적으로 침투하여 주요 공격 벡터로 작용하고 있다.
- 발견 이후에도 72퍼센트 이상의 신고된 악성 패키지가 글로벌 PyPI 미러 서버에서 오랫동안 접근 가능한 상태로 유지되고 있다.
- 악성 패키지는 주로 리눅스 시스템을 공격 대상으로 삼고 있어 플랫폼 기반의 특수한 공격 전략을 사용하고 있음을 시사한다.
- 공격자는 정적 및 동적 분석 도구를 회피하기 위해 코드 오버플루션 및 동적 페이로드 전달 등 다양한 방식의 방어 회피 기법을 활용하고 있다.
- 패키지 바이너리와 일치하지 않는 소스 코드를 통한 공급망 오염 방식과 같은 새로운 공격 벡터를 규명하였으며, 소프트웨어 공급망 내의 체계적 위험을 드러냈다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.