FACULDADE DE TECNOLOGIA SENAC GOIÁS HENRIQUE FERREIRA DA SILVA ABISHAI LEMES BORGES NETO ADELTON HENRIQUE ALINE GRAZIELLE NUNES PROJETO INTEGRADOR GOIANIA 2015/1
HENRIQUE FERREIRA DA SILVA ABISHAI BORGES NETO ADELTON HENRIQUE ALINE GRAZIELLE NUNES HARDENING SERVIDORES LINUX/WINDOWS Trabalho de Laboratório de Redes de Computadores Apresentado a Faculdade de Tecnologia Senac Goiás. Curso de graduação tecnologia em Segurança da Informação. Orientador: Prof. Fernando Pirkel GOIÂNIA 2015/1
DESCRIÇAO: Elaborar um relatório de como foi feito o processo de Hardening dos servidores contra os ataques de main in the middle, a partir do estudo de ferramentas e técnicas para Hardening de Linux contra MITM E Hardening de Windows contra MITM. Blindando um Sistema GNU/Linux Hardening pode ser utilizado para evitar que usuários mal intencionados aproveitem da ausência do administrador e implantem scripts maliciosos em servidores infectando toda a rede, bloquear que o usuário administrador faça login diretamente no terminal, efetuar logout por tempo de inatividade, remover pacotes que não são utilizados, remover permissões especiais de binários executáveis, dentre outras técnicas. Hardening O hardening consiste na realização de alguns ajustes finos para o fortalecimento da segurança de um sistema. Muitos administradores sem experiência em segurança preparam seus servidores com uma instalação básica e depois que suas aplicações estão disponíveis nenhum procedimento é feito para manter a integridade do sistema. Em um sistema GNU/Linux é possível atingir um alto nível de segurança implementando configurações que permitam o aperfeiçoamento da segurança aplicada ao sistema. Quando se deseja aplicar a técnica de hardening há três grandezas que devem ser consideradas: segurança, risco e flexibilidade. O administrador de redes deve analisar muito bem essas grandezas e encontrar um estado de harmonia entre elas, levando o sistema a uma alta produtividade e segurança, pois quanto maior a segurança menor o risco e também a flexibilidade. É importante ressaltar que as técnicas aqui apresentadas podem não ser adequadas para todas as situações. Por isso, antes de implantar efetivamente as técnicas de hardening, é fundamental que haja um estudo completo do cenário e serviços em questão. Inicialmente recomenda-se sempre instalar versões atuais dos sistemas operacionais, que contenham correções e patches de segurança, pois pode ser problemático utilizar uma versão antiga sem atualizações, deixando o sistema temporariamente vulnerável no caso da existência de pacotes com falhas.
Para os experimentos feitos em laboratório foram utilizados como técnica para mitigar os ataques MITM, desabilitando e melhorando configurações de serviços. Abaixo exemplos Serviços desnecessários e inseguros Depois do sistema instalado, deve ser realizada uma verificação minuciosa de todos os programas instalados e se são realmente necessários, mesmo sendo uma instalação básica. Um servidor nunca deve conter programas clientes. Serviços como telnet, rshd, rlogind, rwhod, ftpd, sendmail, identd, wget, dentre outros, deverão ser removidos. Estes serviços podem ser desinstalados usando o gerenciador de pacotes do sistema operacional, ou desativando-os em todos os níveis de inicialização. Procura de senhas fracas A senha deve ser única, intransferível e de propriedade de um único usuário. O administrador não deve saber essas senhas. Um procedimento muito comum para isso consiste na alteração da senha no momento do primeiro login do usuário. Dessa forma o administrador não terá acesso à senha escolhida pelo usuário. Mas, na maioria das vezes, as senhas escolhidas são fáceis de serem descobertas, pois são usadas sequências simples, como 123456, ou informações pessoais como datas de aniversário, nome próprio, entre outras. SSH O SSH (Secure Shell) é um programa usado para acessar remotamente outro computador usando uma rede, executar comandos em uma máquina remota e copiar arquivos de um computador para outro. Fornece autenticação forte e comunicação segura sobre canais inseguros (como a Internet, por exemplo). É muito usado para logar em um sistema GNU/Linux através de uma máquina Windows, Mac ou mesmo outro GNU/Linux, na qual os tradicionais telnet e rlogin não podem fornecer criptografia da senha e da sessão. Detalhes importantes precisam ser levados em consideração quando um servidor ssh é configurado.
ARPON ArpON, é uma ferramenta open source que faz ARP seguro, evitando com isso ataques como Man In The Middle, DHCP Spoofing, DNS Spoofing, Web Spoofing, Sequestro de sessão SSL entre outros. Ela funciona monitorando a tabela ARP da rede, gera e bloqueia alterações na tabela. O suporte para interfaces: Ethernet, Wireless Gerencia a interface de rede com: Iface Desligue, Bota OS, Hibernação OS, OS Suspensão Solução baseada Proactive para conexões: Ponto-a-Ponto, Ponto-a-Multiponto, Multipoint Tipo de autenticação para o anfitrião: Cooperativa entre os hosts Suporte para redes: Estaticamente, dinamicamente (DHCP), a rede híbrida que é estática e dinamicamente Bloqueia o Man In The Middle (MITM) ataque por meio de: ARP Spoofing, ARP Poisoning Cache, ARP veneno Routing (APR) Três tipos de anti tecnicas ARP spoofing: Sarpi ou Static ARP Inspection, DARPI ou dinâmica ARP Inspection, HARPI ou híbrido ARP Inspection Bloqueia os ataques derivados: Sniffing, Sequestro, Injection Bloqueia os ataques complexos derivados: DNS Spoofing, WEB Spoofing, Session Hijacking, SSL / TLS Hijacking Testado contra: Ferramentas Ettercap, Cain & Abel, dsniff, Yersinia, scapy, netcut, Metasploit, arpspoof, sslsniff, sslstrip & co
Etherwall Contra ataques Man in The Middle MITM Etherwall O Etherwall é uma ferramenta bem interessante que roda no mundo linux e tem a capacidade de detectar e bloquear ataques Man in The Middle executados via ARP Spoofing/Poisoning. DNS O serviço de DNS oferece um modelo distribuído para resolução de nomes de maquinas em endereços ips e vice-versa. É composto por duas partes: Os servidores DNS (responsáveis pelo serviço de tradução de nomes ) e os resolvers (que são os clientes que usam os servidores DNS). Manter o software do servidor DNS sempre atualizado Foi executado o servidor DNS sobre um usuário não privilegiado Foi executado o servidor DNS em um ambiente chroot Transferência de zona esta é uma forma de obter informações da rede através do DNS. Assinando a transação: mesmo especificado os hosts que fazem as transferências de zona, ainda assim será possível interceptar os dados das transações através do ataque MITM. Para solucionar este problema foi configurado a assinatura destas transações usando o TSIG (Transaction Signatures). APACHE O servidor APACHE é o servidor web mais popular no mundo devido ao seu desempenho, portabilidade flexibilidade e baixo custo. Foi utilizado o protocolo HTTPS, o HTTPS é o protocolo seguro cujo objetivo é criptografar todas as informações em transito. O protocolo HTTPS utiliza a porta TCP 443. Este protocolo viabilizou o comercio eletrônico e consultas online a conta bancarias tão utilizadas atualmente. O HTTPS trabalha com criptografia assimétrica, ou seja, utiliza um par de chaves (publica e privada). A implementação do protocolo HTTPS é feito através de ssl (Secure Socker Layer) que permite criptografar todos os dados que trafegar pela porta 443. Abaixo printscreen do arquivo de configuração do SSL e de navegação HTTPS
No Browser SERVIDOR DE CORREIO Correio Eletronico Um servidor de mensagens eletrônicas é responsável pela recepção e envio de mensagens. Dentro deste processo há vários mecanismos utilizado pelo servidor antes da mensagem chegar até o remetente. Atualmente o maior responsável pelo trafego na internet, é sem duvida o e-mail. O SMTP (Simple Mail Transport Protocol) é o protocolo de transporte de mensagens utilizados em redes TCP/IP. Foi utilizado criptografia SSL/TLS A criptografia da conexão onde trafegam os dados é habilitada gerando-se um certificado para ser configurando no MTA. Abaixo printscreen do arquivo de configuração que possibilita o uso do SSL/TLS No MUA
No MUA Sistemas como o AppArmor e o SELinux estão sendo utilizados para aumentar ainda mais a segurança em sistemas Linux, criando uma camada a mais de segurança, e devem ser considerados para também endurecer o sistema. É importante salientar que existem técnicas de hardening mais específicas, como o hardening em kernel, em serviços como Apache e MySql, entre outros. Hardening Windows 1. ARP CACHE POISONING 1.1. Protegendo do ataque de envenenamento do cache ARP Não há uma solução definitiva para acabar com o envenenamento do cache ARP na rede local, existe, porém, uma maneira de se proteger desse ataque que é a adição estática de endereços através do seguinte comando: arp s <endereço IP> <endereço MAC> Esta é uma solução para redes com poucas alterações, para redes maiores a adição deverá ser feita por meio de um script que irá adicionar os endereços na tabela do cache ARP e usar um script para monitorar a tabela e mostrar eventuais tentativas de ataque (Exemplo: ARPFreeze). 2. DNS SPOOFING 2.1 Protegendo do ataque de DNS Spoofing
O DNS Spoofing em rede local utiliza-se do envenenamento do cache ARP para realizar o ataque, portanto, utilizar as medidas preventivas do envenenamento do cache ARP é uma maneira de se proteger. Uma solução específica para esse ataque é a utilização do DNSSec, pois todo o servidor DNS recebe um par de chaves público/privada e todas as informações enviadas a um servidor serão autenticadas com a chave privada e assim será possível ao receptor verificar sua autenticidade e garantindo a sua integridade, dificultando assim o ataque. 3. HTTP SESSION HIJACKING 3.1 Defesa contra ataque de roubo de sessão HTTP O ataque de roubo de sessão é difícil de detectar porque se o atacante não fizer alterações na sessão interceptada, dificilmente a vítima perceberá o ataque e como ele também utiliza o ataque de envenenamento ARP para interceptar os dados entre os dispositivos o ideal é se proteger dos ataques no protocolo ARP. 4. SSL HIJACKING 4.1 Defendendo contra o ataque SSL HIJACKING Como todos os ataques MITM em redes locais utilizam da falha no protocolo ARP para realizar o ataque, se defender dele é essencial para se proteger deste e outros ataques. O ataque redireciona o tráfego para o HTTP e os navegadores atuais demonstram o protocolo de navegação, geralmente o HTTPS é demonstrado por um cadeado. Portanto, se um site utiliza o protocolo HTTPS e o navegador informa que está utilizando o protocolo HTTP, provavelmente está sendo atacado, por isso, cabe também ao usuário atentar a estas informações e evitar o ataque e conseqüentemente o roubo de informações. Conclusão Neste artigo foram tratados os conceitos de hardening, além de demonstrar algumas técnicas para endurecer o acesso ao sistema. Contudo, o assunto é muito extenso e importante, devendo ser tratado como fator fundamental em um projeto de implementação de um servidor, antes mesmo de entrar em produção, desde a instalação até a disponibilização de serviços na rede.