Escolar Documentos
Profissional Documentos
Cultura Documentos
CATÓLICA DE
BRASÍLIA
PROGRAMA DE PÓS-GRADUAÇÃO
BRASÍLIA 2º/2005
Lato Sensu em Redes de Computadores
Brasília
DEZEMBRO/2005
TERMO DE APROVAÇÃO
JERÔNIMO JARDIM
(ORIENTADOR)
LAERTE PEOTA
(EXAMINADOR INTERNO)
Brasília
UCB
difíceis.
Agradecemos:
Primeiramente a Deus.
LISTA DE FIGURAS
RESUMO
definindo IPS e suas funcionalidades. Logo após, são descritas as ferramentas necessárias
são apresentados os dados da coleta a respeito de ataques e sua análise. Finalmente, são
ABSTRACT
This work aims at the implantation of IPS (Intruder Prevention System) using the
Snort Inline as tool. This work initially presents the theory involved in the project, explaining
what a IPS is for and how it works. Afterwards, all the tools needed to implement the IPS
environment are described, as well as the implementation itself. Thereafter, the collected
data about the attacks and their analysis are presented. Finally, final statements are made
ÍNDICE
Capítulo Página
RESUMO.......................................................................................................................... .....vi
1 INTRODUÇÃO..................................................................................................... ................1
2 SEGURANÇA.......................................................................................... ............................4
4.2.2 IPS........................................................................................................................ 38
5 SNORT.............................................................................................................................. .50
7 IMPLEMENTAÇÃO................................................................................ ............................66
8 RESULTADOS........................................................................................ ...........................83
CONCLUSÃO........................................................................................... ...........................87
1 INTRODUÇÃO
com outros sistemas, tornando a vida das pessoas cada dia mais fácil e, por conseqüência,
diagnósticos pela rede e até cirurgias online; Controle aéreo: interoperabilidade entre
universidades, bancos, corretoras, ONGs, e-commerce, entre outras. Assim, essas redes
mais recursos são disponibilizados aos clientes internos e externos, mais difícil se torna
umas das maiores preocupações das grandes organizações no mundo atual, proteger a
rede corporativa contra ataques é uma tarefa constante dos administradores de segurança
da informação de uma empresa, para que os negócios da Empresa não sejam afetados por
ações maléficas, que viriam a se tornar alvo de tentativas de ataques, que em geral, buscam
abertura e disponibilização de acesso a uma porta em uma rede segura pode ser um elo
bastante frágil, caso não seja realizada um controle criterioso. Tudo um processo de análise
de segurança deve ser realizado de forma a tornar segura todo o acesso e garantindo que
Durante toda a evolução, os primatas que criaram o hábito de acender uma fogueira
na entrada das suas cavernas durante a noite viviam mais, ao contrário dos outros que, vez
por outra, eram devorados por tigres dentes-de-sabre. Este costume se espalhou e, mesmo
que os mais novos não soubessem o motivo da fogueira, este "comportamento adquirido"
trabalho, ela está presente no cotidiano e é preciso se adaptar. Segurança deve ser uma
preocupação geral, caso contrário estar-se-ia sujeito a ficar nas mãos de pessoas que se
Para tornar uma rede de computadores mais segura são necessárias ferramentas
software de segurança que surgiu foram os IDS (Intrusion Detection System), entretanto não
é interessante somente em detectar ataques, mas preveni-los. Essa mudança de foco levou
computadores pessoais.
notifica os administradores sobre anomalias, um IPS defende o alvo sem uma participação
direta dos administradores. Tal proteção pode envolver o uso de técnicas baseadas em
ou alguma chamada de sistema que posa causar algum dano. O IPS combina as
1.1 Objetivo
Ao final espera-se que seja uma fonte de referência: objetiva e de fácil entendimento;
1.2 Escopo
a distribuição oficial Linux. O Debian usa o kernel Linux, mas a maior parte das ferramentas
Snort®. O Snort é um sistema de detecção e prevenção contra intrusos que utiliza linguagem
2 SEGURANÇA
nos últimos anos, de forma assustadora. De acordo com o CERT/CC (Computer Emergency
Response Team Coordination Center), esse número aumentou de 9859 para 137529
incidentes relatados, no período de 1999 a 2003, Ilustração 2.1. Os dados a partir de 2004
no período de 1999 a 2004, até setembro de 2005 foram 46205, Ilustração 2.2 .
utilizadas para procedê-los. Assim, obter acesso não autorizado aos sistemas, deixou de ser
uma prática somente de especialistas, para ser diversão de usuários que tenham interesse e
impacto dos ataques. Em virtude desse quadro assim como em uma guerra, conhecer o
impedir que um ataque aconteça. Não existe um mecanismo único que forneça uma solução
para esse problema. Desta forma, foi introduzido o conceito de segurança em profundidade,
onde se depara com a utilização de tecnologias avançadas, alta capacidade de tráfego, alta
para o mercado doméstico, do usuário da internet. Esta pesquisa contribui com a resolução
Uma política de segurança é a expressão formal das regras pelas quais é fornecido
práticas que regulam como uma organização gerencia, protege e distribui suas informações
política deve especificar os mecanismos através dos quais estes requisitos podem ser
adquirir, configurar e auditorar sistemas computacionais e redes, para que sejam adequados
segurança na ausência de pelo menos uma política de segurança implícita não faz sentido.
Uma política de uso apropriado pode também ser parte de uma política de
segurança. Ela deve expressar o que os usuários devem e não devem fazer em relação aos
diversos componentes do sistema, incluindo o tipo de tráfego permitido nas redes. Essa
política deve ser tão explícita quanto possível para evitar ambigüidades ou maus
entendimentos.
segurança, irão determinar a quão segura ou insegura é a rede, quantas funcionalidades ela
irá oferecer, e qual será a facilidade de utilizá-la. No entanto, não se consegue tomar boas
decisões sobre segurança, sem antes determinar quais são as metas de segurança. Até que
sejam determinadas, não se poderá fazer uso efetivo de qualquer coleção de ferramentas
de segurança, pois simplesmente não se sabe o que checar e quais restrições impor.
Cada serviço oferecido para os usuários carrega seus próprios riscos de segurança.
O sistema mais fácil de usar deveria permitir acesso a qualquer usuário e não exigir
senha, isto é, não haveria segurança. Solicitar senhas torna o sistema um pouco menos
conveniente, porém mais seguro. Requerer senhas "one-time" geradas por dispositivos,
torna o sistema ainda mais difícil de utilizar, mas bastante mais seguro.
busca de assistência legal na criação da mesma. No mínimo, a política deve ser revisada
A era da Internet é cada vez mais presente na vida das pessoas. Esta por sua vez,
tende a trazer grandes benefícios para o cotidiano dos seres humanos. Contudo, nem
sempre há o uso devido das tecnologias. Da mesma forma ocorre com a Internet: é possível
Entre os males causados pelo uso indevido da Internet, pode-se citar os crimes
O crime virtual está por todo o mundo, inclusive no Brasil, mais nem sempre é
publicado, e não se restringe somente ao vírus digital. Isso ocorre pelo fato de que os
computadores se tornaram populares e estão ao alcance de todos. Por sua vez, a ética nem
Atualmente, para os usuários da Internet não existe limite para o crime por
No Brasil existem inúmeros casos de crimes virtuais, onde, segundo fontes como
revistas, jornais e documentários, pode-se notar que este assunto não é tão recente quanto
que são:
• Computer crime;
• Abuso de computador;
• Crime de computação;
• Delito informático;
• Fraude informática;
• Delinqüência econômica;
• Computer kriminalistat;
(OECD): "Computer crime é qualquer conduta ilegal, não autorizada, que envolva
Um crime pode ser realizado com base nas diferentes áreas de um computador,
dados;
• Espionagem informática;
• Furto de tempo;
• Ofensas tradicionais;
• Manipulação no programa;
• Manipulação a distância;
os demais dentro de uma estrutura anarquista, sem liderança forte ou padrão rígido a seguir.
E tem como finalidade desbravar novos horizontes, mesmo que o objetivo principal seja a
2.3 Firewalls
mecanismo de segurança pode ser baseado em hardware, software ou uma mistura dos
dois.
O firewall é o ponto de conexão com a rede externa, tudo o que chega à rede interna
deve passar pelo firewall, ele é também o responsável por aplicar as regras de segurança,
autenticar usuários, registrar tráfego para auditoria e deve limitar a exposição dos hosts
internos aos hosts da Internet, para que elas não seja alcançáveis, por exemplo, o servidor
de banco de dados. Entretanto, algumas tarefas não podem ser executadas, como, proteger
a rede contra usuários internos mal intencionados, conexões que não passam por ele,
ameaças novas, no qual ele não foi parametrizado para executar uma ação.
protegidas por firewalls com listas permitindo o acesso. São três os fatores em risco: a
como, roubo de conexão depois dela ter sido autenticada, espionagem de dados secretos
enquanto em trânsito pela rede e um usuário não autenticado convence a rede que ele foi
autenticado.
O firewall não deve ser substituído por IPS, deve existir uma barreira de segurança
adicional na rede.
• Revelação de informação
• Interrupção de serviços.
2.4.1 Classificação
• Acidentais ou Intencionais
• Ativas ou Passivas
Ameaças acidentais são as que não estão associadas à intenção premeditada. Por
das ameaças intencionais variam desde a observação de dados com ferramentas simples
funcionamento do sistema.
Uma estação que processa todos os quadros que recebe em uma rede local (incluindo os
que não são a ela endereçados) é um exemplo de realização de uma ameaça passiva. Uma
sistema, ou modificações em seu estado ou operação. Uma estação de uma rede em anel
que não retransmite mensagens quando deveria fazê-lo (ela não é a responsável pela
de dados são:
• Personificação (masquerade): uma entidade faz-se passar por outra. Uma entidade
que possui poucos privilégios pode fingir ser outra, para obter privilégios extras
para produzir um efeito não autorizado. Por exemplo, uma mensagem válida,
• Recusa ou impedimento de serviço: ocorre quando uma entidade não executa sua
suas funções. Uma entidade pode utilizar essa forma de ataque para suprimir as
algoritmos de roteamento.
• Cavalos de Tróia: Nesse ataque, uma entidade executa funções não autorizadas. Um
2.4.3.1 Backdoors
Antigamente, todo sistema tinha uma "porta dos fundos" (ou backdoor), por onde o
O autor garantiria sua entrada criando uma passagem secreta, que somente ele
saberia o local.
Há algum tempo vários programadores deixavam sempre um local por onde eles
poderiam passar no futuro. Hoje isso é mais difícil, pois existem muito mais pessoas
obviamente não documentada que permite o acesso de quem implantou esta backdoor.
qualquer outro serviço encontrado pela Internet. Portanto, os programas devem ser bem
escolhidos.
programas, fazendo com que este se transforme em uma backdoor, sem que se perceba
2.4.3.2 Portscan
identificar quais portas estão em listening, ou seja, aptas para receber uma conexão. Deste
modo é possível identificar alguns dados sobre o sistema, assim como serviços (TCP/UDP)
• TCP Connect Scan: Este tipo de Portscan conecta na porta de destino e completa as
envia o SYN, recebe o SYN/ACK e retorna o ACK novamente. Este tipo de Portscan
etapas do handshake).
• TCP SYN Scan: O TCP Syn Scan por outro lado, emprega uma técnica chamada
half-open scanning, ou seja: A conexão TCP não é realizada por completo. O Pacote
provavelmente a porta esta disponível. Ao não enviar o terceiro pacote (ACK) evita-
se do Portscan ser logado pelo sistema (Ao menos nas ferramentas mais
rudimentares).
• TCP FIN Scan: Funciona somente em Unix Based, enviando um pacote FIN na porta
de destino, o mesmo responde com um sinal RST para todas as portas fechadas.
• TCP Xmas Tree Scan: Deste modo, o host fonte envia 3 pacotes (FIN, URG e PUSH)
para o host remoto, o mesmo retornando com um pacote RST para todas as portas
fechadas.
• TCP Null Scan: Esta técnica 'desliga' todas as flags, o host remoto. Também envia
• UDP Scan: Com o UDP scan, o host envia um pacote UDP pra determinada porta no
host de destino. Se o host responde com um sinal ICMP 'ICMP Port Unreachable', a
porta esta fechada, se não recebe esta resposta, pode-se deduzir que a porta esta
aberta.
vulnerabilidade de programas e sistemas para ganhar acesso root (de administrador). 90%
dos exploits são para sistemas Linux. Os exploits locais são scripts em C que irão rodar no
servidor a partir de uma shell adquirida , os exploits locais são os melhores de se usar , por
sua variedade e confiança de acesso (desde que se saiba o que está fazendo). Alguns
possuem pequenos trojans para dar acesso ao desenvolvedor. Existem vários tipos de
Os Exploits remotos como o próprio nome já diz, são parecidos com os exploits
locais, no entanto, não precisam de uma shell para “hackear” a máquina desejada, o que é
necessário é uma base para rodá-lo, geralmente um sistema UNIX/Linux, pois esses
2.5 Intrusão
De forma simples, pode-se dizer que um intruso é alguém que tenta invadir um
sistema ou fazer mau uso do mesmo. Uma intrusão pode ser definida como qualquer
política de segurança.
É comum pensar que uma instituição está sujeita, na maior parte do tempo, as
tem origem dentro da própria instituição (intrusos internos), que poderia melhor conhecer a
topologia da rede, que sabe onde os dados sensíveis estão armazenados e quais são os
ataques ocorrem e muitas vezes não são notados; ou, quando o são, já é tarde demais. Faz-
se necessário, então, um mecanismo que previna os dois tipos de ataque, uma tentativa
1
Hackers são pessoas com grande conhecimento de sistemas operacionais e linguagens de
Todas as intrusões devem estar definidas na política de segurança. Enquanto não for
definido o que é permitido e o que não é permitido no sistema, é inútil tentar entender uma
intrusão.
Uma intrusão pode ser definida como qualquer conjunto de ações que tentem
• Intrusão devido ao mau uso do sistema - são os ataques realizados a pontos fracos
de certas ações.
Como a intrusão de mau uso segue padrões bem definidos, ela pode ser descoberta
tentativa de criar um arquivo com set UID root pode ser detectada através da análise dos
partir de valores derivados da operação do sistema. Estes valores são apurados a partir de
parâmetros do sistema, tais como utilização da CPU, número de conexões por minuto,
Uma variação significativa nestes padrões pode ser um indício de intrusão. Devido
ao grupo de valores que podem definir a utilização normal do sistema, pode-se assumir o
seguinte:
existe um padrão fixo que possa ser monitorado, desta forma deve-se trabalhar com
do sistema operacional e da rede tais como: utilização de CPU, I/O de disco, uso de
volume de dados trafegando no segmento de rede, entre outros. Estes dados formam uma
configuração dos valores das bases bem como inclusão de novos parâmetros.
dispositivos de segurança, como firewall, para incrementar a proteção dos sistemas e dados
da rede.
• Fortalecer políticas: Um IDS pode monitorar uma rede interna para verificar o
• Proporcionar trilhas de auditoria: O IDS pode prover uma trilha de auditoria, para se
está trabalhando e exatamente quantas pessoas estão “de fora”. Essa informação é
Dessa forma, um IDS constitui uma segunda linha de defesa, que tem sido o foco de
sistema antes que qualquer dano seja feito. Quanto mais cedo se detectar um
intrusão que podem ser usadas para reforçar a prevenção na ação de intrusos;
quantificado. Naturalmente, não se pode esperar que exista uma exata distinção entre um
• Baseados em Host (Host Based), que realizam análises somente no host ou servidor
tráfego de um segmento de rede inteiro. Uma placa de interface de rede (NIC – Network
• Modo promíscuo: tem o objetivo de analisar todo o tráfego que passa por aquele
Uma placa de rede normalmente pode ser trocada do modo normal para promíscuo,
e vice-versa, usando funções de baixo nível do sistema operacional que diz diretamente a
placa de rede para fazer essa mudança. Sistemas de Detecção de Intrusos baseado em
Esses produtos basicamente capturam todos os pacotes que trafegam na rede, uma
• Pacotes podem ser contados: contando os pacotes e somando seu tamanho total
Produtos sniffers de pacotes ficaram mais sofisticados nos últimos anos. Programas
como Ethereal e versões mais recentes do Network Monitor podem desmontar vários tipos
de pacotes para mostrar que tipo de comunicação está ocorrendo dentro dos pacotes.
Sniffers de pacotes também podem ser usados de modo destrutivo. Por exemplo, um
sniffer de pacote pode ser usado para descobrir uma senha Unix de alguém observando os
pacotes telnet, pois uma vez que o invasor tenha comprometido a rede, uma de suas
promíscuo. Somente em modo promíscuo todos os pacotes recebidos pela NIC irão ser
máquina que está sendo executado de forma que o hardware da placa de rede possa ser
Observe que os pacotes recebidos em uma interface de um switch não serão sempre
enviados a outras interfaces do switch. Por isso, em um ambiente que utiliza switchs no
lugar de hubs (segmento único), o uso de sniffers de pacotes freqüentemente será inútil.
executar uma ação baseado no conteúdo do pacote é muito demorado, até mesmo para um
• IDS baseado em tráfego (traffic based), a análise é baseada nos cabeçalhos dos
pacotes e, por definição, não há análise de seus conteúdos. Na prática, isto significa
que alguns ataques não serão capturados por um IDS e vice-versa. Também é
Alguns dos tipos de detecção contra intrusos que um IDS baseado em rede pode
• Para pacotes legítimos, permitir sua passagem (talvez os registrando para futura
análise).
TCP ou port unreachable do ICMP para o sistema alvo e o que está enviando o
Dessa maneira, um IDS baseado em rede pode executar uma efetiva segunda
camada de defesa para um sistema que está atrás de um firewall, Ilustração 3.1. Algumas
implementações também usam IDS no lugar do firewall, porém, isso não é recomendado.
baseado em rede pode realizar ações. Essas ações podem incluir interferências no futuro
Uma vez que um pacote tenha atingido o computador destino, ainda há disponível
uma terceira linha de defesa além do firewall e monitor de rede. Ela é chamada de Sistema
estes são diferentes dos sistemas de Detecção de Intrusos baseado em rede devido
não todo tráfego que passa na rede. Por essa razão eles não requerem modo
representar uma tentativa de invasão (ou uma invasão bem sucedida). A equipe de
encontrado.
1. Monitoramento de Conexões
É possível na maioria dos hosts monitorar os pacotes que tentam acessar o host antes
desses pacotes serem passados para a camada de rede do próprio host. Este
mecanismo tenta proteger um host interceptando os pacotes que chegam ao host antes
encontrar fraquezas.
o Detectar Portscan. De novo, esta é uma questão que deve ser enfocada,
obterá uma senha de rede por meios desconhecidos (sniffer de pacote ou outra maneira)
inesperadas.
sistema que eles têm comprometido. Sistemas com boa manutenção e seguros que são
usados como servidores Web e banco de dados irão normalmente ter pouca ou
manutenção de sistema. Eles raramente agem nas janelas de tempo das manutenções
atividades no sistema que são incomuns até mesmo para o mais ativo administrador de
sistema. Há uma linha de defesa: monitorar qualquer ação realizada pelo usuário root ou
do usuário root e pacotes como Logcheck podem então examinar estes registros a
Administradores de sistemas operacionais Open Source (código aberto) tem uma opção
final: alterar o kernel para registrar tipos específicos de atividades. Como isso é feito está
fora do escopo desse trabalho, no entanto há vários sites na Internet que detalham como
fazer isso.
Uma vez que um invasor tenha comprometido um sistema (e apesar de suas melhores
utilizará, ninguém pode contar completamente que um dia um invasor não irá
bibliotecas no sistema.
Programas como Tripwire, Fcheck e AIDE são projetados para detectar quando arquivos
o Os métodos usados pelo Tripwire, Fcheck e AIDE variam um pouco, mas eles
modificado.
Sistemas de detecção de intrusos baseados em kernel são uma nova forma de arte e
para Linux. Estes são OpenWall e LIDS. Estes sistemas utilizam a abordagem de prevenir
certas ações do usuário root como instalar um sniffer de pacote ou modificar as regras do
firewall.
críticos como servidores. Eles não conhecem quem pode ou não acessar determinado
recurso, o que é admitido ser acessado, nem quando o recurso pode ser acessado. Eles
apenas sabem quais são os padrões de tentativa de mau uso dos recursos disponibilizados
naquele segmento. Pode se entender que o console e o sensor ficam à espera de ações
3.2.1 Gerência
A gerência geralmente é feita por uma console, que é a interface entre o sistema de
concentradas e serve como apresentação do panorama atual, bem como pode armazenar
ao administrador determinar qual o perfil de cada uma das tentativas de invasão mais
freqüentes.
• Real-Time;
• Detecções reais;
analista revê e comenta antes de enviar. Um sensor fora da proteção do firewall é definido
para detectar ataques que originalmente venham da Internet. DNS, e-mail, e Servidores
Web são o objetivo principal de todos os atacantes direcionados à Internet. Estes sistemas
de detecção têm interagido com a Internet para uma melhor proteção contra invasões. Desta
forma, deve-se ter um software de IDS que informe bem por meio do console tudo que
acontece na rede.
3.2.2 Sensores
quando uma atividade não autorizada for detectada. O sensor pode fornecer detalhes da
atividade bem como controlar outros sistemas, como roteadores, para terminar as sessões
não autorizadas.
firewall é a melhor localização para tentar detectar o ataque. O benefício desse tipo de
localização é que a análise permite determinar quais são os tipos de ataques a que um site
e IPSes nas interconexões mais importantes, como, por exemplo, redes de parceiros,
Ilustração 3.2.
certamente não é o único lugar que beneficia a empresa. Muitos sensores podem ser
• Sub-Redes que parecem ter o objetivo externo (Internet), ou que têm mostrado
De acordo com o seu campo de ação, os sensores podem ainda ser classificados de
dois tipos:
• Sensores de hosts: Estes ficam dentro dos servidores críticos, observando as ações
pilha TCP/IP.
que tem por objetivo a qualificação do padrão de ataque, minimizando, desta forma, a
possibilidade do sensor interagir com outros elementos de rede como firewall, roteadores e
Desta forma, quando algum ataque for detectado pelos sensores, torna-se possível
ações de conta-ataque que podem ser: envio de e-mail para o administrador, envio de
mensagem via pager, ativação de alertas nas estações de gerência via SNMP,
encerramento da conexão através do envio de pacotes de reset (flag RST do TCP) para a
máquina atacante e para a máquina atacada, com o objetivo de descarregar a pilha TCP.
3.3 Assinaturas
detecção de intrusão não dão importância às políticas dos filtros e procuram apenas
indicadores (assinaturas) de ataques conhecidos. Existem razões preliminares para que isso
aconteça:
O resultado é que se o sistema for projetado para aceitar uma política de segurança,
muitos locais podem não adotar a mesma política. A maioria de sistemas de Detecção de
Intrusos muitas vezes não são configurados para combinar com todas as políticas. Isto
assinatura isolada e atualizar o software de antivírus para incluir no filtro o novo código
Grande parte dos IDSes possuem altas taxas de falsos positivos. Em outras
palavras, não definem com absoluta certeza se o tráfego que atravessa a rede é prejudicial
ou inócuo e alarmam mesmo quando não há problema. Então, cabe ao analista fazer a
distinção entre um ataque real e um falso positivo. Para tomar essa decisão, é preciso
definir quando um tráfego aparenta ser normal e quando não é. Ou seja, é preciso definir o
construídos. Elas descrevem como algo deve supostamente trabalhar quando todos seguem
TCP/IP reagem de forma diferente com o intuito de violar os padrões definidos nas RFCs.
dos hosts. Existem respostas únicas para os mesmos estímulos dependendo das
Algumas tentam evadir a vigilância dos IDSes/IPSes e enganar a filtragem. Outras são
descaradamente hostis. Deve-se tomar cuidado para não confundir atividades que
realmente são respostas normais do host e também entender que programas como o Nmap
sistema operacional.
ICMP, não necessariamente significa que o host de origem não seja um agressor. Se há
anomalias. Deve-se adotar a atitude de que nada é previsível quando se analisa o tráfego
de uma rede.
pacotes de rede, alertando quando identificar uma determinada seqüência que venha a se
concretizar como um ataque. Na maioria dos casos, o IPS toma ações pró-ativas,
derrubando as conexões mal intencionadas antes que venham a causar algum prejuízo para
o sistema protegido.
A diferença entre IPS e IDS está no fato de que, enquanto os IDSes agem somente
IPSes foram desenvolvidos como medidas de prevenção, como o próprio nome já diz, para
bloquear possíveis ataques antes que eles tenham sucesso, ou pelo menos para limitar
IPS e IDS são ferramentas de segurança que se complementam, por isso não podem
ser vistos como soluções opostas. A tecnologia de IPS tem evoluído muito nos últimos
tempos, mas surge como um novo recurso de proteção para uma rede, não como um
IPS é uma adição essencial, mas não constitui um substituto aos firewalls (barreiras
Uma vez que o intruso tenha acesso a um sistema dentro da rede, outros sistemas
tornam-se vulneráveis, e embora o firewall não pare esse tipo de ataque, o IPS sim.
Monitorando o tráfego da rede atrás do firewall, o IPS pode detectar e terminar tentativas de
obter acesso não autorizado. Outra vantagem é que utilizando um IPS dentro da rede pode-
se reduzir boa parte do tráfego indesejável, ou seja, mesmo se o administrador escolher não
terminar as conexões indesejáveis, vários alarmes serão gerados pelo IPS para indicar que
listas de controle de acesso (ACLs) nos roteadores e os firewalls. A defesa ativa significa a
análise da condição dos sistemas e das redes fazendo que é apropriado para tratar o que
está errado. De acordo com Dave Dittrich da Universidade de Washington, há quatro níveis
da defesa ativa:
hosts dentro de uma rede hipotética coletam dados de detecção de intrusos e emitem a um
analisador central, sempre que apropriado, emite mudanças de políticas aos hosts
determinados arquivos, e assim por diante. O firewall externo é a camada mais externa da
infra-estrutura da defesa ativa, detecta ataques relativamente diretos tais como SYN
flooding. Os IDS baseado em rede, dentro dessa rede, recolhem informações dos sensores
ACLs para os firewalls e dados aos analisadores centrais onde as bases dos ataques serão
decifrados.
intrusos está em determinar uma resposta apropriada. A noção da resposta apropriada inclui
seja proporcional à ameaça. No caso de um host está inundando uma rede com pacotes
uma grande quantidade de hosts operados por uma ISP atacassem repetidamente uma
organização, o bloqueio de todo o tráfego do range de endereços IPs da ISP, poderia ser
uma possível resposta. Alguns defensores da defesa ativa acreditam que mesmo que um
host talvez com a inundação utilizando pacotes fragmentados, causando desse modo um
muito recente. As taxas de ataques externos para sistemas de prevenção de intrusos, não
quantidade maior de ataques, não somente a nível de host individuais, mas também dentro
é particularmente intrigante.
4.2.2 IPS
Os sistemas IPS são similares aos IDSes. Podem ser IPS baseados em hosts
(HIPS), que trabalha melhor protegendo a aplicação ou um IPS baseado em rede (NIPS ou
conhecimento; se uma ação não estiver na lista de aceitações, o IPS impedirá a ação. Ao
contrário do IDS, no IPS a lógica deve ser aplicada antes que a ação esteja sendo
antes de permitir que o arquivo seja executado, se não for permitido, o IPS impedirá as
chamadas no sistema.
• Traffic normalizer
• Service scanner
• Detection engine
• Traffic shaper
detection engine e o service scanner. O service scanner, constrói uma tabela de referência,
detection engine faz uma comparação entre a tabela de referência e determina a resposta
• É caro.
A principal diferença entre uma rede com sistema de resposta ativa e uma rede com
IPS é um dispositivo inline, isto é, está situado exatamente no caminho que os pacotes
passam para chegar na rede. Um roteador pode ser um dispositivo inline, pois ele é
ataques com grande número de mecanismos podem ser parados, mas também ataques
individuais. O IPS inline não é obrigado a repassar pacotes determinados como maliciosos.
Por exemplo, um IPS inline pode derrubar portas em um switch, interagir com políticas de
transporte.
dados na camada de aplicação. Essa técnica permite o IPS alterar o pacote de dados de
modo que os ataques na camada de aplicação torne-se inútil antes de atingir o alvo.
4.2.2.1.1 Contramedidas
Existem 4 classes de contramedidas que um IPS de rede pode utilizar para parar um
ataque na rede. Cada classe aplica-se uma camada da pilha de protocolos. As camadas de
Abaixo, segue a lista das classes de contramedidas e a lista das camadas correspondentes
na pilha de protocolos:
switch que está saindo o ataque. Essa atitude só é praticável para ataques que são
individual ou a rede inteira. Um IPS inline pode realizar a mesma coisa sem ter que
apelar para um dispositivo externo, desde que pacotes de um IP específico possa ser
modificações nas regras do firewall ou nas ACLs dos roteadores possam ser
removidas.
sessões TCP maliciosas ou emitir algum pacote ICMP de erro, dos diversos
aplicação não podem causar danos antes de alcançar o sistema alvo. Essa
nessa camada. Similar a camada de rede, timeouts não são aplicáveis. Desde que
desapareçam uma vez que os pacotes alterados são encaminhados através do IPS
software e é instalado diretamente em um host. Uma vez que um evento suspeito foi
conectado em uma porta alta), um sistema de resposta ativa baseada em host é carregado
com ações. Como em uma resposta ativa baseada em rede, a expectativa para um sistema
ataque inicialmente bem sucedido. A ênfase está em tentar, amenizar os efeitos e danos
causados por um ataque depois da detecção. Depois que um ataque é detectado, repostas
do host e então pegar os pasos para remover o código ofendido através das operações
produtos. A adição de novas regras no firewall é uma resposta que normalmente requer o
sistema.
Isso pode ser usado para adicionar uma regra de bloqueio contra um IP ofendido
para uma política de filtro de rede local em reposta a monitoração feita por um backdoor em
um sistema Linux.
Existem muitas técnicas de resposta ativa e prevenção de intrusos, que podem ser
colocados a nível de host. Com o acesso direto as APIs do sistema operacional e no próprio
kernel, o realce de segurança tido recursos por um host IPS podem ser importantes. A
atividades maliciosas, desde que truques de evasão no network IDS e links encriptados
sejam sem sentido. As técnicas de IPS baseados em host incluem mecanismos que serão
medidas de proteção da pilha que serão reforçados por um compilador especializado (ou
runtime no kernel).
operação que requer uma chamada de sistema, fornecida pelo kernel (exemplo inicialização
de um novo servidor, escrita no disco, ou fazendo uso de uma interface de rede todos
fornece um patch para o Kernel do Linux que implementa restrições a chamadas de sistema.
Também deve ser mencionado que no modelo normal do Unix, enquadra-se na categoria
Discretionary Access Control, que não é tão forte quanto as implementações de segurança
que interferem com o objetivo final de um ataque o qual é forçar uma aplicação a
4.2.2.2.1 Contramedidas
firewall local após o ataque. Todas essas são mecanismos de resposta ativa.
execução.
A promessa da proteção de intrusão é muito atrativa, mas há alguns riscos que não
são tão óbvios. Estes riscos devem ser considerados no planejamento de utilização de um
IPS – incluindo o Snort que opera em uma das modalidades do IPS. Sem dúvida há lugar
para o IPS na maioria de ambientes. O mais freqüente e pode ser melhor utilizado como
uma outra camada em uma estratégia robusta de defesa profunda. Alguns dos riscos
Quando um sensor do Snort detecta um ataque e termina uma sessão TCP com o envio
não só que um IPS foi responsável pela finalização da sessão, mas também sobre que
tipo de sistema, o IPS está rodando. Existem algumas ferramentas que analisam como
os sistemas operacionais tratam e transmitem os pacotes, com isso podem fazer uma
p0f (Passive OS fingerprint Tools). Ele simplesmente fica escutando os pacotes na rede ,
o p0f, pode determinar que tipo de máquina emitiu pacote de RST, permitindo ao
atacante descobrir que um IPS está emitindo tais pacotes. Sabendo disso o atacante
Se houver um rápido retardo entre a detecção do ataque pelo IPS e uma mudança na
quando se utiliza o IPS e tudo está conforme o planejado, o dispositivo de borda, pode
está atrasado, o que é um outro argumento para adotar uma política de defesa profunda.
(vizinhos BGP) com o endereço alterado, podem para todo o tráfego de internet. A
maioria das soluções de IPS tentam fazer uma lista de exclusão (lista branca), que
contenha endereços que nunca poderão ser bloqueados, impedindo assim a negação de
bloqueado, isso terá sérias conseqüências. Por exemplo uma empresa que possui um
comercio baseado em web, possui o seu tráfego bloqueado isso acarretará em perda de
dinheiro.
Não há nenhuma regra real a ser seguida. Tem que conhecer como a rede opera de
forma normal (mesmo de forma extrema, mas normal). A melhor dica é deixar o IPS
modo que o tráfego legitimo não seja bloqueado. Uma análise completa de eventos
bloqueados deve ser feita sobre o curso de vida do IPS para assegurar exatidão nos
testes.
Falsos positivos podem causar no IPS bloqueio de tráfego legítimo. Um cuidado extremo
deve ser tomado para permitir somente a obstrução de alertas que dificilmente geram
falsos-positivos . Essas precauções podem permitir que alguns ataques ocorram, mas
pesquisas, sistemas comerciais e sistemas com código aberto, no entanto, muitos outros
tecnológicos ou humanos, são alguns motivos que podem inviabilizar a instalação das
ferramentas. Logo, descobrir qual é o melhor sistema ou o mais indicado para um certo
O Snort_inline, desenvolvido inicialmente por Jed Haile, surgiu como um patch para o
Intrusion Detection System (IDS) existentes para tomar as decisões dos pacotes que
passam por ele. Ele usa novos tipos de regras de como serão tratados esses pacotes, por
detecção de intrusões e, por ser objeto de estudo deste projeto, será descrito com mais
4.4.1.2 LIDS
para proteger sistemas de invasão pelo root. Ele funciona desabilitando algumas funções do
desabilitar o LIDS.[16]
melhorias nos últimos anos e que ele está no auge do seu potencial com a versão 2.4.24 e
Quem trabalha com segurança e deseja alcançar um nível superior de segurança dentro do
seu sistema.
robustez de sua configuração, o que causaria uma série de problemas que o tornam de
certa forma inviável, sendo que também temos ótimas ferramentas de IDS para Linux que
administrador totalmente informado de tudo que esta havendo no sistema, qualquer tentativa
4.4.1.3 SnortSam
O Snort possui um plugin que lhe permite interagir diretamente com a firewall, no
tráfego ao sensor, aumentando a sua performance, e criar uma rede paralela à do tráfego
(uma hipótese) com o(s) sensor(es) e agente(s) a comunicarem entre si, possibilitando que
um único sensor que tenha detectado um ataque de um determinado host, proceda a uma
seus sensores (pode ter vários), verificando a autenticidade se para isso tiver sido
Technologies, Network Associates, ISS, Enterasys, Arbor Networks, Secos, NFR, Nitro
4.4.2.1 TippingPoint
antiphishing sem quaisquer custos adicionais. A TippingPoint, uma divisão da 3Com, foi uma
das primeiras soluções globais baseada em rede para bloquear os ataques de phishing e
para fins fraudulentos. Dado que, regra geral, as ações de phishing parecem provir de uma
fonte confiável, é extremamente difícil evitá-los e podem acarretar grandes custos para
4.4.2.2 SourceFire
eficaz.
primeiro e único sistema de defesa de rede inteligente e detalhado que unifica tecnologias
SourceFire RNA Sensors e o SourceFire Defence Center, oferece a maior segurança efetiva
disponível. Na verdade, todos appliances SourceFire são Plug-n-Protect para o mais baixo
desempenho e auto-manutenção.
5 SNORT
O Snort foi originalmente desenvolvido em 1998 por Marty Roesch apenas como
de tráfego e registro de pacotes em tempo real em redes IP, porém suporta outras, como
IPX, por meio de extensões personalizadas. Ele pode realizar análise de protocolos,
similaridades ou pesquisa de conteúdo e pode ser utilizado para detectar uma variedade de
ataques e exames, como buffer overflows, stealth port scans, ataques CGI, exames de
SMB, tentativas de OS fingerprint e muito mais. O Snort utiliza uma linguagem de regras
flexível para descrever o tráfego que é coletado ou passado por ele, bem como um
mecanismo de detecção que utiliza uma arquitetura modular do tipo plug-in. Além disso, o
Snort tem uma capacidade de alertar os dados em tempo real, bem como incorpora
mecanismos de alerta para syslog, para um arquivo especificado pelo usuário, para um
socket UNIX ou até mesmo mensagens do tipo WinPopup para clientes Windows utilizando
smbclient.
Snort tem quatro principais funcionalidades. Ele pode ser configurado nos modos:
# snort -v
• Packet Logger (registrador de pacotes), onde os registros dos pacotes são
# snort –v –l /var/log/snort
• Network Intrusion Detection System (NIDS), o mais complexo e configurável, o qual
O Snort pode registrar os pacotes tanto no formato ASCII, padrão, quanto no formato
binário do tcpdump, criando diretórios baseados nos endereços IPs dos hosts remotos.
5.1 Mecanismo
Detection
(plug-ins)
a. Libpcap library
processamento.
c. Preprocessor
várias transformações nos dados para uma forma mais simples de serem tratados pelo
d. Detection Engine
plug-ins de detecção. Essas regras contêm as assinaturas para ataques habilitadas por
e. Output
5.2 Configuração
saída que serão utilizados pelo Snort, também é possível passar parâmetros de execução,
como, por exemplo, que o Snort seja executado enjaulado, limitando assim o acesso ao
alert->pass->log
5.2.1 Variáveis
• HOME_NET se refere aos endereços IPs visíveis pelo IPS na rede interna.
• EXTERNAL_NET se refere a todos IPs não confiáveis, pode-se utilizar “!” para
Outras variáveis, para servidores de DNS, SMTP, HTTP e SQL, são utilizadas sendo
5.2.2 Preprocessor
funcionalidade para que o Snort seja extensível a plug-ins modulares, os quais podem ser
nos cabeçalhos dos pacotes, quanto para notificar os pacotes, para que, assim, o
pré-processadores são responsáveis pela normalização do tráfego, para que possa ser
• Reestruturação de pacotes;
• Decodificação de protocolos; e
• ARP spoof
• ASN.1 detection
• BO
• Flow
• Frag2
• Frag3
• HTTP inspect
• Performance monitor
• RPC decode
• sfPortscan
• Stream4
• Telnet decode
• X-link2State
5.2.3 Assinaturas
Apoiado por vários recursos da comunidade de usuários do Snort, eles são totalmente
Certified Rules, disponível ao mesmo tempo para usuários do Snort e da Sourcefire, em até
cinco dias. Cada regra é rigorosamente testada baseada em situações reais antes de ser
divulgada.
As VRT Certified Rules são as regras oficiais do Snort.org e são distribuídas sob
• Usuários não registrados: acesso às regras disponíveis com a versão do Snort mais
recente.
Além das regras oficiais é mantido um conjunto de regras enviadas por membros da
Atualmente, o Snort pode analisar quatro protocolos: IP, TCP, UDP e ICMP em mais
parte principal da assinatura, pois ele identifica o que deve ser feito quando a regra for
sinalizada, qual protocolo deve ser usado e as informações de origem e destino, incluindo
Snort.
5.2.3.1 Cabeçalho
O campo ação da regra indica para o mecanismo qual operação deve ocorrer
As ações da regra são altamente significativas, pois cada uma delas tem um objetivo
padrão são:
• pass: A ação pass simplesmente ignora o pacote e continua a análise nos pacotes
posteriores;
• log: A ação de regra log permite registrar um alerta de uma maneira que pode
• alert: A ação de regra alert registra o pacote da mesma maneira que a ação log e
• dynamic: A ação dynamic é única, no sentido de que permanece inativa até que uma
regra activate a dispare. Após ser disparada, ela então atua como uma regra de ação
log;
• activate: A ação de regra activate é a mais complexa criada por padrão dentro do
Snort, pois quando ativada, ela gera um alerta e depois inicia a regra dinâmica
especificada. Isso pode ser excelente para capturar ataques complexos, invasores
maneira diferente.
O campo porta serve para determinar quais portas deverão ser analisadas. Por
exemplo:
5.2.3.2 Opções
opções, são colocadas entre parênteses ‘()’, separadas por ponto-e-vírgula ‘;’ e as
a. msg
Especifica a mensagem que será exibida no log/alerta quando o pacote for capturado.
Formato: msg:”<mensagem>”.
b. logto
Grava a saída de todos os pacotes capturados pela regra para um arquivo específico.
c. ttl
tentativas de traceroute.
Formato ttl:<numero>.
d. dzise
Formato: dsize: [> |< ] < numero> [< > < numero> ]
e. content:
Payload do pacote, como por exemplo, uma palavra ou dados em linguagem de máquina
minúsculas, a opção ofset para indicar os bits onde os dados começam e a opção depth
f. regxp
g. flag
Segue as opções:
• U URG - Urgente
h. seq
Verifica o campo seq (numero de seqüência) do cabeçalho TCP. Esse número qual
indica um número para o controle da conexão. Útil quando se tem uma aplicação que
gera os pacotes já com o numero seq pré-definido e se quer testar uma tentativa de
i. ack
TCP. Se este bit estiver definido, este campo contém o valor do próximo número
seqüencial que o receptor está esperando receber. Útil para detecção de varreduras
j. resp
Possibilita enviar resposta ao tráfego suspeito, como por exemplo, mandar um reset à
Segue as opções:
descarregada uma nova versão das regras, por isso é recomendado sempre fazer uma
cópia de segurança.
5.2.4 Saída
Windows.
Por exemplo, uma tentativa de ataque do tipo MS-SQL Worm propagation, também
/etc/snort/doc/signatures/2003.txt;
• A descrição do alerta
prioridade do alerta;
• O protocolo do ataque; e
6 SNORT INLINE
Jed Haile desenvolveu o Snort_inline como um patch para o Snort versão 1.9, sob a
licença de software de código aberto GPL. Tratado como um Gateway IDS (GIDS), pois
do Snort Inline dentro do projeto oficial do Snort. Essa versão contemplou a portabilidade
para Linux, integrando com o firewall IPtables, e para FreeBSD, integrando com o firewall
IPFW.
em bridge, a qual não é identificada como um hop adicional no roteamento dos pacotes. A
utilização de bridge, a qual não tem endereço IP, entre dois segmentos de rede faz com que
protegidas.
atacante.
Snort Inline faz uso da biblioteca de enfileiramento de pacotes, LibIpQ, em vez da biblioteca
Bridge
IPtables
IP Detection
Queue (plug-ins)
a. Bridge
b. IPtables
c. IP Queue
Enfileira pacotes do espaço do kernel para uma aplicação que esteja rodando no espaço
de usuário
d. Libipq library
A biblioteca Libipq, provida pelo IPtables, permite que o Snort Inline comunique com o
e. Inline Engine
Engine do Snort correlacionando com o Inline Engine (drop, sdrop, reject ou replace)
f. LibNet library
A biblioteca LibNet é uma interface de baixo nível utilizada para injetar pacotes na rede
flexresp.
6.2 Configuração
que os objetivos são diferentes: descartar o pacote malicioso antes que o mesmo alcance o
alvo.
No Snort Inline foram adicionadas três novas ações para as regras, as quais devem
via Snort.
Por exemplo, para descartar todos os pacotes originados da rede externa para os
replace.
Por exemplo:
alert tcp any any <> any 80 (msg: "tcp replace"; content:"GET";
replace:"BET";)
->activation->dynamic->pass->drop->sdrop->reject->alert->log
7 IMPLEMENTAÇÃO
rede simples, Ilustração 6.1, com um firewal segmentando as redes de gerência, interna,
DMZ e externa fazendo NAT para acesso à Internet. Lembrando que o IPS deve funcionar
.3 Internet
zeus
Rede
Gerência
192.168.0.0/29 .2
Roteador
de borda
.1 IPS
hades
hefesto
(Firewall)
DMZ
Rede Interna
A concepção do projeto foi realizada utilizando três máquinas virtuais simuladas pelo
Onde será implementado o elemento ativo de firewall, necessário em qualquer tipo rede,
Onde será feita a gerência do sensor IPS com interface gráfica baseado em http e
armazenamento dos eventos enviados pelo Snort NIPS em banco de dados MySQL.
Onde será implementado a solução NIPS Snort Inline junto com IPtables. Contém três
interfaces de rede, sendo que uma é utilizada para a gerência e as outras duas para
implementação da ponte.
A gerência do sensor poderá ser realizada in loco ou por meio de acesso remoto, em
As três máquinas virtuais foram instaladas com o Debian GNU/Linux 3.1 (sarge)
Foram instalados em todas as VMs alguns pacotes úteis ou necessários, são eles:
a. openssh-server
uma máquina remota, provendo uma comunicação cifrada, segura entre os dois hosts,
b. ntpdate
partir de outros sistemas, necessário para determinar o momento exato em que ocorreu
o evento.
c. gcc
d. make
7.1.1 Instalação
• openSSH 4.2p1
• ntpdate 4.2.0a
• make 3.80
7.2 Firewall
fazendo NAT para a Internet. Sendo que uma interface está na rede gerência e a outra
conectada no mesmo segmento de rede em que estará uma das interfaces do IPS. Esta
rede da outra interface do IPS. Não foram utilizadas as interfaces que conectam as redes
7.2.1 Configuração
hefesto:~# vi /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
Para habilitar a NAT basta adicionar uma regra na tabela de NAT do IPtables, para
script.
7.3 Sensor
Para a instalação do IPS Snort Inline foi utilizada a versão de kernel 2.6.8, também
disponível no Debian Sarge 3.1, pois esta versão já vem com a bridge com suporte nativo ao
Como o sensor terá duas placas habilitadas em ponte, é recomendada uma terceira
para isso é recomendado que a máquina esteja em um ambiente seguro ou até mesmo
baixar todos os pacotes em uma máquina de homologação, para só então proceder com as
hades:~# vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
As bibliotecas e programas que são pré-requisitos para que se possa instalar o Snort
Inline são:
passivamente os pacotes.
7.3.1.1 Instalação
• iptables 1.2.11
• libnet0 1.0.2a
• libpcap0.8 0.9.4
• libpcre3 6.4-1.0.1
• libmysqlclient 4.1.15
Para instalar os pacotes requeridos para o Snort Inline basta executar os seguintes
comandos:
código fonte, disponível na página oficial do Snort. A versão utilizada neste projeto foi:
• snort 2.4.3
Para instalar o Snort a partir do código fonte basta seguir os seguintes comandos:
hades:~# cd /usr/src/
hades:/usr/src# wget http://www.snort.org/dl/current/snort-2.4.3.tar.gz
hades:/usr/src# cd snort-2.4.3
hades:/usr/src/snort-2.4.3# ./configure --enable-inline
--enable-perfmonitor --enable-flexresp --with-mysql
--with-libipq-includes=/usr/include/libipq/
Para testar se o Snort foi está devidamente funcionando basta executar o seguinte
comando:
hades:/usr/src/snort-2.4.3# snort –v
Lembrando que é necessário que o módulo ip_queue esteja ativo para testar o
automaticamente.
7.3.1.2 Configuração
Agora que o Snort está instado é necessário fazer algumas configurações para que
criados o usuário e o diretório onde será implementada essa função. O usuário não terá um
shell e também não será permitido utilizar a conta para acessar o sistema, para isso, basta
executar:
A obtenção das assinaturas foi descrita na seção 5.2.3, sendo definido que seriam
utilizadas as regras obtidas por meio de registro no Snort.org. Para atualizar as assinaturas
entretanto é recomendada uma cópia de segurança prévia. Para obtenção das regras basta
proceder:
hades:~# cd /tmp
hades:/tmp# wget http://www.snort.org/pub-
bin/oinkmaster.cgi/<oink_code>/snortrules-snapshot-2.4.tar.gz
hades:/tmp# cd /etc/snort
Para evitar atividades de cópia de arquivos sempre que forem atualizadas as regras,
é recomendado fazer uma referência aos arquivos originais por meio de links.
hades:/etc/snort# ln -s rules/classification.config
hades:/etc/snort# ln -s rules/generators
hades:/etc/snort# ln -s rules/gen-msg.map
hades:/etc/snort# ln -s rules/reference.config
hades:/etc/snort# ln -s rules/sid-msg.map
hades:/etc/snort# ln -s rules/sid.map
hades:/etc/snort# ln -s rules/snort.conf
hades:/etc/snort# ln -s rules/threshold.conf
hades:/etc/snort# ln -s rules/unicode.map
falsos-positivos.
hades:/etc/snort# vi snort.conf
var RULE_PATH ./rules
output database: log, mysql, user=snort password=snort dbname=snort
host=192.168.0.3 port=3306 sensor_name=hades-IPS
Para utilizar o Snort com todas as opções anteriores e no modo verbose, basta
Para utilizar o Snort com todas as opções anteriores e no modo daemon, basta
É recomendado criar um script para que o Snort seja iniciado junto com o sistema.
7.3.2 Bridge
Uma ponte envia o tráfego entre múltiplas interfaces de rede de forma transparente,
isso significa que uma ponte conecta duas ou mais ethernets físicas juntas para formar uma
Para que o Snort Inline rode sobre o modo bridge é necessário que o kernel esteja
compilado com o patch bridge/firewall, caso contrário, a bridge não passará os pacotes para
Uma ferramenta transparente que filtra o tráfego de redes passando por uma bridge,
bridge-netfilter e br-n. Por meio da bridge-nf é possível uma integração do IPtables com a
compilada automaticamente no Linux Debian kernel 2.6, o qual tem o netfilter e a bridge
Por esse motivo foi definido que o Snort Inline NIPS (hades) fosse instalado com a
configuração, é necessário instalar o aplicativo que cria a ponte, sendo definido que seria o
7.3.2.1 Instalação
• Bridge-utils 1.0.6
7.3.2.2 Configuração
apenas dar um nome para a interface bridge lógica e adicionar as interfaces físicas a ela. Os
7.3.3 IPtables
7.3.3.1 Configuração
Para habilitar o módulo de fila, provido pelo o IPtables, ao iniciar o sistema, basta
executar:
Para habilitar a fila no IPtables basta adicionar uma regra na tabela de NAT do
script.
7.4 Gerência
a. MySQL server
A estação de gerência contém uma interface de rede que está configurada para a
rede de gerência
7.4.1 MySQL
source.
7.4.1.1 Instalação
7.4.1.2 Configuração
Com isso, foram instalados os pacotes do mysql-server. Uma vez que os pacotes
foram instalados, foi iniciado o daemon do MySQL usando a linha de comando abaixo:
'root'@'localhost'=password('senha');
mysql> exit
Para a criação das tabelas para o database snort, basta utilizar o modelo fornecido
Um usuário chamado snort será utilizado pelo BASE para conexão à base de
tabelas que serão utilizadas para armazenar os logs e informações sobre o Snort e
+------------------+
| Tables_in_snort |
+------------------+
| data |
| detail |
| encoding |
| event |
| flags |
| icmphdr |
| iphdr |
| opt |
| protocols |
| reference |
| reference_system |
| schema |
| sensor |
| services |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+------------------+
19 rows in set (0.00 sec)
diversas plataformas.
7.4.2.1 Instalação
Para a instalação do Apache com suporte a PHP basta realizar as seguintes etapas:
7.4.2.2 Configuração
zeus:~# vi /etc/apache2/httpd.cnf
Load_Module php4_module /usr/lib/apache2/modules/libphp4.so
7.4.3 BASE
O BASE (Basic Analisys and Security Engine) é uma ferramenta de análise baseada
em PHP para pesquisar e processar uma base de dados formada por eventos de
segurança, gerados por vários elementos de segurança como IPSes, firewalls e ferramentas
• Ferramenta de query sql e interface de pesquisa para encontrar alertas por meio de
palavras chave (ex. assinaturas, tempo de detecção) bem como informações de rede
• Gerência de alertas, que provê uma organização lógica dos grupos de alertas para
O BASE tem a habilidade de analisar uma grande variedade de eventos que são
• usando o Snort:
o alertas do Snort;
• usando o logSnorter:
o IPChains;
o IPtables;
o IPFW.
Quando o BASE é acessado, por meio de uma interface web, ele faz queries à
tela pode-se verificar quais foram os alertas gerados e fazer buscas pela base de dados. Ao
se visualizar os alertas, estes possuem uma descrição do tipo de alerta, a prioridade que ele
requer e um atalho para o site do Snort [4], onde se pode obter maiores informações a
respeito do ataque. A gerência da base de dados pode também ser feita através do browser.
Desta forma, o BASE se mostra como uma ferramenta útil e completa permitindo
7.4.3.1 Instalação
• MySQL
• Snort
o MySQL Support
• Apache
o OpenSSL Support
o PHP
OpenSSL Support
MySQL Support
• BASE
o Adodb
o jpgraph
7.4.3.2 Configuração
zeus:~# cd /var/www/html/base
forma:
zeus:/var/www/html/base# vi base_conf.php
$BASE_urlpath = "../base";
$DBlib_path = "/var/www/html/adodb";
$DBtype = "mysql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "password_from_snort_conf";
$archive_dbname = "snort";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "snort";
$archive_password = " password_from_snort_conf ";
$ChartLib_path = "/var/www/html/jpgraph-1.16/src";
http://zeus/base.
Clicar no link “SETUP PAGE”, na próxima página clicar no botão setup AG, aparecerá
Aperte no link “HOME”, para ter acesso a página principal. Feito o BASE deve estar
devidamente ativo pronto para analisar os eventos coletados pelo Snort Inline.
8 RESULTADOS
Linux Debian kernel 2.4, a qual gerou diversos erros durante a compilação do IPtables com
suporte a Bridge-nf, o que durou aproximadamente três semanas. O escopo do projeto foi
continuado com Snort Inline rodando com IPtables em modo NAT. Como essa situação não
era a desejada inicialmente, foi testado o kernel 2.6, o qual se obteve êxito com o IPtables
rodando em bridge.
Além disso, foi implementada, para melhor visualização dos dados obtidos uma
comportamento próximo do real, para isso foram lançados alguns ataques a partir da rede
externa, como pings com tamanhos acima do normal, tentativa de tornar-se root, portscans.
Além disso, o IPS Snort Inline foi disposto por cinco dias em um ambiente real
analisando pacotes que eram destinados à porta tcp/25, SMTP, que continham as strings
‘.lnk’, ‘.pif’, ‘.cmd’, ‘.bat’, ‘.msi’, ‘.exe’, ‘.scr’, ‘.vbs’. Durante esses dias pacotes destinados ou
originados da/para a rede interna não foram entregues, sendo descartados pelo Snort Inline.
Observou-se que a tentativa de acesso aos arquivos de sistema, foi detectada pelo
mecanismo preprocessor e pelo mecanismo de detecção por assinatura. Esse evento pode
gerar muitos falso-positivos, por exemplo, com simples erros de digitação no navegador
web.
O port-scan foi detectado logo pelo preprocessor e uma simples ação que pode
externa.
demora mais que o normal pra ser finalizada, do lado do cliente, já que não chega ao
servidor.
do Snort_Inline.
Com a implementação da gerência por meio da interface gráfica BASE, tornou mais
a. Disponibilidade do banco
Como os eventos são armazenados em uma máquina remota de banco de dados, caso
não haja conectividade com a máquina de gerência o Snort não é inicializado, o que
pode ser resolvido por meio de um script que faça o teste de conectividade e em caso
Ao se atualizar as regras é necessário que seja feito um backup prévio das regras
inclusão ou exclusão de features padrão, o que exige que seja reconfigurado o arquivo
do Snort
c. Assinaturas
assinaturas as quais se deseja descartar os pacotes, o que pode ser feito por meio de
um script.
d. Eventos repetidos:
A análise de logs pode ser facilitada com aplicativos que agrupam eventos repetidos.
e. Alta disponibilidade
Por o IPS ser inline é necessário que todos os sistemas que o compõem estejam ativos,
caso contrário, causará indisponibilidade à rede. O que pode ser minimizado utilizando
Em redes que trafegam uma grande quantidade de dados é possível que haja perda de
pacotes durante a análise, o que pode ser minimizado com o uso registros de alertas no
formato do binário do TCPDump. Scripts podem ser criados para verificar se todos os
f. LiveCD
mesmo em memórias flash, o que é útil pois em uma possível invasão do sistema
g. Harden
CONCLUSÃO
utilizadas para implementar IPS o qual incrementa a proteção de forma ativa, constituindo
privilegiando a ação preventiva, auxilia não apenas nos esforços de uma melhor
infraestrutura, mas também colabora com o controle dos gastos com segurança da
segurança.
Prevenção significa detectar e bloquear um ataque antes que este alcance seus
possuem problemas semelhantes: novos ataques não são detectados porque às vezes não
há uma assinatura para eles - uma das motivações de se continuar o estudo de Prevenção
Para uma melhor implementação de IPS é necessário que a rede a ser protegida
os IPSes não são a solução para os ataques que ocorrem no cotidiano das redes
REFERÊNCIAS BIBLIOGRÁFICAS
Acesso em 01/09/2005.
01/11/2005.
Acesso em 23/08/2005
[9] NORTHCUTT, S Inside Network Security Perimeter. Estados Unidos: Sams, 2002
/Stuart McClure, Joel Scambray e George Kurtz; tradução de Daniel Vieira. – Rio de
agosto de 2005
em novembro de 2005
2005
[18] The Honeynet Project. Know Your Enemy: Learning with User-Mode Linux.
2005
[21] SCHULTZ, E.; ENDORF, C.; MELLANDER, J. The future of intrusion detection
<http://searchsecurity.techtarget.com/searchSecurity/downloads/IDP_Ch17.pdf>.
2005
[23] LIDS.Disponível<http://www.rhbr.com.br/modules.php?name=News&new_topic=39>.
<http://www.scmagazine.com/us/grouptest/details/79d57b71-5ebd-4ce2-93e3-
[27] Intrusion Prevention and Active Response: Deploying Network and Host IPS. Michael
[28] Snort 2.1 Intrusion Detection. Andrew Baker, Jay Beale, Brian Caswell, Mike Poore
[29] Snort 2.0 Intrusion Detection. Jay Beale, James C. Foster, Jeffrey Posluns, Ryan
[31] Intrusion Detection with SNORT: Advanced IDS Techniques Using SNORT, Apache,
[32] Snort for Dummies. Charlie Scott, Paul Wolfe, Bert Hayes.