파이썬 데이터 분석 도구가 하루 중 반만 동작하면서 악성 코드로 변해버렸습니다. 그것은 키와 토큰을 훔쳤습니다
사이버 범죄자는 PyPI에 악성 버전의 elementary-data 패키지를 업로드했습니다
익명의 해커는 데이터 모니터링 도구인 *elementary-data* 0.23.3 버전을 수정한 악성 버전을 PyPI 저장소에 업로드했습니다. 이 악성 패키지는 SSH 키, AWS 자격 증명, API 토큰 및 비트코인, 라이트코인, 도지코인, 이더리움 등 암호화폐 지갑 파일과 같은 기밀 정보를 수집하고 원격 서버로 전송했습니다. 수집된 데이터는 `trin.tar.gz` 아카이브에 압축되어 공격자에게 전달되었습니다.
저장소 접근 방법
공격자는 *elementary-data* 프로젝트의 GitHub Actions 워크플로 중 하나에서 취약점을 이용했습니다. 자동으로 부여받은 `GITHUB_TOKEN`을 사용해 풀 리퀘스트를 만들었고, 그 안에서 원본 패키지를 악성 버전으로 교체했습니다. 자동화된 워크플로 덕분에 PR이 승인되고 감염된 릴리스가 게시되었습니다.
악성 패키지 존재 기간
- 4월 25일, 02:20 (MSK) – 해커가 PyPI에 악성 버전을 업로드했습니다.
- 02:24 – 그는 또한 GitHub Container Registry에 감염된 Docker 이미지를 배포해 공격 범위를 확장했습니다.
- 같은 날 13:45 – 프로젝트 관리자는 모든 손상된 파일을 삭제하고 깨끗한 0.23.4 버전을 출시했습니다.
이렇게 악성 패키지는 사용자에게 11시간 이상 제공되어 데이터 유출 가능성을 높였습니다.
피해 부문
개발자들은 *Elementary dbt*, Elementary Cloud 리소스 및 다른 프로젝트 버전은 이번 사고에 영향을 받지 않았다고 확인했습니다.
사용자가 취해야 할 조치
1. 감염된 0.23.3 버전을 삭제하고 안전한 0.23.4 릴리스를 설치합니다.
2. 패키지 캐시를 정리합니다 (`pip cache purge` 또는 유사 도구 사용).
3. `.trinny-security-update` 마커 파일이 있으면 삭제합니다. 이 파일은 악성 코드 실행을 나타냅니다.
개발자가 취한 조치
- PyPI 게시 토큰을 업데이트했습니다.
- GitHub 및 GitHub Container Registry 토큰을 재검토하고 갱신했습니다.
- 취약한 GitHub Actions 워크플로를 삭제했고, 나머지 작업 흐름은 보안 검사를 거쳤습니다.
이렇게 *elementary-data* 팀은 저장소에 대한 통제를 복구하고 사용자에게 추가 위협으로부터 보호했습니다
댓글 (0)
의견을 남겨 주세요. 예의를 지키고 주제에서 벗어나지 말아 주세요.
댓글을 남기려면 로그인