Cargue un paquete de firmas personalizado en el motor de NSX IDS/IPS.
Consideraciones al cargar firmas personalizadas:
Al implementar firmas personalizadas para NSX IDS/IPS, asegúrese de que solo incluyan palabras clave compatibles con NSX. Consulte la lista de palabras clave admitidas a continuación.
Compruebe que solo se utilicen puertos y grupos de direcciones compatibles en las firmas:
address-groups: HOME_NET: "any" EXTERNAL_NET: "any" HOME_NETWORK: "[10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fd00::/8]" HTTP_SERVERS: "$HOME_NET" SMTP_SERVERS: "$HOME_NET" SQL_SERVERS: "$HOME_NET" DNS_SERVERS: "$HOME_NET" TELNET_SERVERS: "$HOME_NET" AIM_SERVERS: "$EXTERNAL_NET" DC_SERVERS: "$HOME_NET" DNP3_SERVER: "$HOME_NET" DNP3_CLIENT: "$HOME_NET" MODBUS_CLIENT: "$HOME_NET" MODBUS_SERVER: "$HOME_NET" ENIP_CLIENT: "$HOME_NET" ENIP_SERVER: "$HOME_NET" port-groups: HTTP_PORTS: "any" SHELLCODE_PORTS: "!80" ORACLE_PORTS: 1521 SSH_PORTS: 22 DNP3_PORTS: 20000 MODBUS_PORTS: 502 FILE_DATA_PORTS: "[$HTTP_PORTS,110,143]" FTP_PORTS: 21 VXLAN_PORTS: "4789"
Confirme que el formato del paquete de firmas personalizado que desea cargar es correcto; debe tener una extensión .zip (por ejemplo, reglas_ejemplo.zip). Tenga en cuenta que NSX no realiza un seguimiento de las dependencias de las firmas personalizadas, por lo que deberá asegurarse de que las firmas dependientes se incluyan en el proceso de publicación.
Si publica una firma personalizada válida y, posteriormente, la reemplaza por un nuevo paquete que contiene solo firmas personalizadas no válidas, NSX no le permitirá publicar el nuevo paquete. NSX mostrará el mensaje de error: "La anulación de firmas solo se permite para las firmas VÁLIDAS/ADVERTENCIA". Además, cualquier perfil de IDPS actualizado previamente para usar firmas del paquete anterior dejará de ser válido, ya que el nuevo paquete no tiene esas firmas. Si el nuevo paquete contiene firmas personalizadas que también forman parte del paquete anterior, se considerarán firmas existentes y seguirán siendo firmas válidas para los perfiles existentes.
-
Asegúrese de que todas las firmas personalizadas utilicen las palabras clave admitidas. Estas son las palabras clave admitidas:
sid
Establece el identificador de regla.
priority
Las reglas con mayor prioridad se examinarán primero.
rev
Establece la versión de la regla.
classtype
Información sobre la clasificación de reglas y alertas.
app-layer-protocol
Coincide con el protocolo de capa de aplicaciones detectado.
tcp.ack
Comprueba si hay un número de confirmación de TCP específico.
tcp.seq
Comprueba si hay un número de secuencia de TCP específico.
tcp.window
Comprueba si hay un tamaño de ventana de TCP específico.
ipopts
Comprueba si se estableció una opción de IP específica.
tcp.flags
Detecta qué marcas se establecen en el encabezado TCP.
fragbits
Comprueba si la fragmentación y los bits reservados están establecidos en el encabezado IP.
fragoffset
Coincide con valores decimales específicos del campo de desplazamiento de fragmento de IP.
ttl
Comprueba si hay un valor de TTL de IP específico.
tos
Coincide con los valores decimales específicos del campo ToS del encabezado IP.
itype
Coincide con un tipo de ICMP específico.
icode
Coincide con el valor del identificador de ICMP específico.
icmp_id
Comprueba si hay un identificador de ICMP.
icmp_seq
Comprueba si hay un número de secuencia ICMP.
dsize
Coincide con el tamaño de la carga útil del paquete.
flow
Coincide con la dirección y el estado del flujo.
threshold
Controla la frecuencia de alerta de la regla.
metadata
Se utiliza para el registro.
reference
Dirige a lugares donde se puede encontrar información sobre la regla.
tag
Define etiquetas.
msg
Información sobre la regla y la posible alerta.
content
Coincide con el contenido de la carga útil.
uricontent
Palabra clave heredada para buscar coincidencias en el búfer del URI de la solicitud.
pcre
Coincide con una expresión regular.
depth
Designa cuántos bytes se comprobarán desde el principio de la carga útil.
startswith
El patrón debe estar al inicio de un búfer (igual que 'depth:<pattern len>').
endswith
Asegúrese de que el contenido anterior coincida exactamente al final del búfer.
distance
Indica una relación entre esta palabra clave de contenido y el contenido que la precede.
within
Indica que esta coincidencia de contenido tiene que estar a una cierta distancia de la anterior coincidencia de palabra clave de contenido.
abs_offset
Designa desde qué byte en la secuencia se buscará una coincidencia.
offset
Designa desde qué byte en la carga útil se buscará una coincidencia.
replace
Solo se utiliza en modo IPS.
nocase
Modifica la coincidencia de contenido para que no se distinga entre mayúsculas y minúsculas.
fast_pattern
Fuerza el uso del contenido anterior en el emparejador de varios patrones.
rawbytes
Se incluye para que sea compatible con las firmas que lo utilizan.
byte_test
Extrae <num of bytes> y realiza una operación seleccionada con <operator> en función del valor <test value> en un determinado <offset>.
byte_jump
Permite seleccionar un <num of bytes> de un <offset> y mover el puntero de detección a esa posición.
sameip
Comprueba si la dirección IP de origen es la misma que la dirección IP de destino.
geoip
Coincide con las direcciones IP de origen, de destino o ambas del tráfico de red, y sabe a qué país/región pertenece la dirección IP.
ip_proto
Coincide con el protocolo IP en el encabezado del paquete.
ftpbounce
Detecta ataques de rebote de FTP.
isdataat
Comprueba si aún hay datos en una parte específica de la carga útil.
id
Coincide con un valor de identificador de IP específico.
rpc
Coincide con los números de procedimiento de RPC y la versión de RPC.
flowvar
Establece una variable de flujo.
flowint
Opera en un entero por flujo.
pktvar
Define las variables de paquetes.
noalert
La regla no generará ninguna alerta.
flowbits
Opera en la marca de flujo.
hostbits
Opera en la marca de host.
ipv4-csum
Comprueba el error de suma de comprobación de IPv4.
tcpv4-csum
Comprueba el error de suma de comprobación de TCPv4.
tcpv6-csum
Comprueba el error de suma de comprobación de TCPv6.
udpv4-csum
Comprueba el error de suma de comprobación de UDPv4.
udpv6-csum
Comprueba el error de suma de comprobación de UDPv6.
icmpv4-csum
Comprueba el error de suma de comprobación de ICMPv4.
icmpv6-csum
Comprueba el error de suma de comprobación de ICMPv6.
stream_size
Coincide con la cantidad de bytes de una secuencia.
detection_filter
Alerta en cada coincidencia después de alcanzar un umbral.
dataset
Empareja búfer pegajoso con conjuntos de datos (experimental).
datarep
Opera en conjuntos de datos (experimental).
decode-event
Valores y condiciones que ç se detectan al descodificar paquetes individuales.
gid
Asigna otro valor de ID a diferentes grupos de firmas.
nfq_set_mark
Utiliza NFQUEUE en las reglas de iptables para enviar paquetes a Suricata.
bsize
Coincide con la longitud de un búfer.
tls.version
Coincide con la versión de TLS/SSL.
tls.subject
Coincide con el campo Subject del certificado TLS/SSL.
tls.issuerdn
Coincide con el campo IssuerDN del certificado TLS/SSL.
tls_cert_notbefore
Coincide con el campo notBefore del certificado TLS.
tls_cert_notafter
Coincide con el campo notAfter del certificado TLS.
tls_cert_expired
Coincide con los certificados TLS caducados.
tls_cert_valid
Coincide con los certificados TLS válidos.
tls.fingerprint
Coincide con la huella digital SHA1 del certificado TLS/SSL.
tls_store
Almacena el certificado TLS/SSL en el disco.
http_cookie
Modificador de contenido para buscar coincidencias solo en el búfer de cookie HTTP.
http.cookie
Búfer pegajoso para buscar coincidencias en los búferes de cookie HTTP/Set-Cookie.
http_method
Modificador de contenido para buscar coincidencias solo en el búfer de método HTTP.
http.method
Búfer pegajoso para buscar coincidencias específicamente y solo en el búfer de método HTTP.
http.protocol
Define el búfer pegajoso http_protocol.
http.start
Define el búfer pegajoso http_start.
urilen
Coincide con la longitud del URI HTTP.
http_client_body
Modificador de contenido para buscar coincidencias solo en el cuerpo de la solicitud HTTP.
http.request_body
Búfer pegajoso para buscar coincidencias en el búfer del cuerpo de la solicitud HTTP.
http_server_body
Modificador de contenido para buscar coincidencias en el cuerpo de la respuesta HTTP.
http.response_body
Búfer pegajoso para buscar coincidencias en el búfer del cuerpo de la respuesta HTTP.
http_header
Modificador de contenido para buscar coincidencias solo en el búfer de encabezado HTTP.
http.header
Búfer pegajoso para buscar coincidencias en el búfer de encabezado HTTP normalizado.
http.header_names
Define el búfer pegajoso http_header_names.
http.accept
Define el búfer pegajoso http.accept para el encabezado http accept.
http.accept_lang
Define el búfer pegajoso http.accept_lang para el encabezado http accept language.
http.accept_enc
Define el búfer pegajoso http.accept_enc para el encabezado http accept encoding.
http.connection
Define el búfer pegajoso http.connection para el encabezado http connection.
http.content_len
Define el búfer pegajoso http.content_len para el encabezado http content length.
http.content_type
Define el búfer pegajoso http.content_type para el encabezado http content type.
http.location
Define el búfer pegajoso http.location para el encabezado http location.
http.server
Define el búfer pegajoso http.server para el encabezado http server.
http.referer
Define el búfer pegajoso http.referer para el encabezado http referer.
http_raw_header
Modificador de contenido para buscar coincidencias con el búfer de encabezado HTTP sin formato.
http.header.raw
Búfer pegajoso para buscar coincidencias con el búfer de encabezado HTTP sin formato.
http_uri
Modificador de contenido para buscar coincidencias específicamente y solo en el búfer de URI HTTP.
http.uri
Búfer pegajoso para buscar coincidencias específicamente y solo en el búfer de URI HTTP normalizado.
http.uri.raw
Búfer pegajoso para buscar coincidencias específicamente y solo en el búfer de URI HTTP sin formato.
http_raw_uri
Modificador de contenido para buscar coincidencias en el URI HTTP sin formato.
http_stat_msg
Modificador de contenido para buscar coincidencias en stat-msg-buffer HTTP.
http.stat_msg
Búfer pegajoso para buscar coincidencias en el mensaje de estado de respuesta HTTP.
http_stat_code
Modificador de contenido para buscar coincidencias solo en el búfer http-stat-code.
http.stat_code
Búfer pegajoso para buscar coincidencias solo en el búfer http-stat-code.
http_user_agent
Modificador de contenido para buscar coincidencias solo en el encabezado HTTP User-Agent.
http.user_agent
Búfer pegajoso para buscar coincidencias específicamente y solo en el búfer HTTP User Agent.
http_host
Modificador de contenido para buscar coincidencias en el nombre de host HTTP.
http.host
Búfer pegajoso para buscar coincidencias en el búfer de host HTTP.
http_raw_host
Modificador de contenido para buscar coincidencias en el encabezado de host HTTP o el nombre de host sin formato del URI HTTP.
http.host.raw
Búfer pegajoso para buscar coincidencias en el encabezado de host HTTP o el nombre de host sin formato del URI HTTP.
http.request_line
Búfer pegajoso para buscar coincidencias en la línea de la solicitud HTTP.
http.response_line
Modificador de contenido para buscar coincidencias solo en la línea de la respuesta HTTP.
nfs_procedure
Búfer pegajoso para buscar coincidencias con el procedimiento de NFS.
nfs.version
Búfer pegajoso para buscar coincidencias con la versión de NFS.
ssh.proto
Búfer pegajoso para buscar coincidencias con el protocolo SSH.
ssh.protoversion
Búfer pegajoso para buscar coincidencias con la versión del protocolo SSH.
ssh.software
Búfer pegajoso para buscar coincidencias con el software de SSH.
ssh.softwareversion
Búfer pegajoso para buscar coincidencias con la cadena de software de SSH.
ssl_version
Búfer pegajoso para buscar coincidencias con la versión del registro SSL/TLS.
ssl_state
Búfer pegajoso para buscar coincidencias con el estado de la conexión SSL.
byte_extract
Extrae <num of bytes> en un determinado <offset> y lo guarda en <var_name>.
file.data
Hace que las palabras clave de contenido coincidan en los datos del archivo.
pkt_data
Restablece el puntero de detección al principio de la carga útil del paquete.
app-layer-event
Coincide con los eventos generados por los analizadores de capa de aplicaciones y el motor de detección de protocolos.
dcerpc.iface
Coincide con el valor del UUID de la interfaz en un encabezado DCERPC.
dcerpc.opnum
Coincide con uno o varios números de operación y/o rango de números de operación dentro de la interfaz en un encabezado DCERPC.
dcerpc.stub_data
Coincide con los datos de código auxiliar en un paquete DCERPC determinado. Es un 'búfer pegajoso'.
smb.named_pipe
Búfer pegajoso para buscar coincidencias en la canalización con nombre SMB en la conexión de árbol.
smb.share
Búfer pegajoso para buscar coincidencias en el nombre compartido SMB en la conexión de árbol.
asn1
Es una notación estándar para estructurar y describir datos.
engine-event
Un registro de un evento de detección en el sistema de detección de intrusiones de Suricata.
stream-event
Reglas para la coincidencia en eventos del motor de flujo TCP.
filename
Coincide con el nombre del archivo.
file.name
Búfer pegajoso para buscar coincidencias con el nombre de archivo.
fileext
Coincide con la extensión de un nombre de archivo.
filestore
Almacena archivos en el disco si la regla coincide.
filemagic
Coincide con la información que libmagic devuelve sobre un archivo.
file.magic
Búfer pegajoso para buscar coincidencias con file magic.
filemd5
Coincide el archivo MD5 con la lista de sumas de comprobación MD5.
filesha1
Busca coincidencias entre el archivo SHA-1 y la lista de sumas de comprobación SHA-1.
filesha256
Busca coincidencias entre el archivo SHA-256 y la lista de sumas de comprobación SHA-256.
filesize
Coincide con el tamaño del archivo mientras se está transfiriendo.
l3_proto
Especifica si la firma debe coincidir en IPv4, IPv6 o ambos.
lua
Busca coincidencias usando un script lua.
iprep
Coincide con la información de reputación de IP de un host.
dns.query
Búfer pegajoso para buscar coincidencias con el búfer de consulta de DNS.
dns.opcode
Coincide con la marca de código de operación del encabezado DNS.
tls.sni
Modificador de contenido para buscar coincidencias específicamente y solo en el búfer de SNI de TLS.
tls.certs
Modificador de contenido para buscar coincidencias con el búfer pegajoso del certificado TLS.
tls.cert_issuer
Modificador de contenido para buscar coincidencias específicamente y solo en el búfer del emisor del certificado TLS.
tls.cert_subject
Modificador de contenido para buscar coincidencias específicamente y solo en el búfer del firmante del certificado TLS.
tls.cert_serial
Modificador de contenido para buscar coincidencias con el búfer serie del certificado TLS.
tls.cert_fingerprint
Coincide con el búfer de huella digital del certificado TLS.
ja3.hash
Modificador de contenido para buscar coincidencias con el búfer de hash JA3.
ja3.string
Modificador de contenido para buscar coincidencias con el búfer de cadena JA3.
ja3s.hash
Modificador de contenido para buscar coincidencias con el búfer pegajoso de hash JA3S.
ja3s.string
Modificador de contenido para buscar coincidencias con el búfer pegajoso de cadena JA3S.
modbus
Coincide con varias propiedades de las solicitudes Modbus.
cip_service
Coincide con el servicio CIP.
enip_command
Reglas para detectar el comando EtherNet/IP.
dnp3.data
Configure las siguientes opciones de contenido para buscar coincidencias en el búfer de la aplicación reensamblada.
dnp3_func
Coincide con el código de función de aplicación que se encuentra en la solicitud y las respuestas de DNP3.
dnp3_ind
Coincide con los indicadores internos de DNP3 en el encabezado de la aplicación de respuesta.
dnp3_obj
Coincide con los objetos de datos de la aplicación DNP3.
xbits
Opera en bits.
base64_decode
Descodifica los datos codificados en base64.
base64_data
El contenido coincide con los datos descodificados en base64.
krb5_err_code
Coincide con el código de error de Kerberos 5.
krb5_msg_type
Coincide con el tipo de mensaje de Kerberos 5.
krb5.cname
Búfer pegajoso para buscar coincidencias con el nombre del cliente Kerberos 5.
krb5.sname
Búfer pegajoso para buscar coincidencias en el nombre del servidor Kerberos 5.
sip.method
Búfer pegajoso para buscar coincidencias en el búfer del método SIP.
sip.uri
Búfer pegajoso para buscar coincidencias con el URI de SIP.
sip.protocol
Búfer pegajoso para buscar coincidencias con el protocolo SIP.
sip.stat_code
Búfer pegajoso para buscar coincidencias con el código de estado de SIP.
sip.stat_msg
Búfer pegajoso para buscar coincidencias en el mensaje de estado de SIP.
sip.request_line
Búfer pegajoso para buscar coincidencias en la línea de la solicitud SIP.
sip.response_line
Búfer pegajoso para buscar coincidencias en la línea de respuesta de SIP.
template2
Plantilla.
ipv4.hdr
Búfer pegajoso para buscar coincidencias en el encabezado IPv4.
ipv6.hdr
Búfer pegajoso para buscar coincidencias en el encabezado IPv6.
tcp.hdr
Búfer pegajoso para buscar coincidencias en el encabezado TCP.
udp.hdr
Búfer pegajoso para buscar coincidencias en el encabezado UDP.
tcp.mss
Búfer pegajoso para buscar coincidencias en el campo de opción MSS de TCP.
ftpdata_command
Coincide con el comando FTP que activa un canal de datos FTP.
target
Indica al módulo de salida qué lado es el objetivo del ataque.
snmp.version
Coincide con la versión de SNMP.
snmp.community
Modificador de contenido SNMP para buscar coincidencias en la comunidad SNMP.
snmp.pdu_type
Coincide con el tipo PDU de SNMP.
bypass
Llama a la devolución de llamada de omisión cuando se haya completado la coincidencia de un SIG.
prefilter
Fuerza el uso de una condición como prefiltro.
compress_whitespace
Modifica el búfer para comprimir los caracteres de espacio en blanco consecutivos en uno solo antes de la inspección.
strip_whitespace
Modifica el búfer para quitar espacios en blanco antes de la inspección.
to_md5
Convierte al hash MD5 del búfer.
to_sha1
Convierta al hash SHA1 del búfer.
to_sha256
Convierta al hash SHA256 del búfer.
dotprefix
Modifica el búfer para extraer dotprefix.
nopcap
Evita que el contenido de PCAP se recorte desde los flujos tras las alertas.