Prévia do material em texto
FUNDAMENTOS DE SEGURANÇA DA INFORMAÇÃO Izabelly Soares de Morais Varredura de portas e serviços Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Conceituar varredura de porta. Identificar as portas e serviços. Implementar técnicas de varreduras. Introdução Ataques cibernéticos, vazamentos de dados e invasão de sistemas são ocorrências que nos últimos 15 anos têm preocupado cada vez mais o cidadão comum. Mais do que nunca, nossos equipamentos estão inces- santemente trocando dados com servidores distantes. Nossos relógios, carros, ou mesmo geladeiras estão constantemente conectados com a World Wide Web, de forma que mesmo os dispositivos mais inocentes podem armazenar algum tipo de informação, até nossa localização em um dado momento. Nesse contexto, entender algumas das formas uti- lizadas por esses dispositivos para se comunicar pode nos tornar mais aptos a protegermos. Neste capítulo, abordaremos assuntos relacionados à varredura de portas e serviços, uma etapa crucial para que uma invasão ou ataque possa ocorrer. É importante que você tenha conhecimentos acerca do tema, até mesmo para que tente se proteger deste tipo de ação maliciosa à qual sempre estamos sujeitos. Varredura de portas A experiência relacionada à varredura de portas e serviços está totalmente ligada ao contexto de uma invasão de rede e de segurança da informação. E quando falamos de invasão estamos expondo automaticamente algumas maneiras de evitar este tipo de situação. Conforme Goodrich e Tamassia (2013, p. 293): Um sistema de detecção de intrusão (intrusion detection system, IDS) é um sistema de software ou hardware que é usado para detectar sinais de atividade maliciosa em uma rede ou um computador individual. As funções de um IDS são divididas entre sensores IDS, que coletam dados em tempo real sobre o funcionamento dos componentes da rede e computadores, e um gerente IDS, que recebe relatórios de sensores (grifos do autor). Ainda sob o ponto de vista dos autores, um IDS é destinado a detectar várias ameaças, incluindo: Impostor — um atacante que está falsamente usando a identidade e/ ou credenciais de um usuário legítimo para obter acesso a um sistema de computadores ou rede. Infrator — um usuário legítimo que realiza ações às quais não está autorizado. Usuário clandestino — um usuário que tenta bloquear ou encobrir suas ações eliminando arquivos de auditoria e/ou de registros do sistema. Devemos considerar que existem alguns passos primordiais para ocorrer um ataque cibernético. Dentre eles, podemos destacar o que chamamos de varredura. Conforme Goodrich e Tamassia (2013), a varredura de portas é responsável pela coleta de informação destinada a determinar quais portas de um host estão abertas para conexões Transmission Control Protocol (Protocolo de Controle de Transmissão, ou TCP). Para que possamos compreender melhor o papel da varredura na invasão, primeiro devemos compreender as etapas adjacentes a esse processo. Antes da varredura, o primeiro passo é a análise de perfil (do público alvo). O perfil sistemático e metódico de uma organização permite aos invasores criar um quadro quase completo de sua segurança (McCLURE; SCAMBRAY; KURTZ, 2014). Na etapa de reconhecimento, o hacker busca informações sobre a vítima, ação que pode ser realizada a partir de uma base de dados do tipo WHOIS, na qual o hacker busca informações de domínio, contatos e endereços IP. Essas informações são públicas na Internet e acessá-las não representa nenhum tipo de delito. No Brasil, o registro BR é o responsável pela base de dados de WHOIS de qualquer empresa.br (MORAES, 2010). Varredura de portas e serviços2 http://empresa.br/ Após a varredura, são realizadas as enumerações. Para Moraes (2010), este processo testa os serviços identificados no passo anterior para verificar se eles estão vulneráveis. Os serviços podem ser: File Transfer Protocol — podemos verificar se o FTP anônimo está habilitado. Simple Mail Transfer Protocol — podemos verificar se o relay do servidor de e-mail está aberto, permitindo assim o envio de um e-mail falso de um usuário não autorizado. Domain Name System — pode-se verificar se o servidor DNS permite zone transfer e, desta maneira, capturar todos os registros e nomes de máquinas internas do servidor de DNS. Web — pode-se identificar a versão do servidor Web para depois esco- lher o melhor exploit (exploração da vulnerabilidade) a ser utilizado. Simple Network Management Protocol — é possível realizar vários ataques, uma vez que muitos equipamentos possuem Management Information Base onde as community strings estão configuradas com o padrão public ou private. O software utilizado para isso é o SNMP Walk. Se determinar o perfil é o equivalente a cercar um local em busca de informações, então a varredura é o equivalente a inspecionar portas e janelas como pontos de entrada em potencial. Durante a determinação do perfil, obtivemos uma lista de blocos de rede IP e endereços IP por meio de diversas técnicas, incluindo consultas de WHOIS e ARIN. “Essas técnicas fornecem ao administrador de segurança (e ao hacker) informações valiosas sobre a rede alvo, incluindo nomes e números de telefone de funcionários, intervalos de endereço IP, servidores DNS e servidores de correio eletrônico” (McCLURE; SCAMBRAY; KURTZ, 2014, p. 48). De acordo com Goodrich e Tamassia (2013), um IDS é destinado a detectar ataques e ameaças automatizadas, incluindo: ataques de negação de serviço — ataques a redes destinados a sobrecarregar um host e impedir acessos legítimos. ataques de malware — ataques de software malicioso que se replica, como cavalos de troia, vermes de computadores, vírus, etc. 3Varredura de portas e serviços Identificação das portas e de serviços Para Goodrich e Tamassia (2013, p. 302): Determinar qual tráfego é permitido através de um firewall e quais portas em uma máquina alvo estão executando serviços remotos é uma etapa crucial na análise de uma rede em busca de fragilidades de segurança. Qualquer técnica que permita a um usuário enumerar quais portas em uma máquina estão aceitando conexões é conhecida como varredura de porta. Portas podem estar abertas (aceitando conexões), fechadas (não aceitando conexões) ou bloqueadas (se um firewall ou outro dispositivo está evitando que tráfego alcance a porta de destino). A varredura de portas tem uma reputação legal e ética um tanto controversa: embora possa ser usada para propósitos legítimos, para avaliar a segurança da rede privativa de alguém, também é comumente usada para fazer o reco- nhecimento de uma rede em preparação para um ataque. Portanto, realizar varredura de portas é uma forma preliminar de detectar uma intrusão. Um dos programas de varreduras de portas mais popular em uso é o nmap [...] (grifos do autor). Nmap é um software gratuito e de código aberto. Saiba mais acessando o link ou código a seguir: https://goo.gl/IN14Wj Ainda sob ponto de vista dos autores: [...] portas abertas representam um ponto de contato entre a Internet e a apli- cação que está ouvindo essa porta particular. Como tal, portas abertas são alvos potenciais para ataque. Se uma parte mal-intencionada puder explo- rar com sucesso uma vulnerabilidade do sistema operacional do host ou da aplicação que estiver ouvindo uma porta aberta, é possível obter acesso ao sistema alvo e ganhar uma base de operações na rede que pode ser usada para exploração posterior. Devido a esse risco, é recomendável abrir portas apenas para serviços essenciais da rede e assegurar que as aplicações que ouvem essas portas estejam atualizadas e corrigidas contra vulnerabilida- Varredura de portas e serviços4 https://goo.gl/IN14Wj des recentes de software. Da mesma forma, administradores algumas vezes realizam varreduras de portas em suas próprias redes de computadores para revelarquaisquer vulnerabilidades que devem ser fechadas (GOODRICH; TAMASSIA, 2013, p. 302). Técnicas de varredura Inicialmente, podemos verifi car se o sistema se encontra ativo. Dessa forma, conforme McClure, Scambray e Kurtz (2014, p. 48): Embora possamos ter uma lista de intervalos e alguns servidores suspeitos, não sabemos se existe realmente um host alocado para um IP específico e se esse host está ligado e online. Podemos deduzir isso fazendo uma varredura de ping dos endereços e intervalos de endereços que reunimos durante a fase da determinação do perfil. Para Goodrich e Tamassia (2013), algumas das principais técnicas são: Varreduras TCP — o método mais simples de varredura de portas, também conhecido como varredura de conexão, no qual a parte que está fazendo a varredura tenta iniciar uma conexão TCP em cada uma das portas da máquina alvo. Essas tentativas são feitas usando uma chamada padrão do sistema operacional para abrir uma conexão TCP em uma porta especificada. As portas que completarem a conexão estão abertas, enquanto aquelas que não completarem estão fechadas ou bloqueadas. Varreduras SYN — a parte que está realizando a varredura emite um pacote TCP de baixo nível marcado com o indicador SYN para cada porta na máquina alvo. Se a porta está aberta, o serviço que está ouvindo aquela porta irá retornar um pacote marcado com o indicador SYN–ACK e, se não, nenhuma resposta será́ emitida. Ao receber um pacote SYN–ACK, quem está fazendo a varredura emite um pacote RST para terminar, em vez de completar o handshake TCP. Varredura ociosa — esta técnica de varredura procura outra máquina, conhecida como “zumbi”, que tenha números de sequência TCP previsíveis. O atacante pode usar a implementação fraca do TCP na máquina zumbi como uma ferramenta para realizar uma varredura de portas em um alvo separado sem deixar nenhuma evidência na rede alvo. Primeiro, o atacante envia uma 5Varredura de portas e serviços sondagem para a zumbi, na forma de um pacote TCP SYN–ACK. Como esse pacote não foi solicitado pela máquina zumbi, ela irá responder ao atacante com um pacote RST contendo um número de sequência. O atacante então envia um pacote SYN para o alvo que ele deseja varrer, mas falsifica o endereço IP de origem como sendo da máquina zumbi. Se a porta varrida está aberta, o alvo irá responder para a zumbi com um pacote SYN–ACK. Como a zumbi não abriu a conexão com um pacote SYN, ela responde ao alvo com outro pacote RST, e incrementa seu contador de número de sequência. Quando o atacante sonda novamente a máquina zumbi, esta verifica o número de sequência recebido. Se este foi incrementado, então a porta escolhida no alvo é aberta e, se não, está fechada ou bloqueada. Como pode ser difícil encontrar uma zumbi com números de sequência previsíveis, essa varredura não é frequentemente usada na prática, porém fornece uma maneira eficaz de fazer uma varredura em um alvo sem deixar qualquer registro do endereço IP do atacante na rede alvo (GOODRICH; TAMASSIA, 2013). A Figura 1 traz uma demonstração visual deste tipo de varredura. Varreduras UDP — embora as varreduras descritas até aqui possam coletar informação sobre portas TCP, uma técnica diferente deve ser usada para verificar o estado de portas User Datagram Protocol. Como UDP é um protocolo sem conexão, existem menos oportunidades para coletar informa- ções. A maioria das varreduras de portas UDP simplesmente envia um pacote UDP para a porta especificada. Se a porta estiver fechada, em geral o alvo vai enviar um pacote ICMP “destino inatingível”. Se a porta estiver aberta, nenhuma resposta será́ enviada. Contudo, essa varredura não é muito confi- ável, porque portas abertas e portas bloqueadas por um firewall irão resultar em nenhuma resposta. Para melhorar a confiabilidade da resposta, muitas varreduras de portas optam por consultar portas UDP usando pacotes UDP contendo as cargas para a aplicação apropriada. Por exemplo, para verificar o estado da porta 53 (porta padrão para DNS) uma varredura de portas pode enviar uma requisição DNS para o alvo. Essa técnica pode ser mais confiável, mas é menos versátil, no sentido de que requer uma sondagem especializada para cada porta alvo (GOODRICH; TAMASSIA, 2013). Varredura de portas e serviços6 Figura 1. Uma varredura ociosa: (a) O atacante sonda um zumbi com números de sequência previsíveis. (b) O atacante envia um pacote TCP falsificado para o alvo. (c) O atacante verifica o estado das portas sondando o zumbi novamente. Fonte: Goodrich e Tamassia (2013, p. 305). (a) (b) (c) Cliente nocivo Zumbi Resposta RST: seq = x Sondagem SYN-ACK Resposta SYN-ACK Resposta RST: seq = x +1 Sondagem SYN, IP de origem falsi�cada Alvo Sondagem SYN-ACK Resposta RST: seq = x + 2 Escaneamento de ping — demonstra que o host remoto está ativo ao enviar pacotes de solicitação eco ICMP para esse host. Se o host-alvo envia pacotes de volta, pode-se supor que o host está ativo. Entretanto, às vezes os hosts bloqueiam ou derrubam pacotes de solicitação eco ICMP. Isso resulta em uma leitura falso-negativa desse host específico. Essa é uma falha do escaneamento de ping (BASTA, A.; BASTA, N.; BROWN, 2014). 7Varredura de portas e serviços “Fazer ping de rede significa enviar certos tipos de tráfego para um alvo e analisar os resultados (ou a falta deles)” (McCLURE; SCAMBRAY; KURTZ, 2014, p. 48). Escaneamento de protocolo IP — examina um host-alvo para encontrar os protocolos IP suportados. Nesse método, o escaneador transmite pacotes IP para cada protocolo em um host-alvo. Se um protocolo no host-alvo responde com uma mensagem unreachable do ICMP para o escaneador, logo o host- -alvo não usa esse protocolo. Se não há resposta, então o hacker assume que o host-alvo suporta esse protocolo (BASTA, A.; BASTA, N.; BROWN, 2014). Uma ferramenta que pode ser usada para detectar intrusões, incluindo varredura de portas, é um honeypot (pote de mel). Neste caso, um computador é usado como “isca” para intrusos. Muitas vezes é colocado na rede de uma maneira que o torna atraente, como estar configurado com um software com vulnerabilidades conhecidas e com seu disco rígido repleto de documentos que aparentam conter segredos da empresa ou outra informação aparentemente valiosa (GOODRICH; TAMASSIA, 2013). A determinação do status das portas (se estão abertas, fechadas ou blo- queadas) é muitas vezes desejável para que se obtenha informações adicionais sobre um sistema alvo (GOODRICH; TAMASSIA, 2013). Em particular, o conhecimento do tipo e da versão de cada serviço remoto e da versão do sistema operacional podem ser valiosos no planejamento de um ataque. Os varredores de portas podem explorar o fato de que cada sistema operacional tem leves diferenças na sua implementação da pilha TCP/IP e, por isso, pode responder diferentemente às diversas requisições ou sondagens. Para Basta, Basta e Brown (2014, p. 47): A maioria dos escaneadores é escrita nas linguagens C ou Perl; além disso, para criar um escaneador é necessário ter conhecimento profundo dessas complexas linguagens de programação. Um amplo conhecimento das rotinas TCP/IP também é necessário para desenvolver um escaneador. Varredura de portas e serviços8 Entretanto, é desnecessário criar e construir um escaneador desde o início. Há muitas opções de có digo–fonte e binários compilados de ferramentas de escaneamento de código aberto, freeware e licenças shareware. Apesar dos primeiros escaneadores serem baseados em plataformas UNIX, eles estão disponíveis atualmente para plataformas Windows e Macintosh. Os autores demonstram, por meio do Quadro 1 a seguir, algumas das principais ferramentas de escaneamento. Fonte: Adaptado de Basta, Basta e Brown (2014, p.47–48). Fase Nome do scaneador Link Descoberta Nmap http://nmap.org UnicornScan www.unicornscan.org Reconhecimento Fierce http://ha.ckers.org/fierce Maltego www.paterva.com/web4/index.php/maltego PassiveRecon https://addons. mozilla.org/en-US/ firefox/addon/6196 tcpdump www.tcpdump.org Wireshark www.wireshark.org Identificação de vulnerabilidade Nessus www.tenablesecurity. com/nessus NeXpose www.rapid7.com Nipper www.titania.co.uk OpenVAS www.openvas.org Qualys www.qualys.com SAINT www.saintcorporation. com Exploração Core Impact www.coresecurity.com MetalSploit www.metalsploit.com BackTrack www.backtrack-linux.org Quadro 1. Fases e ferramentas de escaneamento 9Varredura de portas e serviços http://nmap.org/ http://www.unicornscan.org/ http://ha.ckers.org/fierce http://www.paterva.com/ http://mozilla.org/en-US/ http://www.tcpdump.org/ http://www.wireshark.org/ http://www.rapid7.com/ http://www.titania.co.uk/ http://www.openvas.org/ http://www.qualys.com/ http://www.coresecurity.com/ http://www.metalsploit.com/ http://www.backtrack-linux.org/ O Quadro 1 ainda relaciona alguns escaneadores populares e os locais da internet nos quais eles podem ser encontrados com facilidade. O Quadro também documenta as várias fases do processo do teste de invasão no qual esses escaneadores em particular podem ser mais adequados. BASTA, A.; BASTA, N.; BROWN, M. Segurança de computadores e teste de invasão. São Paulo: Cengage Learning, 2014. GOODRICH, M. T.; TAMASSIA R. Introdução à segurança de computadores. Porto Alegre: Bookman, 2013. McCLURE, S.; SCAMBRAY, J.; KURTZ, G. Hackers expostos: segredos e soluções para a segurança de redes. 7. ed. Porto Alegre: Bookman, 2014. MORAES, A. F. Segurança em redes: fundamentos. São Paulo: É rica, 2010. Leituras recomendadas ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR/ISO/IEC 17799. Tecnologia da informação: código de prática para a gestão da segurança da informação. São Paulo: ABNT, 2002. PEIXOTO, M. C. P. Engenharia social e segurança da informação na gestão corporativa. Rio de Janeiro: Brasport, 2006. POLIZELLI, D. L.; OZAKI, A. M. Sociedade da informação: os desafios da era da colaboração e da gestão do conhecimento. São Paulo: Saraiva, 2008. Varredura de portas e serviços10 Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem. Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra.