
Proteção contra Ataques de Serialização de Modelos
Modelos de Machine Learning (ML) são compartilhados publicamente pela internet, dentro de equipes e entre equipes. O aumento dos Modelos de Fundação (Foundation Models) fez com que modelos públicos de ML fossem cada vez mais consumidos para treinamento adicional/ajuste fino. Modelos de ML são cada vez mais usados para tomar decisões críticas e alimentar aplicações de missão crítica. Apesar disso, os modelos ainda não são verificados com o mesmo rigor dado a um arquivo PDF na sua caixa de entrada.
Isso precisa mudar, e as ferramentas adequadas são o primeiro passo.

O ModelScan é um projeto de código aberto da Protect AI que verifica modelos para determinar se eles contêm código inseguro. É a primeira ferramenta de verificação de modelos compatível com múltiplos formatos de modelo. Atualmente, o ModelScan suporta os formatos: H5, Pickle e SavedModel. Isso protege você ao usar PyTorch, TensorFlow, Keras, Sklearn, XGBoost, com mais formatos a caminho.
Se você está pronto para começar a verificar seus modelos, é simples:
pip install modelscan
Com ele instalado, verifique um modelo:
modelscan -p /path/to/model_file.pkl
Os modelos geralmente são criados a partir de pipelines automatizados; outros podem vir do laptop de um cientista de dados. Em qualquer um dos casos, o modelo precisa ser movido de uma máquina para outra antes de ser usado. Esse processo de salvar um modelo em disco é chamado de serialização.
Um Ataque de Serialização de Modelo ocorre quando código malicioso é adicionado ao conteúdo de um modelo durante a serialização (salvamento) antes da distribuição — uma versão moderna do Cavalo de Troia.
O ataque funciona explorando o processo de salvar e carregar modelos. Quando você carrega um modelo com model = torch.load(PATH), o PyTorch abre o conteúdo do arquivo e começa a executar o código dentro dele. No instante em que você carrega o modelo, o exploit já foi executado.
Um Ataque de Serialização de Modelo pode ser usado para executar:
Esses ataques são incrivelmente simples de executar, e você pode ver exemplos funcionais em nossa pasta 📓notebooks.
O ModelScan oferece verificação robusta de código aberto. Se você precisa de segurança abrangente para IA, considere o Guardian. É o nosso produto de verificação de modelos de nível enterprise.

Se carregar um modelo com o seu framework de machine learning executa automaticamente o ataque, como o ModelScan verifica o conteúdo sem carregar o código malicioso?
Simples: ele lê o conteúdo do arquivo byte a byte, como se fosse uma string, procurando assinaturas de código inseguras. Isso o torna incrivelmente rápido, verificando modelos no tempo que o seu computador leva para processar o tamanho total do arquivo a partir do disco (segundos na maioria dos casos). Também é seguro.
O ModelScan classifica o código inseguro como:

Se um problema for detectado, entre em contato imediatamente com os autores do modelo para determinar a causa.
Em alguns casos, código pode ser incorporado ao modelo para facilitar a reprodução por um cientista de dados, mas isso abre espaço para ataques. Use seu critério para determinar se isso é apropriado para suas cargas de trabalho.
Isso será expandido continuamente, então fique atento às mudanças em nossas notas de versão.
Atualmente, o ModelScan suporta qualquer formato derivado de Pickle e muitos outros: