Partilhar via


Ataques de repetição

Um ataque de repetição ocorre quando um invasor copia um fluxo de mensagens entre duas partes e reproduz o fluxo para uma ou mais partes. A menos que mitigado, os computadores sujeitos ao ataque processam o fluxo como mensagens legítimas, resultando em uma série de consequências ruins, como ordens redundantes de um item.

As ligações podem estar sujeitas a ataques de reflexão

Os ataques de reflexão são reproduções de mensagens de volta para um remetente como se viessem do recetor como resposta. A deteção de repetição padrão no mecanismo WCF (Windows Communication Foundation) não lida automaticamente com isso.

Os ataques de reflexão são atenuados por padrão porque o modelo de serviço WCF adiciona uma ID de mensagem assinada para solicitar mensagens e espera um cabeçalho assinado relates-to nas mensagens de resposta. Consequentemente, a mensagem de solicitação não pode ser repetida como resposta. Em cenários de mensagem confiável segura (RM), os ataques de reflexão são atenuados porque:

  • Os esquemas de mensagem de resposta create sequence e create sequence são diferentes.

  • Para sequências simplex, as mensagens de sequência que o cliente envia não podem ser reproduzidas porque o cliente não consegue entender essas mensagens.

  • Para sequências duplex, as duas IDs de sequência devem ser exclusivas. Assim, uma mensagem de sequência de saída não pode ser reproduzida como uma mensagem de sequência de entrada (todos os cabeçalhos e corpos de sequência também são assinados).

As únicas ligações suscetíveis a ataques de reflexão são aquelas sem WS-Addressing: ligações personalizadas que têm o WS-Addressing desabilitado e usam a segurança baseada em chave simétrica. O BasicHttpBinding não usa WS-Addressing por padrão, mas não usa segurança baseada em chave simétrica de uma forma que permita que ele seja vulnerável a esse ataque.

A atenuação para associações personalizadas é não estabelecer contexto de segurança ou exigir cabeçalhos WS-Addressing.

Web farm: o invasor reproduz a solicitação para vários nós

Um cliente usa um serviço que é implementado em uma Web farm. Um invasor reproduz uma solicitação que foi enviada a um nó no farm para outro nó no farm. Além disso, se um serviço for reiniciado, o cache de repetição será liberado, permitindo que um invasor reproduza a solicitação. (O cache contém valores de assinatura de mensagem usados e vistos anteriormente e impede reproduções para que essas assinaturas possam ser usadas apenas uma vez. Os caches de repetição não são compartilhados em uma Web farm.)

As atenuações incluem:

  • Use a segurança do modo de mensagem com tokens de contexto de segurança com monitoração de estado (com ou sem conversa segura habilitada). Para obter mais informações, consulte Como criar um token de contexto de segurança para uma sessão segura.

  • Configure o serviço para usar a segurança no nível de transporte.

Consulte também