# Cloudflare-Sicherheit
{{#include ../../banners/hacktricks-training.md}}
In einem Cloudflare-Konto gibt es einige **allgemeine Einstellungen und Dienste**, die konfiguriert werden können. Auf dieser Seite werden wir die **sicherheitsrelevanten Einstellungen** jeder Sektion **analysieren:**
## Websites
Überprüfen Sie jede mit:
{{#ref}}
cloudflare-domains.md
{{#endref}}
### Domainregistrierung
- [ ] In **`Transfer Domains`** überprüfen, ob es nicht möglich ist, eine Domain zu übertragen.
Überprüfen Sie jede mit:
{{#ref}}
cloudflare-domains.md
{{#endref}}
## Analytik
_Ich konnte nichts finden, um eine Sicherheitsüberprüfung der Konfiguration durchzuführen._
## Seiten
Auf jeder Cloudflare-Seite:
- [ ] Überprüfen Sie auf **sensible Informationen** im **`Build log`**.
- [ ] Überprüfen Sie auf **sensible Informationen** im **Github-Repository**, das den Seiten zugewiesen ist.
- [ ] Überprüfen Sie auf potenzielle Kompromittierungen des Github-Repos durch **Workflow-Befehlsinjektion** oder **pull_request_target**-Kompromittierung. Weitere Informationen auf der [**Github-Sicherheitsseite**](../github-security/).
- [ ] Überprüfen Sie auf **anfällige Funktionen** im Verzeichnis `/fuctions` (falls vorhanden), überprüfen Sie die **Weiterleitungen** in der Datei `_redirects` (falls vorhanden) und **falsch konfigurierte Header** in der Datei `_headers` (falls vorhanden).
- [ ] Überprüfen Sie auf **Schwachstellen** in der **Webseite** über **Blackbox** oder **Whitebox**, wenn Sie **auf den Code zugreifen** können.
- [ ] In den Details jeder Seite `//pages/view/blocklist/settings/functions`. Überprüfen Sie auf **sensible Informationen** in den **`Umgebungsvariablen`**.
- [ ] Überprüfen Sie auch auf der Detailseite den **Build-Befehl** und das **Stammverzeichnis** auf **potenzielle Injektionen**, um die Seite zu kompromittieren.
## **Workers**
Überprüfen Sie bei jedem Cloudflare-Worker:
- [ ] Die Trigger: Was löst den Worker aus? Kann ein **Benutzer Daten senden**, die vom Worker **verwendet** werden?
- [ ] In den **`Einstellungen`** überprüfen, ob **`Variablen`** mit **sensiblen Informationen** vorhanden sind.
- [ ] Überprüfen Sie den **Code des Workers** und suchen Sie nach **Schwachstellen** (insbesondere an Stellen, an denen der Benutzer die Eingabe verwalten kann).
- Überprüfen Sie auf SSRFs, die die angegebene Seite zurückgeben, die Sie kontrollieren können.
- Überprüfen Sie XSS, die JS innerhalb eines SVG-Bildes ausführen.
- Es ist möglich, dass der Worker mit anderen internen Diensten interagiert. Zum Beispiel kann ein Worker mit einem R2-Bucket interagieren, der Informationen speichert, die aus der Eingabe stammen. In diesem Fall wäre es notwendig zu überprüfen, welche Möglichkeiten der Worker über den R2-Bucket hat und wie dies durch die Benutzereingabe missbraucht werden könnte.
> [!WARNING]
> Beachten Sie, dass einem **Worker standardmäßig eine URL** wie `..workers.dev` zugewiesen wird. Der Benutzer kann sie auf eine **Subdomain** setzen, aber Sie können immer mit dieser **ursprünglichen URL** darauf zugreifen, wenn Sie sie kennen.
## R2
Überprüfen Sie bei jedem R2-Bucket:
- [ ] **CORS-Richtlinie** konfigurieren.
## Stream
TODO
## Bilder
TODO
## Sicherheitszentrum
- [ ] Wenn möglich, führen Sie einen **`Security Insights`**-**Scan** und einen **`Infrastructure`**-**Scan** durch, da sie interessante Informationen **sicherheitsrelevant** hervorheben.
- [ ] Überprüfen Sie einfach diese Informationen auf Sicherheitsfehlkonfigurationen und interessante Infos.
## Turnstile
TODO
## **Zero Trust**
{{#ref}}
cloudflare-zero-trust-network.md
{{#endref}}
## Bulk-Weiterleitungen
> [!NOTE]
> Im Gegensatz zu [Dynamischen Weiterleitungen](https://developers.cloudflare.com/rules/url-forwarding/dynamic-redirects/) sind [**Bulk-Weiterleitungen**](https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/) im Wesentlichen statisch — sie unterstützen **keine Zeichenfolgenersetzungs**-Operationen oder regulären Ausdrücke. Sie können jedoch URL-Weiterleitungsparameter konfigurieren, die ihr URL-Matching-Verhalten und ihr Laufzeitverhalten beeinflussen.
- [ ] Überprüfen Sie, ob die **Ausdrücke** und **Anforderungen** für Weiterleitungen **Sinn machen**.
- [ ] Überprüfen Sie auch auf **sensible versteckte Endpunkte**, die interessante Informationen enthalten.
## Benachrichtigungen
- [ ] Überprüfen Sie die **Benachrichtigungen.** Diese Benachrichtigungen werden für die Sicherheit empfohlen:
- `Usage Based Billing`
- `HTTP DDoS Attack Alert`
- `Layer 3/4 DDoS Attack Alert`
- `Advanced HTTP DDoS Attack Alert`
- `Advanced Layer 3/4 DDoS Attack Alert`
- `Flow-based Monitoring: Volumetric Attack`
- `Route Leak Detection Alert`
- `Access mTLS Certificate Expiration Alert`
- `SSL for SaaS Custom Hostnames Alert`
- `Universal SSL Alert`
- `Script Monitor New Code Change Detection Alert`
- `Script Monitor New Domain Alert`
- `Script Monitor New Malicious Domain Alert`
- `Script Monitor New Malicious Script Alert`
- `Script Monitor New Malicious URL Alert`
- `Script Monitor New Scripts Alert`
- `Script Monitor New Script Exceeds Max URL Length Alert`
- `Advanced Security Events Alert`
- `Security Events Alert`
- [ ] Überprüfen Sie alle **Ziele**, da es in Webhook-URLs **sensible Informationen** (Basis-HTTP-Auth) geben könnte. Stellen Sie auch sicher, dass Webhook-URLs **HTTPS** verwenden.
- [ ] Als zusätzliche Überprüfung könnten Sie versuchen, eine **Cloudflare-Benachrichtigung** an eine dritte Partei zu **imitieren**, vielleicht können Sie irgendwie **etwas Gefährliches injizieren**.
## Konto verwalten
- [ ] Es ist möglich, die **letzten 4 Ziffern der Kreditkarte**, die **Ablaufzeit** und die **Rechnungsadresse** in **`Billing` -> `Payment info`** zu sehen.
- [ ] Es ist möglich, den **Plan-Typ** im Konto in **`Billing` -> `Subscriptions`** zu sehen.
- [ ] In **`Members`** ist es möglich, alle Mitglieder des Kontos und ihre **Rolle** zu sehen. Beachten Sie, dass, wenn der Plan-Typ nicht Enterprise ist, nur 2 Rollen existieren: Administrator und Superadministrator. Wenn der verwendete **Plan Enterprise** ist, können [**weitere Rollen**](https://developers.cloudflare.com/fundamentals/account-and-billing/account-setup/account-roles/) verwendet werden, um das Prinzip der minimalen Berechtigung zu befolgen.
- Daher wird empfohlen, wann immer möglich den **Enterprise-Plan** zu verwenden.
- [ ] In Members ist es möglich zu überprüfen, welche **Mitglieder** **2FA aktiviert** haben. **Jeder** Benutzer sollte es aktiviert haben.
> [!NOTE]
> Beachten Sie, dass glücklicherweise die Rolle **`Administrator`** keine Berechtigungen zur Verwaltung von Mitgliedschaften gibt (**kann keine Privilegien erhöhen oder** neue Mitglieder einladen).
## DDoS-Untersuchung
[Überprüfen Sie diesen Teil](cloudflare-domains.md#cloudflare-ddos-protection).
{{#include ../../banners/hacktricks-training.md}}