Slide 1

Slide 1 text

(Still) Exploiting TCP Timestamps Veit N. Hailperin1 1scip AG Hack in Paris, June 2015 Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 1 / 47

Slide 2

Slide 2 text

About Me Security Consultant & Researcher @ scip AG @fenceposterror Bug in the matrix Disclaimer I will use IP on the slides synonym to IP address for space reasons. Timestamps allows refer to TCP timestamps if not otherwise noted. Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 2 / 47

Slide 3

Slide 3 text

Outline 1 What are TCP Timestamps? 2 A History of Exploitation and Failed Remediation 3 More Fun with TCP Timestamps 4 What Now? Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 3 / 47

Slide 4

Slide 4 text

TCP Timestamps Introduced in 1992 Described in RFC1323 Extension to provide PAWS and improved RTTM A constant, strictly monotonous increasing number Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 4 / 47

Slide 5

Slide 5 text

A TCP Timestamp Kind: 8 Length: 10 bytes +-------+-------+---------------------+---------------------+ |Kind=8 | 10 | TS Value (TSval) |TS Echo Reply (TSecr)| +-------+-------+---------------------+---------------------+ 1 1 4 4 Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 5 / 47

Slide 6

Slide 6 text

Attack Vector - Timestamp 2001 - Uptime Calculation Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 6 / 47

Slide 7

Slide 7 text

Attack Vector - Timestamp 2001: Uptime Calculation Timestamp != Uptime Multiple timestamps ⇒ frequency of host ⇒ timestamp & frequency ⇒ uptime Uptime related to patch level Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 7 / 47

Slide 8

Slide 8 text

Attack Vector - Timestamp 2001: Uptime Calculation - Remediation Disable timestamps (bad idea) Randomize timestamps at boot (problems: lack of entropy, determination of initial value easy) Start each new TCP Connection with 0 (problem: still PAWS) Timestamp per IP/port pair (problem: only a question of time) More problems: Might break syn flood protection under linux Timestamp counter for each IP Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 8 / 47

Slide 9

Slide 9 text

Attack Vector - Timestamp 2015: Uptime Calculation Still possible1 . . . Also: timestamps observed over a longer period also lets us know their habits, e.g. when shutting down, when booting, . . . 1It’s a tiny bit more tricky for a small group of systems Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 9 / 47

Slide 10

Slide 10 text

Attack Vector - Timestamp 2005 - Host Identification Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 10 / 47

Slide 11

Slide 11 text

Attack Vector - Timestamp 2005: Host Identification =⇒ Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 11 / 47

Slide 12

Slide 12 text

Attack Vector - Timestamp 2005: Host Identification - Remediation Randomizing/Zeroing timestamps (loss of functionality) Use a different counter for each connection and initialize with 0 (problem: PAWS) Like above but with randomized start (problem: PAWS) Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 12 / 47

Slide 13

Slide 13 text

Attack Vector - Timestamp 2015: Host Identification Still possible2. . . 2It’s a tiny bit more tricky for a small group of systems Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 13 / 47

Slide 14

Slide 14 text

