IIS of Apache: welk is veiliger?

Pagina: 1
Acties:
  • 868 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Victor
  • Registratie: November 2003
  • Niet online
Naar aanleiding van [rml][ Centraal] Discussie onderwerpen[/rml] wil ik hier een discussie starten over de veiligheid van deze twee webservers. Aangezien mijn kennis vooral bij IIS ligt, zal ik hier uitleggen waarom ik denk dat IIS veiliger is. Aan de Apache gebruikers om aan te tonen waarom "hun" webserver veiliger is.

Ik zal hier uitgaan van IIS 6, de versie van Internet Information Services die in Windows 2003 zit. Het grootste pluspunt van IIS 6 in Windows 2003 is dat het standaard niet eens geïnstalleerd is. Dit was namelijk het grootste gevaar van NT en 2000: als je tijdens de setup maar op Next bleef rammen werd IIS direct mee geïnstalleerd. Nu is dit heel handig als je toch een webserver aan het inrichten bent, maar dat was meestal niet het geval. Vervolgens zat je dus met een niet al te veilige webserver die dankzij een aantal absurde exploits volledige toegang tot je systeem verschafte. Dat is nu anders.
Windows 2003 is na een installatie compleet "kaal". Er is nog niets geïnstalleerd, er draaien nog geen services en de server kan volledig op maat gemaakt gaan worden.
Hetzelfde principe loopt door als je IIS gaat installeren. Als je enkel en alleen IIS aanklikt krijg je een webserver die niets anders doet dan statische webpagina's serveren. Geen FTP toegang, geen handige beheerscripts, geen fratsen. Wil je dan toch van één van deze mogelijkheden gebruik maken, dan zul je het zelf aan moeten zetten. Je kunt o.a. FTP, SMTP en NNTP functionaliteit toevoegen, maar ook ondersteuning voor ASP, ASP.NET en SSI. Dit alles zijn keuzes, je zet ze dus bewust aan. Geen verborgen processen meer waarvan je niet wist dat ze draaiden totdat ze geëxploit werden.
Net als de "standaard" IIS installatie zijn ook al deze toevoegingen standaard zo veilig mogelijk geconfigureerd. FTP biedt enkel lees rechten, SMTP zit dicht (dus geen open relay) en IIS heeft een Default Application pool met beperkte rechten. En dat laatste is naar mijn mening het mooiste van IIS: application pools.
Waar normaal gesproken een webserver één proces is dat één of meer websites kan aanbieden, bestaat IIS uit zogeheten "worker processes". Een worker process is één taak of thread die de pagina's parst, en doorstuurt naar de client. Deze worker processes vallen binnen zogeheten application pools. Oftewel, een verzameling applicaties. Voor deze applicaties kun je via zo'n pool naast zaken zoals het maximale geheugengebruik ook instellen onder welke user account ze moeten draaien. Dit laatste biedt natuurlijk fantastische mogelijkheden. Normaal gesproken draait IIS onder de zogeheten Network Service account. Dit is een account met enkel leesrechten op de default documentroot van IIS (C:\Inetpub\wwwroot). Heb je nu een applicatie die meer rechten nodig heeft, of bijvoorbeeld ook toegang nodig heeft tot een andere server, dan kun je dus een application pool aanmaken waarvan de worker processes onder deze account draaien. Als je nu een website (een applicatie) in deze application pool zet, beschikt deze dus over de mogelijkheden die deze account biedt, maar ook niets meer. Je kunt met IIS 6 dus per website, per gebruiker, per map en zelfs per pagina aangeven wat er mag gebeuren. Je hebt totale controle over je webserver.
Nog een pluspunt van deze gescheiden gebruikers per website is dat als een van je websites "gehacked" wordt, en er bijvoorbeeld SQL injecties worden uitgevoerd op je MSSQL server, dat deze nooit een andere database zouden kunnen bereiken. Je geeft de gebruiker van een website immers enkel en alleen rechten op zijn eigen database. Een website kan dan nooit verbinding maken met een andere database, tenzij je de gebruiker hier toestemming voor geeft. Ditzelfde werkt natuurlijk ook als het gaat om rechten op mappen e.d., een database is enkel één van de vele mogelijkheden.

Dit zijn slechts een aantal punten die IIS zo'n ontzettende goede webserver maken. Nu zijn de Apache gebruikers aan de beurt om van zich te laten horen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Je maakt je er vreselijk makkelijk vanaf door alleen de features van IIS te noemen, en ze niet meteen te vergelijken met Apache. Ook probeer je het platform als voordeel te noemen, maar Apache kan ook onder Windows geïnstalleerd worden.

Ook Linux en BSD distributies beschikken over prima beveiligingsmogelijkheden. Denk aan een chroot jail waarbinnen Apache kan draaien. En uiteraard is Apache alleen een HTTP server, een FTP, SMTP of nieuwsservice zul je apart moeten installeren. Dat geldt ook voor uitbreidingen voor scripting, voor bijvoorbeeld Python, PHP, Perl, Mono en JSP.

