Drucksache: Windows Developer 7.16 - Alles im Fluss?
Im windows.developer 7.16 ist ein Artikel über Angriffe auf den Kontrollfluss von .NET-Anwendungen erschienen.
Das alte Wettrennen zwischen Angreifern auf und Verteidigern von Windows-Rechnern geht in eine neue Runde: Auf der DEF CON 23 wurden von Topher Timzen Angriffe auf den Kontrollfluss von .NET-Anwendungen vorgestellt [11]. Ein gutes Beispiel dafür, dass man beim Absichern seiner Software nie nachlassen darf.
Die vorgestellten Angriffe haben einen "kleinen" Nachteil: Sie erfordern eine bösartige Anwendung auf dem anzugreifenden Rechner. Und ein Angreifer, der die bereits hat, hat den Rechner normalerweise schon unter seiner Kontrolle. Entweder, weil über eine Schwachstelle Schadcode eingeschleust wurde, oder weil der Benutzer zum Beispiel über Social Engineering dazu gebracht wurde, die bösartige Anwendung zu installieren. Und dann kann der Angreifer auch beliebige andere Schadprogramme entweder selbst installieren oder installieren lassen und ist nicht mehr darauf angewiesen, eine vorhandene Anwendung zu manipulieren. Es sei denn, er will so seinen Angriff verschleiern.
Es spricht aber nichts dagegen, dass jemand einen Weg findet, die neuen Angriffe auch ohne bösartige Anwendung auf dem anzugreifenden Rechner durchzuführen. Und dann wird das Ganze unschön.
Und ein möglicher Einsatz des Angriffs wurde im Vortrag gar nicht erwähnt: Ist damit unter Umständen eine Privilegieneskalation möglich? Kann eine bösartige Anwendung, die mit normalen Benutzerrechten ausgeführt wird, eine mit Administrator-Rechten laufende Anwendung manipulieren und der Angreifer sich so Administrator-Rechte verschaffen? Eigentlich würde ich erwarten, dass das nicht möglich ist, weil die "Benutzer-Anwendung" nicht auf die "Administrator-Anwendung" zugreifen darf. Oder besser: Nicht darauf zugreifen können sollte. Aber ist das wirklich immer der Fall?
Und hier noch die Links und Literaturverweise aus dem Artikel:
- [1] Carsten Eilers: "Schutzmaßnahmen: Der Pufferüberlauf im Überblick"
- [2] Carsten Eilers: "Schutzmaßnahmen: Canary und DEP gegen Pufferüberlauf-Schwachstellen"
- [3] Carsten Eilers: "Schutzmaßnahmen: ASLR gegen Pufferüberlauf-Schwachstellen"
- [4] Carsten Eilers: "Schutzmaßnahmen: ASLR kann unterlaufen werden"
- [5] Carsten Eilers: "Schutzmaßnahmen: Weitere Angriffe trotz ASLR"
- [6] Carsten Eilers: "Schutzmaßnahmen in Windows 8"
- [7] Carsten Eilers: "Lebensretter an Tag Null"; windows.developer 10.2014
- [8] Carsten Eilers: "Windows 10 und die Sicherheit"; windows.developer 5.15
- [9] Carsten Eilers: "Wie sicher ist C# 6.0?"; windows.developer 10.15
- [10] Carsten Eilers: "Windows 10: gefährlich oder gefährdet?"; windows.developer 2.16
- [11] Topher Timzen; DEF CON 23: "Hijacking Arbitrary .NET Application Control Flow" (Präsentation als PDF, Whitepaper als PDF, Video auf YouTube)
- [12] MSDN: "Reflection in the .NET Framework"
- [13] Topher Timzen: Gray Tools
- [14] Jon McCoy; OWASP AppSec DC 2010: "Hacking .NET Applications at Runtime: A Dynamic Attack" (Präsentation als .ppt, Video auf Vimeo)
- [15] "Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (2A, 2B & 2C): Instruction Set Reference, A-Z"; Nummer 325383-053US, Januar 2015 (PDF)
- [16] Ziad Elmalki; CodeProject: "CLR Injection: Runtime Method Replacer"
- [17] Topher Timzen: "Acquiring .NET Objects from the Managed Heap" (PDF)
- [18] ConstructAnObject auf GitHub
- [19] ManagedHeapLocation auf GitHub
- [20] IntPtrToObject auf GitHub
Trackbacks