HowTo Guides

Warum Sie TCP Timestamps deaktivieren sollten

Über TCP Timestamps kann ein Angreifer Rückschlüsse auf die Laufzeit eines Systems machen. Er sieht also, wann das System das letzte Mal neu gestartet wurde. Dies wiederum lässt Schlüsse auf den Patchlevel zu.

Dies ist ein klassischer Informationsabfluss und sollte verhindert werden:

Hintergrund

Zeitbasierte Informationen können via TCP und ICMP entnommen werden. Dieser Artikel bezieht sich nur auf TCP Timestamps.

TCP Timestamps sind im RFC 1323 definiert. Diese Timestamps können dazu beitragen, dass TCP Packete beim Empfänger zeitlich sortiert werden können. Die Timestamp Information ist üblicherweise nicht abgeglichen mit der Systemuhr. Stattdessen wird mit ein relativer Wert verwendet, der beim Booten auf 0 gesetzt wird und in einer bestimmten Frequenz (z.B. 100Hz) erhöht wird.

Beispiel

Im folgenden Beispiel wird ein SYN Paket an einen offenen Port geschickt. Daraus lässt sich ablesen, dass der Host vor 7 Stunden neu gestartet wurde:

# hping3 -S -p 443  --tcp-timestamp
len=56 ip= ttl=119 DF id=13843 sport=443 flags=SA seq=1 win=8192 rtt=12.6 ms
  TCP timestamp: tcpts=2672218
  HZ seems hz=100
  System uptime seems: 0 days, 7 hours, 25 minutes, 22 seconds