Sentinela.
← Back to blog

May 22, 2026 · 7 min · Carol

CTEM financial risk ALE uptime security

How we compute risk in $/year (ALE) — formula, table and worked example

The A–F grade answers "how is my posture?". ALE answers "how much does this cost per year?". We show the formula, the calibrated table and a worked numeric example — with the inputs you need to fill in to switch it on.

Toda ferramenta de ASM responde "como está minha postura?" com nota técnica, score CVSS ou contagem de findings. Nenhum deles atravessa a porta da sala da diretoria. "Temos 12 highs" não fecha orçamento de remediação.

O que fecha é "isso custa R$ X por ano se a gente não corrigir." Esse número se chama ALE — Annual Loss Expectancy. Esse post explica como o Sentinela calcula, mostra a fórmula crua, dá um exemplo passo a passo e lista o que você precisa preencher pra ele sair de zero.

A fórmula em uma linha

ALE total (R$/ano) = custo de downtime  +  risco de breach

Duas pernas. Independentes. Cada uma defensável sozinha. O total é a soma — sem peso mágico, sem multiplicador escondido.

A diferença pro resto do mercado mora na perna 1: a gente usa dados de uptime reais do seu domínio, não benchmark de indústria. É por isso que ela só faz sentido com uptime e segurança na mesma plataforma. EcoTrust, GAT, Unxpose — fazem segurança. Não têm seu histórico de incidentes.

Perna 1 — Custo de downtime

downtime_cost = horas_de_incidente_observadas_365d × revenue_per_hour

Tradução em prosa: a gente soma a duração de cada incidente que o monitor de Uptime vinculado ao alvo registrou nos últimos 12 meses, e multiplica pela receita por hora que você declarou.

Dois inputs, ambos seus:

Campo Onde preenche O que é
Monitor de Uptime vinculado Formulário do alvo (Security) Qual monitor é o "termômetro" deste ativo. A gente auto-sugere quando o host casa.
Receita por hora (R$) Mesmo formulário Quanto este ativo perde por hora fora do ar.

Se você não vincular monitor, essa perna fica em R$ 0. A gente não chuta. Não usa benchmark "varejo médio perde R$ X". O número precisa ser seu pra ser defensável diante da diretoria.

Como dimensionar revenue_per_hour se você não sabe de cabeça? Tem um post inteiro com calculadora em quanto custa uma hora de site fora do ar. Spoiler: o número costuma ser 3 a 5× a "receita perdida pura" quando você soma CAC desperdiçado, SEO penalizado e suporte sobrecarregado.

Perna 2 — Risco de breach

breach_ale = probabilidade(risk_tier) × impacto
impacto    = (lgpd_exposure + incident_recovery_cost) × reputation_factor

Essa perna é a clássica ALE atuarial: probabilidade vezes impacto. A diferença é de onde vem cada termo.

A tabela de probabilidades

A probabilidade anual de incidente vem do tier de risco do último audit do alvo (resultado do score contextualizado: nota técnica + criticidade de negócio + threat-intel KEV/EPSS). Tabela calibrada:

Tier de risco do ativo Probabilidade anual
Low 2%
Medium 8%
High 20%
Critical 40%

Por que esses números? Calibração baseada em literatura pública (Verizon DBIR, relatórios Ponemon) ajustada pro escopo do que a auditoria observa. É opinable — e por isso a tabela é uma constante explícita no código, não uma rede neural escondida. Se você tem dado próprio do seu setor, dá pra discutir. Mas a régua precisa ser a mesma entre alvos pra comparação fazer sentido.

Os inputs de impacto

São três campos que você preenche uma vez por workspace em Configurações → Risco financeiro:

Campo O que é Como dimensionar
lgpd_exposure Quanto custaria uma multa LGPD aplicável a este negócio Multa LGPD vai até 2% do faturamento, limitada a R$ 50M por infração. Use 5% a 50% disso como estimativa razoável.
incident_recovery_cost Custo de IR (forense, comunicação de crise, downtime de recuperação) Cobertura de seguro cyber costuma usar R$ 50k–R$ 500k pra PME, R$ 1M+ pra média/grande.
reputation_factor Multiplicador de dano reputacional (0 a N) E-commerce de marca conhecida: 1.5–2.0. SaaS B2B com SLA contratual: 1.5. App interno: 0.5–1.0.

Por que você preenche e não a gente? Porque quem conhece o negócio é você. A perna 1 é objetiva (dados nossos). A perna 2 é a sua visão sobre o seu impacto. Transparência > falsa precisão.

