UFSC 2023/2
Professor Gerson Luiz Camillo
Participantes: Everton, Marcos, Vitória
1 - Multifatorial (MFA)
2 - Grupos
2.1 - Grupo dos Gerentes
2.2 - Grupo Cebola
3 - Instância utilizada
4 - Chaves pública/privada
5 - Patches
6 - Instalação Apache2
6.1 - Criação da CA
7 - Configuração no firewall
7.1 - Configuração no firewall da instância
8 - Restrições de acessos
8.1 - Problemas
9 - Controle MAC
10 - Escolha das técnicas de segurança
11 - Logs do servidor
11.1 - Logs Apache
12 - Protocolo NTP
VOLTAR
Responsável: Marcos.Responsável: Marcos. Responsável: Marcos. Responsável: Marcos.
O Sistema Operacional escolhido foi o rock linux, devido ao seu código fonte ser o mesmo que o Red Hat. Um sistema robusto.
Responsável: Marcos.
Repositório padrão para guardar as chaves: ~/.ssh
Foram criadas três chaves ssh, uma para cada membro da equipe.
Configuração para desabilitar o acesso do root no SSH:
Motivação para desativação do acesso root no SSH: Existem algumas motivações para que essa ação seja realizada, já adianto que todas voltadas à segurança e hardening. Alguns motivos:
Segurança: O acesso direto ao root via SSH pode, e geralmente é, um alvo atraente para ataques de força bruta. Desativar o acesso SSH para o usuário root aumenta a segurança, pois os invasores teriam que adivinhar não apenas a senha do root, mas também o nome de usuário correto para acessar o sistema; Erros acidentais: Limitar o acesso SSH para usuários nominais pode ajudar a prevenir erros acidentais cometidos por sysadmins. Ter que fazer login com uma conta de menor privilégio antes de usar privilégios administrativos pode fazer com que os administradores pensem duas vezes antes de realizar ações críticas;
VOLTAR
Instancia atualizada (06/12/2023 - 21H)
Responsável: Everton
VOLTAR
O Apache2 foi escolhido, principalmente, por ser um software de código aberto, ser estável e confiavél além de suportar protocolos variados(Como o HTTP e o HTTPS)
VOLTAR
Chrony User padrão rodando
O Chrony é uma implementação de protocolos de sincronização de tempo, como o NTP, e é usado para garantir uma precisão adequada nos relógios de computadores em uma rede
Responsavel: Everton
Material para chave: https://docs.rockylinux.org/guides/security/ssl_keys_https/#generating-ssltls-keys
Criando o Certificado
Certificado HTTPS
Criação da chave https
Habilitando o HTTP
Chave privada criada
instalação do modulo SSL:
Responsáveis: Everton / Marcos
Configuração do apache para ler o certificado SSL
VOLTAR
Responsável: Vitória
Responsável: Marcos.
As motivações para restringir o acesso a porta 22 e 80 da instância são:
Restrição de Acesso: Limitar o acesso à porta 22 e 80 apenas ao seu IP significa que somente você, ou quem estiver conectado a partir do seu endereço IP específico, terá permissão para acessar o servidor via SSH. Isso reduz a superfície de ataque, tornando mais difícil para possíveis invasores tentarem ganhar acesso não autorizado.
Princípio do Privilégio Mínimo: Conceder acesso somente a partir de endereços IP específicos reduz o risco de acesso não autorizado, uma vez que apenas dispositivos confiáveis podem se conectar.
Proteção contra Ataques de Força Bruta: Limitar o acesso à porta 22 e 80 reduz a exposição a ataques de força bruta, nos quais um atacante tenta adivinhar a senha/chave privada ao tentar várias combinações. Ao restringir o acesso apenas ao seu IP, você reduz as oportunidades para esses ataques, tornando-os menos eficazes.
Monitoramento Simplificado: Ao permitir o acesso somente a partir de um conjunto específico de endereços IP, o monitoramento de atividades suspeitas torna-se mais fácil. Se há tentativas de acesso de IPs não autorizados, isso pode indicar uma possível ameaça ou atividade maliciosa.
8.1 - Problema para ativar SELinux
Tutorial seguido:
https://docs.rockylinux.org/guides/security/learning_selinux/#operating-modes
Correções aplicadas diretamente no GRUB2, foi necessário editar o arquivo de boot para o SELinux ser carregado no sistema. Após este passo o SELinux bloqueou as conexões SSH na porta 22.
Material utilizado: https://docs.fedoraproject.org/en-US/quick-docs/grub2-bootloader
Para resolver o bloqueio da porta 22, foi utilizado o CLI da azure com o seguinte script:
az vm run-command invoke \
--resource-group RockLinux_group \
--name RockLinux \
--command-id RunShellScript \
--scripts "setenforce 0"
O SELinux (Security-Enhanced Linux) é um conjunto de extensões de segurança para o kernel Linux que fornece um sistema avançado de controle de acesso obrigatório (MAC). A implementação do SELinux oferece várias vantagens em termos de segurança, e suas motivações incluem:
Controle Acesso: O SELinux permite um controle muito grande sobre os acessos dos processos aos recursos do sistema. Ele vai além das permissões tradicionais de usuário e grupo, permitindo especificar políticas de acesso para processos individuais, arquivos e recursos do sistema.
Princípio do Privilégio Mínimo: Assim como a restrição de acesso no firewall, o SELinux adere ao princípio do privilégio mínimo. Ele ajuda a limitar os privilégios concedidos a processos e usuários, reduzindo assim a superfície de ataque e minimizando o impacto de possíveis falhas de segurança.
Prevenção de Exploração de Vulnerabilidades: O SELinux pode ajudar a prevenir a exploração de vulnerabilidades de segurança ao restringir as ações que processos comprometidos podem realizar. Isso dificulta a movimentação lateral de ataques, pois os invasores teriam que contornar as políticas de segurança do SELinux.
Proteção contra Escalação de Privilégios: O SELinux desempenha um papel crucial na prevenção de escalonamento de privilégios. Mesmo se um invasor ganhar acesso inicial a um sistema, o SELinux pode limitar suas capacidades e impedir que ele aumente seus privilégios.
Reforço da Segurança em Ambientes Compartilhados: Em ambientes onde vários usuários compartilham recursos do sistema, como servidores de hospedagem web compartilhados, o SELinux pode ser essencial para isolar os processos e garantir que cada usuário tenha apenas acesso aos recursos permitidos.
Auditoria Avançada: O SELinux oferece recursos avançados de auditoria que permitem rastrear e analisar atividades suspeitas ou maliciosas no sistema. Isso é valioso para a detecção de ameaças e investigações de segurança.
Em resumo, o SELinux é motivado por um foco aprimorado na segurança, proporcionando um nível mais elevado de controle e proteção contra ameaças e explorações de segurança.
VOLTAR
Foi escolhido junto com o professor as seguintes técnicas de segurança do CIS:
5.6 Ensure the Default CGI Content test-cgi Script Is Removed
(Automated)
Este item garante que o script de teste CGI padrão 'test-cgi' seja removido do ambiente Apache.
Os scripts de teste CGI, como o test-cgi, são geralmente fornecidos como exemplos para demonstrar a funcionalidade do servidor web, mas podem representar riscos de segurança significativos se não forem removidos ou desabilitados em ambientes de produção.
As principais preocupações são: revelação de informações sensíveis, potencial para exploração, ameaças contra a integridade e confidencialidade...
5.7 Ensure HTTP Request Methods Are Restricted (Automated)
Este tópico visa restringir os métodos de solicitação HTTP desnecessários em um servidor Apache. O objetivo é permitir apenas os métodos GET, HEAD, POST e OPTIONS.
motivação para tal restrição: PUT e DELETE são considerados de alto risco e raramente usados, ou seja, devem ser desativados.
5.8 Ensure the HTTP TRACE Method Is Disabled (Automated) (implementação bônus)
Esse tópico explorado visa desabilitar o método HTTP TRACE no servidor Apache no Red Hat.
O método TRACE, destinado a fins de diagnóstico, não é necessário e é suscetível a abusos, portanto, deve ser desativado por questões de segurança.
Comprovação da pasta onde contém os scripts limpa:
Comprovação da implementação:
VOLTAR
Tópico "A" 30 Primeiros Logins de Autenticação
Tópico "B" Logs de Acesso do Servidor WEB