Microsoft Office è una delle applicazioni più utilizzate per gestire i documenti in ufficio. Per garantirne l’autenticità e l’integrità, è possibile firmare documenti Office di primaria importanza. Un gruppo di ricercatori della Ruhr University Bochum, tuttavia, ha scoperto cinque gravi problemi di sicurezza con le firme Office Open XML (OOXML), standard Ecma/ISO che usano tutte le applicazioni Office.
Le firme Office Open XML aiutano a garantire l’autenticità, l’integrità e la non ripudiabilità dei documenti. Le firme OOXML consentono agli utenti di apporre una firma digitale sui documenti Office, confermando l’autenticità del contenuto e l’identità del firmatario. La firma digitale è elaborata utilizzando una combinazione di algoritmi di hash crittografici per creare una rappresentazione univoca del documento e una chiave crittografica privata del firmatario. Incorporata nel documento Office Open XML, permette a chiunque di verificare la sua autenticità e integrità.
Quando un documento firmato viene aperto in un’applicazione del pacchetto Office, il software verifica la firma OOXML utilizzando la chiave pubblica del sottoscrittore. In questo modo è possibile avere garanzia che il documento non sia stato modificato dopo la firma e che la firma sia stata apposta a partire da una chiave privata valida.
Lo standard OOXML
Parlando del formato DOCX abbiamo brevemente introdotto il formato OOXML utilizzato dalla suite Office e supportato da molti prodotti concorrenti. Tra il 2006 e il 2008, Ecdma prima e ISO poi hanno approvato a standard il formato di documento OOXML proposto da Microsoft.
Durante il processo di standardizzazione, sono state avanzate diverse critiche sulla complessità e l’estensione del formato proposto da Microsoft. Sono state inoltre sollevate preoccupazioni riguardo alla completa interoperabilità tra le diverse implementazioni di OOXML e alla compatibilità con le versioni precedenti di Office.
Il formato OOXML adottato come standard Ecma/ISO può differire dall’implementazione specifica utilizzata da Microsoft nelle diverse versioni di Office. L’azienda di Redmond ha inoltre continuato ad aggiornare il formato OOXML nel corso del tempo, introducendo modifiche e aggiunte.
Free Software Foundation ha sempre criticato il formato OOXML stigmatizzando l’impossibilità per le terze parti di implementarlo nei rispettivi prodotti allo stesso modo con cui lo sta facendo Microsoft in Office e negli altri suoi software. Durante il processo di revisione, infatti, vennero di fatto creati due sotto-standard di OOXML: ISO 29500 Transitional e ISO 29500 Strict. La versione Strict fu accettata da ISO, mentre la Transitional fu concessa a Microsoft, permettendole di escludere dalla certificazione alcune funzioni di compatibilità e facilitando la conversione dai vecchi formati binari proprietari.
Le firme OOXML dei documenti Office non sono più al sicuro
Nel documento tecnico dal titolo “Ogni firma è rotta: sull’insicurezza delle firme OOXML di Microsoft Office“, i ricercatori spiegano nel dettaglio i problemi di sicurezza rilevati (saranno descritti nel dettaglio durante la prossima edizione di USENIX Security Symposium, ad agosto 2023).
Ciascun attacco consente agli aggressori di modificare il contenuto dei documenti firmati; le firme, d’altro canto, appaiono sempre come valide. L’impatto è allarmante: eventuali criminali informatici o utenti malintenzionati possono manipolare arbitrariamente il contenuto di un documento firmato. Da parte loro, le vittime non sono in grado di riconoscere l’avvenuta manomissione.
Cosa ancora peggiore, gli esperti hanno presentato una modalità di attacco universale che consente la contraffazione della firma. In questo caso l’attaccante può creare un documento arbitrario e applicare una firma estratta da una fonte diversa, come un documento ODF o un token SAML. La vittima che apre il documento così creato “ad arte” non si accorge di nulla. Il file Office risulta integro e indicato come correttamente firmato da un’entità fidata.
Dalla Ruhr University Bochum si precisa che la presenza delle vulnerabilità del sistema di firma di OOXML è stata rilevata e confermata in tutte le versioni di Office oltre che in altri pacchetti, sia su Windows che su macOS. Microsoft ha riconosciuto il problema e ha premiato i ricercatori con una sovvenzione in denaro nell’ambito del suo programma bug bounty.
I ricercatori spiegano come tornare a firmare documenti Office in modo sicuro
Gli esperti accademici hanno messo nero su bianco i dettagli delle cinque modalità di attacco sin qui rilevate: Content Injection Attack (CIA), Content Masking Attack (CMA), Legacy Wrapping Attack (LWA), Universal Signature Forgery (USF) e Malicious Repair Attack (MRA). Hanno poi suggerito una serie di contromisure che variano a seconda della tipologia di attacco e dal fatto che esso dipenda da un difetto di specifica o da un difetto di implementazione.
Nel caso dei difetti di specifica, spiegano i ricercatori, il problema principale è rappresentato dai file di relazione. Essi non risultano purtroppo firmati nel loro insieme. La firma è apposta solo sui rispettivi riferimenti. Gli esperti consigliano di utilizzare i file dello schema XML in modo più restrittivo così da non rendere possibile, per un utente terzo, l’aggiunta di nuovi file rispetto a quelli specificati nel file document.xml
.
L’attacco USF riguarda invece i difetti di implementazione nel meccanismo di firma OOXML. In questo caso l’aggressore può controllare l’intero contenuto del documento firmato senza alcuna restrizione. Il problema è la mancanza di verifica sul Package Info, elemento che contiene tutti i riferimenti e i valori di hash per i file all’interno del pacchetto OOXML.
La contromisura efficace risiede in un controllo obbligatorio della presenza di tutti i riferimenti ai file nell’elenco degli elementi correttamente firmati.