월 100만 다운로드 오픈소스 패키지, 사용자 자격 증명 탈취
머신러닝 시스템 모니터링에 쓰이는 오픈소스 CLI 도구(elementary-data)의 GitHub Actions 취약점을 통해 해커가 서명 키를 탈취해 악성 버전(0.23.3)을 배포했습니다. 해당 버전을 설치한 환경의 클라우드 키, SSH 키, API 토큰 등 모든 자격 증명이 유출되었을 가능성이 큽니다. 개발자들은 즉시 패키지 삭제 및 안전한 버전(0.23.4) 설치, 그리고 모든 민감 정보 및 키(key) 로테이션을 권고하고 있습니다.
텍스트 설정 스토리 텍스트 크기 작게 표준 크게 너비 * 표준 넓게 링크 표준 주황색 * 구독자 전용 자세히 알아보기 탐색창으로 최소화
월간 100만 회 이상 다운로드되는 오픈소스 소프트웨어가 위협 행위자에 의해 해킹을 당했습니다. 이 해커는 개발자 계정의 워크플로우(workflow)에 있는 취약점을 악용하여 서명 키(signing keys) 및 기타 민감한 정보에 접근했습니다.
금요일, 신원을 알 수 없는 공격자들은 이 취약점을 악용하여 머신러닝 시스템의 성능 및 이상 징후를 모니터링하는 데 도움을 주는 커맨드라인 인터페이스(CLI)인 element-data의 새로운 버전을 배포했습니다. 개발자들에 따르면, 이 악성 패키지가 실행되면 시스템에서 사용자 프로필, 데이터 웨어하우스 자격 증명, 클라우드 제공업체 키, API 토큰 및 SSH 키와 같은 민감한 데이터를 샅샅이 훑어 수집했습니다.
이 악성 버전은 0.23.3으로 태그가 지정되었으며 개발자의 Python Package Index 및 Docker 이미지 계정에 게시되었습니다. 약 12시간 후인 토요일에 삭제되었습니다. Elementary Cloud, Elementary dbt 패키지 및 다른 모든 CLI 버전은 영향을 받지 않았습니다.
침해 발생 가정
개발자들은 “0.23.3 버전을 설치했거나 영향을 받은 Docker 이미지를 내려받아 실행한 사용자는 해당 코드가 실행된 환경에 접근할 수 있는 모든 자격 증명이 노출되었을 가능성이 있다고 가정해야 한다”고 경고했습니다.
위협 행위자는 개발자가 만든 GitHub Actions의 취약점을 악용하여 계정에 접근했습니다. 공격자들은 풀 리퀘스트(pull request)에 악성 코드를 게시하여 개발자 계정 내부에서 실행되는 배시 스크립트(bash script)를 실행할 수 있었습니다. 그리고 이 배시 스크립트를 통해 민감한 데이터를 가로챘습니다.
계정 토큰과 서명 키를 손에 넣은 공격자는 정상 패키지와 거의 구분할 수 없는 악성 element-data 패키지를 게시했습니다. 개발자들은 제3자의 버그 제보를 통해 이 침해 사실을 인지했습니다. 제보 후 3시간 이내에 해당 패키지는 삭제되었습니다.
Elementary 개발자들은 악성 코드가 접근할 수 있었던 모든 자격 증명을 교체(key rotation)했다고 밝혔습니다. 또한 해당 취약점을 수정했을 뿐만 아니라, 동일한 결함이 포함되어 있지 않은지 확인하기 위해 다른 모든 GitHub Actions를 감사(audit)했습니다.
개발자들은 0.23.3 버전을 설치한 모든 사용자에게 다음 단계를 즉시 수행할 것을 촉구하고 있습니다.
설치된 버전을 확인하세요:
pip show elementary-data | grep Version버전이 0.23.3인 경우 제거하고 안전한 버전으로 교체하세요:
pip uninstall elementary-datapip install elementary-data==0.23.4(requirements 및 lockfiles에서 명시적으로 elementary-data==0.23.4로 지정하세요.)악성 코드의 흔적을 방지하기 위해 캐시 파일을 삭제하세요.
CLI가 실행되었을 수 있는 모든 머신에서 멀웨어의 마커 파일을 확인하세요. 이 파일이 존재한다면 해당 머신에서 악성 페이로드가 실행된 것입니다: macOS / Linux:
/tmp/.trinny-security-updateWindows:%TEMP%\.trinny-security-update0.23.3 버전이 실행되었던 환경에서 접근할 수 있었던 모든 자격 증명(dbt 프로필, 데이터 웨어하우스 자격 증명, 클라우드 제공업체 키, API 토큰, SSH 키 및 모든 .env 파일 내용)을 교체(key rotation)하세요. CI/CD 러너(runner)는 일반적으로 런타임에 광범위한 비밀 키 세트를 마운트하므로 특히 노출 위험이 큽니다.
보안 팀에 연락하여 노출된 자격 증명의 무단 사용을 조사하세요. 관련 IOC(침해 지표)는 이 글의 하단에 있습니다.
지난 10년 동안 오픈소스 저장소에 대한 공급망 공급망 공격은 점점 더 흔해지고 있습니다. 경우에 따라 악성 패키지로 인해 사용자의 시스템이 침해되고, 이로 인해 사용자 환경에 연쇄적인 침해가 발생하는 등 대규모 연쇄 침해가 달성되기도 했습니다.
40년 이상의 경험을 가진 해커이자 runZero의 설립자 겸 CEO인 HD Moore는 GitHub Actions와 같은 사용자 제작 리포지토리 워크플로우가 취약점을 품고 있는 것으로 악명이 높다고 말했습니다.
그는 “이것은 퍼블릭 리포지토리를 사용하는 오픈소스 프로젝트에게 있어서 매우 큰 문제”라며, “공격자의 풀 리퀘스트에 의해 악용될 수 있는 위험한 워크플로우를 실수로 만들지 않는 것은 정말 어렵다”고 덧붙였습니다. 그는 이 패키지가 이러한 취약점을 확인하는 데 사용될 수 있다고 밝혔습니다.
댄 구딘 (Dan Goodin) 수석 보안 에디터