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

  1. 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.
  2. Creare un amministratore REST API con questo profilo (System > Administrators > Create New > REST API Admin).
  3. Negli host attendibili (Trusted Hosts) di questo amministratore, autorizzare solo l’indirizzo dello scanner Cyberwatch.
  4. 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:

  1. Accedere al menu Asset, quindi cliccare su Connessioni agentless
  2. Selezionare il protocollo di accesso FortiGate (API)
  3. Nel campo Indirizzo, inserire l’indirizzo IP o il nome del FortiGate
  4. Nel campo Porta, inserire la porta dell’interfaccia di amministrazione HTTPS (443 per impostazione predefinita)
  5. Selezionare la credenziale Fortinet, oppure crearne una
  6. 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:

  1. Accedere al menu Asset, quindi cliccare su Connessioni agentless
  2. Selezionare il protocollo di accesso FortiGate (API)
  3. Selezionare la credenziale FortiManager: il campo Porta scompare
  4. Nel campo Indirizzo, inserire il nome del FortiGate sul FortiManager
  5. 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.

  1. Accedere al menu Discovery
  2. Nella discovery FortiManager, cliccare su Mostra gli asset individuati
  3. Selezionare i FortiGate da aggiungere
  4. Cliccare su Azioni in blocco, quindi su Scansiona con connessioni agentless
  5. Selezionare in Credenziali la credenziale FortiManager
  6. Selezionare il tipo di connessione FortiGate (API)
  7. 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.

ChiaveValore
system-manufacturerFortinet
system-product-nameModello, ad esempio FortiGate-81F
system-serial-numberNumero di serie
ha-stateModalità di alta disponibilità: standalone, active-active o active-passive, la stessa su ogni membro del cluster
av-signature-version, av-signature-dateVersione e data dell’ultimo aggiornamento del database delle firme antivirus
ips-signature-version, ips-signature-dateVersione e data dell’ultimo aggiornamento del database delle firme IPS
license-expirationScadenza più vicina delle licenze FortiGuard (antivirus, IPS, filtraggio web…), in corso o scadute
support-expirationScadenza più vicina dei contratti di supporto FortiCare (hardware, 24x7…), in corso o scaduti, altrimenti quella degli aggiornamenti (Firmware & General Updates)
firmware-update-availabletrue 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.

ProblemaCondizione
FortiGate administration over a cleartext protocolUn’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 interfaceUn’interfaccia con ruolo WAN accetta l’amministrazione in HTTPS, SSH, HTTP o Telnet
FortiGate administration with weak TLSL’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.

ErroreCausa probabile
HTTP 401Chiave API non valida, oppure indirizzo dello scanner assente dagli host attendibili dell’amministratore REST API
HTTP 403Profilo dell’amministratore REST API senza accesso in lettura
Errore di certificatoCertificato autofirmato: selezionare Disattiva la verifica del certificato nella credenziale
HTTP <codice>: not a FortiOS API responseLa 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>