Syhunt Hybrid: Web UI

As informações contidas neste documento se aplicam a versão 7.1.6 do Syhunt Hybrid.

Introdução

A partir da versão 7.1.6, o Syhunt Hybrid vem com uma interface de usuário web robusta que pode ser habilitada em máquinas Windows, Mac ou Linux. Embora ainda em evolução, a web UI permite iniciar varreduras DAST, SAST e MAST, visualizar resultados de varreduras (incluindo aquelas iniciadas por meio da GUI, CLI, API REST e agendador, se houver), gerar relatórios e exportações, gerenciar usuários, permissões de usuário e sessões ativas, execute comandos do console e muito mais. A interface web e os relatórios estão atualmente disponíveis em 8 idiomas – inglês, alemão, espanhol, francês, italiano, japonês, coreano e português.

A interface web Syhunt Hybrid foi construída sobre um servidor web robusto - Openresty (Nginx + Lua), usa Bcrypt com um alto fator para hashing de senha, geração segura de ID de sessão e implementa proteção de login contra força bruta.

Ativando a interface Web UI

  1. Abra o prompt de comando ou terminal e vá para o local da CLI do Syhunt - a localização padrão depende do seu sistema operacional:
    1. No Windows: powershell Start-Process cmd -ArgumentList '/k "cd /d \"%ProgramFiles%\Syhunt Hybrid\""' -Verb runAs
    2. No macOS: cd "/Applications/Syhunt Hybrid/carbon"
    3. No Linux: cd ${HOME}/syhunt-hybrid/carbon/
  2. Configure as principais contas de usuário.
    1. Execute o seguinte comando para gerar e definir a senha do administrador: scancore -pwdgen:admin
    2. Salve a senha gerada; você precisará dela depois para se logar.
    3. (Opcional) Execute o seguinte comando para criar e definir a senha de outras contas: scancore -pwdgen:nomedousuario
    4. (Optional) Se você deseja que a UI da web use um idioma diferente, como por exemplo o Português, execute o comando: scancore -langset:PT Veja os códigos de idioma disponíveis
  3. Execute o servidor:
    1. No Linux ou Mac: Rode o comando syservicereg, e o serviço da Web UI será instalado e iniciado.
    2. No Windows: Reinicie o Windows, e a web UI se iniciará junto com o sistema, ou, alternativamente, rode como Administrador o comando scansched -restart se não desejar reiniciar.
  4. Agora você pode acessar a web UI e fazer login em: http://127.0.0.1:8017/syhunt/ e também usar a Syhunt REST API. Realize o login com as credenciais:
    1. Usuário: admin
    2. Senha: a senha que foi gerada logo nos primeiros passos.

Etapas e Notas Adicionais

  • Em qualquer Linux ou Mac, se você planeja executar SAST e MAST, certifique-se de que habilitou as extensões Hybrid Plus.
  • No Alma Linux: Se o serviço de IU da Web não iniciar corretamente, talvez seja necessário desabilitar o SELinux permanentemente: sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config && sudo reboot. Depois disso, o serviço de IU da Web deve ser executado conforme o esperado.
  • No Windows, uma vez definida a senha do administrador, a web UI é iniciada sempre que o serviço Hybrid Scheduler é iniciado. Isso garante que a web UI continue em execução mesmo que o usuário atual efetue logout. No Linux, o serviço da Web UI faz o mesmo.

Política de senha

