Hard-Fire

Hard Fire


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

Hawkeye

Hawkeye
Admin
Admin
Um sistema de detecção de intrusão  é um dispositivo que analisa todo o tráfego da sua rede em busca de padrões que possam indicar atividade ilegítima, auxiliando na detecção de ataques, infecções por malware, shells ilegítimos, etc.
Estes dispositivos tem uma estória que pode ser traçada até 1986 (em um formato ou outro) e evoluíram muito desde então. Hoje em dia, alguns padrões (como o HIPAA) chegam a ponto de exigir que uma rede tenha sistemas de detecção de intrusão presente como parte integrante da estratégia de segurança. Daí a importância de você conhecer muito bem quais são os tipos de dispositivos disponíveis, como eles funcionam e o que podem ou não fazer por você.
Este post tem bastante da minha experiência trabalhando com IDS. Tentei ser o mais informativo possível. Uma boa ideia é usar este post como um “norte” e se aprofundar mais no assunto analisando outras fontes e livros. Se sentir que falta alguma coisa ou achar que precisa de uma explicação melhor sobre algum dos pontos discutidos, me avise nos comentários.
O que é detecção de intrusos?

Firewalls são uma excelente linha de proteção. Ele filtram o tráfego que entra e sai da sua rede, permitindo que você mantenha usuários maliciosos para fora ou que consiga conter um host infectado por uma botnet impedindo que ele receba ordens do mestre. Porém, um grande problema com firewalls é que eles não conseguem analisar o payload enviado por um atacante. Por exemplo, se um atacante invade uma máquina que o firewall permite passar, o ataque só será detectado quando for tarde demais. Para este tipo de problema, você precisa de uma solução mais pró-ativa e que funcione cuidando justamente desta “brecha” que o firewall deixa.
Aí entram os sistemas de detecção de intrusão. Estes sistemas se utilizam de várias ferramentas e algoritmos para analisar o tráfego que passa por suas interfaces (que podem ser chamadas de sensores), procurando por indícios de algo que possa ser um ataque em andamento. Dando assim melhores chances para que o time de segurança de uma empresa consiga responder ao ataque de forma mais planejada, aumentando as chances de parar o ataque e evitar que danos mais sérios sejam feitos à rede. Além de ataques, estes sistemas também são capazes de detectar softwares que os seus usuários não deveriam ter instalado nas máquinas (TeamViewer, eDonkey, softwares que usam BitTorrent, etc), hosts infectados por malware (muitas vezes com detalhes o suficiente para saber qual malware a infectou), hosts que estão fazendo scans pela rede sem ter autorização. Ou seja, o IDS também pode ajudar na auditoria da sua rede fornecendo informações úteis para o dia-a-dia de uma equipe de resposta a incidentes.
Existem alguns tipos diferentes de sistemas de detecção de intrusão (IDS, na sigla em inglês). Os baseados em assinatura, que analisam o payload de todos os pacotes atravessando a rede atrás de padrões pré-configurados que podem indicar um ataque (quando o payload é dividido em vários pacotes, estes pacotes são remontados no IDS e depois analisados. Se estiver tudo certo, aí sim eles serão liberados para seguir caminho). Por exemplo, se um pacote contém vários NOPs seguidos (ou, também chamado de NOPSled), isto pode indicar que o host de origem está tentando atacar o host de destino explorando uma falha de buffer overflow. Este tipo de IDS só é capaz de detectar ataques para os quais ele já tenha a assinatura em seu banco de dados para que ele possa comparar o que chegou da rede com o que realmente é um ataque. Ou seja, IDS baseados em assinatura dificilmente conseguem capturar ataques 0-day.
Há também os IDSs baseados em anomalia. Este tipo de IDS primeiro passa por um período de “treinamento”, que pode durar dias ou mesmo semanas. O objetivo deste período é fazer com que o IDS aprenda o que é tráfego normal e o que pode ser um ataque. Por exemplo, durante o período de treino o IDS identifica que acesso à Internet tome 20% da banda durante o horário comercial. Se por algum motivo qualquer o consumo de banda para esta finalidade passar de 20%, um alerta será gerado para o administrador para que uma ação seja tomada. Isso pode acontecer com vários outros parâmetros como, por exemplo, a porcentagem de uso do processador da máquina sendo protegida por um HIPS que funciona baseado em análise de anomalia.

