Examinar bibliotecas de código aberto de IA

Concluído

O software de software livre (OSS) é parte integrante do desenvolvimento de software moderno e os sistemas de IA não são exceção. Os projetos de IA normalmente dependem de estruturas de software livre, bibliotecas de modelos, modelos pré-treinados e ferramentas de processamento de dados. Assim como outros componentes do OSS, as bibliotecas específicas da IA apresentam riscos da cadeia de suprimentos que exigem uma revisão de segurança abrangente antes da adoção.

Por que as bibliotecas de software livre de IA precisam de atenção especial

As bibliotecas de IA de código aberto apresentam alguns riscos que vão além das dependências tradicionais de software.

  • Modelos pré-treinados: muitas bibliotecas de IA são enviadas com ou baixam modelos pré-treinados. Um modelo comprometido pode conter backdoors ou comportamentos tendenciosos que são difíceis de detectar apenas por meio da revisão de código.
  • Dependências do pipeline de dados: as bibliotecas de IA geralmente lidam com o carregamento de dados, a transformação e a extração de características. Vulnerabilidades nesses componentes podem expor dados de treinamento ou permitir envenenamento por dados.
  • Serialization risks: Os modelos de IA são frequentemente carregados e salvos usando formatos de serialização (como pickle em Python). Desserializar arquivos de modelo não confiáveis pode levar à execução arbitrária de código.
  • Ciclos de lançamento rápidos: as bibliotecas de IA evoluem rapidamente, com mudanças disruptivas frequentes. As organizações que se prendem a versões mais antigas podem perder atualizações de segurança críticas.

Diagrama mostrando quatro riscos específicos da cadeia de suprimentos de IA para bibliotecas open-source: modelos pré-treinados com backdoors, vulnerabilidades na pipeline de dados, riscos de serialização e desserialização e ciclos de lançamentos rápidos.

Avaliar a adequação das bibliotecas de OSS

Antes de adotar uma biblioteca de OSS de IA, avalie-a de perspectivas funcionais e de segurança:

  • Contexto e finalidade: defina por que você está revisando essa biblioteca. Você está integrando-o a um sistema de produção, usando-o para experimentação ou avaliando-o em relação a alternativas? Estabeleça critérios claros de aceitação para a revisão.
  • Avaliação de risco: considere os riscos potenciais de usar a biblioteca. Use a modelagem de ameaças para identificar vetores de ataque: como essa biblioteca se encaixa na superfície de ataque do aplicativo? O que acontece se a biblioteca estiver comprometida?
  • Conformidade de licença: verifique se a licença da biblioteca é compatível com as políticas da sua organização, especialmente para uso comercial ou governamental.
  • Saúde da manutenção: Verifique quão ativamente a biblioteca é mantida. Considere a frequência de commits, os tempos de resposta dos problemas e o número de colaboradores ativos. Bibliotecas abandonadas ou minimamente mantidas são de maior risco.

Análise de código e análise de dependência

Execute uma revisão técnica do código da biblioteca e sua cadeia de dependências:

  • Inspeção de código: examine o código-fonte da biblioteca em busca de falhas de segurança, como vulnerabilidades de injeção, práticas criptográficas inseguras e desserialização não segura. Preste atenção aos mecanismos de autenticação, à validação de entrada e ao tratamento de erros.
  • Avaliação de dependência: avalie as dependências transitivas da biblioteca. Componentes desatualizados ou vulneráveis na árvore de dependência podem introduzir riscos mesmo que o próprio código da biblioteca seja seguro.
  • SCA (análise de composição de software): use ferramentas de SCA automatizadas para identificar CVEs (vulnerabilidades conhecidas) na biblioteca e suas dependências. Muitas organizações integram essas ferramentas ao pipeline de CI/CD para detectar problemas mais cedo.

Controles específicos de IA da cadeia de suprimentos

Além das práticas de revisão padrão do OSS, aplique estes controles específicos à IA:

  • Verificação de procedência do modelo: quando uma biblioteca inclui modelos pré-treinados, verifique de onde o modelo veio, quem o treinou e se os dados de treinamento e o processo estão documentados. Uma lista de materiais de IA (AI-BOM)—um inventário estruturado de componentes de modelo, fontes de dados de treinamento e dependências—ajuda a estabelecer a confiança.
  • Verificação de modelo: verifique os arquivos de modelo baixados para conteúdos mal-intencionados conhecidos antes de carregá-los. Evite desserializar arquivos de modelo de fontes não confiáveis.
  • Verificações de reprodutibilidade: sempre que possível, verifique se os modelos podem ser reproduzidos de dados de treinamento documentados e configurações. Isso ajuda a confirmar que o modelo não foi adulterado.
  • Avaliação em área restrita: teste novas bibliotecas de IA em ambientes isolados antes de implantá-las em produção para conter qualquer comportamento inesperado.

Verificação e correção de vulnerabilidades

Não suponha que outras pessoas tenham realizado verificações de vulnerabilidade. Aplique sua própria cadeia de ferramentas de avaliação:

  • Verificações abrangentes: use ferramentas de verificação de vulnerabilidades para identificar possíveis pontos fracos de segurança na biblioteca e suas dependências.
  • Correção priorizada: se forem detectadas vulnerabilidades, avalie seu impacto e explorabilidade. Priorize as correções com base na gravidade e na exposição.
  • Monitoramento contínuo: os bancos de dados de vulnerabilidade do OSS são atualizados regularmente. Configure alertas automatizados para novas Vulnerabilidades e Exposições Comuns (CVE) que afetam bibliotecas em seu conjunto de tecnologias de IA.

Fluxograma do processo de revisão de segurança da biblioteca de software livre de IA, da avaliação à aprovação.