Bovenal geldt dat een beheerder altijd hoort te weten wat hij precies installeert. En hij hoort het fatsoenlijk te kunnen configureren. Dat geldt voor alles.

Verder zijn je gebruikersrechten ook niets IIS specifieks. Je kunt onder Linux bijvoorbeeld prima aparte gebruikers aanmaken, en zorgen dat de FTP server ze alleen toegang geeft tot een bepaalde directory. Voor bijvoorbeeld PHP kun je ook als beheerder instellen wat scripts wel en niet mogen. En Apache zelf ondersteunt suexec. Dit alles is prima per gebruiker of per virtual host te configureren.

Leuk reclamepraatje, maar dit heeft niks met vergelijken te maken.

Acties:
  • 0 Henk 'm!

  • Victor
  • Registratie: November 2003
  • Niet online
Verwijderd schreef op donderdag 28 juli 2005 @ 20:40:
Je maakt je er vreselijk makkelijk vanaf door alleen de features van IIS te noemen, en ze niet meteen te vergelijken met Apache. Ook probeer je het platform als voordeel te noemen, maar Apache kan ook onder Windows geïnstalleerd worden.
Ik geef zowel in dit topic als in [rml]King_Louie in "[ Centraal] Discussie onderwerpen"[/rml] aan dat ik alleen kan vertellen over IIS, en waarom het veilig is. Het is dus pas ook een vergelijking als Apache gebruikers ook hun zegje doen. En ik denk dat ik met mijn startpost redelijk uitgebreid de voordelen van IIS uit de doeken heb gedaan, dus ik maak het me er niet makkelijk van af lijkt me.
Ook Linux en BSD distributies beschikken over prima beveiligingsmogelijkheden. Denk aan een chroot jail waarbinnen Apache kan draaien.
Vertel dan ook meteen wat het is. Ik wil ook best met termen gaan lopen smijten, maar daar wordt niemand wijzer van.
En uiteraard is Apache alleen een HTTP server, een FTP, SMTP of nieuwsservice zul je apart moeten installeren.
Daarom ga ik daar ook niet verder op in, ik geef alleen al dat IIS als geheel veilig is.
Dat geldt ook voor uitbreidingen voor scripting, voor bijvoorbeeld Python, PHP, Perl, Mono en JSP.
Apache heeft natuurlijk als verschil dat het zelf geen scripttalen verwerkt, maar dat je deze ondersteuning zult moeten toevoegen. IIS heeft ASP en ASP.NET ondersteuning "ingebakken", en hiervoor zijn de configuratiemogelijkheden dan ook in IIS verwerkt. Overigens zijn deze talen via web extensions in en uit te schakelen. De configuratiemogelijkheden van talen lijken me wel interessant, maar niet in dit topic omdat IIS en Apache op dat niveau te veel verschillen.
Bovenal geldt dat een beheerder altijd hoort te weten wat hij precies installeert. En hij hoort het fatsoenlijk te kunnen configureren. Dat geldt voor alles.
Natuurlijk hoort een beheerder dat te weten. Maar Windows zou Windows niet zijn als het niet gebruiksvriendelijk was. Helaas dacht Microsoft bij gebruiksvriendelijkheid "vroegah" dat hiervoor ook maar meteen alles geïnstalleerd moest zijn. Hier zijn ze nu gelukkig vanaf gestapt, zodat de wat minder handige systeembeheerder ook over een veilig systeem kan beschikken. Qua configuratiemogelijkheden is IIS overigens niet alleen beperkt tot een MMC. De volledige IIS configuratie staat in een XML document dat automatisch gebackupped wordt (en als het fouten bevat direct hersteld naar de laatst wel werkende versie). Je kunt hierin niet alleen de opties die ook beschikbaar zijn in de GUI aanpassen, maar ook vele specifieke instellingen aanpassen. Wat vooral mooi is aan dit configuratiebestand (metabase genaamd) is dat je het kunt bewerken terwijl IIS en draait, en zodra je het opslaat wordt het direct toegepast. Je hoeft je webserver dus niet te herstarten.
Verder zijn je gebruikersrechten ook niets IIS specifieks. Je kunt onder Linux bijvoorbeeld prima aparte gebruikers aanmaken, en zorgen dat de FTP server ze alleen toegang geeft tot een bepaalde directory.
Ik dacht dat Apache geen FTP server was? Kun je met Apache ook verschillende sites onder verschillende accounts laten draaien?
Voor bijvoorbeeld PHP kun je ook als beheerder instellen wat scripts wel en niet mogen. En Apache zelf ondersteunt suexec. Dit alles is prima per gebruiker of per virtual host te configureren.
PHP <> Apache, en wat is suexec. Je helpt jezelf er wel makkelijk vanaf zo...
Leuk reclamepraatje, maar dit heeft niks met vergelijken te maken.
Where do you want to go today?

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

