무슨 일이 있었나
Pluto Security는 7개 계정에 걸친 31개의 악성 Hugging Face 저장소(및 ModelScope 미러)를 통해 배포된 암호화폐 채굴/백도어 캠페인을 추적했으며, 32,000건 이상의 다운로드를 기록했습니다. 페이로드는 문서화된 Transformers 동작을 사용합니다: trust_remote_code=True로 저장소를 로드하면 가중치가 로드되기 전에 호출자의 권한으로 저장소의 Python(config.json의 auto_map으로 지정됨)을 가져옵니다. 페이로드는 워치독(/tmp/.cch/svc.py)을 설치하고, 셸 프로필에 지속성 훅을 추가하며, SSH 백도어와 리버스 셸을 심고, 커널 워커로 위장한 UPX 패킹 채굴기(peakminer)를 memfd_create/fexecve를 통해 실행합니다; 이후 단계 중 하나는 GPUStack의 /var/lib/gpustack을 대상으로 한 컨테이너-호스트 탈출입니다. 캠페인은 철거 후 며칠 내에 재부활했으며, 하드코딩된 SSH 키 대신 리버스 셸을 사용합니다.
왜 중요한가
모델 레지스트리가 멀웨어 채널이 되고 있습니다: 감염은 추론 전에 발생하고 호출자의 권한으로 실행되며, HF의 안티바이러스 및 가중치 형식 스캐너가 분석하지 않는 auto_map Python에 실행을 숨깁니다. 자체 호스팅 추론(Xinference, GPUStack), 임대 GPU, 노트북 및 CI 작업을 표적으로 삼고, 채굴기보다 오래 지속되는 영구 백도어/SSH 액세스를 남깁니다.
공격 경로
오염된 저장소를 로드하면(from_pretrained with trust_remote_code=True) 모델 프로세스에서 저장소의 Python이 실행되어 채굴기, 리버스 셸 및 SSH 백도어가 설치됩니다.
영향받는 시스템
Hugging Face 모델 저장소 및 Transformers의 auto_map/trust_remote_code 모듈 로딩; 자체 호스팅 Xinference/GPUStack 배포.
완화 방안
로드하기 전에 auto_map이 참조하는 .py 파일을 검토하십시오; 신뢰할 수 없는 저장소에 대해 trust_remote_code=True를 피하십시오; 신뢰된 모델 ID와 해시를 고정하십시오; /tmp/.cch 및 .bashrc 훅을 스캔하십시오; Xinference/GPUStack 모델 레지스트리에서 이상 상태 항목을 확인하십시오; GPU 워크로드를 격리하십시오.