O maior problema deste tipo de produto é definir com 100% de certeza que durante o período de treinamento apenas tráfego legítimo foi analisado e levado em consideração. Como você pode imaginar, isso é extremamente difícil em uma rede que já está em produção há algum tempo. Além disso, é complicado você manter o perfil criado durante o período de treinamento do sistema atualizado. Pode ser que a rede que você está monitorando tenha passado por um crescimento um pouco mais acentuado e agora o normal para navegação na Internet é 45% da banda. Você vai precisar gerar novamente um perfil, passando por um novo período de treinamento, para evitar ficar recebendo alertas de falsos-positivos o tempo todo. E aí, se você não prestar muita atenção, vai pegar mais atividade de malware e considerar tráfego normal.
Embora o IDS baseado em anomalia seja um pouco mais complicado de configurar, é com ele que você tem as maiores chances de encontrar 0-days na sua rede.
Um outro tipo de IDS é o baseado em análise de protocolo. Estes IDSs possuem um banco de dados de perfis de protocolos especificando que atividades são normais e quais atividades podem ser consideradas um ataque. Assim, depende-se da definição de uso legítimo e não legítimo do desenvolvedor do protocolo para conseguirmos realizar a análise e diferenciarmos um usuário que está tentando logar no servidor FTP e um que está tentando adivinhar uma senha.
Também é analisada informação de estado da conexão. Por exemplo, considere um servidor FTP: quando você começa a se comunicar com ele, você ainda não vai estar autenticado. Por isso, executar comandos como mkdir é suspeito pois um usuário que não foi autenticado não deve tentar criar diretórios no servidor. Depois que você passar pela autenticação, executar um comando mkdir vai deixar de levantar suspeitas já que isso é uma atividade normal para usuários legítimos. O software IDS passa então a analisar, por exemplo, o tamanho do argumento. Se ele for muito grande, pode ser que gere um alerta para o analista de segurança (será que um usuário malicioso está tentando explorar uma falha de buffer overflow no seu software de servidor FTP?). Como você percebeu, o IDS baseado em análise de protocolo vai se basear nos padrões definidos como pelas RFCs (ou no que for definido como normal pela empresa responsável pelo protocolo, no caso de um protocolo proprietário) para decidir se o que está acontecendo é um ataque.
Embora ser baseado em RFCs seja uma excelente escolha, lembre-se que nós não vivemos em um mundo perfeito. Muitas vezes, desenvolvedores adicionam funcionalidades ou mesmo modificam a forma com que alguma coisa funciona em um protocolo, fugindo um pouco do padrão. Sempre que isso acontecer o IDS, que está esperando um protocolo aderente à RFC, pode levantar um falso-positivo pois ele não estava esperando que aquilo acontecesse. Acha que isso não acontece? Considere o PPTP. A Microsoft escreveu todo o RFC e quando implementou, fez uma implementação que não era aderente à RFC escrita por ela mesma!
Além de variarem em relação ao método de análise e alerta, como discutido anteriormente, estes sistemas também variam no posicionamento e resposta. Como você vai ver no resto deste texto, existem sensores de rede (NIDS), sensores de host (HIDS) e sensores que permitem à você não apenas ser alertado quando alguma coisa errada é encontrada, mas também tomar medidas e bloquear o ataque (IPS – intrusion prevention systems). Tudo isto será discutido durante o texto em maiores detalhes.
Posicionamento do sensor

Para que o monitoramento seja efetivo, o tráfego deve ser visto pelo IDS ou ele não irá conseguir analisar o tráfego e detectar ataques. Parece óbvio, mas muitas pessoas acabam fazendo um planejamento que não atende às expectativas e acaba deixando tráfego importante passar sem qualquer análise. Essa falta de planejamento aumenta e muito o risco de um ataque ter sucesso mesmo com um sensor ativo e funcionando na rede.
Em redes que usam switches (acredito que 100% das redes de hoje em dia) você precisa fazer com que o tráfego seja espelhado também para a porta onde o IDS está conectado. Você consegue fazer isso usando SPAN (Switched Port Analyzer) ports. Uma SPAN port nada mais é do que uma porta para onde o switch envia uma cópia de todos os pacotes que o atravessaram. Muitos switches hoje em dia possuem esta funcionalidade que é uma mão na roda para qualquer administrador que já tenha precisado capturar e analisar tráfego de uma rede que usa switches.

