Servidor de Internet indisponível devido a ataques maliciosos de SYN

Traduções de Artigos Traduções de Artigos
Artigo: 142641 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Num computador que está a executar o protocolo TCP/IP e que esteja ligado à Internet, alguns ou todos os serviços de rede são compostos indisponíveis e mensagens de erro como a que se segue apresentadas no ecrã do cliente de rede:
A ligação foi reposta pelo anfitrião remoto.
Este sintoma de todos os serviços de rede que está a ser apresentado indisponível também poderá ocorrer num computador com um sistema operativo diferente do Windows NT, por exemplo, UNIX.

Causa

Este problema ocorre quando o computador tornou-se o destino de um ataque malicioso conhecido como TCP/IP "SYN congestionamento" ou "Ataques SYN."

Utilizadores mal intencionados podem direccionar um computador completo ou um serviço TCP específico como os serviços web. O ataque dedica-se o protocolo TCP utilizado por todos os computadores na Internet e não é específico do sistema operativo do Windows NT.

Como funciona o congestionamento de SYN

SYN congestionamento funciona da seguinte forma:
  • Um pedido de ligação TCP (SYN) é enviado para o computador de destino. O endereço IP de origem no pacote é "defraudado" ou substituído por um endereço que está a não ser utilizado na Internet ou que pertença a outro computador. Um intruso enviará muitos destes SYNs TCP para ocupar recursos tantos quanto possível no computador de destino.
  • Ao receber o pedido de ligação, o computador de destino atribui recursos para gerir e controlar a nova ligação e responde com um "SYN-ACK". Neste caso, a resposta é enviada para o endereço IP inexistente "oculto".
  • Não é recebida uma resposta para SYN-ACK. A predefinição configuradas com Windows NT 3.5x ou 4.0 computador irá retransmitir o 5 de SYN-ACK horas, dobre o valor de limite de tempo após cada retransmissão. O valor de limite de tempo inicial é três segundos, para que tentativas são tentadas 3, 6, 12, 24 e 48 segundos. Depois da retransmissão última segundos 96 estão autorizados a passar antes do computador apresenta receber uma resposta e retira a atribuição de recursos que foram definidos reservar anteriores para a ligação. O tempo decorrido total que recursos estão em utilização é 189 segundos.

Como verificar que o computador está num ataque SYN

Se suspeitar que o computador é o destino de um ataque SYN, pode escrever o seguinte comando numa linha de comandos para visualizar ligações no estado "SYN_RECEIVED":
netstat - n-p tcp
Este comando poderá provocar o seguinte texto seja apresentado no ecrã:
Ligações activas
      Proto  Local Address         Foreign Address       State
      TCP    127.0.0.1:1030        127.0.0.1:1032        ESTABLISHED
      TCP    127.0.0.1:1032        127.0.0.1:1030        ESTABLISHED
      TCP    10.57.8.190:21        10.57.14.154:1256     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1257     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1258     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1259     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1260     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1261     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1262     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1263     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1264     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1265     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1266     SYN_RECEIVED
      TCP    10.57.8.190:4801      10.57.14.221:139      TIME_WAIT
				
Se um grande número de ligações está no estado SYN_RECEIVED, é possível que o sistema seja atacado. Analisador de rede pode ser utilizado para localizar o problema mais e poderá ser necessário contactar o fornecedor de serviços Internet para obter assistência na tentativa rastrear a origem.

O efeito de ocupar recursos de ligação varia, de acordo com a pilha de TCP/IP e as aplicações escutar a porta TCP. Para a maior parte das pilhas, existe um limite no número de ligações que podem estar no estado aberto metade (SYN_RECEIVED). Uma vez atingido o limite para uma determinada porta TCP, o computador de destino responde com uma reposição a todos os outros pedidos de ligação até que os recursos são libertados.

Resolução

Obtenha a seguinte actualização para Windows NT 3.51 ou o mais recente Service Pack para Windows NT 4.0

A Microsoft está empenhada em fornecer a melhor protecção possível contra estes ataques de no sistema operativo Windows NT e disponibilizou um número de alterações para o TCP/IP componentes disponíveis para os clientes em resposta a esta ameaça.

Esta chave global foi concebido para proteger contra ataques e define as chaves mencionadas posteriormente no artigo conhecidos valores eficaz. Esta chave evita ter de estimativa de administrador sobre os valores seriam oferecem protecção a maior parte dos. É vivamente recomendado que as seguintes chaves globais ser utilizado:

SynAttackProtect
Chave: Tcpip\Parameters
Tipo de valor: REG_DWORD
Intervalo válido: 0, 1, 2
0 (sem protecção synattack)
1 (reduzido tentativas de retransmissão e atrasadas criação RCE (entrada de cache de rota) se as definições de TcpMaxHalfOpen e TcpMaxHalfOpenRetried foram satisfeitas.)
2 (juntamente com 1 que é efectuada uma indicação atrasada para Winsock.)

