Navigation und Service

SiSyPHuS Win10: Konzept zur Nachverfolgung von Änderungen am Betriebssystem

Dieses Arbeitspaket besteht aus zwei Teilen. Ziel des ersten Teils ist die Analyse der Microsoft Windows Gruppenrichtlinienkomponenten des Microsoft Windows 10 Betriebssystems. Ziel des zweiten Teils ist die Entwicklung einer technischen Lösung zur Detektion, Überwachung und Bewertung von Änderungen an Dateien mit ausführbarem Binärcode. Daneben wird eine technische Lösung zur Detektion und Analyse von Modifikationen an der Windows Registry entwickelt.

Inhaltsverzeichnis – Teil 1:

1 Einleitung
1.1 Zusammenfassung
1.2 Executive Summary
1.3 Konzept und Fachbegriffe
2 Technische Analyse
2.1 Deployment von Gruppenrichtlinien
2.2 Loggingmöglichkeiten
2.2.1 Analyse von "Administrativen Vorlagen" (administrative template files)
Anhang
- Tools
- Powershell: Administrative Vorlagen
- Group Policy Extensions
- Microsoft-Windows-Gruppenrichtlinien
- Literaturverzeichnis
- Schlüsselwörter und Abkürzungsverzeichnis

Inhaltsverzeichnis – Teil 2:

1 Einleitung
1.1 Zusammenfassung
1.2 Executive Summary
2 Konzept und Fachbegriffe
2.1 Szenario
2.2 Überblick und Fokus
3 Stand der Technik: Binary Diffing
3.1 Binary Diffing Frameworks
4 Technische Lösung zu Szenario S1
4.1 Einzelschritte
5 Technische Lösung zu Szenario S2
5.1 Einzelschritte
6 Technische Lösung zu Szenario S5
6.1 Einzelschritte
7 Technische Lösung zu Szenario S7
7.1 Format von Hive-Dateien
7.2 Analysewerkzeuge
7.3 Vergleich
8 Aufwände
9 Zusammenfassung und Empfehlung
Anhang
- Schlüsselwörter und Abkürzungsverzeichnis
- Literaturverzeichnis

Kurzzusammenfassung Teil 1:

Gruppenrichtlinien ist eine Windows-Verwaltungstechnologie, welche die Bereitstellung und Verwaltung von Konfigurationsobjekten für Microsoft Produkte ermöglicht. Diese Konfigurationsobjekte sind allgemein als Gruppenrichtlinienobjekte bekannt, welche Richtlinieneinstellungen beinhalten. Richtlinieneinstellungen sind Verwaltungsanweisungen, mit denen computerweite und benutzerspezifische Eigenschaften und Verhaltensweisen konfiguriert werden.

Richtlinieneinstellungen werden mithilfe des Gruppenrichtlinienprotokolls bereitgestellt. Dabei handelt es sich um eine klassische Client-Server-Beziehung zwischen:

  • der Entität, die Richtlinieneinstellungen speichert (im Folgenden als Gruppenrichtlinienserver bezeichnet) und
  • der Entität, auf der die auf dem Gruppenrichtlinienserver gespeicherten Richtlinieneinstellungen angewendet werden (im Folgenden als Gruppenrichtlinienclient bezeichnet).

Das Gruppenrichtlinienprotokoll wird als Software-Entität implementiert, die im Folgenden als Gruppenrichtlinien-Engine (dynamic link library (DLL)-Datei: gpsvc.dll) bezeichnet wird. Unter anderem wird das Layout der Daten angegeben, die zwischen dem Gruppenrichtlinienserver und dem Client ausgetauscht werden. Der Gruppenrichtlinienclient verwendet das Gruppenrichtlinienprotokoll, um die für ihn vorgesehenen Richtlinieneinstellungen von einem Gruppenrichtlinienserver abzurufen. Der Gruppenrichtlinienserver speichert Richtlinieneinstellungen in einem Gruppenrichtliniendatenspeicher. Der Richtliniendatenspeicher wird von einem Gruppenrichtlinienadministrator mithilfe von Verwaltungstools wie dem Dienstprogramm Group Policy Management Console verwaltet. Hierbei kann ein Administrator beispielsweise Richtlinieneinstellungen zum Gruppenrichtliniendatenspeicher hinzufügen, ändern oder daraus entfernen.

Kurzzusammenfassung Teil 2:

