Informazioni sulle connessioni agentless per i dispositivi di rete
Cyberwatch scansiona i dispositivi di rete (router, switch, firewall, appliance…) in connessione agentless, tramite SNMP sulla porta UDP 161. La scansione interroga l’agent SNMP del dispositivo, senza installarvi né modificarvi nulla, e riporta:
- il sistema e la sua versione (firmware), da cui vengono dedotte le vulnerabilità;
- il nome host e gli indirizzi IP;
- metadati: posizione, numero di serie, modello, ruolo di alta disponibilità, scadenze di licenza…;
- le porte in ascolto;
- problemi di sicurezza della configurazione SNMP.
La matrice dei flussi è riportata nei prerequisiti delle connessioni agentless, e i dispositivi supportati nell’elenco dei sistemi supportati.
Versioni e credenziali SNMP
Cyberwatch supporta SNMP v1, v2c e v3:
- in v1 e v2c, la credenziale è una community;
- in v3, l’utente deve avere un’autenticazione e una crittografia (livello di sicurezza
authPriv). I livellinoAuthNoPriveauthNoPrivnon sono supportati.
I protocolli di autenticazione proposti sono SHA, SHA-256, SHA-512 e MD5, e i protocolli di crittografia AES, AES-256 e DES.
Consigliamo SNMPv3 con SHA-256 o SHA-512 e AES. Una scansione in v1 o v2c, o con un utente SNMPv3 in MD5 o in DES, produce un problema di sicurezza sull’asset.
Viste MIB da autorizzare
Cyberwatch ha bisogno solo di un accesso in lettura. La vista SNMP dell’utente o della community utilizzata deve includere i rami seguenti:
| MIB | Radice dell’OID | Dati letti | Se la vista lo esclude |
|---|---|---|---|
| SNMPv2-MIB, gruppo system | 1.3.6.1.2.1.1 | Descrizione, identificativo dell’oggetto (sysObjectID), tempo di attività, nome, posizione e contatto | La scansione non riesce. |
| Ramo del costruttore | 1.3.6.1.4.1.<numero> | Sistema, versione e caratteristiche specifiche del costruttore | Il rilevamento non riesce, vedere In caso di errore di rilevamento. |
| HOST-RESOURCES-MIB | 1.3.6.1.2.1.25 | Tempo di attività del dispositivo; software installati, che forniscono la versione di alcuni dispositivi | Il tempo di attività è quello dell’agent SNMP. La versione di questi dispositivi non viene rilevata, e il rilevamento non riesce per Cisco ISE, Ucopia, e Juniper quando la descrizione non fornisce la versione. |
| IP-MIB, OSPF-MIB | 1.3.6.1.2.1.4, 1.3.6.1.2.1.14 | Indirizzi IP | Gli indirizzi IP mancano. |
| ENTITY-MIB | 1.3.6.1.2.1.47 | Produttore, modello, numero di serie e revisione hardware dello chassis | Il modello e il numero di serie vengono letti nel ramo del costruttore, quando li fornisce. Il rilevamento di Arista, che vi legge la propria versione, non riesce. |
| TCP-MIB, UDP-MIB | 1.3.6.1.2.1.6, 1.3.6.1.2.1.7 | Porte in ascolto | Le porte mancano. |
| SNMP-USER-BASED-SM-MIB, SNMP-VIEW-BASED-ACM-MIB, SNMP-COMMUNITY-MIB | 1.3.6.1.6.3.15, 1.3.6.1.6.3.16, 1.3.6.1.6.3.18 | Utenti SNMPv3, accessi v1/v2c e community configurati sul dispositivo | Vengono segnalati solo i problemi di sicurezza della credenziale utilizzata. |
<numero> è il numero di impresa IANA del costruttore, con cui inizia l’identificativo dell’oggetto del dispositivo: 1.3.6.1.4.1.9.1.… per un dispositivo Cisco, ad esempio. Un dispositivo basato sull’agent net-snmp legge anche i rami di net-snmp (1.3.6.1.4.1.8072 e 1.3.6.1.4.1.2021), e quello del suo editore. Una vista che include 1.3.6.1.2.1 e 1.3.6.1.4.1 copre quindi tutti i rami necessari.
Le tre tabelle di 1.3.6.1.6.3 descrivono la configurazione SNMP del dispositivo. Aprirle a Cyberwatch è facoltativo. Cyberwatch ne riporta solo problemi di sicurezza: non riporta mai una community al di fuori dell’elenco delle community deboli, né il nome di un utente senza autenticazione.
Al di fuori del gruppo system e del ramo del costruttore, una tabella assente, esclusa dalla vista o che non risponde non fa fallire la scansione: l’informazione corrispondente semplicemente manca.
Metadati
La scansione riporta metadati, visualizzati nella scheda «Metadati» dell’asset. Vengono aggiornati a ogni scansione riuscita: un metadato che la scansione non legge più scompare. I valori vuoti e i valori predefiniti degli agent SNMP (Unknown, root@localhost…) vengono ignorati, e un valore viene troncato a 255 caratteri.
Metadati comuni
Questi metadati vengono letti nelle MIB standard, qualunque sia il costruttore:
| Chiave | Origine | Descrizione |
|---|---|---|
snmp-location | sysLocation (SNMPv2-MIB) | Posizione dichiarata nella configurazione SNMP |
snmp-contact | sysContact (SNMPv2-MIB) | Contatto dichiarato nella configurazione SNMP |
system-manufacturer | entPhysicalMfgName (ENTITY-MIB) | Produttore dello chassis |
system-product-name | entPhysicalModelName (ENTITY-MIB), altrimenti ramo del costruttore | Modello dello chassis |
system-serial-number | entPhysicalSerialNum (ENTITY-MIB), altrimenti ramo del costruttore | Numero di serie dello chassis |
system-version | entPhysicalHardwareRev (ENTITY-MIB) | Revisione hardware dello chassis, e non versione del firmware |
snmp-agent-version | versionTag (UCD-SNMP-MIB) | Versione dell’agent net-snmp |
Le colonne di ENTITY-MIB vengono lette sulla prima entità di classe chassis. Quando ENTITY-MIB non fornisce né modello né numero di serie, questi vengono letti nel ramo del costruttore, per la maggior parte dei costruttori supportati.
Le chiavi system-* sono quelle riportate dalla scansione degli asset Linux. Uno stesso filtro, ad esempio meta:system-serial-number:FCW2140, trova quindi sia un server sia un dispositivo di rete.
Metadati specifici di alcuni dispositivi
| Chiave | Dispositivi | Valore |
|---|---|---|
ha-state | Check Point, Cisco ASA, F5 BIG-IP, FortiGate, Juniper | Stato di alta disponibilità, standalone al di fuori di un cluster per Cisco ASA, Check Point, F5 BIG-IP e FortiGate. In cluster, Cisco ASA, Check Point e F5 BIG-IP forniscono il ruolo del dispositivo (active, standby, offline per F5, active-attention per Check Point…). FortiGate fornisce la modalità del cluster (active-active, active-passive), la stessa su ogni membro. Juniper: virtual-chassis per un Virtual Chassis, nessun valore per un dispositivo singolo. |
virtual-chassis-member | Juniper | Un membro del Virtual Chassis per valore: identificativo, ruolo, numero di serie, modello e versione, ad esempio 9 master LX0213388389 ex4550-32f 15.1R7-S10 |
config-unsaved | Cisco (IOS, IOS XE, IOS XR, NX-OS, ASA…) | true se la configurazione in esecuzione è stata modificata dopo il suo ultimo salvataggio, altrimenti false |
boot-image | Extreme Networks EXOS | Immagine avviata: primary o secondary |
firmware-pending-version | Extreme Networks EXOS | Versione dell’immagine scelta per il prossimo avvio, quando differisce dalla versione in esecuzione |
routerboot-pending-version | MikroTik | Versione di RouterBOOT fornita da RouterOS, quando differisce da quella installata: l’aggiornamento di RouterBOOT resta da eseguire |
firmware-update-available | Synology | true se DSM segnala un aggiornamento disponibile, false se non ne segnala alcuno. Nessun valore quando DSM non ha potuto verificare. |
av-signature-version, av-signature-date | FortiGate | Versione e data del database delle firme antivirus |
ips-signature-version, ips-signature-date | FortiGate, Sophos (solo versione) | Versione e data del database delle firme IPS |
license-expiration | Cisco AsyncOS, Sophos, WALLIX Bastion | Scadenza di licenza più vicina |
support-expiration | Check Point, Sophos | Scadenza di supporto più vicina |
Le date sono nel formato AAAA-MM-GG.
Utilizzare i metadati
- Nell’inventario, filtrare gli asset con il filtro Metadato, oppure digitando
meta:chiave[:valore]nella barra di ricerca. La chiave e il valore vengono cercati per prefisso (vedere l’ancoraggio delle ricerche). Ad esempio:meta:ha-state:standby: dispositivi in attesa in un cluster;meta:config-unsaved:true: dispositivi Cisco la cui configurazione non è salvata;meta:license-expiration:2026: dispositivi di cui una licenza scade nel 2026.
- Visualizzare un metadato come colonna dell’inventario, come descritto in Aggiungere una colonna di metadato. Una chiave con più valori, come
virtual-chassis-member, visualizza i propri valori separati da virgole. - Questi filtri servono anche per le regole degli asset, gli alert e le esportazioni. L’API v3 restituisce i metadati nel dettaglio di un asset, e filtra l’elenco degli asset per
metadata_keyemetadata_value.
Porte in ascolto
La scansione riporta le porte in ascolto del dispositivo nella scheda «Porte» dell’asset. Legge:
- per TCP, la tabella
tcpListenerTable, o in mancanza le connessioni in ascolto ditcpConnTable(TCP-MIB); - per UDP, la tabella
udpEndpointTable, o in mancanzaudpTable(UDP-MIB).
Le porte degli indirizzi di loopback vengono ignorate, così come i socket UDP connessi. Una porta che è in ascolto su tutti gli indirizzi viene riportata senza indirizzo. SNMP non fornisce né il servizio né il prodotto di una porta: queste colonne restano vuote.
La lettura è limitata a 500 righe per tabella e a 60 secondi per l’insieme delle tabelle. Oltre questi limiti, o se il dispositivo smette di rispondere, Cyberwatch mantiene le porte già lette e lo segnala nel risultato grezzo della scansione con una riga # Listening ports from <tabella>: <motivo>.
Come per gli altri asset, una porta TCP 21, 23 o 873 in ascolto produce i problemi di sicurezza FTP-port, Telnet-port o rsync-port.
Problemi di sicurezza SNMP
La scansione segnala i problemi di sicurezza seguenti nella scheda «Problemi di sicurezza» dell’asset:
| Identificativo | Gravità | Titolo | Segnalato quando | Dettaglio |
|---|---|---|---|---|
SNMP_weak_community_string | Alta | SNMP weak community string | Una community dell’elenco delle community deboli è accettata dal dispositivo, o figura nella sua tabella delle community (snmpCommunityTable) | Community string: <community> |
SNMP_v1_v2c_enabled | Media | SNMP v1/v2c enabled or configured | La scansione avviene in v1 o v2c, oppure la configurazione di accesso del dispositivo (vacmSecurityToGroupTable) contiene una voce v1 o v2c | SNMPv1 o SNMPv2c |
SNMP_no_authentication | Media | SNMPv3 user without authentication | Un utente SNMPv3 del dispositivo (usmUserTable) non ha autenticazione | User: initial, altrimenti User without authentication |
SNMP_weak_authentication_protocol | Bassa | SNMPv3 MD5 authentication | L’utente della scansione, o un utente del dispositivo, si autentica in MD5 | User: <utente> (MD5) |
SNMP_weak_privacy_protocol | Media | SNMPv3 weak or no encryption | L’utente della scansione, o un utente del dispositivo, crittografa in DES o non crittografa | User: <utente> (DES) o User: <utente> (no encryption) |
Questi problemi vengono dedotti dalla credenziale utilizzata e dalle tabelle che la vista rende leggibili. La scansione resta non intrusiva: non tenta mai di autenticarsi in modo diverso che con la credenziale della connessione, salvo per il test delle community deboli. Questo test avviene solo per una scansione in v1 o v2c. Prova, in sola lettura, le community dell’elenco dello script Nmap snmp-brute: public, private, snmpd, mngt, cisco, admin, PUBLIC, PRIVATE, rmonmgmtuicommunity, secret, cascade, ANYCOM, ILMI, volition, TENmanUFactOryPOWER, MiniAP e snmp-Trap.
Il nome di un utente senza autenticazione è sufficiente per interrogare il dispositivo: non viene visualizzato, salvo se è pubblico, come initial.
Ogni utente, versione o community dà luogo a un’occorrenza distinta del problema di sicurezza. Un’occorrenza che non viene più rilevata durante una scansione riuscita è corretta, e un’occorrenza ignorata resta tale. Il ciclo di vita dei problemi di sicurezza è descritto in Utilizzare i problemi di sicurezza.
In caso di errore di rilevamento
Se la scansione non riesce, l’asset mantiene il suo ultimo stato noto: firmware, vulnerabilità, metadati, porte e problemi di sicurezza non vengono cancellati. L’errore viene segnalato:
- sullo script di analisi dell’asset, che passa a «Errore di comunicazione» con il messaggio di errore;
- sulla connessione agentless, nella colonna «Ultimo errore di connessione» del menu Connessioni agentless.
Se gli errori si ripetono, l’asset finisce per passare in perdita di comunicazione.
Ogni richiesta SNMP attende la propria risposta per 3 secondi e viene ritentata 2 volte. Una scansione dura al massimo 5 minuti. Il messaggio di errore è preceduto dal numero di impresa del costruttore, quando è noto (PEN 9: …). I messaggi più frequenti sono:
| Messaggio | Causa probabile | Risoluzione |
|---|---|---|
Timeout after 3 seconds | Il dispositivo non risponde: flusso UDP 161 bloccato, agent SNMP arrestato, o community sconosciuta al dispositivo (v1, v2c) | Verificare la matrice dei flussi, la configurazione SNMP del dispositivo e la credenziale. |
Unknown user name | L’utente SNMPv3 della credenziale non esiste sul dispositivo | Verificare il nome utente della credenziale e la configurazione SNMP del dispositivo. |
Authentication failure (…) | Password o protocollo di autenticazione SNMPv3 errato | Verificare la password e il protocollo di autenticazione della credenziale. |
Decryption error | Password o protocollo di crittografia SNMPv3 errato | Verificare la password e il protocollo di crittografia della credenziale. |
Unsupported security level | L’utente SNMPv3 del dispositivo non ha contemporaneamente un’autenticazione e una crittografia | Configurarlo al livello authPriv, vedere Versioni e credenziali SNMP. |
Could not retrieve the version of <prodotto> | Il dispositivo non fornisce la propria versione dove Cyberwatch la legge | Verificare che la vista includa il ramo del costruttore, quindi contattare il supporto. |
No Such Instance currently exists at this OID (<OID>), No such name (…) | Un OID necessario al rilevamento è assente o escluso dalla vista | Verificare che la vista includa l’OID citato, quindi contattare il supporto. |
Time limit of 300 s exceeded | Il dispositivo risponde troppo lentamente per terminare la scansione in 5 minuti | Verificare il carico del dispositivo e la latenza della rete. |
Se il dispositivo non viene riconosciuto, o se il suo rilevamento continua a non riuscire, scrivere a support@cyberwatch.com con il messaggio di errore e uno SNMPWalk completo del dispositivo (snmpwalk -On <dispositivo> 1.3.6.1).