A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Serviços de Rede Servidor Servidor WEB Servidor DNS DMZ IPS

Apresentações semelhantes


Apresentação em tema: "Serviços de Rede Servidor Servidor WEB Servidor DNS DMZ IPS"— Transcrição da apresentação:

1 Serviços de Rede Servidor Servidor E-mail WEB Servidor DNS DMZ IPS
Snort - IDS Rede Local Internet Switch Access Point Roteador FIREWALL

2 A Técnica do PortScan Obscuro
V2.0

3 1. Conceito. 1.1 PortScan: o que é e como surgiu
Portscanning é a arte de identificar, externamente, os serviços disponíveis para cada interface a nível de aplicação. Inicialmente o portscanner era ferramenta de poucos e utilizada pelos administradores no intuito de "visualizar" os serviços de sua rede. Com o advento da Internet e do conceito de rede pública, o portscanning se popularizou bastante como uma ferramenta de "probe" para a massa.

4 1.2. Inviabilidade. A partir dos anos 90, na "era da prevenção" e na "era dos hackers", o portscanner se tornou um procedimento suspeito e intolerável. É muitas vezes entendido como uma ferramenta de "ataque", um programa sofisticado que pode procurar vulnerabilidades entre as máquinas conectadas na Internet. Analogicamente, um processo de portscan contra um grupo de máquinas na rede pode ser comparado a um ladrão, que fica rodeando todas as casas de uma rua, procurando por alguma porta ou janela aberta.

5 1.3. TCP Handshake. Antes de explicarmos a funcionalidade técnica do portscanner, devemos entender como uma conexão utilizando o protocolo TCP se estabiliza em uma rede. O TCP é o protocolo que disponibiliza maior confiabilidade e relativa segurança dentro da suíte TCP/IP (também chamada de suíte de protocolos da Internet), além de possibilitar o controle do fluxo de dados. O TCP exige conectividade com o outro ponto, ou seja, através do procedimento de "aperto de mãos" (3-way handshake) e números de sequência, o ponto identifica e assegura aquele com quem está conversando e, através deste elo de conexão, pode se determinar erros de envio e se assegurar que o pacote foi recebido pelo ponto remoto.

6 Veja um exemplo (3-way handshake):
HOST HOST A quer falar com B (1ª fase) |------> (se apresenta) (2ª fase) ("tudo bem" e se apresenta) < | (3ª fase) |------> ("tudo bem")

7 1.4. TCP flags. Como já se percebe pelo diagrama anterior, o "aperto de mão", requer três pacotes a serem enviados para que o processo se complete. Como também podemos perceber, cada pacote tem um significado especial em cada um dos processos. Isto é, tecnicamente, o protocolo TCP estabelece "flags", que identificam cada determinado processo.

8 São exemplo delas: SYN (synchronize), ACK (acknowledge), FIN (finish), RST (reset), PUSH, URG, etc (rfc 794). São as 4 primeiras que iremos utilizar inicialmente: SYN: utilizado para estabelecer a conexão. ACK: utilizado para reconhecer um pacote enviado, um flag de response. FIN: utilizado para finalizar uma conexão. RST: utilizado para controle (resetar uma conexão, retornar ao estado anterior, etc).

9 A conexão TCP pode ser figurada, portanto, do seguinte
modo: HOST HOST A quer falar com B (1ª fase) |-- SYN --> (2ª fase) <-- SYN+ACK --| (3ª fase) |-- ACK --> (4ª fase) |----> conexão estabelecida <----| Resumindo tudo, sempre que iniciarmos uma conexão TCP, devemos antes estabelecer a conexão através do procedimento "aperto de mãos" (3-way).

