SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Hardening Linux



          Hardening Linux

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

               Juliano Bento
         juliano.bento@gmail.com
Hardening Linux

              Agenda
                  Introdução
                       Definição Hardening
                       Importância
                  Controles de Hardening
                       Checklists (21) básico de
                        verificação
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;
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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.
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.
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
            /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;
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.
Hardening Linux

   Checklist
       C13 - Adequação das configurações de rede
        utilizadas pelo kernel
            /etc/sysctl.conf
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
              
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
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
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
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!
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;
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
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
Hardening Linux

   Revisão Final!
          Políticas de Controle de Acesso (SO e Rede)
          Kernel;
          Auditoria;
               Rastreabilidade evidência;
               Manutenção dos controles;
Hardening Linux

   FIM

Más contenido relacionado

La actualidad más candente

Monitoramento de Redes com Nagios
Monitoramento de Redes com NagiosMonitoramento de Redes com Nagios
Monitoramento de Redes com NagiosDaniel Lara
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFLuiz Arthur
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debianEduardo Mendes
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programasguest407a9
 
Estratégia de backup - RMAN
Estratégia de backup - RMANEstratégia de backup - RMAN
Estratégia de backup - RMANEduardo Legatti
 
Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Renan Aryel
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e HardeningBruna Griebeler
 
Linux System Administrator | Curso de Redes | 3Way Networks
Linux System Administrator | Curso de Redes | 3Way NetworksLinux System Administrator | Curso de Redes | 3Way Networks
Linux System Administrator | Curso de Redes | 3Way Networks3Way Networks
 
Aula 4 Mini Curso de Linux
Aula 4 Mini Curso de LinuxAula 4 Mini Curso de Linux
Aula 4 Mini Curso de LinuxRogério Cardoso
 
Linux network administration | Curso de Redes | 3Way Networks
Linux network administration | Curso de Redes | 3Way NetworksLinux network administration | Curso de Redes | 3Way Networks
Linux network administration | Curso de Redes | 3Way Networks3Way Networks
 
Implatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com LinuxImplatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com LinuxAlvaro Gomes
 
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonFerramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonTchelinux
 

La actualidad más candente (18)

Monitoramento de Redes com Nagios
Monitoramento de Redes com NagiosMonitoramento de Redes com Nagios
Monitoramento de Redes com Nagios
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PF
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debian
 
Apresentacao Aula03 So
Apresentacao Aula03 SoApresentacao Aula03 So
Apresentacao Aula03 So
 
Squid
SquidSquid
Squid
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Estratégia de backup - RMAN
Estratégia de backup - RMANEstratégia de backup - RMAN
Estratégia de backup - RMAN
 
Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e Hardening
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Proftpd
ProftpdProftpd
Proftpd
 
Linux System Administrator | Curso de Redes | 3Way Networks
Linux System Administrator | Curso de Redes | 3Way NetworksLinux System Administrator | Curso de Redes | 3Way Networks
Linux System Administrator | Curso de Redes | 3Way Networks
 
Apostila firewall-consulta
Apostila firewall-consultaApostila firewall-consulta
Apostila firewall-consulta
 
Aula 4 Mini Curso de Linux
Aula 4 Mini Curso de LinuxAula 4 Mini Curso de Linux
Aula 4 Mini Curso de Linux
 
Linux network administration | Curso de Redes | 3Way Networks
Linux network administration | Curso de Redes | 3Way NetworksLinux network administration | Curso de Redes | 3Way Networks
Linux network administration | Curso de Redes | 3Way Networks
 
Implatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com LinuxImplatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com Linux
 
Dhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamentoDhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamento
 
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonFerramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
 

Similar a Hardening Linux Checklist

Implantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxImplantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxSoftD Abreu
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1Leo Amorim
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Leo Amorim
 
Palestra latinoware - Hardening Linux
Palestra latinoware - Hardening LinuxPalestra latinoware - Hardening Linux
Palestra latinoware - Hardening Linuxhdoria
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasAlexandro Silva
 
Administração de Rede Local
Administração de Rede LocalAdministração de Rede Local
Administração de Rede Localcymbron
 
Capítulo 16 rsyslog
Capítulo 16   rsyslogCapítulo 16   rsyslog
Capítulo 16 rsyslogPaulo Kutwak
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univemevandrovv
 
Palestra Selinux - Por Ulisses Castro - V FGSL e I SGSL
Palestra Selinux - Por Ulisses Castro - V FGSL e I SGSLPalestra Selinux - Por Ulisses Castro - V FGSL e I SGSL
Palestra Selinux - Por Ulisses Castro - V FGSL e I SGSLfgsl
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTecla Internet
 
Segurança em Servidores Linux - Ênfase em RHEL
Segurança em Servidores Linux - Ênfase em RHELSegurança em Servidores Linux - Ênfase em RHEL
Segurança em Servidores Linux - Ênfase em RHELAlessandro Silva
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008SergioSouza
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 

Similar a Hardening Linux Checklist (20)

Implantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxImplantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linux
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Palestra latinoware - Hardening Linux
Palestra latinoware - Hardening LinuxPalestra latinoware - Hardening Linux
Palestra latinoware - Hardening Linux
 
Exercicios linux
Exercicios linuxExercicios linux
Exercicios linux
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
 
Administração de Rede Local
Administração de Rede LocalAdministração de Rede Local
Administração de Rede Local
 
Capítulo 16 rsyslog
Capítulo 16   rsyslogCapítulo 16   rsyslog
Capítulo 16 rsyslog
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univem
 
Gentoo
GentooGentoo
Gentoo
 
Palestra Selinux - Por Ulisses Castro - V FGSL e I SGSL
Palestra Selinux - Por Ulisses Castro - V FGSL e I SGSLPalestra Selinux - Por Ulisses Castro - V FGSL e I SGSL
Palestra Selinux - Por Ulisses Castro - V FGSL e I SGSL
 
Hacking Linux
Hacking LinuxHacking Linux
Hacking Linux
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos Linux
 
Utilizando o open ssh
Utilizando o open   sshUtilizando o open   ssh
Utilizando o open ssh
 
Segurança em Servidores Linux - Ênfase em RHEL
Segurança em Servidores Linux - Ênfase em RHELSegurança em Servidores Linux - Ênfase em RHEL
Segurança em Servidores Linux - Ênfase em RHEL
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 

Hardening Linux Checklist

  • 1. Hardening Linux Hardening Linux 1º S.G.S.L. / 5º F.G.S.L. Juliano Bento juliano.bento@gmail.com
  • 2. Hardening Linux  Agenda  Introdução  Definição Hardening  Importância  Controles de Hardening  Checklists (21) básico de verificação
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Hardening Linux  Checklist  C12 - Adequação do acesso SSH  /etc/ssh/sshd_config
  • 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. 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. Hardening Linux  Checklist  C13 - Adequação das configurações de rede utilizadas pelo kernel  /etc/sysctl.conf
  • 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. 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. 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. 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. 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. 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. 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. 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. Hardening Linux  Revisão Final!  Políticas de Controle de Acesso (SO e Rede)  Kernel;  Auditoria;  Rastreabilidade evidência;  Manutenção dos controles;