Connettore FortiGate (API)
Il connettore FortiGate (API) aggiunge un firewall FortiGate come asset interrogando l’API REST di FortiOS. Non richiede né SNMP, né l’esecuzione di script, né l’installazione di agent.
Recupera:
- la versione e la build di FortiOS, che servono al calcolo delle vulnerabilità;
- il nome, il modello e il numero di serie del FortiGate;
- la modalità di alta disponibilità;
- la versione e la data dei database delle firme antivirus e IPS;
- le scadenze delle licenze FortiGuard e del supporto FortiCare;
- la disponibilità di una patch di FortiOS;
- gli indirizzi IP delle interfacce, compresi quelli ottenuti tramite DHCP;
- difetti di configurazione dell’amministrazione del FortiGate.
Consente inoltre di valutare la conformità del FortiGate al CIS.
Tutte le richieste sono in sola lettura.
Il connettore si utilizza in due modi:
- in diretta: Cyberwatch interroga l’API di ogni FortiGate, con una chiave API specifica del dispositivo;
- tramite un FortiManager: Cyberwatch interroga il FortiManager, che inoltra le richieste ai FortiGate che gestisce. Una sola chiave API, quella del FortiManager, è sufficiente per l’intero parco.
Prerequisiti
La creazione di connessioni agentless di tipo FortiGate (API) richiede l’attivazione di questo tipo di connessioni nel menu Amministrazione > Gestione dei connettori.
In diretta, lo scanner Cyberwatch deve raggiungere l’interfaccia di amministrazione HTTPS del FortiGate. Tramite un FortiManager, deve raggiungere l’API JSON del FortiManager.
Connessione diretta
Preparare il FortiGate
- Creare un profilo di amministratore con tutte le autorizzazioni in sola lettura (System > Admin Profiles). Se i VDOM sono attivati, assegnare al profilo un ambito globale.
- Creare un amministratore REST API con questo profilo (System > Administrators > Create New > REST API Admin).
- Negli host attendibili (Trusted Hosts) di questo amministratore, autorizzare solo l’indirizzo dello scanner Cyberwatch.
- Annotare la chiave API generata: FortiOS la visualizza una sola volta.
Configurare la credenziale
È possibile configurare gli accessi dal menu Credenziali salvate della barra laterale, cliccando poi sul pulsante Aggiungi. Nel modulo, selezionare il tipo Fortinet, quindi inserire:
- Chiave API: la chiave dell’amministratore REST API;
- URL: facoltativo, serve solo alla discovery FortiGate;
- Disattiva la verifica del certificato: da selezionare se il FortiGate presenta un certificato autofirmato;
- Ignora il proxy: da selezionare se lo scanner raggiunge il FortiGate senza passare dal proxy configurato in Cyberwatch.
Aggiungere il FortiGate
In Cyberwatch, sezione Asset:
- Accedere al menu Asset, quindi cliccare su Connessioni agentless
- Selezionare il protocollo di accesso FortiGate (API)
- Nel campo Indirizzo, inserire l’indirizzo IP o il nome del FortiGate
- Nel campo Porta, inserire la porta dell’interfaccia di amministrazione HTTPS (443 per impostazione predefinita)
- Selezionare la credenziale Fortinet, oppure crearne una
- Cliccare su Salva
Cyberwatch contatta sempre il FortiGate all’indirizzo e sulla porta della connessione, qualunque sia l’URL della credenziale.
Connessione tramite un FortiManager
Configurare la credenziale
La credenziale è quella della discovery FortiManager: tipo FortiManager, con l’URL del FortiManager e la chiave API di un amministratore della sua API JSON.
Aggiungere un FortiGate
In Cyberwatch, sezione Asset:
- Accedere al menu Asset, quindi cliccare su Connessioni agentless
- Selezionare il protocollo di accesso FortiGate (API)
- Selezionare la credenziale FortiManager: il campo Porta scompare
- Nel campo Indirizzo, inserire il nome del FortiGate sul FortiManager
- Cliccare su Salva
Aggiungere i FortiGate di una discovery FortiManager
Una discovery FortiManager di tipo Individua i FortiGate annota il nome di ogni FortiGate sul FortiManager. Può creare automaticamente le connessioni: nella discovery, selezionare la credenziale FortiManager come credenziale di connessione agentless, con il tipo di connessione FortiGate (API).
I FortiGate individuati si aggiungono anche dalla pagina degli asset individuati. Sono accettati solo quelli riportati da una discovery Individua i FortiGate: dopo un aggiornamento di Cyberwatch, rilanciare la discovery prima di creare le connessioni.
- Accedere al menu Discovery
- Nella discovery FortiManager, cliccare su Mostra gli asset individuati
- Selezionare i FortiGate da aggiungere
- Cliccare su Azioni in blocco, quindi su Scansiona con connessioni agentless
- Selezionare in Credenziali la credenziale FortiManager
- Selezionare il tipo di connessione FortiGate (API)
- Cliccare su Crea le connessioni agentless
Informazioni riportate
Il connettore descrive il FortiGate con le stesse informazioni della scansione SNMP: il firmware FortiOS e i metadati riportati di seguito. Questi metadati sono visibili nella scheda Informazioni dell’asset.
| Chiave | Valore |
|---|---|
system-manufacturer | Fortinet |
system-product-name | Modello, ad esempio FortiGate-81F |
system-serial-number | Numero di serie |
ha-state | Modalità di alta disponibilità: standalone, active-active o active-passive, la stessa su ogni membro del cluster |
av-signature-version, av-signature-date | Versione e data dell’ultimo aggiornamento del database delle firme antivirus |
ips-signature-version, ips-signature-date | Versione e data dell’ultimo aggiornamento del database delle firme IPS |
license-expiration | Scadenza più vicina delle licenze FortiGuard (antivirus, IPS, filtraggio web…), in corso o scadute |
support-expiration | Scadenza più vicina dei contratti di supporto FortiCare (hardware, 24x7…), in corso o scaduti, altrimenti quella degli aggiornamenti (Firmware & General Updates) |
firmware-update-available | true se FortiGuard pubblica una patch più recente del ramo di FortiOS installato, altrimenti false. Un nuovo ramo, ad esempio 7.6 per un FortiGate in 7.4, non viene considerato. Nessun valore quando il FortiGate non raggiunge FortiGuard. |
Le date sono nel formato AAAA-MM-GG.
Problemi di sicurezza
Il connettore legge l’accesso di amministrazione delle interfacce e la configurazione globale del FortiGate, e segnala i problemi seguenti. Le interfacce disattivate vengono ignorate.
| Problema | Condizione |
|---|---|
| FortiGate administration over a cleartext protocol | Un’interfaccia accetta l’amministrazione in Telnet, salvo se Telnet è disattivato globalmente (admin-telnet), oppure in HTTP senza reindirizzamento verso HTTPS (admin-https-redirect) |
| FortiGate administration open on a WAN interface | Un’interfaccia con ruolo WAN accetta l’amministrazione in HTTPS, SSH, HTTP o Telnet |
| FortiGate administration with weak TLS | L’amministrazione HTTPS accetta una versione precedente a TLS 1.2 (admin-https-ssl-versions), oppure la crittografia forte è disattivata (strong-crypto) |
I primi due problemi sono segnalati per interfaccia, il terzo per parametro in questione: è così possibile ignorarne uno senza nascondere gli altri.
Se il profilo della chiave API non consente di leggere la configurazione globale, il problema di TLS non viene valutato, Telnet viene segnalato anche se è disattivato globalmente, e HTTP non viene segnalato.
Risoluzione dei problemi
Solo la lettura dello stato del FortiGate è indispensabile alla scansione. Quando il profilo della chiave API rifiuta un’altra lettura, la scansione prosegue senza le informazioni corrispondenti, e l’output dello script lo annota con una riga di commento, ad esempio # /api/v2/monitor/license/status: HTTP 403.
Un errore temporaneo (timeout, errore 5xx) durante la lettura degli indirizzi o della configurazione fa fallire la scansione: l’asset mantiene allora gli indirizzi e i problemi della scansione precedente.
| Errore | Causa probabile |
|---|---|
HTTP 401 | Chiave API non valida, oppure indirizzo dello scanner assente dagli host attendibili dell’amministratore REST API |
HTTP 403 | Profilo dell’amministratore REST API senza accesso in lettura |
| Errore di certificato | Certificato autofirmato: selezionare Disattiva la verifica del certificato nella credenziale |
HTTP <codice>: not a FortiOS API response | La porta della connessione non è quella dell’interfaccia di amministrazione HTTPS, ad esempio è quella del portale VPN SSL |
<nome>: … | Tramite un FortiManager: il FortiManager non è riuscito a inoltrare la richiesta al FortiGate <nome> |