Bedrohungsschutz einrichten
Auris bietet drei konfigurierbare Schutzebenen, die in der Login-Sicherheits-Pipeline zusammenarbeiten: IP-Regeln (Netzwerk-Level-Blockierung), Erkennung verdächtiger Logins (Verhaltensanalyse) und CAPTCHA (Bot-Mitigation). Jede Ebene arbeitet unabhängig und kann an deine Sicherheitsanforderungen angepasst werden.
Diese Anleitung erklärt die praktische Einrichtung jeder Ebene und zeigt, wie sie in die vollständige Login-Pipeline passen.
Übersicht der Schutzebenen
| Ebene | Was sie tut | Wo sie läuft | Latenzauswirkung |
|---|---|---|---|
| IP-Allow/Block-Listen | Anfragen basierend auf Quell-IP/CIDR-Bereich blockieren oder erlauben | Vor der Authentifizierung | Vernachlässigbar (In-Memory-CIDR-Übereinstimmung) |
| CAPTCHA | Bots und automatisierte Skripte herausfordern | Vor der Authentifizierung | 100-500ms (externer Verifizierungs-API-Aufruf) |
| Erkennung verdächtiger Logins | Anomales Login-Verhalten erkennen (neues Gerät, unmögliche Reise, VPN) | Nach der Authentifizierung | 50-300ms (GeoIP-Lookup) |
Alle drei Ebenen sind gegenseitig nicht-blockierend — die Konfiguration einer beeinträchtigt die anderen nicht.
IP-Allow/Block-Listen
IP-Regeln verwenden CIDR-Notation, um zu steuern, welche IP-Adressen auf die Authentifizierungsendpunkte deines Tenants zugreifen können.
Regeltypen und Vorrang
| Regeltyp | Verhalten |
|---|---|
| BLOCK | Anfragen von übereinstimmenden IPs sofort mit HTTP 403 ablehnen |
| ALLOW | Datenverkehr von übereinstimmenden IPs explizit erlauben |
Vorrang: BLOCK-Regeln haben immer Vorrang vor ALLOW-Regeln innerhalb desselben Geltungsbereichs. Wenn eine IP sowohl einer BLOCK- als auch einer ALLOW-Regel entspricht, wird sie blockiert.
Geltungsbereich
Regeln können auf zwei Ebenen beschränkt werden:
- Tenant-Geltungsbereich (
scope: TENANT) — gilt für alle Anwendungen unter dem Tenant - Anwendungs-Geltungsbereich (
scope: APPLICATION) — gilt nur für eine bestimmte Anwendung
Anwendungs-bezogene Regeln werden nach Tenant-bezogenen Regeln ausgewertet. Ein BLOCK auf Tenant-Ebene kann nicht durch ein ALLOW auf Anwendungsebene überschrieben werden.
IP-Regeln einrichten
Zu IP-Regeln navigieren
In der Auris Console zu Einstellungen → IP-Regeln navigieren.
Block-Regel erstellen
Auf Regel hinzufügen klicken und konfigurieren:
{
"cidr": "203.0.113.0/24",
"type": "BLOCK",
"scope": "TENANT",
"label": "Bekannte Angriffsquelle",
"note": "Gesperrt nach Credential-Stuffing-Angriff am 01.06.2025"
}Temporäre Sperre erstellen
Für zeitlich begrenzte Sperren (z.B. während eines aktiven Angriffs) das temporäre Flag aktivieren:
{
"cidr": "198.51.100.42/32",
"type": "BLOCK",
"scope": "TENANT",
"label": "Temporäre Sperre - aktiver Angriff",
"isTemporary": true,
"expiresAt": "2025-07-01T00:00:00Z"
}Temporäre Regeln werden nach der Ablaufzeit automatisch deaktiviert.
Büro-Allow-Liste erstellen
Wenn du sicherstellen möchtest, dass deine Corporate-IPs immer erlaubt sind (auch während breiter Sperren):
{
"cidr": "10.0.0.0/8",
"type": "ALLOW",
"scope": "TENANT",
"label": "Unternehmensnetzwerk"
}Programmatische Verwaltung
IP-Regeln können auch über die API für automatisierte Incident Response verwaltet werden:
// IP-Bereich programmatisch sperren, nachdem ein Angriff erkannt wurde
await fetch('https://auth.yourdomain.com/api/ip-rules', {
method: 'POST',
headers: {
'Authorization': `Bearer ${adminToken}`,
'Content-Type': 'application/json',
'x-tenant': 'your-tenant',
},
body: JSON.stringify({
cidr: '192.0.2.0/24',
type: 'BLOCK',
scope: 'TENANT',
label: 'Automatische Sperre - Rate-Limit überschritten',
isTemporary: true,
expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
}),
})CIDR-Kurzreferenz
| Notation | Adressen | Beispiel |
|---|---|---|
/32 | 1 (einzelne IP) | 203.0.113.42/32 |
/24 | 256 | 203.0.113.0/24 |
/16 | 65.536 | 203.0.0.0/16 |
/8 | 16.777.216 | 10.0.0.0/8 |
Erkennung verdächtiger Logins
Nachdem die Anmeldedaten eines Benutzers verifiziert wurden, analysiert Auris den Login-Kontext auf Verhaltensanomalien mithilfe von fünf unabhängigen Detektoren.
Erkennungsmethoden
1. Neues Gerät
Ein Fingerabdruck-Hash wird aus Browser-User-Agent, Bildschirmauflösung und anderen stabilen Signalen berechnet. Erstmalige Geräte werden markiert. Der Fingerabdruck wird nach erfolgreichem Login für zukünftige Vergleiche aufgezeichnet.
2. Neue IP-Adresse
Auris verfolgt die IP-Adressen, von denen sich ein Benutzer zuvor angemeldet hat. Ein Login von einer IP, die für dieses Konto noch nicht gesehen wurde, löst den Detektor aus.
3. Neues Land
GeoIP-Lookup bestimmt das Land der Login-IP. Ein Land, das in der Login-Historie des Benutzers noch nicht vorkam, löst den Detektor aus.
4. Unmögliche Reise
Die geografische Entfernung zwischen dem aktuellen und dem jüngsten Login wird durch die verstrichene Zeit dividiert, um eine implizierte Reisegeschwindigkeit zu berechnen. Wenn die Geschwindigkeit den konfigurierten Schwellenwert überschreitet (Standard: 800 km/h), wird der Login als unmögliche Reise markiert.
5. VPN / Proxy / Rechenzentrum
GeoIP-Metadaten identifizieren IPs, die zu bekannten VPN-Anbietern, Proxys oder Cloud-Rechenzentren gehören. Diese werden standardmäßig markiert, können aber für Organisationen erlaubt werden, deren Benutzer häufig VPNs verwenden.
Aktionen konfigurieren
Jeder Detektor kann unabhängig mit einer von vier Aktionen konfiguriert werden:
| Aktion | Wirkung |
|---|---|
log | Ereignis nur in Audit-Logs aufzeichnen. Kein Benutzereinfluss. |
notify | Benachrichtigungs-E-Mail an den Benutzer senden. Login fährt fort. |
block | Login vollständig ablehnen. Benutzer muss einen Administrator kontaktieren. |
require_mfa | Login erlauben, aber MFA-Abschluss erzwingen, auch wenn MFA normalerweise nicht für diesen Benutzer erforderlich ist. |
Konfigurieren über Console → Einstellungen → Erkennung verdächtiger Logins:
| Detektor | Empfohlene Aktion | Hinweise |
|---|---|---|
| Neues Gerät | notify | Benutzer warnen, aber nicht blockieren — neue Geräte sind üblich |
| Neue IP | log | Die meisten Benutzer haben dynamische IPs. Blockieren wäre zu aggressiv. |
| Neues Land | require_mfa | Starkes Kompromittierungssignal. MFA-Verifizierung erzwingen. |
| Unmögliche Reise | block | Sehr starkes Signal. Blockieren und warnen. |
| VPN/Proxy | log | Abhängig von deiner Benutzerbasis. Blockieren, wenn VPN-Nutzung nicht erwartet wird. |
GeoIP-Provider
| Provider | Konfiguration | Latenz | Datenschutz |
|---|---|---|---|
| ip-api.com (Standard) | Keine Einrichtung erforderlich | 50-200ms pro Login (externer API-Aufruf) | IPs werden an Drittanbieter-Dienst gesendet |
| MaxMind GeoLite2 | GEO_IP_PROVIDER=maxmind, MAXMIND_DB_PATH=/pfad/zur/db | <1ms (lokale Datei-Suche) | Keine externen Aufrufe |
Für Produktionsbereitstellungen mit hohem Login-Volumen MaxMind-lokale-Datenbank verwenden, um Rate-Limits des kostenlosen ip-api.com-Tarifs zu vermeiden und externe API-Abhängigkeit zu eliminieren. Ein kostenloses MaxMind-Konto ist zum Herunterladen der GeoLite2-Datenbank erforderlich.
Ereignisse überprüfen
Verdächtige Login-Ereignisse sind sichtbar in Console → Einstellungen → Erkennung verdächtiger Logins → Ereignisse. Jedes Ereignis zeigt:
- Benutzer-E-Mail und -ID
- Erkennungsgrund (neues Gerät, unmögliche Reise, etc.)
- Schweregrad (niedrig, mittel, hoch)
- Durchgeführte Aktion (protokolliert, benachrichtigt, blockiert, MFA erforderlich)
- IP-Adresse, Land und Geräteinformationen
- Zeitstempel
Administratoren können Ereignisse als überprüft markieren, um den Untersuchungsstatus zu verfolgen.
CAPTCHA
CAPTCHA schützt Login-, Signup- und Passwort-Reset-Seiten vor automatisierten Bots. Auris unterstützt drei Provider und drei Auslösemodi.
Unterstützte Provider
| Provider | Typ | Einrichtung |
|---|---|---|
| Cloudflare Turnstile | Proof-of-Work, keine Bild-Challenges | dash.cloudflare.com → Turnstile → Site hinzufügen |
| hCaptcha | Bildbasierte Challenges | dashboard.hcaptcha.com |
| reCAPTCHA v3 | Score-basiert, unsichtbar | www.google.com/recaptcha |
Cloudflare Turnstile wird für die meisten Bereitstellungen empfohlen. Es bietet starken Bot-Schutz ohne Bild-Challenges (bessere Benutzererfahrung) und hat einen großzügigen kostenlosen Tarif.
Auslösemodi
| Modus | Wann CAPTCHA erscheint | Am besten für |
|---|---|---|
ALWAYS | Jeden Login-, Signup- und Passwort-Reset-Versuch | Hochsicherheitsumgebungen |
ON_SUSPICIOUS | Wenn der adaptive MFA-Risikoscore den konfigurierten Schwellenwert überschreitet | Ausgewogene Sicherheit und UX |
AFTER_FAILURES | Nach N aufeinanderfolgenden fehlgeschlagenen Login-Versuchen von derselben IP | Minimale Reibung für legitime Benutzer |
Einrichtungsschritte
Provider auswählen
CAPTCHA-Provider in Console → Einstellungen → CAPTCHA auswählen.
Keys konfigurieren
Site-Key (im Browser zum Rendern des CAPTCHA-Widgets verwendet) und Secret-Key (serverseitig zur Verifizierung von Antworten verwendet) vom Dashboard des Providers eingeben.
Auslösemodus festlegen
Wählen, wann CAPTCHA erscheinen soll:
- Für
AFTER_FAILURESden Fehlerschwellenwert festlegen (z.B. 3 aufeinanderfolgende Fehlschläge) - Für
ON_SUSPICIOUSwird der Schwellenwert aus dem adaptiven MFA-Risikoscore abgeleitet
Score-Schwellenwert festlegen (nur reCAPTCHA v3)
reCAPTCHA v3 gibt einen Score zwischen 0,0 (wahrscheinlich Bot) und 1,0 (wahrscheinlich Mensch) zurück. Den Mindest-Score-Schwellenwert für erfolgreiche Verifizierung festlegen (empfohlen: 0,5).
Auf Seiten aktivieren
Umschalten, welche Seiten CAPTCHA erfordern:
- Login-Seite (empfohlen)
- Signup-Seite (empfohlen)
- Passwort-Reset-Seite (optional)
Die CAPTCHA-Verifizierung wird serverseitig auf der Auris-API durchgeführt, bevor Anmeldedaten geprüft werden. Auch wenn ein Client das CAPTCHA-Widget im Browser umgeht, schlägt die Login-Anfrage ohne gültiges Verifizierungs-Token vom CAPTCHA-Provider fehl.
Die vollständige Login-Sicherheits-Pipeline
Wenn ein Benutzer versucht, sich anzumelden, durchläuft die Anfrage alle Schutzebenen in Reihenfolge. Jede Ebene kann die Pipeline kurzschließen:
Eingehende Login-Anfrage
|
v
1. IP-Allow/Block-Prüfung
BLOCK-Regel übereinstimmend? --> HTTP 403, Stopp
|
v
2. CAPTCHA-Verifizierung (falls konfiguriert)
Ungültiges oder fehlendes Token? --> HTTP 400, Stopp
|
v
3. Rate Limiting
Pro-IP- oder Pro-Benutzer-Limit überschritten? --> HTTP 429, Stopp
|
v
4. Brute-Force-Sperr-Prüfung
Konto oder IP gesperrt? --> HTTP 423, Stopp
|
v
5. Keycloak-Authentifizierung
Ungültige Anmeldedaten? --> Fehlschlag aufzeichnen, HTTP 401, Stopp
|
v
6. Analyse verdächtiger Logins
5 Detektoren ausführen, konfigurierte Aktionen ausführen
Aktion = blockieren? --> HTTP 403, Stopp
Aktion = MFA_erforderlich? --> MFA-Schritt erzwingen
|
v
7. Adaptives MFA-Risikoscoring
Gewichteter Score aus 5 Faktoren
Score über Schwellenwert? --> MFA-Step-up erforderlich
|
v
8. Token-Ausstellung
ACR/AMR-Claims setzen
Access Token + Refresh Token zurückgebenSchritte 1–4 sind schnelle, synchrone Prüfungen, die offensichtlich bösartigen Datenverkehr herausfiltern, bevor sie die teureren Authentifizierungs- und Analyseschritte erreichen.
Best Practices für die Produktion
-
Mit Logging beginnen: Alle Detektoren für verdächtige Logins zunächst im
log-Modus aktivieren. Ereignisse eine Woche lang überprüfen, um die Basislinie zu verstehen, bevor aufblockoderrequire_mfaumgestellt wird. -
Temporäre IP-Sperren verwenden: Während eines aktiven Angriffs temporäre BLOCK-Regeln mit 24-48-Stunden-Ablauf erstellen statt permanenter Sperren. Dies verhindert versehentliche langfristige Aussperrungen.
-
CAPTCHA mit Rate Limiting kombinieren:
AFTER_FAILURES-Auslösemodus verwenden, damit legitime Benutzer CAPTCHA nie sehen, während Angreifer es nach 3-5 fehlgeschlagenen Versuchen treffen. -
MaxMind lokal bereitstellen: Für Bereitstellungen mit mehr als 1000 Logins pro Stunde von ip-api.com auf MaxMind GeoLite2 umstellen, um externe API-Rate-Limits zu vermeiden und Latenz zu reduzieren.
-
Pipeline überwachen: Audit-Logs regelmäßig auf Muster überprüfen. Ein plötzlicher Anstieg von
impossible_travel- odernew_country-Erkennungen kann auf einen Credential-Stuffing-Angriff hinweisen. -
Mit MFA kombinieren: Bedrohungsschutz funktioniert am besten zusammen mit Multi-Faktor-Authentifizierung. MFA für alle Benutzer aktivieren und die Erkennung verdächtiger Logins verwenden, um Step-up-Auth für anomale Logins auszulösen.
API-Endpunkte
/api/ip-rulesRequires: manage:usersAlle IP-Regeln für den Tenant auflisten. Filterbar nach Typ, Geltungsbereich und aktivem Status.
/api/ip-rulesRequires: manage:usersEine neue IP-Allow- oder Block-Regel erstellen.
/api/ip-rules/:idRequires: manage:usersEine bestehende IP-Regel aktualisieren (Beschriftung ändern, Ablaufzeit verlängern, aktiven Status umschalten).
/api/ip-rules/:idRequires: manage:usersEine IP-Regel löschen.
/api/suspicious-login/eventsRequires: manage:usersVerdächtige Login-Ereignisse auflisten. Filterbar nach Schweregrad, Grund, Benutzer und Datumsbereich.
/api/suspicious-login/events/:id/reviewRequires: manage:usersEin verdächtiges Login-Ereignis als überprüft markieren.
/api/suspicious-login/configRequires: manage:usersAktuelle Konfiguration der Erkennung verdächtiger Logins abrufen.
/api/suspicious-login/configRequires: manage:usersEinstellungen für die Erkennung verdächtiger Logins aktualisieren (Detektoren aktivieren/deaktivieren, Aktionen setzen, Schwellenwerte konfigurieren).
/api/captcha/configRequires: manage:usersAktuelle CAPTCHA-Konfiguration abrufen.
/api/captcha/configRequires: manage:usersCAPTCHA-Einstellungen aktualisieren (Provider, Keys, Auslösemodus, Score-Schwellenwert).
Erforderliche Berechtigungen
| Operation | Berechtigung |
|---|---|
| IP-Regeln verwalten | manage:users |
| Verdächtige Login-Ereignisse anzeigen/überprüfen | manage:users |
| Erkennung verdächtiger Logins konfigurieren | manage:users |
| CAPTCHA konfigurieren | manage:users |
| Sicherheitseinstellungen konfigurieren (Console) | Nur Tenant OWNER oder ADMIN |
Verwandte Anleitungen
- Angriffsschutz — Rate Limiting, Brute-Force-Sperrung, Passwortsicherheit und vollständige Pipeline-Referenz
- Multi-Faktor-Authentifizierung — TOTP, SMS-OTP, WebAuthn und adaptives MFA
- DPoP implementieren — Token-Bindung zur Verhinderung von Token-Diebstahl
- Sitzungsverwaltung — Benutzersitzungen und Sitzungsrichtlinien verwalten