# Sécurité Cloudflare

{{#include ../../banners/hacktricks-training.md}}

Dans un compte Cloudflare, il y a certains **paramètres généraux et services** qui peuvent être configurés. Sur cette page, nous allons **analyser les paramètres liés à la sécurité de chaque section :**

<figure><img src="../../images/image (117).png" alt=""><figcaption></figcaption></figure>

## Sites Web

Examinez chacun avec :

{{#ref}}
cloudflare-domains.md
{{#endref}}

### Enregistrement de domaine

- [ ] Dans **`Transférer des domaines`**, vérifiez qu'il n'est pas possible de transférer un domaine.

Examinez chacun avec :

{{#ref}}
cloudflare-domains.md
{{#endref}}

## Analytique

_Je n'ai rien trouvé à vérifier pour un examen de sécurité de configuration._

## Pages

Sur chaque page de Cloudflare :

- [ ] Vérifiez les **informations sensibles** dans le **`Journal de construction`**.
- [ ] Vérifiez les **informations sensibles** dans le **dépôt Github** assigné aux pages.
- [ ] Vérifiez le potentiel compromis du dépôt github via **injection de commande de workflow** ou compromis de `pull_request_target`. Plus d'infos sur la [**page de sécurité Github**](../github-security/).
- [ ] Vérifiez les **fonctions vulnérables** dans le répertoire `/fuctions` (s'il y en a), vérifiez les **redirections** dans le fichier `_redirects` (s'il y en a) et les **en-têtes mal configurés** dans le fichier `_headers` (s'il y en a).
- [ ] Vérifiez les **vulnérabilités** dans la **page web** via **blackbox** ou **whitebox** si vous pouvez **accéder au code**.
- [ ] Dans les détails de chaque page `/<page_id>/pages/view/blocklist/settings/functions`. Vérifiez les **informations sensibles** dans les **`Variables d'environnement`**.
- [ ] Dans la page de détails, vérifiez également la **commande de construction** et le **répertoire racine** pour des **injections potentielles** pouvant compromettre la page.

## **Workers**

Sur chaque worker de Cloudflare, vérifiez :

- [ ] Les déclencheurs : Qu'est-ce qui fait déclencher le worker ? Un **utilisateur peut-il envoyer des données** qui seront **utilisées** par le worker ?
- [ ] Dans les **`Paramètres`**, vérifiez les **`Variables`** contenant des **informations sensibles**.
- [ ] Vérifiez le **code du worker** et recherchez des **vulnérabilités** (surtout dans les endroits où l'utilisateur peut gérer l'entrée).
- Vérifiez les SSRFs retournant la page indiquée que vous pouvez contrôler.
- Vérifiez les XSS exécutant du JS à l'intérieur d'une image svg.
- Il est possible que le worker interagisse avec d'autres services internes. Par exemple, un worker peut interagir avec un bucket R2 stockant des informations obtenues à partir de l'entrée. Dans ce cas, il serait nécessaire de vérifier quelles capacités le worker a sur le bucket R2 et comment cela pourrait être abusé à partir de l'entrée utilisateur.

> [!WARNING]
> Notez qu'en règle générale, un **Worker reçoit une URL** telle que `<worker-name>.<account>.workers.dev`. L'utilisateur peut le définir sur un **sous-domaine**, mais vous pouvez toujours y accéder avec cette **URL d'origine** si vous la connaissez.

## R2

Sur chaque bucket R2, vérifiez :

- [ ] Configurez la **politique CORS**.

## Stream

TODO

## Images

TODO

## Centre de sécurité

- [ ] Si possible, exécutez un **scan `Security Insights`** et un **scan `Infrastructure`**, car ils **mettront en évidence** des informations intéressantes sur la **sécurité**.
- [ ] Vérifiez simplement **ces informations** pour des erreurs de configuration de sécurité et des informations intéressantes.

## Turnstile

TODO

## **Zero Trust**

{{#ref}}
cloudflare-zero-trust-network.md
{{#endref}}

## Redirections en masse

> [!NOTE]
> Contrairement aux [Redirections dynamiques](https://developers.cloudflare.com/rules/url-forwarding/dynamic-redirects/), les [**Redirections en masse**](https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/) sont essentiellement statiques — elles ne prennent pas en charge les opérations de remplacement de chaîne ou les expressions régulières. Cependant, vous pouvez configurer des paramètres de redirection d'URL qui affectent leur comportement de correspondance d'URL et leur comportement d'exécution.

- [ ] Vérifiez que les **expressions** et les **exigences** pour les redirections **ont du sens**.
- [ ] Vérifiez également les **points de terminaison cachés sensibles** qui contiennent des informations intéressantes.

## Notifications

- [ ] Vérifiez les **notifications.** Ces notifications sont recommandées pour la sécurité :
- `Facturation basée sur l'utilisation`
- `Alerte d'attaque DDoS HTTP`
- `Alerte d'attaque DDoS de couche 3/4`
- `Alerte d'attaque DDoS HTTP avancée`
- `Alerte d'attaque DDoS de couche 3/4 avancée`
- `Surveillance basée sur le flux : attaque volumétrique`
- `Alerte de détection de fuite de route`
- `Alerte d'expiration de certificat mTLS d'accès`
- `Alerte SSL pour les noms d'hôtes personnalisés SaaS`
- `Alerte SSL universel`
- `Alerte de détection de changement de code nouveau dans le moniteur de script`
- `Alerte de nouveau domaine dans le moniteur de script`
- `Alerte de nouveau domaine malveillant dans le moniteur de script`
- `Alerte de nouveau script malveillant dans le moniteur de script`
- `Alerte de nouvelle URL malveillante dans le moniteur de script`
- `Alerte de nouveaux scripts dans le moniteur de script`
- `Alerte de nouveau script dépassant la longueur maximale de l'URL dans le moniteur de script`
- `Alerte d'événements de sécurité avancés`
- `Alerte d'événements de sécurité`
- [ ] Vérifiez toutes les **destinations**, car il pourrait y avoir des **informations sensibles** (authentification http de base) dans les urls de webhook. Assurez-vous également que les urls de webhook utilisent **HTTPS**.
- [ ] En vérification supplémentaire, vous pourriez essayer de **imiter une notification Cloudflare** à un tiers, peut-être que vous pouvez d'une manière ou d'une autre **injecter quelque chose de dangereux**.

## Gérer le compte

- [ ] Il est possible de voir les **4 derniers chiffres de la carte de crédit**, la **date d'expiration** et l'**adresse de facturation** dans **`Facturation` -> `Informations de paiement`**.
- [ ] Il est possible de voir le **type de plan** utilisé dans le compte dans **`Facturation` -> `Abonnements`**.
- [ ] Dans **`Membres`**, il est possible de voir tous les membres du compte et leur **rôle**. Notez que si le type de plan n'est pas Entreprise, seuls 2 rôles existent : Administrateur et Super Administrateur. Mais si le **plan utilisé est Entreprise**, [**plus de rôles**](https://developers.cloudflare.com/fundamentals/account-and-billing/account-setup/account-roles/) peuvent être utilisés pour suivre le principe du moindre privilège.
- Par conséquent, chaque fois que cela est possible, il est **recommandé** d'utiliser le **plan Entreprise**.
- [ ] Dans Membres, il est possible de vérifier quels **membres** ont **2FA activé**. **Chaque** utilisateur devrait l'avoir activé.

> [!NOTE]
> Notez qu'il est heureusement que le rôle **`Administrateur`** ne donne pas de permissions pour gérer les adhésions (**ne peut pas élever les privilèges ou inviter** de nouveaux membres).

## Enquête DDoS

[Consultez cette partie](cloudflare-domains.md#cloudflare-ddos-protection).

{{#include ../../banners/hacktricks-training.md}}
