InfraFenceInfraFence

Live Security Operations

Loslegen

Was der Agent liest und was er sendet

Zuletzt aktualisiert:

Ein Sicherheitsagent läuft auf deinen Servern als root. Du solltest also genau wissen, was er mit diesem Zugriff macht. Diese Seite zeigt, was der InfraFence-Agent liest, was er ändert, was er an das Dashboard sendet und was passiert, wenn das Dashboard nicht erreichbar ist oder ihn ablehnt.

Du musst uns nichts davon einfach glauben: Der Quellcode des Agenten ist öffentlich auf GitHub, und jedes Release lässt sich anhand seiner Signatur prüfen.

Warum er root braucht

Der Agent verwaltet die Firewall (iptables und ipset), liest die Logs und den Netzwerkzustand des Systems und wendet die Korrekturen an, die du anforderst. All das braucht root. Er ist ein einzelnes statisches Go-Binary ohne Abhängigkeiten und läuft als Dienst, den du jederzeit stoppen kannst.

Seine Firewall-Regeln liegen in eigenen Chains namens INFRAFENCE. Er ändert nie deine Regeln und fügt nie eine eigene Accept-Regel hinzu: Die einzigen Accept-Regeln sind die, die du im Dashboard anlegst. Wenn ein anderes Werkzeug die Firewall neu lädt (csf -r, ein Reload von ufw oder firewalld, iptables-restore), stellt der Agent seine Chains wieder her.

Was er liest, und warum

WasWarum
Das SSH-Authentifizierungslog (systemd-Journal, /var/log/auth.log oder /var/log/secure)SSH-Brute-Force und Sitzungsrisiko
Webserver-Zugriffslogs und das ModSecurity-Audit-LogWeb-Firewall und Bots
Mail-, Datenbank- und FTP-LogsBrute Force auf diese Dienste
DNS-Pakete (UDP-Port 53, nur lesend) und die Verbindungstabellen in /procAusgehende und DNS-Bedrohungen, Portscans
Website-Dateien, auch .env und KonfigurationsdateienMalware-Scan und Framework-Prüfungen
WordPress-Beiträge, -Optionen und -Benutzer, mit den Zugangsdaten aus wp-config.phpWordPress-Datenbankscan
Laufende ProzesseKrypto-Miner und Reverse Shells
Überwachte Systemdateien (Konten, sudoers, SSH-Schlüssel, cron, systemd-Units)Dateiintegrität
Installierte Pakete und ihre VersionenSchwachstellen (CVE)
Der Docker-Socket, nur lesend, wenn Docker vorhanden istContainer-Logs und -Ports

Eine Datei zu lesen heißt nicht, sie zu senden. Alles in dieser Tabelle wird auf dem Server ausgewertet; der nächste Abschnitt zeigt, was ihn verlässt.

Was er ändert

  • Seine eigenen Firewall-Chains und ipsets: Sperren, die Whitelist, Ländersperren, geschlossene Ports.
  • Nur wenn du Änderungen an der Webserver-Konfiguration erlauben einschaltest: seine ModSecurity-Regeln und das Blockieren von User-Agents in nginx oder Apache. Eine Konfiguration, die ein Hosting-Panel verwaltet, ändert er nie.
  • Nur wenn du, AutoMode oder der Notfallmodus es anfordern: Härtungskorrekturen, geschlossene Ports, ausgehende Sperren, virtuelle Patches, Sicherheitsupdates und Dateien in Quarantäne.

Jede Änderung wird danach geprüft und rückgängig gemacht, wenn SSH oder eine Website nicht mehr antwortet. Der Überwachungsmodus erkennt alles und blockiert nichts, und ein einziger Befehl deinstalliert den Agenten und alles, was er hinzugefügt hat.

Was er an das Dashboard sendet

