Benachrichtigungen per E-Mail und Webhook
E-Mail-Adressen und Webhooks (Slack, Discord, ntfy oder JSON) hinzufügen, die Regel wählen (Änderungen, Probleme, immer), nach Kunde leiten und einen Kanal testen.
Die Seite Benachrichtigungen legt fest, wohin Neuigkeiten gesendet werden: nach jedem Audit, wenn eine Website ausfällt und wieder erreichbar ist, wenn ein ungewöhnliches Zertifikat ausgestellt wird, wenn eine Domain für ihren nächsten DMARC-Schritt bereit ist oder wenn die Punktzahl eines Lieferanten sinkt. Solange Sie keinen Kanal hinzufügen, wird keine Benachrichtigung gesendet.
Einen Kanal hinzufügen
- Öffnen Sie Benachrichtigungen und gehen Sie zu Kanal hinzufügen.
- Wählen Sie den Typ: E-Mail oder ab dem Solo-Tarif Webhook (ntfy, Slack, Discord oder ein beliebiger HTTPS-Endpunkt).
- Geben Sie die Adresse oder URL ein:
sie@example.comoder die Adresse des Webhooks, etwahttps://ntfy.sh/ihr-thema. - Wählen Sie, wann gesendet wird nach einem Audit: wenn sich etwas geändert hat, wenn es einen kritischen oder hohen Befund gibt oder bei jedem Audit.
- Wählen Sie in den Agency-Tarifen, ob der Kanal für den Arbeitsbereich (gesamter Arbeitsbereich) oder nur für einen Kunden gilt.
- Klicken Sie auf Kanal hinzufügen und dann auf Testen, um eine Testnachricht zu erhalten.
Nur Inhaber und Administratoren können Kanäle verwalten. Ein Arbeitsbereich kann bis zu zwanzig haben.
Eine E-Mail-Adresse bestätigen
Eine Adresse, die einem Mitglied des Arbeitsbereichs gehört, funktioniert sofort. Jede andere Adresse erhält zuerst eine Nachricht, in der ihr Inhaber um Bestätigung gebeten wird („Ja, diese Benachrichtigungen an mich senden“); bis dahin zeigt der Kanal „wartet auf Bestätigung durch den Inhaber“, und es wird nichts an ihn gesendet. So erhält niemand Benachrichtigungen, die er nie angefordert hat.
Die drei Regeln
Die Regel entscheidet, welche Audits an den Kanal gesendet werden:
| Regel | Gesendet, wenn |
|---|---|
| Änderungen | Sich seit dem vorherigen Audit etwas geändert hat: neue Befunde, neue Subdomains, Lookalike-Domains, Zertifikate, ein Rückgang der Punktzahl. |
| Probleme | Das Audit mindestens einen kritischen oder hohen Befund hat. |
| Immer | Nach jedem Audit. |
Die übrigen Benachrichtigungen folgen ihrer eigenen Logik:
- Ausfall und Wiederherstellung gehen an jeden Kanal, der sie annimmt (siehe unten), unabhängig von seiner Regel.
- Ungewöhnliche Zertifikate gehen an jeden Kanal, unabhängig von seiner Regel.
- Neu ausgenutzte Schwachstellen (ab dem Solo-Tarif) gehen an jeden Kanal, unabhängig von seiner Regel: Eine Schwachstelle, die das letzte Audit auf einer Ihrer Adressen gesehen hat, ist gerade in den Katalog ausgenutzter Schwachstellen der CISA oder der EU (ENISA) aufgenommen worden. Sie erscheint auch auf der Seite der Domain.
- DMARC-Schritte gehen an die Kanäle mit „Änderungen“ oder „Immer“.
- Lieferanten-Benachrichtigungen gehen an die Kanäle, die nicht auf einen Kunden beschränkt sind.
Webhooks
Die Nachricht wird für den Dienst formatiert, zu dem die Adresse gehört: Slack Incoming Webhooks, Discord-Webhooks und ntfy-Themen erhalten eine lesbare Nachricht; jede andere HTTPS-Adresse erhält JSON. Webhook-Adressen müssen öffentliche HTTPS-Adressen sein: Private und reservierte Adressen werden abgelehnt.
Signierte Webhooks
Jede Benachrichtigung an einen Webhook trägt einen Header Perimetry-Signature: t=<Zeit>,v1=<Signatur>, wobei die Signatur der HMAC-SHA256 in Hexadezimalschreibweise aus der Zeit, einem Punkt und dem unveränderten Body ist, mit dem Signaturgeheimnis des Kanals als Schlüssel. Eigentümer und Administratoren finden das Geheimnis unter dem Kanal auf der Seite Benachrichtigungen (Signaturgeheimnis), mit einer Schaltfläche für ein neues; das alte ist dann sofort ungültig. Auch Testnachrichten sind signiert.
Um nur unsere Benachrichtigungen anzunehmen, berechnen Sie denselben HMAC über den Body, wie er ankam, vergleichen ihn in konstanter Zeit und lehnen eine Zeit ab, die mehr als fünf Minuten von Ihrer abweicht:
import { createHmac, timingSafeEqual } from 'node:crypto';
// rawBody: the body exactly as received; header: the Perimetry-Signature header.
function fromPerimetry(rawBody, header, secret) {
const m = /^t=(\d+),v1=([0-9a-f]{64})$/.exec(header ?? '');
if (!m || Math.abs(Date.now() / 1000 - Number(m[1])) > 300) return false;
const want = createHmac('sha256', secret).update(`${m[1]}.${rawBody}`).digest();
const got = Buffer.from(m[2], 'hex');
return got.length === want.length && timingSafeEqual(got, want);
}
Slack, Microsoft Teams und PagerDuty
Slack- und Teams-Kanäle (ab dem Solo-Tarif) erhalten dieselben Benachrichtigungen als ausführliche Nachrichten mit Schaltflächen zum Bericht; PagerDuty (ab dem Agency-Tarif) erhält nur kritische Befunde und Ausfälle, die nach der Behebung von selbst aufgelöst werden. Siehe Slack, Microsoft Teams und PagerDuty. Jedes Mitglied erhält außerdem eine wöchentliche Zusammenfassung per E-Mail, einstellbar unter Einstellungen.
Ihre Kanäle verwalten
Jede Zeile der Tabelle Kanäle zeigt das Ziel, die Regel und das Datum der letzten Benachrichtigung mit ihrem Ergebnis (gesendet, fehlgeschlagen oder übersprungen, weil die Regel nicht erfüllt war). Von dort aus:
- Testen sendet eine Testnachricht (höchstens fünf pro Stunde);
- Pausieren stoppt einen Kanal, ohne ihn zu entfernen, und Aktivieren startet ihn wieder;
- Keine Ausfallwarnungen behält einen Kanal nur für Audits; Ausfallwarnungen nimmt sie wieder auf;
- Entfernen löscht den Kanal.
Jede Benachrichtigung per E-Mail enthält einen Link zurück zu dieser Seite, wo sie abgestellt werden kann.
Sprache
Benachrichtigungen werden in der Sprache des Arbeitsbereichs verfasst, die Inhaber und Administratoren unter Einstellungen › Sprache festlegen: E-Mails, Webhooks und Testnachrichten gleichermaßen, einschließlich der Titel der Befunde.
Kunden und Tickets
In den Agency-Tarifen können Sie auf derselben Seite Kunden anlegen, um Domains zu gruppieren und ihre Benachrichtigungen getrennt zu leiten (siehe Kunden und ihre Monatsberichte), und Ticket-Tracker verbinden (siehe Tickets).