Hardening em sistemas operacionais Linux (Completo)

Técnicas de segurança da informação: um estudo direcionado à aplicação de hardening em sistemas operacionais Linux.

[ Hits: 34.193 ]

Por: eric galdino dos santos silva em 16/06/2015


Apêndice A - Bastille



O Bastille é um software ainda pouco conhecido no mercado brasileiro, sendo uma ferramenta gratuita que contém scripts para aumentar há segurança dos sistemas operacionais Linux tornando-se ideal a implantação em servidores.

As imagens utilizadas a seguir foram do sistema operacional Debian Linux 5.0 Lenny utilizando o Bastille 3.0.9-13 encontrado no repositório Debian.

Como instalar o Bastille no Debian Linux

1° passo

Opção 1 no sistema operacional Debian:

Atualize a sua soucelist no Debian:

# apt-get update

Comando para instalar o Bastille:

# apt-get install bastille

Opção 2 no sistema operacional Debian:

Acesse o site do Bastille:
Procure a opção "Download Bastille UNIX".

Escolha o download de acordo com sua distribuição, a escolhida aqui foi o Debian.

Concluindo o download abra o console do shell:

sudo dpkg -i bastille_3.0.9-13_all.deb # Ou a versão baixada

Depois de instalado execute o Bastille no console:

# bastille -x # Executa a parte gráfica

Ou:

# bastille -c # Executa no modo texto

Bem, na Figura 1 o Bastille é executado no modo texto, e a tela de boas-vindas, nos orienta a responder todas as perguntas e também com um e-mail para envio de erros e sugestões para software:
Fonte: Autor (2012)

A Figura 2 é uma pergunta sobre as permissões de administração do sistema e pergunta se gostaria de restringir alguma:
Fonte: Autor (2012)

A Figura 3 comenta sobre a desativação "SUID root" para os programas:
Fonte: Autor (2012)

Figura 4 comenta sobre a desativação "SUID root" para montagem de unidades:
Fonte: Autor (2012)

Figura 5 comenta sobre a desativação "SUID root" para o comando ping, que testa a conexão de rede:
Fonte: Autor (2012)

Figura 6 para desativar texto claro nos protocolos que utilizam a autenticação baseada em IP:
Fonte: Autor (2012)

Figura 7 estabelecer prazos para as senhas expirarem e se não for modificada será bloqueada temporariamente:
Fonte: Autor (2012)

Figura 8 deve-se proibir login root em 1-6 TTY. Isso obriga que antes de logar com o usuário root seja necessário logar com um usuário comum e depois digitar "su" passando para o root, e assim se a senha do root for roubada o cracker não conseguirá logar diretamente com o root, dificultando a tentativa de invasão.
Fonte: Autor (2012)

Figura 9 permite proteger o GRUB com senha, fazendo com que só um usuário tenha acesso à inicialização.
Fonte: Autor (2012)

Figura 10 permite desabilitar a reinicialização do sistema operacional usando a combinação das teclas Ctrl + Alt + Delete, assim se o atacante for uma pessoa física impossibilita a reinicialização forçada.
Fonte: Autor (2012)

Figura 11 o Bastille oferece um padrão para a navegação no protocolo TCP Wrappers e xinetd:
Fonte: Autor (2012)

Figura 12 informar que o serviço telnet não é seguro e que é aconselhável a sua desativação, pois o mesmo é texto puro tornando fácil o seu monitoramento:
Fonte: Autor (2012)

Figura 13 informa que o FTP não é totalmente seguro e mostra outra opção que é o SFTP e desabilita o FTP:
Fonte: Autor (2012)

Figura 14 informa se gostaria de exibir "autorizou o uso" mensagens de log-in-time, se alguém modificar algo fica uma mensagem gravada no sistema podendo pegar o invasor tentando burlar o sistema:
Fonte: Autor (2012)

No Bastille aparecerá uma tela com a seguinte mensagem:

A default login/telnet/ftp "Authorized Use Only" banner will be created, and will be found in /etc/issue. You should modify this banner to apply more specifically to your organization (for instance, adding any site-specific information to the default warnings). If this is a corporate site, check with your corporate counsel to determine the most appropriate warning for the banner. These banners, according to CIAC's bulletin

