Files
hacktricks-cloud/src/pentesting-ci-cd/cloudflare-security/README.md

6.6 KiB

Segurança do Cloudflare

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

Em uma conta Cloudflare existem algumas configurações e serviços gerais que podem ser configurados. Nesta página vamos analisar as configurações relacionadas à segurança de cada seção:

Sites

Revisar cada um com:

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

Registro de Domínio

  • Em Transfer Domains verifique que não é possível transferir nenhum domínio.

Revisar cada um com:

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

Analytics

Não encontrei nada para verificar em uma revisão de configuração de segurança.

Pages

Em cada Page do Cloudflare:

  • Verifique por informação sensível no Build log.
  • Verifique por informação sensível no repositório Github atribuído às Pages.
  • Verifique possível comprometimento do repositório Github via workflow command injection ou comprometimento por pull_request_target. Mais info na Github Security page.
  • Verifique por funções vulneráveis no diretório /fuctions (se houver), verifique os redirects no arquivo _redirects (se houver) e headers mal configurados no arquivo _headers (se houver).
  • Verifique vulnerabilidades na página web via blackbox ou whitebox se você puder acessar o código.
  • Nos detalhes de cada Page /<page_id>/pages/view/blocklist/settings/functions. Verifique por informação sensível nas Environment variables.
  • Na página de detalhes verifique também o build command e o root directory por potenciais injections para comprometer a Page.

Workers

Em cada Worker do Cloudflare, verifique:

  • Os triggers: O que faz o Worker disparar? Um usuário pode enviar dados que serão usados pelo Worker?
  • Em Settings, verifique por Variables que contenham informação sensível
  • Verifique o código do worker e procure por vulnerabilidades (especialmente em locais onde o usuário pode controlar a entrada)
  • Verifique por SSRFs que retornem a página indicada que você pode controlar
  • Verifique por XSSs executando JS dentro de uma imagem svg
  • É possível que o worker interaja com outros serviços internos. Por exemplo, um worker pode interagir com um bucket R2 armazenando informação nele obtida da entrada. Nesse caso, é necessário verificar quais capacidades o worker tem sobre o bucket R2 e como isso pode ser abusado a partir da entrada do usuário.

Warning

Note que por padrão um Worker recebe uma URL como <worker-name>.<account>.workers.dev. O usuário pode configurá-la para um subdomain, mas você sempre pode acessá-la com essa URL original se souber dela.

Para um abuso prático de Workers como pass-through proxies (IP rotation, FireProx-style), veja:

{{#ref}} cloudflare-workers-pass-through-proxy-ip-rotation.md {{#endref}}

R2

Em cada bucket R2 verifique:

  • Configure a CORS Policy.

Stream

TODO

Images

TODO

Security Center

  • Se possível, execute um Security Insights scan e um Infrastructure scan, pois eles irão destacar informações interessantes do ponto de vista de segurança.
  • Apenas verifique estas informações em busca de misconfigurações de segurança e informações interessantes

Turnstile

TODO

Zero Trust

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

Bulk Redirects

Note

Ao contrário dos Dynamic Redirects, Bulk Redirects são essencialmente estáticas — elas não suportam nenhuma operação de substituição de string ou expressões regulares. Entretanto, você pode configurar parâmetros de redirect de URL que afetam seu comportamento de correspondência de URL e seu comportamento em runtime.

  • Verifique se as expressões e regras para redirects fazem sentido.
  • Verifique também por endpoints ocultos sensíveis que contenham informações interessantes.

Notifications

  • Verifique as notifications. Estas notificações são recomendadas para segurança:
  • 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
  • Verifique todos os destinos, pois pode haver informação sensível (basic http auth) em webhook urls. Certifique-se também que webhook urls usem HTTPS
  • Como verificação extra, você pode tentar imitar uma notificação do Cloudflare para um terceiro; talvez consiga de alguma forma injetar algo perigoso

Manage Account

  • É possível ver os últimos 4 dígitos do cartão de crédito, a data de expiração e o endereço de cobrança em Billing -> Payment info.
  • É possível ver o tipo de plano usado na conta em Billing -> Subscriptions.
  • Em Members é possível ver todos os membros da conta e seu role. Note que se o tipo de plano não for Enterprise, existem apenas 2 roles: Administrator e Super Administrator. Mas se o plano for Enterprise, more roles podem ser usados para seguir o princípio do menor privilégio.
  • Portanto, sempre que possível é recomendado usar o Enterprise plan.
  • Em Members é possível verificar quais membros têm 2FA ativado. Todo usuário deve tê-lo ativado.

Note

Note que felizmente o role Administrator não dá permissões para gerenciar membros (não pode escalar privilégios nem convidar novos membros)

DDoS Investigation

Veja esta parte.

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