Entenda o risco das políticas. Faça perguntas sobre políticas em linguagem natural. Solicite uma demonstração →
Published:
Análise aprofundada do inventário em tempo real
by FireMon
No início da FireMon (bem, antes de nos tornarmos a FireMon), percebemos que tentar avaliar ao vivo as contas de nuvem dos clientes (incluindo assinaturas/projetos) era... problemático. Executar essa quantidade de avaliações rapidamente atingiria os limites do serviço e poderia interromper as chamadas de API internas de um cliente. Lembre-se de que começamos a fazer isso há cerca de 7 anos, antes mesmo de o CSPM existir, e todos estavam aprendendo as mesmas lições.
A primeira solução que encontramos foi coletar os dados de configuração uma única vez, inseri-los em nosso próprio inventário e, em seguida, realizar nossas avaliações ali. Isso nos permitiu reduzir nossas chamadas de API apenas ao necessário para obter os metadados. Assim, podíamos executar várias avaliações com base no mesmo conjunto de dados. Por um tempo, essa abordagem funcionou bem. Continuávamos realizando varreduras de configuração baseadas em tempo, mas podíamos distribuí-las de forma mais uniforme e otimizá-las para minimizar a sobrecarga de chamadas de API. No entanto, essa abordagem tinha seus próprios problemas. E se algo mudasse entre a nossa varredura e o momento em que alguém finalmente fosse tratar o alerta? Além disso, varrer um serviço completo da AWS em busca de todos os recursos daquele serviço ainda pressionaria os limites de API, que são definidos por serviço e por região.
Estabelecemos dois desafios para nós mesmos a fim de lidar melhor com essa situação. Primeiro, buscávamos atualizar o inventário em tempo real para reduzir os picos de chamadas de API a um determinado serviço e garantir que os clientes nunca trabalhassem com dados desatualizados. Segundo, buscávamos manter um histórico para que clientes e investigadores pudessem olhar para trás e ver exatamente o que mudou e como mudou. Vamos detalhar a arquitetura técnica mais adiante, e ela varia ligeiramente para cada plataforma de nuvem. Em resumo, ao nos conectarmos diretamente ao fluxo de eventos do provedor de nuvem, conseguimos identificar chamadas de API de alteração, extrair os recursos envolvidos, atualizar nosso inventário em tempo real e acionar simultaneamente todas as nossas avaliações para um determinado tipo de inventário.
Embora ainda ofereçamos suporte a isso com uma varredura baseada em tempo uma vez ao dia/fora do horário comercial, a transição para o tempo real resolveu muitos problemas e gerou alguns benefícios interessantes. Entre esses benefícios estão:
- Os clientes nunca se deparam com dados desatualizados; tudo na plataforma deve corresponder de perto à configuração/ao estado realmente em execução.
- Como monitoramos as chamadas de API, podemos identificar quem as fez. De repente, temos atribuição completa de identidade em nosso inventário.
- Torna-se fácil apontar o que mudou à medida que as alterações são feitas, proporcionando um rastreamento abrangente de mudanças.
- Podemos executar todas as verificações e avaliações em tempo real conforme as alterações ocorrem. Isso inclui RESOLVER problemas à medida que alguém os corrige externamente, e não apenas identificar novos problemas.
Pronto. Um inventário histórico completo, em tempo real, com rastreamento de mudanças e atribuição de identidade! Sim, algo como o AWS Config oferece essa funcionalidade nativamente dentro do provedor de nuvem. No entanto, além de ser economicamente vantajoso, nosso inventário e nossas avaliações são fortemente integrados, abrangem múltiplas implantações e provedores de nuvem e oferecem recursos bastante impressionantes, como funcionalidades de busca abrangentes.
A melhor maneira de conhecer isso é por meio de nosso tour em vídeo de 90 segundos! E aqui estão algumas capturas de tela importantes:
Página principal, exibindo uma grande quantidade de dados importantes em uma única visualização:

Esta é a visualização do histórico de alterações, apresentando as mudanças com todos os detalhes e a respectiva atribuição. Ela também conta com recursos úteis como eventos relacionados, recursos associados, isenções e um histórico de resultados aprovados/reprovados para o recurso:

Esta visualização de Histórico acompanha as alterações cronologicamente com um gráfico que mostra as tendências de atividade. Clicar na linha do tempo leva diretamente àquela data:

Você já precisou saber qual recurso de nuvem efêmero era o titular do endereço IP que apareceu nos logs em um momento específico? Os respondentes a incidentes adoram este recurso...

E essa é a visão geral rápida. Em publicações futuras, forneceremos mais detalhes sobre a arquitetura e sobre como lidamos com isso em ambientes multinuvem.