Unveiling Your Keystrokes
Unveiling Your Keystrokes
Unveiling Your Keystrokes
Cache-based Side-channel
Attack on Graphics Libraries
Daimeng Wang, Ajaya Neupane, Zhiyun Qian,
Nael Abu−Ghazaleh, Srikanth V. Krishnamurthy,
Edward J. M. Colbert † , Paul Yu‡
University of California Riverside, Virginia Tech † ,
U. S. Army Research Lab ‡
Introduction
Graphics is essential
Graphic rendering is complex
gdk, gtk, pixman, freetype, cairo, skia, hwui, …
0x53
Render Render
Start Finish
Render Render
Start Finish
Render Render
Start Finish
Render Render
Start Finish
Attacker’s capabilities
Access to same model/version of victim’s hardware and graphic
libraries
Offline profiling
Launch unprivileged process alongside victim process
Online attack
… …
libA.so
renderStart()
renderEnd() libA.so
renderStart()
renderEnd()
… …
2/26/2019 NDSS 2019 17
Performing Measurement
Physical Memory
… …
libA.so renderStart()
renderStart() renderEnd()
renderEnd() libA.so
renderStart()
renderEnd()
… …
2/26/2019 NDSS 2019 18
Performing Measurement
Physical Memory
… …
libA.so renderStart()
renderStart() renderEnd()
renderEnd() libA.so
renderStart()
renderEnd()
CPU LLC …
…
2/26/2019 NDSS 2019 19
Flush+Reload
Physical Memory
…
…
libA.so renderStart()
…
renderStart() renderEnd()
…
renderEnd() libA.so
renderStart()
renderEnd()
CPU LLC
… …
2/26/2019 NDSS 2019 20
Flush+Reload 𝑡𝑠𝑡𝑎𝑟𝑡
Physical Memory
…
…
libA.so renderStart()
…
renderStart() renderEnd()
…
renderEnd() libA.so
renderStart()
renderEnd()
CPU LLC
… …
2/26/2019 NDSS 2019 21
Flush+Reload 𝑡𝑠𝑡𝑎𝑟𝑡 𝑡𝑒𝑛𝑑
Physical Memory 𝑡𝑟𝑒𝑛𝑑𝑒𝑟 = 𝑡𝑒𝑛𝑑 − 𝑡𝑠𝑡𝑎𝑟𝑡
…
…
libA.so renderStart()
…
renderStart() renderEnd()
…
renderEnd() libA.so
renderStart()
renderEnd()
CPU LLC
… …
2/26/2019 NDSS 2019 22
Measurement Resolution
Onboard
~ 600ns per round
~ 350,000ns rendering
Render Render
Start Finish
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
a
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
b
𝑎0 𝑎1 𝑎2 𝑎3 𝑎4 𝑎5
Keypress Prediction
Classify measurement with confidence
Acknowledgement
U.S. Army Research Laboratory Cyber Security Collaborative
Research Alliance