Detecção de tráfego Skype na Web através de Redes Neurais Artigo Original: Freire, P. E., Ziviani, A., and Salles, R. M. (2008). Detecting skype flows in web traffic. Proceedings of IEEE NOMS08, Salvador, Brazil. IEEE. Apresentado por Joilson Alves Junior Gerência de Redes - Mestrado em Informática - UFPR ROTEIRO Proposta Inicial (Fase I) Introdução Problema Proposta Processos de classificação Implementacão Resultados Conclusões Proposta Inicial - Fase I Pretendemos estudar a aplicabilidade das Redes Neurais Artificiais (RNAs) ao problema de detecção de tráfego Skype na web. Este estudo consistirá das seguintes etapas: Estudar um modelo de RNA que seja adequado ao problema. Reconstruir o cenário utilizado por Freire et al [Freire et al. 2008]. Implementar o modelo de RNA selecionado na etapa 1 aplicado ao cenário proposto. Análise comparativa dos resultados. INTRODUÇÃO Este trabalho descreve uma análise sobre o estudo realizado por Freire et al. Que propõe uma metodologia para detectar padrões de tráfego web normal e skype. O objetivo deste estudo é alertar os administradores de redes para tráfego intenso. Identificar o tráfego gerado por conexões Skype (anômalo) pode ser uma tarefa difícil. Identificar métricas eficientes no tráfego para classificação. Modelos empíricos baseados em métricas estatísticas. Kolmogorov-Smirnov e Chi-square. Nova abordagem para detectar padrões de tráfego web baseada em redes neurais artificiais. Com o objetivo de melhorar a eficiência do método. PROBLEMA Processos de classificação de tráfego web são feitos por análise de carga dos pacotes ou modelos baseados cálculos estatísticos. Métodos de análise de carga e estatísticos são bons porém, exigem muitos recursos de processamento e memória, são pouco flexíveis e possuem dificuldades para análise automática e imediata dos dados. Estamos propondo um novo método baseado em Redes Neurais para tentarmos melhorar o processo. Desta forma, objetivo inicial deste trabalho é comprovar a eficiência deste novo método, analisando se a rede neural proposta será capaz de classificar o tráfego web normal e skype, e qual será a porcentagem de acerto desta classificação. PROPOSTA Modelo para classificação foi povoado com dados reais e destes dados foram retirados os parâmetros: tamanho da requisições, tamanho da resposta e intervalo entre requisições, os quais foram utilizados para uma caracterização do tráfego HTTP considerado normal e Skype. Freire et al. [Freire et al. 2008]. Foi utilizadas as fórmulas estatísticas de Kolmogorov-Smirnove Chi-square test para edtectar padrões de tráfego web e informar a porcentagem de acerto da classificação. Freire et al. [Freire et al. 2008]. No modelo proposto por este artigo, utilizaremos os mesmos dados e as mesmas métricas usadas por Freire et al. [Freire et al. 2008], e verificaremos se a rede neural apresentada será capaz de classificar o tráfego web normal e skype, e qual será a porcentagem de acerto desta classificação. Com isso, no futuro poderão ser propostas metodologias automatizadas de classificação de tráfego que utilizem desta abordagem para fornecer uma classificação rápida e eficiente ao administrador de redes. PROPOSTA Utilizamos os dados apresentados por Freire et al. [Freire et al. 2008], e modelamos o tráfego web normal gerando dados aleatórios a partir da distribuição chi square para cada uma das métricas descritas. Para representarmos os dados skype, geramos tráfegos aleatórios utilizando a distribuição de Gumbel baseado nos mesmos dados e nas mesmas métricas. No desenvolvimento da rede neural utilizamos o software Matlab. Utilizamos os modelos perceptron simples e feedforward backpropagation de redes neurais para classificação. Processos de classificação Existem várias abordagens de detecção de tráfego. Métodos determinísticos, métodos estatísticos, método de deteção de outliers, métodos de mineração de dados e métodos baseados em redes neurais. O método mais tradicional para identificar e classificar o tráfego de aplicações Internet através dos números das portas de serviços. Em outra abordagem, a classificação das aplicações é realizada baseada no uso de assinaturas ou análise de carga. Neste caso, o conteúdo dos pacotes é aberto e os dados são lidos. Nos últimos anos, estudos sobre algumas características do tráfego Internet, tais como: tamanho do fluxo em bytes, tempo de vida do fluxo, direção do fluxo e estrutura do endereço IP, também têm sido publicados. Recentemente, técnicas de aprendizagem de máquina baseadas em redes neurais foram utilizadas para discriminar dados em categorias derivadas de informações contidas nos pacotes provendo uma classificação dos mesmos sem, contudo, acessar seus conteúdos. Redes Neurais Artificiais As RNAs são sistemas computacionais de implementação em software ou hardware, que imitam as habilidades dos neurônios biológicos, usando para isto um grande número de neurônios artificiais interconectados. Existem vários tipos de RNAs, onde os mais conhecidos são ADALINE/MADALINE, Backpropagation Perceptron (ou feedforward), TimeDelay, Recurrent, BAM (Memória Associativa Bidirecional), Hofield e Kohonen. Para que as RNAs possam resolver os problemas para o qual foram projetadas, as mesmas devem ser treinadas. São conhecidos dois métodos de treinamentos: o supervisionado e o nãosupervisionado. Os modelos de redes neurais testados neste trabalho são: Perceptron Simples e Feedforward Backpropagation. Redes Neurais Artificiais Perceptron Simples As redes de uma única camada apresentam melhor desempenho em problemas que são linearmente separáveis. Problemas linearmente separáveis são aqueles que podem ser separados por uma reta, representando a divisão entre as classes. Feedforward Backpropagation Existe mais de um neurônio entre alguma entrada e alguma saída da rede. A arquitetura da rede com múltiplas camadas de Perceptrons é chamada de MLP (MultiLayer Perceptron). Estrutura de uma rede neural feedforward com três camadas: Só existe um neurônio entre qualquer entrada e qualquer saída da rede. 1. Uma de entrada, onde é apresentado os dados para a rede; 2. Uma intermediária ou oculta, onde é feita a maior parte do processamento; 3. Uma de saída, onde o resultado final é concluído e apresentado. A rede Feed forward backpropagation definida em nosso artigo possui 3 neurônios na camada de entrada, 6 na camada oculta e 1 na camada de saída. Implementação As construções das redes neurais foram feitas no software matlab versão 7.4.0. Foi criada a RNA Feedforward backpropagation com 3 neurônios na camada de entrada, 6 na camada escondida e 1 na camada de saída. O treinamento da rede foi feito com o algoritmo backpropagation. Foi criada a RNA perceptron simples com uma única camada e o treinamento da rede neural foi feito com o algoritmo padrão do perceptron. Resultados Eficiência da redes neurais testadas quanto à classificação do tráfego, segundo métricas descritas. Porcentagem de Acerto do Algoritmo Backpropagation Resultados Porcentagem de Acerto Algoritmo Perceptron Simples Resultados comparativos com dados descritos no artigo original Conclusões Nosso modelo para classificação foi povoado com dados reais e conta com três parâmetros: tamanho da requisição, tamanho da resposta e intervalo entre requisições, os quais foram utilizados para uma caracterização do tráfego HTTP considerado normal e Skype. Dentre os modelos de redes neurais testados, a feedforward backpropagation apresentou uma melhor eficiência para classificação do tráfego, obtendo um acerto na detecção de 100%, ao revés do modelo perceptron simples, que apresentou 95,96% Desta forma, o modelo mais apropriado para o nosso formato de dados é o backpropagation.