King_Louie, je verhaaltje kan zo terecht in een foldertje over IIS :)

Echter, helemaal bovenin je TS lijkt je te suggereren dat IIS "veiliger" is dan Apache. Volgens mij impliceer je daarmee, dat je een vergelijking gaat maken. Je kan daarna wel zeggen : "Ik weet alleen wat over IIS", maar als dat écht zo is, is je hele verhaaltje nutteloos. Als je maar één van de twee kent, dan is het voor jou ONMOGELIJK om een degelijk onderbouwde vergelijking te geven. Dat is niet erg, maar waarom doe je dan wel alsof?

Je hebt prima aangegeven waarom je denkt dat IIS veilig is. Maar veiliger dan Apache? Geen woord over Apache in je verhaal, dus daar heb je niets over gezegd.

Daar komt nog bij dat jij het niet over echte veiligheid hebt, maar over theoretische veiligheid. En dan niet eens theoretisch theoretisch, maar marketing theoretisch. Áls alle beveiligingsfuncties van IIS zoals jij ze beschrijft allemaal zo goed werken als ze zouden moeten doen, dán zou IIS inderdaad erg veilig zijn.

In de praktijk blijkt echter dat er in alle software bugs zitten, en uiteindelijk zijn het vrijwel altijd de hoeveelheid en het soort bugs dat de veiligheid van de totale applicatie bepalen. Aan de andere kant heb je wel gelijk dat als je programma goed ontworpen is dat de impact van bugs vaak kleiner is dan wanneer er van tevoren niet over nagedacht is.
King_Louie schreef op donderdag 28 juli 2005 @ 20:11:
Het grootste pluspunt van IIS 6 in Windows 2003 is dat het standaard niet eens geïnstalleerd is.
Hmmm, dit biedt bár weinig hoop moet ik zeggen ;). Als het grootste pluspunt van een product is, dat het niet geinstalleerd is; dan zou ik gillend wegrennen meestal :P

Overigens, ook Apache is niet standaard geïnstalleerd bij de meeste OS'en. Dus je grootste pluspunt is al gematched ;)
Dit was namelijk het grootste gevaar van NT en 2000 ... Geen verborgen processen meer waarvan je niet wist dat ze draaiden totdat ze geëxploit werden.
Nu som je een heel rijtje op waarin je aangeeft waarom IIS 6 beter is dan z'n voorgangers. Dat is inderdaad zo, maar ik dacht dat je wilde vergelijken met Apache? :)
Net als de "standaard" IIS installatie zijn ook al deze toevoegingen standaard zo veilig mogelijk geconfigureerd. FTP biedt enkel lees rechten, SMTP zit dicht (dus geen open relay) en IIS heeft een Default Application pool met beperkte rechten. En dat laatste is naar mijn mening het mooiste van IIS: application pools.
Waar normaal gesproken een webserver één proces is dat één of meer websites kan aanbieden, bestaat IIS uit zogeheten "worker processes". Een worker process is één taak of thread die de pagina's parst, en doorstuurt naar de client. Deze worker processes vallen binnen zogeheten application pools. Oftewel, een verzameling applicaties. Voor deze applicaties kun je via zo'n pool naast zaken zoals het maximale geheugengebruik ook instellen onder welke user account ze moeten draaien. Dit laatste biedt natuurlijk fantastische mogelijkheden. Normaal gesproken draait IIS onder de zogeheten Network Service account. Dit is een account met enkel leesrechten op de default documentroot van IIS (C:\Inetpub\wwwroot). Heb je nu een applicatie die meer rechten nodig heeft, of bijvoorbeeld ook toegang nodig heeft tot een andere server, dan kun je dus een application pool aanmaken waarvan de worker processes onder deze account draaien. Als je nu een website (een applicatie) in deze application pool zet, beschikt deze dus over de mogelijkheden die deze account biedt, maar ook niets meer. Je kunt met IIS 6 dus per website, per gebruiker, per map en zelfs per pagina aangeven wat er mag gebeuren. Je hebt totale controle over je webserver.
Klinkt goed, maar ook onder Apache heb je allerlei mogelijkheden om je users te configureren en rechten te geven.
Nog een pluspunt van deze gescheiden gebruikers per website is dat als een van je websites "gehacked" wordt, en er bijvoorbeeld SQL injecties worden uitgevoerd op je MSSQL server, dat deze nooit een andere database zouden kunnen bereiken. Je geeft de gebruiker van een website immers enkel en alleen rechten op zijn eigen database. Een website kan dan nooit verbinding maken met een andere database, tenzij je de gebruiker hier toestemming voor geeft.
Élke moderne database kent userrechten, what's new?
Dit zijn slechts een aantal punten die IIS zo'n ontzettende goede webserver maken. Nu zijn de Apache gebruikers aan de beurt om van zich te laten horen :)
IIS is zeker een goede server, helaas heb je nul argumenten gegeven waarom hij beter zou zijn dan andere moderne serverproducten.
King_Louie schreef op donderdag 28 juli 2005 @ 20:57:
Daarom ga ik daar ook niet verder op in, ik geef alleen al dat IIS als geheel veilig is.
Je geeft alleen aan dat het theoretisch veilig zou moeten zijn. De veiligheid in de praktijk kan je daar natuurlijk niet uit halen :)
Wat vooral mooi is aan dit configuratiebestand (metabase genaamd) is dat je het kunt bewerken terwijl IIS en draait, en zodra je het opslaat wordt het direct toegepast. Je hoeft je webserver dus niet te herstarten.
Tsja... De webserver herstart zichzelf als je je configfile aanpast. Of dat nu echt functionaliteit is vraag ik me af. Hooguit een handigheidje, waar voor je bij Apache een cron regeltje zou moeten schrijven.

