{"id":20888,"date":"2020-01-16T12:47:57","date_gmt":"2020-01-16T10:47:57","guid":{"rendered":"https:\/\/www.kaspersky.es\/blog\/?p=20888"},"modified":"2020-01-16T12:47:57","modified_gmt":"2020-01-16T10:47:57","slug":"36c3-pdf-digital-signature","status":"publish","type":"post","link":"https:\/\/www.kaspersky.es\/blog\/36c3-pdf-digital-signature\/20888\/","title":{"rendered":"\u00bfSon de fiar las firmas digitales de los archivos PDF?"},"content":{"rendered":"<p>Casi todas las empresas o instituciones gubernamentales usan archivos PDF. Y, a menudo, usan firmas digitales para garantizar la autenticidad de dichos documentos. Cuando abres un PDF firmado en cualquier lector PDF, este muestra una marca que indica que el documento est\u00e1 firmado y por qui\u00e9n, y tambi\u00e9n te da acceso al men\u00fa de validaci\u00f3n de firma.<\/p>\n<p>As\u00ed pues, un equipo de investigadores de varias universidades alemanas analiz\u00f3 la seguridad de las firmas en PDF. Vladislav Mladenov, de la Universidad Ruhr de Bochum , <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"noopener nofollow\">comparti\u00f3 los hallazgos de su equipo<\/a> durante el Chaos Communication Congress (36\u04213).<\/p>\n<p>La tarea de los investigadores era simple: modificar los contenidos de un documento PDF firmado sin anular la firma en el proceso. En teor\u00eda, los ciberdelincuentes podr\u00edan hacer lo mismo para difundir informaci\u00f3n falsa o para a\u00f1adir contenido malicioso a un archivo firmado. Despu\u00e9s de todo, es probable que los clientes que reciben un documento firmado de un banco conf\u00eden en \u00e9l y sigan los enlaces que contiene.<\/p>\n<p>El equipo eligi\u00f3 22 lectores PDF para diferentes plataformas que de modo sistem\u00e1tico facilitaron los resultados de sus experimentos.<\/p>\n<h3>Estructura del archivo PDF<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20890 alignright\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2020\/01\/15190324\/36C3-PDF-digital-signature-1.png\" alt=\"\" width=\"191\" height=\"279\"><\/p>\n<p>Primero, hablemos del formato PDF. Cada archivo consta de cuatro partes: el encabezado, que muestra la versi\u00f3n del PDF; el cuerpo, que muestra el contenido que el usuario visualiza; la secci\u00f3n Xref, un directorio de los objetos contenidos en el cuerpo y sus ubicaciones (con el fin de mostrar el contenido); y el\u00a0<em>trailer<\/em>, con el que los lectores PDF empiezan a leer el documento. El\u00a0<em>trailer<\/em>\u00a0contiene dos par\u00e1metros importantes que le indican al programa d\u00f3nde iniciar el procesamiento del archivo y d\u00f3nde comienza la secci\u00f3n Xref.<\/p>\n<p>En el formato se integra una funci\u00f3n de actualizaci\u00f3n acumulativa que le permite al usuario, resaltar parte del texto e insertar comentarios, entre otras cosas. Desde un punto de vista t\u00e9cnico, la funci\u00f3n a\u00f1ade tres secciones m\u00e1s: las actualizaciones para el cuerpo, un nuevo directorio Xref y un\u00a0<em>trailer<\/em>\u00a0nuevo. Esto es lo que realmente permite cambiar el modo en que el usuario ve\u00a0los objetos, as\u00ed como a\u00f1adir contenido. En esencia, una firma digital es una actualizaci\u00f3n acumulativa que a\u00f1ade otro elemento al archivo, junto con sus secciones correspondientes.<\/p>\n<h3>Ataque tipo ISA (<em>Incremental saving attack<\/em>)<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-20891 alignright\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2020\/01\/15190350\/36C3-PDF-digital-signature-2-147x300.png\" alt=\"\" width=\"147\" height=\"300\"><\/p>\n<p>Primero, por medio de un procesador de texto, el equipo intent\u00f3 a\u00f1adir secciones adicionales al archivo con otra actualizaci\u00f3n acumulativa. En sentido estricto, no se trata de un ataque, ya que el equipo utiliz\u00f3 simplemente una funci\u00f3n que los desarrolladores del formato implementaron. Cuando un usuario abre un archivo modificado de este modo, el lector PDF normalmente muestra un mensaje que nos advierte de que la firma digital es v\u00e1lida pero el documento se ha modificado. No es un mensaje muy esclarecedor, al menos no para un usuario con poca experiencia. Y, lo que es peor, uno de los lectores PDF (LibreOffice) ni siquiera mostr\u00f3 el mensaje.<\/p>\n<p>El siguiente experimento consist\u00eda en extraer las dos secciones del final (es decir, a\u00f1adir una actualizaci\u00f3n al cuerpo, pero no Xref ni <em>trailer<\/em> nuevos). Algunas aplicaciones se negaron a trabajar con dicho archivo. Dos lectores PDF vieron que faltaban dos secciones y autom\u00e1ticamente las a\u00f1adieron sin notificar al lector acerca del cambio en el contenido. Otros tres simplemente cargaron el archivo sin ninguna objeci\u00f3n.<\/p>\n<p>A continuaci\u00f3n, los investigadores se preguntaron qu\u00e9 pasar\u00eda si simplemente copiaran la firma digital dentro de su propia actualizaci\u00f3n \u201cmanual\u201d. Otros dos lectores, Foxit y MasterPDF, cayeron en la trampa.<\/p>\n<p>En total, 11 de los 22 lectores PDF resultaron vulnerables a estas sencillas manipulaciones. Adem\u00e1s, seis no advirtieron en absoluto que el documento abierto para lectura hab\u00eda sufrido modificaciones. En los otros cinco casos, con el fin de mostrar alg\u00fan tipo de manipulaci\u00f3n, el usuario ten\u00eda que entrar al men\u00fa y verificar manualmente la validez de la firma digital, pues no bastaba con abrir el archivo sin m\u00e1s.<\/p>\n<h3>Ataque tipo SWA (<em>Signature wrapping attack<\/em>)<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20892 alignright\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2020\/01\/15190416\/36C3-PDF-digital-signature-3.png\" alt=\"\" width=\"186\" height=\"277\"><\/p>\n<p>La firma de un documento a\u00f1ade dos campos importantes al cuerpo bajo la forma de actualizaciones acumulativas: \/Contents, que contiene la firma, y \/ByteRange, que describe con exactitud lo que se ha firmado. En este \u00faltimo se encuentran cuatro par\u00e1metros (uno indica el comienzo del archivo; otro, el n\u00famero de bytes antes del c\u00f3digo de la firma; un tercero establece d\u00f3nde termina; y el cuarto, el n\u00famero de bytes despu\u00e9s de la firma) porque la firma digital es una secuencia de los caracteres generados con medios cifrados a partir del c\u00f3digo del documento PDF. Por supuesto, la firma no puede firmarse a s\u00ed misma, as\u00ed que el \u00e1rea donde se almacena queda excluida del proceso de c\u00e1lculo de la firma.<\/p>\n<p>Los investigadores intentan a\u00f1adir otro campo de \/ByteRange inmediatamente despu\u00e9s de la firma. Los dos primeros valores permanecieron inalterados; solamente se alter\u00f3 la direcci\u00f3n del final del c\u00f3digo de firma. El resultado fue la aparici\u00f3n de un espacio adicional en el archivo que permit\u00eda que se a\u00f1adiera cualquier objeto malicioso, as\u00ed como la secci\u00f3n Xref que los describ\u00eda. En teor\u00eda, si se leyera correctamente el archivo, el lector PDF no pasar\u00eda de esta secci\u00f3n. Sin embargo, 17 de las 22 aplicaciones eran vulnerables a dicho ataque.<\/p>\n<h3>Falsificaci\u00f3n de firmas universales (USF)<\/h3>\n<p>Para una medici\u00f3n \u00f3ptima, el equipo decidi\u00f3 tambi\u00e9n someter las aplicaciones a pruebas de estr\u00e9s y compararlas con una estrategia de prueba de penetraci\u00f3n: seg\u00fan esta \u00faltima, se intentan reemplazar los valores de los campos con otros incorrectos, o simplemente borrarlos. Al realizar el experimento con la secci\u00f3n \/Contents se descubri\u00f3 que, si la firma real se reemplazaba con el valor 0x00, dos lectores la validaban a\u00fan.<\/p>\n<p>Pero \u00bfqu\u00e9 pasaba si la firma se dejaba en su lugar, pero se eliminaba la secci\u00f3n \/ByteRange (es decir, la informaci\u00f3n de lo que se firma)? \u00bfY qu\u00e9 pasaba si se insertaba un valor nulo en lugar de valores reales? En ambos casos, algunos lectores validaron dicha firma.<\/p>\n<p>En total, 4 de los 22 programas conten\u00edan errores de implementaci\u00f3n que pod\u00edan verse aprovechados.<\/p>\n<p>La tabla de resultados resumidos muestra que al menos 21 de los 22 lectores pueden ser burlados. Es decir, salvo por uno, todos aceptan un archivo PDF creado con contenido malicioso o informaci\u00f3n falsa que resultar\u00eda v\u00e1lida para el usuario.<\/p>\n<div id=\"attachment_20893\" style=\"width: 628px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20893\" class=\"wp-image-20893 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2020\/01\/15190446\/36C3-PDF-digital-signature-4.png\" alt=\"\" width=\"618\" height=\"383\"><p id=\"caption-attachment-20893\" class=\"wp-caption-text\">Esquema de vulnerabilidades de los lectores PDF. <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"noopener nofollow\">Fuente<\/a><\/p><\/div>\n<p>Curiosamente, Adobe Reader 9 fue la \u00fanica aplicaci\u00f3n que no cay\u00f3 en ninguna de las trampas colocadas por los investigadores. El problema con ella es que es susceptible a una vulnerabilidad RCE (ejecuci\u00f3n remota de c\u00f3digo, por sus siglas en ingles); y que solo los usuarios de Linux la utilizan, sencillamente porque es la versi\u00f3n m\u00e1s reciente que est\u00e1 disponible para ellos.<\/p>\n<h3>Conclusiones pr\u00e1cticas<\/h3>\n<p>\u00bfQu\u00e9 conclusiones pr\u00e1cticas podemos sacar de todo esto? Primero, que nadie deber\u00eda confiar a ciencia cierta en las firmas digitales PDF. Si ves una marca de verificaci\u00f3n color verde en alguna parte, no significa necesariamente que la firma sea v\u00e1lida.<\/p>\n<p>Segundo, incluso un documento firmado puede suponer un riesgo. As\u00ed que antes de abrir cualquier archivo recibido por la red o de seguir los enlaces que contienen, aseg\u00farate de que tienes <a href=\"https:\/\/www.kaspersky.es\/small-to-medium-business-security?icid=es_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder_______\" target=\"_blank\" rel=\"noopener\">una soluci\u00f3n de seguridad de confianza<\/a> instalada en tu ordenador.<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"kesb\">\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los investigadores intentan modificar los contenidos de un archivo PDF firmado sin anular la firma.<\/p>\n","protected":false},"author":700,"featured_media":20889,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2202,2754,2755],"tags":[3022,2501,2503,630,3024,310],"class_list":{"0":"post-20888","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-business","8":"category-enterprise","9":"category-smb","10":"tag-36c3","11":"tag-ccc","12":"tag-chaos-communication-congress","13":"tag-criptografia","14":"tag-firma-digital","15":"tag-pdf"},"hreflang":[{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/36c3-pdf-digital-signature\/20888\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/36c3-pdf-digital-signature\/18382\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/36c3-pdf-digital-signature\/15256\/"},{"hreflang":"ar","url":"https:\/\/me.kaspersky.com\/blog\/36c3-pdf-digital-signature\/7402\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/36c3-pdf-digital-signature\/20142\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/36c3-pdf-digital-signature\/18443\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/36c3-pdf-digital-signature\/16892\/"},{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/36c3-pdf-digital-signature\/19665\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/36c3-pdf-digital-signature\/26041\/"},{"hreflang":"tr","url":"https:\/\/www.kaspersky.com.tr\/blog\/36c3-pdf-digital-signature\/7543\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/36c3-pdf-digital-signature\/32073\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/36c3-pdf-digital-signature\/13921\/"},{"hreflang":"pl","url":"https:\/\/plblog.kaspersky.com\/36c3-pdf-digital-signature\/12666\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/36c3-pdf-digital-signature\/21928\/"},{"hreflang":"zh","url":"https:\/\/www.kaspersky.com.cn\/blog\/36c3-pdf-digital-signature\/10635\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/36c3-pdf-digital-signature\/26709\/"},{"hreflang":"nl","url":"https:\/\/www.kaspersky.nl\/blog\/36c3-pdf-digital-signature\/24856\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/36c3-pdf-digital-signature\/20827\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/36c3-pdf-digital-signature\/25667\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/36c3-pdf-digital-signature\/25498\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.es\/blog\/tag\/36c3\/","name":"36c3"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts\/20888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/users\/700"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/comments?post=20888"}],"version-history":[{"count":6,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts\/20888\/revisions"}],"predecessor-version":[{"id":20914,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts\/20888\/revisions\/20914"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/media\/20889"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/media?parent=20888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/categories?post=20888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/tags?post=20888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}