Ola pessoal, tudo bem?
Ando meio sumido mas ultimamente ando ocupado estudando algumas soluções de segurança que não conhecia e também estava montando meu novo LAB, que será tema de um novo post em breve.
Bom, por falar em novas ferramentas de segurança da informação, uma solução que ando estudando bastante e implementando em meu Lab é o WAZUH, de acordo com a própria definição do site oficial, o WAZUH é:
“Wazuh é uma plataforma de segurança open source que integra funcionalidades de SIEM (Security Information and Event Management) e XDR (Extended Detection and Response). Ela permite monitorar e proteger infraestruturas de TI, incluindo hosts, serviços na nuvem e containers, oferecendo prevenção, detecção e resposta a incidentes de segurança. “
Também não vou abordar a instalação do Wazuh aqui, existem vários posts explicando isso, mas de qualquer forma, o post mais completo e mais intuitivo é o do próprio site do wazuh:
https://documentation.wazuh.com/current/quickstart.html
Basicamente estou utilizando a instalação do tipo all-in-one em um servidor rodando Ubuntu Server, pra mim esse foi o tipo de instalação mais simples, e pode ser feita utilizando apenas um unico comando conforme consta na documentação do site.
Bom, voltando ao tema principal do post, hoje vou abordar como gerar alertas por email a partir de log’s recebidos no Wazuh pelo vsphere.
Um dos principais medos de quem gerencia um ambiente vsphere e manter o ambiente seguro e livre de acessos indesejados, existe uma pesquisa realizada que fala que após um atacante obter acesso ao ambiente geralmente ele fica em torno de 197 dias fazendo o reconhecimento do ambiente, movimentando lateralmente e descobrindo tudo que ele pode acessar, antes de fato de comprometer o ambiente, ou seja, é extremamente importante termos alertas de acesso ou tentativa de acesso aos dispositivos principais do nosso ambiente.
É bem incomum termos que acessar diariamente um host ESXi por exemplo por SSH, principalmente devido ao fato desses hosts geralmente estarem sendo gerenciados por um vCenter, e sabemos que uma das formas que os atacante possuem de criptografar os volumes utilizados no vSphere ou de obterem acesso a determinadas pastas do ESXi é tendo acesso SSH-Root nos ESXi’s, na maioria dos ataques ocorre a escalação de privilégios, por exemplo em um Active Directory, e o atacante consegue então acessar a GUI do vCenter, tendo acesso como administrador ele consegue habilitar SSH nos hosts ESXi.
Desta forma, uma boa prática para mantermos o ambiente seguro é garantirmos através de alertas que todos os acessos SSH aos hosts VMware sejam alertados e devidamente tratados, que é o tema deste post:
1 – Coletando logs do ambiente vSphere e enviando ao Wazuh Manager:
Novamente, não vou abordar passo-a-passo a configuração do Wazuh para receber os logs do ambiente VMware, isso está bem documentado neste link:
Porém, alguns highlights merecem ser mencioados aqui:
O Wazuh recebe logs basicamente de duas formas, uma através de forma direta, ou seja, os dispositivos apontam para o Wazuh como um servidor de Logs/SIEM nativamente, e outra através de agents, geralmente rodando em SO’s Linux ou Windows.
Particularmente para ambientes vSphere é necessário que os hosts ESXi apontem os logs para um outro servidor/vm rodando um agente do Wazuh primeiro, e então esse agente vai enviar os logs à manager do Wazuh, desta forma temos um diagrama como esse:
1 – Desta forma, o agente recebe os logs dos hosts ESXi, guarda esses logs em um arquivo e o envia à manager do Wazuh.
2 – A manager trata esses logs através dos Decoders, os decodificadores extraem as informações dos eventos recebidos separando as informações em blocos para prepará-las para análise subsequente.
Seguindo o link oficial que eu mencionei anteriormente para configuração do ambiente vsphere para envio de logs ao Wazuh (https://wazuh.com/blog/monitoring-vmware-esxi-with-wazuh/), o decoder já estará pronto, configurado no arquivo “/var/ossec/etc/decoders/esxi_decoders.xml”, o decoder segue um formato com:
Veja que o decoder faz o trabalho de “traduzir” toda a informação que vem desestruturada para algo estruturado, que pode ser utilizado depois como regras.
Por falar em regras….
2 – Criando regras e gerando alertas por email a partir da ocorrência da ocorrência de uma regra:
Outro ponto importante e que já vem praticamente pronto no link enviado anteriormente são as regras, ou seja, quais alertas serão gerados a partir das informações que foram tratadas pelos decoders.
Novamente, o arquivo de regras (/var/ossec/etc/rules/esxi_rules.xml) já vem pronto seguindo o passo-a-passo oficial do Wazuh, a unica modificação que eu fiz foi habilitar alertas por email diretamente no arquivo de regras:
Exemplo de regra já contida no arquivo esxi_rules.xml:
É perfeitamente possível configurar o Wazuh para gerar alertas a partir da ocorrência de uma regra, a partir do level de um regra (no exemplo anterior, level 7) ou seguindo uma infinidade de outras opções, tudo também está muito bem documentado nesse link (https://documentation.wazuh.com/current/user-manual/manager/alert-management.html#smtp-server-with-authentication)
3 – Gerando alertas por email:
Sim, vou repetir novamente (haha) outro link oficial, a configuração do Wazuh para envio de emails é estremamente bem explicada no link (https://documentation.wazuh.com/current/user-manual/manager/alert-management.html#smtp-server-with-authentication).
Mas basicamente o processo consiste em instalar o postfix no wazuh manager, e alterar as configurações de SMTP conforme o seu provedor de emails, no meu caso, o hostinger:
Seguindo os passos do documento oficial, o arquivo de configuração “/etc/postfix/main.cf” ficaria desta forma: (lembrando, meu provedor de emails é o Hostinger
O arquivo “/var/ossec/etc/ossec.conf”, que é o principal arquivo de configurações do Wazuh-Manager também precisa ser alterado, basicamente habilitando notificações por email (trocando NO por YES) e alterando também os parâmetros “email_from” e “email_to”.
Observe que o parâmetro “smtp_server” deve ser configurado como localhost, tendo em vista que já configuramos o Postfix local com as informações de SMTP do servidor relay.
Outro ponto importante é que podemos alterar também dentro do arquivo ossec.conf tudo que gostariamos que fosse alertado por email, por padrão apenas alertas de nível 12 serão alertados.
Mas lembre-se, no meu caso eu configurei dentro das rules no arquivo de regras quais regras eu gostaria que fossem alertadas por email, mas basicamente aqui temos uma infinidade de opções que poderíamos configurar, como alterar algumas regras para level 12, assim elas já se enquadrariam no quesito default para alertas por email, ou alterar por exemplo:
Apenas regras com ID xxxx, yyyy ou zzzz serem alertadas:
<email_alerts> <email_to>you@example.com</email_to> <rule_id>515, 516</rule_id> <do_not_delay/> </email_alerts>
Novamente, o link (https://documentation.wazuh.com/current/user-manual/manager/alert-management.html#smtp-server-with-authentication) possui tudo muito bem documentado e detalhado, existem uma série de opções disponíveis para configuração de alertas.
Bom, com as configurações realizadas, é o momento de realizarmos um teste:
Utilizando um client SSH, eu obtive acesso ao meu ESXi-01 do meu laboratório:
Na aba Discover do meu servidor Wazuh é possível verificar esse acesso através dos logs:
Ao mesmo tempo foi gerado um alerta por email e enviado ao meu gmail configurado anteriormente:
Esse tipo de notificação apesar de simples é muito importante, ambientes vSphere gerenciados por um vCenter não possuem a característica de terem acessos SSH aos hosts ESXi com frequência, qualquer acesso desse tipo deve ser validado para garantir que não seja um atacante obtendo acesso ao ambiente.
E novamente, aqui temos uma infinidade de possibilidades e alertas que poderiam ser gerados a partir desse exemplo.
Até a próxima pessoal.