Ik ben zelf van mening dat IIS en Apache beide prima producten zijn en beide geschikt voor productiegebruik, waarbij natuurlijk voor beide geldt dat je de patches bij moet houden :)

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

King_Louie schreef op donderdag 28 juli 2005 @ 20:57:
Ik dacht dat Apache geen FTP server was?
Dat klopt.
Kun je met Apache ook verschillende sites onder verschillende accounts laten draaien?
Ja, dat kan.
PHP <> Apache, en wat is suexec. Je helpt jezelf er wel makkelijk vanaf zo...
Cheatah weet ook dat PHP != Apache, maar als je scripttalen niet meerekent, dan is jouw argument een beetje onduidelijk. Waarom zou je 'verschillende websites als verschillende gebruiker' willen kunnen draaien, als je alleen statische pagina's serveert?

Met suexec kan je een website onder een bepaalde gebruiker laten draaien. Ik weet niet hoe goed je op de hoogte bent van het rechtensysteem van *nix computers, maar heel globaal komt het er op neer dat elk proces een UID (userid) heeft, en dat aan de hand daarvan bepaald wordt welke resources dat proces kan gebruiken. Resources kunnen van alles zijn, waaronder dus ook bestanden. Wanneer je dus een webapplicatie draait met suexec dan heeft die applicatie precies dezelfde rechten als de betreffende user.

Acties:
  • 0 Henk 'm!

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 26-07 22:25
Lijkt me een beetje weer een kansloos topic. De webserver is zo veilig als je het kunt maken, dat geldt voor zowel IIS als Apache. Ik weet zeker dat jij Apache niet veiliger kunt maken als je puur alleen de IIS kant van het verhaal kent, en ook andersom zal dat het geval zijn voor iemand die Apache weer heel goed kent.

Het zijn beide prima webservers, en ze zijn beide prima te beveiligen, daar zal de een ongetwijfeld niet onderdoen voor de ander

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


Acties:
  • 0 Henk 'm!

Verwijderd

King_Louie schreef op donderdag 28 juli 2005 @ 20:57:

Vertel dan ook meteen wat het is. Ik wil ook best met termen gaan lopen smijten, maar daar wordt niemand wijzer van.
Goed hoor. Een chroot jail maakt gebruik van een standaard feature van de linux kernel. Het zorgt ervoor dat processen alleen binnen een bepaalde directory van een bestandssysteem iets kunnen. Als je chroot naar de directory /home/apache dan kun je vervolgens niet buiten die /home/apache directory komen. De directory wordt letterlijk je root directory, alles daarbuiten is voor dat proces onbereikbaar.

Zonder exploits (waarvan er op dit moment waarschijnlijk geen bekend zijn) kun je nooit schade toebrengen aan de volledige webserver, hooguit in de "chroot jail". Een soort veilige sandbox waarbinnen de webserver mag spelen.

Voor de rest kun je IIS misschien beter vergelijken met complete webserver pakketten/control panels, zoals Cobalt RAQ, Plesk, cPanel, Webmin etcetera. Apache is immers ook maar deel van het geheel. En zo is het wat minder appels en peren vergelijken.

Acties:
  • 0 Henk 'm!

  • Victor
  • Registratie: November 2003
  • Niet online
