En los últimos años, el término "side-channel" a pasado de ser un concepto únicamente conocido en el sector de hardware hacking a ser un término popular dentro de la industria debido a las vulnerabilidades que se han ido publicando. CRIME, BREACH o FIESTA son claros ejemplos de vulnerabilidades que explotan un side-channel en TLS. Más recientemente, también hemos visto vulnerabilidades empleando este mismo concepto en procesadores, como Spectre o Meltdown.
En esta charla, repasaremos el concepto de "side-channel" y haremos un repaso por las diferentes vulnerabilidades que se han ido publicando a lo largo de estos últimos años, explicando en que consisten y que limitaciones tienen.
2. But it’s just me J
Jose Selvi (@JoseSelvi)
15 years in the infosec industry
Principal Security Consultant and
Security Researcher at
SANS Institute Community Instructor
GIAC Security Expert (GSE)
Blogger (sometimes): http://www.pentester.es
3. $ ls -la /home/jselvi/rootedvlc18/
1. Side-channels in Call For Papers
2. How a side-channel works?
3. HTTPS: Size-based Attacks
4. HTTPS: Time-based Attacks
5. CPU: Cache-based Attacks
6. Lessons Learnt
42. Spectre (Speculative Execution)
if ( x < array1_size )
y = array2[ array1[x] * 4096 ];
1. array1[x] points to a SECRET byte
2. array1_size and array2 are not cached
3. previous values for “x” were valid (so branch
predictor will probably think the current value of “x”
is valid as well)
44. Why 4096??
0 4096 8192 12288 16384 20480 24576 28672 32768
if ( x < array1_size )
y = array2[ array1[x] * 4096 ];
access_kernel();
access(probe_array[data * 4096]);
45. $ ls -la /home/jselvi/rootedvlc18/ | tail -1
1. Side-channels in Call For Papers
2. How does a side-channel work?
3. HTTPS: Size-based Attacks
4. HTTPS: Time-based Attacks
5. CPU: Cache-based Attacks
6. Lessons Learnt
46. Lessons Learnt
• Compression is Evil
• Cache is Evil
• Speculative Execution is Evil
• Exploiting side-channels is slow (but it works)
• Avoiding side-channels is difficult (researchers find
new ones over and over again).