Se o switch que você usa na sua rede não tem esta funcionalidade, você pode ou fazer com que o tráfego passe por um hub para depois entrar no switch e ligar o sensor neste hub ou você pode fazer com que o tráfego passe pelo IDS e depois continue seu caminho, modalidade esta chamada de “in-line”. Caso você esteja usando um IPS (que toma uma ação ao detectar um ataque), ligar o sensor no modo “in-line” é o único modo de conseguir bloquear um ataque.

NOTA: Como é muito importante que você posicione o seu IPS/IDS corretamente na rede, vamos relembrar como você pode integrá-los à rede:

in-line: Quando você liga a sua appliance IDS no modo in-line, todo o tráfego passará pelo dispositivo antes de chegar ao destino. Esta é a única opção para um IPS já que, para que ele consiga bloquear o tráfego quando um ataque for detectado, ele precisa estar no “meio do caminho” e não de lado como estaria se você o ligasse a uma SPAN port.
SPAN port: Quando ligado deste modo, o sensor irá receber apenas cópias do tráfego. O tráfego “ao vivo” não vai passar por ele, portanto ele não tem como tomar uma ação em relação ao tráfego. É útil ligar o seu IDS desta forma quando você não quer necessariamente tomar uma ação automática, mas sim analisar o que está acontecendo, entender e aí sim tomar medidas efetivas para solucionar o problema que foi detectado.
Você também vai precisar definir qual o tráfego que você vai analisar. Capturar e analisar todo o tráfego da sua rede pode não ser uma boa ideia, principalmente em redes de maior porte. Como a quantidade de coisas a ser analisada vai ser gigantesca, o IDS/IPS vai acabar introduzindo um pouco de latência na rede e muitos alertas serão criados o que pode acabar diminuindo a importância destes aos olhos do analista. Isso acontece muito e é muito perigoso, pois os ataques vão continuar passando (o analista não teve tempo hábil para analisá-los) ou eles não serão analisados à fundo, podendo permitir que partes do ataque continuem sem serem detectadas.
O ideal é colocar um IPS na sua DMZ e também na frente dos servidores da sua rede interna, analisando todo o tráfego que vai/sai destes hosts tão importantes. Este IPS deve ter um conjunto de assinaturas muito bem configurado para que ataques que não representem riscos aos seus servidores não sejam alarmados (ou seja, não habilite assinaturas de ataques que só afetam Windows se você só tem servidores Linux). Além disso, o IPS vai bloquear menos falsos-positivos e vai te dar muito menos dores de cabeça. Além disso, para complementar o NIPS é recomendado que você instale um HIPS em cada um dos servidores para que processos, logins/logouts, etc. sejam detectados também (que são coisas que um sensor de rede não é capaz de fazer, como veremos mais adiante).
Eu não sou à favor de utilizar IPSs em sub-redes onde só estão presentes máquinas de usuários. Nestes casos, eu acho mais interessante que um IDS receba uma cópia dos dados através da SPAN port e alerte você quando uma máquina está infectada por malware ou fazendo scans sem autorização. Dada a grande quantidade de máquinas de usuários que existem em uma rede típica, a configuração de quais assinaturas serão habilitadas neste sensor deve ser ainda mais detalhada para não acabar alarmando em muitos ataques ou ataques que não têm tanta importância. Além disso, você precisa usar um firewall e um anti-vírus de qualidade sempre atualizado para ajudar a defender estas máquinas (e obviamente, aplicar todos os patches, service packs e instalar sempre as versões mais novas dos softwares assim que elas forem publicadas).

Não se apresse para definir o posicionamento dos sensores. Esta é, talvez, a parte mais importante de se configurar um IPS/IDS. Se ele estiver posicionado de forma errônea, você não vai conseguir capturar o tráfego que importa e vai acabar perdendo tempo e dinheiro analisando um monte de tráfego que simplesmente não interessa. Analise muito bem esta etapa pois uma mudança no posicionamento do sensor de detecção de intrusão pode acarretar também uma parada no fluxo de tráfego, recabeamento e uma reconfiguração total para definir que assinaturas serão habilitadas ou não.
No caso de sensores de host, não tem muito o que pensar. O único tráfego que ele irá analisar é o tráfego que passar pela interface da máquina, ao contrário dos sensores sobre os quais conversamos até agora que irão detectar tudo o que passar por todos os segmentos de rede que estiverem conectadas à applicance IDS/IPS. Portanto, um HIDS/HIPS precisa apenas de um cuidado maior na configuração: habilite apenas as assinaturas que forem relevantes e considere criar whitelists para impedir que o sensor acabe causando problemas bloqueando conexões que deveriam acontecer normalmente.