eamelink schreef op donderdag 28 juli 2005 @ 21:21:
King_Louie, je verhaaltje kan zo terecht in een foldertje over IIS :)
Ik ben gewoon een zeer tevreden gebruiker ;)
Echter, helemaal bovenin je TS lijkt je te suggereren dat IIS "veiliger" is dan Apache. Volgens mij impliceer je daarmee, dat je een vergelijking gaat maken. Je kan daarna wel zeggen : "Ik weet alleen wat over IIS", maar als dat écht zo is, is je hele verhaaltje nutteloos. Als je maar één van de twee kent, dan is het voor jou ONMOGELIJK om een degelijk onderbouwde vergelijking te geven. Dat is niet erg, maar waarom doe je dan wel alsof?
Nee, ik geef aan IIS veilig is. Mijn vraag aan de Apache gebruikers is dus op welke punten Apache een soortgelijke veiligheid biedt, of wellicht andere foefjes aan boord heeft waardoor het een veilige webserver is. De bedoeling is dus om de twee webservers naast elkaar te leggen, en te zien op welke manieren de software jou een veilige omgeving aanbiedt.
Je hebt prima aangegeven waarom je denkt dat IIS veilig is. Maar veiliger dan Apache? Geen woord over Apache in je verhaal, dus daar heb je niets over gezegd.
True, wellicht is de woordkeuze in het begin niet geheel juist geweest. IIS is veilig, of het veiliger is dan Apache laat ik afhangen van wat de Apache gebruikers aandragen.
Daar komt nog bij dat jij het niet over echte veiligheid hebt, maar over theoretische veiligheid. En dan niet eens theoretisch theoretisch, maar marketing theoretisch. Áls alle beveiligingsfuncties van IIS zoals jij ze beschrijft allemaal zo goed werken als ze zouden moeten doen, dán zou IIS inderdaad erg veilig zijn.

In de praktijk blijkt echter dat er in alle software bugs zitten, en uiteindelijk zijn het vrijwel altijd de hoeveelheid en het soort bugs dat de veiligheid van de totale applicatie bepalen. Aan de andere kant heb je wel gelijk dat als je programma goed ontworpen is dat de impact van bugs vaak kleiner is dan wanneer er van tevoren niet over nagedacht is.
Ik tel op SecurityFocus twee vulnerabilities voor IIS 6. Eén in de webadmin (die dus standaard uitstaat) en één die in iedere webserver voorkomt door een exploit in HTTP zelf. Met de software zit het dus wel snor.
En zelfs als de software niet veilig zou zijn, is de schade door het model van IIS 6 nog beperkt. De mogelijke exploit zou immers niet meer schade aan kunnen richten dan waar de account waaronder de site draait toegang toe heeft.
Overigens, ook Apache is niet standaard geïnstalleerd bij de meeste OS'en. Dus je grootste pluspunt is al gematched ;)
Mijn ervaring is dat bij de meeste Linux installaties (die dus niet van scratch worden opgebouwd) er meestal wel Apache wordt geïnstalleerd. Maar goed, zoals ik eerder al aangaf weet ik er niet bijzonder veel vanaf, dus wellicht dat beeld niet klopt.
Nu som je een heel rijtje op waarin je aangeeft waarom IIS 6 beter is dan z'n voorgangers. Dat is inderdaad zo, maar ik dacht dat je wilde vergelijken met Apache? :)
En daarvoor heb ik dus de mensen nodig die in Apache thuis zijn. Op welke punten doet Apache hetzelfde aan veiligheid, op welke punten is het veiliger volgens jullie, en op welke punten heeft IIS een streepje voor?
Klinkt goed, maar ook onder Apache heb je allerlei mogelijkheden om je users te configureren en rechten te geven.
Noem ze dan ook :)

Ik geef van IIS duidelijk aan hoe het werkt, de mededeling dat het in Apache ook kan biedt weinig informatie ;)
Élke moderne database kent userrechten, what's new?
Door middel van integrated security tussen IIS en MSSQL wordt de gebruiker van de website gebruikt als authenticatiemiddel voor de database. Dit biedt dus als voordeel dat de software nooit bij andere databases kan, aangezien deze niet buiten de rechten van de gebruiker kan. Misschien niet bijzonder, wel enorm handig.
IIS is zeker een goede server, helaas heb je nul argumenten gegeven waarom hij beter zou zijn dan andere moderne serverproducten.
Daar kunnen we hopelijk later in dit topic op in gaan.
Je geeft alleen aan dat het theoretisch veilig zou moeten zijn. De veiligheid in de praktijk kan je daar natuurlijk niet uit halen :)
In de praktijk heb je domme systeembeheerders, slecht geschreven scripts, en nooit geupdate besturingssystemen. Daar kampen alle servers mee. We hebben het hier nu even over hoe goed de software kan zijn.
Tsja... De webserver herstart zichzelf als je je configfile aanpast. Of dat nu echt functionaliteit is vraag ik me af. Hooguit een handigheidje, waar voor je bij Apache een cron regeltje zou moeten schrijven.
De server herstart zichzelf dus niet, de instellingen worden "on the fly" toegepast.
Ik ben zelf van mening dat IIS en Apache beide prima producten zijn en beide geschikt voor productiegebruik, waarbij natuurlijk voor beide geldt dat je de patches bij moet houden :)
Dat lijkt me vanzelfsprekend :)
eamelink schreef op donderdag 28 juli 2005 @ 21:29:
Cheatah weet ook dat PHP != Apache, maar als je scripttalen niet meerekent, dan is jouw argument een beetje onduidelijk. Waarom zou je 'verschillende websites als verschillende gebruiker' willen kunnen draaien, als je alleen statische pagina's serveert?
Het gaat hier om de veiligheid van de webserver, niet of de scripttaal zo lek is als een mandje. Je moet dus wel in een veilige omgeving scripttalen kun uitvoeren, maar niet omdat de scripttaal toevallig wel of niet goed geconfigureerd is. Lijkt me dat dat buiten deze discussie valt.
Met suexec kan je een website onder een bepaalde gebruiker laten draaien. Ik weet niet hoe goed je op de hoogte bent van het rechtensysteem van *nix computers, maar heel globaal komt het er op neer dat elk proces een UID (userid) heeft, en dat aan de hand daarvan bepaald wordt welke resources dat proces kan gebruiken. Resources kunnen van alles zijn, waaronder dus ook bestanden. Wanneer je dus een webapplicatie draait met suexec dan heeft die applicatie precies dezelfde rechten als de betreffende user.
Ok, lijkt me overeenkomend met de application pools. Maar geldt dit voor heel apache, of kun je het ook per vhost (ik geloof dat dat apache's equivalent van websites binnen IIS is) instellen? Zijn binnen Apache websites eigenlijk verschillende processen, of is er één proces dat alles afhandelt?
Verwijderd schreef op donderdag 28 juli 2005 @ 21:41:
Goed hoor. Een chroot jail maakt gebruik van een standaard feature van de linux kernel. Het zorgt ervoor dat processen alleen binnen een bepaalde directory van een bestandssysteem iets kunnen. Als je chroot naar de directory /home/apache dan kun je vervolgens niet buiten die /home/apache directory komen. De directory wordt letterlijk je root directory, alles daarbuiten is voor dat proces onbereikbaar.
Kijk, daar kan ik wat mee. :)

