Nova técnica de ataque
14 de Junho de 2024

Os riscos de segurança apresentados pelo formato Pickle mais uma vez ganharam destaque com a descoberta de uma nova "técnica de exploração de modelo de machine learning (ML) híbrido" chamada Sleepy Pickle.

O método de ataque, segundo a Trail of Bits, arma o formato ubíquo usado para empacotar e distribuir modelos de ML para corromper o próprio modelo, representando um sério risco de cadeia de suprimentos para os clientes downstream de uma organização.

"Sleepy Pickle é uma técnica de ataque furtiva e inovadora que visa o próprio modelo de ML, em vez do sistema subjacente", disse o pesquisador de segurança Boyan Milanov.

Embora o pickle seja um formato de serialização amplamente utilizado por bibliotecas de ML como PyTorch, ele pode ser usado para realizar ataques de execução arbitrária de código simplesmente carregando um arquivo pickle (ou seja, durante a deserialização).

"Sugerimos carregar modelos de usuários e organizações em quem confie, contar com commits assinados e/ou carregar modelos dos formatos [TensorFlow] ou Jax com o mecanismo de autoconversão from_tf=True", aponta a Hugging Face em sua documentação.

Sleepy Pickle funciona inserindo um payload em um arquivo pickle usando ferramentas de código aberto como Fickling e, em seguida, entregando-o a um host alvo usando uma das quatro técnicas, como um ataque adversary-in-the-middle (AitM), phishing, comprometimento da cadeia de suprimentos ou a exploração de uma fraqueza do sistema.

"Quando o arquivo é deserializado no sistema da vítima, o payload é executado e modifica o modelo contido in loco para inserir backdoors, controlar saídas ou adulterar dados processados antes de devolvê-los ao usuário", disse Milanov.

Em outras palavras, o payload injetado no arquivo pickle contendo o modelo ML serializado pode ser abusado para alterar o comportamento do modelo, mexendo com os pesos do modelo, ou com os dados de entrada e saída processados pelo modelo.

Em um cenário de ataque hipotético, a abordagem poderia ser usada para gerar saídas prejudiciais ou desinformação que podem ter consequências desastrosas para a segurança do usuário (por exemplo, beber água sanitária para curar gripe), roubar dados do usuário quando certas condições forem atendidas e atacar usuários indiretamente, gerando resumos manipulados de artigos de notícias com links apontando para uma página de phishing.

A Trail of Bits disse que o Sleepy Pickle pode ser armado por agentes de ameaças para manter acesso furtivo nos sistemas de ML de uma maneira que evade a detecção, dado que o modelo é comprometido quando o arquivo pickle é carregado no processo Python.

Isso também é mais eficaz do que fazer upload diretamente de um modelo malicioso para a Hugging Face, pois pode modificar o comportamento ou a saída do modelo dinamicamente sem precisar atrair seus alvos para baixar e executá-los.

"Com o Sleepy Pickle, os atacantes podem criar arquivos pickle que não são modelos de ML, mas que ainda podem corromper modelos locais se carregados juntos", disse Milanov.

A superfície de ataque é, portanto, muito mais ampla, porque o controle sobre qualquer arquivo pickle na cadeia de fornecimento da organização alvo é suficiente para atacar seus modelos." "Sleepy Pickle demonstra que ataques avançados ao nível do modelo podem explorar fraquezas na cadeia de suprimentos de nível inferior por meio das conexões entre os componentes de software subjacentes e a aplicação final.

Publicidade

Curso gratuito de Python

O curso Python Básico da Solyd oferece uma rápida aproximação à linguagem Python com diversos projetos práticos. Indo do zero absoluto até a construção de suas primeiras ferramentas. Tenha também suporte e certificado gratuitos. Saiba mais...