NIDS – Network Intrusion Detection Systems

Como dito anteriormente, sistemas NIDS monitoram toda uma rede atrás de anomalias e ataques que estão em curso.
Para que ele consiga analisar os pacotes, sensores são colocados em pontos estratégicos da rede. Estes sensores monitoram todo o tráfego de entrada e saída atrás de payloads que possam indicar que um ataque está sendo realizado. Quando um ataque é detectado, o software avisa ao administrador e este pode tomar alguma ação logo no início do ataque.
Vale lembrar que você ainda deve analisar os logs sempre, prestando bastante atenção e procurando por anomalias. Qualquer software pode falhar.
Exemplos de NIDS/NIPS disponíveis no mercado são:
IBM Proventia: A IBM comprou a ISS e incorporou toda a linha de NIDS/NIPS ao seu portifólio. Existem vários modelos que atendem diferentes tamanhos de rede e quantidade de tráfego. Todas as opções do portifólio são baseadas em assinatura.
Sourcefire: O líder do projeto Snort tem uma empresa chamada Sourcefire que produz NIDS/NIPS de altíssima qualidade. Estes produtos obviamente se utilizam do core baseado no Snort (opensource) e adicionam valor através de interfaces web proprietárias, hardware de alto desempenho e suporte técnico. Vale a pena dar uma olhada nestas appliances de alta qualidade. Também é baseado em assinatura.
Snort: Se o seu orçamento não permite a você investir em uma solução comercial agora, você pode pegar um computador comum e instalar o Snort nele. Este software gratuito permite que você configure um sensor IDS ou IPS e armazene logs relevantes em bancos de dados como MySQL e PostgreSQL. Tem um bom desempenho e uma comunidade bem ativa produzindo as assinaturas necessárias para detectar ataques novos.
HIDS – Host Intrusion Detection Systems

Enquanto sistemas NIDS monitoram redes inteiras, sistemas HIDS monitoram apenas um único host na rede.
Aqui, ao invés de monitorar apenas pacotes de rede, o software irá também monitorar que processo acessa qual recurso, quais arquivos são alterados, verifica as informações da RAM e logs e garante que as informações destes não foram alterados. Pense nesse sistema como um software que monitora se qualquer usuário – seja ele do sistema ou um usuário normal – tentou quebrar alguma política de segurança que você impôs no sistema. Também é possível detectar ataques como DoS/DDoS e buffer overflows, porém apenas quando estes forem direcionados ao host que está sendo protegido por este sensor.
Ele também pode funcionar com um banco de dados contendo checksums dos arquivos presentes no sistema de arquivos para que ele saiba quando um determinado arquivo foi alterado ou mesmo quais objetos devem ser monitorados. Por isso, como você já deve ter percebido, é necessário bastante cuidado com o banco de dados dele, para garantir que qualquer alteração no sistema seja devidamente notificada conforme a configuração que você fez. É recomendado que este banco de dados com os checksums dos arquivos do sistema tenha cópias de segurança feitas frequentemente e que elas sejam armazenadas em um outro local. Nunca deixe um backup na própria máquina.
Exemplos de HIDS disponíveis no mercado:
IBM Server Protection for Windows/Linux: Este HIDS, desenvolvido já depois da aquisição da ISS, oferece um excelente nível de proteção tanto para sistemas Microsoft Windows quanto para algumas distribuições Linux homologadas. Sistemas Unix não são suportados por este sistema. Para que você possa proteger sistemas Unix (como AIX, HP-UX, etc.) utilizando soluções IBM, você precisa usar a versão mais antiga do software conhecida como Real Secure Server Sensor.
OSSEC: Este HIDS opensource execute análise de logs, verifica a integridade de arquivos do sistema, monitora se há alguma infração às políticas do sistema, detecta infecções de rootkits, alertas em tempo real e resposta ativa (HIPS). Além disso, é compatível com vários sistemas operacionais como Linux, Windows, MacOS X, HP-UX e AIX.

Intrusion Prevention Systems

