구글에서 선호하는 출처로 추가

허깅페이스 악성 저장소 31개서 펄(PRL) 채굴기 유포

허깅페이스 계정 7개에서 악성 저장소 31개가 추적됐으며, 연결 저장소까지 포함한 다운로드는 3만2376회로 집계됐다. 다운로드 횟수는 감염 기기 수를 뜻하지 않는다.

토포AI로 이 기사 더 깊이 읽기

모델 저장소 코드를 살피는 노트북 화면 / TokenPost.ai (macro)

허깅페이스(Hugging Face) 모델 저장소 31개가 악용돼 펄(PRL) 채굴기와 일부 백도어가 유포됐다. 공격자는 모델 가중치가 아니라 저장소에 포함된 파이썬 코드를 실행하는 경로를 이용했다.

보안업체 Pluto Security는 29일 공개한 ‘Load/Mine’ 보고서에서 9월부터 허깅페이스 계정 7개에 올라온 악성 저장소 31개를 추적했다고 밝혔다. 1차 저장소 12개가 제거된 뒤 새 계정에서 2차 저장소 19개가 다시 나타났다. 관련 모델 일부는 모델스코프(ModelScope)에도 올라왔다.

Pluto Security는 10월 28일 기준 2차 저장소 19개의 다운로드를 2만9090회로 집계했다. 삭제 전 기록한 1차 저장소 12개의 728회를 합치면 31개 저장소에서 2만9818회다. 연결된 저장소 13개의 다운로드 2558회를 더하면 총 44개 저장소에서 3만2376회다.

가장 많이 내려받힌 저장소는 ‘MENXIANGYU/qwen2-tiny’로, 10월 28일 기준 다운로드가 2만8412회였다. 이 수치는 다운로드 횟수로, 감염 장비나 피해자 수를 나타내지 않는다.

대표 저장소의 config.json은 auto_map을 통해 modeling_evil2.py를 불러오도록 설정돼 있었다. 모델을 불러올 때 사용자가 trust_remote_code=True를 설정하면 저장소의 파이썬 코드가 실행되는 구조다.

Pluto Security는 해당 코드가 모델 가중치를 불러오기 전에 실행될 수 있다고 분석했다. 저장소의 model.safetensors 파일은 42바이트로, 실제 모델 텐서를 담지 않았다.

실행된 코드는 peakminer 채굴기를 설치하고, 채굴기 작동이 멈추면 다시 시작하는 감시 프로그램을 남겼다. 공격 경로의 핵심은 악성 가중치가 아니라 원격 코드 실행을 허용한 모델 로딩 설정이었다.

일부 변형에서는 외부에서 명령을 실행할 수 있는 리버스 셸이 발견됐다. 후속 저장소 하나에는 권한을 가진 컨테이너에서 호스트로 탈출하려는 코드도 포함됐다.

Pluto Security가 추적한 첫 번째 채굴 지갑은 716건의 거래를 통해 펄 약 2276개를 받았고, 약 2241개를 다른 곳으로 보냈다. 이 기록은 지갑의 유입·유출 수치이며 피해액이나 공격자의 순이익을 뜻하지 않는다.

연구진은 채굴 풀에서 워커 9개가 90초 안에 합류한 뒤 약 6분 만에 연산 결과 제출을 멈춘 기록도 제시했다. 워커 수는 감염된 기기 수와 같지 않다.

Pluto Security는 이번 사례를 허깅페이스 플랫폼 자체의 침해나 알려진 취약점 악용으로 설명하지 않았다. 이용자가 원격 코드를 실행하도록 허용한 기능을 악성 저장소가 이용했다는 분석이다.

허깅페이스는 2GB 미만 저장소 파일을 커밋마다 악성코드 검사기에 보낸다고 안내한다. Pluto Security는 분석한 대표 악성 파이썬 파일이 검사에서 안전 판정을 받았다고 보고했다.

허깅페이스는 사용자 지정 모델 코드를 불러올 때 악성 코드 실행에 주의하고, 검토한 특정 리비전으로 고정해 사용하라고 권고한다. 이는 모델을 실행하기 전에 저장소의 코드를 살펴보고 사용할 버전을 지정하라는 내용이다.

본지는 앞서 펄의 채굴자가 AI 연산을 제공하고 토큰을 받는 구조를 보도했다. 이번 보고서가 다룬 것은 악성 저장소를 통한 채굴기 배포와 특정 지갑의 토큰 이동이다. 보고서에는 펄 가격이나 거래량에 미친 영향이 제시되지 않았다.

오늘의 스탬프 0명이 오늘 찍었어요
오늘의 스탬프 0명이 오늘 찍었어요

0

    불러오는 중…

    토큰포스트 앱 다운로드 QR 코드 QR 코드 스캔하고
    ios, Android 앱
    다운로드 하기