Klinkt in ieder geval als een zeer veilige oplossing. Geldt zo'n chroot jail voor de gebruiker waaronder apache draait of voor heel het systeem? Lijkt me dat het in het laatste geval problemen geeft aangezien je dan nergens anders meer bij kan dan je webserver...
Voor de rest kun je IIS misschien beter vergelijken met complete webserver pakketten/control panels, zoals Cobalt RAQ, Plesk, cPanel, Webmin etcetera. Apache is immers ook maar deel van het geheel. En zo is het wat minder appels en peren vergelijken.
Ik zie niet in waarom IIS te vergelijken is met zo'n wanproduct als Plesk? Plesk brengt ook z'n wijzigingen aan in IIS. IIS is net zo veel en net zo min een control panel als Apache.

[ Voor 22% gewijzigd door Victor op 28-07-2005 21:55 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
King_Louie schreef op donderdag 28 juli 2005 @ 20:11:
Aangezien mijn kennis vooral bij IIS ligt, zal ik hier uitleggen waarom ik denk dat IIS veiliger is.
...
Tot zover was je post leuk, maar verder noem je niet één argument waarom IIS veiliger is. Zo'n argument bestaat ook niet echt, want een internetserver is in principe zo veilig als de kennis van de systeembeheerder toestaat. Alle features die je wél noemt worden ook op de een of andere manier door Apache ondersteunt.

Verder is Windows sowieso beperkt in kernel support voor security features, zoals chroot (wat in IIS afaik op applicatienivo geïmplementeerd wordt, net als Apache doet trouwens). Het gebruikte besturingssysteem is ook van invloed: zoals gezegd ondersteunt Linux een chroot 'jail' maar dat is alleen een beveiliging van het bestandssysteem, terwijl de jail zoals geïntroduceert in FreeBSD een stuk verder gaat en processen volledig van elkaar scheidt en ook beperkingen in het netwerkverkeer toestaat (waardoor het mogelijk is een jail volledig van een hoofdnetwerk af te schermen).

Een Apache server in FreeBSD jail is dus heel goed beveiligd tegen exploits; zelfs als er een root exploit gevonden wordt kan dat de rest van het systeem niet beïnvloeden. Maar dit is geen eigenschap van Apache: onder Windows bestaat zo'n jail helemaal niet. Daarom is het interessanter om een totaaloplossing te vergelijken (bv. Windows Server 2003 met IIS vs FreeBSD 5 met Apache, sendmail, bind en ftpd) dan alleen één applicatie.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik tel op SecurityFocus twee vulnerabilities voor IIS 6. Eén in de webadmin (die dus standaard uitstaat) en één die in iedere webserver voorkomt door een exploit in HTTP zelf. Met de software zit het dus wel snor.
En zelfs als de software niet veilig zou zijn, is de schade door het model van IIS 6 nog beperkt. De mogelijke exploit zou immers niet meer schade aan kunnen richten dan waar de account waaronder de site draait toegang toe heeft.
Dat geldt voor ongeveer elke webserver. Zeker voor servers waar meerdere klanten hun websites op hebben is dit van levensbelang. Het is dus niet zo dat een slecht geschreven script ervoor kan zorgen dat er bestanden buiten de webroot kunnen worden benaderd (bij een goed geconfigureerde server uiteraard).
Mijn ervaring is dat bij de meeste Linux installaties (die dus niet van scratch worden opgebouwd) er meestal wel Apache wordt geïnstalleerd. Maar goed, zoals ik eerder al aangaf weet ik er niet bijzonder veel vanaf, dus wellicht dat beeld niet klopt.
Meestal geef je globaal aan welke taken je voor het systeem wilt. Vaak zit er wel iets als een "webserver" profiel bij, waardoor er meteen een zwik internet services wordt geinstalleerd. Uiteraard is dit in "expert mode" allemaal precies te regelen. En in geval van nood kun je vaak zelf features toevoegen of verwijderen en de software opnieuw compileren.
Noem ze dan ook :)
Dat heeft eigenlijk meer te maken met het besturingssysteem. Er zijn diverse manieren om automatisch allerlei rechten toe te kennen aan gebruikers. Bijvoorbeeld LDAP (vergelijkbaar met Active Directory), PAM (een systeem dat rechten controleert voor alle software die het ondersteunt), etcetera. En deze kunnen onderling ook weer samenwerken.

