Connecteur FortiGate (API)
Le connecteur FortiGate (API) ajoute un pare-feu FortiGate comme actif en interrogeant l’API REST de FortiOS. Il n’exige ni SNMP, ni exécution de scripts, ni installation d’agent.
Il récupère :
- la version et le build de FortiOS, qui servent au calcul des vulnérabilités ;
- le nom, le modèle et le numéro de série du FortiGate ;
- le mode de haute disponibilité ;
- la version et la date des bases de signatures antivirus et IPS ;
- les échéances des licences FortiGuard et du support FortiCare ;
- la disponibilité d’un correctif de FortiOS ;
- les adresses IP des interfaces, y compris celles obtenues par DHCP ;
- des défauts de configuration de l’administration du FortiGate.
Il permet aussi d’évaluer la conformité du FortiGate au CIS.
Toutes les requêtes sont en lecture seule.
Le connecteur s’utilise de deux façons :
- en direct : Cyberwatch interroge l’API de chaque FortiGate, avec une clé d’API propre à l’équipement ;
- par un FortiManager : Cyberwatch interroge le FortiManager, qui relaie les requêtes aux FortiGate qu’il gère. Une seule clé d’API, celle du FortiManager, suffit pour tout le parc.
Prérequis
La création de connexions sans-agent de type FortiGate (API) nécessite l’activation de ce type de connexions dans le menu Administration > Gestion des connecteurs.
En direct, le scanner Cyberwatch doit joindre l’interface d’administration HTTPS du FortiGate. Par un FortiManager, il doit joindre l’API JSON du FortiManager.
Connexion directe
Préparer le FortiGate
- Créer un profil d’administrateur dont toutes les permissions sont en lecture seule (System > Admin Profiles). Si les VDOM sont activés, donner au profil une portée globale.
- Créer un administrateur REST API avec ce profil (System > Administrators > Create New > REST API Admin).
- Dans les hôtes de confiance (Trusted Hosts) de cet administrateur, n’autoriser que l’adresse du scanner Cyberwatch.
- Noter la clé d’API générée : FortiOS ne l’affiche qu’une fois.
Configurer l’identifiant
Vous pouvez configurer les accès à partir du menu Identifiants enregistrés de la barre latérale, puis en cliquant sur le bouton Ajouter. Dans le formulaire, sélectionner le type Fortinet, puis renseigner :
- Clé d’API : la clé de l’administrateur REST API ;
- URL : facultative, elle ne sert qu’à la découverte FortiGate ;
- Désactiver la vérification de certificat : à cocher si le FortiGate présente un certificat auto-signé ;
- Ignorer le proxy : à cocher si le scanner joint le FortiGate sans passer par le proxy configuré dans Cyberwatch.
Ajouter le FortiGate
Sur Cyberwatch, section Actifs :
- Aller dans le menu Actifs puis cliquer sur Connexions sans-agent
- Sélectionner le protocole d’accès FortiGate (API)
- Dans le champ Adresse, renseigner l’adresse IP ou le nom du FortiGate
- Dans le champ Port, renseigner le port de l’interface d’administration HTTPS (443 par défaut)
- Sélectionner l’identifiant Fortinet, ou en créer un
- Cliquer sur Sauvegarder
Cyberwatch appelle toujours le FortiGate à l’adresse et sur le port de la connexion, quelle que soit l’URL de l’identifiant.
Connexion par un FortiManager
Configurer l’identifiant
L’identifiant est celui de la découverte FortiManager : type FortiManager, avec l’URL du FortiManager et la clé d’API d’un administrateur de son API JSON.
Ajouter un FortiGate
Sur Cyberwatch, section Actifs :
- Aller dans le menu Actifs puis cliquer sur Connexions sans-agent
- Sélectionner le protocole d’accès FortiGate (API)
- Sélectionner l’identifiant FortiManager : le champ Port disparaît
- Dans le champ Adresse, renseigner le nom du FortiGate sur le FortiManager
- Cliquer sur Sauvegarder
Ajouter les FortiGate d’une découverte FortiManager
Une découverte FortiManager de type Découvrir les FortiGates note le nom de chaque FortiGate sur le FortiManager. Elle peut créer les connexions automatiquement : dans la découverte, sélectionner l’identifiant FortiManager comme identifiant de connexion sans-agent, avec le type de connexion FortiGate (API).
Les FortiGate découverts s’ajoutent aussi depuis la page des actifs découverts. Seuls ceux remontés par une découverte Découvrir les FortiGates sont acceptés : après une mise à jour de Cyberwatch, relancer la découverte avant de créer les connexions.
- Aller dans le menu Découvertes
- Sur la découverte FortiManager, cliquer sur Afficher les actifs découverts
- Sélectionner les FortiGate à ajouter
- Cliquer sur Actions groupées, puis sur Scanner avec des connexions sans-agent
- Sélectionner dans Identifiants l’identifiant FortiManager
- Sélectionner le type de connexion FortiGate (API)
- Cliquer sur Créer les connexions sans-agent
Informations remontées
Le connecteur décrit le FortiGate avec les mêmes informations que le scan SNMP : le firmware FortiOS et les métadonnées ci-dessous. Ces métadonnées sont visibles dans l’onglet Informations de l’actif.
| Clé | Valeur |
|---|---|
system-manufacturer | Fortinet |
system-product-name | Modèle, par exemple FortiGate-81F |
system-serial-number | Numéro de série |
ha-state | Mode de haute disponibilité : standalone, active-active ou active-passive, le même sur chaque membre du cluster |
av-signature-version, av-signature-date | Version et date de la dernière mise à jour de la base de signatures antivirus |
ips-signature-version, ips-signature-date | Version et date de la dernière mise à jour de la base de signatures IPS |
license-expiration | Échéance la plus proche des licences FortiGuard (antivirus, IPS, filtrage web…), en cours ou expirées |
support-expiration | Échéance la plus proche des contrats de support FortiCare (matériel, 24x7…), en cours ou expirés, sinon celle des mises à jour (Firmware & General Updates) |
firmware-update-available | true si FortiGuard publie un correctif plus récent de la branche de FortiOS installée, sinon false. Une nouvelle branche, par exemple 7.6 pour un FortiGate en 7.4, ne compte pas. Aucune valeur quand le FortiGate ne joint pas FortiGuard. |
Les dates sont au format AAAA-MM-JJ.
Défauts de sécurité
Le connecteur lit l’accès d’administration des interfaces et la configuration globale du FortiGate, et signale les défauts suivants. Les interfaces désactivées sont ignorées.
| Défaut | Condition |
|---|---|
| FortiGate administration over a cleartext protocol | Une interface accepte l’administration en Telnet, sauf si Telnet est désactivé globalement (admin-telnet), ou en HTTP sans redirection vers HTTPS (admin-https-redirect) |
| FortiGate administration open on a WAN interface | Une interface de rôle WAN accepte l’administration en HTTPS, SSH, HTTP ou Telnet |
| FortiGate administration with weak TLS | L’administration HTTPS accepte une version antérieure à TLS 1.2 (admin-https-ssl-versions), ou la cryptographie forte est désactivée (strong-crypto) |
Les deux premiers défauts sont signalés par interface, le troisième par paramètre en cause : on peut ainsi en ignorer un sans masquer les autres.
Si le profil de la clé d’API ne permet pas de lire la configuration globale, le défaut de TLS n’est pas évalué, Telnet est signalé même s’il est désactivé globalement, et HTTP n’est pas signalé.
Dépannage
Seule la lecture de l’état du FortiGate est indispensable au scan. Quand le profil de la clé d’API refuse une autre lecture, le scan continue sans les informations correspondantes, et la sortie du script le note par une ligne de commentaire, par exemple # /api/v2/monitor/license/status: HTTP 403.
Une erreur passagère (délai dépassé, erreur 5xx) sur la lecture des adresses ou de la configuration fait échouer le scan : l’actif garde alors les adresses et les défauts du scan précédent.
| Erreur | Cause probable |
|---|---|
HTTP 401 | Clé d’API invalide, ou adresse du scanner absente des hôtes de confiance de l’administrateur REST API |
HTTP 403 | Profil de l’administrateur REST API sans accès en lecture |
| Erreur de certificat | Certificat auto-signé : cocher Désactiver la vérification de certificat dans l’identifiant |
HTTP <code>: not a FortiOS API response | Le port de la connexion n’est pas celui de l’interface d’administration HTTPS, par exemple celui du portail VPN SSL |
<nom>: … | Par un FortiManager : le FortiManager n’a pas pu relayer la requête au FortiGate <nom> |