Fuga de datos a través do bus de anel da CPU Intel

Un equipo de investigadores da Universidade de Illinois desenvolveu unha nova técnica de ataque de canle lateral que manipula a fuga de información a través da interconexión de anel dos procesadores Intel. O ataque permítelle resaltar a información de uso da memoria noutra aplicación e rastrexar a información de tempo de pulsación de teclas. Os investigadores publicaron ferramentas para realizar medicións relacionadas e varias explotacións de prototipos.

Propuxéronse tres explotacións que permitirán:

  • Recupere os bits individuais das claves de cifrado cando se utilicen implementacións RSA e EdDSA que sexan vulnerables a ataques de canle lateral (se os atrasos de cálculo dependen dos datos que se están procesando). Por exemplo, a fuga de bits individuais con información sobre o vector de inicialización (nonce) de EdDSA é suficiente para usar ataques para recuperar secuencialmente toda a clave privada. O ataque é difícil de implementar na práctica e pódese levar a cabo cunha gran cantidade de reservas. Por exemplo, a operación exitosa móstrase cando SMT (HyperThreading) está desactivado e a caché LLC está segmentada entre os núcleos da CPU.
  • Defina parámetros sobre os atrasos entre as teclas. Os atrasos dependen da posición das teclas e permiten, mediante análise estatística, recrear os datos introducidos desde o teclado cunha certa probabilidade (por exemplo, a maioría da xente adoita escribir "s" despois de "a" moito máis rápido que "g" despois de “s”).
  • Organice unha canle de comunicación oculta para transferir datos entre procesos a unha velocidade duns 4 megabits por segundo, que non utilice memoria compartida, caché do procesador, recursos e estruturas do procesador específicos do núcleo da CPU. Nótase que o método proposto para crear unha canle encuberta é moi difícil de bloquear cos métodos existentes de protección contra ataques de canle lateral.

Os exploits non requiren privilexios elevados e poden ser usados ​​por usuarios normais e sen privilexios. Nótase que o ataque podería adaptarse potencialmente para organizar a fuga de datos entre máquinas virtuais, pero este problema estaba fóra do alcance do estudo e non se realizaron probas de sistemas de virtualización. O código proposto probouse nunha CPU Intel i7-9700 en Ubuntu 16.04. En xeral, o método de ataque probouse en procesadores de escritorio da familia Intel Coffee Lake e Skylake, e tamén é potencialmente aplicable aos procesadores de servidor Xeon da familia Broadwell.

A tecnoloxía Ring Interconnect apareceu nos procesadores baseados na microarquitectura Sandy Bridge e consta de varios buses en bucle utilizados para conectar núcleos informáticos e gráficos, unha ponte de servidor e caché. A esencia do método de ataque é que, debido á limitación do ancho de banda do bus de anel, as operacións de memoria nun proceso atrasan o acceso á memoria doutro proceso. Ao identificar os detalles da implementación mediante enxeñaría inversa, un atacante pode xerar unha carga que provoca atrasos no acceso á memoria noutro proceso e utilizar estes atrasos como canle secundario para obter información.

Os ataques aos buses internos da CPU vense obstaculizados pola falta de información sobre a arquitectura e os métodos de funcionamento do bus, así como por un alto nivel de ruído, o que dificulta o illamento de datos útiles. Foi posible comprender os principios de funcionamento do bus mediante a enxeñaría inversa dos protocolos empregados á hora de transmitir datos a través do bus. Utilizouse un modelo de clasificación de datos baseado en métodos de aprendizaxe automática para separar a información útil do ruído. O modelo proposto permitiu organizar o seguimento dos atrasos durante os cálculos nun proceso específico, en condicións nas que varios procesos acceden simultaneamente á memoria e unha determinada parte dos datos se devolve dende as cachés do procesador.

Ademais, podemos observar a identificación de rastros do uso dun exploit para a primeira variante da vulnerabilidade Spectre (CVE-2017-5753) durante ataques a sistemas Linux. O exploit usa a fuga de información da canle lateral para atopar un superbloque na memoria, determinar o inodo do ficheiro /etc/shadow e calcular o enderezo da páxina de memoria para recuperar o ficheiro da caché do disco.

Fonte: opennet.ru

Engadir un comentario