Modèle de sécurité
Ce à quoi l'agent InfraFence accède sur votre serveur et pourquoi, ce qu'il envoie au tableau de bord, comment les jetons sont stockés, comment les versions sont signées, les fonctions IA et la licence BSL 1.1.
Dernière mise à jour:
Faire tourner un agent de sécurité, c'est lui donner root sur vos serveurs. Cette page dit exactement ce qu'il en fait.
Pourquoi root
L'agent gère le pare-feu (iptables et ipset), lit les journaux et l'état réseau du système, et applique les corrections que vous demandez. Tout cela nécessite root. Il s'exécute sous la forme d'un seul binaire statique sans dépendances, en tant que service que vous pouvez arrêter à tout moment.
Ce qu'il lit
| Quoi | Pourquoi |
|---|---|
Le journal d'authentification SSH (journal systemd, /var/log/auth.log ou /var/log/secure) |
Force brute, risque des sessions |
| Les journaux d'accès du serveur web, le journal d'audit ModSecurity | Pare-feu web, bots |
| Les journaux de messagerie, de bases de données et FTP | Force brute sur ces services |
Les paquets DNS (port UDP 53, en lecture seule) et les tables de connexions dans /proc |
Menaces sortantes et DNS, scans de ports |
Les fichiers des sites web, y compris .env et les fichiers de configuration |
Analyse des malwares, contrôles des frameworks |
Les articles, options et utilisateurs WordPress (avec les identifiants de wp-config.php) |
Analyse de la base de données WordPress |
| Les processus en cours d'exécution | Mineurs de cryptomonnaie, reverse shells |
| Les fichiers système surveillés (comptes, sudoers, clés SSH, cron, unités systemd) | Intégrité des fichiers |
| Les paquets installés et leurs versions | Vulnérabilités (CVE) |
| Le socket Docker, en lecture seule, lorsque Docker est présent | Journaux et ports des conteneurs |
Ce qu'il modifie
- Ses propres chaînes de pare-feu et ipsets. Vos règles ne sont jamais modifiées, et il n'ajoute jamais d'
ACCEPT. - Uniquement si vous activez Autoriser les modifications de la configuration du serveur web : ses règles ModSecurity et le blocage par user agent dans nginx ou Apache.
- Uniquement si vous, AutoMode ou le mode urgence le demandez : corrections de durcissement dans des fichiers qui lui sont propres, ports fermés, blocages sortants, correctifs virtuels, mises à jour de sécurité, fichiers mis en quarantaine.
Chaque modification du serveur est vérifiée ensuite et annulée si SSH ou un site cesse de répondre. La désinstallation retire tout cela.
Ce qu'il envoie
Tout part vers le tableau de bord en HTTPS :
- un signal toutes les 60 secondes : version de l'agent, adresse, métriques système (CPU, mémoire, disque, charge, réseau), services et ports en écoute, le serveur web et les domaines qu'il sert, compteurs du pare-feu ;
- les événements de sécurité : adresse de l'attaquant, type, heure et les détails nécessaires pour les comprendre ; pour une attaque web, la seule ligne de journal qui l'a déclenchée ; pour un malware, le chemin du fichier et le texte détecté ;
- la liste des paquets installés, pour le contrôle des vulnérabilités ;
- le SHA-256 des fichiers PHP analysés, pour les rechercher parmi les fichiers malveillants connus.
Les journaux et fichiers complets ne quittent jamais le serveur. Pas de télémétrie, rien n'est partagé avec des tiers, sauf pour les fonctions IA ci-dessous.
Jetons
- Le jeton d'installation est à usage unique, valable une heure, et n'est pas conservé sur le serveur après l'enregistrement.
- Le jeton propre à l'agent est stocké dans
/etc/infrafence/config.json, lisible uniquement par root. Le tableau de bord n'en garde qu'un hash : une copie de la base de données du tableau de bord ne contient donc aucun jeton d'agent utilisable. Les clés de cluster pour Kubernetes sont aussi stockées sous forme de hash et affichées une seule fois. - Les modifications faites depuis le tableau de bord arrivent par un canal temps réel qui dit seulement à l'agent de se synchroniser : l'agent récupère alors sa configuration en HTTPS avec son propre jeton. Un message sur ce canal n'est jamais pris pour une instruction.
Versions signées
Chaque version est construite par GitHub Actions, signée avec Cosign et publiée avec sa provenance de build. L'agent n'installe une mise à jour que si sa somme de contrôle et sa signature sont toutes deux validées par la clé publique intégrée à l'agent, et uniquement depuis les releases GitHub officielles. Voir Vérifier une version.
Fonctions IA
Les fonctions IA s'exécutent dans le tableau de bord, jamais dans l'agent. Lorsque vous demandez une analyse IA, utilisez l'assistant ou rédigez un rapport, et tant qu'AutoMode ou le mode urgence est actif, les événements nécessaires sont envoyés à Anthropic pour produire la réponse. Le tableau de bord l'indique à chaque fois avant l'envoi. L'analyse instantanée, disponible sur toutes les offres, n'envoie rien nulle part.
Quand le tableau de bord est injoignable
La protection reste active. Voir Quand le tableau de bord est injoignable.
Licence
L'agent est en source disponible sous la Business Source License 1.1 (concédant : ComCart S.r.l.). L'utilisation en production est gratuite sur autant de serveurs que vous voulez, y compris ceux de vos clients, tant que vous ne vous en servez pas pour créer un produit concurrent. Quatre ans après chaque version, cette version devient disponible sous la licence Apache 2.0. Vous pouvez lire et auditer chaque ligne sur github.com/infrafence/infrafence-agent. Les plugins de panneau sont sous la même licence.