Attack Vector - Clock Skew Let’s assume we did fix the aforementioned issues, are we done? no :( (Mainly) due to physical properties (heat, fabrication, . . . ) clock isn’t exact This slight imperfection of clock can be used as identifier (clock skew) Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 14 / 47

Slide 15

Slide 15 text

Attack Vector - Clock Skew 2005 - Host Identification Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 15 / 47

Slide 16

Slide 16 text

Attack Vector - Clock Skew 2005: Host Identification Possible even if host/port tuple TCP timestamp solution got implemented Multiple IPs virtually hosted not possible with timestamp (because TS per OS) With clock skew not a problem, because they share hardware Interesting to track users Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 16 / 47

Slide 17

Slide 17 text

Attack Vector - Clock Skew 2005: Host Identification - Remediation Reduce device’s clock skew (difficult!) Mask clock skew by multiplying timestamp with random value (breaks RFC) mod skewmask: Mask clock skew with constant Encrypt timestamps (breaks RFC) Table mapping between random 32-bit values and internal representation of real timestamps (breaks RFC) Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 17 / 47

Slide 18

Slide 18 text

Attack Vector - Clock Skew 2015: Host Identification Still possible3 . . . 3Some honeypots try to avoid it Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 18 / 47

Slide 19

Slide 19 text

Attack Vector - Clock Skew 2005 - Network Layout Information Gathering Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 19 / 47

Slide 20

Slide 20 text

Attack Vector - Clock Skew 2005: Network Layout Information Gathering Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 20 / 47

Slide 21

Slide 21 text

Attack Vector - Clock Skew 2005: Network Layout Information Gathering - Remediation Same as for host identification Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 21 / 47

Slide 22

Slide 22 text

Attack Vector - Clock Skew 2015: Network Layout Information Gathering Still possible . . . Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 22 / 47

Slide 23

Slide 23 text

Attack Vector - Clock Skew 2006 - Reveal Hidden Services Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 23 / 47

Slide 24

Slide 24 text

Attack Vector - Clock Skew 2006: Reveal Hidden Services Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 24 / 47

Slide 25

Slide 25 text

Attack Vector - Clock Skew 2006: Reveal Hidden Services - Remediation Dummy Traffic Fixed QoS for all connections ⇒ No anonymous stream affects another (problem: potential DoS if connections idle) Oven Controlled Crystal Oscillators (OCXO) Always run at maximum CPU load Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 25 / 47

Slide 26

Slide 26 text

Attack Vector - Clock Skew 2015: Reveal Hidden Services Still possible . . . Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 26 / 47

Slide 27

Slide 27 text

Possible Targets Users Servers Conclusion More or less everyone/everything is affected Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 27 / 47

Slide 28

Slide 28 text

More Fun with TCP Timestamps 2015 - Reveal Active-Active Loadbalancing Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 28 / 47

Slide 29

Slide 29 text

More Fun with TCP Timestamps 2015 Load-Balanced Check! Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 29 / 47

Slide 30

Slide 30 text

More Fun with TCP Timestamps 2015 Load-Balanced Check! Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 30 / 47

Slide 31

Slide 31 text

More Fun with TCP Timestamps 2007/2015 - Network Layout Information Gathering Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 31 / 47

Slide 32

Slide 32 text

More Fun with TCP Timestamps 2015: Network Layout Information Gathering DEMO4 4https://github.com/luh2/timestamps Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 32 / 47

Slide 33

Slide 33 text

More Fun with TCP Timestamps 2015: Network Layout Information Gathering Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 33 / 47

Slide 34

Slide 34 text

More Fun with TCP Timestamps 2015: Network Layout Information Gathering Count IPs behind a NAT (if you are the receiving end of connections) (2007) Identify hosts behind a NAT (if you have multiple ports open) (2015) TCP timestamp is the same ⇒ services on same host TCP timestamp is different ⇒ services on different hosts Some ports answer with no timestamp ⇒ Can’t tell Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 34 / 47

Slide 35

Slide 35 text

More Fun with TCP Timestamps 2015: Network Layout Information Gathering No tool that exploits this knowledge Does someone want to write a Nmap script? Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 35 / 47

Slide 36

Slide 36 text

More Fun with TCP Timestamps 2007/2015: Network Layout Information Gathering - Remediation Increment randomly (defeats RTTM) Rewrite timestamp on NAT device Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 36 / 47

Slide 37

Slide 37 text

More Fun with TCP Timestamps 2015 - Improve OS Fingerprints of NAT-ed Devices Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 37 / 47

Slide 38

Slide 38 text

More Fun with TCP Timestamps 2015 Improve OS Fingerprints Repeat: What is a OS Fingerprint? Nmap doesn’t assume aforementioned scenario, but direct fingerprinting Use knowledge which ports belong together Don’t use closed ports Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 38 / 47

Slide 39

Slide 39 text

More Fun with TCP Timestamps 2015 Improve Fingerprints! DEMO Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 39 / 47

Slide 40

Slide 40 text

Proposed Solutions Terminate TCP connection at firewall Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 40 / 47

Slide 41

Slide 41 text

Why Haven’t We Fixed This? Quote: Kohno et al. [. . . ] it is possible to extract security-relevant signals from data canonically considered to be noise. ”There are other ways to gather the same intel”-excuse Not considered important Not many good solutions so far Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 41 / 47

Slide 42

Slide 42 text

More Timestamps ICMP Timestamp (CVE-1999-0524) TLS Timestamp (Tor Bug #7277) HTTP Timestamp (Murdoch, 2013) . . . Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 42 / 47

Slide 43

Slide 43 text

Summary of (presented) Attacks TCP Timestamps 2001 - Uptime Calculation 2005 - Host Identification 2015 - Network Layout Information Gathering 2015 - Reveal Active-Active Loadbalancing 2015 - Improve OS Fingerprints of NAT-ed Devices Clock Skew 2005 - Host Identification / User Tracking 2005 - Network Layout Information Gathering 2006 - Reveal Hidden Services Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 43 / 47

Slide 44

Slide 44 text

What Now? Good solutions/suggestions welcome! Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 44 / 47

Slide 45

Slide 45 text

For Further Reading B. Ransford and E. Rosensweig. SkewMask: Frustrating ClockSkew Fingerprinting Attempts. December, 2007 T. Kohno, A. Broid and K. Claffy. Remote physical device fingerprinting IEEE Transactions on Dependable and Secure Computing, vol. 2, no. 2, pp. 93–108, May 2005. S. Sharma, A. Hussain and H. Saran. Experience with heterogenous clock-skew based device fingerprinting Proceeding LASER ’12 Proceedings of the 2012 Workshop on Learning from Authoritative Security Experiment Results, Pages 9-18. B. McDanel. TCP Timestamping - Obtaining System Uptime Remotely http://www.securiteam.com/securitynews/5NP0C153PI.html, March 14, 2001 Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 45 / 47

Slide 46

Slide 46 text

For Further Reading 2 V. Jacobson, R. Braden and D. Borman. TCP Extensions for High Performance. Network Working Group, Request for Comments: 1323, May 1992 S. Bellovin. Defending Against Sequence Number Attacks. Network Working Group, Request for Comments: 1948, May 1996 M. Silbersack. Improving TCP/IP security through randomization without sacrificing interoperability. University of Wisconsin – Milwaukee, 2005 S. Murdoch. Hot or not: revealing hidden services by their clock skew. Proceeding CCS ’06 Proceedings of the 13th ACM conference on Computer and communications security, Pages 27 - 36 Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 46 / 47

Slide 47

Slide 47 text

So Long and Thanks For All The Fish Me: @fenceposterror Thanks to people who inspired or helped: Krzysztof Kotowicz, Stefan Friedli, Max Hailperin Veit N. Hailperin (scip AG) (Still) Exploiting TCP Timestamps HiP 2015 47 / 47