Organização OISF (Open Information Security Foundation) lançou um sistema de detecção e prevenção de intrusões na rede , que fornece ferramentas para inspecionar diferentes tipos de tráfego. Nas configurações do Suricata, é permitido o uso de , desenvolvidos pelo projeto Snort, assim como conjuntos de regras e . Os códigos-fonte do projeto sob a licença GPLv2.
Principais mudanças:
- Novos módulos de análise e registro foram apresentados para os protocolos
RDP, SNMP e SIP, escritos na linguagem Rust. O módulo para análise de FTP agora inclui a capacidade de registro através do subsistema EVE, que fornece a saída de eventos no formato JSON; - Além do suporte ao método de identificação de clientes TLS JA3, introduzido na edição anterior, agora foi adicionado suporte ao método , , que determina qual software é utilizado para estabelecer a conexão com base nas características do handshake e nos parâmetros fornecidos (por exemplo, permite identificar o uso do Tor e outros aplicativos típicos). JA3 permite identificar clientes, enquanto JA3S identifica servidores. Os resultados da identificação podem ser utilizados na linguagem de regras e nos logs;
- Uma nova funcionalidade experimental foi adicionada para correspondência com amostras de grandes conjuntos de dados, implementada através de novas operações . Por exemplo, essa funcionalidade é aplicável para buscar padrões em grandes listas negras que contêm milhões de registros;
- No modo de inspeção HTTP, é garantida cobertura completa de todas as situações descritas no conjunto de testes (por exemplo, abrange métodos usados para ocultar atividades maliciosas no tráfego);
- As ferramentas de desenvolvimento de módulos na linguagem Rust foram movidas de opções para recursos padrão obrigatórios. No futuro, está planejada a expansão do uso de Rust na base de código do projeto e a substituição gradual dos módulos por equivalentes desenvolvidos em Rust;
- O mecanismo de identificação de protocolos foi aprimorado para aumentar a precisão e o processamento de fluxos de tráfego assíncronos;
- No log EVE, foi adicionada a compatibilidade com um novo tipo de registros «anomaly», nos quais eventos atípicos identificados durante a decodificação de pacotes são salvos. O EVE também ampliou a reflexão das informações sobre VLAN e interfaces de captura de tráfego. Uma opção foi adicionada para salvar todos os cabeçalhos HTTP nos registros http do log EVE;
- Nos manipuladores baseados em eBPF, foi garantido suporte a mecanismos de aceleração de hardware para captura de pacotes. A aceleração de hardware está atualmente limitada a adaptadores de rede Netronome, mas em breve estará disponível para outros equipamentos;
- O código foi reescrito para capturar tráfego utilizando o framework Netmap. Adicionada a possibilidade de usar os recursos avançados do Netmap, como o switch virtual. ;
- suporte para o novo esquema de definição de palavras-chave para "Sticky Buffers". O novo esquema está definido no formato "protocolo.buffer", por exemplo, para inspecionar URI, a palavra-chave será "http.uri" em vez de "http_uri";
- Todo o código Python utilizado foi verificado quanto à compatibilidade com
Python 3; - O suporte à arquitetura Tilera, ao log de texto dns.log e ao antigo log files-json.log foi encerrado.
Características do Suricata:
- Uso de um formato unificado para a saída dos resultados de verificação , também utilizado pelo projeto Snort, permitindo o uso de ferramentas padrão para análise, como . Possibilidade de integração com produtos BASE, Snorby, Sguil e SQueRT. Suporte para saída no formato PCAP;
- Suporte para a detecção automática de protocolos (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB, etc.), permitindo operar nas regras apenas pelo tipo de protocolo, sem vinculação ao número da porta (por exemplo, bloquear tráfego HTTP em uma porta não padrão). Presença de decodificadores para os protocolos HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP e SSH;
- Sistema poderoso de análise de tráfego HTTP, utilizando uma biblioteca especial HTP para o desmembramento e normalização do tráfego HTTP, criada pelo autor do projeto Mod_Security. Módulo disponível para manter um log detalhado das transmissões HTTP, que é salvo em formato padrão;
Apache. Suporte para extração e verificação de arquivos transferidos pelo protocolo HTTP. Suporte para análise de conteúdo compactado. Possibilidade de identificação por URI, Cookie, cabeçalhos, user-agent, corpo da solicitação/resposta; - Suporte a várias interfaces para captura de tráfego, incluindo NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING. Possibilidade de análise de arquivos já salvos no formato PCAP;
- Alta performance, capacidade de processar em hardware comum fluxos de até 10 gigabits/segundo.
- Mecanismo de correspondência de máscara de alto desempenho com grandes conjuntos de endereços IP. Suporte para a extração de conteúdo por máscara e expressões regulares. Extração de arquivos do tráfego, incluindo identificação por nome, tipo ou soma de verificação MD5.
- Possibilidade de utilizar variáveis nas regras: é possível salvar informações do fluxo e usá-las posteriormente em outras regras;
- Uso do formato YAML em arquivos de configuração, que permite manter a clareza enquanto facilita o processamento por máquinas;
- Suporte completo para IPv6;
- Engine incorporado para desfragmentação automática e reorganização de pacotes, garantindo o processamento correto dos fluxos, independentemente da ordem de chegada dos pacotes;
- Suporte a protocolos detunelamento: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
- Suporte ao decodificação de pacotes: IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, PPPoE, Raw, SLL, VLAN;
- Modo de log de chaves e certificados envolvidos nas conexões TLS/SSL;
- Possibilidade de escrever scripts em Lua para proporcionar uma análise avançada e implementar funcionalidades adicionais necessárias para determinar tipos de tráfego para os quais as regras padrão não são suficientes.
Fonte: opennet.ru