In Abschnitt 2 werden die generellen Begriffe und Konzepte eingeführt, welche zur Beschreibung der technischen Lösung benötigt werden. Dort wird zwischen mehreren Szenarien differenziert, welche eine solche Lösung erfordern. Insgesamt ergeben sich sieben Szenarien:

  • Szenario S1: Modifikationen durch Windows Updates für gleiche Windows 10 Versionen (Abschnitt 2.1.1.1)
  • Szenario S2: Modifikationen durch Windows Updates für unterschiedliche Windows Versionen (Abschnitt 2.1.1.2)
  • Szenario S3: Modifikationen durch Installationsprogramme (Abschnitt 2.1.1.3)
  • Szenario S4: Vergleich eines beliebigen, nicht-kontrollierten Zielsystems mit einem entsprechenden Basissystem (Abschnitt 2.1.2.1)
  • Szenario S5: Vergleich eines beliebigen, nicht-kontrollierten Zielsystems mit einem anderen beliebigen, nicht kontrollierten Basissystem (Abschnitt 2.1.2.2)
  • Szenario S6: Laufzeitmodifikationen eines Windows 10 Systems (Abschnitt 2.1.3.1)

Neben den Szenarien zur Bestimmung von Modifikationen an Dateien mit Binärcode wird ein weiteres, davon unabhängiges Szenario betrachtet:

  • Szenario S7: Analyse von Modifikationen der Windows Registry (Abschnitt 2.1.4.1)

In Abschnitt 2.2 wird der genaue Umfang des vorliegenden Dokuments definiert. Dort wird spezifiziert, dass das vorliegende Dokument sich auf die technischen Lösungen für Szenario S1, S2, S5 und S7 konzentriert. Es soll jedoch angemerkt werden, dass sich bestimmte Teile dieser technischen Lösungen auch auf andere Szenarien anwenden lassen.

Da die technischen Lösungen der Szenarien teilweise auf vorhandenen Methoden und Frameworks für Binary Diffing basieren, fokussiert sich ein Teil dieses Dokuments darauf, bereits existierende Methoden vorzustellen und außerdem existierende Binary Diffing Frameworks zu evaluieren. In Abschnitt 3 wird der aktuelle Forschungsstand bezüglich Binary Diffing dargelegt und ein Vergleich zwischen den Ansätzen, welche in unterschiedlichen Forschungsartikeln genutzt werden, gezogen. Obwohl jedoch eine Vielzahl an Forschungsartikeln existieren, veröffentlichen fast keiner der Forscher die Implementierung des dargestellten Ansatzes. Daher ist eine Integration der dargestellten Ansätze innerhalb eines Binary Diffing Frameworks schwierig und mit erheblichem Aufwand verbunden.

Neben dem aktuellen Forschungsstand bezüglich Binary Diffing wurden existierende Binary Diffing Frameworks evaluiert (Abschnitt 3.1). Die Evaluation hat sich auf Frameworks konzentriert, die aktiv gepflegt werden und innerhalb der Gemeinschaft von Reverse Engineers etabliert sind. Insgesamt konnten nur zwei Frameworks identifiziert werden, welche diese Bedingungen erfüllen:

Diaphora [1] von Joxean Koret

BinDiff [2] von Zynamics (im Besitz von Google)

Die Informationen werden in Abschnitt 9 zusammengefasst. Zusätzlich werden Empfehlungen für die Implementierung und die Ausführung der technischen Lösung gegeben. Insgesamt hängen die Empfehlungen davon ab, wieviel Personal zur Implementierung der technischen Lösung zur Verfügung steht und welche internen Anforderungen bestehen. Falls nur wenig personelle Ressourcen zur Verfügung stehen, wird empfohlen, eines der existierenden Binary Diffing Frameworks zu verwenden. Hierbei wird außerdem empfohlen, ein Open Source Framework zu nutzen, da dieses direkt erlaubt, die Implementierung des Frameworks zu verstehen und, falls notwendig, Teile des Frameworks zu modifizieren. Falls jedoch eine vollständige Kontrolle über das Design des Binary Diffing Frameworks gewünscht ist und genügend personelle Ressourcen mit Software-Entwicklungserfahrung zur Verfügung stehen, ist es eine praktikable Lösung, ein neues Binary Diffing Framework basierend auf den Informationen in diesem Dokument zu implementieren. Ähnliche Argumente treffen auch für die Implementation des Registry Diffing Programms zu.