Incidente · Pleno
CrowdStrike 2024: Channel File 291 derruba 8,5 milhões de máquinas
Incidente real. Pontos centrais: deploy progressivo e arquitetura em células.
Resposta curta
Incidente real. Pontos centrais: deploy progressivo e arquitetura em células. Em 19 de julho de 2024, uma atualização de conteúdo do sensor Falcon, da CrowdStrike, derrubou hosts Windows. A fonte deste caso é o relatório de causa raiz (RCA) publicado pela própria empresa, complementado por seu relatório preliminar de incidente.
01 · CONTEXTO
Um sensor em kernel e dois caminhos de atualização
Em 19 de julho de 2024, uma atualização de conteúdo do sensor Falcon, da CrowdStrike, derrubou hosts Windows. A fonte deste caso é o relatório de causa raiz (RCA) publicado pela própria empresa, complementado por seu relatório preliminar de incidente. O sensor chega ao cliente por dois caminhos: o Sensor Content, enviado junto com o sensor, e o Rapid Response Content, entregue da nuvem para reagir rápido a novas ameaças.
O Rapid Response Content é configuração, não código. Já o Sensor Content segue uma liberação em estágios, com uso interno, adotantes iniciais e só depois disponibilidade geral, e o cliente escolhe qual versão instalar. O RCA trata justamente de levar essa disciplina de estágios ao caminho rápido.
Engenheiros de detecção criam novas regras, e o sistema de configuração as transforma em instâncias de template.
Antes da publicação, o validador confere o conteúdo contra a definição do tipo de template.
O channel file é publicado e entregue aos sensores online.
No host, o sensor roda como driver de kernel: um erro nele derruba o sistema inteiro, não só o aplicativo.
02 · O INCIDENTE
Uma janela curta, uma frota inteira de Windows
A atualização defeituosa foi publicada às 04:09 UTC de 19 de julho de 2024 e revertida às 05:27 UTC. Quem estava online nessa janela e recebeu o channel file foi afetado; quem conectou depois da reversão, ou não conectou durante a janela, não foi.
| Dentro do escopo | Fora do escopo | |
|---|---|---|
| Sistema | Windows com sensor 7.11 ou superior | Mac e Linux |
| Momento | Online entre 04:09 e 05:27 UTC e com a atualização recebida | Online só depois da reversão, ou sem conexão durante a janela |
Em 29 de julho, a empresa informou que cerca de 99% dos sensores Windows estavam online em comparação com antes da atualização.
03 · A CAUSA RAIZ
Vinte valores entregues, vinte e um esperados
A causa não foi um único erro, e sim a combinação de três: a definição do tipo de template falava em 21 entradas enquanto o código de integração fornecia 20, o interpretador tinha uma leitura fora dos limites latente, e nenhum teste exercitava um critério não coringa no 21º campo.
A definição do tipo de template dizia que ele recebia 21 campos de entrada, e o validador conferia o conteúdo contra essa definição.
O código de integração do sensor entregava ao interpretador só 20 valores, um a menos do que a definição prometia.
Nos testes e nas primeiras instâncias, o 21º campo usava coringa, então o teste não expunha o valor ausente.
Em 19 de julho entrou uma instância com critério não coringa no 21º campo. O validador, que assumia 21 entradas, a aprovou.
O interpretador tentou ler o 21º valor, que não existia: leitura fora dos limites, exceção sem tratamento e queda do sistema.
A análise do dump de memória aponta o driver csagent.sys, um driver de kernel, como o autor da leitura inválida.
É um caso clássico de contrato inconsistente: duas partes do sistema discordavam sobre o formato do dado, e cada uma passava nas verificações que se baseavam na própria suposição.
04 · POR QUE NINGUÉM VIU
Testes que passavam e confiança herdada
Os testes automatizados usavam um conjunto estático de 12 casos, e o canal de teste incluía um critério coringa no 21º campo de todas as instâncias. Por isso a leitura fora dos limites nunca foi exercitada. Entre 8 e 24 de abril de 2024, três instâncias adicionais foram implantadas e funcionaram como esperado.
Na decisão de implantar as instâncias de julho pesaram os testes feitos antes do lançamento do tipo de template, a confiança nas checagens do validador e as implantações anteriores bem-sucedidas.
05 · O QUE MUDOU
Fechar a causa e reduzir o raio de impacto
| O que faltava | Correção anunciada | |
|---|---|---|
| Compilação do sensor | O número de campos do tipo de template não era validado | Um patch do compilador passou a validar o número de entradas |
| Interpretador | Não havia checagem de limites no vetor de entrada | Checagem de limites adicionada à função que lê as entradas |
| Testes | Só critérios coringa no último campo | Testes automatizados com critério não coringa em cada campo |
| Validador | Aprovava conteúdo sobre mais campos do que o sensor fornecia | Novas checagens contra critérios além dos campos fornecidos |
Além de fechar a causa, o RCA trata de limitar o dano de uma próxima falha. O achado é direto: cada instância de template deve ser implantada em estágios. As instâncias aprovadas no canário são promovidas a anéis cada vez mais amplos, ou revertidas se surgirem problemas, e a promoção para o anel seguinte é acompanhada de um tempo extra de observação, em que se coleta telemetria.
O conteúdo validado vai primeiro a um anel canário, um grupo pequeno de sensores.
A telemetria do canário mostra se há quedas de sistema, alta no volume de detecções falsas ou problemas de desempenho.
Com sinais saudáveis, o sistema promove o conteúdo. Com sinais ruins, reverte.
A promoção segue anel a anel até a frota completa, e cada anel acumula tempo de observação antes do próximo.
O cliente também ganha controle sobre onde e quando o conteúdo é implantado.
06 · LIÇÕES
O que levar para o seu desenho
A primeira lição é de disponibilidade: todo caminho que atinge a frota inteira deve ter um estágio que limite o dano antes do sinal de falha, seja código, seja configuração. A segunda é de observabilidade: promover um conteúdo só faz sentido se a telemetria do estágio anterior puder dizer que ele está saudável.
A terceira é de recuperação: reverter o conteúdo na origem não conserta, por si só, as máquinas que já carregaram o arquivo defeituoso. Um plano de recuperação de desastres precisa prever o caso em que o agente que falhou está em todos os hosts ao mesmo tempo.
Perguntas frequentes
O que é CrowdStrike 2024: Channel File 291 derruba 8,5 milhões de máquinas?
Incidente real. Pontos centrais: deploy progressivo e arquitetura em células.
O que o design de CrowdStrike 2024: Channel File 291 derruba 8,5 milhões de máquinas cobre?
Ele está organizado nestas seções: Um sensor em kernel e dois caminhos de atualização, Uma janela curta, uma frota inteira de Windows, Vinte valores entregues, vinte e um esperados, Testes que passavam e confiança herdada, Fechar a causa e reduzir o raio de impacto e O que levar para o seu desenho.
Quanto tempo leva CrowdStrike 2024: Channel File 291 derruba 8,5 milhões de máquinas e qual é o nível?
Leva cerca de 12 minutos para ler e tem nível Pleno.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.