Caricare un bundle di firme personalizzate nel motore IDS/IPS di NSX.
Considerazioni sul caricamento delle firme personalizzate:
Quando si distribuiscono firme personalizzate per NSX IDS/IPS, assicurarsi che includano solo parole chiave supportate compatibili con NSX. Fare riferimento all'elenco delle parole chiave supportate di seguito.
Verificare che nelle firme vengano utilizzati solo gruppi di indirizzi e porte supportati:
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"
Verificare che il formato del bundle delle firme personalizzate che si intende caricare sia corretto. Deve avere l'estensione .zip (ad esempio, sample_rules.zip). Si tenga presente che NSX non monitora le dipendenze per le firme personalizzate. Assicurarsi quindi che tutte le firme dipendenti siano incluse nel processo di pubblicazione.
Se si pubblica una firma personalizzata valida e successivamente la si sostituisce con un nuovo bundle che contiene solo firme personalizzate non valide, NSX non consente di pubblicare il nuovo bundle. In NSX viene visualizzato il messaggio di errore: "La firma sostituita è consentita solo per la firma con stato VALIDA o ATTENZIONE". Inoltre, tutti i profili IDPS aggiornati in precedenza per utilizzare le firme del bundle precedente non saranno più validi perché il nuovo bundle non dispone di tali estensioni. Se il nuovo bundle contiene firme personalizzate che fanno parte anche del bundle precedente, verranno visualizzate come firme esistenti e rimarranno firme valide per i profili esistenti.
-
Assicurarsi che tutte le firme personalizzate utilizzino le parole chiave supportate. Di seguito è disponibile l'elenco delle parole chiave supportate:
sid
Imposta l'ID regola.
priority
Le regole con priorità più alta verranno esaminate per prime.
rev
Imposta la versione della regola.
classtype
Informazioni sulla classificazione delle regole e degli avvisi.
app-layer-protocol
Stabilisce la corrispondenza in base al protocollo app-layer rilevato.
tcp.ack
Verifica la presenza di un numero di conferma TCP specifico.
tcp.seq
Verifica la presenza di un numero di sequenza TCP specifico.
tcp.window
Verifica la presenza di dimensioni specifiche della finestra TCP.
ipopts
Controlla se è impostata un'opzione IP specifica.
tcp.flags
Rileva quali flag sono impostati nell'intestazione TCP.
fragbits
Verifica se i bit di frammentazione e riservati sono impostati nell'intestazione IP.
fragoffset
Stabilisce la corrispondenza in base a valori decimali specifici del campo di offset del frammento IP.
ttl
Verifica la presenza di un valore Time-To-Live dell'IP specifico.
tos
Stabilisce la corrispondenza in base a valori decimali specifici del campo TOS dell'intestazione IP.
itype
Stabilisce la corrispondenza in base a un tipo di ICMP specifico.
icode
Stabilisce la corrispondenza in base a un valore di ID ICMP specifico.
icmp_id
Verifica la presenza di un ID ICMP.
icmp_seq
Verifica la presenza di un numero di sequenza ICMP.
dsize
Stabilisce la corrispondenza in base alle dimensioni del payload del pacchetto.
flow
Stabilisce la corrispondenza in base alla direzione e allo stato del flusso.
threshold
Controlla la frequenza di avviso della regola.
metadata
Utilizzata per la registrazione.
reference
Indirizza alle posizioni in cui è possibile trovare informazioni sulla regola.
tag
Definisce i tag.
msg
Informazioni sulla regola e sull'avviso possibile.
content
Stabilisce la corrispondenza in base ai contenuti del payload.
uricontent
Parola chiave legacy per stabilire la corrispondenza in base al buffer dell'URI della richiesta.
pcre
Stabilisce la corrispondenza in base all'espressione regolare.
depth
Indica quanti byte verranno controllati dall'inizio del payload.
startswith
Il modello deve essere all'inizio di un buffer (uguale a "depth:<pattern len>").
endswith
Verifica che il contenuto precedente corrisponda esattamente alla fine del buffer.
distance
Indica una relazione tra questa parola chiave del contenuto e il contenuto che la precede.
within
Indica che la corrispondenza di questo contenuto deve essere entro una determinata distanza dalla corrispondenza della parola chiave del contenuto precedente.
abs_offset
Indica da quale byte del flusso verrà eseguito il controllo per trovare una corrispondenza.
offset
Indica da quale byte del payload verrà eseguito il controllo per trovare una corrispondenza.
replace
Può essere utilizzata solo in modalità IPS.
nocase
Modifica la corrispondenza del contenuto in modo che non faccia distinzione tra maiuscole e minuscole.
fast_pattern
Forza l'utilizzo del contenuto precedente nel matcher con più modelli.
rawbytes
Inclusa per la compatibilità con le firme che la utilizzano.
byte_test
Estrae <num of bytes> ed esegue un'operazione selezionata con <operator> rispetto al valore in <test value> in un determinato <offset>.
byte_jump
Consente di selezionare un <num of bytes> da un <offset> e spostare il puntatore di rilevamento in tale posizione.
sameip
Verifica che l'indirizzo IP dell'origine sia uguale all'indirizzo IP della destinazione.
geoip
Stabilisce la corrispondenza in base all'indirizzo IP di origine, all'indirizzo IP di destinazione oppure agli indirizzi IP di origine e destinazione del traffico di rete e indica a quale paese/area geografica appartiene l'indirizzo IP.
ip_proto
Stabilisce la corrispondenza in base al protocollo IP nell'intestazione del pacchetto.
ftpbounce
Rileva gli attacchi bounce dell'FTP.
isdataat
Verifica se sono ancora presenti dati in una parte specifica del payload.
id
Stabilisce la corrispondenza in base a un valore ID IP specifico.
rpc
Stabilisce la corrispondenza in base ai numeri della procedura RPC e alla versione di RPC.
flowvar
Imposta una variabile di flusso.
flowint
Opera su un numero intero per flusso.
pktvar
Definisce le variabili dei pacchetti.
noalert
La regola non genererà alcun avviso.
flowbits
Opera sul flag del flusso.
hostbits
Opera sul flag dell'host.
ipv4-csum
Controlla l'errore di checksum IPv4.
tcpv4-csum
Controlla l'errore di checksum TCPv4.
tcpv6-csum
Controlla l'errore di checksum TCPv6.
udpv4-csum
Controlla l'errore di checksum UDPv4.
udpv6-csum
Controlla l'errore di checksum UDPv6.
icmpv4-csum
Controlla l'errore di checksum ICMPv4.
icmpv6-csum
Controlla l'errore di checksum ICMPv6.
stream_size
Stabilisce la corrispondenza in base alla quantità di byte di un flusso.
detection_filter
Genera un avviso relativo a ogni corrispondenza dopo il raggiungimento di una soglia.
dataset
Confronta il buffer sticky con i set di dati (sperimentale).
datarep
Opera sui set di dati (sperimentale).
decode-event
Valori e condizioni rilevati durante la decodifica di singoli pacchetti.
gid
Assegna a gruppi di firme diversi un altro valore ID.
nfq_set_mark
Utilizza NFQUEUE nelle regole iptables per inviare pacchetti a Suricata.
bsize
Stabilisce la corrispondenza in base alla lunghezza di un buffer.
tls.version
Stabilisce la corrispondenza in base alla versione di TLS/SSL.
tls.subject
Restituisce il campo Oggetto del certificato TLS/SSL.
tls.issuerdn
Restituisce il campo DN emottente del certificato TLS/SSL.
tls_cert_notbefore
Restituisce il campo notBefore del certificato TLS.
tls_cert_notafter
Restituisce il campo notAfter del certificato TLS.
tls_cert_expired
Restituisce i certificati TLS scaduti.
tls_cert_valid
Restituisce i certificati TLS validi.
tls.fingerprint
Restituisce l'impronta digitale SHA1 del certificato TLS/SSL.
tls_store
Archiviare il certificato TLS/SSL nel disco.
http_cookie
Modificatore di contenuti per la corrispondenza solo in base al buffer HTTP Cookie.
http.cookie
Buffer sticky per la corrispondenza solo in base ai buffer HTTP Cookie e set-cookie.
http_method
Modificatore di contenuti per la corrispondenza solo in base a method-buffer HTTP.
http.method
Buffer sticky per la corrispondenza in modo specifico e solo in base a method-buffer HTTP.
http.protocol
Definisce il buffer sticky http_protocol.
http.start
Definisce il buffer sticky http_start.
urilen
Stabilisce la corrispondenza in base alla lunghezza dell'URI HTTP.
http_client_body
Modificatore di contenuti per la corrispondenza solo in base al corpo della richiesta HTTP.
http.request_body
Buffer sticky per la corrispondenza con il buffer del corpo della richiesta HTTP.
http_server_body
Modificatore di contenuti per la corrispondenza in base al corpo della risposta HTTP.
http.response_body
Buffer sticky per la corrispondenza con il buffer del corpo della risposta HTTP.
http_header
Modificatore di contenuti per la corrispondenza solo in base al buffer dell'intestazione HTTP.
http.header
Buffer sticky per la corrispondenza in base al buffer dell'intestazione HTTP normalizzato.
http.header_names
Definisce il buffer sticky http_header_names.
http.accept
Definisce il buffer sticky http.accept per l'intestazione dell'accettazione HTTP.
http.accept_lang
Definisce il buffer sticky http.accept_lang per l'intestazione del linguaggio di accettazione HTTP.
http.accept_enc
Definisce il buffer sticky http.accept_enc per l'intestazione della codifica di accettazione HTTP.
http.connection
Definisce il buffer sticky http.connection per l'intestazione della connessione HTTP.
http.content_len
Definisce il buffer sticky http.content_len per l'intestazione della lunghezza del contenuto HTTP.
http.content_type
Definisce il buffer sticky http.content_type per l'intestazione del tipo di contenuto HTTP.
http.location
Definisce il buffer sticky http.location per l'intestazione della posizione HTTP.
http.server
Definisce il buffer sticky http.server per l'intestazione del server HTTP.
http.referer
Definisce il buffer sticky http.referer per l'intestazione del referer HTTP.
http_raw_header
Modificatore di contenuti per la corrispondenza con il buffer dell'intestazione HTTP non elaborata.
http.header.raw
Buffer sticky per la corrispondenza con il buffer dell'intestazione HTTP non elaborata.
http_uri
Modificatore di contenuti per la corrispondenza in modo specifico e solo in base al buffer dell'URI HTTP.
http.uri
Buffer sticky per la corrispondenza in modo specifico e solo in base al buffer dell'URI HTTP normalizzato.
http.uri.raw
Buffer sticky per la corrispondenza in modo specifico e solo in base al buffer dell'URI HTTP non elaborato.
http_raw_uri
Modificatore di contenuti per la corrispondenza in base all'URI HTTP non elaborato.
http_stat_msg
Modificatore di contenuti per la corrispondenza in base a stat-msg-buffer HTTP.
http.stat_msg
Buffer sticky per la corrispondenza in base al messaggio di stato della risposta HTTP.
http_stat_code
Modificatore di contenuti per la corrispondenza solo in base a stat-code-buffer HTTP.
http.stat_code
Buffer sticky per la corrispondenza solo in base a stat-code-buffer HTTP.
http_user_agent
Modificatore di contenuti per la corrispondenza solo in base all'intestazione User-Agent HTTP.
http.user_agent
Buffer sticky per la corrispondenza in modo specifico e solo in base al buffer User-Agent HTTP.
http_host
Modificatore di contenuti per la corrispondenza in base al nome host HTTP.
http.host
Buffer sticky per la corrispondenza in base al buffer dell'host HTTP.
http_raw_host
Modificatore di contenuti per la corrispondenza in base all'intestazione dell'host HTTP o al nome host raw dell'URI HTTP.
http.host.raw
Buffer sticky per la corrispondenza in base all'intestazione dell'host HTTP o al nome host raw dell'URI HTTP.
http.request_line
Buffer sticky per la corrispondenza in base alla riga della richiesta HTTP.
http.response_line
Modificatore di contenuti per la corrispondenza solo in base alla riga della risposta HTTP.
nfs_procedure
Buffer sticky per stabilire la corrispondenza con la procedura NFS.
nfs.version
Buffer sticky per stabilire la corrispondenza con la versione NFS.
ssh.proto
Buffer sticky per stabilire la corrispondenza con il protocollo SSH.
ssh.protoversion
Buffer sticky per stabilire la corrispondenza con la versione del protocollo SSH.
ssh.software
Buffer sticky per stabilire la corrispondenza con il software SSH.
ssh.softwareversion
Buffer sticky per stabilire la corrispondenza con la stringa del software SSH.
ssl_version
Buffer sticky per stabilire la corrispondenza con la versione del record SSL/TLS.
ssl_state
Buffer sticky per stabilire la corrispondenza con lo stato della connessione SSL.
byte_extract
Estrae <num of bytes> in un determinato <offset> e lo archivia in <var_name>.
file.data
Rende le parole chiave dei contenuti corrispondenti ai dati del file.
pkt_data
Reimposta il puntatore di rilevamento all'inizio del payload del pacchetto.
app-layer-event
Stabilisce la corrispondenza in base agli eventi generati dai parser del livello app e dal motore di rilevamento del protocollo.
dcerpc.iface
Stabilisce la corrispondenza in base al valore dell'UUID dell'interfaccia in un'intestazione DCERPC.
dcerpc.opnum
Stabilisce la corrispondenza in base a uno o più numeri di operazione e/o intervalli di numeri di operazione nell'interfaccia in un'intestazione DCERPC.
dcerpc.stub_data
Stabilisce la corrispondenza in base ai dati stub in un determinato pacchetto DCERPC. Si tratta di un "buffer sticky".
smb.named_pipe
Buffer sticky per stabilire la corrispondenza in base alla named pipe SMB nella connessione albero.
smb.share
Buffer sticky per stabilire la corrispondenza in base al nome della condivisione SMB nella connessione albero.
asn1
È una notazione standard per strutturare e descrivere i dati.
engine-event
Record di un evento di rilevamento nel sistema di rilevamento delle intrusioni Suricata.
stream-event
Regole per la corrispondenza in base agli eventi del motore di flusso TCP.
filename
Stabilisce la corrispondenza in base al nome del file.
file.name
Buffer sticky per stabilire la corrispondenza in base al nome del file.
fileext
Stabilisce la corrispondenza in base all'estensione di un nome di file.
filestore
Archivia i file nel disco se la regola viene soddisfatta.
filemagic
Stabilisce la corrispondenza in base alle informazioni restituite da libmagic su un file.
file.magic
Buffer sticky per stabilire la corrispondenza in base al file magic.
filemd5
Stabilisce la corrispondenza del file MD5 in base a un elenco di checksum MD5.
filesha1
Stabilisce la corrispondenza del file SHA-1 in base a un elenco di checksum SHA-1.
filesha256
Stabilisce la corrispondenza del file SHA-256 in base a un elenco di checksum SHA-256.
filesize
Stabilisce la corrispondenza in base alle dimensioni del file mentre è in corso di trasferimento.
l3_proto
Specifica se la firma deve corrispondere in base a IPv4, IPv6 o entrambi.
lua
Stabilisce la corrispondenza utilizzando uno script lua.
iprep
Stabilisce la corrispondenza in base alle informazioni di reputazione IP per un host.
dns.query
Buffer sticky per stabilire la corrispondenza con query-buffer DNS.
dns.opcode
Stabilisce la corrispondenza con il flag opcode dell'intestazione DNS.
tls.sni
Modificatore di contenuti da abbinare in modo specifico e solo nel buffer SNI TLS.
tls.certs
Modificatore di contenuti per la corrispondenza in base al buffer sticky del certificato TLS.
tls.cert_issuer
Modificatore di contenuti per la corrispondenza in modo specifico e solo in base al buffer dell'emittente del certificato TLS.
tls.cert_subject
Modificatore di contenuti per la corrispondenza in modo specifico e solo in base al buffer dell'oggetto del certificato TLS.
tls.cert_serial
Modificatore di contenuti per la corrispondenza in base al buffer seriale del certificato TLS.
tls.cert_fingerprint
Stabilisce la corrispondenza in base al buffer dell'impronta digitale del certificato TLS.
ja3.hash
Modificatore di contenuti per la corrispondenza con il buffer dell'hash JA3.
ja3.string
Modificatore di contenuti per la corrispondenza con il buffer della stringa JA3.
ja3s.hash
Modificatore di contenuti per la corrispondenza con il buffer sticky dell'hash JA3S.
ja3s.string
Modificatore di contenuti per la corrispondenza con il buffer sticky della stringa JA3S.
modbus
Stabilisce la corrispondenza in base a varie proprietà delle richieste Modbus.
cip_service
Stabilisce la corrispondenza in base al servizio CIP.
enip_command
Regole per il rilevamento del comando EtherNet/IP.
dnp3.data
Crea le opzioni di contenuto seguenti per stabilire la corrispondenza in base al buffer dell'applicazione riassemblata.
dnp3_func
Stabilisce la corrispondenza in base al codice funzione dell'applicazione trovato nella richiesta e nelle risposte DNP3.
dnp3_ind
Stabilisce la corrispondenza in base ai flag degli indicatori interni DNP3 nell'intestazione dell'applicazione di risposta.
dnp3_obj
Stabilisce la corrispondenza in base agli oggetti dati dell'applicazione DNP3.
xbits
Opera in base ai bit.
base64_decode
Decodifica i dati con codifica Base64.
base64_data
Il contenuto corrisponde ai dati con codifica Base64.
krb5_err_code
Stabilisce la corrispondenza con il codice di errore Kerberos 5.
krb5_msg_type
Stabilisce la corrispondenza con il tipo di messaggio Kerberos 5.
krb5.cname
Buffer sticky per stabilire la corrispondenza in base al nome del client Kerberos 5.
krb5.sname
Buffer sticky per stabilire la corrispondenza in base al nome del server Kerberos 5.
sip.method
Buffer sticky per stabilire la corrispondenza in base al buffer del metodo SIP.
sip.uri
Buffer sticky per stabilire la corrispondenza in base all'URI SIP.
sip.protocol
Buffer sticky per stabilire la corrispondenza in base al protocollo SIP.
sip.stat_code
Buffer sticky per stabilire la corrispondenza in base al codice di stato SIP.
sip.stat_msg
Buffer sticky per stabilire la corrispondenza in base al messaggio di stato SIP.
sip.request_line
Buffer sticky per stabilire la corrispondenza in base alla riga della richiesta SIP.
sip.response_line
Buffer sticky per stabilire la corrispondenza in base alla riga della risposta SIP.
template2
Modello.
ipv4.hdr
Buffer sticky per stabilire la corrispondenza in base all'intestazione IPv4.
ipv6.hdr
Buffer sticky per stabilire la corrispondenza in base all'intestazione IPv6.
tcp.hdr
Buffer sticky per stabilire la corrispondenza in base all'intestazione TCP.
udp.hdr
Buffer sticky per stabilire la corrispondenza in base all'intestazione UDP.
tcp.mss
Buffer sticky per stabilire la corrispondenza in base al campo dell'opzione TCP MSS.
ftpdata_command
Stabilisce la corrispondenza con il comando FTP che attiva un canale dati FTP.
target
Indica al modulo di output quale lato è la destinazione dell'attacco.
snmp.version
Stabilisce la corrispondenza con la versione di SNMP.
snmp.community
Modificatore di contenuti SNMP per la corrispondenza in base alla community SNMP.
snmp.pdu_type
Stabilisce la corrispondenza con il tipo PDU SNMP.
bypass
Chiama il callback bypass quando la corrispondenza di un sig è completa.
prefilter
Forza l'utilizzo di una condizione come prefiltro.
compress_whitespace
Modifica il buffer per comprimere gli spazi vuoti consecutivi in un singolo spazio vuoto prima dell'ispezione.
strip_whitespace
Modifica il buffer per eseguire lo striping dello spazio vuoto prima dell'ispezione.
to_md5
Converte l'hash del buffer in md5.
to_sha1
Converte l'hash del buffer in sha1.
to_sha256
Converte l'hash del buffer in sha256.
dotprefix
Modifica il buffer per estrarre dotprefix.
nopcap
Evita lo snipping del contenuto di pcap dai flussi quando vengono visualizzati avvisi.