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.
Exporte o caminho para o instalador do Nessus:
NESSUS_INSTALLER=
Instale o Nessus com o dpkg:
dpkg -i ${NESSUS_INSTALLER:?}
Reinicie o Nessus e confirme que está em execução:
sudo systemctl restart nessusd sudo systemctl status nessusd
Obtenha o código de desafio para registar o nessus offline:
/opt/nessus/sbin/nessuscli fetch --challenge
Num computador com ligação à Internet, aceda à página de ativação offline do Nessus https://plugins.nessus.org/v2/offline.php.
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"
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.
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.
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
.Aplique a licença ao Nessus:
/opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
Crie um utilizador administrador:
Siga as instruções de
nessuscli adduser
para criar um utilizador doadmin
. 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
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 utilizadoradmin
.
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.
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
Transfira o pacote de plug-ins para a estação de trabalho do Nessus e exporte a localização do ficheiro:
NESSUS_PLUGIN_BUNDLE=
Aplique as atualizações de plug-ins ao Nessus:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
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.
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.É 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:
- Crie uma análise de deteção de anfitriões denominada
host-discovery
- Especificar anfitriões: CIDRs externos e internos
- 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:
Exporte o kubeconfig do cluster:
KUBECONFIG=
Liste todos os nós do cluster:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
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>
Na IU do Nessus, comece a criar uma "Análise avançada" com o nome
nodeos-compliance-<cluster_name>
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
Siga o Apêndice: adicione credenciais SSH do nó do cluster para adicionar credenciais de análise.
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.
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:
Selecione a análise concluída para rever os respetivos resultados.
Clique no botão "Denunciar" na parte superior direita.
Escolha o formato de relatório CSV e selecione todas as colunas.
Clique em "Gerar relatório". Após um breve atraso, o relatório deve ser transferido.
(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.
Exporte o kubeconfig do cluster:
KUBECONFIG=
Liste as chaves SSH do cluster
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
Identifique o namespace do segredo "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 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
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.
Transfira
nessus-<cluster>-id_rsa
enessus-<cluster>-id_rsa-cert.pub
para a estação de trabalho usada para aceder à IU do Nessus.Na IU do Nessus, aceda ao separador Credentials (Credenciais) das definições de análise.
Crie uma nova credencial SSH e escolha "certificado" para o método de autenticação.
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
Guarde as definições de SSH.
Voltar ao local onde esta secção foi referenciada.