Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar

Alertas de Varredura de Portas do ISA Server

Publicado: 13 de dezembro de 2005

Veja outras colunas de Dicas de Segurança do Mês (em inglês)

Visão Geral

Desde o início da fase do ISA Server (2000, se você não tem acompanhado), os administradores do ISA Server têm recebido notificações práticas, mas freqüentemente confusas, de alertas de tentativas de intrusão de "varredura de todas as portas" e "varredura de portas".

Embora a habilidade de notificar administradores quando um tráfego possivelmente maligno é detectado seja um recurso útil de qualquer firewall, esses alertas em particular parecem causar mais confusão que outros alertas do ISA Server. É essa confusão que tentaremos eliminar hoje.

Para manter as coisas simples (e breves), vamos limitar nossos exemplos ao ISA Server 2004. Os mesmos princípios gerais se aplicam ao ISA Server 2000, mas os exemplos de análise de log e interface de usuário do ISA Server diferem bastante.

Noções Básicas

Como o ISA Server lida com conexões?

O ISA Server mantém uma lista de conexões para que o tráfego de cada extremidade da conexão possa ser operado adequadamente. Entre outras coisas, a lista de conexões inclui informações úteis como:

Contanto que a conexão permaneça "viva" e o tráfego seja considerado apropriado de acordo com o estado da conexão e os detalhes de protocolo entendidos pelo ISA Server, o tráfego será passado entre os dois hosts. Geralmente, se nenhum tráfego é recebido de nenhuma extremidade da conexão dentro de dois minutos, o ISA Server fecha a conexão e o esquece. Esse comportamento pode ser alterado, mas envolve habilidades de ISA COM e scripting e isso não faz parte desta discussão. Esse comportamento também depende de configurações específicas de protocolo, como o intervalo de conexão Proxy da Web, que pode ignorar esse padrão se for estabelecido com um valor maior ou menor.

Como o ISA Server detecta intrusões?

Em geral, o ISA Server trata qualquer pacote inesperado como uma tentativa de intrusão. Exatamente como o ISA Server reage a essa tentativa depende de como ele categoriza a intrusão.

Para resumir, quando o ISA Server recebe um pacote para o qual não tem nenhum dado de lista de conexões relacionadas, ele vai largar (ignorar) o pacote e registrar esse fato e todos os dados disponíveis no log do Firewall.

O que é uma varredura de porta?

O objetivo básico de qualquer varredura de porta é determinar quais, se houver, serviços de rede estão ouvindo em um host. A forma mais comum de varredura de porta é uma varredura targeted, em que o scanner examina portas comuns de serviço para ver se o host remoto está proporcionando serviços de rede comuns, como correio e serviços de Web. As variações desse tema são muitas, mas todas compartilham o objetivo de reunir informações de um host remoto. O que pode ser realizado com essas informações depende de uma combinação das habilidades do scanner e dos mecanismos de rede e de proteção de aplicativos no lugar para o host varrido. Felizmente para os administradores do ISA Server, estes são freqüentemente muito melhores que aquelas.

Alertas de Intrusão da Varredura de Portas do ISA Server

O ISA Server divide as varreduras de portas em duas categorias: uma varredura de portas bem conhecidas e uma varredura de todas as portas. Os alertas da varredura de portas bem conhecidas referem-se especificamente a tentativas de conexão imprópria às portas de 1 até 1023. Os alertas de varredura de todas as portas incluem as restantes, de 1024 a 65535.

O modo como o ISA Server determina que uma varredura de porta está sendo tentada é parcialmente controlado por configurações feitas no ISA Server Management. Para visualizar a caixa de diálogo da Detecção de Intrusões relevantes, na árvore de console do ISA Server Management, clique para expandir o nó Configuration, e depois clique em General. No painel de detalhes, clique em Enable Intrusion Detection and DNS Attack Detection.

Cc512655.dica1205_01(pt-br,TechNet.10).jpg


