{"id":19665,"date":"2020-01-15T16:59:38","date_gmt":"2020-01-15T14:59:38","guid":{"rendered":"https:\/\/www.kaspersky.it\/blog\/?p=19665"},"modified":"2020-03-27T16:46:34","modified_gmt":"2020-03-27T14:46:34","slug":"36c3-pdf-digital-signature","status":"publish","type":"post","link":"https:\/\/www.kaspersky.it\/blog\/36c3-pdf-digital-signature\/19665\/","title":{"rendered":"Le firme digitali dei file PDF sono affidabili?"},"content":{"rendered":"<p>Praticamente non c\u2019\u00e8 nessuna azienda o ente pubblico che non usi file PDF. Spesso, per garantire l\u2019autenticit\u00e0 di questi documenti, ci si avvale della <strong>firma digitale<\/strong>. Quando si apre un file firmato su un qualsiasi lettore di PDF, il programma avverte della presenza della firma, indicando chi lo ha firmato e dando accesso al menu di convalida della firma.<\/p>\n<p>Un team di ricercatori provenienti da diverse universit\u00e0 tedesche hanno messo alla prova la <strong>sicurezza delle firme PDF<\/strong>. Vladislav Mladenov, dell\u2019Universit\u00e0 della Ruhr a Bochum ha mostrato i <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">risultati del team<\/a> in occasione del Chaos Communication Congress (36C3).<\/p>\n<p>Il compito dei ricercatori era semplice: modificare il contenuto di un documento PDF firmato senza invalidarne la firma. In teoria, i cybercriminali potrebbero fare lo stesso per aggiungere false informazioni o contenuti dannosi al file firmato. I clienti che ricevono da una banca un documento firmato si fideranno ciecamente e cliccheranno su tutti i link che contenga.<\/p>\n<p>Il team ha selezionato 22 <strong><a href=\"https:\/\/www.kaspersky.it\/blog\/adobe-reader-e-la-sicurezza\/804\/\" target=\"_blank\" rel=\"noopener\">lettori PDF<\/a><\/strong> tra i pi\u00f9 conosciuti e per diverse piattaforme, per nutrire sistematicamente i risultati dell\u2019esperimento.<\/p>\n<h2>Struttura del file PDF<\/h2>\n<div id=\"attachment_19668\" style=\"width: 201px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-19668\" class=\"wp-image-19668 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/89\/2020\/01\/15165500\/36C3-PDF-digital-signature-1.png\" alt=\"\" width=\"191\" height=\"279\"><p id=\"caption-attachment-19668\" class=\"wp-caption-text\">Struttura file PDF. <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"noopener nofollow\">Fonte<\/a><\/p><\/div>\n<p>Innanzitutto, spendiamo qualche parola sul <strong>formato PDF<\/strong>. I file sono composti da quattro parti principali: header (che mostra la versione PDF), il corpo (che mostra il contenuto principale visualizzato dall\u2019utente), la sezione Xref (una directory che elenca gli oggetti all\u2019interno del corpo e la loro ubicazione, per visualizzare il contenuto) e la sezione trailer (con il quale i lettori PDF leggono il documento). Il trailer comprende due importanti parametri che indicano al programma da dove cominciare per gestire il file e dove inizia la sezione Xref.<\/p>\n<p>Nel formato si integra un aggiornamento incrementale che consente all\u2019utente, per esempio, di sottolineare parti del testo e di scrivere commenti.\u00a0 Da un punto di vista tecnico, tale funzione aggiunge altre tre sezioni: aggiornamenti per il corpo, una nuova directory Xref e una nuova sezione trailer. \u00c8 Ci\u00f2 consente di modificare la visualizzazione degli oggetti da parte dell\u2019utente e di aggiungere nuovi contenuti. In sostanza, una <strong>firma digitale di un file PDF<\/strong> non \u00e8 altro che un aggiornamento incrementale, che aggiunge un altro elemento al file e le sezioni corrispondenti.<\/p>\n<h2>Incremental saving attack (ISA)<\/h2>\n<div id=\"attachment_19669\" style=\"width: 208px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-19669\" class=\"wp-image-19669 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/89\/2020\/01\/15165613\/36C3-PDF-digital-signature-2.png\" alt=\"\" width=\"198\" height=\"405\"><p id=\"caption-attachment-19669\" class=\"wp-caption-text\">Aggiungere un aggiornamento incrementale. <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"noopener nofollow\">Fonte<\/a><\/p><\/div>\n<p>In primo luogo, il team ha aggiunto sezioni extra al file con un altro aggiornamento incrementale, utilizzando un editor di testo. In senso stretto, non si tratta di un <strong>attacco al file PDF<\/strong> vero e proprio, il team di ricercatori ha semplicemente utilizzato una funzionalit\u00e0 implementata da chi ha creato il formato. Quando l\u2019utente apre un file modificato in questo modo, il lettore PDF di solito mostra un messaggio in cui si afferma la validit\u00e0 della firma ma si avverte che il documento \u00e8 stato modificato. Un messaggio non proprio chiaro, soprattutto per un utente non esperto. In uno dei lettori PDF (LibreOffice), questo avviso non compare neanche.<\/p>\n<p>L\u2019esperimento successivo riguardante la <strong>sicurezza dei file PDF<\/strong> si \u00e8 poi dedicato all\u2019eliminazione delle due sezioni finali (ovvero, aggiungendo un aggiornamento al corpo ma senza il nuovo Xref e il nuovo trailer). Alcune app non hanno potuto lavorare con un file di questo tipo. Per due lettori PDF mancano queste sezioni e le hanno aggiunte automaticamente senza avvisare l\u2019utente riguardo il cambio di contenuto. Gli altri tre lettori hanno aperto il file senza porre obiezioni.<\/p>\n<p>Successivamente,\u00a0 i ricercatori si sono chiesti cosa sarebbe successo se avessero semplicemente copiato la firma digitale nel loro aggiornamento \u201cmanuale\u201d. Altri due lettori non hanno superato la prova, Foxit e MasterPDF.<\/p>\n<p>In totale, 11 lettori PDF su 22 si sono rivelati vulnerabili a queste semplici manipolazioni. Inoltre, di questi 11 lettori, \u00a06 non hanno indicato in alcun modo che il documento aperto fosse stato modificato. I 5 restanti, per visualizzare la <strong>manipolazione del file PDF<\/strong>, l\u2019utente deve entrare nel menu e verificare manualmente la validit\u00e0 della firma digitale (con la semplice apertura del file non era possibile).<\/p>\n<h2>Signature wrapping attack (SWA)<\/h2>\n<div id=\"attachment_19670\" style=\"width: 196px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-19670\" class=\"wp-image-19670 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/89\/2020\/01\/15165702\/36C3-PDF-digital-signature-3.png\" alt=\"\" width=\"186\" height=\"277\"><p id=\"caption-attachment-19670\" class=\"wp-caption-text\">Aggiungere una firma digitale. <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"noopener nofollow\">Fonte<\/a><\/p><\/div>\n<p>Quando si firma un documento, vengono aggiunti due campi importanti come aggiornamento incrementale al corpo: :\/Contents, che contiene la firma, e \/ByteRange, che descrive esattamente ci\u00f2 che \u00e8 stato firmato. In quest\u2019ultimo campo ci sono quattro parametri (che definiscono l\u2019inizio del file, il numero di byte prima del codice della firma, un byte che determina dove termina il codice della firma e il numero di byte dopo la firma), in quanto la <strong><a href=\"https:\/\/www.kaspersky.it\/blog\/gpg-crittografia-forte-e-firme-digitali-in-pochi-step\/1984\/\" target=\"_blank\" rel=\"noopener\">firma digitale<\/a> <\/strong>non \u00e8 altro che una sequenza di caratteri generata con mezzi di cifratura a partire dal codice del documento PDF. Ovviamente, la firma non pu\u00f2 \u201cfirmarsi\u201d a sua volta, per cui la zona dove \u00e8 custodita \u00e8 esclusa dal processo di calcolo della firma.<\/p>\n<p>I ricercatori hanno provato ad aggiungere un altro campo \/ByteRange subito dopo la firma. I primi due valori sono rimasti immutati ed \u00e8 stato alterato solo l\u2019indirizzo della fine del codice della firma. Il risultato \u00e8 che compare uno spazio aggiuntivo nel file che consente di aggiungere qualsiasi oggetto dannoso, cos\u00ec come la sezione Xref che li descrive. In teoria, se il file venisse letto correttamente, il lettore PDF non andrebbe oltre questa sezione. Tuttavia, su 22 lettori 17 sono vulnerabili a questo <strong>attacco ai file PDF<\/strong>.<\/p>\n<h2>Universal signature forgery (USF)<\/h2>\n<p>Per verificare ancor meglio <strong>la sicurezza dei file PDF<\/strong>, il team di ricerca ha deciso di sottoporre le applicazioni a uno stress test inerente a un trucco standard di pentesting, provando a sostituire i valori dei campi con altri valori erronei oppure semplicemente eliminando i valori. Lavorando sulla sezione \/Contents \u00e8 emerso che, nel caso in cui la firma reale veniva sostituita dal valore 0x00, due lettore la convalidavano ugualmente.<\/p>\n<p>E se si lascia la firma al suo posto, ma si elimina la sezione \u00a0\/ByteRange (ovvero, l\u2019\u00a1informazione su ci\u00f2 che \u00e8 stato firmato esattamente)? O se si aggiunge uno zero al posto dei valori reali? Ebbene, in entrambi I casi alcuni lettori PDF hanno convalidato la firma.<\/p>\n<p>In totale, in 4 dei 22 programmi sono stati riscontrati errori di implementazione che si potrebbero sfruttare.<\/p>\n<p>Leggendo la tabella riassuntiva dei risultati, ben 21 lettori PDF su 22 potrebbero essere ingannati in un modo o in un altro. Quindi, tranne in un solo caso, con tutti i lettori si pu\u00f2 creare un <strong>file PDF dal contenuto dannoso <\/strong>o che comprende false informazioni che sembrerebbero valide agli occhi dell\u2019utente.<\/p>\n<div id=\"attachment_19667\" style=\"width: 628px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-19667\" class=\"wp-image-19667 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/89\/2020\/01\/15164927\/36C3-PDF-digital-signature-4.png\" alt=\"\" width=\"618\" height=\"383\"><p id=\"caption-attachment-19667\" class=\"wp-caption-text\">Tabella riassutiva delle vulnerabilit\u00e0 nei lettori PDF. <a href=\"https:\/\/media.ccc.de\/v\/36c3-10832-how_to_break_pdfs\" target=\"_blank\" rel=\"noopener nofollow\">Fonte<\/a><\/p><\/div>\n<p>Ironia della sorte, l\u2019unica applicazione che non ha ceduto ai trucchi dei ricercatori \u00e8 stata Adobe Reader 9. Il problema \u00e8 che tale applicazione \u00e8 sensibile alla vulnerabilit\u00e0 RCE; inoltre, \u00e8 utilizzata solamente dagli utenti Linux e semplicemente perch\u00e9 si tratta della versione pi\u00f9 recente.<\/p>\n<h2>Conclusioni pratiche<\/h2>\n<p>Quali sono le conclusioni a livello pratico che possiamo dedurre? Innanzitutto, non possiamo fidarci ciecamente delle firme digitali dei documenti PDF. Se trovate un bollino verde, non vuol dire necessariamente che la firma sia valida.<\/p>\n<p>In secondo luogo, anche un documento firmato pu\u00f2 essere un rischio. Quindi, prima di aprire un qualsiasi file ricevuto online o prima di cliccare sui link che contenga, assicuratevi di avere installata sul computer una <a href=\"https:\/\/www.kaspersky.it\/small-to-medium-business-security?icid=it_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder_______\" target=\"_blank\" rel=\"noopener\">soluzione di sicurezza affidabile<\/a>.<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"kesb-trial\">\n","protected":false},"excerpt":{"rendered":"<p>Alcuni ricercatori hanno provato a modificare il contenuto di un file PDF firmato senza invalidare la firma. <\/p>\n","protected":false},"author":700,"featured_media":19666,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2364,2955,2956],"tags":[3246],"class_list":{"0":"post-19665","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-3246"},"hreflang":[{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/36c3-pdf-digital-signature\/19665\/"},{"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":"es","url":"https:\/\/www.kaspersky.es\/blog\/36c3-pdf-digital-signature\/20888\/"},{"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.it\/blog\/tag\/36%d1%813\/","name":"36\u04213"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/19665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/users\/700"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/comments?post=19665"}],"version-history":[{"count":5,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/19665\/revisions"}],"predecessor-version":[{"id":21061,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/19665\/revisions\/21061"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/media\/19666"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/media?parent=19665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/categories?post=19665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/tags?post=19665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}