Será que você já ouviu falar de:
- Norma BS7799?
- ABNT NBR ISO/IEC 17799:2005?
- Segurança da Informação?
- Hardening?
Bom, mas antes de responder a estas perguntas, vamos fazer outras mais interessantes.
O que caracteriza um sistema 100% seguro?
Vamos responder então.....
1° - Ele não pode ter sido projetado por seres humanos!
2° - Deve permanecer desligado e incomunicável!
3° - Deve estar protegido por uma caixa de cimento e chumbo!
E por último - Ele deve estar perdido no meio do Oceano Pacífico!
Sendo assim, podemos afirmar algumas coisas, por exemplo:
- Não existe sistema 100% seguro!
- Pois segurança é um contrato de risco!
Mas o que é BS7799 afinal?
- Norma criada pelo British Standards Institution(BSI);
- Focada em Segurança da Informação;
- Possibilita a certificação de Profissionais e Empresas;
- Versão brasileira: ABNT NBR ISO/IEC 17799:2005
Sim... mas o que isso tem haver com Hardening?
Hardening é um processo de mapeamento de ameaças, atenuação de riscos e execução de atividades corretivas, com foco na infra-estrutura e com o principal objetivo de preparar o ambiente alvo para enfrentar determinadas tentativas de ataque ou violação dos protocolos de segurança da informação.
Gestão da Segurança da Informação - NBR 17799:2005
Onde o Hardening se localiza dentro do modelo de Gestão da Segurança da Informação?
Algumas características:
- Fortalecimento do sistema;
- Ajustes finos;
- Procedimentos de segurança pré e pós-instalação.
Tipos de Hardening:
- Hardening de Sistema;
- Hardening de Serviço;
- "Hardening de Processo".
Sabe qual a frase mais "inocentemente" perigosa da face da Terra?
"Ah, eu nunca fiz nada disso e o meu sistema roda até hoje..."
...pois, se ele já está funcionando, então está bom!
Parece inacreditável meus amigos, mas existem pessoas que falam e pensam dessa forma.
Está certo, vamos supor que consegui despertar o seu interesse, então você poderia me perguntar...
Como posso ter um sistema com a máxima eficiência no que tange o modelo de Gestão da Segurança da Informação?
Para obter a resposta, devemos levar em consideração 3 fatores:
- Segurança;
- Flexibilidade;
- Risco.
Vejamos na figura o balanceamento entre os fatores que devemos levar em consideração!
Percebemos que se aumentarmos a segurança, os fatores flexibilidade e risco vão diminuir, e assim por diante.
Lápis e papel na mão galerinha que a brincadeira vai começar! Vamos falar sobre:
- Hardening de sistema
- Hardening de serviço
Alguns detalhes do Hardening de Sistema:
- Segurança no Sistema de Arquivos;
- Arquivos com Suid Bit ativos;
- Segurança no Terminal;
- Gerenciamento de Privilégios;
- Procura por senhas fracas;
- Check-list nos Serviços do Sistema.
Segurança no Sistema de Arquivos
Em relação a Segurança do Sistema de Arquivos as boas práticas aconselham a particionar o disco colocando os principais diretórios (/boot, /home, /var e outros) nessas partições.
Opções de montagem:
Algumas opções de montagem podem trazer maior segurança.
/dev/hda5 /tmp ext3 defaults,noexec 0 2
/dev/hda6 /home ext3 defaults,nosuid 0 2
Arquivos com Suid Bit ativos. Como devemos proceder?
- Listar todos os arquivos com esses bits ativos;
- Tirar as permissões de suid bit dos arquivos no sistema;
- Colocar permissão de suid bit somente nos arquivos que realmente são necessários.
Segurança no Terminal
Procedimentos para segurança no terminal.
- Desabilitar o uso de CTRL+ALT+DEL;
- Limitar uso de terminais texto;
- Usar a variável TMOUT;
- Usar o programa vlock.
Gerenciamento de Privilégios
Procedimentos que devem ser levados em consideração.
- Bloquear login do usuário root;
- Determinar datas de expiração para contas;
- Remover shells válidas de usuários que não precisam delas.
Utilização do PAM - Funções para Hardening
- Limitar horários de login remotos e locais;
- Limitar quantidade de "logins" por usuário;
- Definir tamanho mínimo de senhas;
- Limitar quais usuários poderão ter acesso de root.
Limitação de Comandos
O comando da morte!!!!
# :(){ :|:& };:
Procura por senhas fracas
A ferramenta John The Ripper.
Programa de brute force local que pode ser utilizado por administradores para validar a força das senhas dos usuários de um sistema.
Check-list nos Serviços do Sistema
Será que todos os serviços instalados por padrão são necessários?
Algumas ferramentas podem ser utilizadas para a checagem de serviços.
Alguns detalhes do Hardening de Serviço:
- Proibir o login como super-usuário;
- Utilizar apenas a versão 2 do protocolo;
- Alterar a porta padrão(22) para outra qualquer;
- Usar restrições de login: inatividade, PAM etc;
- Liberar acesso apenas para usuários específicos;
- Aplicar verificação DNS;
- Permitir login apenas de certos hosts;
- Bloquear as demais conexões;
- Audite toda e qualquer atividade do serviço.
Um exemplo usando SSH:
Proibir login como root.
PermitRootLogin no
# Usar apenas o protocolo versão 2
Protocol 2
# Alterar a porta padrão para 444
Port 444
# Restringir o endereco de escuta
ListenAddress #(endereço ip)
# Restrições de login
LoginGraceTime 1m
UsePAM yes
AllowUsers (Userssh1) (Userssh2)
PrintMotd no
UseDNS yes
Mas será que existe algum assistente para o Hardening?
Sim meus amigos, seus problemas acabaram. Ele se chama...
Bastille!
E para terminar, algumas sugestões de leitura descontraída!
Esses foram apenas alguns conselhos...
Para que seu sistema que hoje provavelmente é assim...
...amanhã esteja assim:
Cuide bem dos seus sistemas!!!
Referências
- Michel Alves - Software Freedom Day - Maceió/AL
- Willian Corrêa - www.imasters.com.br;
- Juniper Networks - www.juniper.net;
- André Luiz Facina - www.dicas-l.com.br;
- James Turnbull - Livro: Hardening Linux;
- Charalambous Glafkos - Securing & Hardening Linux
- Steve Grubb - Hardening Red Hat Enterprise Linux;
- Azzam Mourad - Artigo: Security Hardening of Open Source Software.
Fico grato pela atenção de todos, e como sempre, mais informações, sugestões, são sempre bem vindas.
Viva o Linux, porque nós amamos a liberdade!