파이썬 개발자를 표적으로 삼아 수천 건의 다운로드를 기록한 PyPI 악성 패키지
지난 6개월 동안, 신원이 확인되지 않은 위협 행위자가 Python 소프트웨어 저장소인 PyPI(Python 패키지 인덱스)에 악성 패키지를 몰래 숨겨 넣었습니다. 목표는 무엇일까요? 시스템에 몰래 침입해 민감한 데이터를 훔치고 힘들게 번 암호화폐까지 탈취할 수 있는 멀웨어를 퍼뜨리는 것입니다.
Checkmars의 최근 보고서에 따르면, 정품 Python 라이브러리로 위장한 27개의 패키지가 수천 번 다운로드되었습니다. 다운로드의 대부분은 미국(41.58%), 독일, 일본, 영국, 프랑스, 중국(12.22%), 홍콩, 러시아, 아일랜드, 싱가포르에서 발생했습니다.
PyPI 악성 패키지: 공격 세부 정보
이 공격이 눈에 띄는 이유는 스테가노그래피를 사용한다는 점입니다. 스테가노그래피는 탐지를 피하기 위해 다른 일반 파일 내에 정보를 숨기는 기법입니다. 이 경우 공격자는 무해해 보이는 이미지 파일에 악성 페이로드를 교묘하게 숨겨 공격을 탐지하기 어렵게 만들었습니다. 소프트웨어 공급망 보안 회사는 이 수법이 공격의 은밀성을 크게 증가시켰다고 지적했습니다.
오해의 소지가 있는 패키지에는 pyioler, pystallerer, pystob, pyowler 및 pyhuluh가 있습니다. 이에 대응하는 합법적인 파이썬 패키지는 각각 pyinstaller, pysolr, pyston, prowler 및 pyhull입니다. 이 공격의 목표는 개발자가 의도치 않게 이러한 유해한 패키지를 다운로드할 가능성을 만드는 것이었습니다. 악성 패키지의 다운로드 건수는 4천 건이 넘었습니다.
이 패키지에 사용되는 트릭은 setup.py 스크립트이며, 여기에는 pystob 및 pywool과 같은 다른 악성 패키지에 대한 참조가 포함되어 있습니다. 이 스크립트는 비주얼 베이직 스크립트(VBScript)를 사용하여 "Runtime.exe"라는 파일을 다운로드하고 실행하여 피해자의 시스템에 영구적으로 존재하게 합니다.
바이너리 파일 안에는 웹 브라우저, 암호화폐 지갑, 다양한 애플리케이션에서 정보를 추출할 수 있는 컴파일된 프로그램이 숨겨져 있습니다.
또한 체크마크는 공격자가 실행 코드를 PNG 이미지("uwu.png") 내에 숨긴 다른 공격 체인에 주목했습니다. 이 이미지가 디코딩되고 실행되어 영향을 받은 시스템의 공용 IP 주소와 UUID(범용 고유 식별자)를 추출합니다.
Pystob과 Pywool과 같은 패키지는 API 관리를 위한 도구로 위장했지만, 실제 목적은 Discord 웹훅으로 데이터를 유출하는 것이었습니다. 또한, 윈도우 시작 폴더에 VBS 파일을 배치하여 지속성을 유지하려고 시도했습니다.
결론
위협으로 가득 찬 디지털 환경에서 개발자와 사용자는 경계를 늦추지 않고 PyPI 악성 패키지를 식별하는 것이 중요합니다. 위험성이 증가함에 따라 미국 정부는 이번 달에 새로운 지침을 발표하여 개발자와 공급업체가 소프트웨어 보안에 대한 우선순위를 정하고 인식을 제고할 것을 촉구했습니다. 사이버보안 및 인프라 보안국(CISA), 국가안보국(NSA), 국가정보국장실(ODNI)은 이러한 악성 소프트웨어 공급망 사고의 희생양이 되지 않도록 구매 결정 시 공급망 위험 평가를 수행할 것을 권장합니다.
이 글의 출처는 Checkmarx와 TheHackerNews의 기사입니다.