Por Paulo Freitas de Araujo Filho
Este é o quinto e último post do blog de nossa série “Fortalecendo Sistemas de Detecção de Intrusão com Machine Learning”, no qual discutimos o uso de aprendizagem de máquina em sistemas de detecção de intrusão (IDSs). Nos posts anteriores, discutimos as diferenças entre detecção de intrusão baseada em assinaturas e anomalias, e três técnicas não supervisionadas para detecção de intrusões: clustering, one-class novelty detection, e autoencoders. Agora, apresentamos uma quarta técnica, Generative Adversarial Networks (GANs) [1], e explicamos como ela pode ser usada para detectar atividades maliciosas em IDSs baseados em anomalias.
Generative Adversarial Networks
Ao invés de ser uma única rede neural, as GANs são uma estrutura que consiste em duas redes neurais: gerador e discriminador. Estas redes têm objetivos diferentes e competem entre si em um processo de treinamento adversarial, de modo que quando uma delas melhora, a outra deve melhorar e acompanhar o ritmo. É como se fossem dois jogadores de xadrez e, quando um deles começa a ganhar, o outro treina um pouco mais para reverter o placar. Como resultado, ambos os jogadores acabam melhorando seu desempenho e alcançando melhores resultados [1]-[3].
As GANs foram originalmente desenvolvidos em [1] para criar imagens. Os autores de [1] projetaram o gerador da GAN de modo que ele fosse capaz de criar imagens falsas, mas que parecessem imagens reais, a partir de vetores aleatórios. Seu discriminador proposto, por sua vez, tinha a tarefa de distinguir entre as imagens que eram reais e as que eram criadas pelo gerador.
Assim, dado um conjunto de imagens de gatos, por exemplo, o gerador começa a entender como são essas imagens e como produzir novas imagens de gatos, enquanto o discriminador aprende a distinguir entre imagens de gatos reais e falsas. Se o discriminador começa a acertar na maioria das vezes, o gerador faz um esforço extra ajustando um pouco mais seus pesos para que ele crie melhores imagens de gatos que o discriminador não consiga reconhecer. Então, é o discriminador que faz um esforço extra para conseguir distinguir novamente entre imagens reais e falsas de gatos. Esse processo continua até que tanto o gerador quanto o discriminador se estabilizem. A Figura 1 mostra a estrutura de treinamento da GAN para um conjunto de imagens de dígitos manuscritos.
A Figura 2 mostra os dígitos manuscritos criados pelo gerador de uma GAN em suas primeiras cinco colunas e os dígitos manuscritos reais em sua última coluna.
Embora gerar dígitos manuscritos ou imagens de gatos possa parecer bobagem, as GANs são uma estrutura extremamente sofisticada e poderosa. O gerador da GAN modela implicitamente o sistema, ou seja, aprende implicitamente quais padrões estão presentes em um determinado conjunto de dados, o que permite aplicações mais poderosas [5]. Por exemplo, a Figura 3 mostra o vídeo de uma zebra que foi gerado a partir do vídeo de um cavalo usando GANs.
Figura 3. Zebra gerada a partir de um cavalo usando GANs (obtido a partir de [5])
Detecção de intrusões com GANs
Ok, parece interessante. Mas como uma GAN pode ser usada para detectar intrusões? Embora as GANs tenham sido aplicadas pela primeira vez em imagens, elas podem ser usadas para identificar padrões em qualquer tipo de dados, como fluxos de rede, registros de eventos do Windows e até mesmo medições de sensores em uma fábrica [2], [3]. Assim, se uma GAN for treinada usando apenas dados benignos de redes e sistemas, o gerador vai aprender como esses dados se comportam e como produzir dados semelhantes a ele. O discriminador, por outro lado, aprenderá como distinguir entre dados benignos e dados falsos produzidos pelo gerador. Calma aí! Se o discriminador distingue entre dados benignos reais e falsos, ele identifica anomalias e amostras maliciosas, mesmo que sejam semelhantes aos dados benignos. Portanto, o discriminador da GAN pode ser usado para detectar intrusões. Assim, após o seu treinamento, o discriminador recebe amostras de dados e produz um valor chamado discrimination loss que corresponde a uma probabilidade ou score que indica o quão provável esses dados representam anomalias [2].
Além disso, trabalhos recentes demonstraram que o gerador da GAN também pode contribuir para a detecção de anomalias através do cálculo de um erro de reconstrução, que é então combinado com a discrimination loss [2], [3]. Este erro de reconstrução, ou reconstruction loss, corresponde ao erro residual entre a amostra de dados sendo avaliada e sua versão reconstruída obtida do gerador da GAN. Portanto, um IDS baseado em GANs pode decidir se uma amostra é anômala combinando a discrimination loss e a reconstruction loss em um único score de anomalia, de modo que amostras com grandes scores sejam consideradas potencialmente maliciosas [2], [3].
O trabalho em [2] adotou essa abordagem e propôs o FID-GAN, um IDS baseado em GAN para detecção de ataques cibernéticos em uma estação de tratamento de água. Ele conduziu experimentos em três conjuntos de dados: o SWaT [6] e o WADI [7], que contém medições de sensores de uma estação de tratamento de água, e o conjunto de dados NSL-KDD [8], que contém dados de tráfego de rede. Ao combinar a discrimination loss e a reconstruction loss, o FID-GAN conseguiu taxas de detecção mais altas do que quando usava esses valores individualmente. A Figura 4 mostra as curvas ROC (taxas de verdadeiro positivo versus falso positivo) do FID-GAN nos conjuntos de dados SWaT, WADI, e NSL-KDD, respectivamente. A área sob esta curva (AUC), representada na Figura 4, representa o quão bem as amostras são corretamente classificadas como benignas ou maliciosas. Consulte [2] para obter mais informações sobre o FID-GAN.
Implantação
Como apresentado em nosso post anterior no blog, que discutia IDSs baseados em autoencoders, o Deep Learning Toolkit (DLTK) do Splunk nos permite implementar e utilizar algoritmos de deep learning. Assim, podemos aproveitá-lo para implantar IDSs baseados em GANs, como o proposto em [2]. A Figura 5 ilustra a integração entre Splunk e um ambiente docker com suporte para os frameworks mais comuns de deep learning, TensorFlow e Pytorch. Favor consultar [9] e [10] para maiores informações.
Desafios e obstáculos
Como outros algoritmos, as GANs detectam intrusões usando apenas dados benignos de redes e sistemas. Assim, é uma técnica muito útil quando é difícil ou caro obter dados de ataque rotulados, o que é uma situação muito comum. Por outro lado, ao fazer isso, eles exigem amostras de treinamento que estejam livres de ataques. Caso contrário, o modelo treinado poderia acreditar que as amostras maliciosas são benignas.
Além disso, embora IDSs baseados em GAN tenham mostrado uma notável capacidade de identificar anomalias que são muito difíceis de se detectar, superando muitos outros IDSs, eles são muito mais desafiadores de se treinar. Assim, várias técnicas estão sendo propostas para melhorar as GANs e tornar mais fácil o seu treinamento [11], [12].
Finalmente, como qualquer outro classificador baseado em aprendizagem de máquina, IDSs baseados em GANs são vulneráveis a ataques adversariais, que criam e introduzem pequenas perturbações imperceptíveis que comprometem a acurácia do classificador. Portanto, enquanto esses IDSs devem ser aperfeiçoados para se tornarem robustos contra ameaças tão sofisticadas, ainda não existe uma solução estabelecida contra ataques adversariais, o que é um campo de pesquisa ativo [13].
Com grandes poderes vem grandes responsabilidades
Como qualquer outra ferramenta poderosa, as GANs também podem ser usadas para o mal. Embora possam produzir IDSs extremamente poderosos, GANs também podem ser usadas para produzir ataques adversariais. Ou seja, podem ser empregadas para produzir padrões ligeiramente modificados que enganam IDSs baseados em aprendizagem de máquina e os induzem a não reconhecer amostras maliciosas como maliciosas [13]. E vai muito além disso, as GANs também podem ser usadas para criar perturbações que enganam detectores de malware[13], classificadores de modulação de receptores sem fio [14], e até mesmo para criar deep fakes e burlar sistemas biométricos [15].
Conclusão
Neste post, discutimos como IDSs podem tirar proveito de GANs para detectar anomalias, combinando a discrimination loss e a reconstruction loss. Além disso, destacamos como as GANs também podem ser usadas para o mal! Na Tempest, estamos investigando e usando tais técnicas para melhor proteger seu negócio! Esperamos que você tenha gostado desta série de posts no blog! Fique atento aos nossos próximos posts e séries!
Referências
[1] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio, “Generative adversarial nets,” in Proc. of NIPS, 2014, pp. 2672–2680.
[2] P. Freitas de Araujo-Filho, G. Kaddoum, D. R. Campelo, A. Gondim Santos, D. Macêdo and C. Zanchettin, “Intrusion Detection for Cyber–Physical Systems Using Generative Adversarial Networks in Fog Environment,” in IEEE Internet of Things Journal, vol. 8, no. 8, pp. 6247-6256, 15 April15, 2021, doi: 10.1109/JIOT.2020.3024800.
[3] D. Li, D. Chen, B. Jin, L. Shi, J. Goh, and S.-K. Ng, “MAD-GAN: Multivariate anomaly detection for time series data with generative adversarial networks,” in Proc. Springer Int. Conf. Artif. Neural Netw., 2019, pp. 703–716.
[4] Deep Learning Book. “Capítulo 54 – Introdução às Redes Adversárias Generativas (GANs – Generative Adversarial Networks)”. Acesso em: 21 de julho, 2022. [Online]. Disponível em: https://www.deeplearningbook.com.br/introducao-as-redes-adversarias-generativas-gans-generative-adversarial-networks/
[5] J. Hui. “GAN — What is Generative Adversarial Networks GAN?”. Acesso em: 21 de julho, 2022. [Online]. Disponível em: https://jonathan-hui.medium.com/gan-whats-generative-adversarial-networks-and-its-application-f39ed278ef09
[6] The Secure Water Treatment (SWaT), iTrust Singapore Univ. Technol. Design (SUTD), Singapore, 2015. [Online]. Disponível em: https://itrust.sutd.edu.sg/itrust-labs-home/itrust-labs_swat/
[7] The Water Distribution (WADI), iTrust Singapore Univ. Technol. Design (SUTD), Singapore, 2016. [Online]. Disponível em: https://itrust.sutd.edu.sg/itrust-labs-home/itrust-labs_wadi/
[8] NSL-KDD Data Set, Can. Inst. Cybersecurity, Fredericton, NB, Canada. Accessed: Apr. 10, 2020. [Online]. Disponível em: https://www.unb.ca/cic/datasets/nsl.html
[9] D. Federschmidt, P. Salm, L. Utz, G. Ainslie-Malik, P. Drieger, A. Tellez, P. Brunel, R. Fujara, “Splunk App for Data Science and Deep Learning (DLTK)”, Acesso em: 23 de junho, 2022. [Online]. Disponível em: https://splunkbase.splunk.com/app/4607/#/details
[10] D. Lambrou, “Splunk with the Power of Deep Learning Analytics and GPU Acceleration”, Acesso em: 23 de junho, 2022. [Online]. Disponível em: https://www.splunk.com/en_us/blog/tips-and-tricks/splunk-with-the-power-of-deep-learning-analytics-and-gpu-acceleration.html
[11] M. Arjovsky, S. Chintala, and L. Bottou, “Wasserstein generative adversarial networks,” in Proc. Int. Conf. Mach. Learn., 2017, pp. 214–223.
[12] I. Gulrajani, F. Ahmed, M. Arjovsky, V. Dumoulin, and A. Courville, “Improved training of Wasserstein GANs,” 2017, arXiv:1704.00028.
[13] J. Liu, M. Nogueira, J. Fernandes and B. Kantarci, “Adversarial Machine Learning: A Multilayer Review of the State-of-the-Art and Challenges for Wireless and Mobile Systems,” in IEEE Communications Surveys & Tutorials, vol. 24, no. 1, pp. 123-159, Firstquarter 2022, doi: 10.1109/COMST.2021.3136132.
[14] P. Freitas de Araujo-Filho, G. Kaddoum, M. Naili, E. T. Fapi and Z. Zhu, “Multi-Objective GAN-Based Adversarial Attack Technique for Modulation Classifiers,” in IEEE Communications Letters, vol. 26, no. 7, pp. 1583-1587, July 2022, doi: 10.1109/LCOMM.2022.3167368.
[15] T. T. Nguyen, C. M. Nguyen, D. T. Nguyen, D. T. Nguyen, and S. Nahavandi, “Deep learning for deepfakes creation and detection: a survey,” arXiv preprint arXiv:1909.11573, 2019.
Outros artigos dessa série:
Fortalecendo Sistemas de Detecção de Intrusão com Machine Learning
Parte 1 de 5: Sistemas de Detecção de Intrusão baseados em Assinaturas versus Anomalias
Parte 2 de 5: Sistemas de Detecção de Intrusão Não Supervisionados usando Clustering
Parte 3 de 5: Sistemas de Detecção de Intrusão baseados em One-Class Novelty Detection
Parte 4 de 5: Detecção de Intrusão usando Autoencoders
Parte 5 de 5: Detecção de Intrusão usando Generative Adversarial Networks