Dokumentation / Monitoring und Sicherheit
Sicherheitsprüfungen
Der vollständige Katalog der automatisierten Sicherheitsprüfungen, die calmo.cloud gegen jeden Odoo-Dienst ausführt.
calmo.cloud führt die folgenden Prüfungen gegen jeden laufenden Odoo-Dienst aus. Jede Prüfung ist eine Black-Box-HTTP-Sonde gegen den öffentlichen Hostnamen des Dienstes — innerhalb deiner Odoo-Instanz wird nichts installiert.
Critical #
Standard-Admin-Passwort #
Versucht, sich mit admin / admin über /web/session/authenticate anzumelden. Ein erfolgreicher Login bedeutet, dass jeder im Internet die Datenbank übernehmen kann.
Lösung: In Odoo anmelden und das Passwort des Admin-Benutzers auf einen starken, einzigartigen Wert ändern.
Datenbankmanager exponiert #
Ruft /web/database/manager auf. Der Endpunkt muss 403 Forbidden zurückgeben — die Odoo-Datenbankverwaltungs-Oberfläche darf niemals aus dem öffentlichen Internet erreichbar sein, da sie die Master-Passwort-Abfrage zeigt und zum Erstellen, Löschen oder Sichern von Datenbanken verwendet werden kann.
Lösung: list_db = False (und ein starkes admin_passwd) in der Odoo-Konfiguration setzen und den Dienst neu deployen.
Datenbank-Selektor exponiert #
Ruft /web/database/selector auf. Der Endpunkt muss 403 Forbidden zurückgeben — ein erreichbarer Selektor bestätigt, dass list_db noch aktiviert ist, und liefert einem Angreifer die Liste der Datenbanken auf dem Host.
Lösung: Wie oben — list_db = False setzen.
Datenbankliste über JSON-RPC #
Ruft den JSON-RPC /web/database/list auf. Auch wenn die Selektor-UI deaktiviert ist, kann ein falsch konfigurierter Server immer noch auf den RPC-Endpunkt antworten und Datenbanknamen leaken.
Lösung: list_db = False setzen und bestätigen, dass der RPC-Endpunkt eine leere Liste zurückgibt.
HTTPS erzwungen #
Sendet eine einfache HTTP-Anfrage und folgt der Weiterleitung. Antwortet der Dienst auf HTTP-Verkehr ohne Weiterleitung auf HTTPS, können Zugangsdaten und Session-Cookies abgefangen werden.
Lösung: Sicherstellen, dass der Traefik-Reverse-Proxy in Ordnung ist und der Dienst ein gültiges Let's-Encrypt-Zertifikat hat.
Warning #
Website-Info-Disclosure #
Ruft /website/info auf. Der Endpunkt muss 403 Forbidden zurückgeben — einige Odoo-Versionen geben die exakte Odoo-Version auf dieser Seite preis, was Angreifern das gezielte Ausnutzen bekannter CVEs erleichtert.
Lösung: Die Route /website/info am Reverse-Proxy blockieren oder auf eine Version aktualisieren, die sie nicht freigibt.
Server-Header-Leak #
Bestätigt, dass der Server-Antwortheader weder Werkzeug, Odoo noch Python preisgibt. Das Entfernen des Banners ist Defense-in-Depth — es stoppt keinen Angriff, verlangsamt aber automatisierte Scanner.
Lösung: Den Server-Header am Reverse-Proxy entfernen oder umschreiben.
HSTS-Header #
Prüft /web/login auf einen Strict-Transport-Security-Antwortheader. HSTS weist Browser an, deine Domain immer über HTTPS zu nutzen, und verhindert Downgrade-Angriffe.
Lösung: Den HSTS-Header in der Traefik-Middleware für den Dienst hinzufügen.
Clickjacking-Schutz #
Prüft /web/login entweder auf einen X-Frame-Options-Header oder eine frame-ancestors-Direktive in Content-Security-Policy. Ohne sie kann deine Login-Seite in einem bösartigen Iframe eingebettet werden.
Lösung: X-Frame-Options: SAMEORIGIN (oder eine CSP-frame-ancestors-Direktive) am Reverse-Proxy hinzufügen.
Info #
Login erreichbar #
Eine positive Kontrolle, die bestätigt, dass /web/login 200 zurückgibt. Schlägt diese Prüfung fehl, ist der Dienst offline oder der Proxy leitet falsch weiter — keine andere Sicherheitsprüfung ist sinnvoll, solange diese nicht erfolgreich ist.