Alles geht per HTTPS an das Dashboard:

  • ein regelmäßiger Heartbeat: Agent-Version, Adresse, Systemmetriken (CPU, Arbeitsspeicher, Festplatte, Last, Netzwerk), lauschende Dienste und Ports, der Webserver und die Domains, die er ausliefert, Firewall-Zähler;
  • Sicherheitsereignisse: die Adresse des Angreifers, Art und Zeitpunkt des Angriffs und die Details, die man zum Verständnis braucht: bei einem Web-Angriff die eine Logzeile, die ihn ausgelöst hat, bei Malware der Dateipfad und der gefundene Text;
  • die Liste der installierten Pakete, für die Schwachstellenprüfung;
  • der SHA-256-Hash gescannter PHP-Dateien, um sie mit bekannter Malware abzugleichen.

Vollständige Logs und Dateien verlassen den Server nie. Es gibt keine Telemetrie, und nichts wird an Dritte weitergegeben, mit einer Ausnahme: die KI-Funktionen. Wenn du eine KI-Analyse anforderst, den Assistenten nutzt oder einen Bericht entwirfst, und solange AutoMode oder der Notfallmodus aktiv ist, werden die nötigen Ereignisse an Anthropic gesendet, um die Antwort zu erstellen. Das Dashboard sagt dir das, bevor du etwas sendest. Die Sofortanalyse, die es in jedem Tarif gibt, sendet nichts nach außen.

Tokens, Passwörter und Zwei-Faktor-Authentifizierung

  • Das Installations-Token ist nur einmal verwendbar und eine Stunde gültig.
  • Das eigene Token des Agenten liegt in /etc/infrafence/config.json und ist nur für root lesbar. Das Dashboard speichert davon nur einen Hash, eine Kopie der Dashboard-Datenbank enthält also kein brauchbares Agent-Token.
  • Änderungen im Dashboard erreichen den Agenten über einen Kanal, der ihm nur sagt, dass er synchronisieren soll. Der Agent holt seine Konfiguration dann per HTTPS mit seinem eigenen Token ab: Eine Nachricht auf diesem Kanal gilt nie als Anweisung.
  • Passwörter werden nur als Hash gespeichert. Neue Passwörter werden mit bekannten Datenlecks abgeglichen (Have I Been Pwned), wobei nur die ersten 5 Zeichen ihres SHA-1-Hashes deinen Browser verlassen.
  • Zwei-Faktor-Authentifizierung (TOTP) steht jedem Benutzer zur Verfügung. Ist sie aktiv, verweigert die Datenbank selbst die Daten der Organisation jeder Sitzung, die den Code-Schritt nicht bestanden hat. Eine AutoMode-Aktion freizugeben erfordert eine 2FA-Sitzung.

Signierte Releases, und wie du eines prüfst

Jedes Release wird von GitHub Actions aus dem öffentlichen Repository gebaut, mit Cosign signiert und mit Build-Provenance veröffentlicht. Der Agent installiert ein Update nur aus den offiziellen GitHub-Releases und nur dann, wenn Prüfsumme und Signatur mit dem im Agenten eingebauten öffentlichen Schlüssel übereinstimmen.

Um das Binary auf deinem Server selbst zu prüfen, vergleiche seine Prüfsumme mit der des Releases:

curl -sL https://github.com/infrafence/infrafence-agent/releases/latest/download/checksums.txt
sha256sum /usr/local/bin/infrafence-agent

Prüfe seine Cosign-Signatur:

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-agent

Und seine Build-Provenance, mit der GitHub CLI:

gh attestation verify infrafence-agent-linux-amd64 --repo infrafence/infrafence-agent

Für eine ältere Version ersetzt du latest/download durch download/v<Version>. Auch das Container-Image und das Helm-Chart sind signiert: siehe SECURITY.md (auf Englisch).

Quellcode auf GitHub, unter BSL 1.1

Der Agent ist source-available unter der Business Source License 1.1. Du kannst jede Zeile lesen und prüfen, bevor du ihn installierst. Der Produktiveinsatz ist auf beliebig vielen Servern kostenlos, auch auf denen deiner Kunden, solange du ihn nicht nutzt, um ein Konkurrenzprodukt anzubieten. Vier Jahre nach Veröffentlichung jeder Version steht diese Version unter der Apache License 2.0 zur Verfügung.