Para fortalecer a segurança e garantir a conformidade, o Syhunt 7.1 introduz uma política de senha de interface de usuário da web rigorosa, aplicando os seguintes requisitos:

  1. Comprimento mínimo da senha
    1. Contas não administrativas: mínimo de 16 caracteres
    2. Contas administrativas: mínimo de 26 caracteres
  2. Restrições de reutilização de senha
    1. Contas administrativas: não podem reutilizar as últimas 24 senhas
    2. Contas não administrativas: não podem reutilizar as últimas 10 senhas
  3. Requisitos de complexidade de senha
    1. Não deve incluir o nome de usuário ou partes do nome completo do usuário
    2. Deve conter pelo menos:
      1. Uma letra maiúscula (A-Z)
      2. Uma letra minúscula (a-z)
      3. Um dígito (0-9)
      4. Um caractere não alfabético (por exemplo, @, #, $, %)
    3. Não deve conter:
      1. Três ou mais caracteres consecutivos idênticos (por exemplo, AAA)
      2. Três caracteres ascendentes ou descendentes consecutivos (por exemplo, 123, 321, ABC, CBA)

Com essas medidas de segurança aprimoradas, o Syhunt 7.1 garante proteção mais forte contra ameaças relacionadas a senhas, mantendo a conformidade com os padrões do setor. Ao definir uma nova senha, os requisitos acima serão observados. Após a atualização, se algum desses padrões for encontrado em uma senha definida anteriormente no momento do login, você precisará redefinir sua senha.

Para simplificar a geração de senhas, o Syhunt 7.1 adiciona o parâmetro -pwdgen:[nome de usuário] ao comando scancore, que gera uma senha com segurança, a define e imprime a senha gerada na saída, mas se você preferir inseri-la manualmente, ainda poderá usar o parâmetro -pwdset.

Configurando funções de usuário

Quando você está logado como Administrador, você pode alterar a função de qualquer usuário para Operador, Operador Restrito ou Visualizador. A seguir estão as funções existentes:

  • Administrador - O administrador pode iniciar e visualizar os resultados de todas as verificações iniciadas, editar as permissões e preferências do usuário e executar comandos do console. Atualmente, apenas uma conta de administrador é permitida.
  • Operador - Um usuário com esta função pode iniciar e visualizar os resultados de todas as varreduras iniciadas.
  • Operador Restrito - Um usuário com esta função pode iniciar varreduras, mas apenas visualizar os resultados das varreduras iniciadas por ele mesmo.
  • Visualizador - Um usuário com esta função pode visualizar os resultados de todas as varreduras iniciadas, mas não é capaz de iniciar nenhuma varredura.

Expondo a UI da Web com segurança

Como o servidor web UI do Syhunt vem pré-configurado e é atualizado toda vez que o Syhunt é atualizado, não é aconselhável modificar suas configurações. Se você precisar expor a UI da web à Internet ou intranet, recomendamos configurar um proxy Nginx reverso com SSL habilitado. Você precisará gerar um certificado.crt e uma chave privada para ser usado com ele - as instruções abaixo pressupõem que você já tenha os certificados prontos.

No Windows:

  1. Baixe o Nginx para Windows: http://nginx.org/en/download.html
  2. Aplique as alterações de configuração do Nginx nginx.conf descritas abaixo.

No Linux:

  1. Instale o Nginx:
    1. No Ubuntu: sudo apt install nginx
    2. No CentOS 7: sudo yum install nginx
    3. No CentOS 8: sudo dnf install nginx
  2. Edite o arquivo de configuração do Nginx: sudo nano /etc/nginx/nginx.conf
    1. Comente as linhas: include /etc/nginx/conf.d/*.conf; e include /etc/nginx/sites-enabled/*;
    2. Dentro da seção http inclua:
server {
    listen 80;
    server_name _;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name _;

    ssl_certificate /etc/ssl/certificate.crt;
    ssl_certificate_key /etc/ssl/certificate.key;

    location / {
        return 301 https://$host/syhunt/;
    }

    location /syhunt/ {
        proxy_pass http://127.0.0.1:8017;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. Após salvar as alterações, teste a nova configuração: nginx -t
  2. Permitir tráfego de localhost para a porta 8017 e permitir tráfego de entrada na porta 443:
    1. No Ubuntu:
      1. sudo ufw allow from 127.0.0.1 to any port 8017
      2. sudo ufw allow 443
    2. No CentOS:
      1. sudo firewall-cmd --zone=public --add-port=443/tcp
      2. sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="127.0.0.1" port port=8017 protocol=tcp accept'
      3. sudo firewall-cmd --reload
  3. Reinicie o servidor Nginx: systemctl restart nginx

Dicas

MacOS

Se o horário exibido na tela do Agendador de Varreduras não corresponder ao horário do seu sistema operacional, execute o seguinte comando para corrigi-lo: sudo /usr/sbin/systemsetup -settimezone "Europe/Lisbon" (substitua Europe/Lisbon pelo seu fuso horário)

Limitações

  • No Linux ou Mac, as varreduras de código iniciadas por meio da web UI só podem ter como alvo repositórios GIT públicos. Se você precisar direcionar um repositório privado, use o comando CLI scancode para iniciar a varredura após configurar corretamente as credenciais do repositório ou chaves SSH. Além disso, a conexão direta com repositórios Azure TFS não está disponível para máquinas Linux ou Mac.

Contato