본문 바로가기

POST/Insight

파이선 리포지토리 PyPI 악성패키지 유포

Designed by Sophia

 

최근 Sonatype의 보안시스템에서 Python Public Repository인 PyPI에서 “pytoileur”이라는 악성패키지를 탐지하였습니다. 해당 패키지는 악성코드를 은닉하여 윈도우 사용자의 정보를 탈취하는 기능을 가지고 있습니다.

 

 

Sonatype 보안팀에 의하여 sonatype-2024-1783으로 트래킹되고 있는 이 패키지는 약 260여 회 이상 다운로드 된 것으로 조사되었고, PyPI 관리자에게 패키지 삭제를 요청하였습니다. 패키지 버전 1.0.1과 1.0.2에 대한 분석이 이뤄졌고, 두 버전의 기능은 동일합니다.

 

pytoileur는 동일 패키지를 Stack Overflow 를 비롯한 온라인 커뮤니티로도 유포하고 있기 때문에 각별한 주의가 필요합니다.

 

참고로 악성코드를 은닉한 방식은 “setup.py” 파일에 외부로부터 Malware를 다운로드 받도록 유도하는 코드를 심었는데 (아래 Line 17) 공백을 길게 주어 스크롤바를 의식하지 않으면 알아차리기 어렵도록 되어 있습니다.

 

 

 

코드는 base64 엔코딩을 실행시키는데, base64 엔코딩은 애플리케이션에서 꽤 표준처럼 사용되며, 악성코드를 가장하는 측면에서 큰 역할을 하지는 않습니다. 즉, 활용하는 측면에 ‘의심스러운’ 것은 아니지만 작성자는 특정 문자열을 의도적으로 숨기려고 했습니다. print 문 뒤에 숨긴 다음 긴 공백을 두는 방식입니다. 사용자가 주의 깊게 살펴보지 않을 경우, 쉽게 놓칠 수 있습니다.

 

base64 코드는 Windows 사용자를 대상으로 pythone 커맨드를 통해 외부 서버 hxxp://51.77.140[.]144:8086/dl/runtime 를 통해 실행가능한 악성코드를 호출합니다. 호출된 바이너리, Runtime.exe 는 Windows PowerShell과 VBScript 커맨드를 통해 시스템에서 작동됩니다.

 

 

Sonatype의 Repository Firewall 을 사용하는 경우, 사용자가 요청했더라도 자동으로 격리되어 영향을 받지 않았습니다. 또한 유사한 케이스에 대해서도 빌드 파이프라인으로 이런 악성 패키지가 유입되는 것을 차단할 수 있습니다. Repository Firewall 이나 Pytoileur에 대한 추가 문의가 있다면 Sonatype 총판 OSC Korea 에 문의 바랍니다.

 

 

원문출처: PyPI crypto-stealer targets Windows users, revives malware campaign