Document details

Cyberthreat discovery in open source intelligence using deep learning techniques

Author(s): Branco, Eunice Picareta

Date: 2017

Persistent ID: http://hdl.handle.net/10451/30699

Origin: Repositório da Universidade de Lisboa

Subject(s): Inteligência artificial; Processamento de linguagem natural; Redes neuronais; Aprendizagem profunda; Detecção de ameaças de segurança; Teses de mestrado - 2017; Departamento de Informática; Departamento de Informática; Departamento de Informática


Description

Face à necessidade crescente de se processar grandes quantidades de dados relativos a ameaças de segurança, fomos cativados pelo desafio da descoberta de ameaças cibernéticas em fontes abertas através do uso de técnicas de aprendizagem automática. Em termos de dados, isto significa que trabalhámos com informação recolhida de fontes abertas como o Twitter. O que distingue o nosso trabalho encontra-se no modo como escolhemos abordar este desafio. A nossa hipótese é a de que processar tais quantidades de dados através de métodos de aprendizagem automática representa uma vantagem significativa em termos de eficiência e adequação, pelo que recorremos a redes neuronais. Escolhemos esta abordagem uma vez que as abordagens de aprendizagem automática têm vindo a ganhar destaque merecido uma vez que asseguram uma maneira robusta de resolver um número de tarefas extremamente complexas no contexto de problemas de big data. Esta dissertação introduz conceitos e noções gerais em que o nosso trabalho se baseia, apresenta o trabalho relacionado consultado por forma a ser eventualmente útil em trabalhos futuros, apresenta também o trabalho que realizámos, os resultados obtidos, e elenca sugestões sobre linhas de progresso promissoras e trabalho futuro. Antes de discutir resultados, é necessário começar por introduzir conceitos centrais, o primeiro dos quais sendo o de aprendizagem automática. Aprendizagem automática (machine learning) pode ser definida como a área ou abordagem da inteligência artificial de forma a que o sistema tenha a aptidão de aprender e melhorar com a experiência. Isto significa que não é necessária programação explícita para resolver o problema de partida pois o sistema de aprendizagem procura por regularidades nos dados e adquire a capacidade de tomar melhores decisões com base nos dados de exemplo que recebe. Aprofundando esta abordagem, uma rede neuronal é um paradigma de processamento inspirado no modo como processos biológicos nervosos, como os que ocorrem no cérebro humano, processam informação. A chave deste paradigma é a conexão entre os elementos básicos do sistema. Este é composto por um grande número de elementos de processamento, os neurónios, organizados em rede que entregam as suas saídas uns aos outros para resolverem problemas específicos, cabendo notar que uma rede neuronal é tipicamente condicionada no seu desenho pelo problema que se pretende que resolva, ou seja, é configurada para uma única aplicação (e.g. reconhecimento de padrões, classificação de dados, etcetera). De entre as técnicas de aprendizagem automática, a aprendizagem profunda (deep learning) tem adquirido grande relevância e vários projectos têm procurado explorar as suas vantagens. Trata-se de uma subárea da aprendizagem automática, e em particular das redes neuronais, sendo que o que distingue esta abordagem consiste no facto de os dados de entrada passarem por várias camadas funcionais de neurónios, usualmente não lineares, até serem totalmente processados. No nosso projecto, a rede neuronal foi aplicada na resolução do problema que consiste na classificação de tweets em itens que se referem a uma ameaça de segurança, ou itens não relevantes a esse respeito. Com essa finalidade, foi implementada uma rede neuronal convolucional, que comparativamente necessita de pouca intervenção humana para ser posta a funcionar. A vantagem de se aliviar a necessidade de tal intervenção também se prende com o tipo da rede, que pode ser supervisionada ou não supervisionada. Em aprendizagem supervisionada, um conjunto de dados de treino injectado na rede é composto por pares de entrada/saída, sendo que a entrada é tipicamente composta por um vector e a saída é o resultado pretendido para a entrada respetiva. A rede é treinada sobre todo o conjunto de dados para depois ser aplicada a novas situações ou dados de entrada desconhecidos. É assim necessário que o algoritmo de processamento generalize a partir dos dados de treino. No caso da aprendizagem não supervisada, os dados injectados na rede são apenas de entrada, o que obriga a rede a inferir funções que descrevem a possível estrutura subjacente aos dados, pois a sua classificação explícita não é fornecida à rede. Como os dados não estão associados à sua classificação, não é trivial avaliar a adequação do resultado obtido pela rede neste caso. Outro conceito importante é o de redes profundas (deep) vs. rasas (shallow). As redes neuronais são organizadas por camadas. Estas camadas são compostas por nós inter-conectados que contêm funções de activação, compreendendo a camada de entrada, as camadas escondidas, que pode englobar várias camadas para processamento de dados, e a camada de saída. O termo redes rasas é usado para descrever as redes que contêm apenas uma ou duas camadas escondidas, que são funcionalmente idênticas. No caso de redes profundas, estas tendem a ter mais camadas escondidas, com grupos de camadas com funcionalidades distintas. A terminologia mais comummente aceite é a de que para uma rede ser considerada profunda tem de conter pelo menos três camadas que são escondidas e funcionalmente distintas. As redes convolucionais são redes profundas compostas por várias camadas com funções não lineares aplicadas em cada nó. Em redes normais, cada neurónio de entrada está conectado a um neurónio de saída na camada seguinte. As redes neuronais convolucionais, por sua vez, optam antes por aplicar convoluções sobre a camada de entrada para computar a saída, em que cada região de entrada está conectada a um neurónio de saída, consistindo numa rede de conexões locais. Outro aspecto relevante das redes convolucionais é o de que durante a fase de treino, a rede aprende os valores dos seus filtros automaticamente baseando-se na tarefa a ser aprendida e executada. A última camada destas redes é então um classificador que usa as características (features) de alto nível inferidas pela rede. Como acabámos de assinalar, uma rede profunda tem várias camadas escondidas e esse é o modelo da rede que adoptámos no nosso trabalho. A primeira camada da nossa rede transforma palavras, e como consequência tweets, emvectores. Depois desta camada, passa-se às camadas de convolução, que iteram sobre os vectores de palavras embutidos (word embeddings) realizando convoluções sobre múltiplos filtros com janelas de dimensões diferentes. No nosso caso, optámos por ter três filtros, sendo que cada um itera sobre uma quantidade de palavras diferente para cada convolução. De seguida, para evitar que a rede se torne demasiado específica aos dados de treino (overfitting), temos uma camada de abandono (dropout) que obriga 50% dos neurónios a desligarem-se por forma a que os neurónios não se co-adaptem em demasia e por conseguinte sejam capazes de aprender características utéis individuais e independentes. Por último, uma camada de softmax é usada para classificar os dados de saída como positivos (tweet que menciona ameaças de segurança), ou negativos (caso contrário). Mesmo com uma rede convolucional, é preciso acertar vários parâmetros para que a rede seja eficiente e produza bons resultados. Após ter uma base de parâmetros com que a rede produz bons resultados, tratámos de avaliar com recurso a validação cruzada (cross validation) os parâmetros óptimos para a rede, variando apenas aqueles que verificámos que produziam a maior diferença nos resultados. Um dos parâmetros que foi feito variar foi o tamanho de um batch. Na análise dos nossos resultados, verificamos que tamanhos menores de batch levam a resultados piores. Atribuímos estes resultados piores ao facto de a rede treinar demasiado sobre o mesmo conjunto de dados, pois um batch menor implica um número maior de passos (steps) sobre um mesmo conjunto de dados. Outra procura de melhorar o desempenho da rede consistiu em tomar tweets que são positivos para uma dada infraestrutura e adicioná-los ao conjunto de dados para outra infraestrutura como tweets negativos (e.g. um tweet positivo para a Oracle é adicionado como um tweet negativo para o Chrome). Emgeral, o conjunto de dados de base obteve melhores resultados do que quando era assim modificado, sendo que atribuímos esta diferença ao facto de os dados de treino ficarem demasiado desequilibrados entre tweets positivos e negativos. De notar no entanto, que o conjunto de dados assim modificado teve, em geral, menos variância de resultados entre batches, devido provavelmente ao conjunto de dados de treino ser mais extenso. Não obstante a diferença de parâmetros, em geral a nossa rede apresentou bons resultados. Face aos resultados francamente positivos obtidos achamos que a instalação da nossa solução num centro de segurança operacional é viável e ajudará a detectar informação relevante acerca de várias ameaças possíveis que é veiculada de forma massiva através de tweets.