Especificamente, as seguintes configurações afetam a quantia de tempo que o ISA Server espera antes de dar início aos alertas de ataque da varredura de portas:

  • Port Scan. Especifica que o ISA Server vai gerar um evento se houver uma tentativa de contar os serviços funcionando em um computador, examinando cada porta para obter respostas.

  • Detect after attacks on number_of_ports well-known ports. O número máximo de portas bem conhecidas que podem ser varridas antes de gerar um evento quando um ataque da varredura de portas é detectado. Uma porta bem conhecida é qualquer porta da 1 até a 1023.

  • Detect after attacks on number_of_ports ports. O número máximo de portas que podem ser varridas antes de gerar um evento quando um ataque da varredura de portas é detectado.

Para instruções sobre como configurar essa caixa de diálogo, veja o tópico do ISA Server Help "Habilitar detecção de intrusões de ataques comuns".

O resumo disso é que após n pacotes inesperados, o ISA Server vai sinalizar um alerta de varredura de portas, usando os critérios especificados na caixa de diálogo Detecção de Intrusões para determinar se é melhor registrar um alerta de varredura de todas as portas ou um alerta de varredura de portas bem conhecidas.

Obs.: esse aspecto do comportamento de alertas de varredura do ISA é abrangente demais para aprofundar aqui, mas o ponto principal disso é que o ISA só vai disparar um alerta de varredura quando as configurações acima forem satisfeitas.

Cenários Conhecidos para Alertas Falsos

A comunicação de rede TCP/IP é claramente definida em várias dúzias de RFCs. Entretanto, como alguns aplicativos da Web de servidores e clientes agem de modo errado "no fio" e alguns servidores simplesmente estão sobrecarregados, é comum que o ISA Server dispare um alerta incorreto de varredura de portas para o que é mais bem descrito como "pacotes atrasados".

Para explicar melhor, quando o ISA Server fecha uma conexão, ele sofre de "amnésia de conexão" auto-imposta. No que diz respeito ao ISA Server, a conexão não existe e qualquer host que tente se comunicar por essa conexão é considerado hostil. Assim, se um pacote chega de um dos hosts envolvidos na conexão não-reconhecida, o ISA Server enxerga isso como uma varredura de portas e dispara um alerta de acordo com as configurações especificadas para detecção de intrusões.

Portanto 99.444 por cento dos alertas "falsos" do ISA Server se devem ao momento de chegada do pacote e se encaixam em duas categorias principais:

  • "Aplicativos impacientes": O cliente fechou a conexão antes que a resposta fosse recebida do servidor ou vice versa.

  • "Respostas atrasadas": O servidor ou cliente não conseguiu responder antes que o ISA Server suspendesse a conexão.

As duas ilustrações seguintes retratam esses cenários comuns.

Cc512655.dica1205_02(pt-br,TechNet.10).jpg


Cc512655.dica1205_03(pt-br,TechNet.10).jpg


No cenário "Aplicativos Impacientes", o cliente se conectou ao servidor da Web, solicitou algum conteúdo, e então imediatamente fechou a conexão antes que o servidor da Web tivesse chance de responder. Se você perguntar "Quando isso aconteceria?", a resposta é sempre que você disser, "É tarde; feche esse navegador e vá para a cama!". Embora seu esposo ou sua esposa vá provavelmente exigir algum tipo de vingança mais tarde, ele ou ela apenas clica no botão Fechar na janela do navegador.

Quando o Internet Explorer é fechado, ele envia um pacote "reset de conexão" a qualquer servidor com o qual ele tenha uma sessão. O ISA Server vai enviar um pacote "fechar sessão" ao servidor da Web. Se o servidor da Web já tiver enviado um pacote de resposta de conteúdo para a sessão agora fechada do Internet Explorer, antes de receber o pacote "fechar sessão" do ISA Server, o pacote de resposta de conteúdo é largado e registrado pelo ISA Server como um ataque de varredura de portas.

No cenário "Pacote Atrasado", o horário de dormir ainda não chegou e o tráfego está fluindo de modo relativamente normal entre o cliente e o servidor. O casal descobriu conteúdos incrivelmente interessantes nesse site e incentivou alguns amigos a participar.

