Você está na página 1de 84

CENTRO UNIVERSITRIO DE ARARAQUARA UNIARA

NCLEO DE EDUCAO A DISTNCIA NEAD


CURSO DE PS-GRADUAO MBA-GESTO SEGURANA DA INFORMAO










VELISLEI ADILSON TREUK




ANLISE PRTICA DO IDS SNORT
Anlise prtica da ferramenta integrando com MySQL, Apache, PHP e ACID










ARARAQUARA
2014


VELISLEI ADILSON TREUK












ANLISE PRTICA DO IDS SNORT
Anlise prtica da ferramenta integrando com MySQL, Apache, PHP e ACID





Trabalho de concluso de curso apresentado ao
Centro Universitrio de Araraquara como requisito
para obteno do ttulo de MBA-Gesto Segurana
da Informao.
Orientador: Prof(a). Me(a).Renata Mirella Farina.





ARARAQUARA
2014
































DECLARAO

Eu, Velislei Adilson Treuk, RG: 4.390.336-5, aluno regularmente matriculado no
Curso de MBA-Gesto de Segurana da Informao do Centro Universitrio de
Araraquara-UNIARA, declaro ser o autor do texto apresentado como Trabalho de
Concluso de Curso-TCC com o ttulo Anlise prtica do IDS Snort.
Afirmo, tambm, ter seguido as normas da ABNT referentes s citaes textuais que
utilizei e das quais eu no sou autor, dessa forma, creditando a autoria a seus
verdadeiros autores (Lei n.9.610, 19/02/1998).
Atravs dessa declarao dou cincia de minha responsabilidade sobre o texto
apresentado e assumo qualquer responsabilidade por eventuais problemas legais,
no tocante aos direitos autorais e originalidade do texto.



Araraquara, 25 de junho de 2014.



_______________________________________
Velislei Adilson Treuk




TERMO DE APROVAO





















VELISLEI ADILSON TREUK



ANLISE PRTICA DO IDS SNORT
Anlise prtica da ferramenta integrando com MySQL, Apache, PHP e ACID




MONOGRAFIA PARA CONCLUSO DO CURSO DE MBA-GESTO DE
SEGURANA DA INFORMAO



Comisso Julgadora
Presidente e Orientador ................................................................................
2 Examinador ..............................................................................................
3 Examinador ..............................................................................................



Nota: _________ Araraquara, 25 de junho de 2014.




















Dedico,
Aos meus pais, que souberam
acreditar num potencial ainda
desconhecido, em meio a dvida e
dificuldades da vida, que esta criatura
frgil poderia se tornar em um ser capaz
de vencer as dificuldades da vida.






AGRADECIMENTOS


A Deus por proporcionar a oportunidade da existncia e a capacidade da compreenso.
A minha famlia, pela pacincia em todos os momentos de ausncia para elaborao deste
trabalho, e pela compreenso pela minha falta de ateno nos momentos em que estive
fisicamente presente mas que me empenhava para que pudesse realizar esta pesquisa, me
auxiliando nos momentos de dificuldades em que me deparei.
professora Renata, por todo auxlio tcnico, empenho e motivao.
A todos que de alguma forma me ajudaram, motivando e torcendo para que esse trabalho
fosse realizado com sucesso.




























Sou tua criana, Senhor, e esta terra bela, rica e abundante, em cujo seio me puseste para
dormir, somente o bero de onde engatinho para ti.

Mikhail Naimy







RESUMO


Esta pesquisa pretende demonstrar o uso de tcnicas de proteo(hardening) em servidores de
redes Windows e Linux, com a utilizao de uma ferramenta Open Source, com o objetivo de
reduzir os riscos as informaes contidas nestes servidores.
A situao atual das organizaes com relao a vulnerabilidade das informaes em suas
redes, principalmente quando se olha para o enorme crescimento e a velocidade com que ele
acontece, o astronmico crescimento do uso de ferramentas para tentar bloquear trfegos com
potencial maliciosos ou no condizente com os interesses organizacionais efetuado por seus
funcionrios.
Mostra tambm que a utilizao de softwares de proteo, do tipo Open Source, uma forma
inteligente de se usar os recursos financeiros disponveis, demonstrando sua eficincia e o
enorme potencial quando corretamente utilizada. Pretendo tambm demonstrar as dificuldades
encontradas na criao e aplicao de filtros a fim de se minimizar falsos positivos nos
trfegos indesejveis dentro desta rede, pois a enorme variedade de tecnologias de
comunicao (hardwares), o astronmico volume de informao que podemos estar
monitorando e a quantidade de pessoas e departamentos da empresa em questo que podem
estar, de alguma maneira, envolvidos torna esta tarefa, aparentemente simples, uma enorme
dor de cabea para o administrador da rede.
Esta dissertao aborda o desafio de se tratar a grande variedades de informaes, as
diferentes situaes em diferentes departamentos que podemos encontrar, eles so numerosos,
porque os sistemas de informao de hoje no foram construdos com os requisitos de
segurana desde seu incio, o desafio de se administrar tudo isto quando pessoas envolvidas
esto despreparadas ou resistentes a sua aplicao, pois muitas vezes tais filtros de trfegos
podem de alguma forma estar dificultando o desempenho de suas funes.
Palavras-chave: Snort, MySQL, Apache, PHP, ACID, IDS, HIDS, IPS, Vulnerabilidade,
Segurana de rede, Servidores;



ABSTRACT

This research aims to demonstrate the use of technical protection (hardening) in Windows and
Linux network servers, using an Open Source tool, with the aim of reducing the risks of the
information contained on these servers. The current situation of organizations regarding the
vulnerability of information on their networks, especially when looking at the huge growth
and the speed at which it happens, the astronomical increase in the use of tools to try to block
traffic for malicious or potentially inconsistent with the interests organizational performed by
its employees.
Also shows that the use of protection software, the type Open Source, is a clever way to use
the available financial resources, demonstrating its efficiency and great potential when used
correctly. I also intend to demonstrate the difficulties in creating and applying filters in order
to minimize false positives in undesirable traffic within this network because the huge variety
of communication technologies (hardware), the astronomical amount of information that can
be monitoring the amount of people and departments of the company in question that may be
involved somehow makes this seemingly simple task, a huge headache for the network
administrator.
This paper addresses the challenge of addressing the huge variety of information, the different
situations in different departments we can see, they are numerous, because the information
systems of today were not built with security requirements since its inception, the challenge
of administering all this when people involved are unprepared or resistance to its application
as it often trades such filters can somehow be hindering the performance of their duties.
Keywords: Snort, MySQL, Apache, PHP, ACID IDS, HIDS, IPS, Vulnerability, Network
Security, Servers;





LISTA DE FIGURAS


Figura 1. Anatomia de um ataque
3
29
Figura 2. Rede rodando Snort e MySQL 37
Figura 3. Rede bsica IDS 38
Figura 4.
Logotipo do Snort
12
40
Figura 5. Funcionamento esquemtico do Snort 45
Figura 6. Layout da rede de testes do Snort no Windows 47
Figura 7. Execuo de varredura de portas com Nmap no Windows 49
Figura 8. Layout fsico da rede de teste Snort com Linux 51
Figura 9. Topologia da rede de testes NIDS x HIDS 56
Figura 10. Grfico do relatrio de captura NIDS x HIDS 60
Figura 11. Relatrio de captura da varredura Nmap na pgina do ACID 61
Figura b1. Teste de execuo do Apache, exibio da configurao do Php 72
Figura b2. Pagina ACID, forma de criao de tabelas MySQL pelo ACID 82
Figura b3. Aparncia da pgina do ACID aps a instalao 83










LISTA DE TABELAS

Tabela 1. Opes de configurao no monitoramento do Snort 43
Tabela 2. Consultando a numerao de portas de rede no Windows 47
Tabela 3. Relatrio de monitorao resumido no Snort com o Windows 48
Tabela 4. Relatrio de captura de pacotes de rede pelo Snort com o Windows 49
Tabela 5. Relatrio de captura via console do Snort no Linux 52
Tabela 6. Relatrio de captura de pacotes icmp pelo Snort 53
Tabela 7. Relatrio comparativo de captura de pacotes ICMP (NIDS x HIDS) 57
Tabela 8. Comparativo do relatrio de captura de pacotes Nmap (NIDS x
HIDS)
58
Tabela a1. Editando arquivo de configurao do Snort 67
Tabela a2. Criao do arquivo Whitelist.rule do Snort 69














LISTA DE ABREVIATURAS



ABNT Associao Brasileira de Normas tcnicas
AIX Sistema operacional
DDoS Distributed Denial-Of-Service
DNS Domain Name System
HIDS Host-based Intrusion Detection System
HP-UX Sistema operacional
ICMP Internet Control Message Protocol
IDS Intrusion Detection System
IP Internet Protocol
NIDS Network Intrusion Detection System
TCP Transmission Control Protocol
UDP User Datagram Protocol
VPN Virtual Private Network




















SUMRIO


RESUMO...................................................................................................................................7
ABSTRACT...............................................................................................................................8
LISTA DE FIGURAS...............................................................................................................9
LISTA DE TABELAS............................................................................................................10
LISTA DE ABREVIATURAS...............................................................................................11

1. INTRODUO...........................................................................................................15
1.1.Apresentao da Pesquisa.......................................................................................15
1.2.Problematizao da pesquisa..................................................................................16
1.3.Justificativa do estudo.............................................................................................17
1.4.Objetivos.................................................................................................................18
1.5.Mtodo de pesquisa.................................................................................................18

2. REVISO BIBLIOGRFICA...................................................................................20
2.1 O que Informao?...............................................................................................20
2.2 Era da Informao...................................................................................................21
2.3 Era da Informao e Internet...................................................................................21
2.4 Segurana da Informao........................................................................................22
2.5 Por que a segurana da informao?.......................................................................23
2.6 Restries de Segurana..........................................................................................24
2.7 Vulnerabilidade.......................................................................................................24
2.7.1 Vulnerabilidades em Sistemas de Computao........................................25
a)Confidencialidade...............................................................................26
b)Integridade..........................................................................................26
c)Disponibilidade...................................................................................27
2.8 Anatomia de um ataque...........................................................................................27




3. FERRAMENTAS IDS................................................................................................30
3.1 O que um IDS.......................................................................................................30
3.2 Rede IDS ou NIDS..................................................................................................31
3.3 Host IDS ou HIDS...................................................................................................31
3.4 HIDS x NIDS..........................................................................................................32
3.5 Assinaturas..............................................................................................................33
3.6 Alertas.....................................................................................................................33
3.7 Logs.........................................................................................................................34
3.8 Alarmes Falsos........................................................................................................34
3.9 Sensor......................................................................................................................35
3.10 Falhas nos IDS......................................................................................................35

4. SISTEMAS DE DETECO DE INTRUSO COM SNORT..............................37
4.1 Deteco de Intruso e Snort.............................................................................38
4.2 Regras de filtragem no Snort.............................................................................40
4.3 Declarao de variveis.....................................................................................42
4.4 Opes de execuo.........................................................................................43
4.5 Componentes do Snort......................................................................................44

5. TESTANDO O SNORT..............................................................................................46
5.1 Testando o Snort com o Windows..........................................................................46
5.2 Snort com Linux......................................................................................................51
5.3 Testando o Snort no Linux......................................................................................52

6. DESEMPENHO DO SNORT.....................................................................................55
6.1 Testando e comparando o Snort..............................................................................55
6.1.1 Envio de pacotes icmp a vtima............................................................................56
6.1.2 Varredura de portas da vtima via Nmap.............................................................58
6.1.2.1 Resultados obtidos exibidos no ACID..................................................61





CONCLUSO.........................................................................................................................62
REFERNCIAS BIBLIOGRFICAS..................................................................................64
APNDICE A..........................................................................................................................66
APNDICE B..........................................................................................................................70





15

Captulo 1


INTRODUO


Esta pesquisa pretende ser capaz de construir um sistema de deteco de intruso completo,
com todas as etapas de instalao e integrao das diferentes ferramentas que podem trabalhar
de forma direta com o Snort. No fim fazer uma comparao da capacidade de deteco do
Snort instalado e configurado como HIDS em uma mquina Windows, e NIDS em um
servidor Linux, ambas monitorando o mesmo ataque. A pesquisa em um servidor Linux ser
mais detalhada, incluindo banco de dados MySql, servidor Web Apache, linhas de cdigo
PHP e o analisador ACID, j que a maioria dos servidores so baseados em tecnologia Linux.


1.1. Apresentao da Pesquisa


Ataques a computadores pessoais, servidores de rede ou o uso de mtodos especializados
para contornar a poltica de segurana de uma organizao, hoje, so cada vez mais comuns
em nosso dia-a-dia e uma dor de cabea para as organizaes. Ento como identificar esses
ataques e como reagir diante de uma situao como esta? Gerar um alerta, bloquear a
atividade suspeita ou executar ambos em conjunto?
A proposta desta pesquisa um estudo do uso de IDSs do tipo Open Source para prevenir,
alertar e reagir a tais ataques. Estes IDS podem vir de vrias formas, vises, preos, e funes.
Por razes obvias escolhemos, em nossa opinio, o melhor IDS Open Source gratuito para
realizar nosso estudo. O trabalho aqui apresentado baseado em um sistema popular de
deteco de intruso de rede (NIDS) chamado SNORT. O SNORT detecta ataques

16

comparando o trfego de rede em tempo real, buscando por assinaturas que podem significar
ataques potencialmente perigosos e j conhecidos.
O objetivo desta pesquisa estudar a eficcia dos IDSs quando aplicada correspondncia
do trfego da Internet contra assinaturas potencialmente maliciosas, regras no SNORT.
Nesta pesquisa, fizemos um estudo do uso do Snort para proteo de redes Windows e Linux,
sua eficcia e seu uso em conjunto com outros softwares para torn-lo ainda mais eficiente e
simplificado, tentando tirar o mximo proveito que softwares gratuitos e Open Source podem
oferecer. O Snort unido ao Apache, MySQL, Php e ACID torna-se ainda mais poderoso e
uma excelente opo para defender os dados de seus servidores.


1.2. Problematizao da pesquisa


Esta pesquisa sobre a utilizao do aplicativo Snort. A segurana de servidores com a
utilizao do software em questo, ao contrrio de rede ou solues de segurana de
servidores ou sistema com as caractersticas de uma aplicao prpria de segurana ou dos
elementos circundantes(sistema operacional de rede, firewalls, etc). A abordagem global da
segurana usaria caractersticas de todos os componentes que integram o ambiente de
aplicaes em servidores(servidor web, banco de dados, sistema operacional), mas o estudo
aqui limitado a questes diretamente relacionadas com a aplicao. Isto no significa que
todas as defesas de vulnerabilidade deve ser responsabilidade do prprio aplicativo.

Iniciamos brevemente com algumas das questes relevantes ao entendimento da pesquisa, tais
como: o que informao, o que era da informao, o que e por que devemos ter a
segurana da informao, sobre a vulnerabilidade, disponibilidade da informao, etc.

17

Em seguida entraremos no assunto focal de nosso estudo realizando um busca detalhada do
software, suas caractersticas, conceitos, funcionamento e configuraes necessrias ao seu
funcionamento, bem como a criao de regras(filtros) de deteco de trfegos,



1.3. Justificativa do estudo


A segurana da informao um campo muito complexo de pesquisa com uma grande
quantidade de reas desconhecidas e inexploradas. No entanto, um importante campo para
explorar. Meu interesse nesta rea se deve a necessidade de se considerar o problema
diariamente, o qual por ocasio de invases j ocorridas dentro da empresa afetaram minhas
atividades diretamente. O problema das ameaas a integridade e disponibilidade das
informaes foi um desafio para mim por muitos anos. Pelo tempo que eu me familiarizei
com outros problemas de segurana da informao, tais como arrombamentos, ataques de
negao de servio, etc. Desde o primeiro momento proteo dos sistemas de informao foi
o desafio mais importante, o que me motivou a pesquisar sobre este tipo de atividade. Durante
a vivncia de invases em sistemas sob minha responsabilidade senti enorme e imediata
necessidade em descobrir ferramentas que pudessem reverter o problema, nesta situao
procurei por documentos relativos a existncia e ao uso dessas ferramentas. Para minha
frustrao os documentos que encontrei, apesar de existirem e serem bastante significativos,
no resolveram de imediato meu problema, eles eram incompletos ou complexos demais para
minhas necessidades e entendimentos. Bem, diante disto percebi que se passei por esta
experincia era porque havia uma lacuna a ser preenchida, e um trabalho a respeito
enriqueceria meus conhecimentos sobre o assunto alm de somar com mais uma pesquisa na
rea, o que poderia contribuir para a soluo de problemas na rea de das demais pessoas que
possam estar passando pela mesma dificuldade.




1

1.4. Objetivos


O objetivo primordial desta pesquisa realizar um estudo da eficcia de softwares Open
Source gratuitos a fim de reduzir vulnerabilidades de segurana em servidores de rede,
preservando assim, as informaes nas organizaes. Parte deste trabalho consistiu em
descobrir e formular questes e estratgias de pesquisa especficas.

Lidar com as vulnerabilidades mais comuns de qualquer organizao no uma tarefa fcil,
pois as variveis envolvidas so muitas, algumas impensveis at este momento, o que
determinou os limites e os rumos desta pesquisa.

Comecei com um estudo sobre os conceitos bsicos de informao, vulnerabilidade,
disponibilidade e integridade, etc. Conceitos que achei relevante a um entendimento bsico
dos meus objetivos, para depois aprofundar-se no objetivo final deste trabalho:

- Estudo de aplicaes IDS do tipo Open Source, mais especificamente o software Snort, em
servidores Windows e Linux utilizados em conjunto com Apache, MySQL e ACID, todos
gratuitos, com a finalidade de garantir a segurana das informaes em uma organizao,
descobrindo sua eficcia, confiabilidade e segurana nesta tarefa.

- Em uma segunda parte deste trabalho ser demonstrado, em uma pesquisa de laboratrio,
sua instalao, configurao e aplicao bsica em servidores Windows e Linux;



1.5. Mtodo de pesquisa


Para chegar aos objetivos, acima propostos, usando uma forma de pesquisa vlida, dentro
de uma metodologia de pesquisa clara e adequada fundamental. De acordo com o trabalho:
Metodologia da Pesquisa e estatstica elementar da autora: Fabiana Luci De Oliveira,

1!

A metodologia de pesquisa implica conhecimentos e habilidades necessrios ao pesquisador
para a orientao do processo de planejamento e construo do problema, investigao,
seleo de conceitos, hipteses, tcnicas de coleta e observao de dados adequados.
Diante disto podemos tambm entender que uma metodologia de pesquisa deve ser uma
forma sistemtica e bem estruturada em que uma pesquisa ou problema resolvido. Isso
inclui os mtodos subjacentes de pesquisa escolhido, perguntas feitas, os dados coletados e as
tcnicas utilizadas para a anlise de dados.
A metodologia adotada por esta pesquisa foi uma combinao de mtodos e processos, que
estavam dentro das limitaes fsicas e racionais do autor, cada um dos quais foi considerado
mais adequado para o determinado momento da pesquisa ou tarefa.

Esta pesquisa se inicia com uma busca generalizada sobre problemas e conceitos de segurana
de informaes, formas de ataques e tipos de invases em trabalhos pblicos de
Universidades, buscando formas, conceitos e solues encontradas, para tomar como base.
Aps esta etapa, passei a procurar por conceitos mais abrangentes e especficos em livros e
manuais sobre o assunto, alguns livros, foram, inclusive, adquiridos para maior entendimento
do assunto, os resultados podem ser vistos no captulo 3.
Em seguida, no captulo 4, passei a pesquisar por caractersticas de funcionamento,
configuraes e formas de utilizao do software no prprio site do fabricante para depois
passar para prxima etapa deste trabalho.
Ento, passei a testar o produto em laboratrio, instalando e configurando em servidores reais
e estudando seu comportamento. No descrevi aqui as formas de instalao do produto e das
diversas ferramentas usadas em conjunto para os testes por achar que foge um pouco do foco
da pesquisa, mesmo porque h muitos documentos sobre o assunto publicado na internet.
Mas, mesmo assim, como tive de executar tais instalaes e configuraes, as mesmas esto
descritas, passo a passo, nos apndices A e B no final deste trabalho.
O resultado dos testes obtido esta descrito no capitulo 5 desta pesquisa, o qual o leitor poder
avaliar.
No captulo 6 novos testes foram executados, e da mesma forma descritos para avaliao.
Desta vez os testes so comparativos, comparamos os resultados obtidos na captura de
pacotes potencialmente maliciosos, no Windows e no Linux, tambm em configuraes do
tipo NIDS(Linux) e HIDS(Windows).

20

Captulo 2


REVISO BIBLIOGRFICA


Primeiro de tudo, eu gostaria de introduzir brevemente algumas das questes que acho
relevante ao entendimento de minha pesquisa, tais como: o que informao, o que era da
informao, o que e por que devemos ter a segurana da informao, sobre a
vulnerabilidade, disponibilidade da informao, etc.


2.1 O que Informao?


Desde os primrdios da civilizao, a informao tem sido um componente
indispensvel em todas as atividades humanas, principalmente no processo produtivo
8
.
Definir o significado do que realmente informao no uma tarefa fcil. Intuitivamente,
a informao pode ser definida como uma sequncia de smbolos, que tm algum significado
para a pessoa que o recebe. As pessoas se comunicam atravs da troca de informaes entre
eles.
A importncia da informao pode ser avaliada quantitativamente, em funo do contexto. s
vezes, a informao pode ser avaliada atravs de quantia monetria que pode significar tais
smbolos, e esse aspecto faz troca de valores contidos na informao, os quais podem ser
muito altos ou de grande importncia na sociedade humana de hoje.



21

2.2 Era da Informao


A sociedade humana est passando por uma transformao fundamental: a passagem
da sociedade industrial para a sociedade da informao. Tecnologias da era da informao
permeiam cada vez mais todas as atividades industriais e sociais e esto acelerando a
globalizao das economias.
Competitividade industrial do mundo, os seus postos de trabalho, a sua qualidade de vida e a
sustentabilidade do crescimento dependem dele, estar na vanguarda do desenvolvimento
implantar tecnologias da era da informao. Ao mesmo tempo, as tecnologias que sustentam o
desenvolvimento da sociedade da informao esto em rpida evoluo. Avanos no
tratamento da informao e comunicao esto abrindo novas possibilidades. H uma
mudana de sistemas autnomos de informaes e processos em rede
8
.


2.3 Era da Informao e Internet


J se encontravam as suas premissas no que Toffler(1980) chamou de a nova
civilizao, resultante do terceiro grande fluxo de mudana na histria da humanidade a
terceira onda que impe um novo cdigo de comportamento: Essa nova civilizao traz
consigo novos estilos de famlia; modos de trabalhar, amar e viver diferentes; uma nova
economia; novos conflitos polticos; e alm de tudo isso igualmente uma conscincia
alterada
8
.

As comunicaes e meios de comunicao tm um enorme impacto em nossas vidas, as
tecnologias de informao e de comunicao esto se tornando cada vez mais importante.

22

Internet como um ponto focal do agrupamento das de redes est se tornando o meio mais
popular para a transferncia de informaes.
As informaes e seus controles sobre elas no esto de forma alguma restritos a um pequeno
grupo de especialistas. Na era da informao todo mundo precisa e utiliza informaes, sejam
leigos ou especialistas. por isso que Internet no apenas uma ferramenta da era moderna,
tambm o sintoma desta era. Troca de informao rpida em quase todos os segmentos da
nossa vida diria ajudou a internet a passar de um meio de especialistas em informtica para o
hbito mais popular de nossos tempos.


2.4 Segurana da Informao


Segurana sempre foi uma parte importante da nossa vida cotidiana. Ao longo da
histria as pessoas tm tentado proteger sua propriedade e privacidade. Com o avano da
tecnologia e o crescimento da indstria, segurana da informao tornou-se um aspecto ainda
mais importante.
A segurana da informao, definida como uma rea de conhecimento dedicada proteo
de ativos de informao contra acessos no autorizados, alteraes indevidas ou sua
indisponibilidade
8
.
De uma forma mais simples, a segurana dada por contas de usurio e nveis de privilgios a
ser atribudas aos mesmos. Com relao s configuraes de sistemas globais, portanto, os
administradores devem ser capazes de gerenciar as contas de usurio que foram, por exemplo,
registradas pelos prprios usurios, como mencionado acima: gerenciar contas de usurio.
Baseando-se nestas contas, os usurios devem autenticar-se antes de serem autorizados a
trabalhar com o sistema, ou seja, de alguma forma provarem sua autenticidade. Se um usurio
for ser identificado com sucesso, o conjunto correspondente de privilgios sero liberados
para o mesmo. Para a implementao prtica, senhas so um meio comum de verificar a
identidade de um usurio antes que acessos sejam concedidos a um sistema de informao ou

2"

servio de acordo com a autorizao do usurio. A ABNT NBR ISO/IEC 17799:2005 sugere
que outras tecnologias para identificao de usurio e autenticao, como biomtrica, por
exemplo, verificao de digitais, verificao de assinatura, e uso de tokens, por exemplo, e
cartes inteligentes, esto disponveis, e convm que sejam consideradas, se apropriado, alm
disso o gerenciamento seguro de chaves secretas e privadas. Convm que a autenticidade de
chaves pblicas seja tambm considerada
9
.


2.5 Por que a segurana da informao?


Wilson Oliveira descreve em seu livro Segurana da informao que nenhuma rea
da informtica to vasta e apreciada como a segurana da informao: o ponto principal da
segurana leva a um outro ponto principal, o ser humano, isso mesmo, todo o processo de
segurana se inicia e tem o seu trmino num ser humano
2
. No adianta nada gastarmos
fortunas em equipamentos e sistemas de segurana se no conhecermos quem utilizar os
nossos sistemas, e quem pode ter acesso a eles mesmo sem autorizao.
Mesmo na poca em que no havia computadores e nenhuma informao de Internet, o
controle sobre a informao foi um fator significativo para a prosperidade do negcio. Agora,
mais do que nunca, uma vez que todo tipo de transao esta cada vez mais dependente da
tecnologia da informao, sua proteo torna-se ainda mais prioritria. O mesmo verdadeiro
para fazer negcios na Internet. Cada negcio deve ser seguro e confivel para ser bem
sucedido. necessrio encontrar maneiras de prevenir violaes de segurana de informao
e permitir que elas se realizem de forma segura e confivel.
O sistema de segurana da informao deve sempre integrar vrios mtodos de proteo, que
vo desde medidas de segurana e administraes fsicas para implementao das ferramentas
de proteo sofisticadas.


24

2.6 Restries de Segurana


Segurana absoluta s possvel mediante o controle absoluto em tudo. Neste caso,
todas as atividades teriam que ser registradas e controladas em tempo real para no permitir o
uso fraudulento ou, pelo menos, detectar e bloquear o trfego indesejado o mais rpido
possvel.
No entanto, apesar da necessidade extrema na segurana, temos de respeitar um valor mdio
dessas medidas para que elas no se tornem uma dificuldade em vez de uma viabilidade. Isso
significa que, tais medidas podem ter impactos negativos, chegando mesmo a se tornar pior
que o prprio trfego malicioso. Um controle extremo pode tambm impactar na privacidade
de forma inaceitvel o que pode interferir, tambm, no fluxo livre de criao das necessidades
profissionais, uma autonomia de demandas. Assim, a segurana no deve ser implementada
utilizando todos os mecanismos possveis, caso contrrio, ela poderia causar mais prejuzos
que o prprio trfego no autorizado.
Assim, uma anlise de ameaas deve ser aplicada a fim de investigar a situao ameaada
para fornecer decises sobre o nvel de segurana necessrio. Precisamos perceber que a
rejeio ao uso do sistema pode ser ainda pior do que falta de uma segurana perfeita.


2.7 Vulnerabilidade


O significado de vulnerabilidade, em geral, importante que seja entendida, em geral
os dicionrios de bolso descrevem como:
Adjetivo vulnervel: exposto a ser atacado ou ferido.

25

Assim, a vulnerabilidade substantivo a propriedade de algum ou alguma coisa
possivelmente ser prejudicada. Esta propriedade refere-se a uma entidade que pode ser
prejudicada por algum tipo de dano ou perigo. Observe tambm que a vulnerabilidade se
refere a um evento potencial que ainda no ocorreu e talvez no possa ocorrer ou mesmo
nunca ocorra. Isso implica em duas dimenses adicionais: um fator de tempo e uma
probabilidade. Em poucas palavras, uma vulnerabilidade declara que algo est exposto a um
dano que pode ocorrer no futuro. Uma boa discusso sobre vulnerabilidade pode ser
encontrada no documento: ESTUDO DE VULNERABILIDADE REGIONAL S
MUDANAS CLIMTICAS do Governo do estado de Minas
1
.


2.7.1 Vulnerabilidades em Sistemas de Computao


Vulnerabilidade em sistemas de Computao descrever o dano potencial ameaador a
um sistema de TI. A causa deste dano pode ser atribudo a qualquer uma das quatro
categorias: camada de utilizao, camada de administrao, camada fsica e a camada de
software
6
.
A camada de software inclui vulnerabilidades que originam do comportamento indesejado de
aplicaes. Um exemplo disso a vulnerabilidade das vrias verses do sistema operacional
Windows, que permite que atacantes remotos possam executar comandos arbitrrios em
qualquer sistema vulnervel.
A camada fsica inclui vulnerabilidades que resultam do acesso fsico ao hardware no qual os
aplicativos so executados. Um exemplo o chamado "ataque de arranque a frio. Ter acesso
fsico memria de acesso aleatrio (RAM) de um computador permite que um atacante
possa recuperar uma senha mantida na RAM durante uma execuo aplicaes, mesmo depois
que a mquina tenha sido desligada.

26

A camada de administrao inclui vulnerabilidades causadas por procedimentos e polticas,
que pode resultar em um prejuzo para o sistema. Muitas vezes, as vulnerabilidades so o
resultado de polticas ruins. Um exemplo disto so os baixos requisitos de conta do
usurio(senhas), sem comprimento mnimo e sem a necessidade de caracteres especiais. Isto
leva aos usurios a usar palavras simples e combinaes como: 'meuacesso' ou '1234', onde
ser a primeira combinao a ser verificado por um invasor
7
.
A ltima, e, provavelmente, a mais prejudicial classe de vulnerabilidades so causadas pelos
usurios. No importa o quanto um software seja infalvel, o hardware esteja protegido, por
mais rgidas possam ser as polticas de segurana, se um usurio escreve a senha da conta em
um endereo de favorito, ou em algum arquivo texto ou ainda o envie em um formulrio
qualquer, o sistema continua altamente vulnervel.
Computador e segurana da informao, muitas vezes concentram-se nos objetivos de
confidencialidade, integridade e disponibilidade (CID) de segurana
7
.

a)Confidencialidade

A meta de segurana que gera a necessidade de proteo contra tentativas intencionais
ou acidentais de dados no autorizada para realizar leituras. Abrange dados de
armazenamento, durante o processamento, e quando em trnsito. Um exemplo de violao de
confidencialidade a interceptao de informaes bancrias online sobre uma suposta
conexo segura.

b)Integridade

A meta de segurana que gera a necessidade de proteo contra as tentativas ou
intencionais ou acidentais de violar a integridade dos dados (propriedade que garante que os
dados no foram alterados sem autorizao) ou a integridade do sistema (qualidade que um

27

sistema tem quando se realiza sua destina funo de forma intacta, livre de manipulao no
autorizada). Um exemplo de falha de integridade a modificao das entradas do sistema de
nome de domnio (DNS), que leva os clientes a se comunicam com o servidor errado.
c)Disponibilidade

A meta de segurana que gera a necessidade de proteo contra tentativas intencional
ou acidental de realizar acessos e causar uma negao de servio ou de dados. Um exemplo de
falha na disponibilidade o ataque de negao de servio (DDoS) que derruba servidores
Web.


2.8 Anatomia de um ataque


Como esta pesquisa pretende estudar a forma de proteo, usando software Open
Source importante compreender as formas de ataque a uma rede. Os passos bsicos de um
ataque ciberntico incluem reconhecimento (encontrar vulnerabilidades); intruso (penetrao
efetiva da rede); insero de malware(softwares secretamente implantados); e clean-up
(limpar seus rastros)
3
.
Os Malwares que se costumam utilizar nestes ataques vem em vrias formas, algumas mais
nefastas do que os outras, que vo desde propagandas irritantes at assaltos potencialmente
devastadores.
Na fase final do ciclo de ataque, o sistema infectado de provas forenses da invaso, , ento
polido a fim de apagar seus rastros, de forma que o atacante seja to discreto quanto possvel.
Por exemplo, um atacante pode usar as credenciais de um usurio de confiana da rede para
no acionar alarmes ao acessar o sistema, ou usar aplicativos comuns, para inserir arquivos
maliciosos ou extrair informaes. A meta principal desta etapa apagar qualquer vestgio do

2

ataque ao sistema. Isto pode ser feito pela eliminao manual ou automatizada da linha de
comando, desativao de alarmes, bem como a atualizao ou aplicao de remendos de
software desatualizado aps o ataque. Alm disso, muitas vezes desencadeado vrus e
worms(vermes digitais) para destruir provas potencialmente incriminatrias. Na Figura 1
podemos ver um organograma da anatomia de um ataque
3
.

2!


Figura 1. Anatomia de um ataque
3


"0

Captulo 3


FERRAMENTAS IDS


Antes de entrarmos em detalhes da deteco de intruso com Snort, acho necessrio
entendermos algumas definies relacionadas com a segurana. Uma compreenso bsica
destes termos necessria para digerir outros conceitos de segurana que iremos tratar.


3.1 O que um IDS


Segundo Rafeeq Ur Rehman(Intrusion Detection Systems with Snort) a deteco de
intruso um conjunto de tcnicas e mtodos que so usados para detectar atividades
suspeitas tanto na rede como a nvel de host. Pode ser um software, hardware ou a
combinao de ambos, usados para detectar a atividade do intruso. Snort uma ferramenta
IDS do tipo Open Source disponvel para o pblico em geral. Um IDS pode ter diferentes
capacidades, dependendo da complexidade e sofisticao de sua rede. IDS so ferramentas
que usam uma combinao de hardware e software. Vamos ver que, um IDS pode utilizar
assinaturas, tcnicas baseadas na anomalia ou ambos
5
.




"1


3.2 Rede IDS ou NIDS


NIDS so sistemas de deteco de intruso instalados em uma rede onde os pacotes de
dados, que viajam na mdia de rede, so capturados e armazenados em um banco de dados
para uma anlise do trfego em busca de sinais de atividades maliciosas
5
. Ao detectar a
presena de um pacote potencialmente malicioso, um alerta gerado ao administrador, o
pacote pode, tambm, ser registrado em arquivo ou banco de dados para uma posterior
investigao forense.


3.3 Host IDS ou HIDS


Sistemas de deteco de intruso baseados em host ou HIDS so instalados como
agentes em um host
10
. Este tipo de sistema monitora a atividade de trafego de um host
individualmente. Enquanto um NIDS monitora o trfego da rede um HDIS monitora somente
a prpria mquina, e podem ser usados em conjunto com, um complementando o outro.
Alguns desses sistemas so reativos, o que significa que voc configura para informar
possveis ataques somente quando algo aconteceu, outros so pr-ativos, pois capturam o
trfego de rede que vem para uma srie especial em que o HIDS est instalado e gera alerta
em tempo real.




"2

3.4 HIDS x NIDS


Ser que precisamos de um NIDS ou um HIDS? A resposta um HIDS quando
pretendemos proteger somente uma mquina e um NDIS para proteger uma rede completa. A
administrao de uma soluo HIDS necessita de muito menos conhecimento especializado
enquanto NIDS necessita de mais ateno e conhecimento especializado na configurao e
implantao para no se tornarem um ponto dificuldade a rede, ou seja, ao invs de ajudar vai
atrapalhar. HIDS vo registrar somente as atividades de uma mquina na rede o que fica fcil
de criar filtros especficos para este trfego conhecido, j em um NIDS vai registrar todo o
trfego das todas as mquinas da rede, a quantidade e a variedade de trfego pode ser enorme,
sem contar a grande variao de atividade desconhecida de cada usurio, onde pode ser uma
atividade normal ou maliciosa.
Devemos tambm levar em considerao a faixa de rede e custo. Se o preo uma questo a
se considerar, e sempre o , algumas solues NIDS so consideravelmente mais caro quando
comparado com uma soluo HIDS. Apesar deste estudo estar mostrando o uso de um IDS
Open Source, gratuito, temos de considerar o hardware necessrio a implementao de um
NIDS. Um NIDS necessita de hardware dedicado, e forma um sistema que pode verificar os
pacotes que viajam em um ou mais segmentos desta rede, com a finalidade de descobrir se
alguma atividade mal intencionada ou anormal ocorreu.
Temos de considerar ainda que um HIDS vai ser instalado em um nica mquina e monitorar
um tipo de sistema operacional, j um NIDS pode estar monitorando uma ampla gama de
sistemas, tais como Windows, Solaris , Linux, HP-UX, AIX, etc, dentro desta rede, o que com
certeza, vai dificultar ainda mais este trabalho.





