Segurança em Redes de Comunicação
2. SISTEMAS DE DETECÇÃO DE INTRUSÃO (IDSs)
2.4. Soluções e exemplos de sistemas de detecção de intrusão comuns
Há muitas soluções de detecção de intrusão disponíveis hoje em dia, algumas pagas e outras de uso livre. Além disso, muitas soluções integradas, já trazem um mecanismo de detecção de intrusão dentro do seu software, contudo, estão limitadas à localização da sua implementação.
Dependendo do tipo de IDS a ser implementado, existem também diferentes soluções que podem ser utilizadas. Aqui, é possível destacar o amplamente conhecido SNORT IDS e Suricata IDS.
Concentrando-se no primeiro, SNORT, é uma solução de fonte aberta que pode ser instalada não só por utilizadores singulares, mas também por empresas e organizações. Este IDS está centrado num conjunto de regras para determinar que tráfego de rede deve ser recolhido e o que precisa de ser feito aos pacotes maliciosos detectados. Funciona com base em assinaturas de vulnerabilidade e ataques bem conhecidos para construir a sua base de dados de regras IDS e identificar possíveis intrusões na rede.
Entre as suas características, é possível destacar a análise e monitorização em tempo real, onde o administrador da rede tem a possibilidade de verificar todos os resultados da monitorização IDS em tempo real, identificando as detecções de intrusão e actuando de acordo com as necessidades. Além disso, inclui também a análise do protocolo para um melhor desempenho da identificação. Analisa protocolos através de um processo de sniffing que captura dados em camadas de protocolo, permitindo aos administradores examinar melhor pacotes potencialmente maliciosos. Além disso, o SNORT reúne regras por protocolo, como IP e TCP, depois por portas, e depois por aqueles com ou sem conteúdo. As regras que têm conteúdo utilizam um combinador multi-padrão que aumenta o desempenho, especialmente quando se trata de protocolos como HTTP (Hypertext Transfer Protocol). As regras que não têm conteúdo são sempre avaliadas, e consequentemente reduzem o desempenho.
SNORT é um IDS capaz de inspeccionar e monitorizar não só o cabeçalho do pacote, mas também a sua carga útil, tornando possível reduzir a taxa de detecções de falsos positivos. É também capaz de fornecer alertas e registos flexíveis de pacotes e análises, fornecendo toda a informação para os administradores da rede analisarem e agirem correctamente. A sua instalação pode ser feita em sistemas Unix, Windows e MacOSx, desde que estes permitam a compilação e instalação da biblioteca lipcap, utilizada como base para a análise de pacotes. SNORT tem também uma arquitectura flexível, permitindo diferentes formas de instalação e adaptando-a às necessidades da rede.
Tal como o anterior, também o Suricata IDS é um motor de detecção de ameaças de rede de código aberto que é livre de utilizar e fornece diferentes capacidades, incluindo a detecção de intrusão e monitorização da segurança da rede, através de uma inspecção profunda de pacotes e correspondência de padrões.
A principal característica distintiva de Suricata, quando comparada com SNORT, é que Suricata inclui uma capacidade de protecção de protocolo dinâmica que é agnóstica de porto. Isto permite ao IDS identificar alguns dos protocolos de camada de aplicação mais comuns, incluindo HTTP, DNS (Domain Name System), TLS (Transport Layer Security), entre outros, quando estas comunicações sobre portas não normalizadas. Aqui, a linguagem de regras utilizada permite ao administrador criar condições de correspondência no protocolo da camada de aplicação, aumentando o desempenho e as detecções do IDS.
Suricata monitoriza o tráfego da rede utilizando uma extensa base de dados de regras, como o SNORT, e baseia as suas regras também na conhecida vulnerabilidade e assinaturas de ataques. Embora Suricata tenha sido construída numa arquitectura diferente e seja muito recente do que o SNORT, ambas as soluções podem utilizar as assinaturas de ameaça. Uma diferença chave é que Suricata apresenta uma arquitectura multi-tarefa, permitindo a utilização de múltiplos núcleos de CPU ao mesmo tempo, e, consequentemente, resultando num desempenho superior, quando comparado com outras soluções. Utilizando múltiplas CPUs, torna possível a Suricata processar múltiplos eventos ao mesmo tempo, sem ter de interromper outros pedidos ou comprometer outras análises, carregando o equilíbrio através das CPUs e melhorando o desempenho na análise do tráfego da rede.
Esta solução IDS pode ser utilizada em três funções diferentes, onde a mais simples é configurá-la como um IDS baseado em anfitrião, monitorizando o tráfego de um computador individual. Também pode ser implementada como um IDS passivo, monitorizando todo o tráfego que atravessa uma rede e notificando o administrador da rede quando se depara com algo malicioso. O terceiro e último papel é quando Suricata é implementado como um IDS e IPS (Intrusion Protection System) activo em linha, monitorizando o tráfego de entrada e saída, tornando possível bloquear o tráfego malicioso mesmo antes de entrar na rede, alertando ao mesmo tempo a administração da rede sobre esta acção.
Tais como SNORT, Suricata está também disponível para sistemas UNIX, Windows e MacOSx.
Como foi mencionado anteriormente, nem todas as soluções IDS são adequadas para cada sistema ou rede, onde o administrador da rede deve seleccionar a melhor solução para se adequar às suas necessidades de rede e características singulares.
Os exemplos anteriores são na sua maioria adequados para serem implementados numa rede informática normal, sendo também as soluções mais comuns utilizadas actualmente pelas organizações e empresas. No entanto, quando o foco é dado à detecção de intrusão em infra-estruturas críticas que colocam a sua função em protocolos de rede específicos e onde uma simples interrupção de comunicação pode causar resultados drásticos, os IDSs devem ser cuidadosamente escolhidos e implementados.
Alguns estudiosos afirmam que uma solução dedicada é uma obrigação, e que o Estado, juntamente com os IDSs de aprendizagem de máquinas, pode ser o futuro para a protecção de infra-estruturas críticas. Um bom exemplo é a solução desenvolvida por (Al-Malawi et al., 2016) que se concentra numa técnica de agrupamento orientada por dados para extrair regras baseadas no estado e detectar ataques em redes Modbus/TCP, sem conhecimento prévio das especificações dos sistemas. Embora, é importante salientar que sistemas sensíveis e críticos, tais como SCADA em WDS (sistemas de distribuição de água), têm sempre uma documentação totalmente detalhada.