{"id":191626,"date":"2017-06-23T11:51:38","date_gmt":"2017-06-23T09:51:38","guid":{"rendered":"http:\/\/www.borncity.com\/blog\/?p=191626"},"modified":"2023-07-13T15:19:50","modified_gmt":"2023-07-13T13:19:50","slug":"windows-ghosthack-umgeht-patchguard-protection","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2017\/06\/23\/windows-ghosthack-umgeht-patchguard-protection\/","title":{"rendered":"Windows: GhostHack umgeht PatchGuard Protection"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2015\/01\/Schutz.jpg\" width=\"40\" height=\"47\" align=\"left\" \/>Sicherheitsexperten sind auf eine M\u00f6glichkeit gesto\u00dfen, die Windows PatchGuard Protection auszuhebeln. \u00dcber den GhostHack genannten Angriffsweg k\u00f6nnen Angreifer den Windows Kernel patchen und so Root-Kits oder andere Malware im System verankern. Das Ganze ist zwar auf spezielle Szenarien beschr\u00e4nkt, funktioniert aber auch unter Windows 10 und zeigt, dass die Welt nicht einfach 'Schwarz-Wei\u00df' zu sein scheint.<\/p>\n<p><!--more--><\/p>\n<h2>Was ist Windows PatchGuard Protection?<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/f31c90a1cbe74ca7b1bf044b8e6bd389\" alt=\"\" width=\"1\" height=\"1\" \/>Laut <a href=\"https:\/\/en.wikipedia.org\/wiki\/Kernel_Patch_Protection\" target=\"_blank\" rel=\"noopener\">Wikipedia<\/a> (Englisch) handelt es sich bei PatchGuard<b> <\/b>um eine Technik, die in 64-Bit-Windows eingef\u00fchrt wurde, um ein Patchen des Kernels zu verhindern. Die von Microsoft Kernel Patch Protection (KPP) genannte Technik wurde erstmals 2005 mit den x64 Editionen von Windows XP und Windows Server 2003 Service Pack 1 eingef\u00fchrt.<\/p>\n<p>Microsoft hat dieses MSDN-Dokument (Englisch) mit einigen Antworten zu verschiedenen Fragen ver\u00f6ffentlicht. Auch diese englische Website befasst sich mit der Thematik. 32-Bit-Versionen von Windows verwenden diese Technik nicht, so dass Virenscanner entsprechenden Gebrauch vom Kernel-Patching machen.<\/p>\n<h2>GhostHook \u2013 PatchGuard Bypassing<\/h2>\n<p>In <a href=\"https:\/\/www.cyberark.com\/threat-research-blog\/ghosthook-bypassing-patchguard-processor-trace-based-hooking\/\" target=\"_blank\" rel=\"noopener\">diesem Blog-Beitrag<\/a> vom 22. Juni 2017 beschreibt Kasif Dekel einen neuen Angriffsvektor, mit dem sich der Microsoft Kernel Patch Protection (KPP) Schutz umgehen l\u00e4sst. Der Angriff funktioniert aber nur auf Intel CPUs, bei denen <a href=\"https:\/\/web.archive.org\/web\/20191117051201\/https:\/\/software.intel.com\/en-us\/blogs\/2013\/09\/18\/processor-tracing\" target=\"_blank\" rel=\"noopener\">Intel Processor Trace<\/a> (PT) verwendet wird. Laut Intel ist :<\/p>\n<blockquote><p>Intel\u00ae Processor Trace (Intel\u00ae PT) is an exciting new feature coming in future processors that can be enormously helpful in debugging because it will expose an accurate and detailed trace of activity with triggering and filtering capabilities to help with isolating the tracing that matters.<\/p><\/blockquote>\n<p>Intel\u00ae Processor Trace (Intel PT) ist eine Erweiterung der Intel\u00ae Architektur, die Informationen \u00fcber die ausgef\u00fchrte Software erfassen kann, ohne einen gro\u00dfen Overhead auf der Hardware f\u00fcr dieses Tracing zu verursachen. Also nur gutes f\u00fcr den Anwender und die Entwickler.<\/p>\n<p>Die Trace-Informationen (Timing, Programmfluss, etc.) werden in Datenpaketen gesammelt und intern gepuffert, bevor sie zum Memory Subsystem oder einem anderen Ausgabemechanismus der Platform weitergereicht werden. Die urspr\u00fcngliche Implementierung von Intel PT erm\u00f6glicht ein 'Control Flow Tracing' (Ablaufverfolgung) \u00fcber eine variable Anzahl von Datenpaketen, die per Software Decoder abgearbeitet werden k\u00f6nnen. Dies erm\u00f6glicht einer Debug-Software die Trace-Daten auszuwerten und den Programmablauf zu rekonstruieren.<\/p>\n<p>Hier k\u00f6nnten Angreifer m\u00f6glicherweise ansetzen. Normalerweise erfordert der Zugriff auf die Intel PT-Operationen aber, dass ein Angreifer die betreffenden Funktionen als Code im Kernel verankert. Genau dies wird aber durch den PatchGuard verhindert.<\/p>\n<p>Die CyberArk-Forscher haben nach eigenen Angaben eine Sicherheitsl\u00fccke festgestellt. Wird ein extrem kleiner Puffer f\u00fcr die Verarbeitung von Intel PT Paketen bereitgestellt, geht der CPU irgendwann der Pufferspeicher aus. Dies f\u00fchrt dazu, dass ein PMI-Handler (wohl ein Handler f\u00fcr das <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/hardware\/ff543905(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener\">Power Meter Interface<\/a>) aufgerufen wird, um den Code-\u00dcberlauf zu behandeln. Und hier kann dann der Angreifer ansetzen. Die CyberArk-Forscher beschreiben einen Ansatz, um \u00fcber den PMI-Handler, \u00fcber den sie die Kontrolle haben, Kernel-Code zu patchen.<\/p>\n<p>Denn das Problem besteht darin, dass der PatchGuard den PMI-Handler nicht \u00fcberwacht, so dass ein Angreifer beliebigen Schadcode im Kernel einschleusen kann. Und dieser Ansatz wird nicht durch das Betriebssystem entdeckt. Das gilt \u00fcbrigens auch f\u00fcr das sicherste aller Microsoft Betriebssysteme, n\u00e4mlich Windows 10 (64 Bit).<\/p>\n<h2>Microsoft wird nicht patchen<\/h2>\n<p>Die CyberArk-Forscher haben Microsoft mit den Ergebnissen ihres Ansatzes konfrontiert und folgende R\u00fcckmeldung erhalten:<\/p>\n<blockquote><p><em>The engineering team has finished their analysis of this report and determined that it requires the attacker already be running kernel code on the system. As such, this doesn't meet the bar for servicing in a security update however it may be addressed in a future version of Windows. As such I've closed this case.<\/em><\/p><\/blockquote>\n<p>Weil der Angreifer bereits Kernel-Code auf dem System ausf\u00fchren k\u00f6nnen muss, wird das Ganze als unkritisch eingestuft und nicht gepatcht. M\u00f6glicherweise greift man das Problem in k\u00fcnftigen Versionen von Windows auf und \u00e4ndert da was. Dass es eine Technik gibt, um PatchGuard, eine Kernel-Komponente, zu umgehen, scheint dort niemanden zu interessieren. Mal schauen, ob Hacker diesen Ansatz aufgreifen und mit anderen Angriffsmethoden kombinieren k\u00f6nnen. Bei <a href=\"https:\/\/web.archive.org\/web\/20221205161755\/https:\/\/www.bleepingcomputer.com\/news\/security\/new-ghosthook-attack-bypasses-windows-patchguard-protections\/\" target=\"_blank\" rel=\"noopener\">Bleeping Computer<\/a> und bei <a href=\"http:\/\/thehackernews.com\/2017\/06\/ghosthook-windows-10-hacking.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a> hat man die Erkenntnisse der CyberArk-Forscher in eigenen englischsprachigen Beitr\u00e4gen zusammen gefasst. Erg\u00e4nzung: Bei heise.de gibt es zwischenzeitlich d<a href=\"https:\/\/www.heise.de\/security\/meldung\/Windows-GhostHook-Technik-umgeht-Rootkit-Schutz-Microsoft-zuckt-die-Achseln-3754511.html\" target=\"_blank\" rel=\"noopener\">iesen deutschsprachigen Artikel<\/a> zum Thema.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sicherheitsexperten sind auf eine M\u00f6glichkeit gesto\u00dfen, die Windows PatchGuard Protection auszuhebeln. \u00dcber den GhostHack genannten Angriffsweg k\u00f6nnen Angreifer den Windows Kernel patchen und so Root-Kits oder andere Malware im System verankern. Das Ganze ist zwar auf spezielle Szenarien beschr\u00e4nkt, funktioniert &hellip; <a href=\"https:\/\/borncity.com\/blog\/2017\/06\/23\/windows-ghosthack-umgeht-patchguard-protection\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426,301],"tags":[1018,2452,6300,4328,3288],"class_list":["post-191626","post","type-post","status-publish","format-standard","hentry","category-sicherheit","category-windows","tag-malware","tag-patch","tag-patchguard","tag-sicherheit","tag-windows-en"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/191626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=191626"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/191626\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=191626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=191626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=191626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}