Ce que l'agent lit, et ce qu'il envoie
Dernière mise à jour:
Un agent de sécurité tourne en root sur vos serveurs : vous devez savoir exactement ce qu'il fait de cet accès. Cette page détaille ce que l'agent InfraFence lit, ce qu'il modifie, ce qu'il envoie au tableau de bord et ce qui se passe quand le tableau de bord ne répond pas ou le refuse.
Inutile de nous croire sur parole : le code de l'agent est public sur GitHub, et chaque version peut être vérifiée grâce à sa signature.
Pourquoi il a besoin de root
L'agent gère le pare-feu (iptables et ipset), lit les logs et l'état réseau du système, et applique les corrections que vous demandez. Tout cela exige root. C'est un binaire Go statique unique, sans dépendances, qui tourne comme un service que vous pouvez arrêter à tout moment.
Ses règles de pare-feu se trouvent dans ses propres chaînes, nommées INFRAFENCE. Il ne modifie jamais vos règles et n'ajoute jamais de règle accept de lui-même : les seules règles accept sont celles que vous créez depuis le tableau de bord. Quand un autre outil recharge le pare-feu (csf -r, un rechargement d'ufw ou de firewalld, iptables-restore), l'agent remet ses chaînes en place.
Ce qu'il lit, et pourquoi
| Quoi | Pourquoi |
|---|---|
Le log d'authentification SSH (journal systemd, /var/log/auth.log ou /var/log/secure) | Force brute SSH et risque des sessions |
| Les logs d'accès du serveur web et l'audit log de ModSecurity | Pare-feu web et bots |
| Les logs de messagerie, de base 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, y compris .env et les fichiers de configuration | Analyse antimalware et 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 | Crypto miners et 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, quand Docker est présent | Logs et ports des conteneurs |
Lire un fichier, ce n'est pas l'envoyer. Tout ce qui figure dans ce tableau est analysé sur le serveur ; la section suivante détaille ce qui en sort.
Ce qu'il modifie
- Ses propres chaînes de pare-feu et ipsets : bannissements, liste d'autorisation, blocages de pays, ports fermés.
- Uniquement si vous activez Autoriser les modifications de la configuration du serveur web : ses règles ModSecurity et le blocage des user agents dans nginx ou Apache. Il ne modifie jamais une configuration gérée par un panneau d'hébergement.
- Uniquement quand vous, AutoMode ou le mode urgence le demandez : corrections de durcissement, ports fermés, blocages sortants, correctifs virtuels, mises à jour de sécurité et fichiers mis en quarantaine.
Chaque modification est vérifiée ensuite et annulée si SSH ou un site web ne répond plus. Le mode surveillance détecte tout et ne bloque rien, et une seule commande désinstalle l'agent et tout ce qu'il a ajouté.
Ce qu'il envoie au tableau de bord
Tout part vers le tableau de bord en HTTPS :
- un heartbeat régulier : 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é : l'adresse de l'attaquant, le type et l'heure de l'attaque, et les détails nécessaires pour la comprendre : pour une attaque web, la seule ligne de log qui l'a déclenchée ; pour un malware, le chemin du fichier et le texte trouvé ;
- la liste des paquets installés, pour le contrôle des vulnérabilités ;
- le hash SHA-256 des fichiers PHP analysés, pour les rechercher parmi les malwares connus.
Les logs et les fichiers complets ne quittent jamais le serveur. Il n'y a aucune télémétrie, et rien n'est partagé avec des tiers, à une exception près : les fonctions d'IA. Quand vous demandez une analyse IA, utilisez l'assistant ou préparez 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 vous le signale avant tout envoi. L'analyse instantanée, sur toutes les offres, n'envoie rien nulle part.
Jetons, mots de passe et double authentification
- Le jeton d'installation est à usage unique et valable une heure.
- Le jeton propre à l'agent est conservé dans
/etc/infrafence/config.json, lisible par root uniquement. Le tableau de bord n'en stocke qu'un hash : une copie de sa base de données ne contient aucun jeton d'agent utilisable. - Les modifications faites dans le tableau de bord parviennent à l'agent par un canal qui lui dit seulement de se synchroniser. L'agent récupère ensuite sa configuration en HTTPS avec son propre jeton : un message sur ce canal n'est jamais traité comme une instruction.
- Les mots de passe ne sont stockés que sous forme de hash. Les nouveaux mots de passe sont comparés aux fuites connues (Have I Been Pwned), et seuls les 5 premiers caractères de leur hash SHA-1 quittent votre navigateur.
- La double authentification (TOTP) est disponible pour chaque utilisateur. Une fois activée, c'est la base de données elle-même qui refuse les données de l'organisation à une session qui n'a pas passé l'étape du code. Approuver une action d'AutoMode exige une session 2FA.
Des versions signées, et comment les vérifier
Chaque version est compilée par GitHub Actions à partir du dépôt public, signée avec Cosign et publiée avec sa build provenance. L'agent n'installe une mise à jour que depuis les releases officielles sur GitHub, et seulement si son checksum et sa signature sont valides avec la clé publique intégrée à l'agent.
Pour vérifier vous-même le binaire de votre serveur, comparez son checksum avec celui de la release :
curl -sL https://github.com/infrafence/infrafence-agent/releases/latest/download/checksums.txt
sha256sum /usr/local/bin/infrafence-agentVérifiez sa signature Cosign :
cosign verify-blob \
--key https://raw.githubusercontent.com/infrafence/infrafence-agent/main/cosign.pub \
--signature https://github.com/infrafence/infrafence-agent/releases/latest/download/infrafence-agent-linux-amd64.sig \
/usr/local/bin/infrafence-agentEt sa build provenance, avec la GitHub CLI :
gh attestation verify infrafence-agent-linux-amd64 --repo infrafence/infrafence-agentPour une version antérieure, remplacez latest/download par download/v<version>. L'image de conteneur et le chart Helm sont signés eux aussi : voir SECURITY.md (en anglais).
Le code sur GitHub, sous BSL 1.1
L'agent est source-available sous la Business Source License 1.1 : vous pouvez lire et auditer chaque ligne avant de l'installer. L'usage en production est gratuit sur un nombre illimité de serveurs, y compris ceux de vos clients, tant que vous ne vous en servez pas pour proposer un produit concurrent. Quatre ans après la publication de chaque version, cette version passe sous licence Apache 2.0.
Le site et le tableau de bord
- HTTPS uniquement, avec HSTS pendant deux ans sur infrafence.com et tous ses sous-domaines.
- Une Content Security Policy stricte : des scripts provenant uniquement de notre domaine, chacun avec un nonce propre à chaque requête, et aucun affichage dans un cadre par d'autres sites.
- Des polices servies depuis notre propre domaine. Les cookies de mesure d'audience ou de publicité ne sont déposés que si vous les acceptez dans le bandeau cookies ; sans consentement, il n'y en a aucun.
Où sont les données
Le tableau de bord et sa base de données tournent sur des serveurs de Contabo GmbH en Allemagne, dans l'Union européenne. Stripe, pour les paiements, et le fournisseur d'IA, quand vous utilisez les fonctions d'IA, peuvent traiter des données hors de l'UE sur la base des clauses contractuelles types de la Commission européenne ou d'une décision d'adéquation. Nous ne vendons ni ne louons jamais de données personnelles.
La Privacy Policy (en anglais) indique chaque destinataire et la durée de conservation de chaque type de données.
Quand le tableau de bord ne répond pas
L'agent n'a jamais besoin du tableau de bord pour protéger le serveur : la détection, les bannissements et les blocages tournent tous sur le serveur. Les erreurs réseau, les délais dépassés, les échecs DNS et les erreurs serveur ne comptent jamais comme un refus : la protection reste donc active pendant toute la durée d'une panne. Les bannissements, la liste d'autorisation, les blocages de pays et les ports fermés restent en vigueur, les nouvelles attaques sont toujours bloquées, et les événements attendent dans une file jusqu'à ce que le tableau de bord réponde de nouveau.
Un refus, c'est autre chose : le tableau de bord refuse un agent dont le jeton a été révoqué, dont l'organisation est suspendue ou qui dépasse la limite de serveurs de son offre, par exemple après une résiliation ou une facture impayée.
- Pendant les 24 premières heures, la protection locale reste en vigueur et l'agent continue de redemander.
- Après 24 heures de refus sans une seule réponse favorable, l'agent désactive proprement sa protection : il retire ses chaînes de pare-feu et ses ipsets, ses règles du serveur web et sa surveillance antimalware, et la détection continue en mode surveillance uniquement. Les règles des autres outils ne sont jamais touchées.
- Là où le système le permet, un avis à la connexion indique qu'InfraFence ne protège plus le serveur.
- L'agent continue de redemander toutes les 30 minutes. À la première réponse favorable, la protection se réactive et l'avis est retiré.
Les propriétaires du compte reçoivent un e-mail 12 heures avant la désactivation, au moment de la désactivation et quand l'accès est rétabli.
Signaler une vulnérabilité
Écrivez à info@infrafence.com, le contact indiqué dans notre security.txt. Merci de ne pas ouvrir d'issue publique sur GitHub. Si possible, joignez les étapes pour reproduire le problème. Nous répondons sous 48 heures et, avec votre accord, nous vous citons dans les notes de version. La politique complète se trouve dans SECURITY.md (en anglais).
Essayez gratuitement sur 1 serveur
Starter protège entièrement un serveur, gratuitement et sans carte bancaire.
- 01
Créez un compte gratuit, puis ouvrez Serveurs › Ajouter un serveur pour obtenir le jeton d'installation. Il est valable une heure.
Créer le jeton - 02
Puis exécutez ceci en root sur le serveur :
curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --token <TOKEN>
