Op woensdag 05 juni 2002 17:39 schreef beelzebubu het volgende:
Mijn ervaring is dat dat niet zo is. Opensource is vaak iets wat je om meerdere redenen wilt voorkomen (laat ik hier geen opensource vs. closed source discussie van maken)
Dat is dan te laat, je initiele posting in deze thread doet JUIST dat, terwijl je feitelijke discussie totaal daar los van staat.
maar met name bij kleine bedrijven zijn deze security experts er niet. Die moet men inhuren. Of niet. En als het toch closedsource blijft, waarom dan die extra kosten? Ook bij Microsoft zie je het. Grappig genoeg zijn in IIS, wat minder gebruikt wordt en closedsource is, meer gaten bekend dan in Apache, wat meer gebruikt wordt, complexer is en opensource is...
Nee. In IIS zelf zitten minder gaten dan in Apache. De extensies van IIS zitten soms wel vol gaten. Dit is veelal zeer oude code (zoals de .htr parsers) die allang niet meer is geupdate en ook zelden wordt gebruikt. Apache is minder complex dan IIS, (pas in 2.0 is apache qua complexiteit op gelijke voet gekomen). De ultieme illusie verder is dat OMDAT apache open source is, er minder leaks in VERWACHT kunnen worden. Dit is de meest dikke plaat beton die je voor je knar kunt hebben hangen. Immers: doe eens een schatting van het aantal mensen die de sourcecode van Apache snappen, en daardoor security leaks kunnen vinden. Doe ook eens een schatting van het aantal developers bij bv Microsoft die de IIS code snappen, plus het aantal testers en automatische testprogramma's die de code uitpersen. Ik denk dat de balans wel eens negatief voor Apache kan uitvallen.
MS heeft nu aangekondigd alle oude buttcode uit veel software te verwijderen en dat is niet meer dan terecht. Het is nl. veelal juist die code die telkens weer opduikt als de leak-provider.
Het geeft aan dat veel bedrijven security through obscurity toch blijkbaar als reden zien om dan maar de security wat minder aandacht te geven... En daar zit hem de grote fout, dat is supergevaarlijk. En dat weten we allemaal!
Je snapt niet wat security through obscurity is. Hint: dat is NIET een stuk software closed source releasen, immers een op bv RSA gebaseerde encryptie is closed source dan wel open source even veilig.
[..]
Omdat jij weet waar je mee bezig bent, jij wet er veel vanaf. De meeste mensen (en dan vooral de mensen die de FAQ moeten lezen) niet...
... waaronder jij. (nofi).
Overigens ben ik het met je eens dat security through obscurity, of closedsource, whatever, het vinden van lekken wel kan vertragen.
Closed source != security through obscurity! Een cracker interesseert het niet of het in C dan wel assembler is, een debugger attachen aan een executable en maar breakpoints zetten kan net zo goed en iemand die weet wat hij doet is net zo snel in het vinden van bugs dan wanneer je de source erbij hebt. Sterker: sneller. Dit omdat je at runtime ziet wat code doet, door programma-text te lezen DENK je dat je snapt wat de code doet, maar na een paar 1000 regels code ben je echt essentiele details vergeten.
Maar uiteindelijk komen ze toch wel aan het licht. Dan is het inzicht geven in de code aan experts een enorm goed middel. Veel bedrijven doen dat - vele anderen niet. In zoverre ben ik het dus met Limhes eens - het is een goede extra beveiliging.
Symptoombestrijding.
Een goed security model ONTWERP je vooraf, en laat dat doorzagen door experts. DAARNA ga je het implementeren en TEST je de implementatie ervan. Alleen maar achteraf kijken of programmeurs een steekje hebben laten vallen is niet genoeg en zelfs dom: het geeft een vals gevoel van veiligheid. Veel leaks zijn het 'anders' gebruiken van functionaliteit, waardoor een correcte implementatie niet goed functioneert in alle gevallen. Andere leaks zijn bugs in de implementatie en implementaties die zaken met data uithalen die, bij het lezen van dissassembly/source + debugger laten zien hoe de security kan worden omzeild. (bv encryptie van passwords die te decrypten is).
Om met mbravenboer's woorden te spreken, een oplossing moet by design goed in elkaar steken. De enige manier (imho) om dit te bereiken is door jezelf kwetsbaar op te stellen, dan komen nl. de gaten pas aan het licht - en dus moet je inzicht geven in de code, tenminste aan een select stel experts, maar misschien wel aan iedereen. Opensourcing of experts inhuren (of in dienst nemen bij grotere bedrijven). Het is allemaal een oplossing.
Open sourceing van software lost NIETS op. Het door laten zagen van je ontwerp door experts en het verifyen van implementaties ervan door testrobots en groepen testers WEL. Alleen dan weet je zeker dat je ALLE zaken test die je wilt testen, immers die definieer je vooraf. Open sourceing geeft die garantie NIET. Misschien kijkt iemand er pas na 2 jaar na. Ben je wel 2 jaar vulnerable geweest.
.NET is een goed voorbeeld van hoe het wel moet: security vanaf het begin hoogste prioriteit geven, design dichttimmeren en testen op flaws, daarna implementeren en dmv testrobots en testteams kijken waar de implementatie tekort schiet. Je kunt dan VOORAF bepalen dat WAT je test ook alles is wat je moet testen en achteraf, dus na het testen, bepalen of hetgeen je oplevert klopt met vooraf gestelde specs.
Het maar open sourcen en hopen dat een groepje mensen het bekijken EN ook nog aan jou rapporteert is niet een garantie dat je ALLES test en na die test ook zeker weet dat het correct is. Die garantie kun je, zover mogelijk, wel geven bij closed source, niet bij open source.
Als laatste, wat ACM zegt over bugtraq klopt - velen zien de obscurity als probaat middel om niet teveel naar de security te hoeven kijken - en dat is dus een fout, dat heb ik al eerder gezegd. Als toevoeging aan je security model, dus om het moeilijker te maken, kan het werken. Maar het mag niet op zichzelf staan, dat werkt gewoon niet.
Nee, dat wisten de spelletjesmakers op de C64 al dat dat niet werkte, want binnen no time waren beveiligingen op basis van simpele obscurity protection schema's gekraakt. Dus wat is je punt?
Om dus terug te komen naar het originele topic, ik denk dat een nuancering of kanttekening als toevoeging uit het gequote stukje uit de FAQ zeker een goed idee zou zijn. Zoals het nu in de FAQ staat kan het misleidend zijn omdat het lijkt alsof 'geen informatieverstrekking' op zich een goed middel tegen crackers is - dat is dus niet zo.
Huh? 'Geen informatieverstrekking' is de ENIGE manier om crackers buiten de deur te houden. Ten eerste worden de meeste systemen juist gekraakt door crackers die gewoon opbellen en middels een smoesje essentiele info ontfutselen (informatieverstrekking) en ten tweede is het zaak GEEN info te verstrekken waaruit ook maar de kleinste details kunnen worden ontleend, waardoor je crackers buiten de deur houdt.
Jij focust puur op bugs in implementaties (buffer overflows etc). Dat is echter maar een deel van de leaks waar het over gaat en dat heeft OOK al geen moer met security through obscurity te maken.