Pesquisadores de cibersegurança identificaram dois modelos de machine learning (ML) maliciosos no Hugging Face que usaram uma técnica incomum para evitar detecção. Os modelos exploraram arquivos Pickle “corrompidos” para burlar as verificações de segurança e executar códigos maliciosos sem serem detectados. Segundo o pesquisador Karlo Zanki, os arquivos Pickle extraídos dos arquivos PyTorch continham código malicioso logo no início. Esse código ativava um shell reverso, conectando-se a um IP fixo.
O método, chamado nullifAI, busca driblar as proteções existentes para identificar modelos comprometidos. Embora os modelos não tenham sido usados para ataques em larga escala, acredita-se que sejam provas de conceito (PoC), demonstrando a viabilidade da técnica para futuros ataques na cadeia de suprimentos de software. O problema está no formato de serialização Pickle, amplamente utilizado para distribuir modelos de ML. Como ele permite a execução arbitrária de código ao ser carregado, já foi apontado como uma vulnerabilidade de segurança.
Os modelos descobertos estavam armazenados no formato PyTorch, que normalmente usa compressão ZIP, mas, nesse caso, foram comprimidos com 7z, permitindo que passassem despercebidos pelo Picklescan, ferramenta usada pelo Hugging Face para identificar arquivos suspeitos. Além disso, o arquivo Pickle era interrompido logo após a execução do código malicioso, causando falha na desserialização do restante dos dados. Como a desserialização do Pickle ocorre sequencialmente, os opcodes são executados conforme aparecem, e a falha só acontece depois da ativação do código malicioso. Isso permitiu que os modelos fossem carregados sem que a ferramenta de segurança da plataforma os marcasse como perigosos.