Exemplo completo

E-commerce de moda. Configuração:

  • Monitor de Uptime: 6h12 de incidentes nos últimos 365 dias
  • Receita/hora declarada: R$ 12.000
  • Último audit: nota C, criticidade de negócio altarisk_tier = high
  • Settings → Risco financeiro:
    • lgpd_exposure: R$ 50.000
    • incident_recovery_cost: R$ 80.000
    • reputation_factor: 1.5

Cálculo:

Perna 1 — downtime
  downtime_cost = 6.2h × 12.000        = R$ 74.400

Perna 2 — breach
  impacto       = (50.000 + 80.000) × 1.5 = R$ 195.000
  probabilidade = 0.20  (high)
  breach_ale    = 0.20 × 195.000       = R$ 39.000

ALE total                              = R$ 113.400/ano

Esse é o número que vai pra reunião com a diretoria. Não "12 highs em aberto" — R$ 113.400/ano de exposição esperada se nada for feito.

O que muda quando você corrige

Cada eixo se mexe diferente:

  • Corrigir um finding crítico → derruba a nota técnica → derruba o risk_tier da perna 2 → a tabela de probabilidades muda 1 ou 2 degraus → breach_ale cai pra fração do que era.
  • Vincular o monitor de uptime (se ainda não vinculou) → perna 1 sai de R$ 0 e fica honesta.
  • Reduzir downtime real (HA, deploy melhor, CDN) → menos horas no período de 365 dias → perna 1 cai.
  • Aumentar reputation_factor (cliente novo grande, SLA mais agressivo) → perna 2 sobe — você ajusta o número à realidade.

E o score técnico A–F continua intocável. Por design. Score técnico é régua de comparação entre alvos; risco financeiro é régua de priorização. São eixos paralelos, deliberadamente.

Threat intel ainda escala a probabilidade

Detalhe que muita gente perde: se o último audit detectou um finding com CVE listado no CISA KEV (catálogo de vulnerabilidades em exploração ativa) ou EPSS ≥ 0.5 (alta probabilidade de exploração nos próximos 30 dias), o risk_tier sobe um degrau automaticamente.

Na prática isso significa: um alvo medium com finding KEV vira high na hora — e o breach_ale salta de 8% × impacto para 20% × impacto. 2.5× o número de antes, sem nenhuma ação humana.

É a tradução em reais de "isso aqui não é teórico, está sendo explorado neste momento".

A leitura agregada do workspace

O número de cada alvo soma na visão de workspace. Pra agência ou time gerenciando 30 clientes, isso vira:

Exposição agregada do portfólio: R$ 2.847.000/ano em 14 ativos auditados.

Esse é o número que a diretoria vê. Quando você abre o detalhamento, vê quais alvos contribuem mais — e quais correções têm maior retorno em reais derrubados.

Onde isso vive no produto

  • Card no Security/Show — exposição do alvo (perna 1 + perna 2 separadas + total).
  • Dashboard de workspace — agregado, com top contributors.
  • Relatório semanal — diff de exposição (subiu/desceu desde a última semana).
  • PDF de auditoria — número aparece no relatório que vai pro cliente final / diretoria.

Como ativar agora (3 minutos)

  1. Settings → Risco financeiro — habilite, preencha LGPD/recovery/reputation. Uma vez por workspace.
  2. Security → editar alvo — preencha "Receita por hora" e selecione o monitor vinculado (auto-sugerido quando o host casa). Por alvo.
  3. Rode uma auditoria (ou aguarde a semanal). O número aparece no card.

Se você já tem um monitor de Uptime no mesmo domínio: vamos pré-selecionar pra você ao editar o alvo. Se ainda não tem, crie o monitor primeiro — sem ele, a perna 1 fica zerada e o moat vira metade do que poderia ser.

Por que isso só faz sentido aqui

Toda ferramenta de ASM consegue calcular a perna 2 (probabilidade × impacto). Algumas até tentam estimar a perna 1 chutando "sites de e-commerce perdem em média R$ X/hora". Mas nenhuma delas tem o seu histórico de incidentes do último ano — porque nenhuma delas é também a sua ferramenta de uptime.

A gente é. É por isso que o número aparece. Não é estimativa de mercado — é a sua planilha.


Pra entender por que a nota técnica A–F não recebe o contexto financeiro (e por que isso é uma decisão de projeto, não esquecimento), leia pentest vs auditoria contínua. Pra dimensionar revenue_per_hour se você não tem o número de cabeça, vá em quanto custa uma hora de site fora do ar.

Keep reading