Zitat:
1. Man sollte die Rechtestruktur von Windows(NT) nutzen. Sie hat ihren Sinn.
2. Man sollte in regelmäßigen Absänden die Liste dergeladenen Module durchsehen und prüfen ob alle diese Module ihre Daseinsberechtigung haben (wenngleich man diese Informationen auch fälschen kann; aber das ist was für richtige Insider).
3. Man sollte darüber nachdenken, wie hoch die Wahrscheinlichkeit eines Angriffes ist. Ein Programm, das 100 Menschen nutzen verdient
imho keinen Extra-Aufwand für Sicherheitsmechanismen von 100 Stunden.
1.) bietet keinerlei Schutz. Der Angreifer hat definitiv die höchsten Privilegien auf seinem Rechner auf dem Deine Anwendung läuft. Diese Privilegien sind sogar überdurchschnittlich größer als ein bloßer Admin/SYSTEM Account. Mit Hilfe der entsprechenden Werkzeuge, wie SoftICE, SandBox'en und VM's hat der Angreifer die TOTALE Kontrolle. Ergo: Punkt 1.) ist irrelevant und hilft garnichts. Erst mit der Einführung von kryptographischer und einbruchsicherer Hardware in die Systeme (
TCP, DRM, HDTV lassen grüßen) ändert sich das. Einfach weil der Angreifer, bzw. JEDER Benutzer solcher Hardware, keinen Vollzugriff mehr auf ihre eigenen Ssysteme haben.
2.) Das funktioniert ebenfalls nicht. Treiber wie LogiTech Mäuse, Keyboard Treiber, Grafik Treiber,
DCOM, Protected Storage etc. pp. injezieren ihre DLLs permanent in die eigene Anwendung. Davon abgesehen kann ein Angreifer auf seinem System sehr wohl diese Treiber DLLs durch eigene DLLs oder durch die "Side by Side" Technik, austauschen. Dh. aus Sicht deiner Anwendung hast du keine Möglichkeit zu erkennen welche DLLs sich mit welchem Ziel in deine Anwendung injeziert hat. Ergo: Punkt 2.) ist ebenfalls untauglich.
3.) Man kann über die Wahrscheinlichkeit eines Angriffs viele Jahre lang sinnieren, analysieren und rumgrübeln. Man wird immer zu dem Schluß kommen das selbst die billigste Software mit den schlechtesten Features denoch ein Angriffziel eines Angreifers sein kann. Die Gründe warum ein Angreifer einen Angriff startet haben sehr oft rein garnichts mit Geld, Know How oä. zu tuen. Fazit: auch Punkt 3.) ist Zeitverschwendung.
Gruß Hagen