김과장
AI 뉴스 목록
2026-03-28공급망 보안PyPI보안 취약점개발 도구Python

Telnyx PyPI 악성 패키지: 오디오 파일에 숨긴 해킹 코드, 74만 건 위협

TeamPCP 조직이 월 74만 건 다운로드되는 Telnyx Python 패키지에 WAV 오디오 파일로 위장한 악성 코드를 심었습니다. import 한 줄만으로 자격증명이 탈취되며, 안전 버전은 4.87.0입니다.


핵심 요약: TeamPCP 해킹 조직이 Telnyx Python 패키지(월 74만 2천 건 다운로드)에 악성 코드를 심었습니다. WAV 오디오 파일 속에 악성 코드를 숨기는 스테가노그래피(steganography) 수법으로 보안 필터를 우회했으며, 패키지를 불러오는 것만으로 즉시 실행됩니다. 안전 버전은 4.87.0이며, 4.87.1·4.87.2 버전 사용자는 지금 바로 조치가 필요합니다.

사건 개요: 오픈소스 패키지를 노리는 공급망 공격

2026년 3월 27일 오전 3시 51분(UTC 기준, 한국 시간 오후 12시 51분), PyPI(파이피아이, Python 패키지를 무료로 배포하는 공식 저장소)에 Telnyx(텔닉스, 클라우드 기반 통신 서비스 회사) Python SDK(소프트웨어 개발 도구 모음)의 악성 버전 2개가 몰래 업로드되었습니다. 버전 번호는 4.87.1과 4.87.2였습니다.

이번 공격을 저지른 조직은 TeamPCP로, 이미 LiteLLM(라이트LLM, AI 모델을 쉽게 연결해 주는 오픈소스 도구)을 공격한 전력이 있습니다. Telnyx는 해당 조직의 세 번째 표적이 되었습니다. 월 다운로드 수가 742,000건에 달하는 인기 패키지인 만큼 피해 잠재 규모가 컸습니다.

업로드 후 약 6시간 22분이 지난 오전 10시 13분(UTC 기준)에야 악성 버전이 PyPI에서 격리되었습니다. 6시간 22분이라는 시간 동안 해당 버전을 자동 업데이트하거나 새로 설치한 개발자는 모두 잠재적 피해자가 될 수 있었습니다. 실제로 이 패키지는 많은 기업의 CI/CD(자동화 빌드·배포) 파이프라인에서 자동으로 최신 버전을 받아가도록 설정되어 있는 경우가 많아, 인적 확인 없이 감염이 이루어졌을 가능성이 높습니다.

공급망 공격(supply chain attack)이란 소프트웨어가 개발자에게 전달되는 경로 중간에 악성 코드를 심는 방식입니다. 직접 시스템을 해킹하는 것보다 탐지가 어렵고, 한 번에 수십만 명의 개발자에게 악성 코드를 배포할 수 있어 파급력이 매우 큽니다. 이번 Telnyx 사건은 그 위험성을 다시 한번 실증적으로 보여주었습니다.

스테가노그래피: 오디오 파일 속에 악성 코드를 숨기다

이번 공격에서 가장 주목할 점은 스테가노그래피(steganography, 데이터를 이미지·오디오 등 다른 파일 속에 눈에 띄지 않게 숨기는 기술)를 사용했다는 것입니다. 일반적인 보안 스캐너(악성 코드를 자동으로 탐지하는 프로그램)는 Python 코드 파일이나 설정 파일을 주로 검사합니다. 그러나 WAV(웨이브, 오디오 파일 형식) 파일 속에 숨겨진 악성 코드는 이러한 스캐너의 탐지망을 피할 수 있습니다.

공격 방식은 운영체제에 따라 두 가지로 나뉩니다.

Windows 환경 — hangup.wav 활용:
hangup.wav 파일 속에 악성 코드가 숨겨져 있으며, 이 코드는 msbuild.exe(마이크로소프트 빌드 도구)로 위장하여 Windows 시작 폴더(startup folder)에 자동 설치됩니다. 컴퓨터를 재부팅할 때마다 자동으로 실행되어 지속적으로 악성 행위를 반복합니다.

