Hugging Face 모델 파일에서 숨겨진 코드를 실행할 수 있습니다
악성 모델 패키지는 안전하지 않은 로딩 중에 코드를 실행할 수 있습니다.
악성 모델 패키지는 안전하지 않은 로딩 중에 코드를 실행할 수 있습니다. 피클 리버스 쉘, 손상된 파일 스캐너 동작 및 연구에서 시연된 모델 이름 혼동에 대한 세 가지 문서화된 예시는 자격 증명 도용 주장에 대한 명확한 한계를 설명합니다.
이 동영상에서 다루는 내용
- 수치 모델 가중치, 실행 가능한 직렬화 및 사용자 지정 저장소 코드는 서로 다른 것입니다.
- JFrog와 ReversingLabs는 리버스 쉘 페이로드를 문서화했습니다. 그들의 선택된 보고서는 명명된 피해자로부터의 자격 증명 도용을 확립하지 못했습니다.
- Checkmarx 모델 혼동은 일치하는 원격 모델과 안전하지 않은 로딩을 요구하는 연구 시연이었습니다.
- safetensors 및 패치된 로더를 선호하고, 사용자 지정 코드를 검토하고 고정하며, 낯선 패키지를 개인 비밀 및 불필요한 네트워크 액세스로부터 격리하십시오.
번역된 스크립트
원래 영어 내레이션에서 번역되었습니다. 사용 가능한 오디오 및 캡션은 YouTube에서 제어합니다.
모델 다운로드가 어떻게 손님을 초대할 수 있을까요?
0:00 모델 파일은 디스크에 있는 숫자일 뿐입니다. 악성 Hugging Face 패키지 하나를 로딩하는 것이 원격 쉘을 열었습니다. 이는 로컬 AI에 대한 야심찬 해석입니다. 로딩이 어떻게 실행이 됩니까? 어떤 비밀에 접근할 수 있습니까? 실제로 무엇이 그것을 막습니까? 그리고 하나의 퍼즐을 염두에 두십시오. 모델은 위험한 부분이 이미 발생한 후에 로딩에 실패할 수 있습니다.
0:18 이것은 The Daily Diff, 내부의 이야기입니다. Hugging Face는 기계 학습 모델을 공유하기 위한 플랫폼입니다. 데이터 세트 및 애플리케이션입니다. 모델 가중치는 학습된 숫자입니다. 저장소에는 구성 및 Python 코드도 포함될 수 있습니다. 여기서의 위험은 실행 가능한 패키징이 로드할 때 컴퓨터로 넘어오는 것입니다. Pickle은 Python 객체를 재구축 지침과 함께 저장합니다.
로더는 소포의 지시를 어떻게 실행합니까?
0:37 안전하지 않은 로더는 이러한 지침을 따르고 압축 해제 중에 함수를 호출할 수 있습니다. 바이트를 다운로드하면 소포가 디스크에 놓입니다. 역직렬화는 그것을 엽니다. 어딘가에서 파일 형식이 무급 시스템 관리자로 승격되었습니다. JFrog는 2024년 2월에 Goober Two를 보고했습니다. 그것의 Pickle 페이로드는 원격 명령 액세스를 제공하기 위해 외부로 연결되는 리버스 쉘을 열었습니다. 저장소는 삭제되었습니다. JFrog는 또한 연구원의 개입을 시사하는 단서를 발견했습니다.
1:02 따라서 귀속은 불확실합니다. 원치 않는 손님은 문서화되었습니다. 실제 피해자로부터의 자격 증명 도용은 확립되지 않았습니다.
프로세스의 접근 범위 안에 어떤 비밀이 있습니까?
1:09 사용자로 실행되는 코드는 해당 프로세스가 읽을 수 있는 모든 것을 읽을 수 있습니다. 마운트된 클라우드 키 또는 접근 가능한 토큰은 가능한 표적이 됩니다. 또한 외부로 보내려면 작동하는 네트워크 경로가 필요합니다. 수치 가중치만으로는 마법 같은 자격 증명 권한이 없습니다. 귀하의 권한이 모델 카드에서 흥미로운 부분을 제공합니다. 또 다른 문이 있습니다. 일부 모델은 저장소에서 Python을 승인하는 원격 코드를 신뢰하도록 요청합니다. 안전한 텐서 파일은 해당 코드 옆에 있을 수 있습니다.
1:32 가중치 형식을 확인하는 것은 한 입구를 덮는 반면, 저장소의 코드는 여전히 방문자 배지를 건네주기를 기다리고 있습니다.
누락된 로컬 경로가 왜 원격 모델이 될 수 있습니까?
1:38 Checkmarx는 모델 혼동을 시연했습니다. 누락된 로컬 모델 경로는 일치하는 이름의 공개 저장소로 해결될 수 있습니다. 원격 코드를 활성화하면 잘못된 패키지가 실행될 수 있습니다. 이는 익명의 회사의 샘플과 관련된 연구 시연이었으며, 하루 이내에 수정되었습니다. 이것은 익명의 회사의 샘플과 관련된 연구 시연이었으며, 하루 이내에 수정되었습니다. 하루 이내에 수정되었습니다. 누락된 폴더가 집주인을 얻었습니다. ReversingLabs는 2025년 2월에 두 개의 샘플을 보고했습니다.
손상된 패키지는 어떻게 이전 스캐너를 피했습니까?
1:58 이 기술을 nullify AI라고 불렀습니다. 둘 다 리버스 쉘을 포함했습니다. 그들의 7z 패키징은 일반적인 PyTorch 로딩을 차단했습니다. 따라서 이 경로는 추출 및 안전하지 않은 역직렬화를 요구했습니다. 손상된 Pickle 스트림은 또한 스캐너의 사각지대를 노출했습니다. 누구든지 소포를 열기 전에 실패한 스캔은 조사가 필요합니다. 연구원들의 무해한 테스트에서 지침은 로더가 손상된 부분에 도달하여 오류를 발생시키기 전에 파일을 작성했습니다. 로더가 도달하기 전에 파일을 작성했습니다.
2:18 손상된 부분에 도달하여 오류를 발생시켰습니다. 소포를 열어 너구리를 풀어준 다음 배송 라벨이 유효하지 않다는 것을 알아차리는 것을 상상해 보십시오. 배송 라벨이 유효하지 않다는 것을 알아차리는 것을 상상해 보십시오. 오류 메시지는 훌륭한 문법과 끔찍한 타이밍으로 도착합니다. Hugging Face는 24시간 이내에 보고된 샘플을 제거하고 스캐너를 변경했습니다. 그 특정 발견이 수정으로 이어졌습니다. 보안 스캔은 유용한 증거이며, 모든 스캐너 오류를 깨끗한 건강 증명서로 취급하는 것은 실패에 대한 놀랍도록 관대한 해석으로 남아 있습니다. 건강 증명서로 취급하는 것은 실패에 대한 놀랍도록 관대한 해석으로 남아 있습니다.
2:43 안전한 텐서와 현재 패치된 로더를 선호하십시오.
손님의 접근 범위 밖으로 키를 유지하는 것은 무엇입니까?
2:46 PyTorch는 버전 2.6부터 기본 로더를 좁혔습니다. 사용자 지정 코드를 검토하고 검토된 개정판을 고정하십시오. 개인 키 없이 낯선 패키지를 격리된 상태에서 실행하십시오. 제한된 네트워크 액세스를 통해 실행하십시오. 마운트된 자격 증명으로 가득 찬 컨테이너는 네임스페이스가 있는 선물 바구니입니다. 그 열린 퍼즐에는 답이 있습니다. 로딩 실패는 실행이 중지된 위치를 알려줍니다. 이전 지침은 이미 실행되었을 수 있습니다.
3:08 소포를 열기 전에 비밀을 손이 닿지 않는 곳에 보관하십시오. 결론, 내부의 이야기입니다.
왜 이것을 NEEDS REVIEW로 표시해야 합니까?
3:16 로더. 무료 다운로드에는 모델이 포함되어야 하며, 방문자 목록은 제 결정에 달려 있어야 합니다. 제 결정에 달려 있어야 합니다. 제가 말하는 것을 듣는 것보다 이것을 읽는 것을 선호하신다면, 매일 아침 귀하의 받은 편지함에 무료로 도착하며, 아래 링크에서 daily diff dot dev에서 확인할 수 있습니다. 매일 아침 귀하의 받은 편지함에 무료로 도착하며, 아래 링크에서 daily diff dot dev에서 확인할 수 있습니다. 그리고 그것이 오늘의 diff입니다. 저는 Axrisi의 Niko입니다. 책임감 있게 병합하십시오.
출처
- Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
- Malicious ML models discovered on Hugging Face platformReversingLabs
- AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
- Pickle ScanningHugging Face
- SafetensorsHugging Face
- Loading custom modelsHugging Face
- Serialization semanticsPyTorch



