Os ficheiros de modelo Hugging Face podem executar código oculto
Pacotes de modelos maliciosos podem executar código durante o carregamento inseguro.
Pacotes de modelos maliciosos podem executar código durante o carregamento inseguro. Três exemplos documentados explicam shells reversos Pickle, comportamento de scanner de ficheiros corrompidos e confusão de nomes de modelos demonstrada em pesquisa, com limites claros nas alegações de roubo de credenciais.
Ler a edição escrita (Inglês) ↗
O que este vídeo aborda
- Pesos numéricos de modelo, serialização executável e código de repositório personalizado são coisas diferentes.
- A JFrog e a ReversingLabs documentaram payloads de shell reverso; os seus relatórios selecionados não estabelecem roubo de credenciais de vítimas nomeadas.
- A Confusão de Modelo da Checkmarx foi uma demonstração de pesquisa que exigiu um modelo remoto correspondente e carregamento inseguro.
- Prefira safetensors e carregadores corrigidos, revise e fixe o código personalizado e isole pacotes desconhecidos de segredos pessoais e acesso desnecessário à rede.
Transcrição traduzida
Traduzido da narração original em inglês. Áudio e legendas disponíveis são controlados pelo YouTube.
Como pode o download de um modelo convidar um hóspede?
0:00 Um ficheiro de modelo são apenas números no disco. Carregar um pacote malicioso do Hugging Face abriu um shell remoto, o que é uma interpretação ambiciosa da IA local. Como o carregamento se torna execução? Que segredos pode alcançar? O que realmente o impede? E mantenha um enigma em mente. Um modelo pode falhar ao carregar depois que a parte perigosa já aconteceu.
0:18 Este é o The Daily Diff, por trás dos bastidores. Hugging Face é uma plataforma para partilha de modelos de machine learning, conjuntos de dados e aplicações. Os pesos do modelo são os números aprendidos. Um repositório também pode conter configuração e código Python. O perigo aqui é a embalagem executável entrar no seu computador quando você a carrega. Pickle armazena objetos Python com instruções para reconstruí-los.
Como um carregador executa as instruções do pacote?
0:37 Um carregador inseguro pode seguir essas instruções e chamar funções ao desempacotar. Fazer o download dos bytes coloca o pacote no seu disco. A desserialização abre-o. Em algum lugar, um formato de ficheiro foi promovido a administrador de sistema não remunerado. A JFrog relatou o Goober Two em fevereiro de dois mil e vinte e quatro. O seu payload Pickle abriu um shell reverso, conectando-se para oferecer acesso remoto a comandos. O repositório foi excluído. A JFrog também encontrou pistas que sugerem envolvimento de pesquisadores,
1:02 portanto, a atribuição é incerta. O hóspede indesejado foi documentado. O roubo de credenciais de vítimas reais não foi estabelecido.
Quais segredos estão ao alcance do processo?
1:09 O código em execução como o seu utilizador pode ler tudo o que esse processo pode ler. Uma chave de nuvem montada ou um token acessível tornam-se um alvo possível. Enviá-lo também requer uma rota de rede em funcionamento. Os pesos numéricos sozinhos não têm poderes mágicos de credencial. As suas permissões fornecem a parte interessante do cartão do modelo. Há outra porta. Alguns modelos pedem que você confie em código remoto, o que autoriza Python do repositório. Os ficheiros de tensor seguro podem estar ao lado desse código.
1:32 Verificar o formato do peso cobre uma entrada, enquanto o código do repositório ainda está à espera que você lhe entregue um crachá de visitante.
Por que um caminho local ausente pode se tornar um modelo remoto?
1:38 A Checkmarx demonstrou a Confusão de Modelo. Um caminho de modelo local ausente poderia resolver para um repositório público com um nome correspondente. Combine isso com código remoto ativado, e o pacote errado pode ser executado. Esta foi uma demonstração de pesquisa envolvendo uma amostra de uma empresa não nomeada, corrigida em um dia. Uma pasta ausente adquiriu um proprietário. A ReversingLabs relatou duas amostras em fevereiro de dois mil e vinte e cinco,
Como os pacotes quebrados evadiram o scanner antigo?
1:58 chamando a técnica de nullify AI. Ambas continham shells reversos. A sua embalagem 7zip bloqueou o carregamento comum do PyTorch, então este caminho exigiu extração e desserialização insegura. Streams Pickle corrompidos também expuseram um ponto cego do scanner. Uma varredura falhada merece investigação antes que alguém abra o pacote. No teste inofensivo dos pesquisadores, as instruções escreveram um ficheiro antes que o carregador
2:18 atingisse a parte quebrada e gerasse um erro. Imagine abrir um pacote, libertar o guaxinim e depois notar que a etiqueta de envio é inválida. A mensagem de erro chega com excelente gramática e péssimo timing. O Hugging Face removeu as amostras relatadas em vinte e quatro horas e mudou o scanner. Essa descoberta específica levou a uma correção. Uma varredura de segurança é uma evidência útil, e tratar todo erro de scanner como um atestado de boa saúde continua sendo uma interpretação notavelmente generosa de falha.
2:43 Prefira tensors seguros e carregadores corrigidos atuais.
O que mantém a chave fora do alcance do hóspede?
2:46 O PyTorch restringiu o seu carregador padrão a partir da versão dois ponto seis. Revise o código personalizado e fixe a revisão analisada. Execute pacotes desconhecidos isoladamente, sem chaves pessoais, com acesso restrito à rede. Um contêiner cheio de credenciais montadas é uma cesta de presentes com namespaces. Aquele enigma inicial tem uma resposta. A falha no carregamento informa onde a execução parou. Instruções anteriores já podem ter sido executadas.
3:08 Mantenha os segredos fora do seu alcance antes de abrir o pacote. Veredito, nos bastidores.
Por que eu carimbaria isso com "REVISÃO NECESSÁRIA"?
3:16 carregador. O download gratuito deve vir com um modelo, e a lista de convidados deve permanecer a minha decisão. Se preferir ler isto a ouvir-me dizer, o diff chega à sua caixa de entrada todas as manhãs, gratuitamente em the daily diff dot dev, link abaixo. E esse é o diff de hoje. Sou o Niko da Axrisi. Junte-se de forma responsável.
Fontes
- 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



