300 likes | 423 Vues
Alberto Viegas alberto.viegas@l7consult.com.br. Hardening No ambiente GNU/Linux. Processo de fortificação do sistema operacional, aplicando técnicas especificas de controle. Definição de “Hardening”. Não adianta confiar na técnica: Next > Next > Finish. O pós instalação é fundamental.
E N D
Alberto Viegas alberto.viegas@l7consult.com.br HardeningNo ambiente GNU/Linux
Processo de fortificação do sistema operacional, aplicando técnicas especificas de controle Definição de “Hardening”
Não adianta confiar na técnica: Next > Next > Finish O pós instalação é fundamental.
Ajuste Fino Blindar o Sistema Operacional Sistema à prova de Balas ! Lembre-se: É fundamental conhecer o Sistema Operacional. Objetivo
Importante • Seguir as normas (ISO17799 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 (Físico e Lógico) • Políticas • Processos (gestão da continuidade de negócio)
As boas práticas de instalações aconselham a particionar o disco e colocar os principais diretórios nestas partições. Planejamento do Esquema de particionamento
Planejamento da partição • Padronização dos pontos de montagens no /etc/fstab • [dispositivo] /boot ext3 defaults,nosuid,nodev 0 2 • [dispositivo] / ext3 defaults 0 1 • [dispositivo] /home ext3 defaults,nosuid,nodev,noexec,usrquota,grpquota 0 2 • [dispositivo] /tmp ext3 defaults,nosuid,nodev,noexec 0 2 • [dispositivo] /usr ext3 defaults,nosuid 0 2 • [dispositivo] /var ext3 defaults,nosuid,noexec 0 2 • [dispositivo] /var/log ext3 defaults,nosuid,noexec,noatime 0 2
Passo 1 • Atualização e adequação dos pacotes instalados no Linux • Implementar e documentar procedimentos de gerenciamento de patchs. • Garantir a autenticidade dos pacotes a serem atualizados. • Levantar pacotes e remover os desnecessários • # dpkg –get-selections > Pacotes_base_Debian.txt • # rpm -qa > Pacotes_base_RedHat.txt
Passo 2 • Serviços na Inicialização • Avaliar quais serviços são necessários para o funcionamento do sistema • Para a inicialização automática dos serviços desnecessários. • Obs:Cuidado com serviços essenciais, como por exemplo: ssh, cron, syslog, network, etc.
Passo 2 • Serviços na Inicialização • Baseados em RedHat • Chkconfig servico off • Baseados em Debian • update-rc.d -f servico remove • Lista portas, serviços • Independente de plataforma • Netstat -tupan • lsof
Passo 3 • Acesso remoto para administrar • TELNET (Nem por cross-over) • Inseguro, não garante confidencialidade • Usar o OpenSSH • Protocolo mais seguro • Devemos realizar um “hardening” próprio.
Passo 4 • Para transferência de arquivos • FTP (No último caso) • Inseguro, não garante confidencialidade • Colocar em modo CHROOT • Usar o OpenSSH (scp) • Protocolo mais seguro • Devemos realizar um “hardening” próprio.
Passo 5 • Desabilitar a ré-inicialização do sistema operacional através do teclado • Junção das teclas CTRL+ALT+DEL • Elimina a probabilidade de indisponibilidade do serviço de atacantes com acesso físico ao servidor • Comentar no /etc/inittab • # ca::crtlaltdel:/bin/shutdown -r -t 4 now
Passo 6 • Obrigar a autenticação em modo mono-usuário (linux single) • No /etc/inittab • ~~:S:respawn:/sbin/sulogin
Passo 7 • Aumento do tempo de espera após tentativa fracassada de autenticação • No /etc/login.defs • FAIL_DELAY 15
Passo 8 • Habilitar registro de logins e tentativas de logins fracassadas • Auxilia na detecção de ataquesde força bruta; • Habilita registro de tentativas fracassadas em login em /var/log/faillog • FAILLOG_ENAB yes • Habilita registro de login utilizando usuários inexistentes • LOG_UNFAIL_ENAB yes
Passo 8 • Habilitar registro de logins e tentativas de logins fracassadas • Habilita registro de logins no sistema juntamente com data/hora associada (lastlog), em /etc/pam.d/login • Session option pam_lastlog.so
Passo 9 • Adequação do acesso SSH • Desabilitar login como root • PermitRootLogin no • Usar a versão 2 do protocolo que é mais segura • Protocol 2 • Desabilitar o forward de portas • AllowTcpForwarding no • X11Forwarding no
Passo 10 • Desabilitar as autenticações baseadas em confiança entre os hosts • IgnoreRhosts yes • HostbasedAuthentication no • RhostsRSAAuthentication no
Passo 11 • Limitar acesso do root nas consoles virtuais • Alterar no /etc/securetty • Variáveis de Ambiente • Configuração de algumas variáveis de ambiente especiais, declara no arquivos (/etc/profile) • HISTSIZE=10 • TMOUT=3600 • export TMOUT • HISTSIZE • #source /etc/profile
Passo 11 • Remoção dos Bits Especiais • Removendo os SUIDs e GIDs do sistema ... • Mantendo o SU e passwd . • Lista dos arquivos atuais com os SUIDs e SGIDs do sistema, depois remove as BITs especiais e habilita para o SU e o PASSWD • find / -type f -perm -4000 -o -perm -2000 > /tmp/suids_gids.log • chmod a-s `find / -type f -perm -4000 -o -perm -2000` • chmod a+s /usr/bin/passwd • chmod a+s /bin/su
Passo 12 • Configuração de limite máximo de processos criados por usuários: • Evita ataques de exaustão de recursos; • Paradas inesperadas; • Em /etc/security/limits.conf • @usuarios hard nproc 200 Comando que derruba mesmo:
Passo 13 • Alteração no Banner de apresentação do Sistema, altere os arquivo: • /etc/issue • /etc/issue.net • /etc/motd • /etc/motd.tail (Nas distros baseadas em Debian)
Hardening no Kernel • Security-Enhanced Linux (SELinux) • http://selinux.sourceforge.net • GRSecurity • http://www.grsecurity.net • Pax Project • http://pax.grsecurity.net
É um completo sistema de segurança para Linux 2.4.x e 2.6.x, possuindo como características: GRSecurity • Proteção a buffer over flow • Auditoria de Kernel • Controle de Acesso (ACL) • Proteção sobre qualquer forma de modificar bugs de endereço de memórias
Administradores de rede sabem que qualquer software ou tecnologia está passível a ter falhas de segurança. Sempre vai existir uma brecha que poderá ser explorada por criminosos digitais.