Um dia, para proteger a rede local, era suficiente ter um simples firewall e programas antivírus, mas contra os ataques de hackers modernos e a proliferação recente de malware, esse conjunto já não é eficaz o suficiente. O velho e bom firewall analisa apenas os cabeçalhos dos pacotes, permitindo ou bloqueando-os de acordo com um conjunto de regras formais. Ele não sabe nada sobre o conteúdo dos pacotes e, portanto, não consegue reconhecer ações aparentemente legítimas de invasores. Os programas antivírus nem sempre capturam o malware, por isso, ao administrador é dada a tarefa de monitorar atividades anômalas e isolar a tempo os hosts infectados.
Existem muitas ferramentas avançadas que permitem proteger a infraestrutura de TI da empresa. Hoje, vamos falar sobre sistemas de detecção e prevenção de intrusões de código aberto, que podem ser implementados sem a necessidade de comprar equipamentos caros e licenças de software.
Classificação IDS/IPS
O IDS (Sistema de Detecção de Intrusões) é um sistema projetado para registrar ações suspeitas na rede ou em um computador individual. Ele mantém logs de eventos e notifica o responsável pela segurança da informação sobre eles. Em um IDS, podemos destacar os seguintes elementos:
- sensores para monitorar o tráfego da rede, diversos logs, etc.
- um subsistema de análise que identifica sinais de impactos maliciosos nos dados recebidos;
- um repositório para armazenar eventos primários e resultados de análises;
- um console de gerenciamento.
Inicialmente, os IDS eram classificados com base na localização: podiam ser orientados para proteger hosts individuais (baseados em hosts ou Host Intrusion Detection System — HIDS) ou proteger toda a rede corporativa (baseados em rede ou Network Intrusion Detection System — NIDS). Vale mencionar os chamados APIDS (IDS baseados em protocolo de aplicação): eles monitoram um conjunto restrito de protocolos de camada de aplicação para detectar ataques específicos e não realizam uma análise profunda dos pacotes de rede. Esses produtos geralmente se assemelham a proxies e são usados para proteger serviços específicos: servidores web e aplicações web (por exemplo, escritas em PHP), servidores de banco de dados, etc. Um típico representante dessa classe é o mod_security para o servidor web Apache.
Estamos mais interessados nos NIDS universais, que suportam uma ampla gama de protocolos de comunicação e tecnologias de inspeção profunda de pacotes (DPI - Deep Packet Inspection). Eles monitoram todo o tráfego que passa, desde o nível de enlace, e detectam uma ampla gama de ataques de rede, assim como tentativas de acesso não autorizado à informação. Frequentemente, esses sistemas possuem uma arquitetura distribuída e podem interagir com diversos dispositivos de rede ativos. É importante notar que muitos NIDS modernos são híbridos e combinam várias abordagens. Dependendo da configuração e das definições, eles podem atender a diferentes tarefas — por exemplo, proteger um único host ou toda a rede. Além disso, as funções dos IDS para estações de trabalho foram assumidas por pacotes antivírus, que, devido à disseminação de trojans voltados para roubo de informações, se tornaram firewalls multifuncionais, abordando também questões de reconhecimento e bloqueio de tráfego suspeito.
Inicialmente, os IDS podiam apenas detectar ações de malware, operações de scanners de portas ou, por exemplo, violações das políticas de segurança corporativa por usuários. Quando um determinado evento ocorria, eles notificavam o administrador, mas rapidamente ficou claro que apenas reconhecer um ataque não era suficiente — era necessário bloqueá-lo. Assim, os IDS se transformaram em IPS (Intrusion Prevention Systems) — sistemas de prevenção de intrusões, capazes de interagir com firewalls.
Métodos de detecção
Soluções modernas para detecção e prevenção de invasões utilizam diversos métodos para identificar atividades maliciosas, que podem ser categorizadas em três grupos. Isso nos oferece mais uma opção de classificação dos sistemas:
- IDS/IPS baseados em assinaturas identificam padrões no tráfego ou monitoram alterações no estado dos sistemas para detectar ataques de rede ou tentativas de infecção. Eles praticamente não apresentam erros ou falsos positivos, mas não conseguem identificar ameaças desconhecidas;
- IDS de detecção de anomalias não utilizam assinaturas de ataque. Eles reconhecem comportamentos que se desviam do normal em sistemas de informação (incluindo anomalias no tráfego de rede) e podem identificar até mesmo ataques desconhecidos. Esses sistemas costumam gerar muitos falsos positivos e, se usados incorretamente, podem paralisar o funcionamento da rede local;
- IDS baseados em regras operam segundo o princípio: se FATO então AÇÃO. Essencialmente, são sistemas especialistas com bases de conhecimento — um conjunto de fatos e regras de inferência lógica. Essas soluções exigem um esforço considerável para configuração e demandam que o administrador tenha um entendimento detalhado do funcionamento da rede.
História do desenvolvimento de IDS
A era de rápido desenvolvimento da Internet e de redes corporativas começou na década de 1990, porém os especialistas começaram a se preocupar com tecnologias avançadas de segurança de rede um pouco antes. Em 1986, Dorothy Denning e Peter Neumann publicaram o modelo IDES (Intrusion Detection Expert System), que se tornou a base da maioria dos sistemas modernos de detecção de invasões. Ele utilizava um sistema especialista para identificar tipos conhecidos de ataques, além de métodos estatísticos e perfis de usuários/sistemas. O IDES era executado em estações de trabalho Sun, monitorando o tráfego de rede e dados de aplicações. Em 1993, foi lançado o NIDES (Next-generation Intrusion Detection Expert System) — um sistema especialista de detecção de intrusões de nova geração.
Com base nos trabalhos de Denning e Neumann, em 1988, foi criada a sistema especialista MIDAS (sistema de detecção e alerta de intrusões Multics), que utiliza P-BEST e LISP. Na mesma época, foi desenvolvida uma sistema baseada em métodos estatísticos chamada Haystack. Um ano depois, outro detector estatístico de anomalias, o W&S (Wisdom & Sense), foi desenvolvido no Laboratório Nacional de Los Alamos. O desenvolvimento da indústria avançou rapidamente. Por exemplo, em 1990, o sistema TIM (Time-based inductive machine) já implementava a detecção de anomalias usando aprendizado indutivo em padrões sequenciais de usuários (linguagem Common LISP). O NSM (Network Security Monitor) comparava matrizes de acesso para detectar anomalias, enquanto o ISOA (Assistente do Oficial de Segurança da Informação) suportava várias estratégias de detecção: métodos estatísticos, verificação de perfis e um sistema especialista. O sistema ComputerWatch, criado nos laboratórios Bell da AT&T, usava tanto métodos estatísticos quanto regras para verificação, e o primeiro protótipo de IDS distribuída, DIDS (Distributed intrusion detection system), foi desenvolvido por pesquisadores da Universidade da Califórnia em 1991, sendo também um sistema especialista.
Inicialmente, os IDS eram proprietários, mas já em 1998, o Laboratório Nacional Lawrence Berkeley lançou o Bro (renomeado para Zeek em 2018) — um sistema de código aberto que usa uma linguagem de regras própria para análise de dados libpcap. Em novembro daquele ano, surgiu o sniffer de pacotes APE, que utilizava libpcap e, um mês depois, foi renomeado para Snort, que mais tarde se tornou um IDS/IPS completo. Nessa época, começaram a surgir numerosas soluções proprietárias.
Snort e Suricata
Em muitas empresas, há uma preferência por IDS/IPS gratuitos de código aberto. Durante muito tempo, a solução padrão foi o já mencionado Snort, mas agora foi superado pelo sistema Suricata. Vamos analisar seus prós e contras com mais detalhes. Snort combina as vantagens do método de assinatura com a capacidade de detectar anomalias em tempo real. Suricata também permite o uso de outros métodos além do reconhecimento de ataques por assinatura. O sistema foi criado por um grupo de desenvolvedores que se separou do projeto Snort e suporta funções de IPS a partir da versão 1.4, enquanto a capacidade de prevenir invasões no Snort surgiu mais tarde.
A principal diferença entre dois produtos populares reside na capacidade do Suricata de utilizar GPU para processamento em modo IDS, além de possuir um IPS mais avançado. O sistema foi projetado desde o início para ser multithread, enquanto o Snort é um produto de thread única. Devido à sua longa história e ao código herdado, ele não utiliza de forma otimizada plataformas de hardware multiprocessadoras/multinúcleos, enquanto o Suricata em computadores comuns permite processar tráfego de até 10 Gbps. É possível falar longamente sobre as semelhanças e diferenças entre os dois sistemas, mas embora o motor do Suricata funcione mais rápido, isso não é crucial para canais não muito largos.
Opções de implantação
O IPS deve ser instalado de forma que o sistema possa monitorar os segmentos de rede sob sua supervisão. Normalmente, isso é realizado em um computador dedicado, onde uma interface é conectada após os dispositivos de fronteira e "observa" através deles as redes públicas desprotegidas (Internet). A outra interface do IPS conecta-se à entrada do segmento protegido, garantindo que todo o tráfego passe pelo sistema e seja analisado. Em casos mais complexos, pode haver vários segmentos protegidos: por exemplo, em redes corporativas, muitas vezes é designada uma zona desmilitarizada (DMZ) com serviços acessíveis pela Internet.

