Ataques adversários: Você sabia que sua IA pode correr riscos de segurança?
Machine Learning (ML) é um campo dentro de inteligência artificial que vem se popularizando muito ao longo dos anos.
Essa tecnologia nos proporciona meios mais rápidos e mais eficientes de tomada de decisões, podendo ser aplicado em diversos campos diferentes, como reconhecimento de fala, reconhecimento facial, detecção de fraudes, tradução de textos, robôs, sistemas autônomos e muitos outros.
Os modelos de Machine Learning têm a capacidade de modificar seu comportamento e aprender autonomamente com base em experiência, ou seja, através dos dados que oferecemos a esses modelos, sem serem explicitamente programados para isso.
Ataques adversários
Os modelos de Machine Learning são usados para identificar ameaças e melhorar a segurança dos sistemas, mas o que acontece quando esses modelos se tornam a ameaça ou o ponto de entrada para ataques?
Esses tipos de ataque são chamados de adversários, e ocorrem quando um atacante altera a entrada do modelo para induzir um viés (erro) aos modelos de Machine Learning.
Visto que esses modelos são amplamente utilizados para segurança, negócios e outros, os atacantes podem utilizar esse tipo de vetor para qualquer domínio, por isso é importante estar ciente da possibilidade desses sistemas serem expostos e manipulados.
Portanto, vamos explorar como esses ataques funcionam, as limitações de modelos de Machine Learning e como melhorá-los para melhor nos protegermos.
Tipos de ataques adversários
Os ataques adversários buscam explorar algumas fraquezas no processo de inserção dos dados de entrada do modelo, o atacante insere algumas anomalias nos dados e isso acaba gerando um comportamento não esperado no modelo já treinado, o fazendo cometer erros.
Esses ataques podem ser divididos em ataques de evasão, envenenamento e roubo de modelo.
Evasão
Os ataques de evasão geralmente ocorrem depois que o modelo já está em produção, modificando os dados de entrada para que pareçam corretos, mas que na verdade levam a uma predição errada.
Esse tipo de ataque geralmente está associado a modelos de reconhecimento de imagem que, adicionando um padrão não esperado pelo modelo, consegue resultar em uma previsão completamente incorreta. Na Figura 1, podemos notar que há uma imagem presa na pessoa com vários padrões diferentes, e esses padrões fazem com que o modelo não a reconheça.
Envenenamento
Os ataques de envenenamento têm como objetivo contaminar a base de dados de treinamento dos modelos de Machine Learning, visando causar o mau funcionamento do modelo e até mesmo possibilitar que o atacante possa controlar as predições do algoritmo.
Nesse tipo de ataque o invasor compromete o processo de aprendizagem do modelo fazendo com que ele falhe nas entradas desejadas pelos atacantes. Para isso, o atacante insere dados incorretos ou com rótulos incorretos no conjunto de treinamento dos modelos, para que os modelos aprendam padrões errados. Por exemplo, um atacante poderia envenenar um modelo de filtragem de spams, rotulando spams específicos de seu interesse como sendo e-mails comuns, fazendo com que o modelo não rejeite os spams no padrão enviado por ele.
Em diversas aplicações os modelos de Machine Learning são treinados uma única vez, fazendo com que eles não fiquem suscetíveis a esse tipo de ataque. Porém, alguns tipos de aplicações demandam que os modelos sejam treinados frequentemente para que eles sejam mantidos atualizados com novos dados. Nesses casos, dependendo da frequência de atualização, é muito provável que o conjunto de dados usado no retreino não passe por uma verificação minuciosa, tornando esses sistemas mais suscetíveis a ataques de envenenamento.
Roubo de modelo
Seguindo a mesma linha do ataque de evasão, o ataque de roubo de modelo também é realizado após o treinamento do modelo. Ele tem como objetivo criar uma cópia da estrutura do modelo ou dos dados utilizados para o treinamento do modelo, como por exemplo, dados confidenciais.
Nos voltando para a parte de roubo de informações sensíveis, é possível realizar esse ataque de duas maneiras: inferindo se um exemplo foi utilizado na base de treinamento de um modelo ou de fato extraindo informações brutas que foram utilizadas durante o aprendizado do modelo.
No primeiro cenário, conhecido como Membership Inference Attack (Ataque de Inferência de Associação), o atacante, por meio das predições do modelo alvo e da criação de diversos modelos sombra, que imitam o comportamento do modelo alvo, é capaz de determinar se um exemplo de interesse foi utilizado ou não no conjunto de treino. Esse tipo de ataque pode ser especialmente perigoso, por exemplo, na área da saúde, podendo expor se um indivíduo possui uma determinada doença.
No segundo caso, conhecido como Model Inversion Attack (Ataque de Inversão de Modelo) e Training Data Extraction Attack (Ataque de Extração de Dados de Treinamento), o atacante está interessado em extrair informações brutas do conjunto de treinamento dos modelos, por exemplo, identificar o rosto de uma pessoa, sabendo apenas o nome dela, por meio de modelos de reconhecimento facial, como demostrado no trabalho “Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures”, ou até mesmo conseguir informações confidenciais, como números de cartões de crédito, utilizando como entrada um texto personalizado, como apresentado no artigo, “Extracting Training Data from Large Language Models”.
Por outro lado, o objetivo de aprender a estrutura de um modelo pode estar relacionado com o plágio de alguma solução fornecida por empresas, por exemplo, utilizar um modelo que já foi treinado para tomada de decisões de compra e venda de ações, ser copiado e usado sem ter a necessidade de pagar pelo serviço.
Esse tipo de ataque pode ser usado também para identificar como o modelo toma suas decisões, e assim burlá-lo para desviar algum tipo de detecção do modelo, como no caso dos filtros de spam, o atacante pode aprender os padrões que são utilizados pelo modelo e assim, criar spams mais elaborados que passariam sem serem detectados pelo filtro.
Como nos proteger
Vistas as diversas ameaças às quais os modelos de Machine Learning podem estar expostos, precisamos pensar em maneiras de protegê-los.
Existem dois métodos que são conhecidos por fornecer uma defesa significativa aos modelos: o treinamento adversário e a destilação defensiva. No entanto, esses algoritmos podem ser facilmente quebrados devido ao acesso a maiores recursos computacionais.
Treinamento adversário: esse método é voltado simplesmente para treinar o modelo explicitamente com exemplos adversários para que o modelo não seja enganado. Com o objetivo de que caso o modelo seja exposto a algum exemplo adversário por um atacante, ele não seja confundido.
Destilação defensiva: Tipicamente o termo destilação envolve uma rede neural menor que aprende as probabilidades das classificações de uma rede maior. Ou seja, em vez da rede menor ou rede de destilação predizer um rótulo, como positivo ou negativo, ela irá predizer as probabilidades dos rótulos gerados pela primeira rede. Isso permite que o segundo modelo aja como um filtro adicional ao processo de predição, tornando a rede menos suscetível a exploração.
Por exemplo, vamos supor que exista um sistema de escaneamento de biometria que faz o match entre digitais. Um atacante poderia aprender os principais elementos que fazem com que a primeira rede preveja um match e então gerar uma digital muito próxima da esperada pelo modelo, mesmo não sendo 100% igual, podendo fazer com que o modelo gere uma predição de ‘match’ com 95% de certeza. Em um cenário com a destilação defensiva, a rede de destilação iria ser treinada com esse fator de incerteza do primeiro modelo, adicionando um elemento de aleatoriedade ao processo, deixando mais difícil para o atacante descobrir como gerar um match artificialmente.
Podemos utilizar outras estruturas mais robustas, como por exemplo alternar vários modelos para dificultar o atacante a comprometer o sistema, pois atacar vários modelos é mais complicado do que apenas um, entretanto ainda existe a possibilidade que todos os modelos sejam comprometidos.
Existe a possibilidade de combinar vários modelos e gerar um modelo por votação (ensemble), fazendo com que todos esses modelos contribuam para a previsão final e dificultando a possibilidade de um atacante conseguir comprometê-los.
Por outro lado, é importante salientar que os modelos não existem de forma isolada, geralmente fazem parte de um sistema maior e a maioria desses ataques poderiam ser evitados com alterações nos sistemas de forma geral, como por exemplo a utilização de criptografia e boas práticas de segurança, especialmente em senhas e configurações.
Inteligência artificial sendo usado para fins maliciosos
Além do uso de ataques adversários, o uso de inteligência artificial também vem sendo direcionado de modo a ajudar e agilizar outros tipos de ataques, por exemplo, ataques de força bruta com modelos GANs para auxílio de geração de senhas com maiores chances de serem verdadeiras ou mesmo em engenharia social.
Um outro campo em que a Inteligência Artificial vendo sendo usada de maneira maliciosa é no impulsionamento de fraudes, os atacantes vêm utilizando tecnologias como Deep Fake e geração de fala para se passar por outras pessoas com o objetivo de conseguir alguma vantagem indevida.
Em um caso recente, uma empresa deu um golpe de R$ 17 milhões utilizando vídeos de um suposto CEO que na verdade era uma IA.
Conclusão
O avanço da Inteligência Artificial possibilitou que modelos de Machine Learning sejam utilizados em diversos setores diferentes da indústria e está se tornando um ponto chave para muitas organizações.
A flexibilidade de utilização da IA também possibilita novas portas de entrada para os atacantes em todos esses cenários, então conhecer e entender esse risco é fundamental para que medidas de proteção sejam tomadas, tornando esses sistemas os mais seguros possível.
Gostaria de aprender mais?
CleverHans: biblioteca de exemplo adversário para construir ataques, defesas e a comparação entre ambos. (https://github.com/cleverhans-lab/cleverhans)
Adversarial Machine Learning: Livro introdutório que traz todas as teorias e ferramentas necessárias para construir um sistema robusto de machine learning. (https://www.amazon.com/Adversarial-Machine-Learning-Anthony-Joseph/dp/1107043468/ref=asc_df_1107043468/?tag=hyprod-20&linkCode=df0&hvadid=343974906210&hvpos=1o1&hvnetw=g&hvrand=589292301534993667&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9032058&hvtargid=pla-574159861347&psc=1&tag=&ref=&adgrpid=69543897272&hvpone=&hvptwo=&hvadid=343974906210&hvpos=1o1&hvnetw=g&hvrand=589292301534993667&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9032058&hvtargid=pla-574159861347)
Golpe usando Deep Fake: https://www.tecmundo.com.br/software/216005-empresa-golpe-r-17-mi-clientes-descobrem-ceo-ia.htm
Uso malicioso de inteligência artificial: relatório completo sobre o assunto, escrito por profissionais da área, abrangendo pesquisadores, sociedade civil e indústria. (https://maliciousaireport.com/)
Apresentação sobre aprendizado de máquina adversário: apresentação de 2018 pelo pesquisador Ian Goodfellow sobre técnicas adversárias em IA. ( https://events.technologyreview.com/video/watch/ian-goodfellow-gans/)
Atlas: https://atlas.mitre.org/
Referências
[1] https://arxiv.org/pdf/1904.08653.pdf
[2] https://openai.com/blog/adversarial-example-research/