Die Website und das Dashboard

  • Nur HTTPS, mit HSTS für zwei Jahre auf infrafence.com und allen Subdomains.
  • Eine strikte Content Security Policy: Skripte nur von unserer eigenen Domain, jedes mit einer Nonce pro Anfrage, und kein Einbetten in Frames fremder Websites.
  • Schriften kommen von unserer eigenen Domain. Analyse- oder Werbe-Cookies werden nur gesetzt, wenn du sie im Cookie-Banner akzeptierst; ohne Einwilligung gibt es keine.

Wo die Daten liegen

Das Dashboard und seine Datenbank laufen auf Servern der Contabo GmbH in Deutschland, in der Europäischen Union. Stripe, für Zahlungen, und der KI-Anbieter, wenn du die KI-Funktionen nutzt, können Daten außerhalb der EU verarbeiten, auf Grundlage der Standardvertragsklauseln der Europäischen Kommission oder eines Angemessenheitsbeschlusses. Wir verkaufen oder vermieten nie personenbezogene Daten.

Die Datenschutzerklärung nennt jeden Empfänger und wie lange jede Art von Daten gespeichert wird.

Wenn das Dashboard nicht erreichbar ist

Der Agent braucht das Dashboard nie, um den Server zu schützen: Erkennung, Sperren und Blockaden laufen alle auf dem Server. Netzwerkfehler, Timeouts, DNS-Fehler und Serverfehler gelten nie als Ablehnung, der Schutz bleibt also aktiv, wie lange ein Ausfall auch dauert. Sperren, die Whitelist, Ländersperren und geschlossene Ports bleiben in Kraft, neue Angriffe werden weiter blockiert, und Ereignisse warten in einer Warteschlange, bis das Dashboard wieder antwortet.

Eine Ablehnung ist etwas anderes: Das Dashboard lehnt einen Agenten ab, dessen Token widerrufen wurde, dessen Organisation gesperrt ist oder der über dem Server-Limit seines Tarifs liegt, zum Beispiel nach einer Kündigung oder einer unbezahlten Rechnung.

  1. In den ersten 24 Stunden bleibt der lokale Schutz in Kraft, und der Agent fragt weiter an.
  2. Nach 24 Stunden Ablehnung ohne eine einzige erfolgreiche Antwort schaltet der Agent seinen Schutz sauber ab: Seine Firewall-Chains und ipsets, seine Webserver-Regeln und seine Malware-Überwachung werden entfernt, und die Erkennung läuft nur noch im Überwachungsmodus weiter. Regeln anderer Werkzeuge werden nie angefasst.
  3. Wo das System es unterstützt, weist ein Hinweis beim Login darauf hin, dass InfraFence den Server nicht mehr schützt.
  4. Der Agent fragt weiterhin alle 30 Minuten an. Bei der ersten erfolgreichen Antwort ist der Schutz wieder aktiv, und der Hinweis wird entfernt.

Die Inhaber des Kontos erhalten eine E-Mail 12 Stunden vor dem Abschalten, beim Abschalten und wenn der Zugang wiederhergestellt ist.

Eine Schwachstelle melden

Schreib an info@infrafence.com, den Kontakt aus unserer security.txt. Bitte eröffne kein öffentliches Issue auf GitHub. Wenn möglich, beschreib die Schritte zum Nachvollziehen. Wir antworten innerhalb von 48 Stunden und nennen dich mit deinem Einverständnis in den Release Notes. Die vollständige Richtlinie steht in SECURITY.md (auf Englisch).

Kostenlos auf 1 Server testen

Starter schützt einen Server vollständig, kostenlos und ohne Kreditkarte.

  1. 01

    Erstelle ein kostenloses Konto und öffne dann Server › Server hinzufügen, um dein Installations-Token zu erhalten. Es ist eine Stunde gültig.

    Token erstellen
  2. 02

    Führe dann als root auf dem Server aus:

    curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --token <TOKEN>