Nesse cenário, o site está rodando em um Commodore 64 com um modem de 1200 BPS e é rapidamente dominado por uma segunda conexão, o que atrasa dramaticamente suas respostas. Quando um terceiro amigo acessa o site, o servidor da Web entra em um ciclo momentâneo de "mate-me agora" e não consegue responder. Durante esse momento de silêncio reverenciado, o ISA Server decide que o servidor foi "para a cama" e fecha a conexão. Quando o terceiro amigo desconecta com frustração, o servidor da Web pode então responder e começa a despejar dados de resposta a um blistering de 1200 BPS. Como o ISA Server fechou a sessão relevante e está alegremente inconsciente de que essa conexão alguma vez já existiu, esse tráfego de respostas é entendido como um ataque de varredura de portas.

Outra causa comum de alertas de varredura de portas são respostas atrasadas de servidores DNS sobrecarregados ou fracos. O cenário básico é idêntico ao do "Pacote Atrasado" do servidor da Web, mas o protocolo IP e as portas são diferentes, e esse tráfego não será encontrado nos registros do Web Proxy. Em ambos os casos, as técnicas investigatórias usadas são idênticas.

Como Posso Distinguir Alertas Reais de Falsos?

Essa é a questão central cujas respostas todos têm estado esperando tão pacientemente. A boa notícia é que o processo é relativamente simples, uma vez que você aprende como esse evento é registrado e que dados de registro são interessantes para você. A má notícia é que esse processo requer um pouco de investigação de sua parte e um pouco de conhecimento básico sobre TCP/IP.

O que é uma "conexão"?

TCP/IP representa o conceito de uma conexão entre dois (ou mais) hosts, dependendo da funcionalidade e das limitações proporcionadas pelos protocolos envolvidos. Há literalmente milhares de livros e artigos que discutem as qualidades da rede TCP/IP, mas aqui estamos interessados apenas em noções básicas sobre o tráfego TCP e UDP, já que esses são os únicos protocolos IP para os quais o ISA Server vai disparar um alerta de varredura. Dos dois, somente o TCP realmente usa o conceito de uma conexão dentro do próprio protocolo. UDP é conhecido como um "protocolo sem conexão" - um fato que o ISA Server contorna através da lista de conexões que ele mantém.

Os protocolos TCP e UDP incluem o conceito de "portas" para auxiliar os hosts gerenciando essas conexões. Portas são representações numéricas aplicadas às duas extremidades da conexão para proporcionar distinção entre conexões múltiplas ao ou do host. Para cada conexão, cinco características dos dados distinguem um do outro:

  • Endereço IP da Fonte

  • Endereço IP de Destino

  • Protocolo IP (TCP ou UDP)

  • Porta da Fonte

  • Porta de Destino

O termo "5-tuple" (quíntuplo) é freqüentemente usado para descrever essa coleção de características dos dados.

Cc512655.dica1205_04(pt-br,TechNet.10).jpg


No exemplo do servidor da Web, um único servidor da Web, Ted, está gerando conteúdos para dois clientes diferentes, Bob & Carol (o ISP da Alice a desconectou por praticar spamming). O tráfego dos clientes ao servidor é descrito como:

Remetente

IP Fonte

Porta Fonte

Protocolo

IP Destino

Porta Destino

Receptor

Bob

1.2.3.4

1234

TCP

9.10.11.12

80

Ted

Carol

5.6.7.8

5678

TCP

9.10.11.12

80

Ted

O tráfego do servidor aos clientes é descrito como:

Remetente

IP Fonte

Porta Fonte

Protocolo

IP Destino

Porta Destino

Receptor

Ted

9.10.11.12

80

TCP

1.2.3.4

1.2.3.4

Bob

Ted

9.10.11.12

80

TCP

5.6.7.8

5.6.7.8

Carol

Portanto você pode ver que os conceitos de "fonte" e "destino" dependem da direção do fluxo de tráfego entre os hosts. Talvez você também tenha notado que usamos o mesmo protocolo IP (TCP) para esse exemplo. Poderíamos ter configurado o servidor da Web para ouvir em UDP:80, mas já que nenhum navegador entenderia isso, as conexões falhariam e nosso exemplo estaria anulado.

O que os alertas do ISA Server me fornecem?

Se você abrir a árvore de console do ISA Server Management, expandir ArrayName, selecionar Monitoring, e clicar na guia Alerts, vai ver algo assim:

