{"id":16892,"date":"2020-01-15T11:56:47","date_gmt":"2020-01-15T17:56:47","guid":{"rendered":"https:\/\/latam.kaspersky.com\/blog\/?p=16892"},"modified":"2020-03-04T13:32:28","modified_gmt":"2020-03-04T19:32:28","slug":"36c3-pdf-digital-signature","status":"publish","type":"post","link":"https:\/\/latam.kaspersky.com\/blog\/36c3-pdf-digital-signature\/16892\/","title":{"rendered":"\u00bfSon confiables las firmas digitales de los archivos PDF?"},"content":{"rendered":"<p>Casi todas las empresas o instituciones de gobierno usan archivos PDF. Y, a menudo, usan <strong>firmas digitales<\/strong> 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 tiene firma, a qui\u00e9n pertenece; 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 <strong>seguridad de las firmas PDF<\/strong>. Vladislav Mladenov, de Ruhr-Universit\u00e4t Bochum, <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">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 cibercriminales 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 <strong><a href=\"https:\/\/www.kaspersky.es\/blog\/adobe-pdf-y-la-seguridad\/735\/\" target=\"_blank\" rel=\"noopener\">lectores PDF<\/a><\/strong> para diferentes plataformas que de modo sistem\u00e1tico facilitaron los resultados de sus experimentos.<\/p>\n<h2>Estructura del archivo PDF<img decoding=\"async\" class=\"alignright size-full wp-image-16893\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2020\/01\/15093138\/36C3-PDF-digital-signature-1.png\" alt=\"\" width=\"191\" height=\"279\"><\/h2>\n<p>Primero, digamos algunas cosas sobre el <strong>format<\/strong><strong>o PDF<\/strong>. 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 <em>trailer<\/em>, con el que los lectores PDF empezar\u00e1n a leer el documento. El <em>trailer<\/em> contiene 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, por ejemplo, resaltar parte del texto e insertar comentarios. 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 <em>trailer<\/em> nuevo. Esto es lo que realmente permite cambiar el modo en que el usuario ve los objetos, as\u00ed como a\u00f1adir contenido. En esencia, una <strong>firma digital de un archivo PDF<\/strong> es una actualizaci\u00f3n acumulativa que a\u00f1ade otro elemento al archivo, junto con sus secciones correspondientes.<\/p>\n<h2>Ataque tipo ISA (<em>Incremental saving attack<\/em>)<img decoding=\"async\" class=\"alignright size-full wp-image-16894\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2020\/01\/15093224\/36C3-PDF-digital-signature-2.png\" alt=\"\" width=\"198\" height=\"405\"><\/h2>\n<p>Primero, por medio de un procesador de texto, el equipo intent\u00f3 a\u00f1adir secciones extra al archivo con otra actualizaci\u00f3n acumulativa. En sentido estricto, no se trata de un <strong>ataque contra el archivo PDF<\/strong>, pues 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 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 de <strong>seguridad de los archivos PDF<\/strong> 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 ser 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 <strong>manipulaci\u00f3n del archivo PDF<\/strong>, el usuario ten\u00eda que entrar al men\u00fa y verificar manualmente la validez de la firma digital, pues sencillamente no bastaba con abrir el archivo.<\/p>\n<h2>Ataque tipo SWA (<em>Signature wrapping attack<\/em>)<img decoding=\"async\" class=\"alignright size-full wp-image-16895\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2020\/01\/15093238\/36C3-PDF-digital-signature-3.png\" alt=\"\" width=\"186\" height=\"277\"><\/h2>\n<p style=\"text-align: left\">La firma de un documento a\u00f1ade dos campos importantes al cuerpo bajo la forma de actualizaciones acumulativas: \/Contents, el cual contiene la firma; y \/ByteRange, que describe con exactitud lo que se firm\u00f3. 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 <strong><a href=\"https:\/\/www.kaspersky.es\/blog\/gpg-el-cifrado-robusto-y-las-firmas-digitales-nunca-han-sido-tan-faciles\/1787\/\" target=\"_blank\" rel=\"noopener\">firma digital<\/a> <\/strong>es una secuencia de los caracteres generados con medios criptogr\u00e1ficos 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 permanecen 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 <strong>ataque contra archivos PDF<\/strong>.<\/p>\n<h2>Ataque por USF (<em>Universal signature forgery<\/em>)<\/h2>\n<p>Para obtener una medici\u00f3n \u00f3ptima sobre la seguridad de los archivos PDF, el equipo decidi\u00f3 tambi\u00e9n someter las aplicaciones a pruebas de estr\u00e9s y compararlas con una estratagema de prueba de penetraci\u00f3n: seg\u00fan esta \u00faltima, se intenta 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)? \u00bfO qu\u00e9 pasaba si se insertaba un valor nulo en lugar de valores reales? En ambos casos, algunos lectores PDF validaron dicha firma.<\/p>\n<p>En total, se hall\u00f3 que 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 PDF pueden ser burlados. Es decir, salvo por uno, todos aceptan un <strong>archivo PDF con contenido malicioso<\/strong> o informaci\u00f3n falsa que lucir\u00eda v\u00e1lida para el usuario.<\/p>\n<p><em><img decoding=\"async\" class=\"size-full wp-image-16896 aligncenter\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2020\/01\/15093329\/36C3-PDF-digital-signature-4.png\" alt=\"\" width=\"618\" height=\"383\">Esquema de vulnerabilidades de los lectores PDF. <\/em><a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><em>Fuente.<\/em><\/a><\/p>\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 <strong><a href=\"https:\/\/latam.kaspersky.com\/blog\/vulnerabilities-in-public-clouds\/15548\/\" target=\"_blank\" rel=\"noopener\">vulnerabilidad RCE<\/a><\/strong> (ejecuci\u00f3n remota de c\u00f3digo); y que solo los usuarios de Linux la emplean, sencillamente porque es la versi\u00f3n m\u00e1s reciente que est\u00e1 disponible para ellos.<\/p>\n<h2>Conclusiones pr\u00e1cticas sobre la seguridad de los PDF<\/h2>\n<p>\u00bfQu\u00e9 conclusiones pr\u00e1cticas podemos sacar de todo esto? Primero, que nadie deber\u00eda confiar ciegamente en las <strong>firmas digitales PDF<\/strong>. Si ves una marca de verificaci\u00f3n color verde en alguna parte, eso 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:\/\/latam.kaspersky.com\/small-to-medium-business-security?icid=es-LA_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder_______\" target=\"_blank\" rel=\"noopener\">una soluci\u00f3n de seguridad confiable<\/a> instalada en tu computadora.<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"kesb-trial\">\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":16898,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2795,3539],"tags":[3838,3844,3251,3255,2648,3845,2889],"class_list":{"0":"post-16892","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-business","8":"category-enterprise","9":"tag-36c3","10":"tag-3844","11":"tag-ccc","12":"tag-chaos-communication-congress","13":"tag-criptografia","14":"tag-firma-digital","15":"tag-pdf"},"hreflang":[{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/36c3-pdf-digital-signature\/16892\/"},{"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","url":"https:\/\/www.kaspersky.es\/blog\/36c3-pdf-digital-signature\/20888\/"},{"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:\/\/latam.kaspersky.com\/blog\/tag\/36%d1%813\/","name":"36\u04213"},"_links":{"self":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/16892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/users\/700"}],"replies":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=16892"}],"version-history":[{"count":4,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/16892\/revisions"}],"predecessor-version":[{"id":16903,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/16892\/revisions\/16903"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/16898"}],"wp:attachment":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=16892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=16892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=16892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}