Etapas práticas para proteger seu pipeline de MLOps

Todas as mensagens

Imagine a próxima reunião do conselho. Você, um líder de segurança em sua organização, apresentará sua apresentação padrão com riscos, mitigações e incidentes. Em seguida, um dos conselheiros perguntará: Como vocês estão se preparando para proteger as novas tecnologias de IA e os pipelines de MLOps que a empresa já utiliza? 

Aqui está sua resposta.

IA traz consigo novos riscos

Os pipelines MLOps (às vezes também conhecidos como AI Ops), embora semelhantes aos sistemas tradicionais de processamento de dados em seu valor para as organizações, apresentam vulnerabilidades distintas. Os invasores podem ter como objetivo inserir preconceitos, manipular resultados de modelos ou comprometer a integridade de dados ou ferramentas, visando minando a confiabilidade do modelo e distorcendo os processos de tomada de decisão. ATLAS, uma estrutura da organização MITRE para proteção de MLOps, ressalta a necessidade de medidas de segurança personalizadas que enfrentem esses desafios.

A IA trará consigo novos regulamentos

O crescente campo da IA ​​e MLOps está sob crescente escrutínio dos reguladores em todo o mundo. Na ausência de legislação federal abrangente nos Estados Unidos, a orientação de órgãos como o Instituto Nacional de Padrões e Tecnologia (NIST), como o Estrutura de gerenciamento de risco de inteligência artificial 1.0, oferece uma visão dos futuros quadros regulamentares. A estrutura enfatiza a confiabilidade dos sistemas de IA, incluindo as sete características definidas de sistemas de IA confiáveis: segurança, segurança e resiliência, explicabilidade e interpretabilidade, com privacidade aprimorada, justo com preconceito prejudicial gerenciado, responsável e transparente, assim como válido e confiável.

MLOps e cadeia de suprimentos de software têm muito em comum

As semelhanças entre as vulnerabilidades do pipeline MLOps e os riscos tradicionais da cadeia de fornecimento de software são impressionantes. Ambos os domínios enfrentam ameaças de compromisso que visam minar a integridade do processo de desenvolvimento e a segurança do produto final. Modificar maliciosamente um LLM é bastante semelhante a modificar maliciosamente uma dependência de software; modificar maliciosamente o software que executa o LLM é, na verdade, um ataque à cadeia de fornecimento de software; os requisitos de responsabilidade, transparência e confiança discutidos no mundo da IA ​​são exatamente o que está por trás dos requisitos SBOM no mundo da cadeia de fornecimento de software.

A organização MITRE publica modelos de segurança cibernética. MITRE publicou recentemente o modelo Atlas para proteção MLOps, que pode ser encontrado aqui. Uma visão geral do modelo é fornecida abaixo:

Matriz ATLAS

Tal como no domínio “tradicional” da cibersegurança, as regulamentações de IA e MLOps ainda estão a ser desenvolvidas. Seguir essas regulamentações emergentes tornaria mais fácil proteger os ativos existentes de MLOps, bem como atestar a conformidade dos processos de MLOps com as melhores práticas existentes e emergentes. As organizações precisarão atestar a integridade do seu modelo, bem como a imparcialidade do seu modelo.

Existem tecnologias que servirão a ambos os reinos

As tecnologias que garantem a integridade dos dados, do código e das ferramentas podem fornecer os controles de integridade necessários para a segurança da cadeia de suprimentos de software de MLOps e DevOps.

Tecnologias que fornecem medidas de transparência e confiança de software podem fornecer valores semelhantes para MLOps. 

Tecnologia de segurança da cadeia de suprimentos baseada em atestado

O conceito de proteção da cadeia de fornecimento de software baseada em evidências é simples: um artefato de software não deve ser confiável, a menos que haja evidências suficientes de sua confiabilidade. A implementação deste conceito envolve ferramentas de recolha de provas, um motor de políticas que avalia as provas para as verificar, alertas de violações e recomendações para mitigações, e mecanismos de partilha que permitem transparência e colaboração. O estrutura completa é um exemplo acadêmico de tal solução. A plataforma de cadeia de fornecimento de software da Scribe é, entre outras coisas, uma manifestação comercial desta tecnologia e ampliou sua tecnologia para apoiar os desafios de ML-Ops.

A abordagem baseada em evidências de Scribe é agnóstica em relação às especificidades das evidências; assim, a mesma tecnologia pode servir à proteção MLOps, por exemplo:

  • Garantir a integridade do software e do pipeline de ML.
  • Garantir a integridade das dependências de código aberto e a integridade do modelo de IA.
  • Avaliar relatórios SAST para garantir relatórios de ferramentas de teste específicas de IA (por exemplo, testes tendenciosos).
  • Compartilhamento de SBOMs e avaliações de políticas, bem como avaliações de políticas MLBOMs e MLOps. 

Tecnologia de cadeia de suprimentos de software Scribe Security para IA/ML-Ops

O MITRE ATLAS e a tecnologia do escriba

A seguir está um mapeamento das capacidades atuais do Scribe em comparação com o mapa de ataque MITRE ATLAS:

Estágio de AtaqueTécnicasSolução do escriba
Desenvolvimento de recursos de invasorPublicar conjuntos de dados envenenados
Dados de treinamento de veneno.
Integridade de dados:
Atestar os conjuntos de dados consumidos e verificar a origem e o conteúdo dos conjuntos de dados.
Atestar os dados de treinamento e verificar o conteúdo e a fonte dos dados de treinamento.
Acesso InicialCompromisso da cadeia de suprimentos de MLIntegridade de dados e código:
Atestar dados, modelos, software e configurações dos pipelines de ML.

Aplicação da política de pipeline de ML:
Atestar as ações e verificar as políticas adequadamente (por exemplo, kit de processo de lançamento, testes, padrões de acesso)
Acesso inicial, impactoEvadir modelo de ML (por exemplo, solicitações elaboradas)Rastreamento preciso do pipeline:
Rastreie recursos e detecte anomalias nos padrões de acesso ao pipeline de ML (FS-Tracker)
ExecuçãoInterpretador de Comandos e ScriptsRastreamento preciso do pipeline:
Rastreie recursos e detecte anomalias nos padrões de acesso ao pipeline de ML (FS-Tracker)
PersistênciaDados de treinamento de venenoIntegridade de dados:
Atestar os dados de treinamento, verificar o conteúdo e a fonte dos dados de treinamento.
Persistência,
Preparação de ataque de ML
Modelo de ML backdoorIntegridade de dados:
Atestar o ciclo de vida do modelo de ML e verificar o uso.
ImpactoUso Indevido do Sistema para Efeito ExternoPolíticas de nível de sistema:
Atestar o comportamento e as características do sistema e aplicar políticas adequadas (por exemplo, custos de computação, padrões de acesso).

A seguir está um mapeamento das Mitigações MITRE em comparação com a tecnologia da Scribe:

ID de mitigação MITREMitigaçãoSolução do escriba
AML.M0005Controle o acesso a modelos de ML e dados em repousoRastreamento preciso do pipeline:
Rastreie recursos e detecte anomalias nos padrões de acesso ao pipeline de ML (FS-Tracker)
AML.M0007Limpe os dados de treinamentoIntegridade de dados:
Atestar e verificar os dados usados ​​para treinamento
AML.M0011Restringir carregamento da biblioteca Integridade de dados e código:
Atestar e verificar o carregamento do modelo de dados e da biblioteca de códigos.
AML.M0013Assinatura de código Integridade do código:
Atestar e verificar o código usado.
AML.M0014Verifique artefatos de MLIntegridade de dados e código:
Atestar e verificar o carregamento do modelo de dados e da biblioteca de códigos.
AML.M0016Análise de Vulnerabilidade Verificação de vulnerabilidades, avaliação de políticas:
Atestar a execução de ferramentas como verificação de vulnerabilidades. Avalie as políticas relativas a esses atestados.
Verifique vulnerabilidades com base em atestados SBOM coletados do pipeline de ML.

Assinando e verificando conjuntos de dados e modelos de ML usando Valint

Valint é a poderosa ferramenta CLI do Scribe para gerar e validar atestados. Valint pode ser usado para assinar e verificar conjuntos de dados e modelos de ML.

Exemplo:

Queremos usar o modelo HuggingFace wtp-bert-tiny. Para não comprometer o modelo, queremos assiná-lo e verificá-lo antes do uso. A criação de um atestado (evidência assinada) pode ser feita com o seguinte comando:

valint bom git: https://huggingface.co/benjamin/wtp-bert-tiny -o atestar

Este comando criará um atestado assinado para o repositório do modelo. O atestado será armazenado em um armazenamento de atestados (neste caso – uma pasta local) e será assinado (neste caso – usando assinatura sem chave Sigstore).

Um uso típico do modelo seria clonar o repositório e usar seus arquivos. A verificação da integridade do modelo imediatamente após o download pode ser feita com os seguintes comandos:

git clone git: https://huggingface.co/benjamin/wtp-bert-tiny valint verifique git: wtp-bert-tiny

A verificação da integridade do modelo antes de cada uso pode ser feita com o seguinte comando:

valint verifica git:wtp-bert-tiny

Observações: 

  • Uma abordagem semelhante pode ser usada para assinar e verificar conjuntos de dados.
  • Uma das características dos modelos ML é o seu enorme tamanho. Para evitar o download e o manuseio de arquivos grandes desnecessários, um melhores práticas é baixar apenas os arquivos necessários. Este caso de uso é compatível com Valint, que oferece suporte à assinatura apenas de uma pasta ou arquivo específico.

Verificando políticas em modelos de ML

Valint do Scribe é uma ferramenta poderosa de verificação de políticas. Uma das maneiras de gerenciar riscos é aplicar políticas. Na seção a seguir, demonstraremos como reduzir o risco aplicando uma política de licenciamento aos modelos de ML utilizados. 