Cc512655.dica1205_05(pt-br,TechNet.10).jpg


Esse ISA Server disparou um alerta de varredura de todas as portas às 8:07:43 da noite em 19/10/2005 de um host operando em endereço IP 207.115.64.2. Se pode parecer, à primeira vista, que o que discutimos até agora são informações insuficientes, na verdade nos dão tudo o que precisamos para começar nossa investigação sobre o mistério desse alerta.

Como encontro a entrada do registro para esse alerta?

Assim que pode, o ISA Server joga tudo o que sabe sobre todas as conexões dentro dos registros (quase em tempo real). Todo o tráfego é registrado no Firewall, enquanto apenas o tráfego operado pelo Proxy da Web é registrado no Web Proxy. Essa é uma importante distinção que você vai querer ter em mente para suas próprias investigações.

Cc512655.dica1205_06(pt-br,TechNet.10).jpg


Para usar o mecanismo de consulta de registro do ISA, você tem que:

  1. Configurar o registro do ISA Server para usar registro MSDE (para detalhes, veja o tópico do ISA Server Help "Configurar registro com banco de dados MSDE").

  2. Criar um filtro de consulta que se encaixe nos detalhes do evento que você já conhece.

No painel direito, se você clicar na guia Tasks e depois em Edit Filter, será apresentado um diálogo que lhe permite criar um filtro de consulta usando qualquer um dos campos de registro do ISA Server. O filtro padrão lhe permite ver o tráfego do ISA Server assim que este o registra. Já que estamos interessados em "vida nos caminhos transcorridos", vamos querer alterar as configurações do filtro como mostra o diálogo Edit Filter.

Cc512655.dica1205_07(pt-br,TechNet.10).jpg


Algo para ter em mente sobre os filtros de consulta de registro é que todos os itens que você adicionar usam apenas "lógica e". Em outras palavras, os resultados de qualquer filtro de consulta serão quaisquer entradas de registro que correspondam a todos os critérios do filtro. O exemplo de filtro aqui determina que só queremos ver entradas de registro:

  1. Tipo de Gravação de Registro = Firewall

  2. Tempo de Registro = entre 19/10/2005 às 8:07:00 da noite e 19/10/2005 às 8:08:00 da noite

  3. Ação = Conexão Negada (porque sabemos que o ISA Server a bloqueou)

  4. IP Cliente = 207.115.64.2

Quando rodamos a consulta, os resultados aparecem no painel de resultados.

Cc512655.dica1205_08(pt-br,TechNet.10).jpg


Para detalhes sobre como organizar seu painel de resultados, veja a Observação 1.

Como determino se esse alerta do ISA Server é verdadeiro ou falso?

O que concluímos desse resultado da consulta é que o pacote que dispara o alerta de varredura é identificado pelo seguinte 5-tuple:

  • IP Cliente = 207.115.64.2

  • Porta da Fonte = 53 (veja a Observação 2)

  • Transporte (protocolo AKA IP) = TCP

  • IP de Destino = 66.114.140.242

  • Porta de Destino = 11002

Agora temos os mesmos dados que o ISA Server usou para determinar se esse pacote fazia parte da lista de conexões ativas. Para decidir se esse alerta em particular é verdadeiro ou falso, precisamos descobrir se o ISA Server tinha alguma vez tentado estabelecer com esse host uma conexão parecida. Para isso, precisamos planejar um filtro de consulta que possa procurar as entradas de registro de interesse. Primeiro, aplicaremos as conexões e conceitos de fluxo de tráfego discutidos anteriormente, para produzir o seguinte 5-tuple que representa o fluxo de tráfego inverso:

  • IP Cliente = 66.114.140.242

  • Porta da Fonte = 11002

  • Transporte (protocolo AKA IP) = TCP

  • IP de Destino = 207.115.64.2

  • Porta de Destino = 53

Então aplicaremos alguns desses dados ao filtro de consulta.

Cc512655.dica1205_09(pt-br,TechNet.10).jpg


  1. Tipo de Gravação de Registro = dos serviços do firewall

  2. Tempo de Registro = entre 19/10/2005 às 8:07:00 da noite e 19/10/2005 às 8:08:00 da noite

  3. Ação = Status de Conexão Não Igual (veja a Observação 3)

  4. IP de Destino = 207.115.64.2

