Noch wichtig, dass Benutzer keine Admin-Rechte hat?

27/04/2013 - 13:29 von virk | Report spam
Seit Jahr und Tag sind alle Rechner, die durch meine Hànde laufen, so
konfiguriert:
- Benutzer admin mit admin-Rechten mit einem mir bekannten Passwort
- Benutzer Wolfgang ohne admin-Rechte mit einem mir und Wolfgang
bekannten Passwort

Eingeloggt ist man dann immer unter Wolfgang und arbeitet mit dem
Computer.

Jetzt meine Frage: Bei meinem aktuellen Rechner ist das genauso. Nur
glaube ich mal gehört zu haben, dass das heutzutage (10.8.3) nicht mehr
so "zwingend erforderlich" ist, dass der Benutzer keine admin-Rechte
hat.
Es wàre manchmal schöner (im Terminal), wenn man direkt "sudo" machen
könnte, also direkt admin-Rechte hàtte.

Würdet Ihr alles so lassen, oder könnte ich mir mittlerweile
admin-Rechte einràumen?

Gruss Heiner
 

Lesen sie die antworten

#1 Thomas Kaiser
27/04/2013 - 15:05 | Warnen spam
Heiner Veelken schrieb in <news:1l1zmjy.1mtoangi6w07gN%
Seit Jahr und Tag sind alle Rechner, die durch meine Hànde laufen, so
konfiguriert:
- Benutzer admin mit admin-Rechten mit einem mir bekannten Passwort
- Benutzer Wolfgang ohne admin-Rechte mit einem mir und Wolfgang
bekannten Passwort

Eingeloggt ist man dann immer unter Wolfgang und arbeitet mit dem
Computer.



Vernünftig.

Jetzt meine Frage: Bei meinem aktuellen Rechner ist das genauso. Nur
glaube ich mal gehört zu haben, dass das heutzutage (10.8.3) nicht mehr
so "zwingend erforderlich" ist, dass der Benutzer keine admin-Rechte
hat.



Und wo hört man das so?

Es wàre manchmal schöner (im Terminal), wenn man direkt "sudo" machen
könnte, also direkt admin-Rechte hàtte.



Na, dann trag das halt in der /etc/sudoers so ein. Da steht by default

# User privilege specification
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL

Was bedeutet, daß root und alle Mitglieder der Gruppe "admin" sudo
spielen dürfen. Wenn Du da noch ein

wolfgang ALL=(ALL) ALL

ergànzt, dann kannst Du Dir auch in der Shell das Zweistufige vorgehen
ersparen. Von den Konsequenzen her ist das aber identisch als wenn Du
einfach dem root-Account ein Paßwort verpaßt und dann "su" ausführst.
Letzteres wàre dann sogar "sicherer", denn in Standard-Installationen
von OS X (dito andere Unices) steht die Variable

timestamp_timeout

auf 5. Was bedeutet das? Ein Angreifer bzw. ein Stückchen Schadsoftware
wartet unprivilegiert auf Deinem Rechner darauf, daß Du irgendwann mal
in irgendeinem Terminal-Fenster sudo eingibst und Dich authentifizierst.
Dann freut es sich und macht ebenfalls sudo, ist damit root, kann tun
und lassen, was es will und Dein Rechner ist komprimittiert. Denn
timestamp_timeout=5 bedeutet, daß nach einmal erfolgreich durchgeführtem
sudo die nàchsten 5 Minuten in egal welcher anderen Session kein Paßwort
mehr eingegeben werden muß (denn Apple setzt auch _nicht_ die Option
tty_tickets, die eigentlich erzwingt, daß diese "password grace period"
nur innerhalb eines TTYs [1] gilt, was unter OS X eh einigermaßen
belanglos ist, weil alle Cocoa-Programme bspw. unter dem identischen TTY
laufen und damit die Option eh nutzlos wàre bzw. erfahrene Unix-Leute in
die Irre führen würde).

Was bedeutet das? Wenn Du so richtig dàmlich bist und mit einem Admin-
Account werkelst, dann braucht irgendein Stück Schadsoftware, das Du Dir
freiwillig im Internet eingefangen hat oder daß Dir wer untergejubelt
hat, nur in aller Ruhe in /var/log/system.log nachgucken, wann Du mal
sudo nutzt (das wird dort nàmlich vermerkt und ein Admin-Account darf
system.log lesen) und dann war's das und das Stückchen Schadsoftware ist
root.

Wenn Du smart bist und mit einem normalen Account werkelst (was ja
oberhalb der Shell null Problem ist, weil man in allen Situationen, in
denen es die Logon Credentials eines Admin-Accounts bràuchte, einfach
nach eben jenen gefragt wird), dann ist in der Shell die Zweistufigkeit
"su admin" und dann eben erst "sudo" Schutz genug, _wenn_ denn das
Paßwort des admin-Accounts was taugt. Denn ohne dieses Paßwort zu
kennen, kann dann kein bislang unprivilegierter Angreifer über das sudo-
Hintertürchen root-Rechte erlangen.

Wenn Du nun Deinen eigenen Account ebenfalls in die /etc/sudoers
eintràgst, dann gilt hinsichtlich sudo auf einmal das selbe wie wenn Du
Dich erblöden würdest, mit einem Admin-Account zu arbeiten. "Privileges
escalation" Richtung root problemlos für irgendwas, was Du Dir
eigefangen hast, möglich. Deshalb in so einer Situation unbedingt auch
immer noch

Defaults timestamp_timeout=0

in die /etc/sudoers, dann ist diese Lücke geschlossen. Wobei ich ja
beruflich den default von 5 Minuten extrem praktisch finde [2]. Danke
Apple :-)

Würdet Ihr alles so lassen, oder könnte ich mir mittlerweile
admin-Rechte einràumen?



Siehe oben, die dritte Variante.

Gruss,

Thomas

[1] TTY steht eigentlich für Fernschreiber, war dann zu Zeiten von
Großrechnern die Bezeichnung für das Terminal, an dem die diversen
User an eben jenen Großrechnern hingen. In OS X (und anderen Unices
oder Linux) ist dann jede Shell-Session in einem anderen virtuellen
TTY laufend. Der Befehl "w" (kein Witz, ein Buchstabe) zeigt Dir an,
welcher Prozeß in welchem TTY làuft.

[2] Als Dienstleister kommt man ja bei Kunden immer wieder in die blöde
Situation, mit IT-Abteilungen oder Server-/Systembetreuern zu tun zu
haben, die gegen einen arbeiten (wollen) bzw. einen massiv zu
behindern versuchen. Wenn der Kunde dann zustimmt [3] und man den
Rechner neu starten darf, ist alles simpel (/var/db/.AppleSetupDone
entfernen und man hat einen frischen Admin-Account, der via sudo
Allmacht verleiht als eine Variante, die sonst nix am System àndert)
Aber manchmal darf man die Kiste keinesfalls neustarten, und dann
muß man sich eben stufenweise zu root hochhandeln. Klappt eigentlich
Dank der sudo-Graceperiod und bisserl social engineering meist recht
flott.

[3] Ich verkaufe die Aktion dann immer als Security-Audit und die
praktische Übung ist dann das, was eigentlich auf der Kiste gemacht
wurde quasi als "Abfallprodukt".

Ähnliche fragen