Apache is slechts een HTTP server. Maar wel een hele goede met enorm veel features. En vele van die features kun je toevoegen met een module. Wat je niet gebruikt is ook niet te misbruiken.
Door middel van integrated security tussen IIS en MSSQL wordt de gebruiker van de website gebruikt als authenticatiemiddel voor de database. Dit biedt dus als voordeel dat de software nooit bij andere databases kan, aangezien deze niet buiten de rechten van de gebruiker kan. Misschien niet bijzonder, wel enorm handig.
Dat is afhankelijk van de database server. Maar bij bijvoorbeeld MySQL kan je gebruikers toegang geven tot bepaalde databases. Zo ook bij PostgreSQL.
De server herstart zichzelf dus niet, de instellingen worden "on the fly" toegepast.
Veel linux en BSD applicaties kunnen dit. Apache ook. Met bijvoorbeeld "apachectl graceful" wordt de configuratie opnieuw ingelezen, en toegepast op een proces zodra deze klaar is met het verwerken van een eventuele huidige request.

Acties:
  • 0 Henk 'm!

  • Victor
  • Registratie: November 2003
  • Niet online
Soultaker schreef op donderdag 28 juli 2005 @ 22:02:
Verder is Windows sowieso beperkt in kernel support voor security features, zoals chroot (wat in IIS afaik op applicatienivo geïmplementeerd wordt, net als Apache doet trouwens). Het gebruikte besturingssysteem is ook van invloed: zoals gezegd ondersteunt Linux een chroot 'jail' maar dat is alleen een beveiliging van het bestandssysteem, terwijl de jail zoals geïntroduceert in FreeBSD een stuk verder gaat en processen volledig van elkaar scheidt en ook beperkingen in het netwerkverkeer toestaat (waardoor het mogelijk is een jail volledig van een hoofdnetwerk af te schermen).
Zoals Linux het dan geïmplementeerd heeft, heeft het dus weinig meerwaarde ten opzichte van een goed geconfigureerde rechtenstructuur in bijvoorbeeld NTFS.

Ik moet zeggen dat de oplossing in FreeBSD wel erg interessant klinkt. Het volledig kunnen isoleren van taken van je server is natuurlijk erg netjes. Hoewel de software dan nog wel schade aan zou kunnen richten aan de data waar het bij moet kunnen om te kunnen functioneren, kan het zich in ieder geval niet verspreiden naar andere delen van je systeem. Mooie feature. :)
Verwijderd schreef op donderdag 28 juli 2005 @ 22:04:
Meestal geef je globaal aan welke taken je voor het systeem wilt. Vaak zit er wel iets als een "webserver" profiel bij, waardoor er meteen een zwik internet services wordt geinstalleerd. Uiteraard is dit in "expert mode" allemaal precies te regelen. En in geval van nood kun je vaak zelf features toevoegen of verwijderen en de software opnieuw compileren.
Tja, dit is dus te vergelijken met de methode van NT en 2000. Als je dom doorklikt zit het erin, maar als je even de moeite neemt kun je het er net zo makkelijk uitgooien. Persoonlijk gaat mijn voorkeur toch uit naar helemaal niets installeren en specifiek moeten kiezen wat je wel wilt hebben.
Dat heeft eigenlijk meer te maken met het besturingssysteem. Er zijn diverse manieren om automatisch allerlei rechten toe te kennen aan gebruikers. Bijvoorbeeld LDAP (vergelijkbaar met Active Directory), PAM (een systeem dat rechten controleert voor alle software die het ondersteunt), etcetera. En deze kunnen onderling ook weer samenwerken.
Ok, je kunt dus rechten toekennen aan gebruikers. Dat vind ik niet zo bijzonder. Waar het mij om gaat is dat je beperkte rechten kunt geven aan je verschillende webapplicaties. Kun je zoals ik in de TS beschreef ook op website niveau rechten regelen in Apache?
Dat is afhankelijk van de database server. Maar bij bijvoorbeeld MySQL kan je gebruikers toegang geven tot bepaalde databases. Zo ook bij PostgreSQL.
Het was dan ook slechts een voorbeeld van de voordelen van het feit dat websites binnen IIS een eigen identiteit als gebruiker hebben.
Veel linux en BSD applicaties kunnen dit. Apache ook. Met bijvoorbeeld "apachectl graceful" wordt de configuratie opnieuw ingelezen, en toegepast op een proces zodra deze klaar is met het verwerken van een eventuele huidige request.
Zelfde manier waarop een application pool recyclet. Start alvast een nieuw worker process, werkt met het oude openstaande requests af, sluit het af en gaat verder met een nieuw worker process.

Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Persoonlijk denk ik dat de vergelijking een beetje mank gaat - IIS is een applicatie / internet services platform waar je van alles aan en onder kan hangen en wat daar goed mee om kan gaan.