Suponha que permitimos apenas o uso da licença MIT em nosso projeto. Uma vez configurado, Valint pode verificá-lo:

valint verificar git:wtp-bert-tiny -d att -c verificar-license.yml

Este comando usa o verificar licença política que é definida da seguinte forma:

atestar: cocosign: políticas: - nome: política de ML habilitar: verdadeiros módulos: - nome: verificar tipo de licença: verificar-artefato habilitar: verdadeiro entrada: assinado: verdadeiro formato: attest-cyclonedx-json rego: caminho: verificar-hf -licença.rego

A política implementada no verificar-hf-license.rego extrai do atestado assinado o ID do modelo HuggingFace, extrai da API HuggingFace informações sobre o modelo e verifica se ele é MIT.

Um fluxo semelhante pode ser usado para verificar licenças de conjuntos de dados de código aberto.

Caso de uso: protegendo um serviço de ML-Ops do mundo real

Um serviço ML-Ops faz parte de um aplicativo que permite fácil acesso a modelos de IA; os usuários do serviço só precisam declarar suas solicitações, e todos os aspectos práticos de acesso ao modelo de ML são feitos nos bastidores pelo serviço.

Exemplo:

Queremos produzir e usar um serviço que exponha o acesso aos “profissional”Pacote de código aberto (em palavras simples, este pacote permite uma melhor utilização de Large Language Models (LLMs) executando cadeias de consultas em vez de um único prompt).

O serviço será uma imagem Docker que contém o código do serviço e o modelo. Basearemos nosso código no projeto Andromeda-chain. O projeto envolve a biblioteca de orientação com um serviço e cria uma imagem docker com o aplicativo.

A seguir está a versão básica do Dockerfile:

DE python:3.10 COPIAR ./requirements.cpu.txt requisitos.txt EXECUTAR pip3 install -r requisitos.txt EXECUTAR modelos mkdir \ modelos cd \ git clone https://huggingface.co/api/models/benjamin/wtp-bert- tiny COPY ./guidance_server guide_server WORKDIR guide_server # Defina o ponto de entrada CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "9000"]

É bastante simples; ao construir o docker, as dependências do código são instaladas, o modelo é instalado e o código do serviço é copiado para a imagem do Docker. 

Depois que a imagem for construída, podemos criar um atestado assinado dela com o seguinte comando Valint:

valint bom ml-service:mais recente -o atestar

Este comando gera um atestado assinado que contém um SBOM detalhado da imagem docker denominada ml-service.

Este atestado pode ser usado posteriormente para verificar a imagem do Docker, usando o seguinte comando:

valint verifica ml-service:mais recente

Este comando verifica a integridade da imagem – tanto o código quanto o modelo de ML. A verificação pode ser feita sempre que a imagem for implantada, garantindo assim a utilização de um container válido.

Construindo um serviço ML-Ops protegido

Combinando as capacidades demonstradas nos parágrafos anteriores, podemos agora demonstrar como proteger a construção de um serviço ML-Ops:

Pré-requisito: Depois que um modelo for selecionado – crie um atestado dele:

valint bom git: https://huggingface.co/benjamin/wtp-bert-tiny -o atestar

Construir pipeline:

1. Verifique a integridade e a licença do modelo no pipeline de construção:

clone git https://huggingface.co/benjamin/wtp-bert-tiny valint verifique git:wtp-bert-tiny -d att -c verify-license.yml

2. Construa a janela de encaixe e crie um atestado dela:

docker build -t ml-service:mais recente. valint bom ml-service:mais recente -o atestar

3. Antes de usar a imagem, verifique-a:

valint verifica ml-service:mais recente

Esta etapa de verificação garante que a imagem implantada é aquela criada com o modelo verificado dentro.

Uma verificação semelhante pode ser realizada antes de cada implantação no Kubernetes usando o controlador de admissão do Scribe. 

Recomendação 

Investir em um produto de segurança da cadeia de fornecimento de software em 2024 que atenda tanto aos requisitos imediatos da cadeia de fornecimento de software quanto às demandas crescentes de MLOps é uma escolha estratégica.

Investir em uma solução baseada em evidências com um mecanismo de política flexível permitiria a integração futura com tecnologias emergentes de segurança MLOps específicas de domínio à medida que amadurecessem.

Por que esta é uma postagem do blog Scribe Security?

Você deve saber a resposta se leu tudo até aqui: Scribe fornece uma solução de segurança da cadeia de suprimentos de software baseada em evidências/atestados com um mecanismo de política flexível e extensível. Para um caso de uso elaborado de proteção de um pipeline MLOps usando produtos Scribe, pressione aqui.

Este conteúdo é oferecido a você pela Scribe Security, um fornecedor líder de soluções de segurança de cadeia de suprimentos de software ponta a ponta – fornecendo segurança de última geração para artefatos de código e processos de desenvolvimento e entrega de código em todas as cadeias de suprimentos de software. Saiba mais.