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