Inteligência Artificial Aplicada a Cibersegurança

Autor: Luis Felipe Padilha

 

Resumo: Inteligência Artificial, aprendizado de máquina (machine learning), aprendizado profundo (deep learning) são tecnologias que executam tarefas de aprendizado a partir de algum dado e têm como resultado uma saída (output) inteligente. Para melhor entendimento, podemos pensar que a IA (Inteligência Artificial) é uma pessoa. Inteligência Artificial ou IA se refere a sistemas de computadores que pensam e agem como humanos, e pensam e agem racionalmente. (Essex, England: Pearson, 2009). Este artigo traz um resumo de algumas técnicas de inteligência artificial aplicadas ao campo de cibersegurança. É descrito três pesquisas que desenvolveram algo relacionado e nas últimas seções é mostrado que ainda pode ser desenvolvido.

  • Introdução

Atualmente, a tecnologia avança a velocidade da luz. Desde a escrita foi-se criado muitas coisas incríveis, como o computador, modelos de negócios, telescópios, etc. Nós evoluímos. Atualmente, tecnologias inovadoras como carros autônomos, cidades inteligentes, casas inteligentes, assistentes virtuais vieram para mudar o jeito que vivemos, trazendo à realidade a Inteligência Artificial. IA veio para mudar o jeito que fazemos as coisas.

Inteligência Artificial pode nos ajudar a resolver muitos problemas, e um dos grandes problemas que enfrentamos são as ameaças cibernéticas. Tais ameaças são um grande problema na área da segurança da informação. Como vivemos em um mundo conectado 24/7 (vinte e quatro horas por dia/sete dias por semana), é importante tornas nossos sistemas seguros.

[Incidentes por Ano]
Figura 1. CERT.BR infográfico de ameaças cibernéticas. Ameaças de 1999 a 2017
    CERT.BR, uma organização brasileira criou alguns infográficos sobre ameaças reportados a eles durante anos. Figura 1 mostra um infográfico sobre ataques encontrados desde 1999 a 2017.

     Figura 3, mostra um infográfico de ameaças organizado por tipos de ataques. Muitos destes ataques são classificados pelo OWASP (Open Web Application Security Project). A Figura 2 mostra um comparative dos ranking de 2013 a 2017. Em suma, muitos dos ataques mostrados na Figura 3 ocorrem com grande frequência.

Figura 2. Owasp top 10 ranking Ataques Web

Métodos de Inteligência Artificial trazem técnicas que podem detectar ataques e comportamento anormal em uma rede de computadores. Estas técnicas são capazes detectar padrões em tráfego de rede, analisar bytes de arquivos maliciosos, classificar ataques. Inteligência Artificial ou IA se refere a sistemas de computadores que pensam e agem como humanos, e pensam e agem racionalmente. (Essex, England: Pearson, 2009). O propósito principal deste artigo é trazer um resumo de algumas técnicas de IA aplicadas a cibersegurança e mostrar que ainda pode ser desenvolvido.

As soluções de hoje não suprem a necessidade da área. As empresas precisam investir em gerenciamento de processos, como também em tecnologia para proteger suas informações consideradas valiosas. Firewall, VPN (Virtual Private Network), IDS (Intrusion Detection System), IPS (Intrusion Prevention System), proxy, são apenas alguns exemplos de como uma empresa pode se proteger.

 

[tipos-ataque.png]
Figura 3. CERT.BR Classificação de ataques por tipo
  • Trabalhos Relacionados

Esta seção descreve três trabalhos de pesquisa. Os dois primeiros trabalhos descrevem algumas técnicas de machine learning usadas para melhorar a detecção de conteúdo malicioso em tráfego de rede.

Abaixo, é descrito brevemente alguns métodos de inteligência artificial, como machine learning, deep learning, redes neurais (neural networks), aprendizado supervisionado (supervised learning) e aprendizado não supervisionado (unsupervised learning).

  • Machine Learning: prática que utiliza algoritmos para analisar dados, aprender, e fazer predições sobre algo [7].
  • Deep Learning: um ramo de machine learning, cujos algoritmos buscam representar a função cerebral humana [2];
  • Redes Neurais: um sistema de computador construído de elementos simples, altamente conectados, que processam informação através de seu estado dinâmico de respostas [Caudill, Maureen (1989)];
  • Aprendizado Supervisionado: realiza um mapa de função de dados de entrada para dados de saída. Exemplo: variável X e variável Y. A primeira representa os dados de entrada e a segunda representa os dados de saída. Esta técnica realizará um mapeamento de função de X para Y, ou seja, Y=f(x). Podem ser classificados da seguinte forma: algoritmos de regressão e algoritmos de classificação [1];
  • Aprendizado não supervisionado: Exemplo: quando se há apenas os dados de entrada, porém, não há os dados de saída. Esta técnica irá aprender com os dados de entrada e realizar associações. Podem ser classificados como: clustering ou algoritmos de associação [1];

Alguns métodos descritos anteriormente são mencionados nas pesquisas citadas neste artigo. De fato, todas as técnicas, se aplicados no ramo de segurança da informação ajudariam sobremaneira a identificar conteúdo malicioso em redes de computadores, podendo trazer uma segurança robusta próxima de cem por cento (100%).

A primeira pesquisa propunha um novo algoritmo que utiliza duas técnicas: SVM (Support Vector Machines) e Simulating Annealing. O propósito principal é identificar e classificar comportamento anormal em um tráfego de rede e diminuir falsos positivos e falso negativos.

SVM (Support Vector Machines): SVM ou Suport Vector Machines são um tipo de técnica de machine learning; capazes de realizar uma gama de atividades de classificação [Chowdhurry, Nasimuzzaman and Ferens, Ken]. Pode ser entendido também como um grupo de técnicas de aprendizado supervisionado que são capazes de analisar dados e reconhecer padrões. Um outro método utilizado é o Simulated Annealing que funciona por otimizações contínuas; combinações aleatórias.

Essa pesquisa identifica alguns problemas em utilizar estas técnicas para identificação de intrusos. Um destes problemas é a identificação por assinaturas, que envolve analisar um dado tráfego de rede em busca de uma série de bytes ou sequência de pacotes conhecidos por serem anomalias. Uma grande desvantagem deste método é a facilidade de ser desenvolvido e entendido qual comportamento de rede necessita ser identificado, sendo passível de erro [Chowdhurry, Nasimuzzaman and Ferens, Ken].

Um outro método é o tipo a detecção baseada em anomalia. Este método busca identificar algumas características comportamentais de um tráfego de rede, por exemplo, inconsistências na rede. Se um novo ataque para o qual uma assinatura não é conhecida, pode ser identificado se este se comporta de forma diferente do comportamento normal da rede. Por outro lado, este método falha quando um comportamento considerado anormal é identificado como comportamento normal. Assim, o método não consegue identificar de forma satisfatória o ataque.

Os pesquisadores utilizaram um banco de dados para realizar a execução desta técnica. Os resultados foram promissores, pois puderam diminuir falso negativos e falso positivos tendo como resultados 0,09% e 1,15%, respectivamente.

A segunda pesquisa usou deep learning para detectar malware (tipo de arquivo malicioso). Foi criado um ambiente no qual os ataques e a tentativa de identificá-los foram realizados. Os ataques foram realizados da seguinte forma: os pesquisadores modificaram alguns bytes dos arquivos executáveis e então executando no ambiente criado. Esta pequena modificação pode facilmente burlar a detecção de tais arquivos maliciosos, colocando em xeque a técnica utilizada.

Para o algoritmo utilizado nesta pesquisa, os dados precisam ser provisionados, para que o algoritmo funcione de forma satisfatória. Não é possível realizar cada byte e classifica-los como arquivo malicioso e comportamento anormal, a menos que algum dado seja provisionado para que o algoritmo seja treinado.

