Hardening Linux



          Hardening Linux

        1º S.G.S.L. / 5º F.G.S.L.

               Juliano Bento
         jul...
Hardening Linux

              Agenda
                  Introdução
                       Definição Hardening
         ...
Hardening Linux

              Agenda
                  Checklist (Controles)
                       Políticas de Contr...
Hardening Linux

   Definições
       Hardening
            Processo de fortificação do sistema operacional
           ...
Hardening Linux

   Projetos de Hardening Linux
       Hardening Linux Kernel:
            Security-Enhanced Linux (SEL...
Hardening Linux

   Importância
       Adequação as Normas
            ISO 17799 e ISO 27001
                 Guia de ...
Hardening Linux

   Checklist
       C1 - Atualização e adequação dos pacotes
        instalados no Linux
            I...
Hardening Linux

   Checklist
       C2 - Adequação da inicialização automática de
        serviços
            Avaliar...
Hardening Linux

   Checklist
       C2 - Adequação da inicialização automática de
        serviços
         ➔ # /etc/in...
Hardening Linux

   Checklist
       C3 - Adequação da metodologia de acesso remoto
        através de emulação de termi...
Hardening Linux

   Checklist
       C4 - Adequação da metodologia de transferência
        de arquivos
            Pre...
Hardening Linux

   Checklist
       C5 - Desabilitação da re-inicialização do sistema
        operacional através do te...
Hardening Linux

   Checklist
       C6 - Autenticação compulsória em modo mono-
        usuário (linux single)
        ...
Hardening Linux

   Checklist
       C7 - Aumento do tempo de espera após tentativa
        fracassada de autenticação
 ...
Hardening Linux

   Checklist
       C8 - Habilitação de registros de logins e tentativas
        de logins fracassadas
...
Hardening Linux

   Checklist
       C8 - Habilitação de registros de logins e tentativas
        de logins fracassadas
...
Hardening Linux

   Checklist
       C9 - Definição de política de senhas
            Definir tamanhos minimos e máximo...
Hardening Linux

   Checklist
       C9 - Definição de política de senhas
            Número máximo de dias que a senha...
Hardening Linux

   Checklist
       C10 - Adequação das permissões dos diretórios
        home dos usuários
          ...
Hardening Linux

   Checklist
       C11 - Adequação do processo de autenticação em
        terminais (console)
        ...
Hardening Linux

   Checklist
       C12 - Adequação do acesso SSH
            Emulação de terminal remoto através cana...
Hardening Linux

   Checklist
       C12 - Adequação do acesso SSH
              Desabilita autentição do serviço SSH a...
Hardening Linux

   Checklist
       C12 - Adequação do acesso SSH
              Habilita separação de privilégios para...
Hardening Linux

   Checklist
       C12 - Adequação do acesso SSH
            /etc/ssh/sshd_config
Hardening Linux

   Checklist
       C13 - Adequação das configurações de rede
        utilizadas pelo kernel
         ...
Hardening Linux

   Checklist
       C13 - Adequação das configurações de rede
        utilizadas pelo kernel
          ...
Hardening Linux

   Checklist
       C13 - Adequação das configurações de rede
        utilizadas pelo kernel
         ...
Hardening Linux

   Checklist
       C14 - Exibição de mensagens de política de uso
        aceitável do sistema
       ...
Hardening Linux

   Checklist
       C15 - Configuração de limite máximo de tamanho
        para arquivos criados por us...
Hardening Linux

   Checklist
       C16 - Configuração de limite máximo de sessões
        de login simultâneas (3) par...
Hardening Linux

   Checklist
       C17 - Ajuste adequado da data e horário do Linux
            Evitar inconsistência...
Hardening Linux

   Checklist
       C18 - Configuração adequada do serviço de
        registros (logs) do sistema opera...
Hardening Linux

   Checklist
       C19 - Adequação da rotação dos registros (logs) do
        sistema operacional
    ...
Hardening Linux

   Checklist
       C20 - Adequação da configuração do gerenciador
        de boot
            Resguar...
Hardening Linux

   Checklist
       C21 - Configuração adequada de regras locais de
        filtragem de tráfego de red...
Hardening Linux

   Revisão Final!
          Políticas de Controle de Acesso (SO e Rede)
          Kernel;
          A...
Hardening Linux

   FIM
Upcoming SlideShare
Loading in...5
×

Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL

4,074

Published on

Segurança de Informações é uma área abrangente e importante para as corporações, pois visa garantir a continuidade de negócio, zelando da imagem da Empresa perante o mercado. O maior patrimônio das Empresas, sem dúvida nenhuma, são suas informações. E nela, devemos estar sempre atentos para prevenir as ameaças e diminuir os riscos em falhas. Mitigar os riscos, ameaças, falhas ou panes, devemos implementar controles no GNU/Linux. Os controles vão desde a nível de kernel até políticas de conta de usuários. Estes controles chamamos de "Hardening Linux". A palestra sobre "Hardening Linux" exibirá as melhores práticas das dezenas de controles a serem aplicados no GNU/Linux e a explicação técnica de como implementá-los, fazendo um paralelo com as normas ISO 27001 e ISO 17799.

Published in: Economy & Finance

Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL

  1. 1. Hardening Linux Hardening Linux 1º S.G.S.L. / 5º F.G.S.L. Juliano Bento juliano.bento@gmail.com
  2. 2. Hardening Linux  Agenda  Introdução  Definição Hardening  Importância  Controles de Hardening  Checklists (21) básico de verificação
  3. 3. Hardening Linux  Agenda  Checklist (Controles)  Políticas de Controle de Acesso (SO e Rede)  Sistema Operacional GNU/Linux  Kernel;  Auditoria;  Rastreabilidade evidência;  Manutenção dos controles;
  4. 4. Hardening Linux  Definições  Hardening  Processo de fortificação do sistema operacional aplicando técnicas específicas de controles.  Efeito de blidagem do sistema  Exemplos:  Patch do kernel ou configuração de parâmetros (sysctl);  Remoção de pacotes e desabilitação de serviços desnecessários.
  5. 5. Hardening Linux  Projetos de Hardening Linux  Hardening Linux Kernel:  Security-Enhanced Linux (SELinux), http://selinux.sourceforge.net  Uso do Linux Security Modules (LSM) no kernel  Grsecurity, http://www.grsecurity.net  PaX Project, http://pax.grsecurity.net/  Hardening Linux:  Bastille Linux, http://bastille-linux.sourceforge.net  Debian Harden
  6. 6. Hardening Linux  Importância  Adequação as Normas  ISO 17799 e ISO 27001  Guia de referência para boas práticas dos processos e gestão da Segurança da Informação Corporativa;  Controle de Acesso  Lógico e Físico  Políticas  Processos (gestão da continuidade de negócio)  É um processo da fase do Gerenciamento de Riscos  Avaliação de todos os ativos
  7. 7. Hardening Linux  Checklist  C1 - Atualização e adequação dos pacotes instalados no Linux  Implementar e documentar procedimentos de gerenciamento de patchs.  Avaliar as janelas de tempo necessárias para aplicabilidade e os devidos impactos.  Garantir a autencidade dos pacotes a serem atualizados.  Avaliar os pacotes desnecessários e removê-los.  # dpkg --get-selections > pacotes_instalados_debian.txt  # rpm -qa > pacotes_instalados_RH.txt
  8. 8. Hardening Linux  Checklist  C2 - Adequação da inicialização automática de serviços  Avaliar quais serviços são necessários para o funcionamento do sistema  Parar a inicialização automática de todos os serviços desnecessários.  Ex: não parar os serviços: syslog, network, ssh, randon e cron
  9. 9. Hardening Linux  Checklist  C2 - Adequação da inicialização automática de serviços ➔ # /etc/init.d/servico stop ➔ # chkconfig --list | grep :on | awk '{ print $1 }' ➔ # chkconfig -s servico off ➔ # update-rc.d -f servico remove ➔ # grep 'disable' /etc/xinetd.d/* ➔ # netstat -ntulp ➔ # lsof
  10. 10. Hardening Linux  Checklist  C3 - Adequação da metodologia de acesso remoto através de emulação de terminal  Remover serviço de TELNET  Protocolo inseguro;  Não garante confidencialidade dos dados trafegados;  As credencias de acesso são enviados em texto puro;  Utilizar OpenSSH  Protocolo totalmente seguro  Checklist próprio para o serviço de SSH
  11. 11. Hardening Linux  Checklist  C4 - Adequação da metodologia de transferência de arquivos  Preferencialmente não utilizar FTP;  Não há garantia da confidencialidade  Utilizar SSH;  SCP  SFTP  Nível de proteção contra usuários maliciosos ou espiões
  12. 12. Hardening Linux  Checklist  C5 - Desabilitação da re-inicialização do sistema operacional através do teclado  Teclas pressionadas simultaneamente Ctrl+Alt+Del  Elimina probabilidade de indisponibilidade do serviço de atacantes com acesso físico ao servidor  Comentar a linha abaixo no arquivo /etc/inittab  # ca::ctrlaltdel:/sbin/shutdown -r -t 4 now  Ubuntu: alterar /etc/event.d/control-alt-delete  Pacote upstart
  13. 13. Hardening Linux  Checklist  C6 - Autenticação compulsória em modo mono- usuário (linux single)  Runleves (System V);  Proteção contra usuário malicioso que possui acesso ao gerenciador de boot  Verificar existência da seguinte linha abaixo no arquivo /etc/inittab  ~~:S:respawn:/sbin/sulogin
  14. 14. Hardening Linux  Checklist  C7 - Aumento do tempo de espera após tentativa fracassada de autenticação  O intervalo de tempo de espera após tentativa fracassada de autenticação em seqüência de um mesmo login em terminal do sistema operacional deve ser aumentado para um valor que permita a mitigação de ataques de força bruta sem comprometer a usabilidade do sistema; Tempo padrão (3s).  Alterar arquivo /etc/login.defs  FAIL_DELAY 15
  15. 15. Hardening Linux  Checklist  C8 - Habilitação de registros de logins e tentativas de logins fracassadas  Auxilia na detecção de ataques de força bruta;  Habilita registro de tentativas fracassadas de login em /var/log/faillog  FAILLOG_ENAB yes #/etc/login.defs  Habilita registro de tentativas de login utilizando usuários inexistentes;  LOG_UNKFAIL_ENAB yes #/etc/login.defs
  16. 16. Hardening Linux  Checklist  C8 - Habilitação de registros de logins e tentativas de logins fracassadas  Habilita registro de logins no sistema juntamente com data/hora associada (lastlog)  session optional pam_lastlog.so #/etc/pam.d/login
  17. 17. Hardening Linux  Checklist  C9 - Definição de política de senhas  Definir tamanhos minimos e máximos conforme política do controle de acesso adotados pela corporação  Habilitar verificação de senhas fracas durante a troca (obscure)  password required pam_unix.so nullok obscure min=8 max=12 md5 # /etc/pam.d/common-password  ou... paranóia (libpam-cracklib)  password required pam_cracklib.so retry=3 minlen=12 difok=3  password required pam_unix.so use_authtok nullok md5 # /etc/pam.d/common-password
  18. 18. Hardening Linux  Checklist  C9 - Definição de política de senhas  Número máximo de dias que a senha dever ser utilizada  PASS_MAX_DAYS 60 #/etc/login.defs  Número mínimo de dias permitido entre trocas de password  PASS_MIN_DAYS 0 #/etc/login.defs  Número de dias de aviso dados antes da senha expirar.  PASS_WARN_AGE 7 #/etc/login.defs
  19. 19. Hardening Linux  Checklist  C10 - Adequação das permissões dos diretórios home dos usuários  Os usuários do sistema não podem ter acesso de leitura ou escrita ou execução no diretório home dos outros usuários (princípio least privilege)  UMASK 077 #/etc/login.defs  Permissão 700 no diretório /home/user  drwx------ 96 user user  Fix: Adequação do diretório home dos usuários já criados anteriormente  for user in $(ls -1 /home/); do chmod 700 $user; done
  20. 20. Hardening Linux  Checklist  C11 - Adequação do processo de autenticação em terminais (console)  Tempo limite permitido para que seja realizada a autenticação;  Número máximo de tentativas fracassadas antes que seja necessário re-iniciar o processo de autenticação  Eficácia contra adivinhação de senhas e ataques de força bruta  LOGIN_RETRIES 2 #/etc/login.defs
  21. 21. Hardening Linux  Checklist  C12 - Adequação do acesso SSH  Emulação de terminal remoto através canal de comunicação criptografado;  Configura o serviço de SSH para somente operar com protocolo SSHv2  Habilita registro detalhado das atividades relacionadas ao serviço de SSH.  Impede a autenticação do usuario root no serviço de SSH.  Habilita a verificação das permissões do diretório home do usuario antes de permitir sua autenticação através de SSH.  Desabilita autentição do serviço SSH atraves de arquivos .rhosts e hosts.equiv. (SSHv1)
  22. 22. Hardening Linux  Checklist  C12 - Adequação do acesso SSH  Desabilita autentição do serviço SSH atraves de combinação de chaves RSA com arquivos .rhosts e hosts.equiv. (SSH v1 e v2)  Desabilita utilização de senhas nulas para autenticação no serviço SSH  Habilita exibição de mensagem anterior a autentição do usuário através de SSH contendo a política de uso aceitável do sistema.  Habilita exibição de mensagem indicativa de data e origem da ultima conexão do usuário após autenticação via SSH.
  23. 23. Hardening Linux  Checklist  C12 - Adequação do acesso SSH  Habilita separação de privilégios para o serviço de SSH. Esta opção faz com que o serviço crie um processo filho com privilégios reduzidos para cada conexão recebida visando mitigar tentativas de elevação indevida de privilégios.  Limita o número máximo (10) de conexões concorrentes ao serviço SSH cuja autenticação ainda não foi realizada com êxito.  Habilita detecção de conexões pendentes ao serviço de SSH que já tenham sido encerradas.  Deve ser informado os usuários que poderão usar o serviço SSH.
  24. 24. Hardening Linux  Checklist  C12 - Adequação do acesso SSH  /etc/ssh/sshd_config
  25. 25. Hardening Linux  Checklist  C13 - Adequação das configurações de rede utilizadas pelo kernel  /etc/sysctl.conf  Mitiga uma série de ataques:  DoS (de maneiras distintas), redirecionamento malicioso de tráfego de rede e encaminhamento indevido de pacotes entre interfaces.  A utilização de SYN cookies deve ser habilitada → DoS Syn Flooding;  Pacotes ICMP destinados a endereços de broadcast ou multicast devem ser ignorados visando mitigar a utilização do sistema como amplificador de ataques de negação de serviço;
  26. 26. Hardening Linux  Checklist  C13 - Adequação das configurações de rede utilizadas pelo kernel  Pacotes ICMP do tipo redirect devem ser ignorados → utilizado apenas entre roteadores;  Pacotes cujo roteamento foi determinado na origem, em oposição a pacotes cujo roteamento foi decidido pelos equipamentos efetivamente responsáveis por esta tarefa, devem ser ignorados;  O envio de pacotes ICMP do tipo redirect deve ser desabilitado;  O encaminhamento de pacotes entre interfaces deve ser desabilitado.
  27. 27. Hardening Linux  Checklist  C13 - Adequação das configurações de rede utilizadas pelo kernel  /etc/sysctl.conf
  28. 28. Hardening Linux  Checklist  C14 - Exibição de mensagens de política de uso aceitável do sistema  Informar ao usuário banner com política de uso aceitável e devidas sanções em caso de má utilização;  Exibição nos terminais locais da estação (servidor) e nas conexões de emulação remota de terminal (ssh);  /etc/issue /etc/issue.net 
  29. 29. Hardening Linux  Checklist  C15 - Configuração de limite máximo de tamanho para arquivos criados por usuários.  Evita ataques de exaustão de recursos;  Paradas inesperadas;  /etc/security/limits.conf  @usuarios hard fsize 100000
  30. 30. Hardening Linux  Checklist  C16 - Configuração de limite máximo de sessões de login simultâneas (3) para usuários.  Evitar ataques de exaustão de recursos (memória, I/O e processamento);  /etc/security/limits.conf  * hard maxlogins 3
  31. 31. Hardening Linux  Checklist  C17 - Ajuste adequado da data e horário do Linux  Evitar inconsistências certificar o horário exato da ocorrência dos eventos do sistema;  Sincronização com servidores NTPs confiáveis;  Configuração: cron ou ntpclient  /etc/ntp.conf
  32. 32. Hardening Linux  Checklist  C18 - Configuração adequada do serviço de registros (logs) do sistema operacional  Enviar todos os eventos de syslog do sistema para servidor syslog corporativo (SOC) para SOC correlacionamento e geração de alertas;  Conteção por um período mínimo (3 anos);  /etc/syslog.conf  *.* @10.10.10.10  Syslog-ng: poder nos filtros!
  33. 33. Hardening Linux  Checklist  C19 - Adequação da rotação dos registros (logs) do sistema operacional  Adequar rotacionamento de logs (logrotate);  Armazenasr eventos ocorridos por um período de tempo pré- estabelecido.  Garantir integridade dos logs (eventos) → evidências;
  34. 34. Hardening Linux  Checklist  C20 - Adequação da configuração do gerenciador de boot  Resguardar  Contra ataques maliciosos de usuários com acesso físico no servidor;  Integridade (modo rescure, modo mono-usuário)  Grub ou LILO  Utilizar senha para alteração de parâmetros na inicialização do Linux  grub-md5-crypt  /boot/grub/menu.lst  password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe
  35. 35. Hardening Linux  Checklist  C21 - Configuração adequada de regras locais de filtragem de tráfego de rede  Implementar filtro de pacotes local  Negar tudo e permitir somente as portas/protocolos necessários;  Iptables  Regras INPUT e OUTPUT
  36. 36. Hardening Linux  Revisão Final!  Políticas de Controle de Acesso (SO e Rede)  Kernel;  Auditoria;  Rastreabilidade evidência;  Manutenção dos controles;
  37. 37. Hardening Linux  FIM
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×