AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kernel Filtertreiber umgehen? Ist das möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

Kernel Filtertreiber umgehen? Ist das möglich?

Ein Thema von hitzi · begonnen am 23. Okt 2006 · letzter Beitrag vom 23. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#1

Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 12:21
Hallo,

ich bin im Netz über dieses PDF gestolpert: http://www.csnc.ch/static/download/m...snc_german.pdf
[EDIT]In diesem PDF wird die Verwendung eine Kernelfiltertreibers beschrieben, welcher die Funktion NTCreateProcess "hooked" und vor der Ausführung eines Programmes überprüft, ob dieses Programm ausgeführt werden darf.[/EDIT]

Ist dieses Vorgehen sicher oder gibt es Techniken, die solche Filtertreiber aushebeln könnten?

Gruß
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 12:42
Es gibt Techniken die das Problemlos aushebeln können.
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 12:45
Gibt es dazu mehr Details?
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 13:00
Ich empfehle ausgedehntes Schmökern auf www.osronline.com, die kostenlose Mitgliedschaft dort, sowie die auf dem dortigen Newsserver vorhandenen Newsgroups ausführlich zu lesen. Das Thema ist relativ komplex, für den Einstieg sei nur gesagt, dass man sich die SDT (eine Art Sprungtabelle in der grundlegende Systemfunktionsadressen (Einsprungpunkte in den Kernel) zu finden sind) anschauen kann, und wenn eine der Adressen dort ausserhalb des Speicherbereichs des Kernels liegt, hat man den Hook gefunden. Es ist dann auch kein grosses Problem, entweder eigene Massnahmen zu ergreifen (nen Kopierschutz würde dann z.B. ein manipuliertes System vermuten und den Start verweigern) oder einfach "drumrum" zu laufen. Dazu sucht man einfach im Kernel nach einem charakteristischen Muster an dem man die gehookte Funktion erkennt (man könnte je nach gehookter Funktion natürlich auch einfach in den Exports nachschauen, aber wenn ich einen Hook entdeckt habe, muss ich auch davon ausgehen dass dort manipuliert wurde), und ruft dann die gefundene Adresse statt der regulären auf.

Nachtrag: Hab jetzt doch endlich das PDF komplett zum Anzeigen, und sehe dass da direkt im Kernel gepatcht werden soll. Sowas ist wirklich nicht die feine englische Art Das Vorgehen ist dabei praktisch gleich, nur etwas aufwendiger, weil man nicht nur einfach Adressen interpretiert sondern Assemblerbefehle. Man holt sich die Einsprungadresse und liest von dort einfach ein paar Bytes (je nachdem wie paranoid man ist ) und schaut ob Sprungbefehle dabei sind, die Ziele ausserhalb des Kerneladressbereichs haben. Zum Beispiel in der Art "ist der erste Befehl ein Sprung zu einer Adresse ausserhalb des Kernel-Adressbereiches, dann BUMM!"

Es bleibt noch der obligatorische Hinweis, dass das Rumwerkeln an den Betriebssystem-Innereien besser entsprechend fähigen Leuten überlassen werden sollte... Zumindest aber sollte man sich über die möglichen Konsequenzen seines Tuns wie Datenverlust und zerschossene Filesysteme im Klaren sein
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 13:06
Jetzt stellt sich aber die Frage, wie ich das Programm zum Analysieren der Sprungtabellen geladen bekomme, wenn ich durch oben genanntes System den Start dieser bereits unterbinde, weil ich nur ausgewählte Programme zulasse.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 13:39
Das käme auf die konkrete Implementation des Blockers an. Die Möglichkeiten dazu sind vielfältig, aber wollen wir jetzt Exploittechniken diskutieren? Im einfachsten Fall hat der Blocker eine Liste mit erlaubten Prozessen, dann würde sich z.B. eine Explorer.exe oder soetwas anbieten
Nachtrag: Wenn die cmd.exe nicht geblockt ist, dann reicht mir auch die Kommandozeile um den Filter zu lokalisieren und Windows für den nächsten Start vom Laden dieses Filters abzuhalten.

Hier wird sehr schnell klar, dass so ein Prozessfilter kein Allheilmittel sein kann, sondern nur ein weiterer, kleiner Baustein in einem umfassenden Sicherheitskonzept. Leider verstehen die meisten Leute das aber nicht ("Trojaner? Pah, ich hab doch die Windows Firewall!")
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 13:40
Zitat von OldGrumpy:
aber wollen wir jetzt Exploittechniken diskutieren
War es nicht seine Frage, wie man obiges (theoretisches) System aushebeln kann?
Zitat von OldGrumpy:
DasIm einfachsten Fall hat der Blocker eine Liste mit erlaubten Prozessen, dann würde sich z.B. eine Explorer.exe oder soetwas anbieten
Mit dem passenden MD5/SHA...? Etwas mehr Hürde als nur den Dateinamen darfst Du schon erwarten...

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 13:46
Natürlich kann man das Szenario jetzt beliebig komplex gestalten. Ich habe aber eigentlich keine Lust, mit mir selber nun das "Was wäre wenn"-Spiel zu spielen, da soll der Fragesteller entweder etwas konkreter werden oder selber Hirnschmalz investieren So allgemein wie hitzi fragte, gibts nur eine Antwort, und die lautet "ja, kann man umgehen"
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 14:01
Mir geht es um die Sicherheit eines solchen Systems. Ausgangslage soll ein fertig abgesichertes System sein, d.h. nur authorizierte Programme können gestartet werden. Welche Möglichkeiten bestehen evt. diesen Schutz zu umgehen. Kann man Programme evt. noch anders starten lassen? By the way ... NTCreateProcessEx ist genauso "gehookt".

Mich fasziniert die Möglichkeit eines solchen Systems zum Beispiel noch unbekannte Viren abzuwehren, da diese "eigentlich" gar nicht erst auf dem abgesicherten System ausgeführt werden können. Die Userschnittstelle eines solchen Systems und somit der "Angriff" über diese, soll mal außen vor gelassen werden. Mir geht es nur darum, ob man so einen schon aktiven! Kernelfiltertreiber (läßt also unbekannte Programme nicht mehr starten) umgehen kann.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Kernel Filtertreiber umgehen? Ist das möglich?

  Alt 23. Okt 2006, 14:08
Das kommt ganz darauf an, welche Angriffsvektoren offen sind (offen sein müssen). Und das wiederum hängt in großem Maße davon ob, obs ein Einzelrechner ist, Teil eines Netzwerkes oder gar Teil einer Domäne. In Falle eines Netzwerkes reicht ja ein entsprechender kompromittierter Rechner aus, um über RPC alle möglichen Änderungen vorzunehmen. Und RPC abschalten ist wohl keine Alternative, da Windows selber intensiven Gebrauch davon macht.
Die Gretchenfrage ist halt, welche Prozesse laufen dürfen müssen, und inwieweit diese Prozesse exploitfähig sind. Und bei Lücken wie "Anzeigen eines JPEG-Bildes reicht zur Infektion" würde ich doch prinzipiell eher von der Unsicherheit des Systems ausgehen Holzauge sei wachsam
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz