Realize análises do Nessus

O Nessus é um verificador de segurança usado para detetar vulnerabilidades de segurança no hardware e software.

Este documento apresenta os passos para:

  • instala o Nessus

  • executar verificações do Nessus

  • exportar resultados da análise do Nessus

1. Contexto

O Tenable Nessus é uma ferramenta de terceiros licenciada. Consulte os seguintes recursos para saber mais sobre o Nessus:

2. Antes de começar

  • Estação de trabalho

    • O bootstrapper (te-bf) ou a estação de trabalho acessível do operador equivalente é necessária para alojar o Nessus.
  • Acesso necessário

    • Siga IAM-R0005:

      • Obtenha uma função de administrador do cluster para cada cluster de destino.
    • Siga IAM-R0004:

      • Gere o KUBECONFIG para cada cluster de destino.
  • Ferramentas necessárias

    • kubectl
    • ssh-keygen
  • Software

    • É necessário um instalador do Nessus compatível com o SO da sua estação de trabalho. Obtenha o instalador em https://www.tenable.com/downloads/nessus e transfira-o para a estação de trabalho do Nessus antes de continuar.
  • Licenciamento

    • É necessário um único código de ativação da licença do Tenable Nessus (Pro, Export ou Manager). Se não tiver um código de ativação da licença, contacte o seu ponto de contacto da equipa para obter informações sobre o licenciamento de terceiros / a lista de materiais de software.

3. Instale o Nessus

Esta secção aborda os passos para instalar o Nessus na estação de trabalho do Nessus.

Se o Nessus já estiver instalado e ativado, deve ignorar esta secção.

Se o Nessus já não estiver disponível (por exemplo, foi instalado numa máquina que já não existe), a licença usada para ativar a instância anterior do Nessus tem de ser reposta antes de continuar.

  1. Exporte o caminho para o instalador do Nessus:

    NESSUS_INSTALLER=
    
  2. Instale o Nessus com o dpkg:

    dpkg -i ${NESSUS_INSTALLER:?}
    
  3. Reinicie o Nessus e confirme que está em execução:

    sudo systemctl restart nessusd
    sudo systemctl status nessusd
    
  4. Obtenha o código de desafio para registar o nessus offline:

    /opt/nessus/sbin/nessuscli fetch --challenge
    
  5. Num computador com ligação à Internet, aceda à página de ativação offline do Nessus https://plugins.nessus.org/v2/offline.php.

  6. Copie o código de ativação offline do Nessus e o código de ativação da licença do Nessus para a página de ativação offline do Nessus e prima "Enviar"

  7. A página de ativação offline do Nessus deve apresentar agora um URL do plugin do Nessus e uma licença do produto. Ambos os valores são necessários para os passos seguintes.

  8. Guarde o URL do plug-in do Nessus num local seguro para referência futura, uma vez que vai ser necessário mais tarde neste guia.

  9. Guarde a licença da página de ativação offline do Nessus na estação de trabalho do Nessus num ficheiro denominado /opt/nessus/etc/nessus/nessus.license.

  10. Aplique a licença ao Nessus:

    /opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
    
  11. Crie um utilizador administrador:

    Siga as instruções de nessuscli adduser para criar um utilizador do admin. Estas credenciais vão ser usadas posteriormente para fazer análises e transferir resultados, por isso, guarde-as num local seguro.

    /opt/nessus/sbin/nessuscli adduser
    
  12. Enquanto o Nessus está em execução, a respetiva interface do utilizador está acessível na porta 8834. No navegador da sua escolha, navegue até https://<nessus-workstation-ip>:8834 e inicie sessão como utilizador admin.

4. Atualize os plug-ins do Nessus

Os plug-ins mais recentes do Nessus têm de ser transferidos e aplicados ao Nessus antes de executar as análises para garantir que os resultados da análise são relevantes e estão atualizados. Os plug-ins do Nessus têm de ser obtidos diretamente da Tenable através do URL do plug-in do Nessus obtido na página de ativação offline do Nessus.

  1. Obtenha o pacote de plug-ins.

    Opção 1: navegue para o URL do plug-in do Nessus através do navegador à sua escolha e o pacote é transferido automaticamente.

    Opção 2: transfira o pacote através do wget wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gz

  2. Transfira o pacote de plug-ins para a estação de trabalho do Nessus e exporte a localização do ficheiro:

    NESSUS_PLUGIN_BUNDLE=
    
  3. Aplique as atualizações de plug-ins ao Nessus:

    /opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
    
  4. As atualizações de plug-ins demoram cerca de 30 minutos a compilar. Pode seguir os passos seguintes para criar verificações enquanto isto acontece, mas aguarde até que os plug-ins terminem a compilação para executar as verificações.

5. Configure análises do Nessus

As análises têm de ser criadas para cada combinação única de classe de destino e credencial. Esta secção explica como criar a análise necessária através da IU do Nessus.

Antes de continuar, confirme o acesso à IU do Nessus em https://<nessus-workstation-ip>:8834 e inicie sessão como utilizador admin.

5.1. Recolha CIDRs de rede

As análises do Nessus são criadas para analisar os CIDRs de rede externos e internos do ambiente.

  1. Recolha os CIDRs da rede externa e interna para a rede do dispositivo de destino (idealmente, esta rede não se sobrepõe a outro ambiente adjacente).

    do cluster de infraestrutura da organização.
  2. É provável que os intervalos de IP incluam o IP do programa de arranque ou outros IPs que não devem ser analisados. Introduza os seguintes comandos para cada IP que não deve ser analisado (por exemplo, IP do programa de arranque):

    IGNORE_IP=
    IGNORE_IP_REASON=
    
    echo "# ${IGNORE_IP_REASON:?}" >> /opt/nessus/etc/nessus/nessusd.rules
    echo "reject ${IGNORE_IP:?}" >>  /opt/nessus/etc/nessus/nessusd.rules
    

5.2. Análises de deteção de anfitriões

As análises de deteção de rede não são autenticadas e destinam-se a analisar uma rede em busca de alvos e exposições de rede não seguras.

Esta análise vai ser configurada para analisar os CIDRs de rede externos e internos identificados na secção anterior.

Na IU do Nessus:

  1. Crie uma análise de deteção de anfitriões denominada host-discovery
  2. Especificar anfitriões: CIDRs externos e internos
  3. Guardar e iniciar

5.3. Análises do SO do nó

As análises de nós são autenticadas e destinam-se a inspecionar sistemas operativos críticos quanto a vulnerabilidades conhecidas, configuração não segura e conformidade.

Trabalhe nesta secção para o cluster de infraestrutura da organização:

  1. Exporte o kubeconfig do cluster:

    KUBECONFIG=
    
  2. Liste todos os nós do cluster:

    kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
    
  3. Tenha em atenção a coluna que mostra o IP de dados de cada nó. Verifique novamente se o IP de dados está acessível a partir da estação de trabalho do Nessus com ping antes de continuar.

    ping <node_data_ip>
    
  4. Na IU do Nessus, comece a criar uma "Análise avançada" com o nome nodeos-compliance-<cluster_name>

  5. Na análise avançada, preencha o campo de anfitriões com uma lista separada por vírgulas de todos os IPs de dados de nós do passo 1

  6. Siga o Apêndice: adicione credenciais SSH do nó do cluster para adicionar credenciais de análise.

  7. Navegue para o separador de conformidade e escolha a revisão mais recente disponível de "DISA STIG Ubuntu 20.04 v1". Guarde a configuração de conformidade tal como está, sem fazer alterações aos valores predefinidos.

  8. Guarde a configuração da análise e inicie a análise.

5.4. Fazer uma pausa

As análises devem demorar mais de 30 minutos a terminar. Agora é uma boa altura para fazer uma pausa ou fazer outra coisa até que estejam concluídas.

6. Exporte os resultados da análise

Esta secção explica o processo de exportação dos resultados da análise.

Para cada análise concluída, transfira os resultados:

  1. Selecione a análise concluída para rever os respetivos resultados.

  2. Clique no botão "Denunciar" na parte superior direita.

  3. Escolha o formato de relatório CSV e selecione todas as colunas.

  4. Clique em "Gerar relatório". Após um breve atraso, o relatório deve ser transferido.

  5. (Opcional) Se também for necessário um relatório HTML, escolha o formato de relatório HTML e o modelo de relatório que lhe parecer razoável. O modelo de relatório recomendado é "Vulnerabilidades detalhadas por plug-in com conformidade/correção".

7. Passos seguintes

Os relatórios CSV / HTML resultantes têm de ser processados de acordo com os processos de segurança do seu ambiente. Em caso de dúvida, contacte um POC de SecOps ou conformidade para receber mais instruções.

8. Anexo

8.1. Adicione credenciais SSH do nó do cluster

Esta secção explica o processo para obter um conjunto de credenciais SSH para o Nessus analisar os nós de um cluster de destino.

  1. Exporte o kubeconfig do cluster:

    KUBECONFIG=
    
  2. Liste as chaves SSH do cluster

    kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
    
  3. Identifique o namespace do segredo "ssh-key" correspondente ao cluster de destino e exporte o namespace:

    CLUSTER_NS=
    
  4. Crie um diretório ssh do Nessus:

    NESSUS_FOLDER=nessus
    mkdir -p ${NESSUS_FOLDER}/.ssh
    
  5. Exporte o par de chaves SSH para o diretório SSH do Nessus:

    kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
    
    kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa-cert\.pub }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
    
  6. Corrija as autorizações do par de chaves:

    # fix permissions
    chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
    chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
    
  7. Converta a chave privada para o formato PEM com uma frase de acesso vazia:

    ssh-keygen -p -m PEM -f ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
    

    O resultado bem-sucedido deve ter um aspeto semelhante ao seguinte:

    Key has comment 'root@te-bd-bootstrapper'
    Enter new passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved with the new passphrase.
    
  8. Transfira nessus-<cluster>-id_rsa e nessus-<cluster>-id_rsa-cert.pub para a estação de trabalho usada para aceder à IU do Nessus.

  9. Na IU do Nessus, aceda ao separador Credentials (Credenciais) das definições de análise.

  10. Crie uma nova credencial SSH e escolha "certificado" para o método de autenticação.

  11. Indique as seguintes definições para o método de autenticação SSH por certificado:

    • Nome de utilizador: "root"

    • Certificado do utilizador: adicionar ficheiro nessus-<cluster>-id_rsa-cert.pub

    • Chave privada: adicionar ficheiro nessus-<cluster>-id_rsa

  12. Guarde as definições de SSH.

  13. Voltar ao local onde esta secção foi referenciada.