Apache is in z'n puurste vorm niet meer dan een geadvanceeerde webserver die goed uitontwikkeld is.

Als je de vergelijking tussen een 'full installed' IIS maakt en een vergelijkbare Apache config - dan kom je dus uit op iets als Apache+(PHP|Perl|Python)+WebMin+CUPS+SendMail, ik hoef je uiteraard niet te vertellen dat het security trackrecord wat betreft exploitbaarheid van die 5 bovenstaande applicaties vele malen slechter is dan het trackrecord van alle IIS versies bij elkaar. Gelukkig installeren de meeste van die applicaties zich niet standaard als remote benaderbaar, iets wat IIS tot voor 6.x wel deed - hiermee werd IIS praktisch gezien kwetsbaarder ondanks de theoretische minder kwetsbaarheid.

IMHO heeft het IIS6 platform net waar meer built-in features om virtual hosting goed gescheiden te draaien - onder Apache2 heb je bv. phpSUExec maar voor zover ik weet is dat altijd nog een CGI gebaseerde applicatie waardoor je performance behoorlijk omlaag gaat (tenzij je bv. FastCGI gebruikt), maar desondanks heb ik genoeg vertrouwen in beide platformen om mijn platform keuze niet af te laten hangen van security :)

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Vraagje : Wat is het uitgangspunt van de discussie iis / apache??? Is dat de professional die een goede en uitgebreide website neer moet zetten, of gewoon de thuisgebruiker die 1 http-pagina wil serveren???

Voor de prof is je beginpost namelijk helemaal nutteloos, al deze dingen moet een prof toch goed regelen ( en ik ga er niet vanuit dat een prof nog verborgen services had draaien ) ongeacht de webserver / platform.

Voor de thuisgebruiker is dit handig, maar waarschijnlijk is het goed beheren van application pools te moeilijk ( ze downloaden een script en dit werkt eerst niet, maar als je alle toegang geeft werkt het wel ) en zal het in de praktijk niet zo heel veel uitmaken, alle thuisgebruikers die ik ken zeggen : Ik wil een inet pagina op mijn eigen computer draaien ( en klikken en installeren vervolgens alles wat ze maar kunnen aanklikken, of het default aanstaat of niet )

Voor de vraag iis of apache welke veiliger is, dan hangt dit compleet af van de beheerder, de grootste (praktische code red etc. ) problemen met iis van de afgelopen 3 jaar komen doordat beheerders niet patchten, terwijl ze wel een functie aan hadden staan. Het was officieel geen lek meer, want er was een patch voor, alleeen hadden heel weinig mensen deze geinstalleerd.

Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Gomez12 schreef op zondag 31 juli 2005 @ 16:41:
Voor de prof is je beginpost namelijk helemaal nutteloos, al deze dingen moet een prof toch goed regelen ( en ik ga er niet vanuit dat een prof nog verborgen services had draaien ) ongeacht de webserver / platform.
Helaas is dit vaak niet waar - IIS5 (in 2000) werd vaak zat ge-exploit door mensen die hun "Default website" directory aanpastte in plaats van een nieuwe te maken en op die manier allerlei admin scripts nog beschikbaar maakte voor exploits :)

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
elevator schreef op woensdag 03 augustus 2005 @ 15:52:
[...]

Helaas is dit vaak niet waar - IIS5 (in 2000) werd vaak zat ge-exploit door mensen die hun "Default website" directory aanpastte in plaats van een nieuwe te maken en op die manier allerlei admin scripts nog beschikbaar maakte voor exploits :)
Ik versta waarschijnlijk iets anders onder een prof dan jij :)
Een systeem/netwerkbeheerder die eventjes een IIS website opzet en er daarna nooit meer naar kijkt vind ik geen prof ( in het opzetten van een information service ).
Pagina: 1