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

Capítulo 1 — Cálculo I

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 1 — Cálculo I

Mapa da aula

Aula 01 publicada. Mapa, exemplo, EX001.

flowchart TD
  N0["1.1 Por que cálculo num SOC"]
  N1["1.2 O caso do curso"]
  N2["1.3 Do contínuo ao discreto"]
  N3["Laboratório — fila como taxa"]
  N4["1.4 Lendo o resultado"]
  N5["1.5 Significado para a engenharia"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX001"]

Desenho lógico

flowchart LR
  N0["1.1 Por que cálculo num SOC"]
  N1["1.2 O caso do curso"]
  N2["1.3 Do contínuo ao discreto"]
  N3["Laboratório — fila como taxa"]
  N4["1.4 Lendo o resultado"]
  N5["1.5 Significado para a engenharia"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX001"]
[1.1 Por que cálculo num SOC]
    |
    v
[1.2 O caso do curso]
    |
    v
[1.3 Do contínuo ao discreto]
    |
    v
[Laboratório — fila como taxa]
    |
    v
[1.4 Lendo o resultado]
    |
    v
[1.5 Significado para a engenharia]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX001]

Objetivos de aprendizagem

Você vai (1) modelar uma fila de alertas com taxas de variação; (2) ler uma derivada como "quão rápido o acúmulo cresce"; (3) ligar modelos contínuos a dados horários; (4) explicar por que dimensionar a equipe de um SOC é um problema de taxas.

1.1 Por que cálculo num SOC

As operações de segurança lidam com fluxos: alertas chegam, analistas os resolvem, e o acúmulo é o que sobra. O cálculo é a linguagem da variação. Se A(t) é a taxa de chegada e C(t) a taxa de resolução, o acúmulo B(t) varia segundo dB/dt = A(t) − C(t). Quando as chegadas excedem a capacidade, o acúmulo sobe; quando a capacidade excede as chegadas, ele cai. A mesma equação descreve uma banheira enchendo com o ralo meio aberto. Para quem lidera um SOC, seu valor está em separar duas perguntas que as pessoas costumam misturar: quantos alertas chegaram hoje, e quão rápido eles chegaram em comparação com a velocidade com que a equipe consegue trabalhar. Um dia com total modesto ainda pode sobrecarregar um turno se a maioria dos alertas chegar em duas horas.

1.2 O caso do curso

Amara Osei, estudante de engenharia na fictícia Kingsbridge Engineering University, entra em estágio no centro de operações de segurança da fictícia Lindqvist Freight. Seu mentor é o engenheiro de detecção Paolo Ricci. No primeiro dia, o portal do cliente sofre uma rajada de logins malsucedidos, e a fila de alertas cresce mais rápido do que os dois analistas do turno conseguem resolver. A rajada é um padrão comum em páginas públicas de login: muitas tentativas falhas contra muitos nomes de usuário, muitas vezes a partir de uma pequena faixa de endereços. A primeira tarefa de Amara não é decidir se houve um ataque, mas entender por que a fila cresceu, o que leva diretamente às taxas. O mesmo incidente volta ao longo do livro, e cada capítulo o examina com uma ferramenta diferente.

1.3 Do contínuo ao discreto

Dados reais chegam em contagens horárias, não em curvas suaves. A derivada vira uma diferença: a variação do acúmulo por hora é igual às chegadas daquela hora menos os alertas tratados. A integral — o acúmulo total — vira uma soma acumulada. Em símbolos, B[n] = B[n−1] + A[n] − C[n], com a regra de que o acúmulo não pode ficar abaixo de zero, já que um analista ocioso não consegue resolver alertas que ainda não existem. O passo horário é uma escolha; contagens por minuto mostrariam mais detalhe, mas também mais ruído. Amara monta a soma acumulada primeiro numa planilha, uma linha por hora, para que cada passo possa ser conferido à mão.

Laboratório — fila como taxa

"""Alert queue as a rate problem: backlog change = arrivals - handled, per hour (synthetic)."""
arrivals = [40, 55, 70, 90, 85, 60, 45, 30]   # alerts per hour, 08:00-16:00
capacity = 60                                  # alerts the shift can triage per hour
backlog = 0
peak = 0
for h, a in enumerate(arrivals):
    handled = min(capacity, backlog + a)
    rate = a - handled
    backlog += rate
    peak = max(peak, backlog)
    print(f"{8+h:02d}:00 arrivals={a:3} handled={handled:3} d(backlog)/dt={rate:+4} backlog={backlog:3}")
print("peak backlog", peak, "| backlog at 16:00", backlog)

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

08:00 arrivals= 40 handled= 40 d(backlog)/dt=  +0 backlog=  0
09:00 arrivals= 55 handled= 55 d(backlog)/dt=  +0 backlog=  0
10:00 arrivals= 70 handled= 60 d(backlog)/dt= +10 backlog= 10
11:00 arrivals= 90 handled= 60 d(backlog)/dt= +30 backlog= 40
12:00 arrivals= 85 handled= 60 d(backlog)/dt= +25 backlog= 65
13:00 arrivals= 60 handled= 60 d(backlog)/dt=  +0 backlog= 65
14:00 arrivals= 45 handled= 60 d(backlog)/dt= -15 backlog= 50
15:00 arrivals= 30 handled= 60 d(backlog)/dt= -30 backlog= 20
peak backlog 65 | backlog at 16:00 20

1.4 Lendo o resultado

Com capacidade de 60 alertas por hora, o acúmulo fica em zero até as 10:00, depois cresce +10, +30 e +25 por hora e atinge o pico de 65 alertas às 13:00. Só começa a cair às 14:00 e ainda é 20 às 16:00. O pico acompanha a área entre a curva de chegadas e a linha de capacidade, não a pior hora isolada. A surpresa para Amara é que o acúmulo continua subindo depois que a pior hora passou. Enquanto as chegadas excedem sessenta, a fila cresce, ainda que mais devagar. Ela só cai quando as chegadas ficam abaixo da capacidade, e mesmo assim apenas no tamanho dessa diferença a cada hora. É por isso que a fila se arrastou pela tarde, embora a rajada em si tivesse terminado no começo da tarde.

1.5 Significado para a engenharia

Acrescentar um analista às 10:00 elevaria a capacidade acima da taxa máxima de chegada e manteria o acúmulo perto de zero. São as taxas, e não os totais diários, que dizem quando é preciso ajuda. O mesmo modelo responde também a outras perguntas: quanto tempo um acúmulo de 65 leva para ser zerado com uma dada capacidade ociosa, ou com que antecedência a ajuda precisa chegar para manter o pico abaixo de uma meta. Paolo lembra que analistas reais não resolvem alertas a uma taxa fixa, já que alertas difíceis levam mais tempo, por isso o modelo dá uma estimativa de planejamento, não uma previsão precisa.

Exemplo resolvido

Paolo pergunta a Amara quanto tempo espera um alerta que chega às 12:00. Ela raciocina que ele entra numa fila de 40 alertas com capacidade de 60 por hora, então espera cerca de 40 minutos até que um analista chegue a ele — tempo suficiente para fazer diferença num ataque de credenciais em andamento.

Caso sintético. A Lindqvist Freight, a Kingsbridge University, Amara e Paolo são inventados; as contagens vêm do script do laboratório.

Erros e limites

O modelo supõe que todo alerta leva o mesmo tempo e que os analistas nunca fazem pausas; o tempo real de triagem varia muito, então trate os resultados como primeiras estimativas.

Exercícios

Síntese

As filas de alertas seguem taxas; tratar chegadas e capacidade como funções do tempo mostra quando os acúmulos se formam e quanta capacidade extra os elimina.

Continue estudando — capítulo 01 de 50

← Página do curso · Índice de capítulos do curso · Capítulo 02 (rascunho) →