¿Qué riesgos de seguridad conlleva el lector de PDF incorporado (pdf.js) de Firefox 19?

18

Firefox 19 se entrega con pdf.js como lector de PDF predeterminado .

Uno de los principales objetivos declarados es reducir la exposición de los usuarios al complemento / lector de Adobe PDF, a menudo vulnerable.

Entonces, ¿qué nuevos riesgos trae pdf.js?

Un atacante que puede hacer que un usuario navegue a su PDF malicioso también podría hacer que el usuario navegue a una página web maliciosa. Cualquier vulnerabilidad en el renderizador HTML5 o los intérpretes de javascript podrían haber sido explotados de esa manera de todos modos.

    
pregunta Michael 26.02.2013 - 14:00
fuente

3 respuestas

23

Realmente creo que los desarrolladores de Mozilla han sido bastante inteligentes con esto.

Históricamente, la mayoría de las vulnerabilidades de PDF provienen del motor de renderización en lugar del lado de análisis. Adobe se dio cuenta pronto del hecho de que la estructura y el contenido malformados los atornillarían, y se esforzaría mucho para asegurarse de que su motor de análisis fuera sólido como una roca. Si observas algunas de las cosas recientes de 0 días para Adobe Reader, verás que la mayoría se basa en errores en el motor de renderizado y en algunas de las áreas más exóticas de manejo de contenido.

El nuevo motor de Firefox PDF simplemente toma la estructura del PDF y lo traduce a una estructura DOM, que puede ser representada por el renderizador HTML estándar del navegador e interactuar a través de JavaScript. Esto elimina una gran parte de la superficie de ataque y les permite centrarse completamente en la seguridad del motor de traducción de documentos. Cualquier error real explotable es probable que dependa de un error secundario que podría ser explotado por otros medios de todos modos.

Si hay exploits, los veo provenientes de las siguientes áreas:

  • Se están cargando objetos de terceros en la página, que luego pueden explotar un error Java / Flash / HTML5 / etc. por separado. Probablemente se puede prevenir mediante el uso de una política de origen de contenido restrictiva.
  • Omitir el escape de contenido para que se pueda ejecutar JavaScript arbitrario en el contexto del PDF. Una vez más, gran parte de la importancia de esto está relacionada con las políticas de origen.
  • Desbordamientos de búfer en cualquier código nativo responsable de la traducción de PDF. Dado que la mayor parte del motor parece estar basado en JavaScript, no estoy seguro de qué tan probable es esto.

En general, no creo que suponga un riesgo mayor para la seguridad, y una vez que haya estado disponible durante algunos meses, lo considero un reemplazo ideal para los complementos de Adobe PDF, que han sido una fuente de muchos dolores de cabeza.

    
respondido por el Polynomial 26.02.2013 - 14:25
fuente
12

Las explotaciones se dividen en aproximadamente dos categorías distintas: las que rompen las reglas semánticas del lenguaje de implementación (desbordamientos de búfer, uso después de la liberación, conversiones de tipo no controladas ...) y las que juegan "según las reglas". Dado que el nuevo lector de PDF está escrito en Javascript, los exploits de la primera categoría deberían ser extremadamente raros, debido a la protección intrínseca que está incorporada en el idioma (accesos de matriz verificada, recolección de basura, tipificación fuerte ...). Para obtener una explotación de código arbitrario a partir del software de JavaScript, debe encontrar un agujero en el propio motor de Javascript; los agujeros en el software escrito en Javascript llevarán "solo" a una excepción, es decir, a una falla del software, lo cual es inconveniente pero no tanto como ver el secuestro de su máquina.

Es de suponer que el motor de Javascript en Firefox está completamente probado, ya que se usa mucho.

Los exploits que juegan "según las reglas" incluyen todas las soluciones en torno a la Política del mismo origen y abuso de puertas de enlace a locales recursos Estos no se hacen intrínsecamente más difíciles o más fáciles en virtud de que el lector de PDF está implementado en Javascript. Sin embargo, hacer estas cosas bien es similar a la representación segura de contenido web, algo que ha sido un objetivo principal de Firefox durante años. Podemos esperar que al implementar el renderizado de PDF en el navegador, podrán realizar todos los trabajos arduos realizados para mantener su navegador a salvo de páginas web hostiles. Al menos, cuando se trata de contener los scripts PDF en un recinto de seguridad adecuado, confiaría en las personas que lo han hecho durante años (los desarrolladores de Firefox) más que en las personas para quienes este es solo un elemento de trabajo secundario, distinto de su oficio central ( los desarrolladores de Adobe Reader).

Entonces, para la seguridad , este nuevo lector realmente parece bastante prometedor. Las cosas se ponen mejor, no peor.

    
respondido por el Thomas Pornin 26.02.2013 - 14:52
fuente
3

Las vulnerabilidades de PDF no están explotando el formato de archivo PDF. En su lugar, están explotando las vulnerabilidades encontradas en el lector de PDF.

Si un archivo PDF contiene una vulnerabilidad para el lector de Adobe, abrir el archivo con pdf.js evitará que la vulnerabilidad funcione. Suponiendo que Mozilla esté corrigiendo los errores en pdf.js de forma regular, esto puede reducir el impacto de las vulnerabilidades de PDF.

Como dijiste, cualquier vulnerabilidad encontrada en Firefox puede ser explotada. Esto se puede ver como un medio para reducir la dependencia de Adobe para las actualizaciones de seguridad.

    
respondido por el Ayrx 26.02.2013 - 14:10
fuente

Lea otras preguntas en las etiquetas