Linux/macOS 환경 — ringtone.wav 활용:
ringtone.wav 파일 속 숨겨진 코드가 Python 스크립트를 실행시키고, 시스템에 저장된 자격증명(아이디·비밀번호 등 접근 권한 정보)을 수집합니다. 수집된 정보는 tpcp.tar.gz라는 암호화된 압축 파일로 만들어져 공격자의 외부 서버로 전송됩니다.

더 위험한 점은 import telnyx(임포트 텔닉스, Python에서 패키지를 불러오는 명령어) 한 줄을 실행하는 순간, 별도의 추가 동작 없이 악성 코드가 즉시 자동 실행된다는 것입니다. 개발자가 의도적으로 악성 기능을 호출하지 않아도, 패키지를 불러오는 것만으로 피해가 발생합니다. 이는 패키지 초기화 코드(__init__.py)에 악성 로직이 포함되어 있기 때문입니다.

오디오 파일을 이용한 스테가노그래피 공격은 2024년 이후 점점 증가하는 추세입니다. 보안 연구자들은 이미지 파일뿐 아니라 오디오, 비디오 파일에 악성 코드를 숨기는 기법이 정교해지고 있다고 경고합니다. 전통적인 정적 분석(static analysis, 코드를 실행하지 않고 분석하는 방법)만으로는 이러한 공격을 막기 어렵습니다.

탈취 대상 정보와 즉시 취해야 할 조치

악성 코드가 노리는 정보는 다음과 같습니다.

  • .env 파일 (닷이엔브이, 서비스 접속 키 등 민감한 설정값을 저장하는 파일): API 키, 데이터베이스 비밀번호 등이 포함되는 경우가 많습니다.
  • 환경 변수 (시스템 내에 설정된 각종 접속 정보): 운영 서버에서 실행 중인 프로세스가 참조하는 모든 설정값이 대상입니다.
  • 셸 히스토리 (터미널에서 입력한 명령어 기록): 과거에 입력한 비밀번호, 접속 정보가 포함될 수 있습니다.
  • CI/CD 시크릿 (자동 배포 파이프라인에 사용되는 비밀 키): GitHub Actions, GitLab CI 등의 자동화 도구에 설정된 접속 정보입니다.
  • 클라우드 토큰 (AWS, GCP, Azure 등 클라우드 서비스 접속 인증 정보): 이 토큰이 유출되면 클라우드 인프라 전체가 위험에 노출됩니다.

Telnyx 플랫폼 자체와 API(에이피아이, 서비스 간 통신 인터페이스) 서버는 침해되지 않았습니다. 피해는 PyPI 배포 채널에만 국한됩니다. 즉, Telnyx 서비스를 사용하는 최종 고객의 통화·문자 데이터는 영향을 받지 않았습니다.

4.87.1 또는 4.87.2 버전을 사용 중이라면 즉시 아래 절차를 따르시기 바랍니다.

# 1단계: 현재 설치된 telnyx 버전 확인
pip show telnyx

# 2단계: 악성 버전 제거
pip uninstall telnyx -y

# 3단계: 안전 버전으로 재설치
pip install telnyx==4.87.0

# 4단계: 설치 확인
pip show telnyx

# 5단계 (선택): pip-audit로 다른 취약 패키지도 점검
pip install pip-audit
pip-audit

버전을 낮춘 후에는 .env 파일, 클라우드 자격증명(접속 인증 정보), CI/CD 시크릿(자동 배포에 사용되는 비밀 키) 등 민감 정보를 모두 새로 발급하는 것을 강력히 권장합니다. 악성 버전이 설치된 환경에서 해당 정보가 이미 유출되었을 가능성이 있기 때문입니다.

이번 사건은 오픈소스 공급망 보안의 취약성을 다시 한번 상기시켜 줍니다. 패키지 설치 전 버전과 출처를 확인하는 습관, 그리고 패키지 무결성 검증 도구(예: pip-audit, Sigstore) 활용이 점점 더 중요해지고 있습니다. 기업 환경에서는 내부 패키지 레지스트리(내부 저장소)를 운영하거나, 외부 패키지 업데이트를 자동이 아닌 수동 검토 후 적용하는 정책도 고려할 필요가 있습니다.

관련 콘텐츠Easy클코로 AI 시작하기 | 무료 학습 가이드 | AI 뉴스 더보기

AI 소식, 가장 빠르고 쉽게 받아보세요

누구나 이해할 수 있도록, 가장 자세하고 쉽게 알려드립니다

텔레그램 채널 구독