Skip to main content

Discussões sobre como aprimorar a segurança com engenharia do caos

Escrito por
blog feature fuzzing tools

3 de agosto de 2023

0 minutos de leitura

Quando você depende de uma ferramenta para ajudar em uma situação de alta pressão, provavelmente quer ter certeza de que ela foi testada em condições extremas. Por exemplo, se você está prestes a saltar de paraquedas, vai querer saber se o paraquedas preso às suas costas passou por testes rigorosos e vai funcionar quando você mais precisar.

O mesmo vale para os sistemas que dão suporte às nossas iniciativas de segurança. O que acontece quando esses sistemas ficam sob alta pressão em uma emergência?

A engenharia do caos responde a essa pergunta ao levar os sistemas ao limite de forma controlada e sistemática. Com experimentos direcionados, as equipes descobrem se o sistema está preparado para suportar uma situação de alta pressão ou se precisa de ajustes.

O que é engenharia do caos?

A engenharia do caos se baseia na teoria do caos: a ideia de que podemos identificar padrões em eventos aparentemente aleatórios e inesperados. Ao realizar experimentos estratégicos para avaliar como um sistema se comporta diante desses eventos, as equipes podem se preparar melhor para quando essas circunstâncias excepcionais acontecerem na vida real.

A engenharia do caos aplicada à segurança se concentra especificamente em testar sistemas de cibersegurança que seriam os “primeiros a responder” em emergências, como violações de dados ou ataques. As equipes simulam esses eventos no sistema e, em seguida, observam como ele se comporta.

Aaron Rinehart, CTO e cofundador da Verica, conversou com Guy Podjarny, fundador e presidente da Snyk, sobre engenharia do caos no podcast The Secure Developer, episódio #67. Ele resumiu a engenharia do caos aplicada à segurança como “injetar proativamente as condições que você espera que acionem ou ativem sua segurança”.

Kelly Shortridge, VP de estratégia de produto da Capsule8, também conversou com Guy no episódio #63. Eles falaram sobre como a engenharia do caos aplicada à segurança testa os limites de um sistema e nos lembra que programas de segurança no mundo real não existem no vácuo. Segundo Kelly, “A engenharia do caos aplicada à segurança basicamente diz: ‘Não, o mundo não funciona assim. Você precisa… ter um modelo realmente honesto do ponto de vista intelectual, que acolha todas as informações que uma falha traz e simplesmente as veja como uma oportunidade de aprendizado.’”

Por que a engenharia do caos é necessária para a segurança?

A engenharia do caos é essencial para a segurança porque comprova que seus controles podem resistir ao inesperado e ao imprevisível. No fim das contas, esses experimentos levam a um produto mais resiliente.

Aaron mencionou alguns motivos pelos quais a engenharia do caos aplicada à segurança é tão valiosa para equipes de desenvolvimento e segurança. Primeiro, ela fortalece proativamente os sistemas contra eventos inesperados, aumentando a confiança de que eles funcionarão como esperado em qualquer situação. Além disso, a engenharia do caos permite que as equipes de segurança encontrem problemas no sistema antes que eles venham a público.

Ele compara a prática a uma queimada controlada: “Cresci em uma fazenda no Missouri, então é mais ou menos como fazer uma queimada controlada em um campo. Você não acende um fósforo e sai queimando tudo. Você avisa o condado, chama os paramédicos e o corpo de bombeiros — todo mundo fica a postos caso algo aconteça, certo? É assim que se faz engenharia do caos… você não entra em pânico, porque, durante [interrupções reais], as pessoas entram em pânico. A capacidade cognitiva delas fica toda ocupada com: ‘isso pode ser uma violação. O CEO está no telefone dizendo que preciso colocar isso de volta no ar; alguém vai perder o emprego por causa disso.’”

Como começar a aplicar a engenharia do caos à segurança na sua organização

Se sua equipe de segurança está pensando em realizar experimentos de engenharia do caos, Aaron e Kelly têm alguns conselhos:

Concentre-se em erros de engenharia

Comece com experimentos direcionados para identificar erros manuais de engenharia. Por exemplo, um experimento de engenharia do caos aplicada à segurança pode se concentrar na exploração de uma porta configurada incorretamente ou de uma conta com permissões excessivas: dois problemas comuns causados por erro humano.

Mas Aaron nos lembra que “esses erros humanos não são culpa de nenhum engenheiro; o problema é que o tamanho, a escala, a complexidade e a velocidade com que construímos as coisas hoje tornam muito difícil para as pessoas criarem um modelo mental delas”.

Não tente “ferver o oceano”

Aaron também alerta para não tentar fazer demais em um único experimento (o que se chama de “ferver o oceano”). Os experimentos de engenharia do caos devem se concentrar em injetar uma única falha de forma direcionada e sistemática. Essas injeções estratégicas são diferentes das simulações de ataque, pois se concentram em testar um problema de cada vez.

Aaron disse: “Quando você começa a percorrer vários pontos de ataque e enviar muitos dados ao sistema, fica muito difícil analisar esses dados: o que quebrou, o que não quebrou, o que funcionou, o que não funcionou… Você perde visibilidade por causa de todo o ruído.”

Espere falhas

Ao começar a experimentar, também é importante não desanimar quando seu sistema não superar o desafio. A falha é uma das ferramentas mais importantes da engenharia do caos. Kelly disse: “É uma mudança de perspectiva necessária para a segurança: aceitar que a falha é inevitável e que ela pode ser realmente poderosa.”

O futuro da engenharia do caos

À medida que as empresas continuam a investir na transformação para a nuvem e seus sistemas se tornam mais complexos, será mais importante do que nunca que as equipes usem a engenharia do caos. Aaron explica que a transformação para a nuvem não deve ser um pré-requisito para a engenharia do caos. O contrário é que deveria acontecer: a engenharia do caos prepara as organizações para a transformação para a nuvem. Ao testar desde o início a eficácia dos novos recursos de nuvem, as equipes ficam mais preparadas para mantê-los no futuro. Nas palavras de Aaron: “A única maneira de entender um sistema complexo é interagir com ele.”

Quer se aprofundar na engenharia do caos aplicada à segurança e saber como ela pode funcionar para você e sua empresa? Ouça os episódios do podcast com Aaron e Kelly:

  • Episódio 63: Segurança de contêineres, microsserviços e engenharia do caos com Kelly Shortridge

  • Episódio 67: Engenharia do caos aplicada à segurança: o que é e por que você deveria se importar? Com Aaron Rinehart

E para conferir mais conteúdo sobre segurança de desenvolvedores, AppSec e DevSecOps, assine o The Secure Developer hoje mesmo!