A Microsoft disponibilizou uma parte fundamental de sua segurança de inteligência artificial, fornecendo um conjunto de ferramentas que conecta conjuntos de dados a metas e resultados de pontuação, tanto na nuvem quanto com modelos de linguagem compactos.

No centro dos serviços de inteligência artificial da Microsoft está o compromisso de fornecer IA confiável e segura. Se estiver utilizando o Azure AI Studio para desenvolver e aplicar inferências, estará aproveitando um conjunto de ferramentas que verifica entradas em busca de ameaças conhecidas de forma discreta. Além disso, as saídas são verificadas para reduzir ao máximo o risco de erros.
Essas ferramentas representam a parte visível de uma estrutura interna de segurança de inteligência artificial em expansão, cujo objetivo é desenvolver recursos e serviços para mitigar os perigos relacionados à disponibilização de aplicações de IA em larga escala. A Microsoft opera uma ampla rede de inteligência artificial, com mais de 30 data centers, infraestrutura especializada para inferência e investimentos significativos em hardware e software para atender a milhões de usuários através de serviços como Bing e diversas aplicações, como Copilot.
Uma nova estratégia de proteção: inteligência artificial na segurança.
Esses milhões de usuários fornecem à recente equipe de segurança de inteligência artificial da Microsoft informações sobre as maneiras pelas quais as pessoas tentam atacar sistemas de IA, burlar alertas e romper as defesas que visam proteger a segurança e a confiabilidade da IA. As ferramentas de segurança de IA devem ser capazes de identificar ameaças rapidamente, detectar padrões de ataque e afastar os invasores dos serviços da Microsoft.
A expectativa de um ataque não é suficiente. Mesmo que a Microsoft possua os recursos para identificar um possível ataque a um serviço de inteligência artificial, há ainda uma alta probabilidade de um invasor ser capaz de provocar prejuízos, como por exemplo, extrair os dados utilizados em um aplicativo de recuperação de geração aumentada (RAG) ou forçar um agente de IA a utilizar um fluxo de trabalho inseguro e APIs internas.
Precisamos de um método para posicionar os blocos e guarda-redes corretos antes que um atacante opte por empregar uma nova técnica. A Microsoft deve ter a capacidade de detectar vulnerabilidades de IA antes que sejam exploradas, a fim de ajustar seu código e evitar que sejam exploradas.
A equipe AI Red Team da Microsoft inicia seu trabalho nesse ponto. Diferentemente das equipes vermelhas convencionais, que buscam vulnerabilidades no código, as equipes vermelhas AI investigam possíveis brechas em entradas que parecem inofensivas à primeira vista. O time da Microsoft criou ferramentas para auxiliar na identificação de falhas nos modelos de inteligência artificial, além de disponibilizá-las para a indústria de IA de forma mais ampla, visando a análise e teste de seus modelos de IA.
Introduzindo o PyRIT.
Uma das ferramentas disponíveis é a PyRIT, um conjunto de recursos de código aberto destinado a engenheiros de aprendizado de máquina e equipes de segurança. O nome, que é uma abreviação de Ferramenta de Identificação de Risco Python para Inteligência Artificial generativa, foi criado para funcionar com modelos locais e serviços remotos de IA hospedados em nuvem.
PyRIT pode ser descrito como um conjunto de ferramentas de segurança baseadas em inteligência artificial. Além de identificar alvos, é possível criar conjuntos de dados com prompts estáticos e modelados, e atacar modelos com prompts únicos ou múltiplos em uma conversa. Os resultados são avaliados e os dados são armazenados em diferentes formatos para serem analisados posteriormente por especialistas da equipe de segurança. O objetivo é automatizar testes simples de segurança, permitindo que os especialistas se concentrem em questões levantadas pela PyRIT ou em novos tipos de ataques ainda não documentados.
A instalação do PyRIT é fácil. Como é uma ferramenta Python, é necessário ter um ambiente atualizado. A Microsoft recomenda hospedá-lo no conda para garantir sua execução em um ambiente isolado. Antes de instalar o PyRIT usando o pip, é preciso criar e ativar o ambiente. O PyRIT é compatível com notebooks, proporcionando uma forma interativa de trabalhar através do Jupyter ou ferramentas similares.
Muitos dos documentos estão disponíveis em notebooks, permitindo que você os utilize de maneira interativa. Essa é uma opção interessante em comparação à documentação convencional, que pode ser utilizada localmente ou no GitHub.
Utilizando PyRIT para avaliar sua inteligência artificial generativa.
O cerne do PyRIT são seus controladores, que são utilizados para conectar conjuntos de dados a alvos e criar ataques que possam ser empregados por um potencial invasor. A ferramenta oferece uma gama de controladores, desde operações rápidas e simples até operações mais elaboradas que executam tipos comuns de ataques. Uma vez que se tem familiaridade com o funcionamento dos controladores, é possível criar os próprios ao experimentar novos e diversos ataques. Os resultados são avaliados ao observar como a inteligência artificial e as ferramentas de segurança reagem a uma solicitação, se rejeitando-a ou fornecendo uma resposta prejudicial.
Os orquestradores são desenvolvidos em Python e utilizam segredos armazenados para acessar endpoints. Podemos considerar um orquestrador como um processo de trabalho, onde são definidas metas e solicitações, e as saídas são coletadas para análises futuras. Uma característica interessante é a habilidade de converter solicitações para diferentes formatos, permitindo experimentar, por exemplo, o uso de codificação Base64 em vez de um texto comum.
Os conversores no PyRIT oferecem mais do que simplesmente usar diferentes codificações de texto. Eles permitem adicionar ruído a um prompt para simular erros, modificar o tom ou até traduzi-lo para outro idioma. Embora seja possível usar um conversor que utilize um modelo de linguagem grande externo (LLM) para fazer alterações em um prompt, isso pode aumentar a latência durante um teste, sendo assim os conversores locais são geralmente preferidos. O melhor desempenho é obtido com conteúdo estático, portanto pode ser vantajoso criar uma biblioteca de prompts variados prontos para serem utilizados conforme necessário.
Você tem a liberdade de utilizar diferentes tipos de prompts, já que o PyRIT foi desenvolvido para suportar modelos multimodais. Isso significa que você pode avaliar a capacidade do computador em reconhecer imagens ou fala, utilizando exemplos conhecidos. Dessa forma, é possível testar cenários que envolvam imagens inapropriadas ou ambíguas, evitando interpretações incorretas pelo modelo.
Os orquestradores colaboram não somente com os modelos em avaliação, mas também podem ser combinados com outros modelos de inteligência artificial, como o Filtro de Conteúdo do Azure, a fim de categorizar e analisar as respostas, contribuindo para a detecção de possíveis preconceitos em um modelo.
Outra característica fundamental é a capacidade de memória do PyRIT, que utiliza um banco de dados DuckDB para gerenciar o histórico de conversas e dados de pontuação. As interações e respostas são registradas no banco de dados para análises futuras. Os dados podem ser extraídos e analisados através de ferramentas como Excel, Power BI, ou outras. Além disso, a memória do sistema inclui uma biblioteca de sugestões para diferentes testes. Ter uma variedade de prompts e ataques padrão disponíveis é útil para comparar o comportamento de um aplicativo, e também facilita o compartilhamento de solicitações entre os membros da equipe.
Utilizando PyRIT com Sistemas Lineares de Modelagem na periferia.
Você não precisa se restringir aos serviços de inteligência artificial baseados em nuvem. O PyRIT se torna uma ferramenta valiosa para quem utiliza modelos de IA hospedados em ONNX, especialmente para aqueles que trabalham com modelos de idiomas locais pequenos (SLMs). É simples integrá-lo ao Copilot Runtime, como parte do processo de desenvolvimento e teste de pequenos modelos de linguagem, incluindo aplicações construídas com Phi Silica.
Uma outra funcionalidade interessante é a habilidade de avaliar distintas iterações. Ao adicionar medidas de mitigação ao seu sistema, um conjunto de testes PyRIT compara o nível de segurança com testes anteriores. Houve melhora ou piora na segurança do seu modelo? Comparar versões possibilita aprimorar as operações de maneira mais eficaz e compreender os impactos que determinadas mudanças têm no comportamento do aplicativo de Inteligência Artificial.
A Microsoft emprega esse método para avaliar seus assistentes virtuais baseados em LLM, analisando várias versões do comando principal subjacente, que define o funcionamento de um assistente virtual Copilot e assegura que as medidas de segurança estão em vigor para prevenir ataques de jailbreak por meio de injeção rápida.
PyRIT é eficaz, porém sua eficácia depende do conhecimento e habilidade dos engenheiros de segurança que o utilizam. A segurança de Inteligência Artificial representa uma nova área que requer técnicas e habilidades de segurança convencionais, combinando engenharia rápida e ciência de dados. Essas habilidades são essenciais tanto para as equipes ofensivas quanto defensivas que se dedicam a desenvolver serviços de AI seguros, testando constantemente suas defesas contra possíveis ataques. Enquanto as defesas precisam estar sempre ativas, os invasores só precisam encontrar uma brecha uma vez.