Chargez un bundle de signatures personnalisées vers le moteur NSX IDS/IPS.
Éléments à prendre en compte lors du chargement de signatures personnalisées :
Lors du déploiement de signatures personnalisées pour NSX IDS/IPS, assurez-vous qu'elles incluent uniquement des mots clés pris en charge compatibles avec NSX. Reportez-vous à la liste des mots clés pris en charge ci-dessous.
Vérifiez que seuls les groupes d'adresses et les ports pris en charge sont utilisés dans vos signatures :
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"
Confirmez que le format du bundle de signatures personnalisées que vous prévoyez de charger est correct ; il doit avoir une extension .zip (par exemple, sample_rules.zip). Notez que NSX ne suit pas les dépendances pour les signatures personnalisées. Veillez donc à ce que toutes les signatures dépendantes soient incluses dans le processus de publication.
Si vous publiez une signature personnalisée valide et que vous la remplacez ensuite par un nouveau bundle contenant uniquement des signatures personnalisées non valides, NSX ne vous permet pas de publier le nouveau bundle. NSX affiche le message d'erreur suivant : « La signature remplacée est uniquement autorisée pour la signature VALIDE/AVERTISSEMENT. » De plus, tous les profils IDPS précédemment mis à jour pour utiliser les signatures de l'ancien bundle deviennent non valides dans la mesure où le nouveau bundle ne dispose pas de ces signatures. Si le nouveau bundle contient des signatures personnalisées qui font également partie de l'ancien bundle, elles sont considérées comme des signatures existantes et restent valides pour les profils existants.
-
Assurez-vous que toutes les signatures personnalisées utilisent les mots clés pris en charge. Voici la liste des mots clés pris en charge :
sid
Définir l'ID de la règle.
priority
Les règles ayant une priorité plus élevée sont examinées en premier.
rev
Définir la version de la règle.
classtype
Informations sur la classification des règles et des alertes.
app-layer-protocol
Rechercher une correspondance sur le protocole de couche d'application détecté.
tcp.ack
Rechercher un numéro d'accusé de réception TCP spécifique.
tcp.seq
Rechercher un numéro de séquence TCP spécifique.
tcp.window
Rechercher une taille de fenêtre TCP spécifique.
ipopts
Vérifier si une option IP spécifique est définie.
tcp.flags
Détecter les indicateurs définis dans l'en-tête TCP.
fragbits
Vérifier si la fragmentation et les bits réservés sont définis dans l'en-tête IP.
fragoffset
Rechercher une correspondance sur des valeurs décimales spécifiques du champ de décalage de fragment IP.
ttl
Rechercher une valeur de durée de vie IP spécifique.
tos
Rechercher une correspondance sur des valeurs décimales spécifiques du champ TOS d'en-tête IP.
itype
Rechercher une correspondance sur un type ICMP spécifique.
icode
Rechercher une correspondance sur une valeur d'ID ICMP spécifique.
icmp_id
Rechercher un ID ICMP.
icmp_seq
Rechercher un numéro de séquence ICMP.
dsize
Rechercher une correspondance sur la taille de la charge utile du paquet.
flow
Rechercher une correspondance sur la direction et l'état du flux.
threshold
Contrôler la fréquence d'alerte de la règle.
metadata
Utilisé pour la journalisation.
reference
Diriger vers des emplacements contenant des informations sur la règle.
tag
Définir des balises.
msg
Informations sur la règle et l'alerte possible.
content
Rechercher une correspondance sur le contenu de la charge utile.
uricontent
Mot clé hérité à faire correspondre dans la mémoire tampon de l'URI de la demande.
pcre
Rechercher une correspondance sur l'expression régulière.
depth
Désigner le nombre d'octets à vérifier à partir du début de la charge utile.
startswith
Le modèle doit être au début d'un tampon (identique à « depth:<pattern len> »).
endswith
Vérifier que le contenu précédent correspond exactement à la fin du tampon.
distance
Indique une relation entre ce mot clé de contenu et le contenu qui le précède.
within
Indiquer que cette correspondance de contenu doit se trouver à une certaine distance de la correspondance de mot clé de contenu précédente.
abs_offset
Designer l'octet à partir duquel rechercher une correspondance dans le flux.
offset
Designer l'octet à partir duquel rechercher une correspondance dans la charge utile.
replace
À utiliser uniquement en mode IPS.
nocase
Modifier la correspondance du contenu pour qu'elle ne soit pas sensible à la casse.
fast_pattern
Forcer l'utilisation du contenu précédent dans la recherche de correspondance multimodèle.
rawbytes
Inclus pour être compatible avec les signatures qui l'utilisent.
byte_test
Extraire le nombre d'octets (<num of bytes>) et effectuer une opération sélectionnée avec un opérateur (<operator>) sur la valeur dans la valeur de test (<test value>) sur un décalage (<offset>) particulier.
byte_jump
Sélectionner un nombre d'octets (<num of bytes>) à partir d'un décalage (<offset>) et déplacer le pointeur de détection vers cette position.
sameip
Vérifier si l'adresse IP de la source est identique à celle de la destination.
geoip
Rechercher une correspondance sur les adresses IP source, de destination ou source et de destination du trafic réseau, et savoir à quel pays/région l'adresse IP appartient.
ip_proto
Rechercher une correspondance sur le protocole IP dans l'en-tête de paquet.
ftpbounce
Détecter les attaques de rebond FTP.
isdataat
Vérifier s'il reste des données dans une partie spécifique de la charge utile.
id
Rechercher une correspondance sur une valeur d'ID d'adresse IP spécifique.
rpc
Rechercher une correspondance sur les numéros de procédure RPC et la version RPC.
flowvar
Définir une variable de flux.
flowint
Utiliser un entier par flux.
pktvar
Définir des variables de paquet.
noalert
Aucune alerte ne sera générée par la règle.
flowbits
Utiliser un indicateur de flux.
hostbits
Utiliser un indicateur d'hôte.
ipv4-csum
Vérifier l'erreur de total de contrôle IPv4.
tcpv4-csum
Vérifier l'erreur de total de contrôle TCPv4.
tcpv6-csum
Vérifier l'erreur de total de contrôle TCPv6.
udpv4-csum
Vérifier l'erreur de total de contrôle UDPv4.
udpv6-csum
Vérifier l'erreur de total de contrôle UDPv6.
icmpv4-csum
Vérifier l'erreur de total de contrôle ICMPv4.
icmpv6-csum
Vérifier l'erreur de total de contrôle ICMPv6.
stream_size
Rechercher une correspondance sur la quantité d'octets d'un flux.
detection_filter
Générer une alerte pour chaque correspondance une fois un seuil atteint.
dataset
Faire correspondre le tampon rémanent aux jeux de données (expérimental).
datarep
Utiliser des jeux de données (expérimental).
decode-event
Valeurs et conditions détectées lors du décodage de paquets individuels.
gid
Donner une autre valeur d'ID à différents groupes de signatures.
nfq_set_mark
Utiliser NFQUEUE dans les règles iptables pour envoyer des paquets à Suricata.
bsize
Rechercher une correspondance sur la longueur d'un tampon.
tls.version
Rechercher une correspondance sur la version de TLS/SSL.
tls.subject
Rechercher une correspondance avec le champ Subject du certificat TLS/SSL.
tls.issuerdn
Rechercher une correspondance avec le champ IssuerDN du certificat TLS/SSL.
tls_cert_notbefore
Rechercher une correspondance avec le champ notBefore du certificat TLS.
tls_cert_notafter
Rechercher une correspondance avec le champ notAfter du certificat TLS.
tls_cert_expired
Rechercher une correspondance avec les certificats TLS ayant expiré.
tls_cert_valid
Rechercher une correspondance avec les certificats TLS valides.
tls.fingerprint
Rechercher une correspondance avec l'empreinte digitale SHA1 du certificat TLS/SSL.
tls_store
Stocker le certificat TLS/SSL sur le disque.
http_cookie
Modificateur de contenu pour rechercher une correspondance uniquement sur le tampon de cookie HTTP.
http.cookie
Tampon rémanent pour rechercher une correspondance sur les tampons Cookie/Set-Cookie HTTP.
http_method
Modificateur de contenu pour rechercher une correspondance uniquement sur le tampon de méthode HTTP.
http.method
Tampon rémanent pour rechercher une correspondance spécifiquement et uniquement sur le tampon de méthode HTTP.
http.protocol
Définit le tampon rémanent http_protocol.
http.start
Définit le tampon rémanent http_start.
urilen
Rechercher une correspondance sur la longueur de l'URI HTTP.
http_client_body
Modificateur de contenu pour rechercher une correspondance uniquement sur le corps de demande HTTP.
http.request_body
Tampon rémanent pour rechercher une correspondance avec le tampon du corps de demande HTTP.
http_server_body
Modificateur de contenu pour rechercher une correspondance sur le corps de réponse HTTP.
http.response_body
Tampon rémanent pour rechercher une correspondance avec le tampon du corps de réponse HTTP.
http_header
Modificateur de contenu pour rechercher une correspondance uniquement sur le tampon d'en-tête HTTP.
http.header
Tampon rémanent pour rechercher une correspondance sur le tampon d'en-tête HTTP normalisé.
http.header_names
Définit le tampon rémanent http_header_names.
http.accept
Définit le tampon rémanent http.accept pour l'en-tête HTTP accept.
http.accept_lang
Définit le tampon rémanent http.accept_lang pour l'en-tête HTTP accept-language.
http.accept_enc
Définit le tampon rémanent http.accept_enc pour l'en-tête HTTP accept-encoding.
http.connection
Définit le tampon rémanent http.connection pour l'en-tête HTTP connection.
http.content_len
Définit le tampon rémanent http.content_len pour l'en-tête HTTP content-length.
http.content_type
Définit le tampon rémanent http.content_type pour l'en-tête HTTP content-type.
http.location
Définit le tampon rémanent http.location pour l'en-tête HTTP location.
http.server
Définit le tampon rémanent http.server pour l'en-tête HTTP server.
http.referer
Définit le tampon rémanent http.referer pour l'en-tête HTTP referer.
http_raw_header
Modificateur de contenu pour rechercher une correspondance avec le tampon d'en-tête HTTP brut.
http.header.raw
Tampon rémanent pour rechercher une correspondance avec le tampon d'en-tête HTTP brut.
http_uri
Modificateur de contenu pour rechercher une correspondance spécifiquement et uniquement sur le tampon d'URI HTTP.
http.uri
Tampon rémanent pour rechercher une correspondance spécifiquement et uniquement sur le tampon d'URI HTTP normalisé.
http.uri.raw
Tampon rémanent pour rechercher une correspondance spécifiquement et uniquement sur le tampon d'URI HTTP brut.
http_raw_uri
Modificateur de contenu pour rechercher une correspondance sur l'URI HTTP brut.
http_stat_msg
Modificateur de contenu pour rechercher une correspondance sur le tampon de message d'état HTTP.
http.stat_msg
Tampon rémanent pour rechercher une correspondance sur le message d'état de réponse HTTP.
http_stat_code
Modificateur de contenu pour rechercher une correspondance uniquement sur le tampon de code d'état HTTP.
http.stat_code
Tampon rémanent pour rechercher une correspondance uniquement sur le tampon de code d'état HTTP.
http_user_agent
Modificateur de contenu pour rechercher une correspondance uniquement sur l'en-tête d'agent utilisateur HTTP.
http.user_agent
Tampon rémanent pour rechercher une correspondance spécifiquement et uniquement sur le tampon d'agent utilisateur HTTP.
http_host
Modificateur de contenu pour rechercher une correspondance sur le nom d'hôte HTTP.
http.host
Tampon rémanent pour rechercher une correspondance sur le tampon d'hôte HTTP.
http_raw_host
Modificateur de contenu pour rechercher une correspondance sur l'en-tête d'hôte HTTP ou le nom d'hôte brut à partir de l'URI HTTP.
http.host.raw
Tampon rémanent pour rechercher une correspondance sur l'en-tête d'hôte HTTP ou le nom d'hôte brut à partir de l'URI HTTP.
http.request_line
Tampon rémanent pour rechercher une correspondance sur la ligne de demande HTTP.
http.response_line
Modificateur de contenu pour rechercher une correspondance uniquement sur la ligne de réponse HTTP.
nfs_procedure
Tampon rémanent pour rechercher une correspondance avec la procédure NFS.
nfs.version
Tampon rémanent pour rechercher une correspondance avec la version de NFS.
ssh.proto
Tampon rémanent pour rechercher une correspondance avec le protocole SSH.
ssh.protoversion
Tampon rémanent pour rechercher une correspondance avec la version du protocole SSH.
ssh.software
Tampon rémanent pour rechercher une correspondance avec le logiciel SSH.
ssh.softwareversion
Tampon rémanent pour rechercher une correspondance avec la chaîne du logiciel SSH.
ssl_version
Tampon rémanent pour rechercher une correspondance avec la version de l'enregistrement SSL/TLS.
ssl_state
Tampon rémanent pour rechercher une correspondance avec l'état de la connexion SSL.
byte_extract
Extraire le nombre d'octets (<num of bytes>) à un décalage (<offset>) particulier et le stocker dans une variable (<var_name>).
file.data
Faire correspondre les mots clés du contenu aux données du fichier.
pkt_data
Réinitialiser le pointeur de détection au début de la charge utile du paquet.
app-layer-event
Rechercher une correspondance sur les événements générés par les analyseurs de couche d'application et le moteur de détection de protocole.
dcerpc.iface
Rechercher une correspondance sur la valeur de l'UUID d'interface dans un en-tête DCERPC.
dcerpc.opnum
Rechercher une correspondance sur un ou plusieurs numéros d'opération et/ou une plage de numéros d'opération dans l'interface d'un en-tête DCERPC.
dcerpc.stub_data
Rechercher une correspondance sur les données de stub dans un paquet DCERPC donné. Il s'agit d'un « tampon rémanent ».
smb.named_pipe
Tampon rémanent pour rechercher une correspondance sur le canal nommé SMB dans la connexion d'arborescence.
smb.share
Tampon rémanent pour rechercher une correspondance sur le nom de partage SMB dans l'arborescence de connexion.
asn1
Notation standard pour structurer et décrire les données.
engine-event
Enregistrement d'un événement de détection dans le système de détection des intrusions Suricata.
stream-event
Règles de mise en correspondance sur les événements du moteur de flux TCP.
filename
Rechercher une correspondance sur le nom de fichier.
file.name
Tampon rémanent pour rechercher une correspondance sur le nom de fichier.
fileext
Rechercher une correspondance sur l'extension d'un nom de fichier.
filestore
Stocke les fichiers sur le disque si la règle correspond.
filemagic
Rechercher une correspondance sur les informations renvoyées par libmagic sur un fichier.
file.magic
Tampon rémanent pour rechercher une correspondance sur la magie du fichier.
filemd5
Faire correspondre le MD5 d'un fichier à la liste des totaux de contrôle MD5.
filesha1
Faire correspondre le SHA-1 d'un fichier à la liste des totaux de contrôle SHA-1.
filesha256
Faire correspondre le SHA-256 d'un fichier à la liste des totaux de contrôle SHA-256.
filesize
Rechercher une correspondance sur la taille du fichier à mesure qu'il est transféré.
l3_proto
Spécifier si la signature doit correspondre sur IPv4, IPv6 ou les deux.
lua
Rechercher une correspondance à l'aide d'un script lua.
iprep
Rechercher une correspondance sur les informations de réputation IP pour un hôte.
dns.query
Tampon rémanent pour rechercher une correspondance avec le tampon de requête DNS.
dns.opcode
Rechercher une correspondance avec l'indicateur opcode d'en-tête DNS.
tls.sni
Modificateur de contenu pour faire correspondre spécifiquement et uniquement sur la mémoire tampon TLS SNI.
tls.certs
Modificateur de contenu pour rechercher une correspondance avec le tampon rémanent du certificat TLS.
tls.cert_issuer
Modificateur de contenu pour rechercher une correspondance spécifiquement et uniquement sur le tampon de l'émetteur de certificat TLS.
tls.cert_subject
Modificateur de contenu pour rechercher une correspondance spécifiquement et uniquement sur le tampon d'objet du certificat TLS.
tls.cert_serial
Modificateur de contenu pour rechercher une correspondance avec le tampon série du certificat TLS.
tls.cert_fingerprint
Rechercher une correspondance sur le tampon d'empreinte digitale du certificat TLS.
ja3.hash
Modificateur de contenu pour rechercher une correspondance avec le tampon de hachage JA3.
ja3.string
Modificateur de contenu pour rechercher une correspondance avec le tampon de chaîne JA3.
ja3s.hash
Modificateur de contenu pour rechercher une correspondance avec le tampon rémanent de hachage JA3S.
ja3s.string
Modificateur de contenu pour rechercher une correspondance avec le tampon rémanent de chaîne JA3S.
modbus
Rechercher une correspondance sur diverses propriétés de demandes Modbus.
cip_service
Rechercher une correspondance sur le service CIP.
enip_command
Règles de détection de commande Ethernet/IP.
dnp3.data
Faire correspondre les options de contenu suivantes sur le tampon d'application réassemblé.
dnp3_func
Rechercher une correspondance sur le code de fonction d'application trouvé dans la demande et les réponses DNP3.
dnp3_ind
Rechercher une correspondance sur les indicateurs internes DNP3 dans l'en-tête d'application de réponse.
dnp3_obj
Rechercher une correspondance sur les objets de données d'application DNP3.
xbits
Utiliser des bits.
base64_decode
Décode les données codées en base64.
base64_data
Correspondance entre le contenu et les données décodées en base64.
krb5_err_code
Rechercher une correspondance avec le code d'erreur Kerberos 5.
krb5_msg_type
Rechercher une correspondance avec le type de message Kerberos 5.
krb5.cname
Tampon rémanent pour rechercher une correspondance sur le nom du client Kerberos 5.
krb5.sname
Tampon rémanent pour rechercher une correspondance sur le nom du serveur Kerberos 5.
sip.method
Tampon rémanent pour rechercher une correspondance sur le tampon de méthode SIP.
sip.uri
Tampon rémanent pour rechercher une correspondance sur l'URI SIP.
sip.protocol
Tampon rémanent pour rechercher une correspondance sur le protocole SIP.
sip.stat_code
Tampon rémanent pour rechercher une correspondance sur le code d'état SIP.
sip.stat_msg
Tampon rémanent pour rechercher une correspondance sur le message d'état SIP.
sip.request_line
Tampon rémanent pour rechercher une correspondance sur la ligne de demande SIP.
sip.response_line
Tampon rémanent pour rechercher une correspondance sur la ligne de réponse SIP.
template2
Modèle.
ipv4.hdr
Tampon rémanent pour rechercher une correspondance sur l'en-tête IPV4.
ipv6.hdr
Tampon rémanent pour rechercher une correspondance sur l'en-tête IPV6.
tcp.hdr
Tampon rémanent pour rechercher une correspondance sur l'en-tête TCP.
udp.hdr
Tampon rémanent pour rechercher une correspondance sur l'en-tête UDP.
tcp.mss
Tampon rémanent pour rechercher une correspondance sur le champ d'option MSS TCP.
ftpdata_command
Rechercher une correspondance avec la commande FTP déclenchant un canal de données FTP.
target
Indiquer au module de sortie le côté ciblé par l'attaque.
snmp.version
Rechercher une correspondance avec la version SNMP.
snmp.community
Modificateur de contenu SNMP pour rechercher une correspondance sur la communauté SNMP.
snmp.pdu_type
Rechercher une correspondance avec le type PDU SNMP.
bypass
Appeler le rappel de contournement lorsque la correspondance d'un sig est terminée.
prefilter
Forcer l'utilisation d'une condition comme premier filtre.
compress_whitespace
Modifier le tampon pour compresser les espaces blancs consécutifs en un seul avant l'inspection.
strip_whitespace
Modifier le tampon pour supprimer les espaces blancs avant l'inspection.
to_md5
Convertir en hachage md5 du tampon.
to_sha1
Convertir en hachage sha1 du tampon.
to_sha256
Convertir en hachage sha256 du tampon.
dotprefix
Modifier le tampon pour extraire le dotprefix.
nopcap
Éviter l'extraction de contenu pcap des flux en cas d'alerte.