Door karma4: Je geeft oe dat die richtlijn er is en de praktijkervaring leert dat een gescheiden security context niet ingevuld wordt.
Apart dat je dat als toegeven bestempelt, alsof de enige twee mogelijke posities die je kan innemen zijn om alles wat jij beweert volledig tegen te spreken of volledig te accepteren.
In werkelijkheid is er inderdaad een richtlijn om niet iedere gebruiker poorten lager dan 1024 te laten alloceren, maar de conclusie die jij eraan verbindt dat alles onder root draait klopt niet. Laat dat eens tot je doordringen.
De paniek rond shellshock gaf aan dat er geen securitycontext scheiding is.
Helemaal niet. De paniek kwam voort uit het feit dat het kunnen uitvoeren van willekeurige commando's met de rechten van een serviceaccount zelf al zeer problematisch is. Los van dat dat toegang geeft waar de serviceaccount toegang toe heeft, wat al vervelende consequenties kan hebben, betekent het kunnen uitvoeren van willekeurige commando's uit dat eventueel aanwezige lekken die local privilage escalation mogelijk maken opeens ook remote geëxploiteerd kunnen worden.
Even wat extra inputvalidatie zonder aan het onderliggende probleem te werken. Bedenk dat als je elke website elk service geheel gescheiden wil inrichten je een boel service accounts nodig hebt. Die serviceaccounts worden opgesoupeerd door docker.
Als je deamonsoftware installeert op elke Linux-distro die ik ken wordt er volautomatisch een serviceaccount voor aangemaakt en wordt die volautomatisch gebruikt. De Linux-kernel kan miljarden accounts aan (al zal je de krapper gestelde defaults voor useradd in een configuratiebestandje even moeten aanpassen als je niet genoeg hebt aan zo'n 60.000 accounts), dus met dat opsouperen loopt het wel los.
Je zou intussen moeten weten dat je niet elke bewering moet geloven dat het veilig is omdat iedereen het zo doet,
Jij zou ondertussen moeten weten dat je dingen beweert die niet kloppen, je bent er vaak genoeg op gewezen. Je hoeft anderen niet op hun woord te geloven, je kan zelf verifiëren dat het zo is. Ben je zo overtuigd van je eigen gelijk dat je vindt dat je dat over kan slaan, of overstijgt het werkelijk zelf doen van dit soort dingen je capaciteiten?
Installeer Linux (bijvoorbeeld in een VM), installeer apache2 en zie voor je ogen gebeuren dat er een service-account voor wordt aangemaakt en dat apache2 daar ook onder draait. Probeer dat ook eens met Postfix, en je ziet hetzelfde. Bij ssh zie je dat de deamon als root draait en dat voordat een shell (zoals bash) wordt gestart de rechten worden verlaagd naar de zojuist aangelogde gebruiker. Het is steeds zo dat alleen de logica die ook echt root-rechten nodig heeft als root draait, en daarna onmiddelijk wordt overgestapt naar een account met minder rechten om daarmee requests en sessies af te handelen. Die hebben geen toegang meer tot root-rechten, en daar gaat het om.
Als op een systeem zelf ontwikkelde daemons draaien is het zo simpel om er een user voor aan te maken (door één commando uit te voeren) en in de systemd-servicefile de regel "User=..." op te nemen, en daarmee wordt die onder die user opgestart.
Door karma4: Nobody bestaat niet onder linux, id-jes root=0 systemd je moet er mee gewerkt hebben met all security uitdagingen om het te begrijpen. Daar gaan velen de mist in met het wijzen naar anderen.
Op Debian en afgeleiden draait apache2 onder user www-data. Er bestaat wel degelijk een nobody-user, met minimale rechten, geen eigen home-directory en geen default-shell, die bedoeld is voor daemons die geen bestanden aanmaken of wijzigen.
Als je voldoende met systemd gewerkt had om het een klein beetje te begrijpen had je "user=..." in service-definitiefiles gekend en niet de zoveelste onwaarheid erover gespuid.
Het bericht waarop we hier reageren geeft aan dat in Windows de http-protocolstack kennelijk met kernelrechten draait. De recente problemen met Exchange maakten duidelijk dat dat onder de localsystem-account draait in plaats van een serviceaccount. Dit zijn dingen die Microsoft zelf zo inricht, niet eens dingen die incompetente beheerders veroorzaken. De manier waarop jij je in kronkels wringt om maar te kunnen doen alsof dit aan "de open software www" (wat dat ook mag zijn) of aan Linux ligt, in plaats van aan waar dit werkelijk optreedt, is ronduit bizar.