Op zaterdag 09 april 2005 14:35 schreef Anoniem:
> Dat kon al onder NT 4
Klopt. Ik heb in 1999 (vorige baan) NT4 workstation setups
gebouwd die ik met SCE (Security Configuration Editor, MS
backport van beta W2K) zo goed mogelijk heb dichtgetimmerd.
Gebruikers hadden bijna nergens schrijfrechten op C: en
konden geen software installeren die schrijfrechten in
"systemwide" directories en/of delen van de registry vereiste.
N.B. dit belette users helaas niet om
zelf apps als
Winamp in hun homedir te installeren, en zijn het vooral
mondelinge vaardigheden die dit moeten voorkomen. Ik vermoed
dat een BOFH model waarbij gebruikers uitsluitend toegestane
(signed) executables, macro's en scripts (ook in webpages!)
kunnen draaien, nog ver weg is.
Terug naar mijn restrictieve NT4 setup: gebruikers hadden
hier veel minder moeite mee dan ik vooraf verwachtte; ze
waren vooral tevreden over de stabiliteit en de "rust" van
de systemen. De deels roaming users konden in elk geval
niets aan globale applicatie instellingen veranderen, iets
wat in de WfW311 tijd een ramp was. Bovendien dwing je
gebruikers om belangrijke bestanden op te slaan op een
plaats waar ze gebackupped worden (gescheiden van programma
files), en is aan de owner te zien wie een bestand ergens
neergezet heeft (handig bij archiveren). Ten slotte kan een
evt. gestart en nog niet herkend virus niets aan bijv. AV
instellingen veranderen en/of een hosts file overschrijven.
Toch bleef er (in NT4) veel te wensen over. Het bijhouden
van updates en patches kostte me extreem veel tijd, en ik
heb voor veel applicaties allerlei workarounds moeten
verzinnen om ze onder dit strakke regime werkbaar te maken.
Bijv. een simpele NT4 applicatie als Paint kwam bij
opstarten al met een foutmelding als de user slechts
leesrechten op HKCR.bmp had (maar werkte daarna wel).
Zonder die protectie kan een trojan values onder genoemde
key wijzigen en daarmee ook andere accounts (inclusief
admins) compromitteren, overigens zonder dat gebruikers dat
hoeven te merken.
Ook diverse andere "privilege escalation" attacks bleven
helaas mogelijk, maar daar had een eventuele aanvaller wel
naar moeten zoeken, iets wat op standaard systemen niet
nodig is/was. Daarmee had ik een voorsprong op de "buurman".
Bijv. grofweg de helft van de virussen (mochten deze
onbedoeld actief worden) sterft zodra je uitlogt als je geen
schijfrechten hebt in de HKLM Run key (vergelijkbaar met
gewone users schrijfrechten geven onder /etc/rc*). Zo heeft
er nog lang in de MS SDK gestaan dat C:Windows c.q. CWinnt
de aangewezen plaats was om configuratiebestanden
(ini-files) te schrijven.
Overigens helpt het wel om ontwikkelaars te vragen zich aan
te passen. Zo heb ik destijds Jeroen Laarhoven, auteur van
AllChars (freeware)
http://allchars.zwolnet.com/userman122.htmlgevraagd om een commandline optie "-c" op te nemen die de
locatie van de config file aangeeft zodat deze per gebruiker
opgeslagen kon worden. Zijn programma geeft overigens wel
aan hoe eenvoudig het is om een keyboard hook te installeren.
Helaas gaan de meeste ontwikkelingspakketten ervan uit dat
er 1 gebruiker is, die tevens lid van Administrators moet
zijn (iets wat hooguit enkele specifieke debug sessies
noodzakelijk is, maar voor gewone tests natuurlijk niet).
Schandalig, zo leren luie ontwikkelaars het nooit. In de MS
page waar het PCWorld artikel naar verwijst staat over een
aangekondigd tooltje genaamd PermCalc: "This feature is also
planned for inclusion in Visual Studio 2005". Pep-pep, dat
is snel.
De opzet van het MS filesystem (en start menu) getuigt niet
bepaald van visie, en naar goede richtlijnen moet je nog
steeds
zoeken waarbij MS zich daar zelf ook lang niet
altijd aan houdt. Hoe het wel ongeveer zou moeten staat
bijv. hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2ksrv/html/w2kserve_appa.asphttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsetup/html/migrationbkm09.aspEen achilleshiel kon de map "All Users" wel eens zijn en
blijven, vooral omdat sommige applicaties ervan uit gaan dat
iedereen hieronder schrijfrechten heeft (en, als je
niet oplet, tijdens installatie de permissies in het geniep
aanpassen en zo je security en backup policy om zeep helpen).
Nu gebruikers, beheerders, Microsoft en applicatie
programmeurs (langzaam aan) meer security-bewust worden,
zien we dat malware schrijvers zich aanpassen; de kunst is
om ze voor te blijven. Privilege escalation attacks blijven
echter een lastig punt, ook bij Linux zien we bij herhaling
dat kernelpatches nodig zijn en SUID applicaties toch weer
net meer kunnen dan de bedoeling was.
Het belang van "interne" beveiliging moet dan ook niet
worden overschat; als een aanvaller (vooral een levende
post-scriptkiddie) eenmaal binnen is kan deze op de steeds
complexer wordende systemen vaak toch wel een gaatje vinden
dat je over het hoofd hebt gezien of vanwege
compatibiliteits problemen niet dicht
kon zetten.
Zo heb ik su, sudo en runas altijd
eng gevonden; m'n
twijfels hierover werden nog eens bevestigd door een recente
bugtraq bijdrage over sudo onder OSX (maar dit geldt naar
verluid ook onder andere OS):
http://seclists.org/lists/bugtraq/2005/Apr/0084.htmlDeze wordt in een followup weggewimpeld met "dat is bekend,
had je moeten weten" maar ik vraag me af hoeveel gebruikers
zich het bestaan van de beschreven "bijwerkingen" realiseren
(ik kende ze in elk geval niet allemaal). Onder Linux tik ik
altijd:
/usr/bin/su -
(of bij andere distro's "/bin/su - ") in, maar heb meer
vertrouwen in de MS Ctrl-Alt-Del logon (die, per ongeluk
ingetikt, op de meeste linux bakken overigens een andere
uitwerking heeft dan bedoeld :(
Op zaterdag 09 april 2005 12:25 schreef raboof over ACL's:
> lijkt me het linux-permissiesysteem primitiever
Absoluut. Je kunt met NTFS ACL's, hoewel door de
complexiteit niet altijd even doorzichtig, hele mooie dingen
bouwen. Het is wel zaak om van te voren een goed ontwerp te
maken, wat pas kan als je goed inzicht hebt in de
mogelijkheden en consequenties. Het bijhouden van een goede
administratie is ook erg belangrijk. Een aardige site met
info over ACL's:
http://pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsAnAccessControlList.htmlIk vind het onbegrijpelijk dat er nog geen mainstream Linux
+ filesystem is met dergelijke mogelijkheden. POSIX ACL's
zijn een stap in de goede richting maar gaan m.i. niet ver
genoeg, en hebben (voor zover ik weet) alleen betrekking op
het filesystem (dus niet op bijv. configuratie gegevens
vergelijkbaar met de registry). Info:
http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/AccessControls.html#id2564681of Google naar "posix acl" al dan niet in combinatie met samba.
Kortom, eindelijk gebruik maken van wat al
vele jarenin de basis zit, is een goede en logische stap van
Microsoft, maar dit had natuurlijk al
veel eerdermoeten gebeuren, en had een hoop chronische zombie-PC's
kunnen schelen. Dat we nog tot Longhorn op algemene
acceptatie van "LUA" moeten wachten is gewoon schandalig.
Concurrerende operating systems hebben uitgebreid de kans
gehad om een voorsprong op te bouwen, maar hebben die m.i.
onvoldoende benut. Er is voor iedereen nog een boel
werk te doen.
Erik van Straten