10 2. Tradicionais. São as técnicas de portscan mais tradicionais e amplamente divulgadas pela Internet, ou seja, são de fácil detecção. 2.1. Método Connect ( ). O método connect( ) ou "dumb scan", é aquele que se utiliza do próprio procedimento "aperto de mãos” (3-way handshake) para determinar a existência ou não de um serviço na máquina probeada. É o método mais simples e o mais antigo existente, facilmente detectado pela própria aplicação adaptada para um sistema de logs (syslog). Por exemplo a porta 23/TCP, alocada para prover acesso TELNET. Ele funciona enviando pacotes com o flag SYN para diversas portas na máquina a ser probeada. Ao receber SYN+ACK como resposta, ele envia o ACK e retorna um valor positivo, identificando a porta aberta.

11 Exemplo: Observe que sempre que conseguimos efetuar um 3-way handshake retornamos a existência da porta aberta. No caso da porta 110, não recebemos o SYN|ACK mas um RST, identificando portanto, uma porta fechada. Uma das vantagens deste método de portscanning é que ele dispensa o uso de RAW sockets, ou seja, qualquer usuário, com qualquer privilégio pode ter acesso a esta técnica (função connect()).

12 2.2. "Half-open". A técnica "Half-open", assim como a do connect( ), explora o princípio do "aperto de mãos" para se iniciar uma conexao TCP. A diferença entre os dois métodos reside nos procedimentos tomados por cada um. Veja só: O que acontece é que, ao receber a resposta SYN|ACK da máquina probeada, ele já possue informações suficientes para dizer que aquela porta está aberta (se não estivesse, ele receberia um RST), não precisando retornar o ACK final (enviando um RST para terminar o handshake), enganando, portanto, a aplicação, que não consegue estabelecer uma conexão e obter informações sobre a máquina que faz o portscan (ip number e hostname).

13 O "Half-open” foi considerado no começo da década passada, um scan rápido e eficiente e, durante o primeiro instante indetectável. Mas conforme o seu uso veio a se extender por toda a Internet, os sistemas operacionais foram se adaptando a identificar a origem do SYN inicial, evitando, portanto, que a máquina responsável pelo portscan pudesse esconder sua identificação. Atualmente, com o advento de ferramentas IDS e de sistemas de logs do estilo "tcplog" e "synlogger“, o "Half-open" scan é facilmente detectado.

14 3. Obscuros. Os métodos obscuros são aqueles considerados "mais efetivos" na técnica de STEALTH ("Stealth Port Scan" -- PortScan em segredo) no portscanning. 3.1. FIN Scan. Dentre os métodos mais efetivos de "stealth", o FIN Scan é o mais conhecido. Ele consiste na idéia de que toda porta fechada responde com um RST para o pacote recebido e a porta aberta simplesmente ignora, não tomando qualquer atitude (rfc 794). Portanto, enviado pacotes com apenas uma flag FIN levantada, o alvo irá responder com RST se estiver em estado fechado ou ignorar se estiver aberto.

15 Dentre os métodos mais efetivos de “stealth”, o FIN Scan é o mais conhecido.
Veja só: Observe que a porta 110 foi a única a responder com um pacote RST para nossa máquina de Portscan. À partir destas informações, podemos identificar o estado da porta 23 e 21 como aberta e a 110 fechada. A desvantagem desta técnica é a impossibilidade de identificar a existência de algum tipo de filtragem (firewall) na porta destino além do que, existe a incompatibilidade com os sistemas Windows. A Microsoft não segue recomendações e responde RST em todas as portas, mesmo estando em estado aberto (mesmo para produtos CISCO).

16 3.2. NULL Scan. Null scan é uma técnica similar à técnica descrita anteriormente (FIN Scan). Ela trabalha com o comportamento das portas em estado fechado (enviam um RST para os pacotes recebidos). Neste caso, desliga-se todos os flags do pacote TCP (null packet) e envia para a porta alvo. Veja só: Observa-se que o princípio é o mesmo, e todos os problemas descritos no"FIN Scan" são aplicáveis ao "NULL Scan". É preciso comentar, também, que este tipo de scan não será muito efetivo contra hosts que utilizem alguma espécie de filtragem de pacotes ou que estejam "unreachable". Se o portscan não identificar estas situações, pode interpretar a ausência de resposta como uma porta aberta, retornando informações irrelevantes.

