Wie ich immer mal wieder auf Techie-Parties betone, habe ich Geisteswissenschaften studiert. Das kommt bei den Frauen gut an. Leider sind auf diesen Parties keine Frauen, aber egal, es geht um's Prinzip. Auf was ich eigentlich hinaus will: Durch intensives Studium der englischen Sprache habe ich die Erkenntnis gewonnen, daß die meisten Begriffe wörtlich gemeint sind. Gedichte und Songtexte sind zwar Ausnahmen, aber meistens ist die Primärbedeutung die primäre Bedeutung (Hähä! Linguistenwitz!)

Beispiel Nr. 1: Das Programme-Verzeichnis
Ja genau - das ist das zu da, um Programme abzuspeichern. Wäre es dazu da, Einstellungen, Logfiles oder Datenbanken aufzunehmen, dann hieße es ja Programm-, Einstellungs-, Logfiles- oder Datenbankverzeichnis. Das wäre viel zu lang. Kommen wir zu dem Grund, warum in diesem Verzeichnis nur ausführbare Programmdateien stehen dürfen: Für normale Benutzer ist der Schreibzugriff auf dieses Verzeichnis nicht gestattet. Im Normalbetrieb muß nämlich niemand schreibend auf Programmdateien zugreifen. Außer natürlich Viren. Und die greifen dankend zu. Dennoch handeln die meisten Anwendungen nach dem Motto "My directory is my castle"  und speichern alle möglichen Logs und Daten in ihrem eigenen Programmverzeichnis – von dem kann man ja schließlich sicher sein, daß es existiert.  Als ich neulich eine DSL-Zugangssoftware eines großen Telekommunikations-Konzerns installieren musste, sah ich diese krankhafte Logik wieder einmal live in action: Weil das Programm eine kleine, unwichtige Logdatei partout im Programm-Verzeichnis anlegen wollte, lief die gesamte Software nur unter dem Admin-Acount. Ein wahrhaft brauchbarer Beitrag zum Thema "mehr Sicherheit im Internet".
Ein weiterer Grund, das Programme-Verzeichnis nicht zu mißbrauchen ist nicht sicherheitsrelevant, aber genauso wichtig: Will man den Rechner neu aufsetzen, ohne alle Einstellungen zu verlieren, darf man sich die entsprechenden Files einzeln aus den verschiedenen Applikationsverzeichnissen zusammensammeln – ein praktisch unmögliches Unterfangen. Der arme „Files and Settings Transfer Wizard“, der Einstellungen von einem Rechner zum anderen migrieren kann, ist völlig hilflos.  Also: Alles, was keine EXE oder DLL ist, gehört in den Dokumente und Einstellungen-Ordner! Und das meine ich wörtlich...

Beispiel Nr. 2: Der Full Trust-Modus unter ASP.NET
Bei einer Sicherheitskonferenz beschwerte sich ein selbsternannter Webhosting-Sicherheitsexperte über die "unsichere Software" von Microsoft. Die Begründung: Im Full Trust-Modus sei es möglich, das User unter bestimmten Umständen "zuviel Rechte" bekommen. Nun frage ich mich: Was ist wohl von einem Modus zu halten, der wörtlich "volles-Vetrauen-Modus" heißt? Genau! Daß wir dem betreffenden User (oder dessen Code) voll vertrauen! Und wenn ein Webhoster seinen Usern voll vertraut, dann hat er den Beruf verfehlt. Für diese Gruppe sollte man den Modus in Do-not-use-this-really-we-mean-it-Modus umbenennen.

Nächste Woche: Das "Unsafe"-Keyword in C#...