Skip to content

Arquitetura

Lucas Chagas edited this page Apr 10, 2020 · 1 revision

Arquitetura da Ferramenta TeMIA-NT

A ferramenta TeMIA-NT possui uma arquitetura modular, com os 3 principais módulos sendo: coleta de dados, processamento e visualização. Esta arquitetura pode ser vista na imagem abaixo:

Módulo de Coleta de Dados

O módulo de coleta realiza a aquisição e o armazenamento dos dados. "Farejamos" o pacote de rede ou espelhamos os pacotes do comutador de rede usando a biblioteca libpcap. Em seguida, o módulo de captura converte os pacotes de dados da rede em fluxos de rede para serem analisados ​​posteriormente. Um fluxo de rede é uma abstração que caracteriza as conexões de rede. Geralmente, um fluxo é uma sequência de pacotes com um conjunto idêntico de campos de cabeçalho, por exemplo, uma sequência de pacotes com o mesmo endereço IP de origem e endereço IP de destino. Uma definição bem conhecida do fluxo de rede usa a quíntupla do cabeçalho do pacote TCP/IP: endereço IP de origem, endereço IP de destino, porta de origem, porta de destino e protocolo. A ferramenta utiliza uma aplicação em Python baseada no flowtbag para abstrair pacotes em fluxos. Para caracterizar um fluxo, o flowtbag considera uma janela de tempo e utiliza 45 características. Os fluxos são então publicados em um serviço de produtor/consumidor, fornecido pelo Apache Kafka. Também pode-se usar o Zeek (anteriormente BRO) para capturar os eventos de rede.

Módulo de Processamento

O módulo de processamento distribuído é o módulo mais importante da ferramenta TeMIA-NT, que classifica os fluxos como maliciosos ou benignos através de algoritmos de aprendizado de máquina (ML). O núcleo do módulo de processamento distribuído é a ferramenta Apache Spark. Este módulo fornece a escalabilidade, a flexibilidade, a inteligência e a rapidez da análise de dados por meio de algoritmos de aprendizado de máquina. O Spark processa os dados em um aglomerado computacional seguindo o modelo mestre/escravo, onde os escravos têm a capacidade de expandir e reduzir recursos, tornando o sistema escalável. A ferramenta TeMIA-NT oferece a possibilidade de usar algoritmos diferentes de aprendizado de máquina, como: árvore de decisão, árvore aleatória, bayes ingênuos, svm e outros. Quando o fluxo alcança módulo de processamento distribuído, pode-se usar um algoritmo de seleção de características para selecionar as características mais importantes para a classificação de ameaças. Outra possibilidade é usar a redução de dimensionalidade, como a popular análise de componentes principais (PCA). Todos os algoritmos são otimizados pelo ajuste do hiperparâmetro em grade. Agora está em desenvolvimento a extração automática de recursos obtida pelo algoritmo node2vec. Na etapa de processamento, os metadados processados ​​são enriquecidos por informações diferentes, como a geolocalização dos IPs analisados.

Módulo de Visualização

O último módulo da sequência é o módulo de visualização. A ferramenta TeMIA-NT usa o ElasticSearch e o Kibana para armazenar e visualizar os resultados. Assim, o módulo de processamento distribuído envia os resultados computados ao Elasticsearch, que fornece um serviço rápido de busca e armazenamento. O Elasticsearch se comunica por meio de consultas através da interface do usuário executada no ambiente Kibana, o qual apresenta os resultados para que estes possam ser visualizados pelo usuário.

Clone this wiki locally