it-swarm-pt.com

Qual o benefício conferido pelo TCP timestamp?

Eu tenho uma descoberta de verificação de segurança que me orienta a desativar TCP timestamps. Entendo os motivos da recomendação: o timestamp pode ser usado para calcular o tempo de atividade do servidor, o que pode ser útil para um invasor (boa explicação sob o título "Timestamps TCP" em http://www.silby.com/eurobsdcon05/eurobsdcon_silbersack.pdf ).

No entanto, entendo que TCP timestamps destinam-se a melhorar TCP desempenho. Naturalmente, na análise de custo/benefício, a degradação do desempenho é muito grande, possivelmente também grande, custo .. Estou tendo dificuldade em entender quanto é provável que haja algum custo de desempenho.Todos os nós na mente do paciente querem ajudar?

43
Paul Degnan

A resposta é expressa de maneira mais sucinta em RFC 1323 - Medição de ida e volta ... A introdução à RFC também fornece algum contexto histórico relevante ...

   Introduction

   The introduction of fiber optics is resulting in ever-higher
   transmission speeds, and the fastest paths are moving out of the
   domain for which TCP was originally engineered.  This memo defines a
   set of modest extensions to TCP to extend the domain of its
   application to match this increasing network capability.  It is based
   upon and obsoletes RFC-1072 [Jacobson88b] and RFC-1185 [Jacobson90b].


  (3)  Round-Trip Measurement

       TCP implements reliable data delivery by retransmitting
       segments that are not acknowledged within some retransmission
       timeout (RTO) interval.  Accurate dynamic determination of an
       appropriate RTO is essential to TCP performance.  RTO is
       determined by estimating the mean and variance of the
       measured round-trip time (RTT), i.e., the time interval
       between sending a segment and receiving an acknowledgment for
       it [Jacobson88a].

       Section 4 introduces a new TCP option, "Timestamps", and then
       defines a mechanism using this option that allows nearly
       every segment, including retransmissions, to be timed at
       negligible computational cost.  We use the mnemonic RTTM
       (Round Trip Time Measurement) for this mechanism, to
       distinguish it from other uses of the Timestamps option.

A penalidade específica de desempenho incorrida ao desativar os carimbos de data e hora dependeria do sistema operacional do servidor específico e de como você o faz (por exemplo, consulte isto documento PSC sobre ajuste de desempenho ). Alguns sistemas operacionais exigem que você ative ou desative todas as opções da RFC1323 de uma só vez ... outras permitem que você ative seletivamente as opções da RFC 1323.

Se a sua transferência de dados é de alguma forma prejudicada pelo seu servidor virtual (talvez você tenha comprado apenas o plano vhost barato), então talvez você não possa usar um desempenho superior de qualquer maneira ... talvez valha a pena desativá-los para tentar. Se o fizer, certifique-se de avaliar o desempenho antes e depois de vários locais diferentes, se possível.

24
Mike Pennington

Para Daniel e qualquer outra pessoa que queira esclarecimentos:

http://www.forensicswiki.org/wiki/TCP_timestamps

"Os carimbos de data/hora TCP são usados ​​para fornecer proteção contra os números de sequência agrupados. É possível calcular o tempo de atividade do sistema (e o tempo de inicialização) analisando TCP (veja abaixo). Esses tempos de execução calculados (e os tempos de inicialização ) pode ajudar na detecção de sistemas operacionais ocultos habilitados para rede (consulte TrueCrypt), vinculando endereços IP e MAC falsificados, vinculando endereços IP a pontos de acesso sem fio Ad-Hoc etc. "

É uma vulnerabilidade de baixo risco indicada na conformidade com o PCI.

14
psouza4

Por que o pessoal de segurança deseja que você desabilite os carimbos de data/hora? Que possível ameaça poderia representar um carimbo de data/hora? Aposto que a tripulação NTP ficaria insatisfeita com isso; ^)

O carimbo de data/hora TCP quando ativado) permitirá que você adivinhe o tempo de atividade de um sistema de destino (nmap v-O. Saber quanto tempo um sistema está ativo permitirá determinar se os patches de segurança que requerem reinicialização foi aplicado ou não.

12
R V Marti

Eu não faria isso.

Sem registro de data e hora, o mecanismo TCP Proteção contra números de sequência encapsulada (PAWS)) não funcionará. Ele usa a opção de data e hora para determinar que a alteração repentina e aleatória do número de sequência é uma quebra (números de sequência de 16 bits) em vez de um pacote insano de outro fluxo.

Se você não tiver isso, suas sessões TCP serão interrompidas de vez em quando, de acordo com a rapidez com que estão usando o espaço numérico da sequência).

Partida RFC 1185:

ARPANET       56kbps       7KBps    3*10**5 (~3.6 days)
DS1          1.5Mbps     190KBps    10**4 (~3 hours)
Ethernet      10Mbps    1.25MBps    1700 (~30 mins)
DS3           45Mbps     5.6MBps    380
FDDI         100Mbps    12.5MBps    170
Gigabit        1Gbps     125MBps    17

Tome 45 Mbps (bem dentro das velocidades 802.11n), então teremos um arroto a cada ~ 380 segundos. Não é horrível, mas irritante.

Por que o pessoal de segurança deseja que você desabilite os carimbos de data/hora? Que possível ameaça poderia representar um carimbo de data/hora? Aposto que a tripulação NTP ficaria insatisfeita com isso; ^)

Hmmmm, eu li algo sobre o uso de TCP para adivinhar a frequência do relógio do remetente? Talvez seja por isso que eles têm medo? Não sei; ^)

Os carimbos de data e hora são menos importantes para a estimativa de RTT do que você imagina. Por acaso, gosto deles porque eles são úteis na determinação do RTT no receptor ou na caixa intermediária. No entanto, de acordo com o canhão do TCP, apenas o remetente precisa desse conhecimento proibido;

O remetente não precisa de carimbos de data/hora para calcular o RTT. t1 = carimbo de data/hora quando enviei o pacote; t2 = carimbo de data/hora quando recebi o ACK. RTT = t2 - t1. Faça um pouco de suavização e pronto!

... Daniel

10
Daniel

Fiz uma pergunta semelhante sobre esse tópico hoje. Minha opinião é a seguinte:

Um sistema sem patch é a vulnerabilidade, não se o invasor pode encontrá-lo facilmente. A solução, portanto, é corrigir seus sistemas regularmente. Desativar TCP não farão nada para tornar seus sistemas menos vulneráveis ​​- é simplesmente segurança através da obscuridade, o que não é segurança nenhuma).

Invertendo a questão, considere criar um script para uma solução que use TCP timestamps para identificar hosts em sua rede que tenham mais tempo de atividade. Esses geralmente serão os seus sistemas mais vulneráveis. Use essas informações para priorizar para garantir que sua rede permaneça protegida.

Não se esqueça que informações como tempo de atividade também podem ser úteis para seus administradores de sistema. :)

8
Oliver Jones