1、SnailLoadAnyone on the Internet Can Learn What Youre DoingStefan Gast,Daniel Gruss2024-08-07Graz University of Technology1Stefan Gast,Daniel GrussWho are we?Stefan GastPhD StudentGraz University of Technology notbobbytablesinfosec.exchange?notbobbytables?https:/stefangast.eu/Daniel GrussProfessorGra
2、z University of Technology lavadosinfosec.exchange?lavados?https:/gruss.cc/2Stefan Gast,Daniel GrussWho are we?Stefan GastPhD StudentGraz University of Technology notbobbytablesinfosec.exchange?notbobbytables?https:/stefangast.eu/Daniel GrussProfessorGraz University of Technology lavadosinfosec.exch
3、ange?lavados?https:/gruss.cc/2Stefan Gast,Daniel GrussSnailLoadWe can tell which website you visit,without running anything on your system:102030405060708090 100102030405060708090100PredictionWebsite010203040 503Stefan Gast,Daniel GrussWhat are Side Channels?4Stefan Gast,Daniel GrussWhat are Side Ch
4、annels?Obtain meta-data and derive data from it4Stefan Gast,Daniel GrussSide Channel Example5Stefan Gast,Daniel GrussTiming Side Channels6Stefan Gast,Daniel GrussLocal Timing Attack100200300400101104107Access time CPU cyclesNumber of accessesCache Hits Local code execution code to use secrets code t
5、o measure time code to exfiltrate data7Stefan Gast,Daniel GrussLocal Timing Attack100200300400101104107Access time CPU cyclesNumber of accessesCache HitsCache Misses Local code execution code to use secrets code to measure time code to exfiltrate data7Stefan Gast,Daniel GrussLocal Timing Attack10020
6、0300400101104107Access time CPU cyclesNumber of accessesCache HitsCache Misses Local code execution code to use secrets code to measure time code to exfiltrate data7Stefan Gast,Daniel GrussLocal Timing Attack100200300400101104107Access time CPU cyclesNumber of accessesCache HitsCache Misses Local co
7、de execution code to use secrets code to measure time code to exfiltrate data7Stefan Gast,Daniel GrussLocal Timing Attack100200300400101104107Access time CPU cyclesNumber of accessesCache HitsCache Misses Local code execution code to use secrets code to measure time code to exfiltrate data7Stefan Ga
8、st,Daniel GrussLocal Timing Attack100200300400101104107Access time CPU cyclesNumber of accessesCache HitsCache Misses Local code execution code to use secrets code to measure time code to exfiltrate data7Stefan Gast,Daniel GrussLocal Timing Attack100200300400101104107Access time CPU cyclesNumber of
9、accessesCache HitsCache Misses Local code execution code to use secrets code to measure time code to exfiltrate data7Stefan Gast,Daniel GrussRemote TimingRemote in“remote adversary”can mean different things attack from a different chip?JavaScript?network-exposed API?local WiFi?8Stefan Gast,Daniel Gr
10、ussRemote TimingRemote in“remote adversary”can mean different things attack from a different chip?JavaScript?network-exposed API?local WiFi?8Stefan Gast,Daniel GrussRemote TimingRemote in“remote adversary”can mean different things attack from a different chip?JavaScript?network-exposed API?local WiF
11、i?8Stefan Gast,Daniel GrussRemote TimingRemote in“remote adversary”can mean different things attack from a different chip?JavaScript?network-exposed API?local WiFi?8Stefan Gast,Daniel GrussRemote TimingRemote in“remote adversary”can mean different things attack from a different chip?JavaScript?netwo
12、rk-exposed API?local WiFi?8Stefan Gast,Daniel GrussState of the Art local code execution fingerprint videos control local gateway precisely monitor network traffic Tor gateway estimate network traffic application fingerprinting website fingerprinting video fingerprinting9Stefan Gast,Daniel GrussStat
13、e of the Art local code execution fingerprint videos control local gateway precisely monitor network traffic Tor gateway estimate network traffic application fingerprinting website fingerprinting video fingerprinting9Stefan Gast,Daniel GrussState of the Art local code execution fingerprint videos co
14、ntrol local gateway precisely monitor network traffic Tor gateway estimate network traffic application fingerprinting website fingerprinting video fingerprinting9Stefan Gast,Daniel GrussState of the Art local code execution fingerprint videos control local gateway precisely monitor network traffic T
15、or gateway estimate network traffic application fingerprinting website fingerprinting video fingerprinting9Stefan Gast,Daniel GrussState of the Art local code execution fingerprint videos control local gateway precisely monitor network traffic Tor gateway estimate network traffic application fingerp
16、rinting website fingerprinting video fingerprinting9Stefan Gast,Daniel GrussState of the Art local code execution fingerprint videos control local gateway precisely monitor network traffic Tor gateway estimate network traffic application fingerprinting website fingerprinting video fingerprinting9Ste
17、fan Gast,Daniel GrussInternet Access Technologies DSL,Fiber,LTE,5G:different throughput backbone connection has orders of magnitude higher throughput buffering before last mile is necessary!10Stefan Gast,Daniel GrussInternet Access Technologies DSL,Fiber,LTE,5G:different throughput backbone connecti
18、on has orders of magnitude higher throughput buffering before last mile is necessary!10Stefan Gast,Daniel GrussInternet Access Technologies DSL,Fiber,LTE,5G:different throughput backbone connection has orders of magnitude higher throughput buffering before last mile is necessary!10Stefan Gast,Daniel
19、 GrussPacket BufferingFigure 1:Connection idleFigure 2:Connection busy.Figure 3:Bufferbloat11Stefan Gast,Daniel GrussPacket BufferingFigure 1:Connection idleFigure 2:Connection busy.Figure 3:Bufferbloat11Stefan Gast,Daniel GrussPacket BufferingFigure 1:Connection idleFigure 2:Connection busy.Figure
20、3:Bufferbloat11Stefan Gast,Daniel GrussPacket BufferingFigure 1:Connection idleFigure 2:Connection busy.Figure 3:Bufferbloat11Stefan Gast,Daniel GrussNetwork Activity Causes Latency SRTT msFigure 4:Same machine pinging RTT msFigure 5:Different machine sharing the same internet connection pinging 8.8
21、.8.812Stefan Gast,Daniel GrussNetwork Activity Causes Latency SRTT msFigure 4:Same machine pinging RTT msFigure 5:Different machine sharing the same internet connection pinging 8.8.8.812Stefan Gast,Daniel GrussIdle and Busy Round-Trip-Times020040060002,0004,000#Casesidlewith downloadFigure 6:RTT ms,
22、ADSL-1,50Mbit/s020040060002,0004,000#Casesidlewith downloadFigure 7:RTT ms,LTE,75Mbit/s2030405002,0004,000#Casesidlewith downloadFigure 8:RTT ms,FTTH-1,80Mbit/s2030405002,0004,000#Casesidlewith downloadFigure 9:RTT ms,Cable,80Mbit/s13Stefan Gast,Daniel GrussIdle and Busy Round-Trip-Times020040060002
23、,0004,000#Casesidlewith downloadFigure 6:RTT ms,ADSL-1,50Mbit/s020040060002,0004,000#Casesidlewith downloadFigure 7:RTT ms,LTE,75Mbit/s2030405002,0004,000#Casesidlewith downloadFigure 8:RTT ms,FTTH-1,80Mbit/s2030405002,0004,000#Casesidlewith downloadFigure 9:RTT ms,Cable,80Mbit/s13Stefan Gast,Daniel
24、 GrussIdle and Busy Round-Trip-Times020040060002,0004,000#Casesidlewith downloadFigure 6:RTT ms,ADSL-1,50Mbit/s020040060002,0004,000#Casesidlewith downloadFigure 7:RTT ms,LTE,75Mbit/s2030405002,0004,000#Casesidlewith downloadFigure 8:RTT ms,FTTH-1,80Mbit/s2030405002,0004,000#Casesidlewith downloadFi
25、gure 9:RTT ms,Cable,80Mbit/s13Stefan Gast,Daniel GrussIdle and Busy Round-Trip-Times020040060002,0004,000#Casesidlewith downloadFigure 6:RTT ms,ADSL-1,50Mbit/s020040060002,0004,000#Casesidlewith downloadFigure 7:RTT ms,LTE,75Mbit/s2030405002,0004,000#Casesidlewith downloadFigure 8:RTT ms,FTTH-1,80Mb
26、it/s2030405002,0004,000#Casesidlewith downloadFigure 9:RTT ms,Cable,80Mbit/s13Stefan Gast,Daniel GrussIdle and Busy Round-Trip-Times020040060002,0004,000#Casesidlewith downloadFigure 6:RTT ms,ADSL-1,50Mbit/s020040060002,0004,000#Casesidlewith downloadFigure 7:RTT ms,LTE,75Mbit/s2030405002,0004,000#C
27、asesidlewith downloadFigure 8:RTT ms,FTTH-1,80Mbit/s2030405002,0004,000#Casesidlewith downloadFigure 9:RTT ms,Cable,80Mbit/s13Stefan Gast,Daniel GrussAttack SetupsYouTubefastISPEndpointVictimsGatewayVictimsComputer Various scenarios:Compromised websites,malicious ads,emails,and more Different ways a
28、ttackers can exploit network traffic to perform attacks14Stefan Gast,Daniel GrussAttack SetupsYouTubeBottleneckfastISPEndpointVictimsGatewayVictimsComputerslow!Various scenarios:Compromised websites,malicious ads,emails,and more Different ways attackers can exploit network traffic to perform attacks
29、14Stefan Gast,Daniel GrussAttack SetupsYouTubeAttackersHTTP ServerBottleneckfastfastISPEndpointVictimsGatewayVictimsComputerslow!Various scenarios:Compromised websites,malicious ads,emails,and more Different ways attackers can exploit network traffic to perform attacks14Stefan Gast,Daniel GrussAttac
30、k SetupsYouTubeAttackersHTTP ServerBottleneckfastfastISPEndpointVictimsGatewayVictimsComputerslow!Various scenarios:Compromised websites,malicious ads,emails,and more Different ways attackers can exploit network traffic to perform attacks14Stefan Gast,Daniel GrussAttack SetupsYouTubeAttackersHTTP Se
31、rverBottleneckfastfastISPEndpointVictimsGatewayVictimsComputerslow!Various scenarios:Compromised websites,malicious ads,emails,and more Different ways attackers can exploit network traffic to perform attacks14Stefan Gast,Daniel GrussPolling the Servers Send Buffer To Measure RTTsbeginacked false;sta
32、rt get current time();send(sock,b,1,0);repeatif ioctl(sock,SIOCOUTQ)=0 thenacked true;enduntil acked;end get current time();return end start;end15Stefan Gast,Daniel GrussPolling the Servers Send Buffer To Measure RTTsbeginacked false;start get current time();send(sock,b,1,0);repeatif ioctl(sock,SIOC
33、OUTQ)=0 thenacked true;enduntil acked;end get current time();return end start;end15Stefan Gast,Daniel GrussPolling the Servers Send Buffer To Measure RTTsbeginacked false;start get current time();send(sock,b,1,0);repeatif ioctl(sock,SIOCOUTQ)=0 thenacked true;enduntil acked;end get current time();re
34、turn end start;end15Stefan Gast,Daniel GrussPolling the Servers Send Buffer To Measure RTTsbeginacked false;start get current time();send(sock,b,1,0);repeatif ioctl(sock,SIOCOUTQ)=0 thenacked true;enduntil acked;end get current time();return end start;end15Stefan Gast,Daniel GrussPolling the Servers
35、 Send Buffer To Measure RTTsbeginacked false;start get current time();send(sock,b,1,0);repeatif ioctl(sock,SIOCOUTQ)=0 thenacked true;enduntil acked;end get current time();return end start;end15Stefan Gast,Daniel GrussFingerprinting with Machine Learning use machine learning to analyzenetwork traffi
36、c and infer user actions pre-process traces with an STFT KERAS(Tensorflow)closed-world vs.open-worldTable 1:CNN ParametersTypeParametersActivationConv2Dfilters=32,ker-nelsize=5,5,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=64,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=
37、2,2,strides=2,2-Conv2Dfilters=128,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Flatten-Denseoutput size=1024ReLUDenseoutput size=512ReLUDenseoutput size=10Softmax16Stefan Gast,Daniel GrussFingerprinting with Machine Learning use machine learning to analyzenetwork traffic and i
38、nfer user actions pre-process traces with an STFT KERAS(Tensorflow)closed-world vs.open-worldTable 1:CNN ParametersTypeParametersActivationConv2Dfilters=32,ker-nelsize=5,5,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=64,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,str
39、ides=2,2-Conv2Dfilters=128,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Flatten-Denseoutput size=1024ReLUDenseoutput size=512ReLUDenseoutput size=10Softmax16Stefan Gast,Daniel GrussFingerprinting with Machine Learning use machine learning to analyzenetwork traffic and infer us
40、er actions pre-process traces with an STFT KERAS(Tensorflow)closed-world vs.open-worldTable 1:CNN ParametersTypeParametersActivationConv2Dfilters=32,ker-nelsize=5,5,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=64,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,
41、2-Conv2Dfilters=128,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Flatten-Denseoutput size=1024ReLUDenseoutput size=512ReLUDenseoutput size=10Softmax16Stefan Gast,Daniel GrussFingerprinting with Machine Learning use machine learning to analyzenetwork traffic and infer user acti
42、ons pre-process traces with an STFT KERAS(Tensorflow)closed-world vs.open-worldTable 1:CNN ParametersTypeParametersActivationConv2Dfilters=32,ker-nelsize=5,5,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=64,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2
43、Dfilters=128,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Flatten-Denseoutput size=1024ReLUDenseoutput size=512ReLUDenseoutput size=10Softmax16Stefan Gast,Daniel GrussFingerprinting with Machine Learning use machine learning to analyzenetwork traffic and infer user actions pre
44、-process traces with an STFT KERAS(Tensorflow)closed-world vs.open-worldTable 1:CNN ParametersTypeParametersActivationConv2Dfilters=32,ker-nelsize=5,5,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=64,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilter
45、s=128,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Flatten-Denseoutput size=1024ReLUDenseoutput size=512ReLUDenseoutput size=10Softmax16Stefan Gast,Daniel GrussFingerprinting with Machine Learning use machine learning to analyzenetwork traffic and infer user actions pre-proces
46、s traces with an STFT KERAS(Tensorflow)closed-world vs.open-worldTable 1:CNN ParametersTypeParametersActivationConv2Dfilters=32,ker-nelsize=5,5,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=64,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=128,k
47、er-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Flatten-Denseoutput size=1024ReLUDenseoutput size=512ReLUDenseoutput size=10Softmax16Stefan Gast,Daniel GrussFingerprinting with Machine Learning use machine learning to analyzenetwork traffic and infer user actions pre-process trace
48、s with an STFT KERAS(Tensorflow)closed-world vs.open-worldTable 1:CNN ParametersTypeParametersActivationConv2Dfilters=32,ker-nelsize=5,5,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=64,ker-nelsize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Conv2Dfilters=128,ker-nels
49、ize=3,3,strides=1,1ReLUMaxPooling2Dpoolsize=2,2,strides=2,2-Flatten-Denseoutput size=1024ReLUDenseoutput size=512ReLUDenseoutput size=10Softmax16Stefan Gast,Daniel GrussVideo Fingerprinting0204060303234RTT ms0204060303234RTT msFigure 10:Video A,Time in seconds on xaxis0204060303234RTT ms020406030323
50、4RTT msFigure 11:Video B,Time in seconds on xaxis17Stefan Gast,Daniel GrussVideo Fingerprinting0204060303234RTT ms0204060303234RTT msFigure 10:Video A,Time in seconds on xaxis0204060303234RTT ms0204060303234RTT msFigure 11:Video B,Time in seconds on xaxis17Stefan Gast,Daniel GrussVideo Fingerprintin
51、g0204060303234RTT ms0204060303234RTT msFigure 10:Video A,Time in seconds on xaxis0204060303234RTT ms0204060303234RTT msFigure 11:Video B,Time in seconds on xaxis17Stefan Gast,Daniel GrussHow large does the website have to be?100200400800160032006400128002560051200128KiB256KiB512KiB1MiB2MiB4MiB8MiB00
52、0000000000000200008768798862107887988781010910101010109101010910109991081010999101010910Sample Rate(s)Download Size18Stefan Gast,Daniel GrussVideo Fingerprinting on 10 different connectionsPredictionVideo0510PredictionVideo0510PredictionVideo0510PredictionVideo0510PredictionVideo0510PredictionVideo0
53、510PredictionVideo0510PredictionVideo0510PredictionVideo0510PredictionVideo051019Stefan Gast,Daniel GrussTop-100 Open-World Website Fingerprinting102030405060708090 100102030405060708090100PredictionWebsite010203040 5020Stefan Gast,Daniel GrussCross-Connection Website FingerprintingPredictionWebsite
54、051021Stefan Gast,Daniel GrussLive DemoVideo Call Detection050100150200405060Time sRTT msPerson A:75Mbit/s LTEPerson B:200Mbit/s LTE+Video Start/Stop22Stefan Gast,Daniel GrussImpact of Noise on Website FingerprintingPredictionWebsite0510PredictionWebsite0510PredictionWebsite051023Stefan Gast,Daniel
55、GrussContext,Impact,Disclosure SnailLoad is a generic problem of heterogenous networks(with differentthroughputs)Many“remote”attacks can now be transformed to truly remote attacks We disclosed to Google/YouTube they investigated the issue for several weeks concluded that it is a generic problem24Ste
56、fan Gast,Daniel GrussContext,Impact,Disclosure SnailLoad is a generic problem of heterogenous networks(with differentthroughputs)Many“remote”attacks can now be transformed to truly remote attacks We disclosed to Google/YouTube they investigated the issue for several weeks concluded that it is a gene
57、ric problem24Stefan Gast,Daniel GrussContext,Impact,Disclosure SnailLoad is a generic problem of heterogenous networks(with differentthroughputs)Many“remote”attacks can now be transformed to truly remote attacks We disclosed to Google/YouTube they investigated the issue for several weeks concluded t
58、hat it is a generic problem24Stefan Gast,Daniel GrussContext,Impact,Disclosure SnailLoad is a generic problem of heterogenous networks(with differentthroughputs)Many“remote”attacks can now be transformed to truly remote attacks We disclosed to Google/YouTube they investigated the issue for several w
59、eeks concluded that it is a generic problem24Stefan Gast,Daniel GrussContext,Impact,Disclosure SnailLoad is a generic problem of heterogenous networks(with differentthroughputs)Many“remote”attacks can now be transformed to truly remote attacks We disclosed to Google/YouTube they investigated the iss
60、ue for several weeks concluded that it is a generic problem24Stefan Gast,Daniel GrussTake Aways(Black Hat Sound Bytes)Any connection to a remote server can obtain high-resolution traces of youractivity Traces can leak websites and videos watched Throughput difference is the root cause not trivial to
61、 fix25Stefan Gast,Daniel GrussTake Aways(Black Hat Sound Bytes)Any connection to a remote server can obtain high-resolution traces of youractivity Traces can leak websites and videos watched Throughput difference is the root cause not trivial to fix25Stefan Gast,Daniel GrussTake Aways(Black Hat Soun
62、d Bytes)Any connection to a remote server can obtain high-resolution traces of youractivity Traces can leak websites and videos watched Throughput difference is the root cause not trivial to fix25Stefan Gast,Daniel GrussAcknowledgmentsThis research was made possible by generous funding from:Supporte
63、d in part by the European Research Council(ERC project FSSec 101076409)and the Austrian Science Fund(FWF SFB project SPyCoDe10.55776/F85 and FWF project NeRAM I6054).Additional funding was provided by generous gifts from Red Hat,Google,and Intel.Any opinions,findings,and conclusions or recommendations expressed in this paper are those of the authors and do not necessarily reflect the views of the fundingparties.26Stefan Gast,Daniel GrussSnailLoadAnyone on the Internet Can Learn What Youre DoingStefan Gast,Daniel Gruss2024-08-07Graz University of Technology27Stefan Gast,Daniel Gruss