Upload
hoangkhanh
View
213
Download
0
Embed Size (px)
Citation preview
Curso de Bacharelado em Ciência da Computação
EVERTON GAMBA LERMEN
FRAMEWORK PARA DETECÇÃO E FILTRAGEM DE ALERTAS DE
INTRUSÃO UTILIZANDO REDES BAYESIANAS
Canoas, 2008
2
EVERTON GAMBA LERMEN
FRAMEWORK PARA DETECÇÃO E FILTRAGEM DE ALERTAS DE
INTRUSÃO UTILIZANDO REDES BAYESIANAS
Trabalho de conclusão apresentado para a banca examinadora do curso de Ciência da Computação do Centro Universitário La Salle, como exigência parcial para a obtenção do grau de Bacharel em Ciência da Computação, sob orientação do Prof. Me. Gaspare Giuliano Elias Bruno.
Canoas, 2008
3
DEDICATÓRIA
Dedicado esse trabalho de conclusão à minha família, em especial a minha
esposa, que nos momentos mais difíceis dessa jornada, sempre dedicou o seu amor
e incentivo. Aos grandes amigos, familiares e colegas que compartilharam de muitos
dias na execução de relatórios, artigos e seminários. Enfim a todas as pessoas que
contribuíram e ajudaram para a conclusão dessa caminhada.
4
RESUMO
O aumento das redes de computadores e utilização da Internet para
divulgação de produtos e/ou serviços, a preocupação com a segurança das informações por elas trafegadas e o aumento dos ataques fez surgir uma demanda por ferramentas que facilitem a identificação destes ataques. Os sistemas de detecção de intrusão surgiram para suprir esta necessidade. Mas, devido ao surgimento de novas técnicas de invasão, pesquisas que buscam adicionar “inteligência” aos sistemas de detecção de intrusão têm voltado seus olhares para técnicas que tratam problemas de decisão, entre elas redes bayesianas. Neste contexto, esta monografia busca apresentar uma proposta de framework que agregue aos sistemas de detecção de intrusão, redes bayesianas como método de classificação, possibilitando a identificação de novos ataques e diminuição dos falsos alertas.
PALAVRAS-CHAVE: Sistemas de Detecção de Intrusão, Redes Bayesianas.
ABSTRACT
The increase of computer networks and Internet use for spreading products and/or services, concern with security of the information and increase of attacks created a demand for tools that facilitates the identification of these attacks. The Intrusion Detection Systems - IDS appeared to supply this necessity. But the sprouting of new invasion techniques, researches that try to add “intelligence” to the IDS have been directed toward techniques that deal with decision problems, among them, Bayesian Networks - BN. This paper presents a proposal of framework that aggregate bayesian networks classification method to IDS’s, making possible identification of new attacks and reduction of false alerts. KEYWORDS: Intrusion Detection System, Bayesian Network.
5
LISTA DE ABREVIATURAS E SIGLAS
ASP Active Server Pages
CERT.br Centro de Estudos, Respostas e Tratamento de Incidentes de
Segurança do Brasil
CERT/CC Computer Emergency Response Team Coordination Center
CPU Central Processing Unit
EM Expectation Maximization
GAD Grafo Acíclico Dirigido
IDES Intrusion Detection Expert System
IDS Intrusion Detection System
IEEE Institute of Electrical and Electronics Engineers
IIS Internet Information Services
IPS Intrusion Prevention System
MEM Memória
RB Redes Bayesianas
SNMP Simple Network Management Protocol
SSH Secure Shell
TCP Transmission Control Protocol
UDP User Datagram Protocol
VPN Virtual Private Network
6
LISTA DE FIGURAS
Figura 1– Arquitetura genérica de um IDS. ............................................................... 17
Figura 2 – Linha de evolução dos sistemas de detecção de intrusão. ...................... 21
Figura 3 – Comparação entre modelos de redes bayesianas ................................... 34
Figura 4 – naive-Rede Bayesiana construída............................................................ 38
Figura 5 – Rede bayesiana durante fase de treinamento. ......................................... 43
Figura 6 – Rede bayesiana durante fase de teste 1. ................................................. 44
Figura 7 – Rede bayesiana durante fase de teste 2. ................................................. 46
Figura 8 – Rede bayesiana durante fase de teste 3. ................................................. 47
Figura 9 – Rede bayesiana durante fase de teste 4. ................................................. 48
Figura 10 – Nessus Web Servers – plugins selecionados. ....................................... 58
Figura 11 – Nessus Databases – plugins selecionados. ........................................... 59
7
LISTA DE TABELAS
Tabela 1 – Ferramentas e sua respectiva descrição ................................................. 35
Tabela 2 – Ferramentas de sua respectiva descrição ............................................... 36
Tabela 3 – Ferramentas, seus respectivos serviços e descrição .............................. 36
Tabela 4 – Faixa de valores definidas para cada variável ......................................... 38
Tabela 5 – Parâmetros de ataque ao servidor IIS. .................................................... 39
Tabela 6 – Parâmetros de ataque ao servidor SSH .................................................. 40
Tabela 7 – Parâmetros de ataque ao servidor SQL Server. ...................................... 40
Tabela 8 – Parâmetros de acesso normal ao servidor IIS. ........................................ 41
Tabela 9 – Parâmetros de acesso normal ao servidor SSH. ..................................... 41
Tabela 10 – Cenário de teste 1. ................................................................................ 44
Tabela 11 – Cenário de teste 2. ................................................................................ 45
Tabela 12 – Cenário de teste 3. ................................................................................ 47
Tabela 13 – Cenário de teste 4. ................................................................................ 48
8
LISTA DE GRÁFICOS
Gráfico 1 – Total de incidentes reportados ao CERT.br por ano. .............................. 12
Gráfico 2 – Sofisticação de ataque versus Conhecimento do invasor. ...................... 12
9
SUMÁRIO
1 INTRODUÇÃO ................................................................................................. 11
2 SISTEMA DE DETECÇÃO DE INTRUSÃO ................... ................................. 15
2.1 Componentes: categorias e métodos de análise ...... ............................... 17
2.1.1 Sensores .................................................................................................... 17
2.1.1.1 Baseado em computador ............................................................ 18
2.1.1.2 Baseado em rede ........................................................................ 18
2.1.2 Analisadores ............................................................................................... 19
2.1.2.1 Detecção por mau uso ................................................................ 20
2.1.2.2 Detecção por anomalia ............................................................... 20
2.2 IDSs: Comerciais e de Domínio Público ............. ...................................... 21
2.2.1 Comerciais .................................................................................................. 22
2.2.2 Domínio público .......................................................................................... 22
3 REDES BAYESIANAS .................................. .................................................. 24
3.1 Construção ........................................ .......................................................... 25
3.1.1 PC............................................................................................................... 26
3.1.2 EM .............................................................................................................. 26
3.2 Inferência ........................................ ............................................................. 27
3.2.1 Árvore de Junção ....................................................................................... 28
3.2.2 Monte Carlo ................................................................................................ 28
3.3 Aplicações ........................................ ........................................................... 29
4 TRABALHOS RELACIONADOS ............................ ........................................ 30
4.1 A Framework for an Adaptive Intrusion Detection Sys tem using Bayesian
Network ........................................... ..................................................................... 30
4.2 Bayesian Learning Networks Approach to Cybercrime D etection ......... 31
5 MODELO PROPOSTO .................................................................................... 32
5.1 Metodologia ....................................... .......................................................... 34
5.1.1 Ambiente .................................................................................................... 34
5.1.2 Experimentos .............................................................................................. 36
5.1.3 Construção ................................................................................................. 37
10
5.1.4 Validação .................................................................................................... 39
5.2 Parâmetros de simulação ........................... ................................................ 39
6 SIMULAÇÕES E RESULTADOS ........................... ......................................... 42
6.1 Cenário de treinamento 1 .......................... ................................................. 42
6.2 Cenário de teste 1 ................................ ....................................................... 43
6.3 Cenário de teste 2 ................................ ....................................................... 45
6.4 Cenário de teste 3 ................................ ....................................................... 46
6.5 Cenário de teste 4 ................................ ....................................................... 48
7 CONCLUSÕES ................................................................................................ 50
REFÊRENCIAS BIBLIOGRÁFICAS ........................ ............................................. 52
APÊNDICE A – EXEMPLO DE CAPTURA DE PACOTES, CPU E M EMÓRIA ... 55
APÊNDICE B – BASE UTILIZADA PARA TREINAMENTO DA RB .................... 56
APÊNDICE C – SCRIPT DE COLETA DE INFORMAÇÕES MEM E CPU .......... 57
APÊNDICE D – NESSUS WEB SERVERS PLUGINS ........... .............................. 58
APÊNDICE E – NESSUS DATABASES PLUGINS ............. ................................. 59
11
1 INTRODUÇÃO
Cada vez mais as redes de computadores e a Internet têm se tornado
indispensáveis para muitas empresas e instituições de ensino. A Internet possibilita
o acesso rápido à informação, melhorando a comunicação e reduzindo custos. As
empresas se utilizam da Internet para divulgar informações e realizar negócios com
clientes, parceiros e fornecedores. Da mesma maneira que as redes de
computadores e a Internet mudaram a forma das empresas fazerem negócios, o
risco envolvido nestas operações também aumentou. Ataques a redes de
computadores podem causar perda de dinheiro, tempo, reputação e informações
confidenciais.
Durante os últimos anos, o número de ataques a redes de computadores,
assim como a severidade destes, aumentou consideravelmente [ALLEN00]. No
Brasil, conforme mostra o Gráfico 1 – Total de incidentes reportados ao CERT.br por
ano., somente nos primeiros três meses de 2008, foram reportados mais ataques
que em todo o ano de 2002. Na década de 80, um hacker1, através de seu
computador pessoal, poderia acessar de dez a cem sistemas de computadores, ele
era um especialista em desenvolver métodos para invadir sistemas; hoje, qualquer
um pode realizar ataques a redes de computadores, utilizando ferramentas
automáticas de intrusão, facilmente encontradas na Internet [ALLEN00].
1 Hacker é um especialista em descobrir falhas em sistemas de computadores, explorando vulnerabilidades para obter acesso não autorizado.
12
Gráfico 1 – Total de incidentes reportados ao CERT.br por ano. Fonte: CERT.br, 2008.
O Gráfico 2 – Sofisticação de ataque versus Conhecimento do invasor. traz
uma comparação, ao longo de 20 anos (1980-2000), entre a sofisticação dos
ataques e o conhecimento técnico para realizá-los.
Gráfico 2 – Sofisticação de ataque versus Conhecimento do invasor. Fonte: CERT/CC, 2002.
13
Como conseqüência, técnicas clássicas de segurança de computadores estão
se tornando menos eficazes. Simultaneamente, a detecção de intrusão tem surgido
como uma nova e importante técnica para a proteção dos sistemas de computadores
[DEBAR00].
Detecção de intrusão pode ser definida como um processo de identificação de
comportamento malicioso tendo como alvo uma rede e seus recursos
[KRUEGEL03]. Os IDSs são ferramentas utilizadas para monitorar e analisar o
tráfego em uma rede de computadores. Isto não é uma tarefa fácil, devido ao grande
volume de informação trafegada e as necessidades diárias de atualizações destas
ferramentas, para se adaptarem a métodos até então desconhecidos de ataques.
Outro problema relevante é o grande volume de alertas e os chamados falsos
positivos – durante o processo de análise, o IDS considerou um tráfego normal de
dados como intrusão, bloqueando assim um acesso válido; ou os chamados falsos
negativos – o IDS considerou um tráfego de intrusão como normal deixando, assim,
a rede vulnerável.
Estudos para melhorar a eficácia dos IDSs, fazendo com que estas
ferramentas detectem ataques desconhecidos e reduzam o número de falsos
positivos e falsos negativos, vêm agregando, sob diferentes aspectos, redes
bayesianas (RB). Rede bayesiana é uma ferramenta de modelagem gráfica, utilizada
para modelar problemas de decisão que contenham incertezas [JEMILI07]. Nesse
contexto, o objetivo desta monografia é apresentar um modelo de framework para
detecção e análise das informações geradas pelos IDSs, utilizando redes
bayesianas e automatizando o processo de geração de regras – com o intuito de
diminuir o problema dos falsos positivos e falsos negativos.
A estrutura desta monografia compreende sete capítulos, contando esta
introdução. No segundo capítulo será abordado o conceito de IDS, onde são
apresentados os componentes, categorias e métodos de análises. Também são
apresentadas algumas ferramentas comerciais e de domínio público. O terceiro
capítulo detalha o conceito de RB, descrevendo métodos de construção, algoritmos
de inferência e algumas aplicações.
No quarto capítulo será descrito o modelo proposto, onde são detalhados os
pontos determinantes para a estrutura e definição dos dados a serem simulados,
que definem os resultados deste trabalho. O quinto capítulo, por sua vez, apresenta
as simulações e resultados obtidos, bem como a análise dos mesmos.
14
No sexto capítulo, são descritos dois trabalhos relacionados ao tema desta
monografia, onde são relatadas as limitações dos modelos propostos, mas também
destacadas as potencialidades referentes a cada estudo. Por fim, no sétimo capítulo,
é descrita a conclusão desta monografia, onde são apresentadas as limitações do
trabalho, bem como sugestões para trabalhos futuros.
15
2 SISTEMA DE DETECÇÃO DE INTRUSÃO
Em 1980, James P. Anderson publicou um estudo destacando maneiras de
aperfeiçoar a auditoria e a fiscalização da segurança nos clientes. A idéia original
por trás da detecção automática de intrusão é creditada a ele em seu artigo
“Computer Security Threat Monitoring and Surveillance” [ALEN00] [ALESSON99]
[ARVIDSON03].
Entre 1984 e 1986, Dorothy Denning e Peter Neumann pesquisaram e
desenvolveram o primeiro modelo de sistema de detecção de intrusão de tempo real
[BRUNEAU01] [ALEXSSON06] [CHEBROLU04]. Este protótipo foi chamado de
Sistema Especialista de Detecção de Intrusão (Intrusion Detection Expert System -
IDES). Inicialmente, o IDES foi um sistema baseado em regras, treinado para
detectar atividades maliciosas conhecidas. O artigo publicado por James P.
Anderson e o trabalho no IDES foi o começo de uma série de pesquisas em
sistemas de detecção de intrusão – realizadas entre as décadas de 80 e 90.
Os sistemas de detecção de intrusão são softwares ou hardwares que
automatizam o processo de monitoramento e análise. Ao serem propostos, para
complementar os níveis de segurança, permitem que as organizações protejam seus
sistemas de ameaças que vêm junto com o aumento da conectividade em rede.
Uma intrusão é definida como sendo uma violação das políticas de um sistema. Ela
pode ser causada por: a) ataques vindos da Internet; b) usuários de um sistema que
tentam obter privilégios adicionais, para os quais eles não estão autorizados; e
c) usuários que fazem uso malicioso dos privilégios que lhe são fornecidos.
A detecção de intrusão, por sua vez, refere-se aos mecanismos que são
desenvolvidos para detectar estas violações, sendo baseada na suposição de que
atividades intrusivas possuem características diferentes das atividades normais do
sistema. Assim, um IDS pode ser definido como um sistema automático de detecção
16
e alerta de qualquer natureza, onde uma intrusão tenha ocorrido ou esteja para
acontecer [AXELSSON06]. Cabe ressaltar que os IDSs não vêm para substituir
técnicas como autenticação e controle de acesso; mas sim, para agregar mais uma
camada de proteção às redes de computadores. Abaixo são destacadas algumas
razões para uma organização implementar um IDS [BACE01]:
a) Prevenir problemas de comportamento, aumentando a capacidade de
identificar e punir aqueles que atacam ou abusam do sistema;
b) Detectar ataques e outras violações de segurança que não são
abrangidas por outras medidas de segurança;
c) Detectar e lidar com as conseqüências dos ataques;
d) Documentar as ameaças existentes em uma organização;
e) Atuar como um controle de qualidade para projetos de segurança e
administração de rede, especialmente em grandes e complexas
organizações;
f) Fornecer informações úteis sobre ataques, possibilitando um melhor
diagnóstico, e conseqüente, recuperação e correção.
Buscando ilustrar a forma de funcionamento de um IDS, a Figura 1 abaixo
mostra uma arquitetura genérica. O sistema monitorado pode ser um único
computador, ou um segmento de rede. Os sensores serão abordados, mais
detalhadamente, no item 2.1, mas, sucintamente, são responsáveis por realizar a
coleta de informações. As informações coletadas pelos sensores podem ser
armazenadas em um banco de dados. Já os analisadores, se utilizam destas
informações para fazer a identificação e/ou classificação do trafego, podem, em caso
de um ataque, gerar alertas. Estes alertas gerados podem ser encaminhados a um
analista, o qual responde, de forma manual, ao ataque, ou fazendo uma nova
configuração na sensibilidade do analisador. Também é possível, que o alerta, gere
uma resposta automática, por exemplo, bloqueando o tráfego que o gerou.
17
Figura 1– Arquitetura genérica de um IDS. Fonte: Baseado em [ALEXSSON06]
Os sensores e os analisadores são descritos no item 2.1.
2.1 Componentes: categorias e métodos de análise
Um IDS pode ser dividido em dois componentes principais: sensores e
analisadores.
2.1.1 Sensores
Os sensores são os responsáveis por coletar os dados. A entrada para um
sensor pode ser qualquer parte de um sistema que contenha evidências de uma
intrusão. Os exemplos mais comumente utilizados, como entrada para um sensor,
são: “pacotes de rede”, “arquivos de log2” e “chamadas ao sistema operacional”. Os
sensores coletam estas informações e as encaminham para o analisador, podendo
ou não ser armazenadas antes do envio. As duas categorias principais de sensores
2 Arquivo de log é um arquivo que contém uma lista de ações e mensagens de erros, detalhando o histórico de operações de um software.
18
são “baseado em computador” e “baseado em rede” [BACE01] [CHEBROLU04]
[SCARFONE07].
2.1.1.1 Baseado em computador
Um IDS que utilize sensor “baseado em computador” trabalha com as
informações coletadas de um único computador, oferecendo maior precisão e
confiabilidade em determinar quais processos e usuários estão envolvidos em um
ataque. As informações são normalmente obtidas de duas fontes: chamadas ao
sistema operacional e logs do sistema. As chamadas ao sistema operacional são
geradas pelo kernel3, sendo mais detalhadas e melhor protegidas que o sistema de
logs. Por outro lado, o sistema de logs é menor e, por isso, de fácil compreensão.
Abaixo, são destacadas algumas vantagens e desvantagens de IDSs que se
enquadram nesta categoria [BACE01].
a) Vantagens:
- Possui acesso a todo o contexto de informação necessária para
determinar quando uma intrusão ocorreu.
- Pode operar em ambientes onde a informação trafegada é
encriptada.
b) Desvantagens:
- É mais difícil de gerenciar, pois cada computador monitorado
deve ser configurado e gerenciado separadamente.
- Como o IDS roda no mesmo computador, ele pode ser
desativado em decorrência de um ataque.
- Concorre, computacionalmente, pelos mesmos recursos que o
computador monitorado, impactando no desempenho do
mesmo.
2.1.1.2 Baseado em rede
A grande maioria dos IDSs comerciais é da categoria “baseado em rede”.
Estes IDSs identificam ataques através da captura e análise dos pacotes trafegados
3 Kernel é o programa que forma a parte principal de um sistema operacional. Possui controle total sobre todas as ações que ocorrem no sistema.
19
na rede. Escutando um segmento de rede ou switch4, um IDS desta categoria pode
monitorar e proteger todos os computadores que se encontram conectados neste
segmento. A seguir, são destacadas algumas vantagens e desvantagens dos IDSs
que utilizam sensores desta categoria [BACE01].
a) Vantagens:
- Um número pequeno de IDSs pode monitorar uma grande infra-
estrutura de rede.
- O impacto na infra-estrutura de rede existente é bastante
pequeno. IDSs baseados em rede são normalmente dispositivos
passivos que analisam o tráfego da rede, sem interferir em sua
operação normal.
- É bastante seguro e até mesmo invisível para muitos atacantes.
b) Desvantagens:
- A necessidade de analisar os pacotes rapidamente faz com que
o IDS desta categoria detecte um número pequeno de ataques
de modo a consumir o menor recurso computacional possível,
diminuindo assim sua eficiência.
- Não consegue analisar informação encriptada. Este problema
aumenta, à medida que mais organizações e também atacantes
utilizem Redes Virtuais Privadas (Virtual Private Network - VPN).
- Possui uma visão mais limitada, sendo mais suscetível a falsos
positivos e falsos negativos.
2.1.2 Analisadores
Os analisadores recebem a entrada de um ou mais sensores ou ainda, de
outro analisador. O analisador é responsável por determinar se uma intrusão
ocorreu. A saída deste componente é a indicação de que uma intrusão tenha
ocorrido. Dessa forma, a saída pode conter evidências que suportem a conclusão
de intrusão. O analisador pode ainda, fornecer um guia, sobre quais ações podem
ser tomadas para bloquear o acesso intrusivo e/ou corrigir a falha de segurança que
4 Switch é um equipamento capaz de unir diversos computadores em uma mesma rede local (LAN).
20
possibilitou tal acesso. Os métodos de análises mais utilizados são “detecção por
mau uso” e “detecção por anomalia” [BACE01] [CHEBROLU04] [SCARFONE07]
[ALEXSSON06].
2.1.2.1 Detecção por mau uso
Este método analisa o comportamento intrusivo baseado no conhecimento
das vulnerabilidades do sistema e num modelo que descreve os ataques
conhecidos. A detecção por mau uso também é conhecido por detecção baseada
em assinatura, onde cada ataque ou grupo de ataques é identificado por uma
assinatura específica. A seguir, são destacadas vantagens e desvantagens, com
relação aos IDSs que utilizam este método de análise [BACE01].
a) Vantagens:
- É bastante eficiente na detecção de ataques conhecidos, não
gerando um número excessivo de falsos alarmes.
- Consegue diagnosticar rapidamente a utilização de uma
ferramenta ou técnica de ataque específica.
- Possibilita aos gerentes de sistemas, terem conhecimento do
seu nível de segurança, rastreando falhas de segurança em
seus sistemas.
b) Desvantagens:
- Identifica apenas ataques conhecidos e precisa,
constantemente, ser atualizado com novas assinaturas de
ataques.
- A maioria é projetada para utilizar assinaturas fortemente
definidas, fazendo com que não detecte variações de um ataque
conhecido.
2.1.2.2 Detecção por anomalia
Já este método busca identificar o comportamento intrusivo, assumindo que
um ataque é diferente de uma atividade normal. Detecções por anomalia constroem
um perfil que representa o comportamento normal de usuários, computadores e
conexões de rede. Estes perfis são construídos, a partir de dados coletados,
durante um período de operação normal. Abaixo, são destacadas algumas
vantagens e desvantagens dos IDSs que utilizam este método de análise [BACE01].
21
a) Vantagens:
- Pode detectar um comportamento intrusivo ou sintomas de um
ataque.
- Pode gerar informações que podem ser utilizadas para definir
assinaturas para detecção por mau uso.
b) Desvantagens:
- Normalmente, gera um grande número de falsos positivos e
falsos negativos.
- Requer um grande conjunto de dados de treinamento para
categorizar um comportamento normal.
2.2 IDSs: Comerciais e de Domínio Público
O desenvolvimento de sistemas de detecção de intrusão comerciais iniciou
por volta de 1990. A primeira empresa a colocar um IDS no mercado foi o
Laboratório Haystack. Simultaneamente a isto, o Centro de Suporte a Criptografia,
da Forca Aérea Americana, também desenvolveu um sistema capaz de analisar o
tráfego de informação em suas redes. Deste projeto, nasceu à empresa Wheel
Group, que mais tarde, foi comprada pela Cisco. O Figura 2 abaixo traça uma linha
do tempo, entre o primeiro insite sobre ameaças e monitoramento de computadores,
até o chamado “estouro” dos sistemas de detecção de intrusão.
Figura 2 – Linha de evolução dos sistemas de detecção de intrusão. Fonte: Baseado em [INNELLA01].
A seguir são descritos dois exemplos de IDSs de cada grupo – comercial e
domínio público.
22
2.2.1 Comerciais
a) Cisco Secure IDS
É um IDS baseado em rede, o qual realiza detecção por mau uso. O
Cisco Secure IDS utiliza uma base de assinatura para identificar
acesso malicioso, disparando assim, alertas de intrusão. O sistema é
composto por sensores – dispositivos de rede – que realizam um
monitoramento em tempo real dos pacotes trafegados na rede; e por
uma plataforma de gerenciamento, onde é possível configurar e
monitorar toda a ferramenta [CARTER01].
b) Enterasys Dragon IDS/IPS
Baseado em rede e em computador, este IDS suporta,
simultaneamente, detecção por assinatura e também por anomalia.
Vale ressaltar que, no site do fabricante, não foram encontradas
maiores informações sobre a técnica utilizada, para realizar a detecção
por anomalia [ENTERASYS08].
2.2.2 Domínio público
a) Snort
IDS de domínio público, capaz de analisar os pacotes trafegados na
rede em tempo real. É baseado em rede e realiza detecção por mau
uso, possuindo uma linguagem de regras bastante flexível [SNORT08].
b) Bro
IDS baseando em rede, o Bro analisa o tráfego de rede à procura de
atividades suspeitas. Ao localizar uma atividade suspeita, extrai a
semântica – em nível de aplicação – e realiza uma análise orientada a
evento. Tal análise compara a atividade identificada com um padrão
23
conhecido; sendo que a detecção não é apenas definida por
assinatura, mas também em termos de evento [BRO08].
Os IDSs, em sua maioria, utilizam o método de detecção por mau uso.
Pesquisas acadêmicas buscam agregar inteligência aos IDSs, tornando-os capazes
de realizar detecção por anomalia no comportamento – da rede ou do computador.
Dentre as linhas de pesquisa, que fazem use de redes neurais ou algoritmos
genéticos, uma bastante promissora, é a utilização de Redes Bayesianas (RB) como
método de classificação de ataques nos IDSs. O capítulo 3 desta monografia traz
alguns conceitos e aplicações de RB.
24
3 REDES BAYESIANAS
Redes Bayesianas, também conhecidas como redes probabilísticas causais
ou redes de confiança, têm sido cada vez mais utilizadas, em diferentes áreas do
conhecimento, para modelar domínios de problemas que contenham incerteza
[JEMILI07] [CHEBROLU04] [KRUEGEL03].
Uma RB pode ser descrita como um grafo acíclico dirigido (GAD), onde os
nodos representam variáveis randômicas e os arcos representam as diretas
dependências probabilísticas entre eles. Mais precisamente, para um GAD,
� � ��, ��, onde � representa um conjunto de nodos (ou vértices) e � um conjunto
direto de conexões (ou arcos) entre pares de nodos. A distribuição probabilística
comum, ���, sobre o conjunto de variáveis (normalmente discreta) posicionada
por � pode ser fatorada como [KJAERULFF08]:
� �� � � ��|����� ��
(1)
onde ���� traz o conjunto de variáveis pai para cada nodo � � �. A
fatoração da equação expressa um conjunto de suposições independentes, que são
representadas pelo GAD, em termos de pares de nodos, que não estão diretamente
conectados um ao outro por um arco direto. É a existência destas suposições de
independência e de um conjunto pequeno de pais para cada nodo, que permite
especificar a probabilidade condicional e executar, de forma eficiente, a inferência
em uma rede bayesiana.
Uma RB N � �X, G, P� é composta por [JENSEN apud KJAERULFF08]:
25
� um GAD � � ��, �� com nodos � � ���, … , ��� e arcos diretos �
� um conjunto de variáveis aleatórias, , representada pelos nodos de �
� um conjunto de distribuições de probabilidade condicional, �, contendo
um distribuição, ��������, para cada variável aleatória �
Na seqüência, serão abordados os métodos de construção (item 3.1) e de
inferência (item 3.2).
3.1 Construção
A construção de uma RB é realizada em duas etapas:
I. Entra-se com o problema manualmente, identificando as variáveis
relevantes e o relacionamento (causal) entre elas. O GAD resultante
especifica um conjunto de dependências e suposições de
independência, que serão reforçadas na distribuição de probabilidade
comum.
II. Especifica-se um conjunto de distribuição de probabilidade condicional,
��|�����, onde para cada “família”, ��� � !���, do GAD.
Uma RB pode ser construída de forma manual, automática (através de uma
base de dados), ou da combinação manual e base de dados. Nesse último método
de construção, parte do conhecimento sobre a estrutura é definida manualmente,
misturando os parâmetros com informações estatísticas extraídas da base de dados.
A construção manual de uma RB pode ser uma tarefa difícil, exigindo grande
habilidade e criatividade, como também um bom conhecimento do domínio do
problema. Uma vez construída, seja de forma manual ou automática, os parâmetros
da RB podem ser continuamente atualizados com novas informações. Assim, o
modelo inicial fornecido, é gradualmente aprimorado.
Independente da utilização de dados, completos ou incompletos, existem dois
paradigmas principais para construção de uma RB: o de independência condicional
e o de busca e pontuação. A seguir serão descritos dois métodos utilizados para
construir uma RB, sendo um de cada paradigma.
26
3.1.1 PC
O algoritmo PC, desenvolvido por Spirtes e Glymour em 1991, está inserido
no paradigma de independência condicional. Seu trabalho é procurar um RB que
represente o relacionamento independente entre as variáveis em uma base de
dados [KJAERULFF08].
O método PC para construção automática de uma RB possui quatro etapas:
a) Teste (condicional) de relação de independência entre cada par de
variáveis � " #|$�: busca determinar a validade condicional da
relação de independência, realizando testes com hipóteses
estatísticas.
b) Identificar o “esqueleto” do grafo: o esqueleto do grafo é obtido,
removendo a direção de todos os arcos dirigidos.
c) Identificar as colisões � % # & '�: a identificação de colisão é
baseada no esqueleto, procurando por subconjunto das variáveis
�, #, '�. d) Identificar os sentidos derivados: os sentidos derivados são
encontrados após a identificação do esqueleto e das colisões. Um
arco é dito derivado, quanto este é uma conseqüência lógica da ação
anterior.
3.1.2 EM
O algoritmo Expectation Maximization (EM) é um método de estimação a
partir de dados incompletos. Basicamente, se alguma variável, foi algumas vezes
observada e outras não, este algoritmo utiliza os casos para os quais as variáveis
foram observadas, para aprender a predizer seus valores quando não. Este método
está inserido dentro do paradigma de busca e pontuação [KJAERULFF08]
[LUNA04].
Este algoritmo duas etapas definidas:
27
a) Etapa E: nesta etapa são encontrados os valores estatísticos
esperados para os dados completos, incompletos e as estimativas
atuais dos parâmetros.
b) Etapa M: de posse destes valores, realiza uma estimativa de máxima
verossimilhança5.
3.2 Inferência
A realização de inferência em uma RB é, geralmente, um problema NP-difícil;
inclusive as inferências aproximadas consistem em um problema NP-difícil.
Felizmente, eficientes algoritmos foram desenvolvidos, tornando possível realizar
inferência em RB em frações de segundos. Contudo, esta eficiência é diretamente
dependente da estrutura do GAD [KJAERULFF08].
Normalmente, uma RB representa indicação causal do tipo % #, onde é
uma causa de # e, também, onde # normalmente assume o papel de um efeito
perceptível de . Esse efeito, tipicamente, não pode ser observado, sendo
necessário derivar à distribuição de probabilidade posterior ��|# � (�, dada a
observação # � (, utilizando a distribuição prévia ��� e a distribuição de
probabilidade condicional ��#|� especificada no modelo. Thomas Bayes criou o
famoso teorema de Bayes para realizar este cálculo:
��|# � (� � ��# � (|������# � (� , (2)
onde ��# � (� � ∑ ��# � (| � *��� � *�+ . Este teorema teve um papel
fundamental na inferência estatística, porque a probabilidade de uma causa pode
ser pressuposta, quando seu efeito for observado.
Existem, basicamente, dois métodos de inferência, os denominados exatos e
os aproximados. A seguir são descritos dois algoritmos, uma referente a cada
método de inferência.
5 Verossimilhança é uma função da probabilidade condicional. A Máxima Verossimilhança se baseia no cálculo onde ao se derivar uma equação e igualando-a a zero se pode chegar aos valores mínimos e/ou máximos.
28
3.2.1 Árvore de Junção
Árvore de junção faz parte dos métodos de algoritmos denominados exatos,
onde o cálculo das probabilidades é realizado a posteriori, através de somatório e
combinações de valores. O objetivo é construir uma estrutura de dados que pode
ser utilizada para calcular qualquer consulta através da passagem de mensagens na
árvore [JEMILI07] [KJAERULFF08] [LUNA04].
O primeiro passo do algoritmo árvore de junção é criar um grafo não
direcionado a partir da entrada de um GAD através de um procedimento chamado
de “moralização”. Este procedimento mantém os mesmos arcos, removendo as
direções e depois conectando os pais de cada filho. A construção deste algoritmo
segue quatro etapas:
1) Escolher uma ordem para os nodos.
2) Laço através de cada nodo. Para cada nodo ,, cria um conjunto $,
com todos os seus vizinhos. Remove o nodo , do grafo moralizado.
3) Constrói o grafo permitindo que cada $, seja um nodo. Conecta cada
nodo com arcos – com pesos – não direcionados. O peso de cada
arco vindo de $, para $- é |$, . $-|. 4) Permite a árvore de junção ser a árvore com peso máximo de medida
do conjunto de grafo.
3.2.2 Monte Carlo
Este algoritmo faz parte do grupo de métodos aproximados, utilizando
técnicas de simulação para obter valores aproximados das probabilidades. O
algoritmo de Monte Carlo gera um conjunto de amostras, escolhidas aleatoriamente,
realizando inferência sobre elas. A precisão dos resultados está diretamente
relacionando com o tamanho da amostra e, diferentemente dos métodos exatos, a
estrutura da rede não é relevante para a realização do cálculo de inferência. Abaixo
é descrito os passos realizados pelo algoritmo:
1) São geradas configurações aleatórias das variáveis.
29
2) É feita a seleção de uma configuração aleatória, por amostragem dos
estados das variáveis.
3) São realizadas novas amostras até se obter / configurações.
3.3 Aplicações
Nos itens anteriores, foram apresentados os conceitos de construção e
inferência em RB. Neste item, são apresentadas algumas aplicações que utilizam
RB e seus conceitos para a realização de tarefas, tais como [NEAPOLITAN03]:
� O Learning R&D Center da Universidade de Pittsburgh desenvolveu o
Andes, um tutor inteligente para física.
� O Microsoft Office, desde 1995, utilizam uma naive-RB para auxiliar na
seleção de tópicos de ajuda, baseado em consultas.
� SymText utiliza um modelo de contexto baseado em RB para extrair
informação de textos médicos escritos em linguagem natural. Esta
aplicação foi desenvolvida na Universidade de Utah.
� A Automotive Information Systems (AIS) desenvolveu mais de 600 RB
que são capazes de diagnosticar os 15 problemas mais comuns em,
aproximadamente, 10.000 carros diferentes.
Existem inúmeras aplicações, em diferentes áreas do conhecimento, que se
utilizam de redes bayesianas. Sua utilização está fortemente ligada à aquisição de
conhecimento a partir de uma base de informação.
30
4 TRABALHOS RELACIONADOS
Neste capítulo são apresentados os trabalhos relacionados a esta
monografia, suas vantagens e desvantagens, suas limitações e contribuições.
Com o objetivo de entender e analisar os diversos problemas, sobre a
utilização de redes bayesianas em um sistema de detecção de intrusão, foram
analisadas diversas iniciativas que abordam o assunto. Os trabalhos aqui
relacionados são: A Framework for an Adaptive Intrusion Detection System using
Bayesian Network, escrito por Farah Jemili, Dr. Montaceur Zaghdoud e Pr. Mohamed
B. Ahmed, publicado na IEEE em 2007 e Bayesian Learning Networks Approach to
Cybercrime Detection, escrito por N. S. Abouzakhar, A. Gani, G. Manson, M.
Abuitbel e D. King, publicado na PGNET em 2003.
4.1 A Framework for an Adaptive Intrusion Detection System using Bayesian
Network
O artigo [JAMILE07] apresentado, propõe a utilização de redes bayesianas
como método de identificação de ataques em sistemas de identificação de intrusão.
O framework utiliza o algoritmo K2, limitando em quatro, o número de parentes de
cada nodo e utilizando dois métodos de classificação: a) Normal e Ataque, b) DOS,
Probing, R2L, U2R e Outros; para construção/aprendizagem, sobre a base do
DARPA’99.
Foram consideradas as seguintes variáveis, nesta respectiva ordem:
protocol_type, service, land, wrong_fragment, num_failed_logins, logged_in,
31
root_shell, is_guest_login, attack_type. Optou-se também por utilizar o algoritmo
árvore de junção para realizar inferências sobre a rede.
Um ponto importante, mas que deve ser considerado com cuidado é o fato de
ocorrer uma realimentação da RB. Este procedimento deve ser adotado, quando se
tem uma base grande de conhecimento, pois, caso contrário, pode ocorrer erro de
classificação, prejudicando toda a rede.
Uma comparação direta dos resultados obtidos nesta proposta e neste
trabalho em questão não pode ser realizada, em virtude das variáveis e base de
conhecimento utilizadas. Contudo, ambas mostraram eficiência na detecção de
ataques.
4.2 Bayesian Learning Networks Approach to Cybercri me Detection
Este artigo [ABOUZAKHAR03] também apresenta uma abordagem para
identificação de ataques em sistemas de detecção de intrusão, utilizando redes
bayesianas. Contudo, os algoritmos de construção/aprendizagem e inferência não
são informados, apenas informa que em, foi utilizada árvore de decisão, para
transformar as variáveis contínuas em discretas. Como no artigo anterior, este
também utiliza a base do DARPA para construção/aprendizagem da rede. Porém,
as variáveis utilizadas não são iguais – protocol_type, service, count, srv_count,
attack_type, rerror_rate, srv_rerror_rate, duration, serror_rate, srv_serror_rate –
montando, dessa forma, a rede bayesiana de forma diferente.
Diferentemente do artigo anterior, é utilizando um método conhecido como Lift
Chart para validar a aprendizagem da RB.
Uma comparação direta dos resultados obtidos nesta proposta e neste
trabalho em questão não pode ser realizada, em virtude das variáveis e base de
conhecimento utilizadas. Contudo, ambas mostraram eficiência na detecção de
ataques.
32
5 MODELO PROPOSTO
Atualmente, a maioria dos IDSs utiliza identificação de intrusão por regras
estáticas, tornando a identificação de um ataque, neste caso, muito mais reativa,
pois é necessário que: I) o ataque já tenha sido mapeado; II) tenha uma regra
gerada para o IDS utilizado; e III) demanda constante atualização da base de
ataques. A proposta desta monografia está centrada no desenvolvimento de um
framework para detecção e filtragem de alertas de intrusão utilizando, para isto,
redes bayesianas.
O modelo proposto visa agregar pró-atividade ao IDS, tornado possível
identificar novos ataques. Para adquirir esta “inteligência”, é necessário identificar o
“perfil” de acesso normal e de ataque do ou dos computadores monitorados. Este
perfil, também chamado de base de conhecimento, é utilizado para treinar a rede
bayesiana. É com base nestas informações que os acessos passam a ser
classificados em normal ou ataque. A eficiência deste framework proposto, ou de
qualquer IDS que se utilize de redes bayesianas, está diretamente relacionada à
fase de treinamento e, conseqüentemente, a base de conhecimento. Quanto maior
e mais confiável for a base de conhecimento, mais eficaz será a identificação de
acessos normais e de ataques; diminuindo, assim, o número de falsos positivos e
falsos negativos. Os diferenciais apresentados neste modelo, com relação aos
modelos estudados são:
a) Estrutura da rede
Optou-se por construir a estrutura da rede, de forma manual, montando
assim, uma naive-RB. Já para construir o conhecimento, ou seja,
aprender as probabilidades, o algoritmo EM foi escolhido, por
possibilitar esta construção de conhecimento, a partir de dados
incompletos, e por estar disponível na ferramenta Netica.
33
b) Variáveis contempladas
� ip_origem: identifica o endereço IP do computador que originou o
acesso.
� ip_destino: identifica o endereço IP do computador ao qual o
acesso foi direcionado.
� porta_destino: identifica o serviço acessado no computador
destino.
� mem: indica o nível de utilização de memória do computador
destino.
� cpu: indica o nível de utilização de processamento do computador
destino.
� ataque: pode conter apenas dois valores, sim ou não.
c) Proposta de utilização
Por ser uma técnica custosa computacionalmente, este framework é
proposto para ser utilizado, não em um ambiente de produção, onde o
tempo de resposta é crítico, mas sim em frente a uma honeynet, ou
seja, um ambiente preparado para ser invadido, não comprometendo
assim, a performance de acesso da rede de produção. Também se
optou por gerar regras estáticas, dos novos ataques identificados, para
IDSs baseados em regras.
Visando ilustrar a RB criado, a Figura 3 traz a direita, a rede bayesiana
proposta no artigo [JAMILE07], ao centro a rede aqui proposta e a esquerda, a rede
proposta no artigo [ABOUZAKHAR03].
34
Figura 3 – Comparação entre modelos de redes bayesianas. Fonte: Elaborado pelo próprio autor.
Na seqüência, será demonstrada a metodologia utilizada (item 5.1) e os
parâmetros necessários às simulações (item 5.1).
5.1 Metodologia
Para desenvolver o framework proposto, inicialmente, foram realizadas
leituras de artigos, publicações e livros sobre Sistemas de Detecção de Intrusão e
Redes Bayesianas; apresentando, assim, as tecnologias envolvidas. Visando uma
melhor compreensão, a metodologia foi dividida em quatro etapas – ambiente,
simulação, construção e validação – detalhadas a seguir.
5.1.1 Ambiente
Para validar o framework proposto foi necessário montar um ambiente, onde
ataques e tráfegos normais de rede pudessem ser simulados de forma controlada;
garantindo assim, confiabilidade para a fase de validação. Para isto, foram utilizados
três computadores, denominados respectivamente: invasor, honeywall e vítima.
35
a) Invasor
Neste computador foram instaladas ferramentas, amplamente divulgadas
na Internet, para realizar a simulação dos ataques. A Tabela 1 traz as
ferramentas utilizadas, bem como uma breve descrição sobre elas. Em
relação ao sistema operacional, inicialmente, foi instalado o Windows XP
e, posteriormente, o FreeBSD 6.3 – devido a algumas das ferramentas
utilizadas, não estarem disponíveis para plataforma Windows, a não ser
com a utilização de emuladores.
Tabela 1 – Ferramentas e sua respectiva descrição
Ferramentas Descrição
Nessus É uma ferramenta que varre uma rede a procura
de vulnerabilidades conhecidas e erros de
configuração.
Metasploit O objetivo desta ferramenta é oferecer
informações úteis para testes de ataques,
desenvolvimento de assinaturas para IDSs e
pesquisa de vulnerabilidades.
Web Application
Stress Tool
É uma ferramenta utilizada para realizar teste de
estresse em servidores WEB.
SSHBrute.py Script desenvolvido em python para realizar
ataques de força bruta em servidores SSH.
Fonte: Elaborado pelo próprio autor.
b) Honeywall
Este computador foi configurado com ferramentas para análise e
armazenamento de logs e para comportar o framework proposto. Também
foram criados scripts (ver APÊNDICE A) para realizar as tarefas de coleta
e armazenamento das informações. Na Tabela 2 são mencionadas as
ferramentas utilizadas, as quais são descritas sucintamente. O SO
escolhido foi o FreeBSD 6.2, compilado em modo bridge com três
interfaces de rede: externa, interna e gerenciamento. Deste modo, este
computador se torna invisível para o “Invasor”, monitorando todo o tráfego
de entrada e saída, direcionado a “Vítima”. Através da interface de
36
gerenciamento, eram coletadas as informações de processamento e
memória.
Tabela 2 – Ferramentas de sua respectiva descrição
Ferramentas Descrição
Snort Ferramenta de detecção de intrusão baseada em
regras.
MySQL Banco de dados livre.
Net-SNMP Ferramenta para requisitar ou inserir informações
em agentes SNMP.
TCPDUMP Permite interceptar e visualizar pacotes TCP/IP
entre outros trafegados na rede.
Fonte: Elaborado pelo próprio autor.
c) Vítima
Neste computador foram instalados serviços conhecidos e, possivelmente,
vulneráveis a ataques e duas interfaces de rede: uma externa e outra de
gerenciamento. A Tabela 3 mostra os serviços configurados, a ferramenta
utilizada e uma breve descrição. O sistema operacional instalado foi o
Windows 2000 Professional SP1.
Tabela 3 – Ferramentas, seus respectivos serviços e descrição
Ferramentas Serviço Descrição
IIS/ASP 80 Servidor WEB da Microsoft com
suporte a linguagem script ASP.
SSHWindows 22 Servidor de acesso remoto, baseado
em linha de comando, comum em
servidores Unix.
MSSQL 1433 Banco de dados da Microsoft
Fonte: Elaborado pelo próprio autor.
5.1.2 Experimentos
Para validar o framework proposto, foi necessário realizar ataques e acessos
normais de rede, utilizando as ferramentas anteriormente citadas. Como o objetivo
37
não era confrontar o framework em volume de ataque, mas sim sua eficiência,
optou-se por realizar três tipos de ataques:
- Ataques de inserção de código em servidores WEB (IIS/ASP);
- Ataques de força bruta a servidores SSH;
- Ataques de inserção de código a servidores SQL Server.
Para cada tipo de ataque, foram realizados 201 ataques e 100 acessos
normais, para posterior construção da RB, montagem dos cenários de treinamento e
teste. Para cada rodada eram gerados dois arquivos, um com o logs do TCPDUMP,
e outro com as informações de processamento e memória. Este método foi adotado
para identificar o perfil normal e o perfil em ataque do computador “Vítima”. As
informações foram coletadas com o auxílio da ferramenta TCPDUMP e NET-SNMP,
sendo armazenadas em um banco de dados MySQL. O APÊNDICE A, mostra um
exemplo de informações de tráfego de rede, processamento e memória, coletas a
partir de um ataque.
5.1.3 Construção
A primeira etapa para construção do framework foi iniciada pela escolha da
ferramenta e linguagem de programação. Durante esta etapa foram consideradas,
basicamente, duas ferramentas e, conseqüentemente, duas linguagens de
programação distintas, são elas: I) Weka – uma ferramenta opensource para
desenvolvimento em Java; e II) Netica – uma ferramenta comercial, mas disponível
para utilização gratuita, com limitações para desenvolvimento, oferecendo API em C.
Por possuir recursos para construção automática da RB, algoritmo de inferência e
boa documentação, foi escolhida a ferramenta Netica e sua API em linguagem C
para desenvolvimento.
Na segunda etapa, foi feita a opção por construir uma naive-RB que pode ser
vista na Figura 4, juntamente com o algoritmo EM, para construção do conhecimento
– a partir da base de dados. A variável ataque é definida como nodo pai, e as
demais, como nodos filhos independentes.
38
Figura 4 – naive-Rede Bayesiana construída. Fonte: Elaborado pelo próprio autor.
Durante esta segunda etapa, identificou-se a necessidade de realizar um
tratamento da base de conhecimento, para uma melhor construção e treinamento da
RB. Um ponto considerado importante, foi a conversão dos valores numéricos das
variáveis memória (mem) e processamento (cpu) em baixa, média, alta. A
conversão foi realizada analisando a faixa de valores destas variáveis, no perfil
normal e no perfil de ataque. A Tabela 4 apresenta duas conversões, trazendo a
faixa de valores e sua respectiva descrição. Com as faixas de valores utilizadas na
primeira conversão, foi construída a RB. Durante o treinamento, devido esta
distribuição, se identificou que um ataque que gerasse uma utilização alta de
memória (na faixa entre 66 a 100), resultava em um falso negativo, ou seja, um
ataque era considerado como tráfego normal de rede. Foi necessária, então, uma
nova conversão, redistribuindo a faixa de valores da variável memória.
Tabela 4 – Faixa de valores definidas para cada variável
Variável Faixa de valores
(1ª. conversão)
Faixa de valores
(2ª. conversão)
Descrição
MEM 1 a 35 1 a 35 Baixa
36 a 65 36 a 50 Média
66 a 100 51 a 100 Alta
CPU 1 a 25 1 a 25 Baixa
26 a 50 26 a 50 Média
51 a 100 51 a 100 Alta
Fonte: Elaborado pelo próprio autor.
Utilizando o exemplo de ataque apresentado no APÊNDICE A, são extraídas
as informações e aplicadas as conversões de valores, utilizadas na construção da
RB.
39
Com a rede construída e já treinada com as informações da base de dados
(ver APÊNDICE B), foi iniciado o processo de inferência, para verificar se o
conhecimento adquirido estava correto. Para a realização das inferências, foi
utilizado o algoritmo árvore de junção, disponível na ferramenta Nética.
5.1.4 Validação
Para realizar a validação do framework foi criado um cenário de treinamento;
além de quatro cenários de teste. De posse das informações, o comportamento do
framework foi analisado quanto:
a) ao número de falsos positivos e falsos negativos, em relação ao tráfego
conhecido.
b) ao número de falsos positivos e falsos negativos, em relação ao tráfego
desconhecido.
5.2 Parâmetros de simulação
Para cada simulação de ataque e acesso normal de rede, foram utilizados
ferramenta e scripts distintos. A seguir, são apresentados os parâmetros que foram
utilizados nos cenário durante as simulações.
Na Tabela 5, estão os parâmetros utilizados nas simulações de ataque ao
servidor IIS – porta 80.
Tabela 5 – Parâmetros de ataque ao servidor IIS.
Parâmetro Descrição
Ferramenta Nessus for Windows
IPs Origem 192.168.47.1-192.168.47.5
IP Destino 192.168.47.129
Plugins Selecionados Web Servers (ver APÊNDICE B)
No. Conexões 100
Fonte: Elaborado pelo próprio autor.
40
Na Tabela 6, estão os parâmetros utilizados nas simulações de ataque ao
servidor SSH – porta 22.
Tabela 6 – Parâmetros de ataque ao servidor SSH
Parâmetro Descrição
Script SSHBrute.py
IPs Origem 192.168.47.1-192.168.47.5
IP Destino 192.168.47.129
Arquivo de senhas 100 registros de senha
No. Conexões 100
Fonte: Elaborado pelo próprio autor.
Na Tabela 7, estão os parâmetros utilizados nas simulações de ataque ao
servidor SQL Server – porta 1433.
Tabela 7 – Parâmetros de ataque ao servidor SQL Server.
Parâmetro Descrição
Ferramenta Nessus for Windows
IPs Origem 192.168.47.10
IP Destino 192.168.47.129
Plugins Selecionados (ver APÊNDICE C)
No. Conexões 1
Fonte: Elaborado pelo próprio autor.
Na Tabela 8, estão os parâmetros utilizados nas simulações de acesso
normal e ao servidor IIS – porta 80.
41
Tabela 8 – Parâmetros de acesso normal ao servidor IIS.
Parâmetro Descrição
Ferramenta Microsoft Web Application Stress Tool
IPs Origem 192.168.47.5-192.168.47.9
IP Destino 192.168.47.129
Configurações (ver APÊNDICE D)
No. de Conexões 50
Fonte: Elaborado pelo próprio autor.
Na Tabela 9, estão os parâmetros utilizados nas simulações de acesso
normal ao servidor SSH – porta 22.
Tabela 9 – Parâmetros de acesso normal ao servidor SSH.
Parâmetro Descrição
Ferramentas Putty e WinSCP
IPs Origem 192.168.47.5-192.168.47.9
IP Destino 192.168.47.129
No. de Conexões 50
Fonte: Elaborado pelo próprio autor.
No capítulo 5, serão apresentados os resultados obtidos a partir de cada uma
das simulações.
42
6 SIMULAÇÕES E RESULTADOS
Para testar o framework proposto, foram realizados cinco cenários, sendo um
de treinamento e quatro de teste, com o intuito de obter os percentuais de
identificação de ataque e acesso normal ao computador vítima.
Durante os testes foram realizadas inferências na rede bayesiana,
ocasionando alterações na variável ataque, resultando com que um tráfego seja
considerado normal ou ataque. Nos próximos itens, os cenários são descritos mais
detalhadamente, bem como os resultados obtidos.
6.1 Cenário de treinamento 1
Para iniciar a identificação de ataques e acessos normais de rede, utilizando o
algoritmo árvore de junção, de inferência, é necessário, primeiramente, realizar o
treinamento da RB. O treinamento foi realizado utilizando a base de conhecimento
gerada, ou seja, 200 ataques e 100 acessos normais de rede. A Figura 5 abaixo
traz a rede em sua distribuição inicial.
43
Figura 5 – Rede bayesiana durante fase de treinamento. Fonte: Elaborado pelo próprio autor.
As probabilidades da RB foram calculadas pela ferramenta Nética, utilizando
o algoritmo EM.
6.2 Cenário de teste 1
Neste cenário, a RB foi confrontada com um ataque conhecido, ou seja,
mapeado durante a fase de treinamento. Um ataque, partindo de um computador
conhecido por realizar ataques. O objetivo deste cenário é verificar se não ocorre
um falso negativo. A Tabela 10 traz os valores testados.
44
Tabela 10 – Cenário de teste 1.
Variáveis Valores
ip_origem 192.168.47.3
ip_destino 192.168.47.129
porta_destino 80
mem media
cpu media
ataque *
Fonte: Elaborado pelo próprio autor.
O asterisco no valor da variável ataque indica a informação que se deseja
verificar.
A Figura 6 mostra as inferências realizas, de acordo com o ataque
monitorado.
Figura 6 – Rede bayesiana durante fase de teste 1. Fonte: Elaborado pelo próprio autor.
É possível observar que as inferências realizadas resultaram na indicação de
100% que o tráfego analisado é realmente um ataque, ou seja, 0% de falso negativo.
45
Este percentual foi obtido, em virtude do ataque testado, ter sido mapeado durante a
fase de treinamento.
6.3 Cenário de teste 2
O cenário de teste 2 confrontou a RB com um acesso normal, também
mapeado durante a fase de treinamento. O acesso partiu de um computador
conhecido por realizar acessos desta natureza. O objetivo deste cenário é verificar
se não ocorre um falso positivo. A Tabela 11 traz os valores testados.
Tabela 11 – Cenário de teste 2.
Variáveis Valores
ip_origem 192.168.47.7
ip_destino 192.168.47.129
porta_destino 22
mem baixa
cpu baixa
ataque *
Fonte: Elaborado pelo próprio autor.
A Figura 7 mostra as inferências realizas, de acordo com o acesso normal
realizado.
46
Figura 7 – Rede bayesiana durante fase de teste 2. Fonte: Elaborado pelo próprio autor.
Como se pode observar, as inferências realizadas resultaram na indicação de
100% que o tráfego analisado é realmente um acesso normal. Novamente, por ter
sido mapeado durante a fase de treinamento, ocorreu 0% de falso positivo.
6.4 Cenário de teste 3
Este cenário tem o objetivo de identificar se, um ataque, partindo de um
computador conhecido por realizar acesso normal, é identificado pela RB como um
ataque, ou gera um falso negativo. A Tabela 12 traz os valores testados.
47
Tabela 12 – Cenário de teste 3.
Variáveis Valores
ip_origem 192.168.47.8
ip_destino 192.168.47.129
porta_destino 80
mem media
cpu alta
ataque *
Fonte: Elaborado pelo próprio autor.
A Figura 8 mostra as inferências realizas, de acordo com o ataque realizado.
Figura 8 – Rede bayesiana durante fase de teste 3. Fonte: Elaborado pelo próprio autor.
Neste cenário, um computador, que durante a fase de treinamento só havia
realizado acesso normal, realiza um ataque. Embasado, fortemente, nas variáveis de
memória e processamento, a rede verificou um percentual de 100% de possibilidade
deste acesso, ser um ataque.
48
6.5 Cenário de teste 4
Neste último cenário a RB é confrontada com um novo ataque, ou seja, as
variáveis ip_origem e porta_destino, não foram identificas durante o treinamento. A
Tabela 13 traz os valores testados.
Tabela 13 – Cenário de teste 4.
Variáveis Valores
ip_origem 192.168.47.10
ip_destino 192.168.47.129
porta_destino 1433
mem media
cpu alta
ataque *
Fonte: Elaborado pelo próprio autor.
A Figura 9 mostra as inferências realizas, de acordo com o ataque realizado.
Figura 9 – Rede bayesiana durante fase de teste 4. Fonte: Elaborado pelo próprio autor.
49
Mesmo não conhecendo o computador de origem e a porta de destino, a RB
identificou com 96,9% o acesso como sendo um ataque, ou seja, 3,15% de ser um
falso positivo. Apesar do elevado percentual, esta informação deve ser analisa com
cuidado, pois pode ocorrer que, mesmo para um acesso normal a este serviço, a
utilização de processamento e memória sejam elevados; ocasionando, assim, uma
mudança no perfil de acesso normal e de ataque. Logo, se este fosse um acesso
normal, ocorreria um falso positivo.
Caba ressaltar novamente, que quanto maior e mais confiável for a base de
conhecimento, melhor e mais eficiente será a identificação de acesso normal e
ataque.
50
7 CONCLUSÕES
Ao longo deste trabalho foi apresentado um modelo de framework para
sistema de detecção de intrusão utilizando redes bayesianas. Os resultados aqui
apresentados são de grande relevância, pois possibilitam que outras propostas
sejam norteadas por este estudo.
Durante a realização dos cenários de testes, tornou-se possível identificar que
a utilização de redes bayesianas obteve sucesso na identificação de ataques e
tráfego normal de rede, seja ele conhecido ou não. A utilização das variáveis de
memória e processamento contribuiu diretamente para estes resultados. Frente a
esses resultados, a utilização de redes bayesianas em sistemas de identificação de
intrusão mostrou-se viável, uma vez que foi baixo o percentual de falsos positivos e
falsos negativos.
As potencialidades deste trabalho estão: a) na utilização de uma Naive-Rede
bayesiana, que possibilita maior independência das variáveis; b) na utilização das
variáveis de processamento e memória; e c) na proposta de utilizar este framework
em uma honeynet, não limitando sua utilização em conseqüência do tempo de
resposta – ao transformar o conhecimento aprendido pela rede bayesiana gerando
regras estáticas, para serem utilizadas em sistemas de identificação de intrusão
desta natureza, em uma rede de produção, onde o tempo de resposta é importante.
Este trabalho contribui de forma a auxiliar, na identificação de novos ataques,
tendo em vista que o framework desenvolvido reduz o número de falsos alertas,
podendo ser utilizado também como uma base de conhecimento de reputação de
computadores. Entretanto, este trabalho possui algumas limitações: a) restringiu sua
base de conhecimento a apenas três ataques, que tiveram características distintas
no perfil de acesso normal e no perfil de ataque; b) uma ferramenta escolhida –
Netica – necessita de licença para operar com total funcionalidade; c) as regras
51
estáticas geradas, a partir da base de conhecimento da rede bayesiana, são
compatíveis apenas com a ferramenta Snort; d) não leva em consideração o tempo
de resposta para identificação de um acesso; e e) não foi prevista nesta fase,
realimentação da RB com novos conhecimentos.
Tendo em vista as contribuições e as limitações identificadas, seria
interessante aprimorar o desenvolvimento do framework, agregando interfaces
gráficas de controle e gerenciamento. Como alternativa, poderia ser utilizada a
ferramenta Weka e a linguagem de programação Java. Também é válida a busca
por uma alternativa aos scripts utilizados para obter as informações de
processamento e memória do computador vítima.
A RB construída mostrou eficiência, contudo, a inclusão de novas variáveis
pode vir a contribuir para o aprimoramento da rede. Algumas variáveis identificadas,
mas não utilizadas neste trabalho são: número de conexões realizadas em certa
fatia de tempo e detalhamento do pacote.
52
REFÊRENCIAS BIBLIOGRÁFICAS
ABOUZAKHAR, N. S.; GANI A.; MANSON, G.; ABUITBEL, KING, D. Bayesian Learning Networks Approach to Cybercrime Detection . PGNet, 2003. ALLEN, Julia; CHRISTIE, Alan; FITHEN, Willian; MCHUGH, John; PICKEL, Jed; STONER, Ed. State of the Practice of Intrusion Detection Techno logies . Technical Report – CMU/SEI-99-TR-028. Carnegie Mellon Software Engineering Institute, Pittsburgh, 2000. ARVIDSON, Martin; CARLBACK, Markus. Intrusion Detection Systems – Technologies, Weaknesses and Trends . Examensarbete utfört I Informationsteori, Stockholm, 2003. AXELSSON, Stefan; SANDS, David. Understanding Intrusion Detection through Visualization . Springer, 2006. AXELSSON, Stefan. The Base-Rate Fallacy and its Implications for the Difficulty of Intrusion Detection* . Departament of Computer Engineering, Chalmers University of Technology, Göteborg, Sweden, 1999. ANDERSON, James P. Computer Security Threat Monitoring and Surveillanc e. James P. Anderson, Co. Fort Washington, PA, 1980. BACE, Rebecca; MELL, Peter. Intrusion Detection Systems . NIST Special Publication on Intrusion Detection System, 2001. BOLZONI, Damiano; ETALLE, Sandro; HARTEL, Pieter; ZAMBON, Emmanuele. POSEIDON: a 2-tier Anomaly-based Network Intrusion Detection System* . IEEE, 2006.
53
BRAGA, Bruno R.; D’AMEIDA, José N.; BAIÃO, Fernanda; MATTOSO, Marta L. ISDMiner: Data Mining de Modelos de Detecção de Int rusão . Relatório Técnico do Projeto ClusterMiner – RT-006. UFRJ, Rio de Janeiro, 2004. BRO, 2008, BRO Intrusion Detection System . Disponível em: <http://www.bro-ids.org/>. Acessado em: maio 2008. BRUNEAU, Guy. The History and Evolution of Intrusion Detection . SANS Institute, 2001. CABRERA, João D.; MEHRA, Raman K. Control and Estimation Methods in Information Assurance – A Tutorial on Intrusion Det ection Systems . IEEE, 2002. CHEBROLU, Srilatha; ABRAHAM, Ajith; THOMAS, Johnson P. Feature deduction and ensemble design of intrusion detection systems . Computers & Security, 2004. CARTER, Earl; STIFFLER, Rick. Intrusion Detection: Cisco IDS Overview . Disponível em: <http://www.ciscopress.com/articles/article.asp?p=24696>. Acessado em: maio 2008. DEBAR, Hervé; DACIER, Marc; WESPI, Andreas. A Revised Taxonomy for Intrusion Detection Systems . Annales des Te'le'communiications. 55(7-8), p 361-378, 2000. ENTERASYS, 2008, Enterasys Secure Networks . Disponível em: <http://www.enterasys.com/products/advanced-security-apps/dragron-intrusion-detection-protection.aspx>. Acesso em: maio 2008. FAGUNDES, Leonardo L. Metodologia para avaliação de sistemas de detecção de intrusão . Unisinos, São Leopoldo, 2002. FAOUR, Ahmad; LERAY, Philippe; ETER, Bassam. A SOM and Bayesian Network Architecture for Alert Filtering in Network Intrusi on Detection Systems . IEEE, 2006. INNELLA, Paul. The Evolution of Intrusion Detection Systems . Tetrad Digital Integrity, 2001.
54
JEMILI, Farah; ZAGHDOUD, Dr. Montaceur; AHMED, Pr. Mohamed B. A Framework for an Adaptative Intrusion Detection Sys tem using Bayesian Network . IEEE, 2007. KABIRI, Peyman; GHORBANI, Ali A. Research on Intrusion Detection and Response: A Survey . Internation Journal of Network Security, Vol. 1, No. 2, PP.84-102, 2005. KJAERULFF, Uffe B.; MADSEN, Anders L. Bayesian Networks and Influence Diagrams , A Guide to Construction and Analysis. Springer, 2008. KRUEGEL, Christopher; MUTZ, Darren; ROBERTSON, William; VALEUR, Fredrik. Bayesian Event Classification for Intrusion Detecti on . IEEE, 2003. LUNA, José E. O. Algoritmos EM para Aprendizagem de Redes Bayesianas a partir de Dados Incompletos . Universidade Federal de Mato Grosso do Sul, 2004. MCHUGH, John; CHRISTIE, Alan; ALLEN, Julia. Defending Yourself: The Role of Instrusion Detection Systems . IEEE, 2000. NEAPOLITAN, Richard E. Lerning Bayesian Networks . Prentice-Hall, Inc. 2003. SCARFONE, Karen; MELL Petter. Guide to Intrusion Detection and Prevention Systems (IDPS) . National Institute of Standards and Technology, 2007.
55
APÊNDICE A – EXEMPLO DE CAPTURA DE PACOTES, CPU E M EMÓRIA Informações coletadas utilizando o TCPDUMP. Em destaque, estão os valores utilizados para construção da base de conhecimento. No. Time Source Destination Protocol Info 12 2008-05-14 16:54:43.905846 192.168.47.4 192.168.47.129 TCP 60529 > ssh [SYN] Seq=0 Win=65535 Len=0 MS S=1460 WS=1 TSV=676272 TSER=0 14 2008-05-14 16:54:43.909831 192.168.47.4 192.168.47.129 TCP 60529 > ssh [ACK] Seq=1 Ack=1 Win=66608 Le n=0 TSV=676276 TSER=0 … 1262 2008-06-14 16:56:29.071944 192.168.47.4 192.168.47.129 TCP 51262 > ssh [FIN, ACK] Seq=1200 Ack=2897 W in=66608 Len=0 TSV=740792 TSER=85515
Informações coletadas via SNMP. Em destaque está o valor utilizado para construção da base de conhecimento. Time CPU MEM 2008-05-14 16:54:43 2 32 2008-05-14 16:54:44 2 32 2008-05-14 16:54:45 2 32 2008-05-14 16:54:46 2 32 … 2008-06-14 16:56:25 30 45 2008-06-14 16:56:26 30 45 2008-06-14 16:56:27 30 45 2008-06-14 16:56:28 30 45 2008-06-14 16:56:29 30 45
Está é uma entrada gerada, na base de conhecimento, a partir das informações obtidas anteriormente. IP Origem IP Destino Porta Destino CPU MEM Ataque IP_192_168_47_4 IP_192_168_47_129 tcp_22 media media sim
56
APÊNDICE B – BASE UTILIZADA PARA TREINAMENTO DA RB
ip_origem ip_destino port_destino men cpu ataque no_entradas
IP_192_168_47_1 IP_192_168_47_129 tcp_22 baixa alta sim 2
IP_192_168_47_1 IP_192_168_47_129 tcp_22 media alta sim 18
IP_192_168_47_1 IP_192_168_47_129 tcp_80 alta alta sim 9
IP_192_168_47_1 IP_192_168_47_129 tcp_80 media alta sim 8
IP_192_168_47_1 IP_192_168_47_129 tcp_80 media media sim 3
IP_192_168_47_2 IP_192_168_47_129 tcp_22 baixa alta sim 2
IP_192_168_47_2 IP_192_168_47_129 tcp_22 media alta sim 16
IP_192_168_47_2 IP_192_168_47_129 tcp_22 media media sim 2
IP_192_168_47_2 IP_192_168_47_129 tcp_80 alta alta sim 12
IP_192_168_47_2 IP_192_168_47_129 tcp_80 media alta sim 6
IP_192_168_47_2 IP_192_168_47_129 tcp_80 media media sim 2
IP_192_168_47_3 IP_192_168_47_129 tcp_22 baixa alta sim 2
IP_192_168_47_3 IP_192_168_47_129 tcp_22 media alta sim 16
IP_192_168_47_3 IP_192_168_47_129 tcp_22 media media sim 2
IP_192_168_47_3 IP_192_168_47_129 tcp_80 alta alta sim 12
IP_192_168_47_3 IP_192_168_47_129 tcp_80 media alta sim 5
IP_192_168_47_3 IP_192_168_47_129 tcp_80 media media sim 3
IP_192_168_47_4 IP_192_168_47_129 tcp_22 baixa alta sim 2
IP_192_168_47_4 IP_192_168_47_129 tcp_22 media alta sim 16
IP_192_168_47_4 IP_192_168_47_129 tcp_22 media media sim 2
IP_192_168_47_4 IP_192_168_47_129 tcp_80 alta alta sim 11
IP_192_168_47_4 IP_192_168_47_129 tcp_80 media alta sim 7
IP_192_168_47_4 IP_192_168_47_129 tcp_80 media media sim 2
IP_192_168_47_5 IP_192_168_47_129 tcp_22 baixa baixa nao 10
IP_192_168_47_5 IP_192_168_47_129 tcp_22 baixa alta sim 2
IP_192_168_47_5 IP_192_168_47_129 tcp_22 media alta sim 17
IP_192_168_47_5 IP_192_168_47_129 tcp_22 media media sim 1
IP_192_168_47_5 IP_192_168_47_129 tcp_80 baixa baixa nao 10
IP_192_168_47_5 IP_192_168_47_129 tcp_80 alta alta sim 11
IP_192_168_47_5 IP_192_168_47_129 tcp_80 media alta sim 8
IP_192_168_47_5 IP_192_168_47_129 tcp_80 media media sim 1
IP_192_168_47_6 IP_192_168_47_129 tcp_22 baixa baixa nao 10
IP_192_168_47_6 IP_192_168_47_129 tcp_80 baixa baixa nao 10
IP_192_168_47_7 IP_192_168_47_129 tcp_22 baixa baixa nao 10
IP_192_168_47_7 IP_192_168_47_129 tcp_80 baixa baixa nao 10
IP_192_168_47_8 IP_192_168_47_129 tcp_22 baixa baixa nao 10
IP_192_168_47_8 IP_192_168_47_129 tcp_80 baixa baixa nao 10
IP_192_168_47_9 IP_192_168_47_129 tcp_22 baixa baixa nao 10
IP_192_168_47_9 IP_192_168_47_129 tcp_80 baixa baixa nao 10
Obs.: A coluna no_entradas, se refere ao número de entradas existentes na base.
57
APÊNDICE C – SCRIPT DE COLETA DE INFORMAÇÕES MEM E CPU #!/bin/sh ## IP Gerenciamento – Computador vitima VITIMA=10.100.1.102 while [ $# = 0 ] do ## Garante o sincronismo de hora antes de captura r as informacoes ntpdate -Bb ${VITIMA} >> /dev/null data_hora=`date "+%Y-%m-%d %H:%M:%S` ## Comando snmp para buscar a memoria total do co mputador vitima mem_total=`snmpget -v 1 -c public -Oqv ${VITIMA} .1.3.6.1.2.1.25.2.2.0 | awk -F" " '{print $1}'` ## Comando snmp para buscar a memoria livre do co mputador vitima mem_livre=`snmpget -v 1 -c public -Oqv ${VITIMA} .1.3.6.1.4.1.311.1.1.3.1.1.1.29.0` ## Subtrai a men_total da men_livre para identifi car o total de memoria utilizada mem_utilizada=`let mem_utilizada=$mem_total-$mem_ livre` ## Calcula em percentual a memoria utilizada percentual_mem_utilizada=`let percentual=$mem_uti lizada*100/$mem_total` ## Percentual de utilizacao cpu percentual_cpu_utilizada=`snmpget -v 1 -c public -Oqv ${VITIMA} HOST- RESOURCES-MIB::hrProcessorLoad.1` echo "$data_hora;$percentual_cpu_utilizada;$perce ntual_mem_utilizada" >> /dados/monitoramento.txt done
58
APÊNDICE D – NESSUS WEB SERVERS PLUGINS
Figura 10 – Nessus Web Servers – plugins selecionados. Fonte: Elaborado pelo próprio autor.