Como vimos, sistemas IDS detectam o payload malicioso de algum ataque enquanto ele está sendo entregue ao destino (ou quando já foi entregue, dependendo da arquitetura da rede). Além disso, teoricamente ele não toma ação alguma (digo teoricamente, pois você pode fazer um script que se baseie nos alertas gerados pelo IDS). Isto nem sempre garante que seus hosts/rede estão seguros.
Misturando um firewall com um IDS (Intrusion Detection System), surge um IPS: Intrusion Prevention System. O termo foi criado por Andrew Plato, quando ele trabalhava na NetworkICE (que foi comprada pela ISS que por sua vez foi comprada pela IBM em 2006).
O IPS é um sistema mais sofisticado, complexo e pró-ativo. Isso quer dizer que ele pode monitorar todo o tráfego da rede e identificar um ataque. Quando o ataque é identificado, ao invés de apenas “soar o alarme” o IPS toma uma ação: ele bloqueia completamente o ataque e impede que o payload malicioso chegue até o host/serviço, oferecendo uma proteção mais confiável e automatizada. O IPS pode fazer isso com ataques conhecidos ou não, coisa que um IDS (baseado em assinaturas, pelo menos) não consegue fazer ou não faz com tanta eficiência.
Assim como sistemas IDS, IPS’s são divididos em HIPS (Host Intrusion Prevention Systems) e NIPS (Network Intrusion Prevention Systems). O funcionamento no que tange à análise do tráfego e integridade dos arquivos, por exemplo, não muda em nada em relação aos HIDS que discutimos anteriormente. A única diferença é que um HIPS/NIPS vai tomar uma ação. De resto, nada muda. Por isso, não vou discutir separadamente HIPS e NIPS, pois toda a teoria já vista se aplica também a este tipo de dispositivo.

Conclusão

A minha intenção com este post é ajudar você a entender melhor como a tecnologia de detecção de intrusão funciona e como ela pode te ajudar a deixar sua rede mais segura.
Como vimos, o IPS/IDS agrega muito valor na sua estratégia de segurança. Com ele você não apenas detecta possíveis ataques, como também instalações de softwares não autorizados nas estaçõe e hosts que estão scaneando a sua rede sem ter a sua permissão. Isso tudo facilita a sua vida, auditando e armazenando as informações de forma organizada, facilitando a sua vida pois mostra para você em tempo real o que está acontecendo na sua rede e o que você precisa fazer para se proteger.
Note que eu disse “o que VOCÊ precisa fazer”. Isso faz toda a diferença. Não pense que apenas instalar um IDS/IPS na sua rede já vai deixá-la mais segura. Você precisa configurar tudo adequadamente e, mais importante ainda, tomar as ações necessárias para corrigir o problema indicado pelo alarme. Simplesmente ter um console cheio de alertas piscando na sua frente sem tomar ações corretivas vai fazer com que todo o processo de configuração para implantar o IDS na sua rede tenha sido uma grande perda de dinheiro e tempo. Você não está mais seguro só por ter um IDS. Ele é uma ferramenta de apoio, que permite a você saber o que fazer a seguir.
Também é importante que você instale o IDS ideal na posição ideal. Um IPS/IDS posicionado erroneamente na rede pode acabar te dando uma falsa sensação de segurança, pois você não vai ter uma visão melhor do tráfego que importa e vai ficar tomando ação em cima do lixo que foi alertado. Leve todo o tempo que for preciso para tomar a decisão correta quanto ao posicionamento. Como eu disse anteriormente, mudar a posição de um IPS muitas vezes implica em recabeamento, reconfiguração e, em alguns casos, até em ter que interromper o uso da rede até que tudo esteja correto.
Lembre-se também que o IPS/IDS não é o tipo de equipamento que você configura uma vez e depois esquece lá no canto dele. Você precisa mantê-lo atualizado, seja instalando as novas assinaturas para que ele reconheça mais ataques, seja reconfigurando quando há alguma mudança na sua arquitetura de rede ou mesmo quando uma nova aplicação é instalada em seus servidores (por exemplo, agora você passou a usar tanto Apache quanto IIS? Você precisa ter certeza que as assinaturas para detectar ataques contra ambos estão habilitadas).

Espero que este texto tenha te ajudado a entender melhor como funciona um sistema de detecção de intrusão e tirado aquela névoa que muita gente vê quanto está tentando escolher qual a melhor solução para a sua rede. Porém, se restou alguma dúvida é só deixar um comentário para discutirmos melhor e resolvermos essa sua dúvida!

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos