PyPI, 악성코드의 새로운 은신처?
PyPI에 등록된 `spellcheckpy` 및 `spellcheckerpy` 패키지가 악성코드(Malware)를 포함한 채 배포됨
정상적인 파일(Basque word frequencies) 내에 Base64 인코딩된 다운로더(Downloader)를 숨기는 정교한 기법 사용
다운로더는 원격 제어(Remote Control) 기능을 가진 파이썬 RAT(Remote Access Trojan)을 설치하여 시스템 정보 탈취 및 임의 코드 실행 가능
C2 서버(Command and Control Server)는 악성 활동으로 악명 높은 호스팅 업체를 사용, 동일 공격자의 과거 캠페인(Past Campaign)과 유사
악성코드 은닉 기법: 리소스 파일 활용
공격자는 정상적인 파일(Legitimate File)인 `resources/eu.json.gz` 내에 악성코드를 숨기는 창의적인 기법(Creative Technique)을 사용했다. 특히, Base64 인코딩(Base64 Encoding)을 통해 악성 코드를 난독화하고, `test_file` 함수를 악용하여 악성 코드를 실행하는 방식을 사용했다. 이러한 방식은 정적 분석(Static Analysis)을 회피하고, 무해한 코드(Harmless Code)로 위장하여 탐지를 어렵게 만든다.
RAT(Remote Access Trojan)의 기능 및 특징
해당 RAT는 원격 명령 실행(Remote Command Execution), 파일 접근, 시스템 정보 수집 등 다양한 기능을 수행한다. 특히, 이중 XOR 암호화(Dual-layer XOR Encryption)를 사용하여 C2 통신을 보호하고, 5초 간격의 비콘(Beacon)을 통해 지속적인 통신을 유지한다. 또한, `start_new_session=True` 설정을 통해 프로세스가 종료되어도 RAT가 지속적으로 실행되도록 설계되었다. 이러한 특징들은 지속적인 위협(Persistent Threat)을 가능하게 한다.
C2 인프라 분석 및 연관성
C2 서버로 사용된 `updatenet[.]work`는 악성 활동으로 악명이 높은 호스팅 제공업체(Hosting Provider)인 Cloudzy를 사용한다. 이는 과거 캠페인과 유사한 방식으로, 공격자가 C2 인프라(C2 Infrastructure)를 구축하고 관리하는 데 능숙함을 보여준다. 또한, 과거 HelixGuard 보고서에서 동일한 공격자의 유사한 공격(Similar Attack)이 보고된 바 있으며, 이는 공격자가 지속적으로 동일한 전술을 사용하고 있음을 시사한다.
대응 방안 및 예방 전략
이번 사건은 PyPI 패키지(PyPI Package)의 보안 취약성을 보여주는 사례로, 개발자들은 패키지 출처(Package Source)를 신중하게 확인하고, 의심스러운 코드(Suspicious Code)를 검토해야 한다. 또한, 정적 분석 도구(Static Analysis Tools)를 활용하여 잠재적인 위협을 탐지하고, 최신 보안 패치(Latest Security Patch)를 적용하여 시스템을 보호해야 한다. 특히, 서드파티 라이브러리(Third-party Library) 사용 시 보안 위험을 인지하고, 안전한 개발 환경을 구축하는 것이 중요하다.