Office Document Security and Privacy
Total Page:16
File Type:pdf, Size:1020Kb
Office Document Security and Privacy Jens Müller, Fabian Ising, Christian Mainka, Vladislav Mladenov, Sebastian Schinzel, Jörg Schwenk Overview 1. OOXML/ODF Basics 2. Denial of Service 3. Invasion of Privacy 4. Information Disclosure 5. Data Manipulation 6. Code Execution 7. Evaluation 2 History: Office Wars • 1990: MS Office 1.0 • 2002: Star Office → OpenOffice.org • 2006: OOXML + ODF standardization • 2010: OpenOffice.org → LibreOffice 3 Two competing standards OOXML (ISO/IEC 29500) ODF (ISO/IEC 26300) Office Open XML Open Document Format 6500 pages 800 pages (some) MS proprietary formats re-use of SVG, MathML, XForms, … .docx, .xlsx, .pptx, … .odt, .ods, .odp, … XML-based, Zip container XML-based, Zip container 4 OOXML Directory Structure 5 OOXML Example 6 ODF Directory Structure 7 ODF Example 8 Attacker Model • Victim opens malicious office document • “Bad things” happen (attack-dependent) 9 Overview 1. OOXML/ODF Basics 2. Denial of Service Deflate Bomb 3. Invasion of Privacy 4. Information Disclosure 5. Data Manipulation 6. Code Execution 7. Evaluation 10 Deflate Bomb max. compression ratio: 1:1023 11 Overview 1. OOXML/ODF Basics 2. Denial of Service 3. Invasion of Privacy URL Invocation, Evitable Metadata 4. Information Disclosure 5. Data Manipulation 6. Code Execution 7. Evaluation 12 URL Invocation • Goal: “phone home” to attacker’s server once document is opened 13 URL Invocation CVE-2020-12802 14 URL Invocation 15 Evitable Metadata Source: news.bbc.co.uk 16 Evitable Metadata 17 Overview 1. OOXML/ODF Basics 2. Denial of Service 3. Invasion of Privacy 4. Information Disclosure Data Exfiltration, File Disclosure, Credential Theft 5. Data Manipulation 6. Code Execution 7. Evaluation 18 Data Exfiltration • Idea: victim obtains spreadsheet; user input values sent to attacker’s server 19 File Disclosure • Idea: include local files on disk 20 File Disclosure 21 File Disclosure 22 File Disclosure 23 Credential Theft • Goal: obtain user’s NTLM hash 24 Credential Theft • Offline cracking – NTLMv2: modern GPU requires 2,5h for eight chars – NTLMv1, LM: considered broken [Marlinspike2012] • Pass-the-hash or relay attacks – Compare [Ochoa2008, Hummel2009] – Depending on Windows security policy 25 Overview 1. OOXML/ODF Basics 2. Denial of Service 3. Invasion of Privacy 4. Information Disclosure 5. Data Manipulation File Write Access, Content Masking 6. Code Execution 7. Evaluation 20 File Write Access • Idea: XForms allow local file as target 27 File Write Access CVE-2020-12803 28 Content Masking: OOXML 29 Content Masking: ODF Parsed by MS Office Parsed by LibreOffice 30 Overview 1. OOXML/ODF Basics 2. Denial of Service 3. Invasion of Privacy 4. Information Disclosure 5. Data Manipulation 6. Code Execution Macros 7. Evaluation 24 Macros 32 Addition Findings CVE-2018-8161 (memory corruption) 33 One-Click RCE in LibreOffice • We can write XML to arbitrary files • LibreOffice config file itself is XML 34 One-Click RCE in LibreOffice CVE-2020-12803 35 Overview 1. OOXML/ODF Basics 2. Denial of Service 3. Invasion of Privacy 4. Information Disclosure 5. Data Manipulation 6. Code Execution 7. Evaluation 28 Evaluation 37 Countermeasures • Removing insecure features • User privacy by default • Limitation of resources • Elimination of ambiguities 38 Conclusion • OOXML and ODF are complex formats • Thorough analysis of dangerous features • One-click pure logic chain RCE in 2020 ;) Artifacts: https://github.com/RUB-NDS/Office-Security 39.