Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi "Persistent" Firewall (https://www.delphipraxis.net/153313-persistent-firewall.html)

DarkItachi 28. Jul 2010 18:41

"Persistent" Firewall
 
Guten Abend,

wir sollen bis zum Ende der Sommerferien versuchen, unsere selbstgemachte Firewall "persistent" zu machen, so dass sie nicht über Programme wie der Windows Taskmanager oder irgendwelchen Viren oder Scripten beendet werden kann sondern nur wenn der User selbstständig auf Beenden klickt.

Folgende Stichwörter wurden uns gegeben:
persistent, remote-thread, process-protection

Uns wurde erlaubt, uns überall zu informieren, und uns wurde klar und deutlich gesagt, dass diese Aufgabe sehr schwer sein wird.

Könnt ihr mir weitere Stichwörter bzw. ein Source/Beispiel geben?

Ich komme nämlich gerade gar nicht klar ^^

MfG
DarkItachi

Zacherl 29. Jul 2010 06:39

AW: "Persistent" Firewall
 
Ich nehme an, es handelt sich um ein UNI / Schul Project? Dann könnte man z.b. Code in den Explorer injizieren (WriteProcessMemory, CreateRemoteThread) der prüft, ob die Firewall aktiv ist und wenn nicht neu startet.

Ist allerdings eine unsaubere Lösung, da sie unter 64 bit nicht funktionieren wird und außerdem leicht ausgehebelt werden kann. Das wird allerdings ohne einen Treiber immmer so sein.

Alternative und sauberere Lösung: Eine DLL programmieren, die Funktionen wie OpenProcess() hookt und diese in alle Prozesse laden (entweder per Injection oder als AppInit DLL eintragen). So könnte man verhindern, dass der Prozess über den Taskmanager terminiert wird (auch hier kein 64 bit Support außer ihr erstellt mit Lazarus eine zweite 64 bit DLL). Ein Thread der prüft, ob die Firewall noch aktiv ist könnte man ja zusätzlich in der DLL anbringen.

Dritter Vorschlag: 2 sich gegenseitig überwachende Prozesse.

mkinzler 29. Jul 2010 06:48

AW: "Persistent" Firewall
 
Im Allgemeinen, die selben dreckigen Tricks die auch Malware-Entwickler einsetzen

rollstuhlfahrer 29. Jul 2010 06:53

AW: "Persistent" Firewall
 
Es gibt die Möglichkeit, dass man Fenster vom System schützen lassen kann. So war das bei meiner Firewall. Wenn man versucht hat, sie zu schließen, kam die Meldung: "Das Fenster wird vom System geschützt". Leider gibt Google zu dieser Meldung kein einziges brauchbares Ergebnis. Was du allerdings bedenken solltest: Auch ein Dienst lässt sich ohne große Probleme beenden, egal, wie du den Prozess schützt. Start -> Ausführen -> "services.msc" -> Dienst auswählen und beenden klicken (wenn nicht zufälligerweise ausgegraut).

Bernhard

himitsu 29. Jul 2010 07:53

AW: "Persistent" Firewall
 
Na als Erstes/Einfachstes, man erstellt sich einen Service von seiner Firewall und läßt dieses in einem geschützten (Benutzer)Konto/Kontext laufen,
dann haben normale Benutzer (man soll ja nicht ständig als Admin eingeloggt sein) und auch Viren/Würmer/Trojaner/Sonstewas keinen Zugriff auf diesen Prozeß (solange man nicht so doof ist und diesen gestattet sich mit höheren Rechten zu versorgen)

rollstuhlfahrer 29. Jul 2010 07:55

AW: "Persistent" Firewall
 
So super abgeschottet ist der User SYSTEM aber nicht wirklich (oder muss man da etwas über die WinAPI nachhelfen?). Es sollte denk ich mal ohne neuen Benutzer gehen.

Bernhard

himitsu 29. Jul 2010 08:01

AW: "Persistent" Firewall
 
Welche Rechte hat denn der angemeldete Benutzer?
Der Service sollte standardmäßig vermutlich im "System"-Konto laufen.

HeikoAdams 29. Jul 2010 08:20

AW: "Persistent" Firewall
 
Nur so ein Einwurf am Rande: Der Vorgänger des Anti-Malware-Tools a² hatte einen dynamisch erzeugten Prozessnamen, der es Malware etc sehr schwer gemacht hat, das Tool zu beenden.

DarkItachi 29. Jul 2010 23:36

AW: "Persistent" Firewall
 
Die erste Antwort (v: Zacherl) hat mir schon gereicht.
Das ist sehr interessant, vielleicht ist das genau die Methode die wir verwenden sollen. Da es wirklich nur ein Informatik Projekt ist und wir nur mit 32Bit arbeiten, sollte diese Methode wohl die beste sein! ^^

Ich habe auch schon mal einen Artikel über Active-Process-Protection gelesen, finde allerdings keinen Lösungsweg.

Erstmal danke für alle Antworten...
@mkinzler: Ja thx, aber welche Methoden verwenden denn Malware-Programmierer?
Ich kenne mich leider nicht mit den Aufbau von Malware Programmen aus...


Offtopic:
Ich hatte mal eine standalone EXE Datei für Windows die je nach Prozessorarchitektur richtig handelt.
D.h.: Wenn man ein Betriebssystem mit 64Bit hat, dann schaltet sich die Anwenung in einen 64Bit Modus.
Wenn man ein x86 Betriebssystem hat, dann schaltet sich diese Anwendung in den 32Bit Modus.

Ich war damals doch so fasziniert von dieser Methode ^^
Mit welcher Programmiersprache muss man eigentlich arbeiten, wenn man so eine Anwendung schreiben will?
ASM ja nicht, oder?

Luckie 30. Jul 2010 05:14

AW: "Persistent" Firewall
 
Zitat:

Zitat von rollstuhlfahrer (Beitrag 1038267)
Was du allerdings bedenken solltest: Auch ein Dienst lässt sich ohne große Probleme beenden

Aber nur als Benutzer mit den nötigen Rechten, also zum Beispiel als Administrator. Und dass ein Administrator Dienste installieren, deinstallieren, starten und beenden können sollte, sollte eigentlich klar sein.

Und wenn ich den Benutzer als Administrator an das System lasse, dann brauche ich mir um Sicherheit auch keine Gedanken machen. Das hat sich dann nämlich erledigt.

Zitat:

Zitat von DarkItachi (Beitrag 1038491)
@mkinzler: Ja thx, aber welche Methoden verwenden denn Malware-Programmierer?

Genau die, die dir hier schon genannt wurden.

Und ehrlich gesagt, mir kommt das Projekt doch etwas spanisch vor.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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