debugging the life logo
  • About 
  • Blog 
  • Tags 
Blog
  1. Home
  2. Blogs
  3. Gestão de vulnerabilidades com Greenbone Openvas - Ubuntu 20.04

Gestão de vulnerabilidades com Greenbone Openvas - Ubuntu 20.04

Posted on July 7, 2021  (Last modified on October 2, 2024) • 6 min read • 1,136 words
Vulnerability Management
 
Openvas
 
Greenbone
 
Vulnerability
 
Scanner
 
Nessus
 
Ubuntu
 
Linux
 
Vulnerability Management
 
Openvas
 
Greenbone
 
Vulnerability
 
Scanner
 
Nessus
 
Ubuntu
 
Linux
 
Share via
debugging the life
Link copied to clipboard

Um rápido how-to de como instalar o Greenbone Openvas no Ubuntu 20.04, além de uma breve introdução a gestão de vulnerabilidades.

On this page
  • 🚫 Alerta
  • Instalação do Postgresql
  • Instalação do Openvas
    • Configuração do Redis
    • Configuração do Postgressql
  • Atualização dos feeds ☕
  • Configurando cron para atualização dos feeds diariamente
  • Atualizando certificados
  • Configurando o GSA (Web Interface) para acesso externo
  • Reconstruindo NVT db
  • Deu pau? Olhe os logs!
Gestão de vulnerabilidades com Greenbone Openvas - Ubuntu 20.04

🚫 Alerta  

 
Este post está desatualizado, e poderá ter alguns problemas na utilização do OpenVAS. Sugiro ir ao novo post para ter a experiência esperada: https://tiagotavares.io/2021/12/gestao-de-vulnerabilidades-com-greenbone-openvas-ubuntu-20.04-updated-dez-2021

Sumário  

  • Sumário
  • Introdução
  • Por quê gerir vulnerabilidades e como fazer isso
  • Um pouco de história
  • Instalação e Configuração
    • Instalação do Postgresql
    • Instalação do Openvas
      • Configuração do Redis
      • Configuração do Postgressql
    • Atualização dos feeds ☕
    • Configurando cron para atualização dos feeds diariamente
    • Atualizando certificados
    • Configurando o GSA (Web Interface) para acesso externo
    • Reconstruindo NVT db
    • Deu pau? Olhe os logs!
  • 🎁 Bônus - Máquina Virtual

Introdução  

Neste post vou passar alguns passos e possíveis armadilhas a serem evitadas para instalação do Openvas, que é um scanner de vulnerabilidades opensource que pode auxiliar seu time na detecção de riscos em seus ativos tecnológicos.

Outra motivação é poder ajudar todas as comunidades que possuem o Português como língua mãe. 🇵🇹 🇧🇷 🇦🇴 🇹🇱 🇲🇿 🇨🇻 🇬🇶 🇬🇼 🇸🇹

Os componentes a serem instalados serão:

  • OpenVas (Open Vulnerability Assessment Scanner) 20.8 - Scanner de Vulnerabilidades;
  • GVM (Greenbone Vulnerability Manager) 20.8 - Responsável por gerenciar as tasks de scan;
  • GSA (Greenbone Security Assistant) 20.8 - Responsável por prover a interface web para gestão do usuário;
  • Outros componentes auxiliares e bibliotecas.

Por quê gerir vulnerabilidades e como fazer isso  

A gestão de vulnerabilidades, apesar de ser apenas uma parte dos seus processos de Gestão de Segurança da Informaçâo, ela é de extrema importância para ter visibilidades dos riscos em seu ambiente.

Algumas boas referências da importância desses processos podem ser encontrados em:

  • https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-53r5.pdf
  • https://www.cisecurity.org/controls/continuous-vulnerability-management/
  • https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf

Suriro os seguintes passos para uma boa gestão de vulnerabilidades seja conduzida:

  1. Ter uma lista de todos os ativos de sua organização, assim como domínios e subdomínios, redes externas e internas;
  2. Saber quais são os seus ativos críticos para o funcionamento da organização;
  3. Manter a lista de ativos suas criticidades atualizadas;
  4. Organizar as agendas de scan destes ativos;
  5. Realizar análise e triagem dos relatórios destes scans, além de avaliar possíveis falsos positivos;
  6. Reportar vulnerabilidades, dando ênfase em vulnerabilidades altas e críticas, e riscos em ativos críticos;
  7. Realizar follow-ups periódicos com os times responsáveis pelas correções;
  8. Voltar ao item 3.

Um pouco de história  

Em 2005, os desenvolvedores do scanner de vulnerabilidade Nessus decidiram descontinuar o trabalho em modelo opensource e mudar para um modelo de negócios proprietário.

Neste ponto, os desenvolvedores da Intevation e DN-Systems - as duas empresas que mais tarde fundariam a Greenbone Networks - já estavam contribuindo com desenvolvimentos para o Nessus, com foco em ferramentas de cliente. Os trabalhos foram apoiados principalmente pelo Escritório Federal Alemão de Segurança da Informação (BSI).

Instalação e Configuração  

Tudo o que será feito abaixo será com base em um repositório pronto para o Ubuntu. Mas se você quiser pode baixar os fontes, compilar e configurar da forma que quiser, basta acessar o repositório da Greenbone no Github: https://github.com/greenbone/

Vamos utilzar o repositório criado por Mohammad Razavi.

https://launchpad.net/~mrazavi/+archive/ubuntu/gvm

Iniciaremos configurando a hora local do sistema operacional. No meu caso, vou definir a hora aqui de São Paulo.

sudo timedatectl set-timezone America/Sao_Paulo

Adicione o repositório necessário.

sudo add-apt-repository ppa:mrazavi/gvm

Atualize a lista de repositórios do Ubuntu e atualize o sistema operacional.

sudo apt update && sudo apt dist-upgrade

Instalação do Postgresql  

Instale o Postgresql.

sudo apt install postgresql

Habilite o serviço.

sudo systemctl enable postgresql

Reinicie o serviço do Postgresql

sudo systemctl restart postgresql

Instalação do Openvas  

sudo apt install gvm

Configuração do Redis  

O Redis será utilizado para armazenar toda a documentação do Openvas, sem ele nenhum scan iniciará. Basta seguir com a configuração padrão.

Configuração do Postgressql  

Pode seguir com a configuração pelo módulo gvmd-pg.

Em nosso exemplo, utilizaremos um Postgresql local, portando vamos seguir com locallhost.

Como vamos utilizar a autenticação identdo Posgresql, vamos deixar a senha em branco.

Atualização dos feeds ☕  

Siga a sequência abaixo para atualizar dos feed de vulnerabilidades.

Busque um café porque essa parte irá demorar.

sudo -u gvm -g gvm greenbone-nvt-sync
sudo -u gvm -g gvm greenbone-feed-sync --type GVMD_DATA
sudo -u gvm -g gvm greenbone-feed-sync --type SCAP
sudo -u gvm -g gvm greenbone-feed-sync --type CERT

Configurando cron para atualização dos feeds diariamente  

Precisaremos que todos os dias sejam atualizadas a lista de vulnerabilidades a partir dos feeds.

Vamos criar um script de atualização do feed.

sudo vim /usr/local/bin/gvm-feedupdate.sh
#!/bin/bash

greenbone-nvt-sync
greenbone-feed-sync --type GVMD_DATA 
greenbone-feed-sync --type SCAP 
greenbone-feed-sync --type CERT


#/var/log/gvm/update_feed.log

Precisarmos dar permissão de execução e passar a propriedade do script para o usuário gvm.

sudo chmod +x /usr/local/bin/gvm-feedupdate.sh ; sudo chown gvm.gvm /usr/local/bin/gvm-feedupdate.sh

Agora, vamos adicionar o agendamento no crontab do usuario gvm:

sudo -u gvm -g gvm crontab -e

Adicione linha a seguir em nosso arquivo. Ele o sistema operacional agendará para que todos os dias, ao meio dia, seja executada a série de comandos para atualização dos feeds, e que grave em update_feed.log os logs do update.

0 12 1 * * /usr/local/bin/gvm-feedupdate.sh > /var/log/gvm/update_feed.log

Ficará mais ou menos assim:

Atualizando certificados  

Esta tarefa pode ser necessária para corrigir problemas de comunicação entre o GVM e o Openvas Scanner, assim precisando reconfigu os certificados.

sudo -u gvm -g gvm gvm-manage-certs -f -a

Configurando o GSA (Web Interface) para acesso externo  

A princípio, o módulo GSA (Greenbone Security Assistant), que é responsável pelo gerenciamento da interface web, não permitie acesso de fora do servidor do Openvas. Para permitir acessos externos a interface web é necessário alterar o parâmetro GSAD_ADDRESS de 127.0.0.1 para 0.0.0.0.

Você pode utilizar o sed…

cd /etc/default ;\
sudo sed -e 's/127.0.0.1/0.0.0.0/g' gsad

Ou simplesmente alterando o arquivo do serviço.

vim /etc/default/gsad

Recarregue as novas configurações dos serviços.

 sudo systemctl daemon-reload

Reinicie todos os serviços instalados.

sudo systemctl restart ospd-openvas gsad gvmd

Agora basta acessar a interface na porta 9392.

Credenciais: admin/admin

https://IP_DO_SERVIDOR:9392

Reconstruindo NVT db  

Pode acontecer de no momento da atualização dos feeds por alguma instabilidade de rede ocorrer algum interrupção e por sua vez crashear o banco dos NVTs (Network Vulnerability Testes). Para resolver esse problema basta executar os comandos abaixo, e realizar os feeds.

export $(sudo cat /etc/default/gvmd-pg)
sudo -E -u gvm -g gvm gvmd --rebuild

Deu pau? Olhe os logs!  

Todos os logs estão em /var/log/gvm. Se em algum momento tiver algum problema com a aplicação, verique o que ocorre lendo os logs.

$ ls -lh
total 1.1M
-rw-r--r-- 1 gvm gvm  18K Jul  7 09:25 gsad.log
-rw------- 1 gvm gvm 190K Jul  7 07:53 gvmd.log
-rw-r--r-- 1 gvm gvm 873K Jul  7 09:40 openvas.log
-rw-r--r-- 1 gvm gvm 9.4K Jul  7 07:53 ospd-openvas.log

No momento da instalação, se suspeitar que há algo errado bom o Postrgresql, basta olhar seu log tabém para investigação em /var/log/postgresql/postgresql*.log.

🎁 Bônus - Máquina Virtual  

Caso tenha problemas na instalação ou queira realizar um assessment rápido basta baixar a máquina virtual (VMware) clicando aqui.

Lembre-se logar no Ubuntu e atualizar os feed, conforme mostro acima.

👾

 Café Seguro 23 Café na conta de... Tiago Tavares
ChillHack: 1 - Vulnhub  
On this page:
  • 🚫 Alerta
  • Instalação do Postgresql
  • Instalação do Openvas
    • Configuração do Redis
    • Configuração do Postgressql
  • Atualização dos feeds ☕
  • Configurando cron para atualização dos feeds diariamente
  • Atualizando certificados
  • Configurando o GSA (Web Interface) para acesso externo
  • Reconstruindo NVT db
  • Deu pau? Olhe os logs!
comments powered by Disqus
👾

Eternal student.

     
Copyright © 2024 Tiago Tavares.
debugging the life
Code copied to clipboard