Universal Windows Apps
Total Page:16
File Type:pdf, Size:1020Kb
Universal Windows Apps Version: 1.0 Introduction Federal Office for Information Security Post Box 20 03 63 D-53133 Bonn Phone: +49 22899 9582-0 E-Mail: [email protected] Internet: https://www.bsi.bund.de © Federal Office for Information Security 2020 2 Federal Office for Information Security Table of Contents 1 Introduction ................................................................................................................................................................................... 5 1.1 Zusammenfassung................................................................................................................................................................. 5 1.2 Executive Summary .............................................................................................................................................................. 6 1.3 Concepts and Terms ............................................................................................................................................................. 7 2 Technical Analysis of Functionalities .................................................................................................................................. 9 2.1 AppContainer processes ...................................................................................................................................................... 9 2.2 Integrity verification .......................................................................................................................................................... 14 2.3 Managing third-party UWAs .......................................................................................................................................... 20 Appendix .................................................................................................................................................................................................... 24 Tools ....................................................................................................................................................................................................... 24 AppContainer process launcher ................................................................................................................................................. 24 Proof-of-concept: UWA manager .............................................................................................................................................. 27 Event IDs ............................................................................................................................................................................................... 28 References ............................................................................................................................................................................................ 66 Keywords and Abbreviations ....................................................................................................................................................... 68 Federal Office for Information Security 3 Introduction Figures Figure 1: SIDs associated with Settings.dat ................................................................................................................................... 11 Figure 2: The Microsoft Photos UWA requesting and retrieving a file ............................................................................. 12 Figure 3: Function call trace ................................................................................................................................................................ 12 Figure 4: UWA capability evaluation ............................................................................................................................................... 13 Figure 5: An UWA process token ...................................................................................................................................................... 13 Figure 6: Integrity verification: notepad.appx ............................................................................................................................. 14 Figure 7: Invocation of WinVerifyTrust ......................................................................................................................................... 15 Figure 8: File hashes as signed data .................................................................................................................................................. 16 Figure 9: Signature verification ......................................................................................................................................................... 17 Figure 10: Verification of a data block ............................................................................................................................................ 19 Figure 11: Concept overview .............................................................................................................................................................. 20 Tables Table 1: A high-level comparison between UWAs and Win32 applications................................................................... 10 4 Federal Office for Information Security 1 Introduction 1.1 Zusammenfassung Dieses Dokument stellt das Ergebnis von Arbeitspaket 9 des Projekts „SiSyPHuS Win10: Studie zu Systemaufbau, Protokollierung, Härtung und Sicherheitsfunktionen in Windows 10“ dar. Das Projekt wird durch die Firma ERNW GmbH im Auftrag des Bundesamts für Sicherheit in der Informationstechnik (BSI) durchgeführt. Ziel dieses Arbeitspakets ist die Analyse von Universal Windows Applications (UWAs). Wie durch das BSI vorgegeben, wird Windows 10 Enterprise long-term servicing channel (LTSC) 2019, Deutsch betrachtet. Die in diesem Dokument beschriebenen Code-Analysen wurden sowohl dynamisch und als auch statisch durchgeführt; jeweils unter Nutzung des windbg Debuggers und entsprechend dem IDA Disassembler. Die folgenden Abschnitte fassen die erarbeiteten Ergebnisse zusammen und verweisen auf die jeweiligen Kapitel für die ausführlichere Beschreibung. AppContainer-Prozesse (Abschnitt 2.1): Windows 10 enthält die UWP-Anwendungsplattform (Universal Windows Platform) zum Entwickeln und Ausführen von Benutzeranwendungen auf heterogenen Windows-Plattformen wie Computern, Smartphones, X-Box-Geräten und Tablets. Diese Anwendungen werden als Universal Windows Applications (UWAs) bezeichnet. Auf Betriebssystemebene sind UWAs Prozesse, die in der AppContainer-Anwendungsausführungsumgebung ausgeführt werden (ms_appi, 2020). In dieser Arbeit werden diese Prozesse als AppContainer-Prozesse bezeichnet. AppContainer ist eine Anwendungs-Sandbox-Umgebung, die Mechanismen zur Einschränkung von AppContainer-Prozessen hinsichtlich der Systemressourcen implementiert, auf die sie zugreifen können. Diese Einschränkung wird sowohl auf Prozess-, Dateisystem- und Windows-Objekt-Ebene implementiert. Integritätsprüfung (Abschnitt 2.2) UWAs werden zur Bereitstellung in Form von Anwendungspaketdateien an Windows-Instanzen verteilt. Anwendungspaketdateien archivieren mehrere Dateien und sind im ZIP- Archivdateiformat formatiert. Zusätzlich zu den ausführbaren Dateien einer UWA umfasst das Anwendungspaket die folgende Dateien, die relevant sind innerhalb die Integritätsprüfung: i) AppxBlockMap.xml: Dies ist die Paketblockzuordnung. Die Paketblockzuordnung ist eine XML-Datei, die unter anderem eine Liste der UWA-Dateien und Hashes einzelner Blöcke der im Anwendungspaket gespeicherten Daten enthält. Jeder Hash wird mit dem Base-64-Codierungsschema codiert; ii) AppxSignature.p7x: Dies ist die Paketsignatur. Die Paketsignatur besteht aus Abstract Syntax Notation One (ASN.1)-formatierten Daten gemäß der Public Key Cryptography Standards (PKCS) #7- Spezifikation. AppxSignature.p7x speichert unter anderem die signierten Daten, die Unterzeichner-, Gegenunterzeichner- und Zwischenzertifikate, eine Gegensignatur und die Signatur selbst (d. h. die verschlüsselten signierten Daten). Die signierten Daten bestehen aus berechneten Hashes signaturgeschützter Daten, die im Anwendungspaket gespeichert sind, wie zum Beispiel AppxManifest.xml und AppxBlockMap.xml. Der AppxSvc-Dienst (Appx Deployment Service), ist für die Bereitstellung von Anwendungspaketdateien und die Überprüfung ihrer Integrität verantwortlich. Dies umfasst die Überprüfung der Paketsignatur. Wenn die Überprüfung der Paketsignatur erfolgreich ist, wird die Integrität einzelner Blöcke der in der Anwendungspaketdatei gespeicherten Daten überprüft. Dies erfolgt basierend auf dem Vergleich berechneter Datenblock-Hashes mit den entsprechenden Base64-codierten Hash- Werten, die in AppxBlockMap.xml gespeichert sind. Verwalten von UWAs von Drittanbietern (Abschnitt 2.3) In dieser Arbeit wird ein minimalistisches Konzept für die Verwaltung von UWAs von Drittanbietern vorgestellt, die in einem privaten lokalen UWA- Repository, d.h. einem Repository von Anwendungspaketdateien, gehostet werden. Das Konzept dient einem Demonstrationszweck und kann erheblich erweitert werden. Es unterstützt die folgenden UWA- Verwaltungsaktivitäten: UWA-Bereitstellung, UWA-Deinstallation und UWA-Aktualisierung. Diese Aktivitäten werden in Windows 10-Instanzen ausgeführt, die als Windows-Clients bezeichnet werden. Die Federal Office for Information Security 5 Introduction Windows-Clients kommunizieren über eine Netzwerkverbindung mit dem