Esse IPS pode prevenir tentativas de varredura de portas ou invasões por meio da força bruta de senhas, exploração de vulnerabilidades em servidores de e-mail, servidores web ou scripts, além de outros tipos de ataques externos. Caso os computadores da rede local sejam infectados por malware, o IDS impedirá que se conectem a servidores de botnets externos. Para uma proteção mais robusta da rede interna, provavelmente será necessária uma configuração complexa com um sistema distribuído e switches gerenciados, que não são baratos e que conseguem espelhar o tráfego para o interface IDS conectado a uma de suas portas.
Frequentemente, redes corporativas são alvos de ataques distribuídos de negação de serviço (DDoS). Embora sistemas de Detecção de Intrusões (IDS) modernos possam enfrentá-los, a solução de implantação mencionada acima dificilmente ajudará aqui. O sistema detecta atividades maliciosas e bloqueia o tráfego parasitário, mas para isso os pacotes precisam passar pela conexão externa com a internet e chegar à sua interface de rede. Dependendo da intensidade do ataque, o canal de transmissão pode não conseguir lidar com a carga e o objetivo dos invasores será alcançado. Para tais casos, recomendamos implantar um IDS em um servidor virtual com uma conexão de internet consideravelmente mais eficiente. É possível conectar o VPS à rede local via VPN e, em seguida, será necessário configurar a roteação de todo o tráfego externo através dele. Assim, em caso de ataque DDoS, os pacotes não precisarão ser enviados pela conexão com o provedor; eles serão bloqueados no nó externo.

O problema da escolha
Identificar um líder entre os sistemas gratuitos é muito difícil. A escolha de IDS/IPS é determinada pela topologia da rede, pelas funções de proteção necessárias e pelas preferências pessoais do administrador, bem como pela sua disposição em lidar com as configurações. O Snort possui uma história mais longa e está melhor documentado, embora informações sobre o Suricata também sejam facilmente encontradas na internet. De qualquer forma, para dominar o sistema, será necessário fazer certos esforços, que acabarão valendo a pena — IDS/IPS comerciais de hardware e hardware-software são bastante caros e nem sempre se encaixam no orçamento. Não vale a pena lamentar o tempo gasto, pois um bom administrador sempre se aprimora com o apoio do empregador. Nessa situação, todos saem ganhando. No próximo artigo, vamos analisar algumas opções de implantação do Suricata e comparar na prática o sistema mais moderno com o clássico IDS/IPS Snort.
Fonte: habr.com
