Wo man Logfiles hinschreiben sollte
Eine immer wieder aufkeimende Diskussion unter denjenigen Kollegen bei επτ€σ, die sich Gedanken um Sicherheitsaspekte machen, ist die Frage, wo man Logfiles anlegen sollte. Und zwar nicht irgendwelche Logfiles von irgendeinem User sondern Logfiles, die von unterschiedlichen Benutzerkontexten erzeugt werden und alle in ein- und demselben Verzeichnis landen sollen. Welches ist also das richtige Verzeichnis für diesen Zweck, oder wo sollte dieses Verzeichnis liegen?
Man muß wissen, daß gegenwärtig die Logfiles der Produkte von επτ€σ defaultmäßig im Produktunterverzeichnis unter dem "Program Files"-Verzeichnis liegen und das ist ja nun security-wise nicht so das Gelbe vom Ei. Denn viele große Firmen legen fest, daß unprivilegierte User in alles unter dem "Program Files"-Verzeichnis nicht schreiben dürfen, also auch ihre Logfiles dort nicht geschrieben werden dürfen.
Meine Meinung orientiert sich an einer Beobachtung: Es gibt ein Verzeichnis auf jeder XP-Maschine, in das a jeda schreiben darf. Und zwar ist dies das Verzeichnis, in das auch MS Logfiles jeglicher Herkunft schreibt: Das Verzeichnis für die Logfiles von Dr. Watson. Diese stehen normalerweise in folgendem Verzeichnis, auf das jeder User Schreibrechte hat:
c:\Documents and Settings\All Users\Application Data \Microsoft\Dr Watson
Damit meine ich nicht, daß auch επτ€σ seine Logfiles in genau dieses Verzeichnis schreiben sollte, sondern eher daß επτ€σ-Binaries ihre Logfiles in ein Verzeichnis
c:\Documents and Settings\All Users\Application Data \επτ€σ\logfiles
speichern sollten, wobei ein privilegierter User während einer Installation dafür sorgen sollte, daß die Rechte auf dieses Verzeichnis entsprechend aufgebohrt sind.
Und niemand unter den Kunden kann behaupten, daß in diesem Verzeichnis aus Sicherheitsgründen die Rechte nicht aufgebohrt werden dürfen, denn MS macht's ja mit Dr. Watson vor, wie man's machen sollte.
Wie kommt man an dieses Verzeichnis? SHGetFolderPath mit CSIDL_COMMON_APPDATA. Geht ab Windows 2000.
Trackback address for this post
5 comments, 1 trackback
Hier zwei interessante Links von Microsoft zu dem Thema incl. einer Möglichkeit wie man solche Zugriffe von Applikationen entsprechend "redirecten" kann:
http://download.microsoft.com/download/a/4/e/a4e4532e-98a8-48f2-a595-c5d90e78e862/Least_Privilege_to_User_Accounts_on_Windows_XP.doc
http://www.microsoft.com/germany/msdn/library/security/DasApplicationCompatibilityToolkit.mspx
Das mit der Erweiterung des Verzeichnisses mit %username% Pfad finde ich persoenlich in einem ersten Schritt etwas zu gewagt, weil dann die Logfiles nimmer an einem Ort sind.
Und ja, das ist ein moeglicher Ort fuer so eine Diskussion, weil das Thema leider konsequent totgeschwiegen wird, keiner sich was zu aendern traut und es mir fast schon peinlich ist, wo wir unsere Logfiles sonst so hinschreiben. Das ist soooo oldfashioned und achtziger-Jahre-maessig, dass es mir einfach graust. Das ist einfach so erdenschlecht.
ich hab die Beta2 der WinFX Runtime Components installiert.
Hab ich für irgendwas letztens mal benötigt...
Auf jedenfall nutzen die wohl das "windows\system32\logfiles\messages" Verzeichnis um Logfiles etc abzulegen.
Auf das Verzeichnis wurden die NTFS Berechtigungen so angepasst, das die "Authenticated Users" lediglich über die special permission "Create File / Write Data" die Möglichkeit haben in dem Verzeichnis zu schreiben.
Dort Logfiles abzulegen und die Permissions anzupassen ist somit wohl auch legitim, wenns MS selbst auch macht.
Wenn man nun aus allen bisherigen Beiträgen zu dem Thema hier etwas rauszieht, wäre doch folgende Lösung denkbar:
1. Der Pfad von SKU:
c:\Documents and Settings\All Users\Application Data
\επτ?σ\logfiles
2. Die special permissions auf den Logfiles Ordner ungefähr so anpassen wie das Beispiel von WinFX, somit hat der User wohl das recht Files anzulegen und da was reinzuschreiben, aber mehr darf er nicht...
3. Somit wäre auch die Anforderung von Dave abgedeckt auf Terminal Server, denn die User dürfen in dem Verzeichnis ja nichtmal das selbst geschriebene Logfile zum lesen öffnen bzw. das Verzeichnis Browsen etc. :-)
Was ja auch nicht nötig ist, weil die Logfiles für keinen Enduser interessant sind, sondern lediglich für den Admin, der wiederum entsprechnde Rechte auf das Verzeichnis bekommt...
62% aller IT Angriffe geschehen aus dem eigenen Netz. Sicher sind die Information für den normalen User uninteressant, aber es ist ja wohl nicht zu leugnen das dort massig Informationen drinnen stehen, die einem potenziellen Angreifer zumindestens einen ganze Menge Reverseengeneering abnehmen. Und genau das ist eben einer der häufigsten Kritikpunkte an jeder Art von Logfiles seitens der Kundschaft: "Bitte lieber Herr Consultant, legen sie doch bitte Rechenschaft darüber, was genau in Ihren Logfiles steht, und was der Benutzer mit den Informationen anfangen kann..."
So, das wollt ich nur noch mal erwähnt haben, ansonsten bin ich natürlich in allen Punkten der Anklage (wie so oft) voll eurer Meinung ;-)
Comments are closed for this post.