CMD desenvolveu recursos para assegurar controle constante, utilizando o Steampipe de código aberto para estabelecer métricas de desempenho de segurança da informação por meio de declarações SQL.

Ciaran Finnegan lidera a equipe de cibersegurança na empresa CMD Solutions Austrália, enquanto Phil Massyn atua como consultor sênior de segurança. Há aproximadamente um ano, eles implementaram o Steampipe e o plugin CrowdStrike para realizar varreduras nos ambientes da AWS de seus clientes.
Atualmente, Finnegan e Massyn estão desenvolvendo um sistema interno para a chamada “segurança de controle contínuo”, que também pode ser descrita como “KPIs codificados”. Um exemplo disso é um indicador chave de desempenho (KPI).
As falhas de segurança graves ou de alta gravidade são corrigidas dentro do prazo estabelecido pela política da empresa.
Como você implementa esse objetivo em código? Com o Steampipe, é possível alcançar isso através da redação de consultas SQL que podem se integrar às diversas APIs disponibilizadas pelo seu conjunto de software. Dessa forma, é possível realizar consultas em um sistema de gerenciamento de endpoint, como o CrowdStrike, e depois combinar essas informações com dados de um sistema de gerenciamento de força de trabalho, como o Salesforce. É importante ter em mente que tanto um quanto o outro podem sofrer alterações, a fim de gerar resultados de consulta que associem uma vulnerabilidade a um dispositivo e a uma pessoa.
Aqui está o agendamento da consulta.
As tabelas utilizadas no jogo são provenientes dos plugins CrowdStrike e Salesforce. Apesar de nenhuma das tabelas pré-definidas do Salesforce ser adequada para a necessidade, isso não foi um problema, uma vez que a CMD Solutions estava utilizando seus próprios objetos personalizados do Salesforce e o plugin Salesforce pode adquirir objetos personalizados dinamicamente.
Você tem várias opções para executar a consulta de forma semelhante às consultas do Steampipe: utilizando o Steampipe CLI, o psql (ou qualquer outra CLI do Postgres), o Metabase (ou qualquer ferramenta de BI compatível com o Postgres), o Python (ou qualquer outra linguagem de programação). Também é possível incorporar uma consulta em um controle Steampipe, que pode ser parte de um benchmark executado na linha de comando com verificação de vapor, ou ser apresentado como um painel com o painel de controle de vapor, assim como as soluções CMD fizeram.
De pesquisas a monitoramentos e padrões de referência.
Aqui está o controle que envolve a solicitação. Trata-se apenas de uma camada fina que rotula e estabelece um indicador-chave de desempenho.
O comando é executado com base em uma indicação.
Você tem a opção de realizar o controle de verificação de vapor SEC_002 de forma isolada ou executar todos os controles do benchmark com o comando steampipe check benchmark.sec. Os resultados podem ser apresentados em diferentes formatos para posterior análise.
Antes de tudo, em que lugar e de que maneira realizar a verificação de vapor de forma programada? Conforme consta em sua documentação:
Realizar verificações programadas de conformidade do Steampipe de maneira segura e econômica na AWS utilizando o ECS Fargate. Empregamos o AWS Copilot para especificar funções e tarefas programadas do AWS ECS Fargate para executar essas verificações do Steampipe em contêineres Docker. Os padrões e controles do Steampipe são obtidos dinamicamente de um repositório git para facilitar um fluxo de trabalho baseado em GitOps.
O serviço é realizado diariamente, realizando o download de consultas de um repositório, executando essas consultas em alvos específicos e salvando os resultados no Amazon S3 em formatos como Markdown e JSON, este último sendo compactado por um modelo customizado.
Revisando a configuração de DMARC
Aqui está mais um indicador-chave de desempenho (KPI):
Todos os endereços de e-mail da empresa estão ajustados para DMARC.
Aqui está a consulta correspondente, mais uma vez contida em um controle.
As tabelas apresentadas foram obtidas através dos plugins CSV e Net. O plugin CSV do Salesforce consegue obter tabelas de forma dinâmica, como no exemplo de uma lista de domínios para verificar vidas em um arquivo denominado domains.csv, que foi recuperado de uma API de gerenciamento de sistema de nome de domínio. Os nomes de domínio são combinados com a tabela net_dns_record para identificar quais nomes estão configurados para DMARC a partir dos registros MX.
Assim como os demais controles do Steampipe, esses informam sobre o recurso, status e motivo das colunas necessárias. Trata-se apenas de uma prática estabelecida, pois é possível elaborar diversos tipos de consultas em relação às tabelas disponibilizadas pelo plugin. No entanto, ao aderir a essa prática, suas consultas se integram ao ecossistema de referência e painel do Steampipe.
Verificação de contas de usuário que não estão sendo utilizadas.
É correto afirmar que a capacidade máxima do Steampipe reside na capacidade de integrar-se a APIs, sendo o SQL o método usual para essa integração. No entanto, não é obrigatório conectar-se às APIs. Vários recursos úteis podem ser acessados consultando uma ou mais tabelas fornecidas por um único plugin.
Aqui está outro indicador-chave de desempenho (KPI):
Contas inativas na plataforma Okta são analisadas conforme os prazos estabelecidos pela política da empresa.
Aqui está o controle apropriado.
Controles como essa lógica de negócios são apresentados de maneira clara e compreensível, e requerem apenas um conhecimento básico de SQL.
Próximas etapas a serem seguidas.
Conforme os registros diários se acumulam, Finnegan e Massyn estão investigando formas de analisá-los visualmente e identificar tendências e indicadores de risco chave (KRIs). Um programa em Python é utilizado para ler os resultados da verificação personalizada do vapor e gerar saídas em formato JSON e Markdown que são armazenadas no S3. Eles criaram um protótipo do painel Steampipe para visualizar consultas e estão avaliando como uma ferramenta de visualização pode contribuir para uma compreensão mais abrangente da situação.
Por que isso está acontecendo? Finnegan explica que embora existam produtos disponíveis no mercado que poderiam ser adquiridos, eles não são compatíveis com todos os serviços da empresa e não oferecem o detalhamento preciso dos objetivos de negócios para as declarações SQL. Para ele, essa é a vantagem especial do Steampipe.
Para obter informações adicionais, verifique os repositórios para sua plataforma Fargate e o seu módulo de asseguração de controle em andamento. Caso tenha experiências similares para compartilhar, por favor, entre em contato. Estamos interessados em saber como os usuários estão utilizando o Steampipe.