É necessário que o algoritmo aprenda antes de realizar qualquer detecção ou classificação. Algoritmos de aprendizado não conseguem aprender de bases que são difíceis de manipular nem predizer características de um arquivo malicioso, a menos que proativamente algum dado seja provisionado ao algoritmo para que tenha o mínimo de conhecimento possível do que irá identificar, e uma base dados seja provisionada par que então o algoritmo posso identificar quais bytes possuem características de um arquivo malicioso. [Kolosnjaji, Bojan and Demontis, Ambra.

A Figura 4 representa a rede neural profunda utilizada nesta pesquisa para executar os ataques e testar o algoritmo de machine  learning aplicado no ambiente criado. O propósito desta rede é identificar executáveis como arquivos maliciosos ou arquivos normais, que não causam danos ao sistema.

Abaixo é descrito alguns passos da rede implementada.

  • Primeiro, é usado um arquivo executável (malware);
  • Alguns bytes aleatórios são mudados;
  • Arquivo malicioso é enviado à rede;
  • Algoritmo tenta identificar a ameaça;
  • Algoritmo identifica a ameaça como benigna ou maligna.

Abaixo é demonstrado a Figura 4, a rede neural proposta por Raff et al.

 

Figura 4. Arquitetura da rede neural para detecção de arquivos maliciosos.

    A última pesquisa trata de falhas em técnicas de Inteligência Artificial e seu futuro. Os pesquisadores reportaram falhas importantes de IA e como seu futuro pode ser. No campo de cibersegurança não existe algo 100% (cem por cento) seguro; o sistema sempre terá uma falha. Com técnicas de inteligência artificial aplicadas a este ramo, é possível provisionar um nível de segurança robusto em qualquer dispositivo, a menos que as ferramentas sejam bem desenvolvidas.

Uma das falhas reportadas se trata de algoritmos genéricos de IA, que trazem um grande mal impacto em um sistema se executam de forma correta. É importante entender como uma aplicação de IA é desenvolvida desde seu início, para que assim tenhamos um entendimento claro de que como é seu funcionamento. Em cibersegurança há algo interessante que é a troca de informações entre os profissionais do ramo. É muito interessante para uma comunidade entender o funcionamento de uma tecnologia desde sua concepção, para que hajam mudanças e melhorias. Com aplicações de IA não pode ser diferente, pois, se entendemos o núcleo da aplicação, podemos desenvolver aplicações melhores que provisionem melhor segurança para nossos sistemas.

  • Próximos passos

Detecção de conteúdo malicioso em rede de computadores baseada em assinaturas não funciona de forma satisfatória, e é necessário que outros métodos surjam para melhor identificar tais ameaças. Em um tráfego de rede é importante conhecer a origem do pacote e se o mesmo é autêntico ou não.

Há técnicas que precisam ser mais exploradas, como: árvores de decisão, aprendizado profundo, simulated annealing e redes neurais. Estas técnicas podem ajudar sobremaneira o ramo de segurança da informação, trazendo soluções que podem ser aderidas pelas empresas e governos.

Abaixo é mostrado alguns tópicos, dados as pesquisas apresentadas neste artigo, que podem melhorar a classificação do comportamento de um tráfego de rede, detecção e classificação de arquivo malicioso, e ter capacidade de poder distinguir comportamento anormal de comportamento anormal em uma rede empresarial.

  • Uso de um algoritmo que lide melhor com dados que variam bastante em uma dada rede;
  • Criação de um sistema de simulado para teste de intrusões e técnicas de machine learning;
  • Estudo de como melhorar o controle de tráfego de rede e diminuir falso positivos e falso negativos;
  • Uso de complexo algoritmos, como a técnica de aprendizado supervisionado para compreender o ambiente e executar suas funções de uma forma performática.

 

  • Conclusão

Todas as pesquisas trazem exemplos de técnicas aplicadas de machine learning. Métodos complexos precisam ser pesquisados e testados. É importante reunir tais pesquisas e futuras e realizar um gráfico comparativo, mostrando as técnicas mais relevantes.

Segurança da informação pode ter um papel significativo se as técnicas de machine learning forem aprimoradas, falso negativos e falso positivos poderiam ser sanados com facilidade e, anomalias de comportamento poderiam ser facilmente classificadas.

Apesar de todos os esforços para classificar e identificar malware, mudando apenas alguns bytes de um arquivo executável pode facilmente burlar a técnica que está sendo aplicada, trazendo um desafio enorme para o ramo de segurança da informação. O objetivo da cibersegurança é reduzir o número de ciberataques em um sistema; o objetivo da IA é dar certeza de que nenhum ataque capaz de burlar o sistema tenha tido sucesso.

  • Referências

[1] Brownlee, Jason (2016). ”Supervised and Unsupervised Machine Learning Algorithms”.

[2] Brownlee, Jason (2016). ”What is Deep Learning?”.

[3] OWASP Top 10 – 2017 – The Ten Most CriticalWeb Application Security Risks.

[4] Chowdhury , Nasimuzzaman and Ferens, Ken. ”Network Intrusion Detection Using Machine Learning”.

[5] V. Yamploskiy, Romand and Spellchecker, M. S. ”Artificial Intelligence Safety and Cybersecurity: a Timeline of AI Failures”

[6] Kolosnjaji, Bojan and Demontis, Ambra. ”Aversarial Malware Binaries: Evading Deep Learning for Malware Detection in Executables”

[7] Coopeland, Michael (2016). ”What’s the Difference Between Artificial Intelligence, Machine Learning and Deep Learning?”

[8] WISC. ”A Basic Introduction to Neural Netoworks”