IDS/IPS Suricata



Los Sistemas de Prevención y Detención de Intrusos (IPS/IDS) proporcionan un nivel adicional de seguridad en las redes de datos previniendo vulnerabilidades que los firewall simplemente no pueden. La mayoría de estos sistemas son pagados y costosos, por lo que resultan muy difíciles de implementar en pequeñas y medianas empresas. Suricata es un motor IPS/IDS de código abierto bajo licencia GPLv2 con muy buenas características siendo la más importante su arquitectura multi-hilos. Otras herramientas similares son Snort y Bro.





Descripción y características de Suricata


Suricata es el nombre de un proyecto de software libre para un motor Sistema de Detección y Prevención de Intrusos o de manera abreviada IDS/IPS; fue desarrollado por la comunidad de OISF (Open Infomation Security Foundation).


  • Network Intrusion Detection (IDS - Intrusion Detection System)
  • Network Intrusion Prevention (IPS - Intrusion Prevention System)
  • Network Security Monitoring

Distribuciones
  • SELKS & Amsterdam
  • SecurityOnion
  • pfSense & OPNsense
● Management tools
  • Evebox
  • Scirius
  • Kibana

● Event processing
  • Mobster
  • Barnyard2
  • Logstash

Entre algunas características de Suricata, las más representativas son las siguientes:

  • - Multi-threading
  • - Soporte GPU (Cuda)
  • - Estadísticas de Rendimiento
  • - Detección de Protocolos automáticos
  • - Fast IP Matching
  • - IP Reputation, GeoIP, IP list support
  • - Graphic Cards Acceleration
  • - Soporta Lua Scripting 

● Off line analysis of PCAP files
● Traffic recording using PCAP logger
● Unix socket mode for automated processing
● Automatic Protocol Detection
● JSON event and alert outputs – Logstache

Suricata es una herramienta escalable. Este monitor de seguridad hace uso de las funciones multi-hilo de manera que solo con ejecutarse en una instancia el monitor balanceará su carga entre todos los procesadores disponibles, evitando incluso alguno de ellos si así lo especificamos. Gracias a ello, esta herramienta es capaz de procesar un ancho de banda de hasta 10 gigabits por segundo sin que ello repercuta sobre el rendimiento.

Esta herramienta también es capaz de identificar los principales protocolos de red, siendo capaz de controlar en todo momento todo el tráfico que se genera en el sistema y controlando posibles amenazas de malware.

Suricata también controla los archivos que viajan por la red, siendo capaz de identificar un gran número de formatos diferentes, así como realizar comprobaciones MD5 para comprobar que no ha sido modificado y también es capaz de extraer temporalmente ciertos archivos para identificar posible malware escondido.


Sistemas Operativos soportados

  • Linux
  • FreeBSD
  • OpenBSD
  • macOS / Mac OS X
  • Windows

 

 Ficheros de configuración


Default Files (/etc/suricata)

/etc/suricata/suricata.yaml

● suricata.yaml
● Signatures (aka Rules)
– decoder-events.rules
– dns-events.rules
– files.rules
– http-events.rules
– smtp-events.rules
– stream-events.rules
– tls-events.rules

vars:
HOME_NET: "[192.168.122.0/24]"
EXTERNAL_NET: "!$HOME_NET"
HTTP_PORTS: "80"
SHELLCODE_PORTS: "!80"
SSH_PORTS: 22
 
Hay dos variables importantes:

HOME_NET y EXTERNAL_NET


Reglas IDS
Ficheros Reglas

 /etc/suricata/rules
    • app-layer-events.rules
    • emerging-deleted.rules            
    • emerging-rpc.rules
    • http-events.rules
    • botcc.portgrouped.rules
    • emerging-dns.rules
    • emerging-scada.rules
    • botcc.rules
    • emerging-dos.rules
    • emerging-scan.rules
    • modbus-events.rules
    • emerging-exploit.rules
    • emerging-shellcode.rules
    • rbn-malvertisers.rules
    • ciarmy.rules
    • emerging-ftp.rules
    • emerging-smtp.rules
    • rbn.rules
    • emerging-games.rules
    • emerging-snmp.rules
    • emerging-icmp_info.rules
    • emerging-sql.rules
    • compromised.rules
    • emerging-icmp.rules
    • emerging-telnet.rules
    • smtp-events.rules
    • decoder-events.rules
    • emerging-imap.rules
    • emerging-tftp.rules
    • stream-events.rules
    • dnp3-events.rules
    • emerging-inappropriate.rules
    • emerging-trojan.rules
    • dns-events.rules
    • emerging-info.rules
    • emerging-user_agents.rules
    • drop.rules
    • emerging-malware.rules
    • emerging-voip.rules
    • dshield.rules
    • emerging-misc.rules
    • emerging-web_client.rules
    • tls-events.rules
    • emerging-activex.rules
    • emerging-mobile_malware.rules
    • emerging-web_server.rules
    • tor.rules
    • emerging-attack_response.rules
    • emerging-netbios.rules
    • emerging-web_specific_apps.rules
    • emerging-chat.rules
    • emerging-p2p.rules
    • emerging-worm.rules               
    • emerging-policy.rules                      
    • emerging-current_events.rules
    • emerging-pop3.rules 

     En suricata.yaml la regla por defecto RULE-PATH está creada, seguida de una lista de ficheros de reglas. Suricata no conoce el concepto de reglas de objeto compartido o de preprocesador, a diferencia de Snort,. En lugar de reglas de preprocesador, Suricata tiene varios ficheros de reglas para eventos, como son los decoders, stream engine, http parser, etc.

      Ejemplo Reglas


    ; Rule Grammar
    ::=

    ; Rule options are made up of keyword:value pairs
    ::= ":"
     
    ; Options are made up of multiple individual rule-option expressions, separated by semi-colons
    ::= "(" [ [ ";" ] ] ")"
     
    ;Now we can show that a single rule is made up of a header and a series of options
    ::=

    drop tcp $HOME_NET any -> $EXTERNAL_NET 80 (content:"|00 20 2F a5|"; msg:"example rule";)
    Ejemplo regla bloquear Facebook:

    drop tcp any any -> any any (msg:"facebook is blocked"; content:"facebook.com"; http_header; nocase; classtype:policy-violation; sid:1;)

    Una regla/firma consiste en lo siguiente: acción, cabecera y opciones de regla.

    Ejemplo de una firma:




     Rule Header

    Rule ActionProtocolSource IPSource PortDirectionDestination IPDestination Port
    droptcp$HOME_NETany->$EXTERNAL_NET80


    Rule Header Keywords

    Actions

    NameDescriptionAvailable in SuricataAvailable in Snort
    alert






    ++
    log-+
    pass++
    activate-+
    dynamic-+
    drop++
    reject++
    sdrop-+


    Protocols


    NameAvailable in SuricataAvailable in Snort


    tcp







    ++
    udp++
    icmp++
    ip++
    http+-
    ftp+-
    tls+-
    smb+-
    dns+-

     HTTP Keywords

    • http_method Methods are: GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS, CONNECT and PATCH.
    • http_uri  /http_raw_uri 
    • uricontent / urilen 
    • http_header / http_header_raw 
    • http_cookie 
    • http_user_agent 
    • http_client_body / http_server_body 
    • file_data 
    • http_stat_msg / http_stat_code 
    • pcre  
    • fast_pattern



    Via: blog.elhacker.net
    IDS/IPS Suricata IDS/IPS Suricata Reviewed by Zion3R on 21:37 Rating: 5