Quando rodamos esse filtro, o ISA Server produz os seguintes resultados:

Cc512655.dica1205_10(pt-br,TechNet.10).jpg


Você vai perceber que eliminamos desse filtro a porta da fonte. Isso nos dá um retrato da "tendência" do comportamento de tráfego do ISA Server que circunda essa estrutura de tempo conforme se aplica a esse perfil de tráfego.

Tempo de Conclusão Lógica

Então aprendemos um monte de coisas sobre rastrear alertas e entradas de registro e sobre personalizar o painel de resultados da consulta de registros. Como usamos esse conjunto de habilidades e conhecimentos?

Se reunirmos os fatos básicos como os temos em ordem cronológica:

  • 8:07:12 da noite:
    ISA Server criou uma conexão (Ação = "Iniciada") e enviou um pacote TCP de 66.114.140.242:11002 a 207.115.64.2:53.

  • 8:07:42 da noite:
    ISA Server fechou a conexão (Ação = "Fechada") e prontamente esqueceu que a conexão alguma vez existiu.

  • 8:07:44 da noite:
    O host remoto enviou um pacote de 207.115.64.2:53 a 66.114.140.242:11002. O ISA Server registrou um alerta de varredura de todas as portas, porque a lista de conexões não tinha nenhuma entrada relevante para esse 5-tuple do pacote.

Baseados nessas infomações, podemos determinar que o ISA Server registrou esse alerta adequadamente, pois tinha fechado a conexão e deletado da lista antes de o host remoto enviar o pacote de resposta.

Para outros protocolos como HTTP e FTP, teríamos que procurar entre os registros por negações similares de tráfego desse host dentro da estrutura de tempo próximo (+- 2 minutos, geralmente) que usamos nos filtros anteriores de consulta. Como suas habilidades de consulta de registro do ISA Server são agora tão impressionantes, deixaremos isso como um exercício para o aluno.

Observações

Observação 1 - Personalizando a exibição do painel de resultados de consulta de registro

A lista de colunas nos exemplos dos resultados da consulta vão provavelmente diferir de seus próprios resultados. Isso porque eu selecionei e organizei os dados interessantes para exibir primeiro. Você também pode mostrar suas incríveis habilidades com o ISA Server Management alterando esse painel para satisfazer às suas próprias necessidades e gostos. Tudo o que você tem a fazer é clicar com o botão direito em qualquer cabeçalho de coluna no painel de resultados e depois selecionar Add/Remove columns. O seguinte diálogo sera apresentado:

Cc512655.dica1205_11(pt-br,TechNet.10).jpg


Você pode selecionar de todos os campos de registro do ISA Server e organizá-los para satisfazer às suas necessidades imediatas.

Observação 2 - Observações sobre o tráfego DNS

O tráfego do Sistema de Nomes de Domínios (DNS) opera usando a porta 53 nos protocolos IP (transportes) TCP e UDP no servidor. Como muitos outros protocolos, o tráfego DNS tem seu próprio conjunto de regras de comportamento. O ISA Server inclui um filtro de detecção de ataques DNS que executa esse comportamento para o tráfego DNS manipulado pelo ISA Server. Em particular, o padrão de intervalo de conexão de 2 minutos mencionado acima é anulado por um intervalo de 30 segundos imposto pelo filtro de detecção de intrusões DNS do ISA Server. Esse ponto será fundamental ao exemplo de análise.

Observação 3 - O que significa "Status de Conexão Não Igual"?

Os filtros de consulta de registro do ISA Server podem corresponder em muitos pontos nos campos de registro. O campo "Ação" é de especial interesse porque geralmente procuramos por um tráfego que o ISA Server estava ativamente bloqueando ou permitindo. Se não temos certeza de qual atitude o ISA Server pode ter tomado, podemos dizer ao mecanismo de consulta de registro para ignorar esse campo, especificando essa configuração. Também podemos realizar o mesmo deletando o campo "Ação" do filtro de consulta.

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft