| |
|
|
Eines der Kernstücke der Sicherheit von NT-basierenden Windowssystemen sind die Privilegien. Privilegien sind nichts anderes als Rechte eines Users, ganz bestimmte API's, die Einstellungen des Systems auslesen oder setzen, erfolgreich ausführen zu dürfen. Ein solches Recht wäre z.B. das Recht, die Systemzeit zu ändern, das Microsoft 'SeSystemtimePrivilege' nennt und das die API SetSystemTime einschränkt.
Standardmäßig sind diese Rechte in Windows einer Gruppe zugeordnet, d.h. z.B. als Administrator hast du nur solange diese Rechte, wie du auch der Gruppe 'Administratoren' angehörst. Privilegien können aber auch einem User direkt zugeordnet werden - d.h. auch wenn der User seine Gruppe wechselt, er behält seine vorherigen Rechte!
Ein Recht zu besitzen reicht alleine aber nicht aus - vor der Benutzung eines Privileges muß das Privileg erst einmal in (m)einem Programm aktiviert sein - die Gruppe der lokalen 'Administratoren' hat zwar viele Privilegien, die meisten davon sind aber standardmäßig deaktiviert. Einige wenige API's aktivieren ihr Privileg gleich automatisch bei ihrem Aufruf mit, das ist aber nur der Ausnahmefall. Aktivieren kann man ein Privileg für sein Programm mit der API AdjustTokenPrivileges.
Nochmals: Es ist ein riesen Unterschied, ein Privileg zu besitzen und wirklich damit arbeiten zu können. Viele Programmierer werfen dort einiges durcheinander - sie versuchen, Privilegien zu aktivieren, die sie gar nicht besitzen oder wundern sich, daß eine API trotz vorhandenen Privileges nicht funktioniert, haben aber vergessen, das Privileg zu aktivieren.
Privilegien werden auf dem Rechner als sogenannte LUID's abgespeichert. Ein LUID ist ein 8 Byte großer Bereich, dessen Wert jeweils für den Namen eines bestimmten Privilegs steht. Privilegien gibt es nur unter NT-basierenden Windowssystemen, also nicht unter Windows95/98/ME!
Privileg hinzufügen: Hat man ein Privileg zu einer Gruppe oder einem User hinzugefügt, muß sich der entsprechende User erneut in den Rechner einloggen, damit das Privileg verfügbar ist.
Privileg aktivieren: Aktiviert man ein Privileg und startet dann aus seinem Programm heraus, z.B. mittels WINEXEC, ein neues Programm, ist das Privileg auch für dieses Programm aktiviert. In allen anderen Programmen, die unabhängig in dem selben Account laufen, bleibt das Privileg deaktiviert.
Rückgaben: Schlägt der Aufruf einer API aufgrund eines nicht aktivierten oder nicht vorhandenen Privileges fehl, liefert die API GetLastError den Wert 1314 zurück.
|
|
|
| |
|
|