(http://ciac.llnl.gov/ciac/bulletins/j-043.shtml)

May make it much easier to prosecute intruders. By including this default banner, neither the Bastille development team nor Hewlett-Packard Company take│ any responsibility for your ability to prosecute system crackers. Please, especially if you run a corporate site, review/replace this with more specific language.
Informa que se os serviços, telnet e FTP se serão usados por padrão eles tem um banner no diretório /etc/issue, sendo recomendado que os administradores modifiquem esse banner ocultando informações sobre a versão que está sendo usada impossibilitando que seja explorado os bugs do mesmo.

Figura 15 Quem é responsável pela conexão de autorização para utilizar este equipamento:
Fonte: Autor (2012)

Figura 16 ajuda a colocar limites de uso de recursos do sistema, ajudando a se defender dos ataques de negação de serviço, e assim podendo limitar a eficacia de muitos ataques efetuando modificações /etc/security/limits.conf:
Fonte: Autor (2012)

Figura 17 aqui é dada à opção de restringir alguns grupos de contas de usuários de ter acesso ao console:
Fonte: Autor (2012)

Figura 18 colocar os nomes das contas que terão acesso ao console:
Fonte: Autor (2012)

Figura 19 pergunta se gostaria de colocar logs adicionais no sistema:
Fonte: Autor (2012)

Figura 20 aceitando com "yes" na figura 20 gera um script que irá acrescentar arquivos de log adicionais em: /var/log/kernel. Mensagens do kernel /var/log /syslog - arquivos de mensagens de "warning" gravidade e "erro".
Fonte: Autor (2012)

Figura 21 pergunta se há logs remotos, se haver vamos configurá-lo:
Fonte: Autor (2012)

Figura 22 configurar o processo de contabilidade no qual registra todos os comandos executados, por quem e quando, dando a possibilidade de reconstruir todo o caminho percorrido pelo cracker:
Fonte: Autor (2012)

Figura 23 é só um informativo sobre o que o Bastille tenta fazer e que de agora em diante tem que prestar bastante atenção:
Fonte: Autor (2012)

Figura 24 deseja desativar o acpid e/ou apmd que gerencia a energia:
Fonte: Autor (2012)

Figura 25 pergunta se pode desabilitar NFS (Network File System, comum a maioria das variantes do Unix) e SMB (Samba) informando que não é tão seguro, por ser um sistema de compartilhamento de arquivos, tornando fácil seu monitoramento:
Fonte: Autor (2012)

Figura 26 coloca em cogitação colocar o Sendmail em modo daemon, mas ele explica que não há a necessidade de estar rodando o tempo todo em modo daemon, se desativar o Bastille irá perguntar se deseja rodar o Sendmail a cada poucos minutos para processar a fila de correio de saída:
Fonte: Autor (2012)

Figura 27 se você não tiver usando o servidor web Apache pelo menos no momento desative, quando houver a necessidade de usá-lo ative-o mais tarde:
Fonte: Autor (2012)

Figura 28 informações sobre o servidor web Apache, algumas observações na hora de configurar:
Fonte: Autor (2012)

Figura 29 pergunta se gostaria de desativar a impressão, podendo reativar no futuro:
Fonte: Autor (2012)

Figura 30 repassa que o FTP é bastante perigoso com pouca segurança e dá dois motivos:

1. Todas as palavras viajam visíveis através da conexão, permitindo que qualquer arquivo hospedeiro intermediário (e, geralmente, cada anfitrião na origem e de destino rede de área local) possa "farejar" senhas não criptografadas.

2. Daemons FTP normalmente precisam ser executado com privilégios de root, é na maioria arquivos: os mais comuns foram encontrados para ter uma infinidade de segurança de arquivos e vulnerabilidades ao longo de sua existência.
Fonte: Autor (2012)

Figura 31 nessa parte o Bastille sugere a criação de um diretório temporário alternativo para a execução de scripts:
Fonte: Autor (2012)

Figura 32 se for permitido o Bastille executar um script de filtragem de pacotes, transformando o sistema operacional em um pequeno firewall, esse script é suportado no kernel 2.2 (ipchains) e 2.4 (iptables se disponível, caso contrário, ipchains).
Fonte: Autor (2012)

Figura 33 informar que será solicitado a escolher as informações iniciais para configuração do script de firewall:
Fonte: Autor (2012)

Figura 34 pergunta se precisa das configurações avançadas de rede:
Fonte: Autor (2012)

Figura 35 é solicitado a configuração do DNS, caso seja deixado vazio o script de firewall irá ler o nome dos servidores atuais a partir de /etc/resolv.conf quando ele é executado, que é a configuração recomendada:
Fonte: Autor (2012)

Figura 36 ajuda a fazer uma lista com os nomes de todas as interfaces que estão ligadas às redes públicas não confiáveis sem ter que modificar o script de firewall:
Fonte: Autor (2012)

Figura 37 criar uma relação de todos os serviços relacionados ao TCP (telnet, FTP, IMAP, POP3, finger, sunrpc, exec de login, linuxconf, SSH) com o nome e número de porta e com isso registrar as tentativas de conexões a partir das interfaces públicas:
Fonte: Autor (2012)

Figura 38 criar uma relação de todos os serviços relacionados ao UDP (Back Orifice) com o nome e/ou número de porta e com isso registra as tentativas de conexões a partir das interfaces públicas e enquanto os crackers tiverem rondando o Back Orifice não representarem perigo:
Fonte: Autor (2012)

Figura 39 criar uma relação de todos os serviços relacionados ao ICMP com o nome e/ou número de porta e com isso registrar as tentativas de conexões a partir das interfaces públicas:
Fonte: Autor (2012)

Figura 40 listar os nomes de serviços ou números de portas TCP que tenha acesso as redes públicas:
Fonte: Autor (2012)

Figura 41 listar os nomes de serviços ou números de portas UDP que tenha acesso as redes públicas:
Fonte: Autor (2012)

Figura 42 pergunta se quer forçar o modo passivo, isso tem a ver com a forma como os clientes rodando na máquina vão se comunicar com outras máquinas:
Fonte: Autor (2012)

Figura 43 especificar os serviços TCP que podem ser bloqueados, para verificar os serviços que estão rodando pode usar o comando "Lsof" (List Open Files) lista de todos os arquivos abertos e os processos que abriu:
Fonte: Autor (2012)

Figura 44 especificar os serviços UDP que podem ser bloqueados:
Fonte: Autor (2012)

Figura 45 especificar quais ICMP (Internet Control Message Protocol) serão permitidos:
Fonte: Autor (2012)

Figura 46 deseja ativar a verificação de endereço de origem, ajudando a bloquear os endereços falsificados:
Fonte: Autor (2012)

Figura 47 modo como o tráfego bloqueado é rejeitado:
Fonte: Autor (2012)

Figura 48 determinar os nomes de todas as interfaces das máquinas que irão precisar do DHCP:
Fonte: Autor (2012)

Figura 49 pergunta se deseja sincronizar os horários das maquina com o NTP (Network Time Protocol), se sim, digite os IPs das máquinas, se não, deixe em branco:
Fonte: Autor (2012)

Figura 50 quais tipos de ICMP (Internet Control Message Protocol) deseja impedir a saída, se desativar o padrão a sua maquina não será visível quando, por exemplo, utilizar o comando traceroute:
Fonte: Autor (2012)

Figura 51 o Bastille pergunta se deseja executar o firewall na inicialização e se quiser modificar alguma configuração depois, o arquivo fica /etc/bastille/bastille-firewall.cfg:
Fonte: Autor (2012)

Figura 52 é a parte de configuração do PASD (porta detectora de ataque e verificação), ela trabalha verificando os logs do firewall e analisando se alguém está tentando escanear ou não a máquina:
Fonte: Autor (2012)

Figura 53 determina o tempo que controla a frequência do PSAD, na verificação dos pacotes que foram negados pelo firewall:
Fonte: Autor (2012)

Figura 54 é determinado o tempo de varredura de portas por intervalo:
Fonte: Autor (2012)

Figura 55 ativar a varredura por persistência determinado assim um número de portas escaneada por um período fixo de tempo:
Fonte: Autor (2012)

Figura 56 aqui é definido o tempo que o PSAD irá determinar o valores coletados como válidos para analise por padrão vem uma hora:
Fonte: Autor (2012)

Figura 57 se deseja mostrar as assinaturas já que o PSAD faz uso de muitas dessas tais como a TCP e UDP:
Fonte: Autor (2012)

Figura 58 as classificações de níveis de perigo por padrão são:
  • Nível 1 - 5 pacotes
  • Nível 2 - 50 pacotes
  • Nível 3 - 1000 pacotes
  • Nível 4 - 5.000 pacotes
  • Nível 5 - 10.000 pacotes

Fonte: Autor (2012)

Figura 59 configurar o envio de alerta por e-mail:
Fonte: Autor (2012)

Figura 60 determinar qual nível de alertar deve ser enviado para o e-mail:
Fonte: Autor (2012)

Figura 61 se deseja ser alertado sobre qualquer pacote novo que chegar à rede:
Fonte: Autor (2012)

Figura 62 deseja habilitar o bloqueio automático de IPs que tentaram escanear a sua máquina:
Fonte: Autor (2012)

Figura 63 deseja que o Bastille habilite o PSAD no ato da inicialização do sistema:
Fonte: Autor (2012)

Figura 64 Você terminou de responder às perguntas, ou seja, podemos fazer as mudanças?

Agora vamos implementar as escolhas que foram feitas. Se quiser voltar a fazer novas alterações responda não!
Fonte: Autor (2012)

Créditos Bastille:
  • Jay Beale - Lead Architect and Original Author.
  • HP Bastille Dev Team - Developers - HP-UX Port, Design/Arch.
  • Peter Watkins - Core Developer: Firewall.
  • Mike Rash - Developer: PSAD.
  • Paul Allen - Developer: User Interface.
  • Javier Fernandez - Sanguino- Developer - Debian Port.
  • Niki Rahimi (IBM) - Developer - SuSE and TurboLinux Ports.
  • Brian Stine - Developer - Gentoo Port.
  • Carsten Gehrke - Developer, Delphi (Fort Knox Project).
  • Charlie Long - Developer, Delphi (Fort Knox Project).
  • Jon Lasser - Original Coordinator.

E muitos outros colaboradores, cujos nomes podem ser encontrados em:
Estamos em débito com o seguinte apoio e ajuda:
  • The US TSWG and US NavyHewlett Packard.
  • Mandrakesoft The SANS Institute.
  • VA Software IBM.

Página anterior    

Páginas do artigo
   1. Resumo
   2. Introdução
   3. Fundamentação teórica
   4. Metodologia
   5. Conclusão
   6. Referências
   7. Apêndice A - Bastille
Outros artigos deste autor

Entenda o que é Hardening

Leitura recomendada

Race condition - vulnerabilidades em suids

Criptografia chave simétrica de bloco e de fluxo

Fail2ban no Debian - Instalação e Configuração

Kali On The Box - Colocando o Kali para rodar no Raspberry Pi

Ferramentas de detecção e NMAP

  
Comentários
[1] Comentário enviado por removido em 16/06/2015 - 19:31h

Hummm , fazia tempos que eu nao entrava por aqui , mais vou deixar minhas consideraçoes abaixo sobre o artigo

[] O hardening consiste na técnica de explorar as vulnerabilidades e ameaças que possam vir a danificar os sistemas e serviços, e estudá-las para que possa ser feita uma manutenção corretiva deixando o sistema operacional mais robusto, confiável e seguro, preparado para enfrentar futuras tentativas de ataques dos crackers.[]

Na realidade a definiçao do termo esta incorreta , pois hardening nao explora vulnerabilidade nenhuma , pelo contrario consiste em deixar o s.o mais seguro.( falando no termos mais simples).

Suas referencias sao antigas demais , ex morimoto , nao que ele seja confiavel , mais a tecnologia evoluiu demais nesses tempos e ate o morimoto virou hare krishna nem mexe mais com t.i

Bastille, pelo o que eu sei ninguem usa mais bastille ,foi a epoca dele faz tempo , hoje em dia existem soluçoes mais simples e melhores para hardening por exemplos scripts.

Fiz uns scripts a muito tempo atras para essa necessidade , vou deixar o link abaixo para caso alguem queira usar.

[1] https://gist.github.com/clandestine4/1483049 >>> Hardening em sistemas RedHat
[2] https://gist.github.com/clandestine4/1483166 >>> Hardening em sistemas Aix
[3] https://gist.github.com/clandestine4/1483207 >>> Hardening em sistemas Hp-UX

Bom é isso , Abraços

[2] Comentário enviado por removido em 22/06/2015 - 14:08h

Gostei do estilo de escrita.
--
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

[3] Comentário enviado por SiLenT-MaN em 24/06/2015 - 09:07h

Concordo com o @clandestine

Porém, é uma leitura boa para quem pretende evoluir no assunto, buscando a realidade atual.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts