O Nessus é um scanner de segurança usado para detectar vulnerabilidades de segurança em hardware e software.
Este documento apresenta as etapas para:
instalar o Nessus
realizar verificações do Nessus
exportar resultados da verificação do Nessus
1. Contexto
O Tenable Nessus é uma ferramenta licenciada de terceiros. Consulte os seguintes recursos para saber mais sobre o Nessus:
2. Antes de começar
Estação de trabalho
- O bootstrap (te-bf) ou uma estação de trabalho equivalente acessível ao operador é necessário para hospedar o Nessus.
É necessário ter acesso
Siga IAM-R0005:
- Receba uma função de administrador de 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 ter um instalador do Nessus compatível com o SO da sua estação de trabalho. Transfira o instalador de https://www.tenable.com/downloads/nessus 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 você não tiver um código de ativação de licença, entre em contato com o POC da sua equipe para licenciamento de terceiros / lista de materiais de software.
3. Instalar o Nessus
Esta seção aborda as etapas para instalar o Nessus na estação de trabalho do Nessus.
Se o Nessus já estiver instalado e ativado, pule esta seção.
Se o Nessus não estiver mais disponível (por exemplo, se ele foi instalado em uma máquina que não existe mais), a licença usada para ativar a instância anterior do Nessus precisará ser redefinida antes de continuar.
Exporte o caminho para o instalador do Nessus:
NESSUS_INSTALLER=
Instale o Nessus com dpkg:
dpkg -i ${NESSUS_INSTALLER:?}
Reinicie o Nessus e confirme se ele está em execução:
sudo systemctl restart nessusd sudo systemctl status nessusd
Receber o código do desafio para registrar o Nessus off-line:
/opt/nessus/sbin/nessuscli fetch --challenge
Em uma máquina conectada à Internet, acesse a página de ativação off-line do Nessus https://plugins.nessus.org/v2/offline.php.
Copie o código de ativação off-line do Nessus e o código de ativação da licença do Nessus na página de ativação off-line do Nessus e pressione "Enviar".
A página de ativação off-line do Nessus vai mostrar um URL de plug-in do Nessus e uma licença do produto. Os dois valores são necessários para as próximas etapas.
Salve o URL do plug-in do Nessus em um local seguro para referência futura, já que ele será necessário mais adiante neste guia.
Salve a licença da página de ativação off-line do Nessus na estação de trabalho do Nessus em um arquivo chamado
/opt/nessus/etc/nessus/nessus.license
.Aplique a licença ao Nessus:
/opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
Crie um usuário administrador:
Siga as instruções de
nessuscli adduser
para criar um usuárioadmin
. Essas credenciais serão usadas mais tarde para realizar verificações e baixar resultados. Por isso, salve-as em um local seguro./opt/nessus/sbin/nessuscli adduser
Enquanto o Nessus está em execução, a interface do usuário dele pode ser acessada na porta 8834. No navegador de sua preferência, acesse
https://<nessus-workstation-ip>:8834
e faça login como o usuárioadmin
.
4. Atualizar plug-ins do Nessus
Os plug-ins mais recentes do Nessus precisam ser baixados e aplicados antes da execução das verificações para garantir que os resultados sejam relevantes e atualizados. Os plug-ins do Nessus precisam ser obtidos diretamente da Tenable usando o URL do plug-in do Nessus na página de ativação off-line do Nessus.
Consiga o pacote de plug-ins.
Opção 1: navegue até o URL do plug-in do Nessus usando o navegador de sua preferência. O pacote será baixado automaticamente.
Opção 2: fazer o download do pacote usando wget
wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gz
Transfira o pacote de plug-ins para a estação de trabalho do Nessus e exporte o local do arquivo:
NESSUS_PLUGIN_BUNDLE=
Aplique as atualizações de plug-in ao Nessus:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
As atualizações de plug-ins levam cerca de 30 minutos para serem compiladas. As próximas etapas para criar verificações podem ser seguidas enquanto isso acontece, mas aguarde a conclusão da compilação dos plug-ins para executar as verificações.
5. Configurar verificações do Nessus
É preciso criar verificações para cada combinação exclusiva de classe de destino e credencial. Nesta seção, vamos mostrar como criar a verificação necessária na interface do Nessus.
Antes de continuar, confirme o acesso à interface do Nessus em https://<nessus-workstation-ip>:8834
e faça login como o usuário admin
.
5.1. Coletar CIDRs de rede
As verificações do Nessus são criadas para verificar os CIDRs de rede externa e interna do ambiente.
Colete os CIDRs de rede externa e interna para a rede do appliance de destino. O ideal é que essa rede não se sobreponha a outro ambiente vizinho.
Os intervalos de IP provavelmente vão incluir o IP do bootstrap ou outros IPs que não devem ser verificados. Insira os comandos a seguir para cada IP que não deve ser verificado (por exemplo, IP do bootstrap):
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. Verificações de descoberta de host
As verificações de descoberta de rede não são autenticadas e têm como objetivo rastrear uma rede em busca de destinos e exposições de rede inseguras.
Essa verificação será configurada para analisar os CIDRs de rede externa e interna identificados na seção anterior.
Na interface do Nessus:
- Crie uma verificação de descoberta de host chamada
host-discovery
- Especifique hosts: CIDRs externos e internos
- Salvar e iniciar
5.3. Verificações do SO do nó
As verificações de nós são autenticadas e destinadas a inspecionar sistemas operacionais críticos em busca de vulnerabilidades conhecidas, configurações não seguras e compliance.
Siga esta seção para o cluster de infraestrutura da organização:
Exporte o kubeconfig do cluster:
KUBECONFIG=
Liste todos os nós do cluster:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
Observe a coluna que mostra o IP de dados de cada nó. Verifique se o IP de dados está acessível na estação de trabalho do Nessus com ping antes de continuar.
ping <node_data_ip>
Na interface do Nessus, comece a criar uma "Verificação avançada" com o nome
nodeos-compliance-<cluster_name>
.Na verificação avançada, preencha o campo "Hosts" com uma lista separada por vírgulas de todos os IPs de dados de nós da etapa 1.
Siga o Apêndice: adicionar credenciais SSH do nó de cluster para adicionar credenciais de verificação.
Navegue até a guia "Conformidade" e escolha a revisão mais recente disponível de "DISA STIG Ubuntu 20.04 v1". Salve a configuração de compliance sem fazer mudanças nos valores padrão.
Salve a configuração e inicie a verificação.
5.4. Fazer uma pausa
As verificações levam mais de 30 minutos para serem concluídas. Agora é um bom momento para fazer uma pausa ou fazer outra coisa até que elas sejam concluídas.
6. Exportar resultados da verificação
Esta seção explica o processo de exportação dos resultados da verificação.
Para cada verificação concluída, faça o download dos resultados:
Selecione a verificação concluída para analisar os resultados.
Clique no botão "Denunciar" no canto superior direito.
Escolha "Formato do relatório CSV" e selecione todas as colunas.
Clique em "Gerar relatório". Depois de um breve atraso, o relatório será baixado.
(Opcional) Se um relatório HTML também for necessário, escolha "Formato do relatório HTML" e o modelo de relatório que parecer adequado. O modelo de relatório recomendado é "Vulnerabilidades detalhadas por plug-in com conformidade/correção".
7. Próximas etapas
Os relatórios CSV / HTML resultantes precisam ser processados de acordo com os processos de segurança do seu ambiente. Em caso de dúvida, entre em contato com um ponto de contato de SecOps ou Compliance para receber mais instruções.
8. Apêndice
8.1. Adicionar credenciais SSH do nó de cluster
Esta seção mostra o processo para receber um conjunto de credenciais SSH para que o Nessus verifique os nós de um cluster de destino.
Exporte o kubeconfig do cluster:
KUBECONFIG=
Listar as chaves SSH do cluster
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
Identifique o namespace do secret "ssh-key" correspondente ao cluster de destino e exporte o namespace:
CLUSTER_NS=
Crie um diretório ssh do Nessus:
NESSUS_FOLDER=nessus mkdir -p ${NESSUS_FOLDER}/.ssh
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
Corrija as permissõ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
Converta a chave privada para o formato PEM com uma senha longa vazia:
ssh-keygen -p -m PEM -f ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
A saída bem-sucedida será semelhante a esta:
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.
Transfira
nessus-<cluster>-id_rsa
enessus-<cluster>-id_rsa-cert.pub
para a estação de trabalho usada para acessar a interface do Nessus.Na interface do Nessus, acesse a guia "Credenciais" das configurações de verificação.
Crie uma nova credencial SSH e escolha "certificado" como método de autenticação.
Forneça as seguintes configurações ao método de autenticação SSH por certificado:
Nome de usuário: "root"
Certificado do usuário: adicionar arquivo
nessus-<cluster>-id_rsa-cert.pub
Chave privada: adicionar arquivo
nessus-<cluster>-id_rsa
Salve as configurações de SSH.
Volte para onde esta seção foi referenciada.