""

3.5 Assinaturas


Assinatura o padro o qual voc esta a procura ou monitorando dentro do pacote de
dados trafegando pela rede (impresso digital do pacote). A assinatura utilizada para a
deteco de um ou vrios tipos de ataques. Por exemplo, a presena de content:nome-carto-
crdito em um pacote, dentro do Payload(carga de uma transmisso de dados), indo para o
seu servidor web pode indicar uma atividade de intruso.
Assinaturas podem estar presentes em diferentes partes de um pacote de dados, dependendo
da natureza do ataque. Normalmente os IDS dependem de assinaturas para identificar a
atividade do intruso. Alguns IDS especficos precisam de atualizaes do fornecedor para
adicionar novas assinaturas quando um novo tipo de ataque descoberto. Em outros, como o
Snort, voc pode criar suas prprias assinaturas.


3.6 Alertas


Os alertas so qualquer tipo de notificao ao usurio de uma atividade de intruso.
Quando um IDS detecta um intruso, ele tem que informar administrador de rede sobre o
potencial ataque. Alertas podem ser na forma de janelas pop-up, mensagens a um console, o
envio de e-mail e assim por diante. Os alertas tambm podem ser armazenados em arquivos
de registro ou bancos de dados para serem analisados, mais tarde, por especialistas em
segurana.



"4

3.7 Logs


Quando um potencial ataque identificado uma mensagem gerada, estas mensagens,
bem todo atividade no aplicativo podem ser registradas em um arquivo texto ou binrio.
Normalmente estes aplicativos possuem um diretrio padro, mas estes diretrios podem ser
alterados conforme necessidades do usurio. Estes registros ficam disponveis, em caso de
necessidade, para uma verificao posterior, de ataques, falhas, alteraes, etc.


3.8 Alarmes falsos


Os alarmes falsos so alertas gerados erroneamente indicando a captura de um pacote
potencialmente malicioso, quando na realidade no . Por exemplo, hosts internos mal
configurados podem, por vezes, transmitir mensagens que acionam uma regra resultando na
gerao de um falso alerta. Para evitar falsos alarmes, voc tem que modificar e ajustar
diferentes regras padro. Em alguns casos pode ser necessrio desabilitar algumas das regras
para evitar alarmes falsos.







"5

3.9 Sensor


A mquina na qual um sistema de deteco de intruso esta executando tambm
chamado o sensor IDS uma vez que este o elemento da rede que fica na escuta do trfego
(sente o trfego) da rede. Podemos definir que o sensor IDS a mquina que esta rodando o
aplicativo.


3.10 Falhas nos IDS


Apesar dos IDS serem uma ferramenta muito eficaz para deteco de intruso nas
redes, algumas falhas podem ocorrer no monitoramento de sua rede quando o utilizamos na
prtica.
Uma dessas falhas o falso positivo, ou seja, uma emisso de alerta de intruso no
verdadeira. A outra so os falsos negativos, que so ataques verdadeiros na rede, que no
detectados pelo IDS.
Ambos ocorrem devido inconsistncia na gerao de regras no IDS, no caso de falsos
positivos podemos estar fixando uma determinada impresso digital desta rede como
maliciosa, mas que na realidade no o . Fazendo um levantamento da caracterstica de
comportamento deste trfego onde podem conter impresses digitais potencialmente
maliciosas, podemos descobrir que na realidade a intruso no aconteceu. Tais situaes,
tambm, podem ser aproveitadas de forma maliciosa, ou seja, um atacante pode injetar uma
enorme quantidade de trfego com a inteno de acionar muitos falsos positivos, gerando
confuso na anlise deste trfego por parte do administrador. Com isto, o intruso pode, ento,

"6

executar um ataque positivo, mas que no ser detectado em funo da confuso
anteriormente gerada.
J os falsos negativos podem ter uma consequncia imediata, pois se no foram reconhecidos
pelo mecanismo de defesa, possivelmente o atacante teve xito em sua intruso na rede.




















"7

Captulo 4


SISTEMAS DE DETECO DE INTRUSO COM SNORT


Nossa pesquisa comeou com uma introduo a conceitos de rede, internet e segurana
relacionada terminologia de deteco de intruso, bem como de segurana de rede. Mais
abaixo, na segunda parte desta pesquisa, vamos descrever as formas de funcionamento e
instalaes do Snort
12
em ambiente Windows e Linux, bem como seu gerenciamento, e sua
utilizao com banco de dados MySQL
14
, Apache
15
, PHP
16
e ACID
17
(Controle de Anlise
para Intruso de Banco de Dados). Na figura 2 podemos ter uma ideia da estrutura desta
configurao.


Figura 2. Rede rodando Snort e MySQL

"

O Snort tem a capacidade de registrar os dados coletados(como alertas e outras mensagens de
log) em um banco de dados, como j mencionado acima. MySQL usado como o motor do
banco de dados onde todos os dados so armazenados.
Usando o servidor web Apache e ACID, voc poder analisar esses dados. A combinao de
Snort, Apache, MySQL, Php e ACID torna possvel registrar os dados da deteco de intruso
em um banco de dados e, em seguida, visualizar e analisar mais tarde, atravs de uma
interface web. Na figura 3 podemos ver uma rede bsica rodando os softwares que
mencionamos.

Figura 3. Rede bsica IDS

4.1 Deteco de Intruso e Snort


Segurana um grande problema para todas as redes nas atuais organizaes. Pessoas mal
intencionadas fizeram muitas tentativas bem sucedidas de derrubar redes de grandes
organizaes de alto perfil e servios web. Muitos mtodos foram desenvolvidos para garantir

"!

o funcionamento da infraestrutura de rede e comunicao atravs da Internet, entre eles o uso
de firewalls, criptografia e redes privadas virtuais (VPN). A deteco de intruso uma
adio relativamente nova para tais tcnicas. Mtodos de deteco de intruso comearam a
aparecer nos ltimos anos. Usando mtodos de deteco de intruso, voc pode coletar e usar
informaes de tipos conhecidos de ataques e descobrir se algum est tentando atacar a rede
ou mquinas da rede em particular. As informaes coletadas desta forma podem ser usadas
para fortalecer a segurana da rede, bem como para fins legais em investigaes de crimes
cibernticos. Atualmente temos softwares de cdigo aberto e comerciais, ambos disponveis
para esta finalidade. Muitas ferramentas de avaliao de vulnerabilidades tambm esto
disponveis no mercado que podem ser usados para avaliar os diferentes tipos de falhas de
segurana presentes na sua rede. Um sistema de segurana abrangente composto por vrias
ferramentas, incluindo:

Firewalls que so usados para bloquear entrada indesejada, bem como a sada de dados sem
autorizao. H uma gama de produtos de firewall disponveis no mercado, tanto em Open
Source e como em softwares comerciais. Os softwares firewall comerciais mais populares so
de Checkpoint(http://www.checkpoint.com), Cisco(http://www.cisco.com) e Netscreen
(http://www.netscreen.com)
10
. O mais popular firewall Open Source o firewall baseado em
Netfilter/Iptables e pode ser adquirido em: http://www.netfilter.org.

Dos sistemas de deteco de intruso (IDS) que esto sendo usados para descobrir se algum
invadiu ou est tentando invadir sua rede o Snort mais popular, e est disponvel no
endereo: http://www.snort.org.
Ferramentas de avaliao de vulnerabilidade so usadas para localizar e fechar buracos de
segurana presentes na sua rede. As informaes coletadas a partir de ferramentas de
avaliao de vulnerabilidade so usadas para definir regras sobre firewalls para que essas
falhas de segurana sejam alteradas de forma a fortalecer a segurana contra usurios
maliciosos da Internet. Existem muitas ferramentas de avaliao de vulnerabilidade, incluindo
Nmap(http://www.nmap.org)
18
e Nessus(http://www.nessus.org)
10
.

40


Todas estas ferramentas podem trabalhar em conjunto e trocar informaes entre si. Alguns
produtos fornecem sistemas completos que consistem em todos esses produtos agrupados.
Snort software Open Source de sistema de deteco de intruso de rede(NIDS), que est
disponvel sem custo. Como j mencionado acima, NIDS o tipo de sistema de deteco de
intruso (IDS), que usado para monitorar o trfego de dados em toda rede de uma
organizao. Existem tambm os sistemas de deteco de intruso baseados em host, que
esto instalados em uma mquina especfica, para monitorar somente o trfego daquela
mquina. Apesar de todas as investidas os mtodos de deteco de intruso ainda so novos, o
Snort est classificado entre os sistemas de alta qualidade disponveis hoje
11
.


Figura 4. Logotipo Snort
12



4.2 Regras de filtragem no Snort


O Snort usa arquivos texto para criar as regras de filtragem a fim de detectar os trfegos
potencialmente maliciosos dentro da rede monitorada. Para quem j trabalhou com listas de
acessos em roteadores ou servidores Linux no vai ter dificuldades com elas. Basicamente
essas regras seguem a estrutura:

41

<Mtodo> <Origem> -> <Destino>
<Mtodo> <protocolo> <IP> <Porta> -> <IP> <Porta><Aes>
Apesar do Snort fornecer arquivos de regras para download, j pr-formatados nada impede
de criarmos nossas prprias regras, ajustadas as nossas necessidades, onde muitas
possibilidades de ataques rede que ainda no implementadas mas que podero ser no futuro,
ento temos de ser capazes de ajustar nossas regras a essas novas formas de ataque.
Abaixo analisamos algumas regras mais comuns, para maiores detalhes consulte o manual do
snort
13
:

Alerte trfego com: <protocolo icmp> <de: qualquer ip> <de: qualquer porta> ->
<para: ip 192.168.1.4> <para: qualquer porta> (<emitir mensagem:
HEARTBEAT>):
alert icmp any any -> 192.168.1.4 any (msg: "HEARTBEAT";)

Alerte trfego com: <protocolo icmp> <de: qualquer ip> <de: qualquer porta> ->
<para: qualquer ip> <para: qualquer porta> (<emitir mensagem: Ping with
TTL=100>):
alert icmp any any -> any any (msg: "Ping with TTL=100";)

Alerte trfego com: <protocolo udp> <de: qualquer ip> <de: qualquer porta> -> <para:
qualquer ip> <para: qualquer faixa de portas entre 100 e 1000>
alert udp any any -> any 100:1000
Alerte trfego com: <protocolo icmp> <de: qualquer ip> <de: qualquer porta> ->
<para: 192.168.1.4/32> <para: qualquer porta>\ (<emitir mensagem: "Ping with
TTL=100";>< onde pct com TTL=100;>):

42

alert icmp any any -> 192.168.1.113/32 any \(msg: "Ping with TTL=100"; ttl:100;)

Alerte <protocolo icmp> <de: onde ip diferente: 192.168.2.0/24> <de: qualquer porta>
-> <para: qualquer ip> <para: qualquer porta> (<emitir mensagem: Ping with
TTL=100 ; <onde TTL=100;>):
alert icmp ![192.168.2.0/24] any -> any any \(msg: "Ping with TTL=100"; ttl: 100;)

Alerte <protocolo icmp> <de: qualquer ip> <de: qualquer porta> -> <para: ip
192.168.1.4> <para: qualquer porta> (<emitir mensagem: HEARTBEAT>):
alert icmp ![192.168.2.0/24,192.168.8.0/24] any -> any any (msg: "Ping with
TTL=100"; ttl: 100;)

Alerte trfego com <protocolo tcp> <de: qualquer ip> <de: qualquer porta> -> <para:
ip 192.168.1.4> <para: porta 139> (<emitir mensagem: Carto
VISA;><contendo(payload):VISA;>):
alert tcp any any any 139 (msg:Carto VISA; content:VISA;)


4.3 Declarao de variveis


O Snort permite, tambm, que declaremos variveis que sero interpretadas pelo software
no momento do carregamento dos arquivos de configurao e filtragem, abaixo segue alguns
exemplos, para maiores detalhes convm consultar o manual do snort
13
:


4"

Var, ipvar, portvar
o var RULES_PATH rules/
o portvar MY_PORTS [22,80,1024:1050]
o ipvar MY_NET [192.168.1.0/24,10.1.1.0/24]
o alert tcp any any -> $MY_NET $MY_PORTS (flags:S; msg:"SYN packet";)
o include $RULE_PATH/example.rule
o ipvar FAIXA 10:100
o alert tcp any any -> any $FAIXA (msg:"Trfego na faixa de porta";)


4.4 Opes de execuo


O Snort possui muitas variaes de monitorao que podem ser indicadas no momento da
ativao ou via configurao no arquivo /Snort/snort.conf, na tabela 1 esta descrito algumas
opes, usadas nos testes desta pesquisa, retiradas do manual do fabricante
13
:
Tabela 1. Opes de configurao no monitoramento do Snort
Opo Descrio
-iX Monitorar trfego da Interface(-i) nmero(X)
-l Indica que monitoramento vai ser gravado em um log para o diretrio
informado
-v v - apresenta no console o estado do snort

44

-b b - os pacotes que contm o trfego com contedo classificado so guardados
no formato tcpdump(ferramenta utilizada para monitorar trfego).
-c c - indica que vai ser usado arquivo de regras.
-A console -A console: Envia alertas "estilo rpido" para o console (tela).
-K Chaves <tipo>
-d Apresenta os dados da camada aplicao presentes em cada pacote capturado.
-T Chaves Razes para diretrio especificado
-W Lista placas de rede disponveis

Abaixo segue alguns exemplos de execuo:
c:\Snort\bin>snort W
c:\Snort\bin>snort v i2
c:\Snort\bin>snort -i2 -s -l c:\snort\log\ -c c:\snort\etc\snort.conf
c:\Snort\bin>snort -i2 -s -l c:\snort\log\ -c c:\snort\etc\snort.conf T
c:\Snort\bin>snort -A console -i2 -c c:\snort\etc\snort.conf -l c:\snort\log -K ascii


4.5 Componentes do Snort


Snort logicamente dividido em vrios componentes. Estes componentes trabalham
juntos para detectar ataques de maliciosos e para gerar a sada em um formato adequado a

45

partir do trfego detectado pelo sistema. Um IDS baseado em Haxixe consiste dos seguintes
componentes principais:
Decodificador de pacotes
Pr-processadores
Motor de Deteco
Registro e Sistema de Alerta
Mdulos de sada
Figura 4 mostra como esses componentes so organizados. Qualquer pacote de dados que
vem a partir da Internet entra no descodificador de pacotes. Em seu caminho para os mdulos
de sada, ele pode ser descartado, registrado em um arquivo de log ou ter um alerta gerado.



Figura 5. Funcionamento esquemtico do Snort





46

Captulo 5

TESTANDO O SNORT


Como j mencionamos acima, o Snort possui muitas varveis de configurao, plataformas e
formas de execuo, neste captulo ser demonstrado uma forma bsica de utilizao nas duas
plataformas mais conhecidas, Windows e Linux. O teste demonstrado um teste bsico, e no
descreve a forma de instalao das diversas ferramentas usadas e, em alguns casos,
necessrias. A instalao destas ferramentas, bem como do prprio Snort foi descrita no
Apndice A e B.


5.1 Testando o Snort com o Windows


Nosso teste em questo foi feito em laboratrio de informtica com a configurao
fsica da figura 6 abaixo.
Inicialmente executamos o comando C:\Snort\bin>snort W para verificarmos a numerao
das portas instaladas na mquina Windows, como estamos usando um notebook para nossos
testes temos mais de uma forma de conexo com a rede, sem fio e cabeada.


47


Figura 6. Layout da rede de testes do Snort no Windows

Tabela 2. Consultando a numerao de portas de rede no Windows
C:\Snort\bin>snort -W

,,_ -*> Snort! <*-
o" )~ Version 2.9.6.0-WIN32 GRE (Build 47)
'''' By Martin Roesch & The Snort Team:
http://www.snort.org/snort/snort-team
Copyright (C) 2014 Cisco and/or its affiliates. All rights
reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using PCRE version: 8.10 2010-06-25
Using ZLIB version: 1.2.3

Index Physical Address IP Address Device Name Description
----- ---------------- ---------- ----------- -----------
1 00:00:00:00:00:00 0000:0000:fe80:0000:0000:0000:b42b:91d5
\Device\NPF_{94A86EBE-51C5-4655-8D49-B9E9B3EFC32E} Microsoft
2 00:1C:25:40:1C:D6 0000:0000:fe80:0000:0000:0000:6dc9:6779
\Device\NPF_{819C9DF1-025E-457B-82A1-FFE7763182A9} Intel(R) 82566MM
Gigabit Network Connection
3 00:00:00:00:00:00 0000:0000:fe80:0000:0000:0000:cd09:b5c2
\Device\NPF_{FF11040E-B410-4B5E-BD6F-ABC63D75D681} Microsoft

Editamos o arquivo \snort\rules\blacklist.rules e inclumos a regra, indicada abaixo, para
pegarmos qualquer pacote ICMP direncionado para o IP de nossa mquina de teste:

4

alert ICMP any any -> 192.168.1.4 any

Para o teste em questo vamos executar o Snort com o comando
c:\Snort\bin>snort v i1 <crtl+C>: finalize

Com uma mquina virtual simulamos um ataque enviando pacotes ICMP para nossa mquina
monitorada:
C:\ping t 192.168.1.4
Na finalizao obtemos o relatrio resumido na tabela 3 abaixo:
Tabela 3. Relatrio de monitorao resumido no Snort
...
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/19-11:06:05.578645 192.168.1.6 -> 192.168.1.4
ICMP TTL:128 TOS:0x0 ID:294 IpLen:20 DgmLen:60
Type:8 Code:0 ID:512 Seq:45568 ECHO
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/19-11:06:05.578848 192.168.1.4 -> 192.168.1.6
ICMP TTL:64 TOS:0x0 ID:3783 IpLen:20 DgmLen:60
Type:0 Code:0 ID:512 Seq:45568 ECHO REPLY
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

*** Caught Int-Signal
==========================================================================
Run time for packet processing was 210.587000 seconds
Snort processed 494 packets.
Snort ran for 0 days 0 hours 3 minutes 30 seconds
Pkts/min: 164
Pkts/sec: 2
==========================================================================
Packet I/O Totals:
Received: 494
Analyzed: 494 (100.000%)

==========================================================================
Breakdown by protocol (includes rebuilt packets):
Eth: 494 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 461 ( 93.320%)
Frag: 0 ( 0.000%)
ICMP: 332 ( 67.206%) <Nmero de pacotes icmp capturados>
UDP: 56 ( 11.336%)

4!

TCP: 73 ( 14.777%)

ARP: 33 ( 6.680%)
...
Total: 494
Novamente de uma mquina virtual simulamos um ataque agora utilizando o Nmap
18
para
fazer uma varredura em nossa mquina. O Nmap um software de varredura de rede, muito
utilizado para testes de segurana, gratuito, de fcil instalao e pode ser adquirido no site:
http://nmap.org/download.html, bem como sua documentao e manuais de utilizao. A
execuo da varredura de portas em nossa mquina pode ser visto na figura 7.

Figura 7. Execuo de varredura de portas com Nmap no Windows

Tabela 4. Relatrio de captura de pacotes de rede pelo Snort com o Windows
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/19-11:15:35.703141 192.168.1.4 -> 192.168.1.6
ICMP TTL:64 TOS:0x0 ID:5506 IpLen:20 DgmLen:70
Type:3 Code:3 DESTINATION UNREACHABLE: PORT UNREACHABLE
** ORIGINAL DATAGRAM DUMP:
192.168.1.6:1125 -> 192.168.1.4:55520
UDP TTL:128 TOS:0x0 ID:675 IpLen:20 DgmLen:42
Len: 14 Csum: 22370
(14 more bytes of original packet)
** END OF DUMP
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/19-11:15:35.709878 192.168.1.6:1126 -> 192.168.1.4:30643
UDP TTL:128 TOS:0x0 ID:676 IpLen:20 DgmLen:42
Len: 14

50

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/19-11:15:45.091050 192.168.1.4:57364 -> 192.168.1.1:53
UDP TTL:64 TOS:0x0 ID:5507 IpLen:20 DgmLen:63
Len: 35
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/19-11:15:45.134338 192.168.1.1:53 -> 192.168.1.4:57364
UDP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:106 DF
Len: 78
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

*** Caught Int-Signal
==========================================================================
Run time for packet processing was 152.668000 seconds
Snort processed 3085 packets.
Snort ran for 0 days 0 hours 2 minutes 32 seconds
Pkts/min: 1542
Pkts/sec: 20
==========================================================================
Packet I/O Totals:
Received: 3084
Analyzed: 3085 (100.032%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 0 ( 0.000%)
Injected: 0
==========================================================================
Breakdown by protocol (includes rebuilt packets):
Eth: 3085 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 3048 ( 98.801%)
Frag: 0 ( 0.000%)
ICMP: 27 ( 0.875%)
UDP: 59 ( 1.912%)
TCP: 2962 ( 96.013%)
IP6: 7 ( 0.227%)
IP6 Ext: 7 ( 0.227%)

UDP6: 7 ( 0.227%)

ARP: 30 ( 0.972%)

Total: 3085
==========================================================================
Snort exiting






51

5.2 Snort com Linux


Como j foi mencionado acima, a implementao do Snort com Linux pode ser muito
mais eficaz e definitivamente mais barato, pois ambos os sistemas so gratuitos e de cdigo
aberto, o que nos possibilita ajustes as nossas necessidades. conhecido que a utilizao de
servidores Linux, alm de mais baratos, so muito mais viveis na rede, devido seu baixo
custo, maior estabilidade, e ferramentas adequadas a servidores.
No apndice B desta pesquisa esta descrito a instalao, e configurao detalha do Snort em
um servidor Linux o qual foi executado nos testes de laboratrio. A fim de obter o mximo
proveito do Snort, foi testado sua implementao em conjunto com MySql, Php, Apache e
ACID, ferramentas OpenSource e, obviamente, gratuitas.
O layout de nossa rede fsica de testes esta demonstrado na figura 8.


Figura 8. Layout fsico da rede de teste Snort com Linux

52

5.3 Testando o Snort no Linux


Com as rotinas acima executadas, em nossa pesquisa, j podemos testar o Snort no
modo console com emisso de logs. Para tanto executamos um teste simples, somente para
visualizar as formas de visualizao emitidas pelo Snort na captura de pacotes icmp. De um
terminal executamos ping continuo com o comando:
$ ping www.google.com.br

Em outro terminal aberto executamos o Snort com o comando abaixo, deixamos rodar por um
tempo e interrompemos com ctrl+C.
$ sudo snort v ieth0

O Relatrio emitido no console pelo Snort foi, de forma resumida, o visualizado na tabela 5
abaixo:
Tabela 5. Relatrio de captura via console do Snort no Linux
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/22-17:57:39.678320 192.168.1.4:46394 -> 200.255.122.6:53
UDP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:73 DF
Len: 45
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

04/22-17:57:39.682943 200.255.122.6:53 -> 192.168.1.4:46394
UDP TTL:121 TOS:0x0 ID:31631 IpLen:20 DgmLen:112
Len: 84
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

^C*** Caught Int-Signal
04/22-17:57:40.510084 192.168.1.4 -> 173.194.37.159
ICMP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:84 DF
Type:8 Code:0 ID:2422 Seq:250 ECHO
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

==========================================================================
Run time for packet processing was 19.462665 seconds
Snort processed 176 packets.

5"

Snort ran for 0 days 0 hours 0 minutes 19 seconds
Pkts/sec: 9
=========================================================================
Packet I/O Totals:
Received: 176
Analyzed: 176 (100.000%)
Injected: 0
=========================================================================
Breakdown by protocol (includes rebuilt packets):
Eth: 176 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 115 ( 65.341%)
Frag: 0 ( 0.000%)
ICMP: 40 ( 22.727%)
...
UDP: 73 ( 41.477%)
TCP: 0 ( 0.000%)
IP6: 31 ( 17.614%)
IP6 Ext: 31 ( 17.614%)
ICMP6: 2 ( 1.136%)
UDP6: 29 ( 16.477%)
...
ARP: 18 ( 10.227%)
...
Eth Loop: 2 ( 1.136%)
Other: 12 ( 6.818%)
Bad Chk Sum: 26 ( 14.773%)
Total: 176
=========================================================================
Snort exiting

Depois usamos o comando abaixo relacionado, para novamente executar o Snort e ver a
diferena ao rodar o mesmo. Com estes pequenos testes, pudemos visualizar que a captura dos
pacotes icmp's so os mesmos, somente a forma de apresentao ao administrador da rede
que mudou, que ser visto na Tabela 6.

Tabela 6. Relatrio de captura de pacotes icmp pelo Snort
$ sudo snort -q -A console -i eth0 -c /etc/snort/snort.conf -l
/var/log/snort/
^C*** Caught Int-Signal
root@Voyager:~# snort -q -A console -i eth0 -c /etc/snort/snort.conf -l
/var/log/snort/

04/22-18:15:22.960885 [Priority: 0] {ICMP} 192.168.1.4 -> 173.194.37.159
04/22-18:15:23.111180 [Priority: 0] {ICMP} 173.194.37.159 -> 192.168.1.4
04/22-18:15:23.116865 [Priority: 0] {ICMP} 192.168.1.4 -> 10.142.176.108
04/22-18:15:23.961478 [Priority: 0] {ICMP} 192.168.1.4 -> 173.194.37.159
04/22-18:15:24.116671 [Priority: 0] {ICMP} 173.194.37.159 -> 192.168.1.4
04/22-18:15:24.961467 [Priority: 0] {ICMP} 192.168.1.4 -> 173.194.37.159
04/22-18:15:25.111700 [Priority: 0] {ICMP} 173.194.37.159 -> 192.168.1.4

54

04/22-18:15:25.962137 [Priority: 0] {ICMP} 192.168.1.4 -> 173.194.37.159
04/22-18:15:26.111732 [Priority: 0] {ICMP} 173.194.37.159 -> 192.168.1.4
^C*** Caught Int-Signal






















55

Captulo 6

DESEMPENHO DO SNORT


Ao longo do tempo muitas ferramentas de segurana foram criadas para plataformas
Linux/Unix, por razes histricas e muitas vezes por custo de implementao j conhecidas
do leitor. Esta pesquisa no pretende mudar hbitos, conceitos e tradies, mas somente
mostrar as vrias possibilidades que nossa ferramenta de Deteco de Intruso fornece e,
tambm, mostrar ao leitor que tal implementao pode ser um opo para fortalecer a
segurana dentro de uma organizao com o uso testado aqui, ou seja, o Snort rodando como
HIDS em uma mquina Windows, em conjunto com um servidor Linux rodando NIDS dentro
da mesma rede. Felizmente, para as intenes desta pesquisa, algumas funcionalidades do
Snort foram portadas para o Windows, possibilitando assim uma proposta de fortalecimento
na segurana.


6.1 Testando e comparando o Snort


Para finalizar foi criado um ambiente de testes em uma rede local com 3 mquinas onde as
mesmas rodavam Snort com diferentes plataformas, configuraes e recursos instalados. O
objetivo era comparar o desempenho e medir a eficcia do Snort em situaes mais ou menos
reais e tambm demonstrar a possibilidade de us-lo em conjunto com redes NIDS e HIDS.
Nossa vtima(PcV) um notebook Acer Intel i3, 2.8 Ghz, memria RAM de 6Gb,
rodando Windows Home Basic com Snort rodando como HIDS.

56

Nosso sensor(PcS) de rede um notebook Lenovo T61, com Intel core 2 Duo 2.0 Ghz,
com memria RAM de 3Gb, e sistema operacional Linux Ubuntu 12.0.4, rodando
Snort na configurao NIDS. Tambm temos os recursos Apache, MySQL, Php e
ACID rodando nesta mquina;
A Atacante(PcA) um notebook Asus Intel i5, com 2.8Ghz, memria RAM de 4Gb,
rodando Windows 8 e, tambm, rodando Nmap 4.6.5;

A configurao fsica de nossa rede de testes pode ser vista na figura 9 abaixo:

Figura 9. Topologia da rede de testes NIDS x HIDS


6.1.1 Envio de pacotes icmp a vtima

Inicialmente a mquina atacante(PcA) envia pacotes ICMP de reconhecimento a nossa
mquina vtima(PcV), o relatrio de captura obtida em ambas as mquinas(PcV, PcS) que
monitoravam os pacotes, foi exibido na tabela 7 abaixo:

57

Tabela7. Relatrio comparativo de captura de pacotes ICMP (NIDS x HIDS)
PcV Mq.Windows(HIDS) PcS Servidor Linux(NIDS)

Run time for packet processing was 235.341
sec
Snort processed 979 pck.
Snort ran for 0 days 0 hours 3 minutes 55 sec
Pkts/min: 326
Pkts/sec: 4
===================================
Packet I/O Totals:
Received: 988
Analyzed: 979 ( 99.089%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 9 ( 0.911%)
Injected: 0
===================================
Breakdown by protocol (includes rebuilt pck):
Eth: 979 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 946 ( 96.629%)
Frag: 0 ( 0.000%)
ICMP: 482 ( 49.234%)
UDP: 109 ( 11.134%)
TCP: 355 ( 36.261%)
IP6: 3 ( 0.306%)
IP6 Ext: 3 ( 0.306%)
IP6 Opts: 0 ( 0.000%)
Frag6: 0 ( 0.000%)
ICMP6: 0 ( 0.000%)
UDP6: 3 ( 0.306%)
TCP6: 0 ( 0.000%)
Teredo: 0 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 0 ( 0.000%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)

Run time for packet processing was 233.224
sec
Snort processed 593 pck.
Snort ran for 0 days 0 hours 3 minutes 53 sec
Pkts/min: 197
Pkts/sec: 2
===================================
Packet I/O Totals:
Received: 594
Analyzed: 593 ( 99.832%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 1 ( 0.168%)
Injected: 0
===================================
Breakdown by protocol (includes rebuilt pck):
Eth: 593 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 570 ( 96.121%)
Frag: 0 ( 0.000%)
ICMP: 462 ( 77.909%)
UDP: 70 ( 11.804%)
TCP: 38 ( 6.408%)
IP6: 3 ( 0.506%)
IP6 Ext: 3 ( 0.506%)
IP6 Opts: 0 ( 0.000%)
Frag6: 0 ( 0.000%)
ICMP6: 0 ( 0.000%)
UDP6: 3 ( 0.506%)
TCP6: 0 ( 0.000%)
Teredo: 0 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 0 ( 0.000%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)

5

GRE PPTP: 0 ( 0.000%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 30 ( 3.064%)
IPX: 0 ( 0.000%)
Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 0 ( 0.000%)
ICMP Disc: 0 ( 0.000%)
All Discard: 0 ( 0.000%)
Other: 0 ( 0.000%)
Bad Chk Sum: 503 ( 51.379%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 0 ( 0.000%)
S5 G 2: 0 ( 0.000%)
Total: 979
===================================
Snort exiting
GRE PPTP: 0 ( 0.000%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 20 ( 3.373%)
IPX: 0 ( 0.000%)
Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 0 ( 0.000%)
ICMP Disc: 0 ( 0.000%)
All Discard: 0 ( 0.000%)
Other: 0 ( 0.000%)
Bad Chk Sum: 10 ( 1.686%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 0 ( 0.000%)
S5 G 2: 0 ( 0.000%)
Total: 593
===================================
Snort exiting



6.1.2 Varredura de portas da vtima via Nmap


Depois do ataque inicial, nosso Hacker, o PcA, executa uma varredura de portas em
nossa vtima(PcV) novamente os resultados obtidos esta exibido, de forma resumida, na
tabelas 8.
Tabela 8. Comparativo do relatrio de captura de pacotes Nmap (NIDS x HIDS)
PcV Mq.Windows(HIDS) PcS Servidor Linux(NIDS)
=============================================
Run time for packet processing was 118.694000
=============================================
Run time for packet processing was 123.156623

5!

seconds
Snort processed 3011 packets.
Snort ran for 0 days 0 hours 1 minutes 58 sec
Pkts/min: 3011
Pkts/sec: 25

Packet I/O Totals:
Received: 3012
Analyzed: 3011 ( 99.967%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 1 ( 0.033%)
Injected: 0
=============================================
Breakdown by protocol (includes rebuilt pck):
Eth: 3011 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 2997 ( 99.535%)
Frag: 0 ( 0.000%)
ICMP: 6 ( 0.199%)
UDP: 66 ( 2.192%)
TCP: 2925 ( 97.144%)
IP6: 0 ( 0.000%)
IP6 Ext: 0 ( 0.000%)
IP6 Opts: 0 ( 0.000%)
Frag6: 0 ( 0.000%)
ICMP6: 0 ( 0.000%)
UDP6: 0 ( 0.000%)
TCP6: 0 ( 0.000%)
Teredo: 0 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 0 ( 0.000%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)
GRE PPTP: 0 ( 0.000%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 14 ( 0.465%)
IPX: 0 ( 0.000%)
seconds
Snort processed 2865 packets.
Snort ran for 0 days 0 hours 2 minutes 3 sec
Pkts/min: 1432
Pkts/sec: 23

Packet I/O Totals:
Received: 2865
Analyzed: 2865 (100.000%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 0 ( 0.000%)
Injected: 0
=============================================
Breakdown by protocol (includes rebuilt pck):
Eth: 2865 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 2856 ( 99.686%)
Frag: 0 ( 0.000%)
ICMP: 6 ( 0.209%)
UDP: 51 ( 1.780%)
TCP: 2799 ( 97.696%)
IP6: 0 ( 0.000%)
IP6 Ext: 0 ( 0.000%)
IP6 Opts: 0 ( 0.000%)
Frag6: 0 ( 0.000%)
ICMP6: 0 ( 0.000%)
UDP6: 0 ( 0.000%)
TCP6: 0 ( 0.000%)
Teredo: 0 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 0 ( 0.000%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)
GRE PPTP: 0 ( 0.000%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 9 ( 0.314%)
IPX: 0 ( 0.000%)

60

Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 0 ( 0.000%)
ICMP Disc: 0 ( 0.000%)
All Discard: 0 ( 0.000%)
Other: 0 ( 0.000%)
Bad Chk Sum: 1491 ( 49.518%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 0 ( 0.000%)
S5 G 2: 0 ( 0.000%)
Total: 3011
====================================
Snort exiting
Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 0 ( 0.000%)
ICMP Disc: 0 ( 0.000%)
All Discard: 0 ( 0.000%)
Other: 0 ( 0.000%)
Bad Chk Sum: 5 ( 0.175%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 0 ( 0.000%)
S5 G 2: 0 ( 0.000%)
Total: 2865
===================================
Snort exiting

Na figura 10 podemos ver o mesmo relatrio de captura comparando os dois resultados,
exatamente no mesmo momento e no mesmo ataque, nas verses: NIDS(Servidor Linux) e
HIDS(Mquina Windows).

Figura 10. Grfico do relatrio de captura NIDS x HIDS

61

6.1.2.1 Resultados obtidos exibidos no ACID


Na figura 11 foi exibido os mesmos resultados obtidos acima, pela captura do Snort,
mas agora na pgina do ACID. Como j mencionado acima, o ACID uma ferramenta de
anlise, que pode ser usado em conjunto com o Snort o qual fornece relatrio de captura, mas
agora num formato web mais facilitado ao administrador de rede. O ACID esta funcionando
em conjunto com o Apache, MySQL e PHP, os dados, da captura, esto agora armazenados
em tabelas MySQL e so exibidos em pgina web para apreciao e anlise.


Figura 11. Exibio do relatrio de captura da varredura Nmap na pgina do ACID





62

Captulo 7

CONCLUSO


Com a demonstrao das formas de ataque que uma rede de informao pode sofrer, exibido
no captulo 2, s se pode concluir que, evitar ataques a um sistema de informao uma tarefa
difcil, mas possvel minimizar os riscos tomando algumas aes dentro deste sistema. Uma
delas, que, alis, foi o foco de nossa pesquisa, o uso de boas ferramentas de deteco de
intruso(IDS).
Tambm foi possvel observar, durante o desenvolvimento desta pesquisa, que o uso isolado,
ainda que seja a melhor ferramenta IDS, que em minha opinio encontra-se o Snort, no o
bastante para garantir a segurana de qualquer sistema, pois as variveis envolvidas so
muitas, indo desde falhas de softwares, sistemas mal projetados, comportamento inadequado
de usurios at o despreparo do administrador da rede em questo.
No tenho dvida quanto a eficcia do Snort, tenho mais confiana ainda quando utilizado em
conjunto com demais sistemas como Linux, Apache, MySQL e ACID. Sua relevncia torna-
se ainda mais importante pelo fato de ser gratuito, Open Source e possuir sistemas, de mesma
categoria, que podem ser utilizados em conjunto.
O fato de ser gratuito, o que dispensa qualquer comentrio, abre possibilidade de uso do
mesmo, por qualquer nvel ou porte de uma rede, pois est acessvel desde as maiores
organizaes at um usurio isolado e desconhecido. Isto contribui para diminuir a confiana
de um atacante inescrupuloso, pois a cada ataque bem sucedido iria aumentar sua motivao
para continuar, alimentando o ciclo do potencial de risco de ataque as redes. A isto podemos
comparar com uma espcie de imunizao de grupo, onde a diminuio dos casos contribui
potencialmente para eliminao completa da ocorrncia dos mesmos, pela diminuio do
agente de infeco.

6"

Quanto a ferramenta ser Open Source s vem a somar em seus pontos positivos, pois o fato
de um software possuir seus cdigos abertos possui dois pontos a favor de um administrador
de rede:
A primeira o fato que um cdigo aberto possibilita uma avaliao, por um
especialista, da existncia ou no de rotinas potencialmente maliciosas nos mesmos,
ou ainda, rotinas falhas que possam comprometer a segurana na sua utilizao;
A segunda a possibilidade de fazermos ajustes ou correes nas linhas de cdigos, o
que pode ser uma alterao para ajustarmos as nossas necessidades ou alguma
correo, que julgarmos potencialmente insegura para nossa aplicao.
Outro resultado importante deste trabalho foi a identificao da eficcia do Snort,
principalmente quando utilizado em conjunto com Linux, Apache, MySQL, Php e ACID,
obtido na comparao de resultados feitos em laboratrios que pode ser visto no apndice A e
B. Nestes testes simulamos um ataque a uma rede Windows somente com Snort, e em uma
rede Linux com Snort, Apache, MySQL, Php e ACID instalados. O resultado dos testes
demonstraram uma completa eficcia na deteco dos ataques simulados, com Snort rodando
em Windows tanto quanto o Snort rodando em Linux, mas que neste caso tivemos um ganho
com relao a facilidade atribuda ao administrador por ocasio das ferramentas de
apoio(Apache, MySQL, Php e ACID).









64

REFERNCIAS BIBLIOGRFICAS

1
2014 Fundao Estadual do Meio Ambiente FEAM, Estudo de vulnerabilidade regional s
mudanas climticas - Belo Horizonte, Governo de Minas, 2014.

2
Wilson Oliveira, Segurana da Informao Tcnicas e Solues, Centro Atlntico, 1 ed.
Portugal/2001

3
Joel Scambray; Stuart McClure; George Kurtz; Hackers Expostos, Makron Books, 4 ed.
2001.

4
Paulo Augusto Moda Lari; Dino Macedo Amaral; Snort, MySQL, Apache e ACID, Brasport,
1 ed. 2004.

5
Rafeeq Ur Rehman, Advanced IDS Techniques Using Snort, Apache, MySQL, PHP, and
ACID, Pearson Education, Inc, Publishing as Prentice Hall PTR, 2003.

6
Pedro Tavares Silva, Hugo Carvalho e Catarina Botelho Torres, Segurana dos Sistemas de
Informao - Gesto Estratgica da Segurana Empresarial, Centro Atlntico, Lda., 1 ed.
Portugal/2003.

7
Tribunal de Contas da Unio - TCU, Boas Prticas em Segurana da informao, 4 ed.
Braslia, 2012.

8
Presidncia da Repblica, Secretaria de Assuntos Estratgicos, Desafios estratgicos para
segurana e defesa ciberntica, Braslia, 1 ed. 2011.

9
ABNT NBR ISO/IEC 17799, Tecnologia da informao Tcnicas de segurana
Cdigo de prtica para a gesto da segurana da informao, ed. 2005.


65

10
Andrew R. Baker; Joel Esler; Snort Intrusion Detection and Prevention Toolkit, Syngress
Publishing, Inc. 1ed. 2007.

11
The Snort Project, SNORT R Users Manual 2.9.6, December, 2013

12
IDS, fonte: http://www.snort.org/. Acesso em mai/2014.
13
IDS, fonte: http://www.snort.org/docs. Acesso em mai/2014.

14
Banco de dados, fonte: http://www.mysql.org. Acesso em mai/2014.
15
Servidor Web, fonte: http://www.apache.org/. Acesso em mai/2014.
16
Interpretador de cdigos, fonte: http://www.php.net/. Acesso em mai/2014.
17
Ferramenta de anlise, fonte: http://www.cert.org/kb/acid. Acesso em mai/2014
18
Ferramenta de anlise de portas, fonte: http://nmap.org/download.html. Acesso em
mai/2014














66

APNDICE A


Instalando o Snort com Windows


Como j foi pr-relatado acima, para nosso teste utilizamos uma mquina com
processador Intel core i3 2.3Ghz, com 6Gbyte de RAM rodando Windows 7 Home Basic
64bits:
Para executar uma instalao bsica do Snort em um sistema Windows, neste exemplo, foi
necessrio fazer o download de alguns programas. Primeiro foi baixado o executvel do Snort
para Windows, que possvel adquirir gratuitamente no site: www.snort.org. Depois, para o
Snort funcionar corretamente, foi necessrio colocar o carto de interface de rede (NIC) em
modo promscuo onde se pode ver todo o trfego de rede para destinado a esta mquina. Para
fazer isso no Windows, foi executado o download da biblioteca: Windows Captura de
pacotes do WinPCap(http://www.winpcap.org) e, aps, instal-lo. Mais abaixo, no apndice
desta pesquisa, est descrito um passo a passo de todos os processos, arquivos e configuraes
necessrias para o uso do Snort com o Windows.
Entre no endereo: http://www.snort.org/snort-downloads, baixe o arquivo:
Snort_2_9_6_0_Installer.exe, como um arquivo executvel, para instal-lo basta rod-lo.
O Snort usa o Winpcap para ter acesso a comunicao de baixo nvel e possibilitar a captura
do trfego que passa pela sua placa de rede, ento precisamos instal-lo para que possa ser
usado em conjunto com o Snort. Este software quem estende o sistema operacional para
fornecer acesso rede em baixo nvel, tambm fornece a biblioteca que usada para acessar
facilmente as camadas de rede, permitindo acesso a rede para se comunicar com as interface
de seu PC, faa download deste arquivo em: http://www.winpcap.org/install/default.htm e o
instale, simplesmente executando-o.

67

Configurando o Snort com Windows


Depois de instalado o Snort vai necessitar de algumas alteraes em sua configurao
para rodar corretamente no Windows. Voc vai perceber que todos os diretrios vem
configurados para rodar em Linux, o que no momento no o nosso caso.
Antes de ajustarmos nossa configurao, precisamos acertar alguns diretrios, ento v at o
diretrio: /Snort/lib/ e crie as pastas:
snort_dynamicengine;
snort_dynamicrules

O Snort vai precisar destas pastas para armazenar alguns arquivos, dinamicamente, durante a
monitorao.
Acertado as pastas vamos configurao, com um editor de texto abra o arquivo snort.conf
que se encontra no diretrio: .../Snort/etc e ajuste as linhas abaixo. Para quem iniciante no
assunto, interessante ressaltar que as linhas iniciadas por # so linhas de comentrio ou
bloqueadas, ou seja, o software ao ler o arquivo vai ignor-las durante a execuo. Note
tambm que deixamos a linha original do arquivo e inclumos nossas linhas atualizadas e
desbloqueadas, servindo nossas necessidades.
Tabela a1. Editando arquivo de configurao do Snort
#<endereo IP de sua mquina>
# Setup the network addresses you are protecting
#ipvar HOME_NET any
var HOME_NET 192.168.1.4/24

# <endereo de seu DNS>
# List of DNS servers on your network
#ipvar DNS_SERVERS $HOME_NET
var DNS_SERVERS 200.255.122.6

#<diretrios>
#such as: c:\snort\rules
#var RULE_PATH ../rules
var RULE_PATH C:\Snort\rules

6


#var SO_RULE_PATH ../so_rules
var SO_RULE_PATH C:\Snort\so_rules

#var PREPROC_RULE_PATH ../preproc_rules
var PREPROC_RULE_PATH C:\Snort\preproc_rules

# path to base preprocessor engine
#dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll

# path to dynamic rules libraries
#dynamicdetection directory /usr/local/lib/snort_dynamicrules
dynamicdetection directory C:\Snort\lib\snort_dynamicrules

#<Desabilitar os Normatize>
#preprocessor normalize_ip4
#preprocessor normalize_tcp: ips ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor normalize_icmp6

# <Ajuste o nome do: whitelist.rules e blacklist.rules>
# Reputation preprocessor. For more information see README.reputation
preprocessor reputation: \
memcap 500, \
priority whitelist, \
nested_ip inner, \
whitelist $WHITE_LIST_PATH/whitelist.rules, \
blacklist $BLACK_LIST_PATH/blacklist.rules

#<Ajuste a sada dos logs>
# syslog
# output alert_syslog: LOG_AUTH LOG_ALERT
output alert_syslog: host=127.0.0.1:514, LOG_AUTH LOG_ALERT


Tambm vamos necessitar dos arquivos das regras de filtragem, este arquivo pode ser baixado
em: http://www.snort.org/snort-rules/, so arquivos texto e seu download cobrado, vamos
descrever sua instalao para fins de documentao e para nossos testes vamos nos dispor dos
recursos do laboratrio de informtica de Universidade Local.
Depois de baixado o arquivo(snortrules-snapshot-29xx.tar.gz), descompacte-o e copie as
pastas geradas com seus respectivos contedos: /etc, /rules, /so_rules e /preproc_rules para
dentro da pasta no Snort (/Snort).

Tambm foi necessrio criar um arquivo texto chamado whitelist.rules e salvo dentro da pasta
/Snort/rules/, no momento no vamos utiliz-la, somente para satisfazer o chamado a ela que

6!

o snort faz em sua configurao, durante a execuo. Este arquivo serve para informar a lista
de regras testadas e que esto liberadas, normalmente servem para indicar que falsos
positivos, j analisados, tem seus trfegos liberados dentro da rede.


Tabela a2. Criao do arquivo Whitelist.rule do Snort
#----------------------
# MY WHITELIST RULES
#----------------------

















70

APNDICE B


O servidor Linux


Nosso servidor de teste esta rodando em uma mquina Lenovo T61 com processador
Intel core 2 Duo 2Ghz, RAM de 3Gbyte e Linux Ubuntu 12.0.4 LTS, kernel 3.2.0-29-generic.
O Ubuntu pode ser adquirido gratuitamente no endereo:
http://www.ubuntu.com/download/server;
Antes de iniciar a instalao dos pacotes vamos atualizar nossa verso recm instada do
Ubuntu 12, inicialmente verificamos a verso do kernel que esta rodando com:
root@Voyager:~# uname -a
Linux Voyager 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012
x86_64 x86_64 x86_64 GNU/Linux

Depois, atualizamos o Linux com o comando:
$ sudo apt-get update


A instalao do MySql, Apache e Php


Para facilitar nosso trabalho utilizamos o LAMP que um pacote para Linux que j
contm o trio: Mysql(banco de dados), Apache(servidor web) e PHP(bibliotecas de
interpretao de cdigos). A sigla L.A.M.P. se refere a Linux, Apache, Mysql e Php, em

71

Windows temos a verso WAMP, que tem a mesma funcionalidade, significado e igualmente
gratuito.

Para instalar os pacotes do Lamp digite o comando abaixo num terminal:
$ sudo apt-get install lamp-server^

Durante a instalao dos pacotes Lamp o sistema solicitou a configurao de uma senha para
o usurio root, usamos a senha admin:
New password for the MySQL "root" user: admin

Com a rotina acima acabamos de instalar os pacotes Mysql, Apache e PHP, para prosseguir
vamos testar o funcionamento do servidor Web Apache. Para isto criamos um arquivo php,
demosntrado abaixo, a fim de executar uma funo que vai nos dar todas as informaes
sobre o php, assim poderemos testar o Apache e o PHP.
$ cd /var
$ sudo chmod 777 www
$ gedit www/info.php
<?Php infophp(); ?>

Aps termos salvo o arquivo disparamos o teste digitando o endereo:
http://localhost/info.php em nosso navegador web e visualizamos a figura b1 abaixo com
informaes sobre nosso PHP.
Note que a rotina que executamos acima somente para testes, em uma situao normal este
arquivo deve ser excludo ou protegido por senha pois contm informaes importantes sobre
seu servidor, informaes que podero ser facilmente roubadas por pessoas mal-
intencionadas.


72


Figura b1. Teste de execuo do Apache, exibio da configurao do Php



Instalao do Phpmyadmin


O Phpmyadmin uma ferramenta de administrao do banco de dados Mysql, esta
ferramenta opcional mas resolvemos instal-la para facilitar o gerenciamento da instalao e
testes. Com ela poderemos visualizar o estado do banco de dados e as tabelas do Snort no
Mysql.
Para instal-la use o comando:
$ apt-get install phpmyadmin

O sistema vai solicitar um servidor Web para rodar em conjunto com Phpmyadmin, escolha a
opo: Apache.

7"

Tambm vai solicitar se voc deseja Configurar a base de dados para phpmyadmin com
dbconfig-common? Responda com: N;


Configurando privilgios


Aps a rotina acima vamos criar nosso banco de dados Snort e configurar os
privilgios de acesso a este banco para que o snort possa acess-lo durante a execuo do
mesmo. Para executar esta tarefa seguimos os passos a seguir:
$ sudo mysql -u root -p
$ password: <senha criada acima durante a instalao no nosso caso: admin>
$ mysql> create database snort;
$ mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
CREATE TEMPORARY TABLES, LOCK TABLES ON snort.* TO 'usr_snort'@'localhost'
IDENTIFIED BY 'sn_snort';
$ mysql> FLUSH PRIVILEGES;
$ mysql> quit;


Instalando o Snort


Depois de todas as retinas acima descritas, finalmente chegamos ao ponto focal de
nossos testes, a instalao do Snort. O processo simples e muito similar aos demais, para
isto digitamos o comando abaixo:
$ sudo apt-get -y install snort-mysql

74


Durante a instalao do mesmo algumas definies de parmetros nos foram solicitadas, para
tanto informamos os parmetros abaixo:
Gama de endereos para a rede local: 192.168.1.0/24 <nossa rede de testes>
Deseja configurar uma base de dados para o snort-mysql fazer registos? N <No,
pois vamos configur-la posteriormente>


Gerando as tabelas do Snort no Mysql


Nas rotinas acima descritas ns j criamos o banco de dados Snort no Mysql, mas
ainda no temos as tabelas dentro deste BD necessrias ao armazenamento de nossos eventos.
Podemos conferir isto entrando via console no Mysql:
$ mysql u root p
$ password: <admin>
$ mysql>use snort;
$ mysql>show tables;
$ exit;

Ou, visualizando-as no Phpmyadmin em um navegador qualquer no endereo:
http://localhost/phpmyadmin

Felizmente os idealizadores do Snort j pensaram nisso tambm, e as tabelas necessrias, com
seus formatos adequados, podem ser geradas automaticamente com o comando que usamos
abaixo:

75

$ sudo pushd /usr/share/doc/snort-mysql <entra no dir>
# zcat create_mysql.gz | mysql -u usr_snort -p snort
Enter password: <pw definida acima para o snort: sn_snort>
# The syntax is: mysql -u <username> -p <prompt for password> <database>
$ popd <volta a raiz>


Ajustando a configurao do Snort


Para que o Snort envie os eventos ao banco de dados Mysql precisamos informar isto a
ele. Para tanto necessrio alterar a configurao do Snort, informando o local para sada de
eventos, o nome do banco de dados, o nome de usurio e a senha para o acesso. Se voc
acompanhou o relato de nossos testes desde o incio, vai lembrar que criamos o BD e as
tabelas, configuramos um usurio e uma senha para o Snort, bem como, atribumos os
previlgios necessrios para que o mesmo manipule este banco de dados sem problemas.
O arquivo de configurao do Snort fica na pasta: /etc/snort/snort.conf. Ns podemos fazer
esta alterao de 2 maneiras: via editor de texto qualquer ou via comando, listado abaixo.
Antes de inciarmos a alterao do arquivo vamos liberar os privilgios da pasta e do arquivo
para no termos problemas, para isto digitamos os comandos abaixo:
$ sudo cd /etc
etc#chmod 777 snort
etc#cd snort
etc/snort#chmod 777 snort.conf

Ajustamos a configurao com o comando abaixo:
#sed -i "s/output\ log_tcpdump:\ tcpdump.log/#output\ log_tcpdump:\
tcpdump.log\noutput\ database:\ log,\ mysql, user=usr_snort
password=sn_snort dbname=snort host=localhost/" /etc/snort/snort.conf

76


Depois entramos no arquivo com um editor de texto para conferir se as linhas de configurao
foram alteradas com sucesso, conforme pode ser visto abaixo:
output database: log, mysql, dbname=snort user=usr_snort password=sn_snort
host=localhost

Feito isto o Snort esta pronto para funcionar, mas antes de o colocarmos a prova precisamos
remover um arquivo de sinalizao, criado durante os processos de manipulao com o banco
de dados Mysql, desta forma o Snort saber que nosso banco de dados esta pronto para rodar.
Para tanto digitamos o comando:
$ sudo rm -rf /etc/snort/db-pending-config

Ento inciamos a execuo do Snort:
$ sudo /etc/init.d/snort start

$ sudo /etc/init.d/snort status
* Status of snort daemon(s) [OK]


Regras de filtragem


Perceba que, diferente do Windows, no Linux no precisamos baixar separadamente
os arquivos de regras de filtragem, nem mesmo precisamos pagar por elas. Como o Snort
nativo do Linux, esses arquivos j vem instalados e configurados, mas podemos ajust-los as
nossas necessidades se assim o desejarmos. Para nossa pesquisa fizemos algumas alteraes,

77

somente para fins de teste pois as regras bsicas j vem configuradas e possuem atualizaes
peridicas, conforme surge novos conceitos de ataques.
Para ajustar os arquivos de regras de filtragem executamos o procedimento abaixo para liberar
os privilgios da pasta e do arquivo, depois abrimos o arquivo com um editor de texto:
$ sudo cd /etc/snort
etc/snort#chmod 777 rules
etc/snort#cd rules
etc/snort/rules#chmos 777 icmp.rules
etc/snort/rules#gedit icmp.rules

Inclumos a linha:
alert icmp any any -> 192.168.1.4 any


Instalando o ACID


Com o Mysql, Apache, Php e Snort instalados, configurados e testados, podemos
prosseguir com nossos testes.







7

O ACID


Rafeeq Ur Rehman em seu livro Intrusion Detection Systems with Snort define o
ACID como sendo um sistema de coleta e anlise de informaes do tipo Home Page(PHP)
muito bonito. Criado para trabalhar, coletar e analisar informaes de um banco de dados e
apresent-lo atravs de uma interface web. O usurio ir utilizar um navegador web para
interagir com ACID.

O ACID precisa de um servidor WEB(Apache), um banco de dados(MySQL) e o
interpretador PHP instalados, os quais j instalamos, configuramos e testamos acima, ento
estamos preparados para prosseguir com nosso trabalho.

Para instalarmos o ACID digitamos seguinte comando em nosso terminal:
$ sudo apt-get -y install acidbase

Nossa instalao solicitou somente 2 parmetros, os quais informamos com as respostas
listadas abaixo:
Tipo de base de dados a ser utilizada por acidbase: 1. mysql
Palavra-passe da aplicao MySQL para acidbase: sn_snort





7!

Configurando o ACID


O ACID necessita de algumas configuraes de ajustes a nossa rede em uso, para isto
executamos as rotinas abaixo a fim de ajustar os privilgios da pasta e do arquivo, para depois
editar os arquivos envolvidos. Pode-se fazer isto de duas formas: via comando ou via edio
com um editor de textos qualquer, resolvi fazer via comando e conferir com um editor de
texto:
$ cd /etc
$ sudo chmos 777 acidbase
$ cd acidbase
$ sudo chmod 777 apache.conf
$ cd
$ sudo sed -i "s#allow\ from\ 127.0.0.0/255.0.0.0#allow\ from\
127.0.0.0/255.0.0.0\ 192.168.1.4/255.255.255.0#" /etc/acidbase/apache.conf

$ cd /etc/acidbase
$ gedit apache.conf

Visualizamos o script abaixo:

<IfModule mod_alias.c>
Alias /acidbase "/usr/share/acidbase"
</IfModule>
<DirectoryMatch /usr/share/acidbase/>
Options +FollowSymLinks
AllowOverride None
order deny,allow
deny from all

0

allow from 127.0.0.0/255.0.0.0 192.168.1.4/255.255.255.0
192.168.1.4/255.255.255.0
<IfModule mod_php5.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_value include_path .:/usr/share/php
</IfModule>
</DirectoryMatch>

Reiniciamos o servidor web com o comando:
$ sudo /etc/init.d/apache2 restart



Ajuste dos parmetros de autenticao do ACID


Precisamos ajustar as informaes de conexo do ACID com nosso banco de dados
snort dentro do MySql, para isto editamos o arquivo base_conf.php, de forma parecida com a
descrita acima, ajustando usurio, senha, host e :

/etc/acidbase$ sudo chmod 777 base_conf.php
/etc/acidbase$ gedit base_conf.php

...
/* Archive DB connection parameters */
$archive_exists = 1; # Set this to 1 if you have an archive DB
$archive_dbname = 'snort';

1

$archive_host = 'localhost';
$archive_port = '';
$archive_user = 'root';
$archive_password = 'admin';
/etc/acidbase/database.php
$alert_user='usr_snort';
$alert_password='sn_snort';
$basepath='';
$alert_dbname='snort';
$alert_host='';
$alert_port='';
$Dbtype='mysql';

Houve uma certa dificuldade para se saber se estvamos usando o login e senha corretos,
ento criamos o uma rotina em php, que listamos abaixo, para testar nossa conexo com o
Mysql.

$ cd /etc/acidbase
$ sudo gedit testeacesso.php

<?php
/* Teste de autenticao no BD snort */
define('MYSQL_HOST','localhost');
define('MYSQL_USER','usr_snort');
define('MYSQL_PASS','sn_snort');
define('MYSQL_DB','snort');
if(!mysql_connect (MYSQL_HOST, MYSQL_USER, MYSQL_PASS)){ die
(mysql_error()); }
else{ echo"Autenticacao OK !";}
mysql_select_db(MYSQL_DB);
?>

2


Depois acessar nossa pgina de teste pelo endereo: http://localhost/testeacesso.php e
confirmar a autenticao de nosso login e senha, anteriormente configurados. Feito isto
estamos prontos para iniciar o ACID, para tanto acessei o mesmo pelo endereo:
http://localhost/acidbase/base_db_setup.php para criar algumas tabelas necessrias ao seu
funcionamento. Este procedimento foi muito fcil, bastou clicar no Boto mostrado na figura
b2 abaixo:

Figura b2. Pagina ACID, forma de criao de tabelas MySQL pelo ACID

Depois acessamos a pgina principal: http://localhost/acidbase/base_main.php
e temos a imagem da pgina na figura b3 Abaixo:

"


Figura b3. Aparncia da pgina do ACID aps a iinstalao


Testando com nmap

root@Voyager:~# apt-get install nmap
root@Voyager:~# nmap -p1-65535 -sV -sS -O snort.home.local

V no arquivo /etc/snort/snort.conf e bloqueie a linha: #include $RULE_PATH/community-
virus.rules
root@Voyager:~#snort -q -A console -i wlan0 -c /etc/snort/snort.conf -l
/var/log/snort/