Nota : quando o sistema localiza próprio sofrer um ataque as seguintes opções qualquer socket já não pode ser activado: windows sScalable (RFC 1323) e por adaptador configurado parâmetros de TCP (RTT inicial, tamanho da janela). Isto acontece porque quando protecção está a funcionar a entrada de cache de rota não é consultada antes de SYN-ACK é enviado e as opções de Winsock não estão disponíveis nesta fase da ligação.

Predefinição: 0 (FALSO)
Recomendação: 2
Descrição: Synattack protecção envolve reduzindo a quantidade de retransmissões de SYN-ACKS, que irá reduzir o tempo para os quais recursos têm de permanecer atribuída. A atribuição de recursos de entrada de cache de rota é atrasada até é estabelecida uma ligação. Se synattackprotect = 2, então a ligação na indicação para AFD é atrasada até que o handshake tridireccional esteja concluído. Também repare que as acções efectuadas pelo mecanismo de protecção só ocorrem se as definições de TcpMaxHalfOpen e TcpMaxHalfOpenRetried forem excedidas.

Nota : as seguintes chaves só devem ser alteradas se a chave acima global tem comprovada seja ineficaz ou limites de recurso específico que está a ser acerta.

As alterações estão listadas aqui:
*******************************************************************
*  1. Tcpip.sys times out half-open connections faster            *
*******************************************************************
				
foi produzida uma nova versão do Tcpip.sys que lhe permite controlar o número de vezes pedido de uma resposta a uma ligação TCP (SYN-ACK) será retransmitido. Controlo é processado através de um novo parâmetro de registo:
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \Tcpip
      \Parameters
       \TcpMaxConnectResponseRetransmissions
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 2
				
o valor predefinido para este parâmetro agora é 3. A tabela seguinte mostra o comportamento de TCP/IP do Windows NT 4.0 para vários valores deste parâmetro:
Value  Retransmission Times  Elapsed Time  Comments
3      3, 6, and 12 seconds  45 seconds    Cleanup 24 secs after last retx
2      3, and 6 seconds      21 seconds    Cleanup 12 secs after last retx
1      3 seconds             9  seconds    Cleanup 6  secs after last retx
				
alterações este parâmetro a hora predefinida que leva a limpar uma ligação de TCP abrir metade de 189 segundos a 45 segundos e fornece mais granular de controlo para o administrador. Um site sofrer um ataque muito pode definir o valor como baixa como "1". Um valor de "0" também é válido; no entanto se este parâmetro for definido como 0, SYN ACK não será retransmitido sequer e irá exceder o tempo limite de 3 segundos. Com o valor neste baixo, tentativas de ligação legítimo de clientes distantes poderão falhar.
*******************************************************************
*  2. NetBT has a Higher, Configurable Backlog                    *
*******************************************************************
				
NetBT (NetBIOS através de TCP/IP) utiliza a porta 139 do TCP e é utilizada por serviços de rede, partilha de ficheiros e impressoras. Versão 3.51 e 4.0 NetBT tem um "backlog" da ligação blocos disponíveis que é dois mais um número incremental consoante as clientes NetBT (tais como o redireccionador, servidor e todas as aplicações NetBIOS em execução). Num servidor comum, este número será 7-11. Uma nova versão do NetBT foi produzida que atribui automaticamente mais blocos de ligação conforme necessário, de forma configurável.

Num evento de ligação, agora verifica ver se o número de blocos livres for inferior a 2 e, em caso afirmativo, adiciona o número de blocos "aumentar" onde "aumentar" é configurável no registo tal como mostrado aqui:
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \NetBt
      \Parameters
       \BacklogIncrement
           Value Type: REG_DWORD
           Valid Range: 1-0x14  (1-20 decimal)
           Default: 3
				
78 bytes de memória consumida por cada bloco de ligação. O número total de blocos de ligação que pode ser distribuída pelo NetBT é também registo configurável:
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \NetBt
      \Parameters
       \MaxConnBackLog
           Value Type: REG_DWORD
           Valid Range: 1-0x9c40 (1-40,000 decimal)
           Default: 1000
				
MaxConnBackLog 1000, por predefinição mas pode ser definido como elevado 40.000. Ligação blocos são "Limpar" ou reciclados quando SYN-ACK retransmissão temporizador expira e TCP falha a tentativa de ligação.
*******************************************************************
*  3. Afd.sys has been modified to withstand large numbers of     *
*     "half-open" connections efficiently                         *
*******************************************************************
				
aplicações dos sockets do Windows como servidores de ftp e servidores web têm as respectivas tentativas de ligação processadas por Afd.sys. Foi modificada Afd.sys suportar grande número de ligações no estado de "abertura de média" sem negar o acesso aos clientes legítimos. Isto é conseguido, permitindo que o administrador para configurar um backlog dinâmico.

A nova versão do Afd.sys suporta quatro parâmetros de registo novo que podem ser utilizados para controlar o comportamento backlog dinâmico.