17 3.3. DECOY Scan. Este método de portscan envolve a conjugação de outras técnicas para efetivar as informações obtidas. O nome é uma analogia a um termo do jargão militar norte-americano. Com o advento dos caças supersônicos, uma das formas de proteção era o chamado "decoy plane", ou seja, sempre que se detectasse um míssil direcionado ao avião, o computador de bordo projetava um sistema que, mudando a posição do avião mas criando uma ilusão que ele continuava no mesmo lugar, enganava o computador do míssil, que não atingia o alvo. Se trouxermos estes conceitos para o portscan, o DECOY Scan e' aquele que "disfarça" a fonte dos pacotes, a ponto de confundir o computador e esconder o verdadeiro responsável pelas conexões. Ou seja, iremos criar a ilusão que diversas máquinas estão rodando um portscan contra o computador-alvo quando na verdade, só existe uma máquina que irá receber informações. Isto se dá através de uma técnica bastante difundida na rede: o "packet spoofing".

18 Veja como acontece, dado os seguintes endereços:
Host Portscan -> IP (nosso endereço) Host Alvo -> IP O DECOY Scan pode ser utilizado em conjunto com o "Half-OPEN" (como no exemplo acima), com o "NULL Scan" ou com o "FIN Scan". Isto significa que iremos mexer diretamente com RAW Sockets, que exige algum privilégio na máquina de origem. Esta técnica não pode ser utilizada com o "Dumb Scan" (connect( )), uma vez que este exige a efetivação do "aperto de mãos” (3-way handshake).

19 4. UDP Scanner. Esta técnica por muitos anos foi ignorada pela comunidade "hacker" da Internet. A razão para muitos era a irrelevância das portas UDP para o mapeamento de uma máquina remota. Porém, com o passar dos tempos, diversas vulnerabilidades foram encontradas em servidores que se comunicavam através deste protocolo. Um exemplo recente é o BOOTPD (67/udp). Outra grande explosão do protocolo foi os programas "hackers" para Windows (vide B.O. e Netbus).

20 4.1. Observações. O protocolo UDP trabalha distintamente do TCP. Não exige conectividade e não é um protocolo seguro pois não garante que os dados realmente será entregues ao destinatário. Outro grande problema do UDP é a segurança. Por não exigir nenhum "aperto de mãos" ou apresentação, ele é facilmente "spoofado" (maquiado, disfarçado). Quem não se lembra dos problemas envolvendo "ICQ Spoofing" e o "QUAKE Spoofing" ? Todos utilizavam o protocolo UDP para obter o endereço fonte. É por isso que, de uma certa forma, os ataques a vulnerabilidades envolvendo programas que utilizem o protocolo UDP são mais efetivas em termos de "STEALTH". O endereço fonte é facilmente spoofado, escondendo o verdadeiro responsável pelas conexões.

21 4.2. ICMP Port Unreachable. O portscan de UDP utiliza alguns princípios do protocolo integrante da suíte TCP/IP. Como ele não exige qualquer conectividade ou apresentação para o envio de dados, não podemos saber o estado da porta através de uma resposta do próprio UDP (exceto se utilizarmos uma chamada connect() no socket, porém, o scanner perderia em performance). O que iremos utilizar para executar um portscan UDP contra um computador-alvo é a resposta do nosso amigo, o procotolo ICMP, que nos irá retornar a mensagem "ICMP port unreachable" sempre que uma porta UDP estiver fechada.

22 Portanto, iremos preparar um pacote NULO, contendo apenas os cabeçalhos IP e UDP, aguardando a resposta do ICMP. Se não obtermos qualquer resposta, deduziremos que a porta esta aberta. Caso recebamos uma mensagem "port unreachable", a porta estará fechada. Veja só: Observe que só recebemos uma resposta da porta 53 (unreachable), portanto concluímos que ela se encontra fechada.

23 Problema do ICMP Port Unreachable.
O grande problema relacionado a este tipo de portscan é o rfc Ele sugere uma limitação no envio de mensagens de erro via ICMP. Ou seja, existe um número certo de pacotes a ser enviado por um período certo de tempo (ex: 10 pacotes a cada 2 segundos), o que acaba exigindo muito mais tempo para recebermos informações do estado de cada porta. Como sempre, a Microsoft resolve seguir seu próprio caminho. Nos sistemas operacionais Windows, não existe limitação de envio de pacotes, ou seja, o UDP scanner é tão rápido quanto um probe normal.

24 5. Observações Finais. 5.1. Enganando um firewall. Dentro destas inúmeras técnicas de Stealth portscan, ou mesmo dentre as técnicas tradicionais, podemos utilizar alguns truques para enganar um Firewall ou até mesmo um IDS. Geralmente, um portscan é identificado quando diversas portas são probeadas e a porta-origem das conexões não é reconhecida como serviço. Ou seja: Neste caso, um FIN Scan foi detectado contra a porta telnet do computador "vítima".

25 Pensando nesta situação, muitas vezes se descobre que as configurações dos Firewalls e dos IDS não se preocupam com conexões que tenham como porta origem serviços conhecidos. Por exemplo: Os programas de segurança podem confundir estas conexões com um "acesso normal ao nameserver“, liberando os pacotes ou não executando as ações que deveriam tomar. Portanto, máquinas que se localizam nas chamadas "DMZ" (demilitarized zone), e que possuam alguma proteção contra portscanning, podem ser probeadas e conseqüentemente, serviços vulneráveis podem ser identificados.

26 5.2.Como detectar ? É importante notar que não existe nenhum método 100% obscuro, ou seja, com o uso do, por exemplo, Sniffer (Network General) ou TCPDUMP ( podemos criar filtros para identificar uma tentativa de portscan.

27

28

29 Observe que no DECOY Scan, a situação se inverte um pouco
Observe que no DECOY Scan, a situação se inverte um pouco. O que era algo mais fácil de se lidar (um host), torna-se um "ninho de gatos". No DECOY Scan, diversos hosts são "spoofados", ou seja, apenas um deles irá receber informações para determinar o estado da porta. Neste caso, você já sabe que está sofrendo um portscan, mas o que você deseja é identificar a verdadeira fonte. Existe uma possibilidade de identificarmos: Verificar se o host esta "reachable", ou seja, se alguma das máquinas que estiveram no meio do portscan se encontra unreachable, certamente ela não faz parte do grupo de "ataque" (não é a responsável).

30 5.3. Projeto SHADOW. O projeto SHADOW é resultado da união de trabalho de profissionais de segurança no intuito de detectar e combater todos os tipos probes e as novas tendências em STEALTH scan. Ele é composto por representantes do governo norte-americano, cientistas americanos e um brasileiro (Unicamp). Conforme o documento lançado pelo projeto, novas formas de probe tem tomado conta da Internet. São conexões que tem como origem diversos lugares ao redor do mundo e com diferente intervalo de tempo. Vejamos:

31 Observe o intervalo de tempo entre cada conexão
Observe o intervalo de tempo entre cada conexão. Observe também, a origem de cada pacote. Este tipo de portscanning pode ser o mais efetivo de todos. Ele tem muita paciência em enviar pacotes com intervalos cada vez maiores e sincronizado com diversas outras maquinas, enganando os sistemas de IDS ou de deteccao de portscanning. O projeto desenvolveu algumas ferramentas para apurar a coleta de dados no intuito de detectar os "stealth” portscans. DÚVIDAS?


Carregar ppt "Serviços de Rede Servidor Servidor WEB Servidor DNS DMZ IPS"

Apresentações semelhantes


Anúncios Google