• Nenhum resultado encontrado

4.2 Coleta e Normalização

5.3.3 Métodos de Classicação

Uma das principais contribuições deste trabalho reside em testarmos técnicas recentes de classicação dentro do contexto de detecção de intrusão. Não é de nosso conhecimento um trabalho que tenha envolvido tantas técnicas diferentes e recentes, aplicadas sobre uma massa de dados tão vasta, normalizada e agrupada.

Dentre as opções de classicadores existentes no campo de aprendizado de máquina, estas foram as escolhas:

1. SMVs: as técnicas de SVM têm chamado grande atenção da comunidade nos últimos anos. Estamos especialmente interessados na combinação entre as propriedades de kernel e o vetor de bits de tipos de alertas;

2. Redes Bayesianas: também trata-se de uma técnica de grande disseminação nos últi- mos tempos. Sua abordagem eminentemente estatística representa um contraponto às SVMs. A possibilidade de se contar com uma representação gráca da rede colabora para a compreensão dos meta-alertas classicados;

3. Árvores de Decisão: sua simplicidade promove o desenvolvimento da intuição sobre os dados.

4. Coletânea (ensemble): combinar múltiplas técnicas ou instâncias de parâmetros diferentes na busca de um classicador de alto desempenho.

Nas próximas subseções detalharemos as implementações destes classicadores.

Utilizando SVMs

Para a implementação do classicador baseado em SVM utilizou-se a libSVM desenvolvida por Chang e Lin [8].

A preparação dos atributos descritos na Seção 4.3 para uso na SVM exigiu alguns cuidados e ajustes.

Os atributos alert_count, tgt_node_count e tgt_port_count foram discretizados em quatro valores possíveis. Esta ação diminuiu a sensibilidade do algoritmo ao conjunto de dados de aprendizado. De uma forma intuitiva, não queremos que um ataque de negação de serviço que contém 200 alertas em seu meta-alerta deixe de ser detectado porque no conjunto do aprendizado supervisionado utilizamos um meta-alerta com 500 alertas.

A discretização ocorreu em faixas de valores. No caso de alert_count, por exemplo, as faixas usadas foram 02, 35, 651 e mais que 51. Uma forma alternativa teria sido trabalhar com o logaritmo do atributo.

Os atributos ext_class e alert_type_set foram linearizados de forma que cada valor possível do primeiro e cada bit do vetor do segundo fossem mapeados numa dimensão própria (uso de dummy variables).

Como nosso meta-alerta indica o tipo de ataque associado, basta para a SVM decidir entre um ataque ou um falso alarme. Desta feita, sua natureza binária de classicação adequa-se ao problema sem necessidades de ajustes.

A otimização do uso de SVM seguiu o guia proposto por Hsu et al [61], com foco para o processo de scaling das diferentes dimensões.

O aprendizado supervisionado foi realizado com diferentes pesos para classicações positivas e negativas (assimetria de custos; ver Seção 2.2.6). De forma geral, entende- mos que falsos negativos são mais críticos que falsos positivos. Em nosso experimento utilizamos diferentes pesos para penalização dos falsos negativos, conforme mostraremos adiante. Tais resultados permitem que organizações escolham a melhor relação de assime- tria de custos, segundo sua cultura e política de segurança. Em outras palavras, o número de falsos positivos que uma organização aceita  em troca da detecção de um positivos verdadeiro  é função de sua tolerância a riscos, disposição de investir em segurança, políticas internas, entre outros. O uso da técnica de assimetria de custos para desenho da curva ROC permite explicitar este compromisso e auxiliar na determinação do ponto ideal para uma dada organização.

Utilizando Redes Bayesianas

A natureza eminentemente probabilística do fato de um conjunto de evidências designar um ataque de segurança torna o uso de técnicas bayesianas uma alternativa natural para o problema. Uma das primeiras iniciativas deste tipo ocorreu no projeto eBayes TCP de Valdes et al [59].

Em nossa implementação lançamos mão da ferramenta Weka [57], desenvolvida pela Universidade de Waikato. Trata-se de uma coleção de algoritmos de aprendizado de máquina que pode ser usada em atividades de mineração de dados. Além do suporte a Redes Bayesianas, também possui implementações de Árvores de Decisão.

Originalmente nossa intenção residia em utilizar a possibilidade de se denir a topolo- gia da rede e usar o aprendizado supervisionado para a denição das tabelas de probabi- lidades condicionais (CPTs, ver Seção 2.2.2). A denição da topologia permite aumentar o grau de semântica da inferência. Poder-se-ia, por exemplo, reproduzir na topologia da rede conceitos como a anatomia de um ataque, conforme apresentado por Scambray et al [52].

A Figura 5.3 retrata um exemplo de fragmento de topologia de rede bayesiana que traduz os conceitos da anatomia de um ataque, dada a taxonomia denida neste trabalho. Note-se a introdução dos nós PROBE, R2L, U2R e DoS. Estas são variáveis ocultas

(hidden variables) que objetivam ligar logicamente as evidências (tipos de alertas) ao modelo da anatomia do ataque. Tal anatomia é representada pelas arestas que ligam tais nós, numa visão simplicada daquela defendida por Scambray et al [52].

Infelizmente não logramos localizar implementações de redes bayesianas disponíveis que apresentassem simultaneamente as funcionalidades de importação de topologia e su- porte a variáveis ocultas. No caso do Weka, por exemplo, a importação da topologia é possível, mas, neste contexto, não há suporte para as variáveis ocultas. Em função desta nova realidade, diferimos a idéia de uso de uma topologia pré-denida (com maior teor semântico) para trabalhos futuros, e voltamo-nos ao uso do Weka tanto para a de- terminação da topologia quanto das tabelas de probabilidades condicionais, através do classicador weka.classiers.bayes.BayesNet.

Para uso pelo classicador weka.classiers.bayes.BayesNet do Weka, os atributos de classicação descritos na Seção 4.3 sofreram a mesma manipulação descrita na Seção 5.3.3, incluindo discretização dos campos numéricos e uso de múltiplas dimensões para o vetor de bits e campos multivalorados.

Os pesos no aprendizado foram implementados através do uso de matrizes de custo (cost-matrix), mediante o metaclassicador weka.classiers.meta.CostSensitiveClassier. O resultado da classicação reside na denição do estado da variável booleana is_attack. Se verdadeira, trata-se de um ataque; caso contrário, o meta-alerta é um alarme falso.

Utilizando Árvores de Decisão

Para implementação do classicador baseado em Árvore de Decisão, recorremos nova- mente ao uso de Weka. Utilizamos o classicador weka.classiers.trees.J48, o qual imple- menta o algoritmo C4.5.

Todo o tratamento dos atributos, matrizes de custo e metaclassicadores é idêntico ao usado na Rede Bayesiana.

Utilizando Ensembles

Dados os bons e complementares resultados obtidos com os classicadores SVM e Redes Bayesianas, decidimos pela construção de uma coletânea (ensemble) destes dois. Como critério de eleição, optamos pela solução mais conservadora pela ótica de reduzir falsos negativos: se um dos classicadores julgar que o meta-alerta corresponde a um ataque, então o ensemble decide por um ataque.

Documentos relacionados