Door _R0N_: Laten we eerlijk zijn. Het argument voor OS was altijd dat het veiliger was omdat je zelf de code kon controleren. Feit is dat niemand dat deed en er vanuit ging dat een ander dat had gedaan.
Laten we dan ook echt eerlijk zijn en kijken waar dat beeld van onfeilbaarheid eigenlijk vandaan is gekomen. In 1997 heeft Eric S. Raymond "The Cathedral and the Bazaar" geschreven, op basis van zijn observaties van hoe in het Linux-kernelproject gewerkt werd. Daar komt de kreet "Given enough eyeballs, all bugs are shallow" vandaan, waarop dit gebaseerd is. Dat was de gevleugelde versie van:
Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html (http-only en traag)
Zie je wat daar staat? Beta-testers and co-developer base. Die eyebals zijn niet de eyebals van willekeurige mensen die ook bij de broncode zouden kunnen, maar de eyeballs van mensen die actief meewerken aan een project. Het punt is dat in die "bazaar" al die mensen zich overal mee kunnen bemoeien, door mee te praten op een forum of mee te gaan coderen of zo, terwijl in de "cathedral" van traditionele organisatiestructuren mensen taken toebedeeld krijgen en hun tijd verkeerd besteden als ze zich opeens ook ergens anders mee bemoeien. Dit gaat om maximale gelegenheid tot kruisbestuiving binnen de groep die ergens aan werkt.
Dat is dus een observatie over het Linux-kernelproject, een project dat geen gebrek aan actieve ontwikkelaars heeft. Daarbij merkte Linus Torvalds zelf trouwens direct al op dat degene die het probleem vindt vaak een ander is dan degene die het oplost, en dat het vinden van het probleem een grotere uitdaging is.
Wat fanbois die geen donder van softwareontwikkeling begrijpen maar dat helaas volop met magisch denken compenseren daar maar al te vaak van gemaakt hebben is dat als de broncode maar publiek toegankelijk is alle problemen vanzelf verdwijnen. Dat is niet wat er staat, dat was van begin af aan al onzin, en iedereen met een beetje inzicht erin weet dat dat onzin is.
Wat de even fanatieke tegenstanders van FLOSS, fanbois van Microsoft vaak, vervolgens om het hardst doen is dat magisch denken van die Linux-fanbois presenteren alsof dat representatief is voor degenen die open source software ontwikkelen. Dat lijkt handig als je propaganda aan het voeren bent, maar besef wel dat je jezelf verlaagt tot hetzelfde niveau van onbegrip als van die fanbois. Dan ben je eigenlijk geen haar beter. En al helemaal niet als het iets is dat je bewust doet.
Er is geen enkel verschil tussen CS en OS behalve dat AI nu vrij toegang heeft tot de code om lekken te vinden van alle OS projecten.
Apart dan dat Microsoft wel zoveel lekken dicht. Ze laten natuurlijk zelf die AI-tools los op hun broncode, maar wat voor reden hebben ze daarvoor als ze toch veilig zitten? Simpel: het is een kwestie van tijd voor dat soort tools er ook voor binaire code zijn. Dan is closed source niet meer veilig. En als je kijkt hoe snel de ontwikkelingen rond generatieve AI zijn gegaan zou dat moment wel eens dichtbij kunnen liggen, als het al niet zo ver is.
Denk je echt dat root toegang verlenen mey een wachtwoord van 256 karakters per ongeluk is?
Denk je echt dat dat opzet is? Wat je daar beschrijft, root toegang met een wachtwoord van 256 tekens, is het effect van de twee fouten die hier in combinatie zijn gebruikt, maar het effect is nog niet het doel van de bugs, een effect kan ook door toeval optreden, zonder enig doel.
Dit gaat om een combinatie van twee software-projecten, OpenSSH en de musl C-library (de meeste distro's gebruiken glibc), en zelfs als die samen gebruikt worden moet ook nog geen PAM-authenticatie gebruikt worden, en dan heb je nog dat wel heel lange wachtwoord nodig om tegen de fout aan te lopen. Dus beide software-projecten hebben een steek laten vallen, en dan nog trad het effect alleen op door configuratiekeuzes die Linux-distro's of individuele beheerders doen. Ik kan me goed voorstellen dat de fout niet makkelijk werd ontdekt.
Maar is de kans niet waanzinnig klein dat die fouten er om te beginnen al allebei in zitten? Maakt dat het niet waarschijnlijk dat er opzet in het spel is? Misschien is dat hoe je redeneert, maar die manier van redeneren klopt niet. Als er een waanzinnig groot aantal dingen beschikbaar is dat potentieel fout zou kunnen gaan (alle denkbare bugs en hun combinaties, niet alle bugs die er werkelijk in zitten) dan hoeft er maar een waanzinnig klein deel van die dingen zich werkelijk voor te doen (dat zijn dus de werkelijke bugs) om toch echt de poppen aan het dansen te hebben. En als zo'n combinatie die werkelijk een lek vormt gevonden wordt dan is de kans daarop op de kwetsbare systemen ineens 100%.
Vergelijk dat met de hoofdprijs van ik weet niet hoeveel miljoen winnen in de loterij. De kans dat het je overkomt is astronomisch klein, maar er zijn desondanks wel degelijk mensen die het overkomt. Er zijn dus mensen die iets overkomt dat nagenoeg onmogelijk is. Dat gebeurt omdat er miljoenen mensen meedoen. Zelfs waanzinnig kleine kansen veranderen uiteindelijk in zekerheden als er maar genoeg gelegenheden zijn waar ze op kunnen treden. Dat is niet de zekerheid dat het op een specifieke plek optreedt, die is heel klein, maar wel de zekerheid dat dat
ergens gebeurt. Maar ergens is wel degelijk ergens, en daar gebeurt het dan toch, ondanks die kleine kans. Waar dat dan is is puur toeval, totdat het winnende lot is getrokken, dan is het opeens zeker en concreet.
Zo gaat het ook met dat soort bugs, of combinaties van bugs. Dit kan dus wel degelijk heel goed toevallig zijn ontstaan, zonder opzet.