Pular para conteúdo

Implementação

A implementação dos experimentos realizados no artigo se resume em scripts codificados na linguagem PERL:

Baixar: scripts.tar.gz - 5842 bytes - SHA1 (16824a55dd88fec5a8b606eae02f780d5fe90380)

Exemplo

Para executar os scripts considere o seguinte exemplo: deseja-se saber a taxa de detecção e de falsos positivos dos métodos descritos no artigo aplicando na partição P03 do conjunto de requisições.

Passo 1 - Normalização das requisições

As requisições precisam ser normalizadas para que possam ser comparadas uma com as outras. No método de detecção D1 e D3 o treinamento será realizado sobre a partição P02, mas para o método de detecção D2 o treinamento será realizado na mesma partição que será feita a detecção: P03. Por isso, a necessidade de normalizar as requisições das duas partições:

perl 01-normalize.pl dts.p02.txt
perl 01-normalize.pl dts.p03.txt

Passo 2 - Agrupamento das requisições

Após a normalização das requisições deverá ser aplicado um algoritmo de agrupamento (data clustering). Neste exemplo, o limite de distância W utilizado para criar os grupos será de 120. Melhor descrição sobre este procedimento está no próprio artigo.

perl 02-clustering.pl dts.p02.txt.dsn 120
perl 02-clustering.pl dts.p03.txt.dsn 120

Passo 3 - Avaliação dos grupos

Depois de agrupar as requisições semelhantes será necessário aplicar uma avaliação sobre os grupos, onde cada grupo irá receber um rótulo de normalidade ou de ataque. Os três métodos utilizados e seus parâmetros estão descritos no artigo. Apenas para este exemplo será utilizado o valor de N = 0.02 para o método de Portnoy; para Zhong o valor de η = 0.115 e para o método proposto o valor de l = 0.05.

perl 03-labeling.pl dts.p02.txt.dsn.120.cls portnoy 0.02
perl 03-labeling.pl dts.p03.txt.dsn.120.cls zhong 0.115
perl 03-labeling.pl dts.p02.txt.dsn.120.cls proposed 0.05

Passo 4 - Detecção de intrusão

Após o treinamento (normalização, agrupamento e avaliação) será aplicada a detecção de intrusão. Neste exemplo o método D1 de Portnoy será aplicado sobre a partição P03 dado o modelo extraído da partição P02. Da mesma maneira o método D3 (uma variação de D1) será aplicado sobre a partição P03 dado o modelo extraído da partição P02. E de maneira diferente, o método D2 de Zhong será aplicado na partição P03 da qual o modelo também foi extraído. Detalhes sobre estes métodos de detecção estão no artigo.

perl 04-detecting.pl dts.p02.txt.dsn.120.cls.portnoy.0.02.lbl dts.p03.txt.dsn 0

perl 04-self-detecting.pl dts.p03.txt.dsn.120.cls.zhong.0.115.lbl
dts.p03.txt.dsn 0.115
perl 04-detecting.pl dts.p02.txt.dsn.120.cls.proposed.0.05.lbl dts.p03.txt.dsn
120

Resultados

Após a execução dos scripts é possível avaliar qual método obteve melhores resultados: TP (true positives) são os verdadeiros positivos, ataques que foram detectados; FP (false positives) são os falsos positivos, alarmes falsos de ataques; FN (false negatives) são os falsos negativos, ataques que não foram detectados; e TN (true negatives) são os verdadeiros negativos, que são normais e não foram detectados.

Portnoy(W=120;N=0,02;D1) : TP 2741 FP 154393 FN   0 TN  90219
Zhong(W=120;η=0,115;D2)  : TP 1846 FP  25393 FN 895 TN 219219
Proposed(W=120;l=0,05;D3): TP 2553 FP    473 FN 188 TN 244139

Este exemplo demonstrou que dado um treinamento sobre requisições que continham ataques poderiam ser utilizados para detectar intrusão em outras requisições, ou seja, um sistema de detecção de intrusão baseado em anomalia aplicando um treinamento não-supervisionado (unsupervised learning). Este foi o assunto tratado no artigo, o qual propõe um método heurístico para rotular grupos neste tipo de sistema de detecção de intrusão.

Postado por Hermano Pereira (22/10/2011 19:48)