• Nenhum resultado encontrado

6.2 Exemplo de Aplicação do Modelo Proposto

6.2.1 Pré-processamento da base de dados KDD cup 99

Normalmente, um subconjunto do tráfego de rede é necessário ser coletado com ante- cedência para a concepção de sistemas de detecção de intrusão. No entanto, é difícil reunir todas as informações de ataque, porque, em cenários práticos, os intrusos constantemente de- senvolvem novas variações de ataques para explorar as vulnerabilidades de segurança das orga- nizações.

Portanto, os dados coletados sempre envolvem incerteza quando apenas informações limitadas sobre as atividades intrusivas estão disponíveis. Assim, a fim de simular o problema da incerteza existente no conjunto de dados KDD Cup 99 e diminuir o custo computacional sem compromissos com os resultados da pesquisa, quatro subconjuntos separados por categoria de ataque foram selecionados aleatoriamente a partir da base de dados original.

Os subconjuntos de dados selecionados contendo os tipos de ataques, organizados por categoria e seus respectivos números de instâncias (valores entre parênteses) podem ser visua- lizados na Tabela 6.2. No Apêndice H é feita uma descrição resumida desses ataques.

Como os subconjuntos gerados não possuem subconjuntos de treinamento T e teste D definidos, então foi utilizado o método de validação cruzada 10-folds, descrito no Apêndice B.

Resultados 69

Tabela 6.1 Descrição dos Atributos da Base de Dados - KDD 99, adaptada de [118].

Nr. Atributo Descrição Tipo

1 duration tam da conexão em seg. cont.

2 protocol_type tipo do protocolo (tcp, udp, icmp) disc.

3 service serviço de rede no destino (http, ftp) disc.

4 flag normal ou erro de conexão disc.

5 src_bytes num. de bytes da origem para destino cont.

6 dst_bytes num. de bytes do destino para origem cont.

7 land 1 se conexão é de/para memso host/porta; 0 senão disc.

8 wrong_fragment num. de fragmentos errados cont.

9 urgent num de pacotes urgentes cont.

10 hot num. de indicadores hot cont.

11 num_failed_logins num de falhas de login cont.

12 logged_in 1 logged in com sucesso; 0 senão disc.

13 num_compromised num. de condições comprometidas cont.

14 root_shell 1 se root shell é obtido; 0 senão disc.

15 su_attempted 1 se comando su root; 0 senão disc.

16 num_root num. de acessos root cont.

17 num_file_creations num. de operações de criação de arquivos cont.

18 num_shells num. de shell prompts cont.

19 num_access_files num. de operações a controle de acesso a arquivos cont. 20 num_outbound_cmds num. de comandos outbound em sessões ftp cont. 21 is_hot_login 1 se login foi para a lista hot; 0 senão disc.

22 is_guest_login 1 se guest login; 0 senão disc.

23 count num. de conexões para o mesmo host em 2 seg. cont. 24 srv_count de conexões para o mesmo serviço em 2 seg cont.

25 serror_rate % de conexões com erro SYN cont.

26 srv_serror_rate % de serviços com erro SYN cont.

27 rerror_rate % de conexões com erro REJ cont.

28 srv_rerror_rate % de serviços com erro REJ cont.

29 same_srv_rate % de conexões para o mesmo serviço cont.

30 diff_srv_rate % de conexões para diferentes serviços cont. 31 srv_diff_host_rate % of connections to different hosts cont. 32 dst_host_count contagem de conexões tendo o mesmo host destino cont. 33 dst_host_srv_count contagem de conexões tendo o mesmo host destino e mesmo serviço cont. 34 dst_host_same_srv_rate % de conexões tendo o mesmo host destino e mesmo serviço cont. 35 dst_host_diff_srv_rate % de diferentes serviço para o host atual cont. 36 dst_host_same_src_port_rate % de conexões tendo o mesmo host dest e mesma porta cont. 37 dst_host_srv_diff_host_rate % de conexões tendo o mesmo serviço vindo de dif. hosts cont. 38 dst_host_serror_rate % de conexões para o host atual com erro S0 cont. 39 dst_host_srv_serror_rate % de conexões para o host atual e espec. serviço com erro S0 cont. 40 dst_host_rerror_rate % de conexões para o host atual com erro RST cont. 41 dst_host_srv_rerror_rate % de conexões para o host atual e espec. serviço com erro RST cont.

Resultados 70

Tabela 6.2 Relação de ataques por categorias.

DoS PROBING R2L U2R

back (1026) ipsweep (586) ftp-write (8) buffer-overflow (21) land (11) nmap (151) guess-passwd (53) loadmodule (10) neptune (10401) portsweep (155) imap (11) perl (3) pod (69) satan (16) multihop (11) rootkit (7) smurf (7669) normal (1704) phf (5) normal (1676) teardrop (15) wareszclient (60)

normal (2573) warezmaster (20) spy (4) normal (1934)

Os mesmos subconjuntos de treinamento e teste são utilizados em todos os experimentos para permitir comparações entre as diferentes estratégias avaliadas.

Os atributos na base de dados KDD Cup 99 [118] contêm dados de diversos tipos, com resolução variando significativamente em intervalos. Esses atributos foram utilizados sem ne- cessitarem de formatação em diversos experimentos realizados. Entretanto, como os códigos BCH e Reed-Solomon não são capazes de processar dados em todos os formatos, uma etapa de pré-processamento se faz necessária para transformar os dados em um formato aceitável pelo código.

Assim, os atributos contínuos foram discretizados, com o objetivo de se obter uma base de dados contendo somente atributos com valores binários. Os métodos de discretização de atributos podem ser divididos em: supervisionados e não supervisionados [147].

Enquanto os métodos supervisionados utilizam informações referentes às classes das instâncias da base de dados para estimar os pontos de corte durante o processo de discretização de um atributo, os não supervisionados consideram somente os valores do atributo a serem discretizados. Alguns autores atribuem um desempenho melhor aos métodos de discretização de atributos supervisionados [147].

Na classe dos métodos supervisionados, várias propostas são encontradas na literatura científica. Em [147], é apresentado um algoritmo de discretização utilizando uma heurística recursiva de minimização de entropia, proposta por [148].

No algoritmo de Fayyad e Irani [148] é determinado um ponto de corte que divida um intervalo de valores em dois subintervalos. Esse ponto de corte, definido a partir da medida de informação mútua [84], será aquele que resultar em subintervalos com maior ganho de infor- mação. Enquanto um determinado critério de parada não for alcançado, o procedimento é recur- sivamente aplicado aos subintervalos resultantes das iterações anteriores. Na heurística proposta por [148], o critério de parada adotado é o Minimal Description Length Principle [95, 149].

Pelo princípio do MDL, quando vários modelos competem pela explicação de um con- junto de dados, deve-se selecionar aquele modelo que melhor comprime os dados. Outrossim, a capacidade de compressão de um conjunto de dados está diretamente relacionada à descoberta

Resultados 71 de regularidade nesse conjunto de dados, ou seja, quanto maior a compressão, maior o apren- dizado sobre os dados [95, 149].

Dado um conjunto T de µ instâncias, contendo M classes, a discretização de um dado atributo Aj, j = 1, ..., N , pela heurística recursiva de minimização de entropia, é resumida- mente descrita a seguir:

1. Cada valor v do atributo Aj é considerado como um possível limiar de intervalo, ou seja, um valor v pode dividir as instâncias de T em dois subconjuntos T1 e T2, satisfazendo as condições Aj < v e Aj ≥ v. Os subconjuntos T1 e T2 contêm M1 e M2 classes, respectivamente.

2. Sejam as variáveis aleatórias discretas C, C1, C2, A, têm-se que: os possíveis valores de C são c1, c2, ...cM, {p` = Pr[C = c`]}M`=1 e c` é a `−ésima classe da base de dados T ; os possíveis valores para C1 são c11, c12, ...c1M1, {p1` = Pr[C1 = c1`]}

M1

`=1 e c1` é a

`−ésima classe da base de dados T1; os possíveis valores para C2 são c21, c22, ...c2M2,

{p2` = Pr[C2 = c2`]}

M2

`=1 e c2` é a `−ésima classe da base de dados T2; os possíveis

valores para A são v1, v2, ...vη, pν = Pr[A = vν]η`=1, em que vν é o ν-ésimo valor do atributo Aj, para j = 1, ..., N , que está sendo testado e pν é a probabilidade do valor vν ocorrer na base de dados. Dado T , o ponto de corte v escolhido será aquele que maximiza a informação mútua I(C, A) (Equação (C.1)) do particionamento, tal qual é calculado na indução de árvore de decisão C4.5 [83] (ver Capítulo 3).

3. O método é, em seguida, aplicado de forma recursiva para os dois subintervalos. O par- ticionamento recursivo do conjunto T continuará enquanto o critério de parada não for alcançado. O critério de parada consiste em aceitar uma partição induzida por v se e so- mente se o custo de codificar a partição e as classes dos casos no intervalo induzido por v é menor do que o custo de codificar as classes dos casos antes divisão, ou seja, a partição induzida pelo ponto de corte v é aceita se somente se:

I(C; A) > log2(µ − 1)

µ +

log2(3M − 2) − [M.H(C) − M1.H(C1) − M2.H(C2)]

µ .

(6.1) Segundo [128, 147], comparando os efeitos da utilização de diversas técnicas de dis- cretização, tem-se que que o método de discretização proposto por Fayyad e Irani [148], em geral, produz resultados com desempenho melhor. Por esta razão, este método de discretização é usado nos experimentos realizados neste trabalho de tese, por meio da ferramenta WEKA (Waikato Environment for Knowledge Analysis).

Os atributos discretos, tais como service, com 70 símbolos diferentes e os atributos discretizados foram mapeados para valores binários, também utilizando a ferramenta WEKA.

Resultados 72 Todos os atributos originalmente binários, tais como o atributo logged-in (ver Tabela 6.1), per- maneceram inalterados.

Um ponto importante é que quando há um elevado número de instâncias duplicadas no conjunto de treinamento, alguns algoritmos de aprendizado ficam polarizados para os registros mais frequentes. Por outro lado, os registros menos frequentes tais como os ataques U2R e R2L, que geralmente são mais prejudiciais para as redes, não são aprendidos pelos classificadores. Além do mais, a existência destas instâncias repetidas no conjunto de teste, faz com que os resultados de avaliações sejam polarizados pelos classificadores que têm melhor desempenho na detecção destes registros.

Para minimizar as situações supracitadas, as instâncias repetidas foram eliminadas. O número de instâncias por tipo de ataque, bem como as instâncias contendo tráfego normal, utilizadas nos experimentos envolvendo códigos corretores de erros, após a eliminação de re- dundância, estão relacionados nas Tabelas 6.3 e 6.4.

Tabela 6.3 Número de instâncias por categoria de ataques, usando a seleção de atributos por meio das medidas de informação de Rényi.

DoS PROBING R2L U2R

back (46) ipsweep (10) ftp-write (5) buffer-overflow (2) land (7) nmap (19) guess-passwd (9) loadmodule (4) neptune (56) portsweep (21) imap (6) perl (1) pod (11) satan (10) multihop (5) rootkit (3) smurf (17) normal (1704) phf (2) normal (17) teardrop (7) wareszclient (14)

normal (479) warezmaster (6) spy (2) normal (95)

Tabela 6.4 Número de instâncias por categoria de ataques, usando a seleção de atributos por meio das medidas de informação de Tsallis.

DoS PROBING R2L U2R

back (17) ipsweep (8) ftp-write (5) buffer-overflow (21) land (7) nmap (11) guess-passwd (8) loadmodule (10) neptune (22) portsweep (24) imap (4) perl (3) pod (12) satan (11) multihop (6) rootkit (7) smurf (15) normal (273) phf (3) normal (1676) teardrop (7) wareszclient (16)

normal (172) warezmaster (6) spy (1) normal (95)

Resultados 73