Deteção de intrusões em redes informáticas utilizando redes neuronais artificiais - Ribeiro, Francisco André Guimarães (2011)
A bem sucedida deteção de intrusões em redes de computadores, é um problema para o qual não existe uma solução perfeita. Em geral, acredita-se que este é um dos problemas mais críticos da sociedade moderna, uma vez que, neste momento não é possível assegurar que alguém, algures não está a visualizar o tráfego por nós gerado, ou, num caso mais extremo, não podemos assegurar que os dados que recebemos são dados autênticos. Para solucionar este problema podemos recorrer à ciência criptográfica, de forma a proteger os nossos dados, no entanto este recurso não é suportado por todos os prestadores de serviços. Sendo que mais uma vez surge o principio que prevê que a nossa privacidade seja assegurada pelos prestadores de serviços. Atualmente, a maioria das aplicações existentes para detetar intrusões de redes, ou pelo menos as mais utilizadas, recorrem-se de técnicas de Data Mining ou algoritmos estatísticos, de forma a detetar padrões e encontrar semelhanças com registos prévios de ataques, e monitorização continua por parte de um administrador do sistema. Tendo estas técnicas a desvantagem de gerar um elevado número de falsos positivos, o que limita obviamente a sua eficiência. Por esta razão estas soluções estão longe de ser perfeitas, existindo por isso a necessidade de aprofundar o estudo no campo de forma a desenvolver uma aplicação autodidata e auto-suficiente que possa fazer uma análise em tempo real do tráfego, detetando mais eficientemente ocorrências anormais. Uma ideia que pode permitir uma maior eficiência baseia-se na utilização de Redes Neuronais Artificiais, pensamento que tem ganho cada vez mais seguidores com o passar do tempo. O funcionamento desta solução baseia-se no comportamento do cérebro humano, e na forma como este tem capacidade para aprendizagem, errando e adquirindo conhecimento. Este algoritmo é mais complexo do que os utilizados até agora, mas é também de maior confiança e cuja necessidade de manutenção é menor. Na verdade, uma RNA é um conjunto de neurónios, divididos por camadas que têm a capacidade de realizar operações, obtendo determinados resultados. Com esta solução propomo-nos a reduzir o número de falsos alertas, uma vez que estes são um flagelo que atinge os administradores de sistemas. Cada falso positivo ou negativo gerado exige uma reconfiguração por parte do gestor de forma a que haja a correção, o que leva a uma perda de performance, tempo e confiança na aplicação. Com a capacidade de aprendizagem e adaptação ao meio, as RNA ganham um maior foco no sentido de melhorar estes resultados. Neste projeto, o foco estará direcionado a uma implementação de RNA em sistemas Java, fazendo a integração de dados obtidos de um IDS generalizadamente utilizado.