◇ OpenCyber Academy
Engenharia · Capítulo 36 · Português

Capítulo 36 — Arquitetura e engenharia de segurança: desempenho e escala

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 36 — Arquitetura e engenharia de segurança: desempenho e escala

Mapa da aula

Aula 36 publicada. Mapa, exemplo, EX106.

flowchart TD
  N0["36.1 O custo dos controles"]
  N1["36.2 Dimensionar o token bucket"]
  N2["Laboratório — Tratamento de rajadas com token bucket"]
  N3["36.3 Projetar para escala"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX106"]

Desenho lógico

flowchart LR
  N0["36.1 O custo dos controles"]
  N1["36.2 Dimensionar o token bucket"]
  N2["Laboratório — Tratamento de rajadas com token bucket"]
  N3["36.3 Projetar para escala"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX106"]
[36.1 O custo dos controles]
    |
    v
[36.2 Dimensionar o token bucket]
    |
    v
[Laboratório — Tratamento de rajadas com token bucket]
    |
    v
[36.3 Projetar para escala]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX106]

Objetivos de aprendizagem

Você vai (1) analisar o custo de desempenho dos controles de segurança; (2) dimensionar o rate limiting com um token bucket; (3) projetar controles que escalem com a demanda.

36.1 O custo dos controles

Todo controle consome recursos. Os handshakes de TLS custam CPU; a verificação de assinaturas acrescenta latência a cada registro; o logging consome armazenamento e banda de rede; a inspeção profunda deixa o tráfego mais lento. Em pequena escala, esses custos são invisíveis, mas a bilhetagem baseada em conta vai processar milhões de validações por dia. Sofia mede o custo de cada controle num laboratório e estima os totais no pico. Ela descobre que a verificação de assinaturas é barata por registro, mas se acumula, enquanto um logging de debug verboso excederia os orçamentos de armazenamento em semanas. Medir os custos cedo evita pressões futuras para desligar controles quando o desempenho sofre.

36.2 Dimensionar o token bucket

O gateway de parceiros do capítulo 34 precisa limitar as taxas de requisição sem bloquear picos legítimos, como muitas compras de passagens antes de um show. Sofia modela um token bucket: os tokens são repostos a uma taxa constante, cada requisição consome um, e a capacidade do bucket permite rajadas curtas. O laboratório abaixo simula uma rajada sintética de requisições contra dois tamanhos de bucket com a mesma taxa de reposição. O bucket pequeno rejeita muitas requisições legítimas durante a rajada; o maior absorve quase toda ela e ainda limita o abuso prolongado. O dimensionamento vem do tráfego observado, e não de palpites.

Laboratório — Tratamento de rajadas com token bucket

# Token bucket vs synthetic burst: 20 req/s refill, burst of 300 requests over 5 s.
def run(capacity, refill=20.0, seconds=20):
    tokens, rejected = capacity, 0
    for t in range(seconds):
        tokens = min(capacity, tokens + refill)
        demand = 60 if 5 <= t < 10 else 10
        ok = min(demand, int(tokens)); tokens -= ok; rejected += demand - ok
    return rejected
for cap in (20, 200):
    print(f"capacity {cap:3d}: rejected {run(cap)} of {5*60 + 15*10} requests")

Execute com python3 lab_bucket.py. Saída verificada:

capacity  20: rejected 200 of 450 requests
capacity 200: rejected 20 of 450 requests

36.3 Projetar para escala

Controles que funcionam para um servidor podem não escalar. Um serviço central de autorização chamado a cada validação vira um gargalo e um ponto único de falha. Sofia propõe guardar em cache as decisões de autorização com vida curta, distribuir a verificação aos nós de ingestão com chaves públicas compartilhadas e particionar os logs por tempo e região. Cada mudança mantém a propriedade de segurança e melhora a escala, e cada uma introduz uma nova consideração, como a rapidez com que as decisões em cache refletem as revogações. Ela documenta esses tradeoffs para que a equipe de operações entenda por que, por exemplo, um token de parceiro revogado pode funcionar por até um minuto.

Exemplo resolvido

Sofia mede os custos dos controles, dimensiona um token bucket para as rajadas de shows e redesenha a autorização e o logging para escalar, documentando os atrasos de revogação ligados ao cache.

Caso sintético. O tráfego, os custos e os parâmetros do bucket são sintéticos.

Erros e limites

As medições de laboratório podem não refletir o hardware de produção. Os caches criam janelas em que direitos revogados ainda funcionam.

Exercícios

Síntese

Medidas de segurança escaláveis controlam custos, dimensionam limites a partir do tráfego real e documentam os trade-offs de distribuir os controles.

Continue estudando — aula 36 (capítulo 36 de 50)

← Capítulo 35 · Índice das aulas · Capítulo 37 →

Continue para a próxima aula já escrita.