Kant's IT/Issue on IT&Security
PyPI Python 라이브러리 "aiocpa"에서 비밀 키 탈취 시도: 텔레그램 봇을 이용한 악성 업데이트
Kant Jo
2024. 12. 2. 16:35
PyPI에서 발견된 악성 라이브러리, 비밀 키 유출시켜
PyPI Python Library "aiocpa" Found Exfiltrating Crypto Keys via Telegram Bot
- 사건 개요
- 악성 라이브러리: aiocpa
- PyPI(Python Package Index)에서 발견된 라이브러리
- 1만 2천 회 이상 다운로드
- 원래는 정상적인 Crypto Pay API 클라이언트로 출시 (2024년 9월)
- 악성 업데이트
- 버전 0.1.13에서 악성 코드 추가
- 설치 후 비밀 키를 텔레그램 봇으로 전송하는 기능 포함
- 현재 상태
- PyPI 관리자가 라이브러리 격리 후 삭제
- 원 개발자가 연루되었는지 또는 계정 탈취로 인해 발생했는지는 불확실
- 악성 라이브러리: aiocpa
- 공격 방식
- 악성 코드 삽입
- sync.py 스크립트에 난독화된 코드 추가
- 코드는 50번 재귀적으로 인코딩 및 압축되어 분석 회피
- 비밀 키 유출
- 피해자의 Crypto Pay API 토큰을 캡처해 텔레그램 봇으로 전송
- 공격 기법
- 초기에는 정상 라이브러리로 사용자 기반 구축
- 이후 업데이트를 통해 악성 기능 삽입
- 악성 코드 삽입
- 공급망 공격의 특징
- 공격자의 전략
- 깃허브와 PyPI 같은 코드 리포지터리에서 클린 소스 유지
- 다운로드되는 패키지에만 악성 코드 삽입
- 공급망 공격
- 개발자가 악성 라이브러리를 사용하면 소프트웨어 전체가 악성화
- 보안 위협이 확장적으로 발생
- 공격자의 전략
- 보안 전문가 분석
- 파일럼(Phylum)
- 공급망 공격은 "정상적인 업데이트를 가장한 악성 코드 삽입" 방식이 일반화되고 있음
- 원 개발자의 의도적 행동과 계정 탈취 모두 가능성 존재
- 리버싱랩스(ReversingLabs)
- 기존 패키지 모방(타이포스쿼팅)이 아닌, 스스로 개발한 도구를 악용
- 공격자가 장기적으로 사용자 기반을 구축 후 악성화 시도
- 파일럼(Phylum)
- 보안 권고
- 패키지 설치 전 검증
- 오픈소스 라이브러리의 소스 코드 확인 필수
- 다운로드 기록과 업데이트 내역 분석
- 패키지 관리 보안 강화
- PyPI와 같은 리포지터리는 패키지 검증 프로세스를 강화해야 함
- 사용자는 최신 보안 업데이트와 도구로 공급망 공격에 대비 필요
- 개발자 계정 보호
- 강력한 인증(2FA)과 계정 관리로 개발자 계정 탈취 방지
- 공급망 보안 의식 제고
- 오픈소스 의존성을 최소화하고, 중요한 프로젝트는 사전 테스트 환경에서 확인 후 배포
- 패키지 설치 전 검증