Your SlideShare is downloading. ×
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

4,013
views

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 …

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

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,013
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
263
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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;
  • 37. Hardening Linux  FIM