Responding to an increasing need to process large amounts of data regarding security threats, in the present dissertation we are addressing the topic of cyberthreat discovery in Open Source Intelligence (OSINT) using deep learning techniques. In terms of data sources, this means that we will be working with information gathered in web media outlets such as Twitter. What differentiates our work is the way we approach the subject. Our standpoint is that to process such large amounts of data through deep learning architectures and algorithms represents a significant advantage in terms of efficiency and accuracy, which is why we will make use of neural networks. We adopt this approach given that deep learning mechanisms have recently gained much attention as they present an effective way to solve an increasing number of extremely complex tasks on very demanding big data problems. To train our neural networks, we need a dataset that is representative and as large as possible. Once that is gathered we proceed by formulating adequate deep learning architectures and algorithmic solutions. Our ultimate goal is to automatically classify tweets as referring, or not, to cyberthreats in order to assess whether our hypothesis gets confirmed. This dissertation is also meant to introduce general concepts and notions on the basis of which our work is deployed and to provide an overview of related work in such a way that this may be useful for future work. It also aims at providing an account of the work undertaken and of the obtained results, and last but not least to suggest what we see as promising paths for future work and improvements.

Tese de mestrado, Informática, Universidade de Lisboa, Faculdade de Ciências, 2017

Document Type Master thesis
Language English
Advisor(s) Ferreira, Pedro Miguel Frazão Fernandes; Bessani, Alysson Neves, 1978-
Contributor(s) Branco, Eunice Picareta
facebook logo  linkedin logo  twitter logo 
mendeley logo

Related documents

No related documents