EnableDynamicBacklog é um parâmetro global para activar ou desactivar backlog dinâmico. Assume como predefinição 0 (desactivado) e esta definição não fornece nenhuma alteração das versões existentes. Definir para 1 permite a nova funcionalidade dinâmica backlog.
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \EnableDynamicBacklog
           Value Type: REG_DWORD
           Valid Range: 0,1
           Default: 0
           Suggested value for a system under heavy attack: 1
				
MinimumDynamicBacklog controla o número mínimo de ligações livres permitidas num ponto final da escuta. Em se o número de ligações livres descer abaixo deste valor, em seguida, um thread é fila para criar ligações livres adicionais. Este valor deverá não ser feita demasiado grande, como o código de backlog dinâmico activa sempre que o número de ligações livres desce abaixo este valor. Demasiado grande um valor pode originar uma redução de desempenho.
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \MinimumDynamicBacklog
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 0
           Suggested value for a system under heavy attack: 20
				
MaximumDynamicBacklog controla o número máximo de ligações "quasi-free" permitidas num ponto final da escuta. Ligações "Quasi-free" incluem o número de ligações livres mais as ligações num estado half-ligado (SYN_RECEIVED). Não é efectuada nenhuma tentativa para criar ligações livres adicionais se se o fizer, iria exceder este valor.
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \MaximumDynamicBacklog
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 0
           Suggested value for a system under heavy attack: Memory
           dependent. We recommend that this value does not exceed 20000 (decimal). This prevents exhaustion of the non-paged pool when under attack. 
				
DynamicBacklogGrowthDelta controla o número de ligações livres para criar quando são necessárias ligações adicionais. Tenha cuidado com este valor, como um valor elevado poderá conduzir a atribuições ligação livre explosivo.
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \DynamicBacklogGrowthDelta
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 0
           Suggested value for a system under heavy attack: 10 (0xa)
				
MaximumDynamicBacklog,
Para tirar partido das alterações para Afd.sys, aplicações de sockets do Windows tem de pedir especificamente um backlog superior ao valor configurado para MinimumDynamicBacklog quando estes emitem os respectivos chamada listen(). Aplicações da Microsoft como o Internet Information Server (que tem um backlog predefinido de 25) são configuráveis. Detalhes específicos da aplicação estão disponíveis a partir da Microsoft Knowledge Base em:
http://support.microsoft.com
Os controladores modificados para o Windows NT 3.51 e instruções para instalar estão disponíveis de canais de suporte da Microsoft ou a partir da seguinte localização de Internet:
FTP://FTP.Microsoft.com/bussys/Winnt /winnt-public/fixes/usa/nt351/hotfixes-postsp5/syn-attack

Ponto Da Situação

Windows NT 4.0

Este problema foi corrigido no mais recente Microsoft Windows NT dos Estados Unidos Service Pack para Windows NT 4.0. Para obter informações sobre como obter o Service Pack, consulta a seguinte palavra na base de dados de conhecimento da Microsoft:
SERVPACK

Windows NT 3.51

A Microsoft confirmou que este problema pode resultar num certo grau de vulnerabilidade da segurança no Windows NT versão 3.51. Está agora disponível uma correcção suportada totalmente; no entanto,-não tem foi totalmente regressão testado e só deve ser aplicada a sistemas determinados para correrem o risco de ataque. Avalie Consulte acessibilidade física do sistema, rede e conectividade da Internet e outros factores para determinar o grau de risco para o sistema. Se o sistema for suficientemente susceptíveis, a Microsoft recomenda que aplica esta correcção. Caso contrário, aguarde o próximo Windows NT service pack, que conterá esta correcção. Contacte o suporte técnico da Microsoft para obter mais informações.

Mais Informação

Adicionar estas alterações de registo pode ter um efeito adverso num cluster do Microsoft Exchange.

Microsoft Exchange Cluster (Exres.dll) inicia frequentemente ligações para as portas de SMTP, IMAP, POP3 e HTTP para testar a disponibilidade. Os testes são semelhantes a uma sessão de telnet à porta 110, 143, 25 ou 80.

Se os testes com êxito, o cluster sabe que os serviços estão disponíveis para utilizadores e marca-as como "Activo". Se os testes não fazem com êxito, o administrador de clusters marca o recurso como offline no administrador de clusters e regista um evento no registo de aplicações. O evento é:

Tipo de evento: erro
Origem do evento: MSExchangeCluster
Categoria do evento: serviços
ID do evento: 2074
Data: date
Tempo: time
Utilizador: N/d
Computador: computer name
Descrição: SMTP Virtual Server Instance-(125-VS2-NAME): o serviço de cluster falha isalive procurar o recurso.

Propriedades

Artigo: 142641 - Última revisão: 20 de fevereiro de 2007 - Revisão: 5.3
A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
Palavras-chave: 
kbmt kbnetwork KB142641 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 142641

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com