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:
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.
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)