Los archivos PDF se encuentran entre los más utilizados para llevar a cabo ataques. Esto es debido principalmente a tres factores: que se usan mucho, que tienen muchas vulnerabilidades, y que casi todo el mundo tiene un lector o editor instalado en su ordenador. Ahora, un ataque llamado PDFex puede obtener los datos de un archivo PDF cifrado, y ningún lector está protegido ante esa vulnerabilidad.
Ha sido un grupo de investigadores alemanes los que han desarrollado este nuevo ataque, que permite extraer y robar datos personales de archivos PDF cifrados, e incluso en ocasiones se hace sin que haya interacción del usuario. Hay dos variantes del ataque, las cuales han sido testeadas en 27 programas que permiten leer y editar PDF, incluyendo Acrobat, Foxit, Nitro o los que incluyen navegadores como Chrome o Firefox.
El ataque no se centra en el cifrado aplicado al documento PDF por los programas, sino por los esquemas de cifrado soportados por el propio estándar del formato PDF. Este formato soporta cifrado nativo, gracias al cual los editores de PDF pueden cifrar un archivo, y otros editores pueden abrirlo conociendo la contraseña, lo cual es beneficioso porque no obliga a usar el mismo lector con el que se ha cifrado inicialmente.
Lo que han conseguido los seis investigadores alemanes es saltarse el proceso de cifrado y obtener en texto plano todo el contenido de un documento mediante métodos de extracción basados en el propio estándar.
Primera variación: modificar las partes sin cifrar el PDF
La primera variación consiste en una extracción directa basada en que los editores de PDF no cifran al completo un archivo PDF, sino que dejan partes sin cifrar. Con esto, un atacante puede modificar las partes sin cifrar del documento, y crear un nuevo archivo trampa que, cuando se descifre usando la contraseña, envíe todo su contenido al atacante.
Para hacer eso, hay tres métodos:
- Añadiendo un formulario que reenvía el contenido a un servidor del atacante al abrirlo y descifrarlo el usuario
- Añadiendo un enlace que se ejecute automáticamente al abrir el archivo
- Añadiendo código JavaScript que se ejecuta automáticamente al abrir el archivo
El método del formulario es el más sencillo y eficiente, ya que no requiere interacción por parte del usuario. La segunda requiere de abrir un enlace externo que el usuario puede cancelar, y el tercero puede no funcionar porque muchos lectores de PDF limitan el uso de JavaScript en segundo plano.
Segunda variación: atacar las partes cifradas del PDF
La segunda variación no ataca a las partes sin cifrar, sino que va directamente a por las que están cifradas usando gadgets CBC, que son partes del código que se ejecutan ante el contenido cifrado y modifican los datos de texto plano en el origen. A partir de ahí, enviará los datos una vez se descifre el archivo siguiendo los mismos métodos descritos anteriormente.
De los 27 programas que analizaron, descubrieron que todos son vulnerables a al menos uno de los ataques. Acrobat por ejemplo es plenamente vulnerable a ambos ataques usando el método del formulario.
Actualmente no hay solución para este fallo, donde éste deberá ser resuelto en la futura iteración del estándar PDF. La última, PDF 2.0, fue lanzada en 2017, y todavía usaba el método de cifrado vulnerable. Para que un atacante pueda aprovecharse del fallo es necesario que tenga acceso al archivo para modificarlo y volver a dejarlo donde estaba, lo cual puede ser difícil en algunas ocasiones.