Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 48 reacties

OpenBSD heeft versie 5.6 van zijn gelijknamige besturingssysteem uitgebracht. In de code is LibreSSL opgenomen, een fork van OpenSSL, die ontstond nadat met de Heartbleed-bug een ernstige kwetsbaarheid in de code van OpenSSL bekend werd.

OpenBSDIn de implementatie van LibreSSL in OpenBSD 5.6 zijn, zoals al eerder door OpenBSD-projectoprichter Theo de Raadt werd aangekondigd, veel potentieel kwetsbare en verouderde protocollen weggelaten. Zo ontbreekt ondersteuning voor SSLv2, TLS-compressie en zwakke ssl-ciphers op basis van 'US Export'-regulering.

Ook de ondersteuning voor diverse hardware is uit de code van LibreSSL verwijderd, omdat deze is verouderd of omdat de desbetreffende chips van onder andere IBM en Broadcom alleen met behulp van propriëtaire drivers aangesproken kunnen worden. In OpenSSL, de meest breed gebruikte opensource-ssl/tls-implementatie, zijn deze onderdelen nog wel aanwezig.

OpenBSD, gebaseerd op FreeBSD dat afgelopen zondag zijn 21e verjaardag vierde, bevat in versie 5.6 ook een verbeterde installatietool en een bredere ondersteuning voor moderne hardware. OpenSMTPD is verder gekozen als standaard-smtp-mail-deamon, maar in tegenstelling tot veel andere opensource-besturingssystemen is Oracles MySQL nog niet ingeruild voor MariaDB. Verder kunnen OpenBSD-gebruikers kiezen uit een KDE- of Gnome-omgeving. Ondanks de nadruk op de beveiliging van het besturingssysteem bevat ook OpenBSD weeffouten. Zo werd vorige maand een gevaarlijke bug ontdekt die al tien jaar in de broncode aanwezig was.

Moderatie-faq Wijzig weergave

Reacties (48)

Toch wel een beetje verbazend, OpenBSD is normaal heel terughoudend met grote wijzigingen juist omwille van het security aspect.

Als ik lees dat in LibreSSL in een week tijd 90.000 regels code zijn geknipt, stel ik toch wel enige vragen bij de veiligheid daarvan. Natuurlijk was heartbleed een groot probleem maar die is met 1 simpele wijziging gefixt. Als je zo hard gaat knippen dan zou ik het eerst een langere tijd goed testen om te voorkomen dat er niet iets is weggehaald dat wel belangrijk was :) Het doet ook wel een beetje voorkomen alsof er niet echt een duidelijke strategie achter de wijzigingen zit.

Ik vind het LibreSSL een goed idee, dat zeker, maar ik had wel verwacht dat OpenBSD eerst de kat uit de boom had gekeken.
Natuurlijk was heartbleed een groot probleem maar die is met 1 simpele wijziging gefixt

Juist niet. Heartbleed zelf was een kleine fix, maar het bleed zo gevaarlijk te zijn in combinatie met 3 andere daardoor ontdekte bugs. OpenSSL had namelijk default een memory caching systeem en zette je dat uit kreeg je soms memory corruptie, daarnaast werden bepaalde buffers met decrypte data niet gewist na 'free' en tenslotte bleken priemgetallen van de private key gecached. Dat laatst is technisch gezien geen bug maar wel een 'ongewenste feature' volgens velen, en in combinatie met de andere twee maakte het mogelijk via heartbleed de private key te krijgen.

Wat heartbleed deed is een kijkje in de keuken geven van OpenSSL en het was niet iets wat door de keuringdienst van waren goedgekeurd zou worden. Bovendien bleken de grote bedrijven die OpenSSL gebruikten hun eigen bevindingen en aanpasingen vaak niet te delen met OpenSSL anders dan wat patches over de muur gooien. OpenSSL was van iedereen, en dus voelde niemand zich verantwoordelijk.
Patches bleven soms jarenlang hangen. En zo had Akamai de memory caching al jaren uitstaan, maar omdat ze het niet gedeeld hadden was de priemgetal caching hen ontgaan en waren ze dus alsnog vatbaar.
Ook CloudFlare en Google hadden dat niet ontdekt, maar ook zij hadden memory caching uitstaan. Memory caching bleef echter wel al die jaren de default ondanks dat de grootgebruikers het een onzin-feature vonden. Als zij de koppen bij elkaar gestoken hadden en besloten dat de nieuwe default 'uit' had moeten zijn, was een deel van de ellende voorkomen.
Ook hadden ze niet ontdekt dat je memory corruptie kon krijgen. Dat werd namelijk ontdekt toen de libreSSL mensen met hun befaamde OpenBSD kerneltools aan de slag gingen.

Verder is libreSSL geen nieuwe ontwikkeling, maar vooral het eruit slopen van oude semi-ongebruikte code. Support voor 16bit, oude cyphers, compilers, etc. 90K regels klinkt veel, tenzij je beseft dat het vooral dode code was. Code die vaak niet eens gecompileerd meer werd. Als je bang bent voor dat, zou je al helemaal de kriebels moeten krijgen van Google's BoringSSL. Dat maakt immers anders dan libreSSL ook nog eens aanpassingen in de API's en functionele code. O-)

Het trieste is echter nu dat na Apple, nu ook Google en OpenBSD dus effectief niet meer werken aan OpenSSL, en de toekomst daarvan mogelijk niet echt beter wordt.

EDIT: typos

[Reactie gewijzigd door Armin op 3 november 2014 18:32]

Yep helemaal mee eens, desnoods hadden ze wellicht een tweede branch uit kunnen brengen, een 6.0 test branch waar deze wijzigingen in zitten. Nu is het verschil van 5.5 naar 5.6 wel heel erg groot.
Als het goed is is LibreSSL een drop-in replacement van OpenSSL dankzij het in stand houden van de API. Je zou dus niks moeten merken van die grote wijzigingen. Ze denken overigens wel na over een nieuwe API genaamd ressl.

Uit datzelfde stuk blijkt dat de afgelopen maanden er vooral naar de wel benodigde code is gekeken: "[...] avoiding excitement is all part of the plan. The first 30 days were all about revolution. Now we've switched into evolution mode."

[Reactie gewijzigd door Rafe op 3 november 2014 19:01]

Code knippen verhoogt over het algemeen de beveiliging. Natuurlijk is zoiets niet zonder meer in elke situatie van toepassing, maar code verwijderen introduceert zelden problemen.
OpenSSL zit stampvol met routines die exceptions afhandelen.
Ik zou zeker niet stellen dat 90k regels eruit knippen 'in het algemeen' de beveiliging verhoogd.
OpenSSL zit stampvol met routines die exceptions 'afhandelen'.
Alleen de manier waarop... }:O ;( :?
Lees de backlog van LibreSSL eens door, wat voor puinhoop het was. Daar wordt je niet blij van.
Dat heeft uiteraard zijn redenen en oorzaken. Het zal moeiljk zijn voor LibreSSL om niet in dezelfde problemen te lopen. Kan goed zijn dat het over 15 jaar een even grote knoeiboel is.
Daarom hanteren ze bij de BSD's de zogenaamde Kernel Normal Form, die er voor moet zorgen dat de code leesbaar blijft. Ook hanteren ze bij OpenBSD als principe dat het OS zaken als memory allocation en random numbers goed moet regelen, en dat een app dat niet zelf moet fixen. Ze hebben door de jaren heen een vrij goed track record opgebouwd.

[Reactie gewijzigd door Rafe op 3 november 2014 23:24]

if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0;
Zo iets knippen heeft wel gevolgen.
Ook de ondersteuning voor diverse hardware...
Daar zijn dus grote if-statements/pragma's verwijderd, welke hopelijk vrij geÔsoleerd waren binnen de code dus geen onderdeel van spaghetti code zijn/waren.
Als ik lees dat in LibreSSL in een week tijd 90.000 regels code zijn geknipt, stel ik toch wel enige vragen bij de veiligheid daarvan.
Een regel code die er niet meer is kan ook geen security bugs bevatten.

Oude meuk die vrijwel niet meer wordt gebruiken en dus nauwelijks naar gekeken en getest daarentegen..

[Reactie gewijzigd door Aaargh! op 3 november 2014 15:49]

Een regel code die er niet meer is kan ook geen exceptions opvangen en zo alsnog een gat open laten doordat andere code ook met een exception door blijft werken...
Wat er is niet kan niet kapot klopt, maar het kan ook niks voorkomen of repareren.

Edit @hieronder: Ik zeg ook niet dat je foute code moet oplossen met meer code, maar ik neem aan dat je je userinput controleert ipv het direct in je script gooit bijvoorbeeld ;)

[Reactie gewijzigd door RGAT op 4 november 2014 08:41]

Fouten repareren door er nog meer code tegenaan te gooien is altijd fout.
[...]

Een regel code die er niet meer is kan ook geen security bugs bevatten..
Nee, maar aan de andere kant was het misschien wel de oplossing van een bug. Code snoeien is leuk, maar je moet er wel bij stil staan dat die code er ooit met een reden in is gezet. Misschien wel om een exception af te vangen die nu de boel kan laten crashen.
LibreSSL wordt uitvoerig getest binnen de OpenBSD ports tree, welke nog altijd compiled, dus zijn er niet of nauwelijks breaking changes geweest, en daar waar ze wel breaking waren is de port aangepast. Geheel genomen zit het, in ieder geval binnen OpenBSD wel goed. De code cleanup is vooral code voor bejaarde systemen die niemand meer gebruikt.
Als ik lees dat in LibreSSL in een week tijd 90.000 regels code zijn geknipt, stel ik toch wel enige vragen bij de veiligheid daarvan.
Indien de code modulair is opgezet en voorzien van commentaar en documentatie, is het heel goed mogelijk om grote stukken code (bijvoorbeeld voor de afhandeling van bepaalde protocollen) in een keer te verwijderen, zonder impact te hebben op de overige stukken.

Bij de meeste projecten is de aanwezigheid van duidelijk commentaar en goede documentatie natuurlijk een utopie... ;)
Sorry als ik hier een heisa mee start, maar ik snap het doel van BSD niet helemaal ten opzichte van Linux, of is het gewoon voor het hebben van een alternatief?
Dezelfde vraag zou zijn als je vroeg waarom we Ubuntu, Xubuntu, Kubuntu, Xubuntu, Fedora, OpenSUse en alle andere distros hebben.
Iemand had gewoon een goed idee of wilde een alternatief voor iets dat er al is. En wanneer je een idee hebt dat net zo goed of beter werkt als een alternatief waarom zou je er niet mee doorgaan?

Ik heb ervaring met zowel verschillende Linux systemen en FreeBSD en vindt BSD persoonlijk makkelijker. Maar is ieder natuurlijk zijn eigen mening.
Na jaren met Linux gewerkt te hebben heb ik pas geleden diverse distro's van BSD uitgeprobeerd. De server versie zou ik nog wel willen aanraden vanwege de veiligheid en stabiliteit (al zie ik het nut van switchen van linux naar BSD niet aangezien Linux daar ook best goed in is), maar als desktop vervanger loopt het lichtjaren achter op een distro als Ubuntu. De community, en daardoor support, is vele malen kleiner. De enige BSD-distro die echt goed is als desktop is Mac OS X, maar dat draait vrijwel alleen goed op Apple hardware.
Wie spreekt er over een desktop versie? Ik zou BSD ook niet aanraden als desktop vervanger. Ik nam alleen verschillende distros als voobeeld.

[Reactie gewijzigd door Vegettokai op 3 november 2014 20:55]

Okido, ik dacht dat jouw reactie niet alleen over server-versies ging toen je al die Ubuntu-versies ging opnoemen die zich alleen onderscheiden van elkaar middels hun GUI. Dan denken we er hetzelfde over.
Nja ik noemde die ubuntu versies op omdat de jongen waar ik i reageerde niet begreep waarom je met alternatieven komt als iets al werkt. En die voorbeelden zijn juist de alternatieven voor ubuntu. Thats why ☺
Komt inderdaad op hetzelfde neer ja. Ik zal er eens mee spelen, misschien word ik wel overgehaald :)
Jazeker lekker handmatig je wifi module laden en met wpa_supplicant je wifi verbinding tot stand brengen.
Jij gebruikt Wifi modules in je rackservers??? Dat is echt vreemd. Nee wacht dat is echt RAAR. Ik gebruik voor mijn 2 servers thuis echt geen Wifi module gewoon Gbit LAN.

[Reactie gewijzigd door Vegettokai op 3 november 2014 20:59]

Ehm een hotspot mischien?
Word een beetje moeilijk zonder wifi.
Volgens mij heb je al niet meer met Freebsd gewerkt. Probeer eens een 11 snapshot.

Zelfs mijn oude centrino WiFi werkt opeens.
Dat klopt,is al weer een tijdje geleden.Dank je wel voor de tip.
Dus jij gebruikt een rackserver als hotspot?
/Nee beetje duur vind je ook niet
Het doel? A is het apples en peren vergelijken en B. heb je van Linux ook distributies die elk amper met elkaar compartible zijn, C hebben zij andere licenties en daarom ook andere toepassingsgebieden, D is BSD meer een academisch feestje en E BSD is een compleet OS met alles erop en eraan terwijl Linux een brei kernel code is maar niet meer. Pas als je er een GNU userland tegen aan gooit heb je iets dat op een OS lijkt (zie distributies)

En F. BSD bestond al veel langer en heeft echte Unix roots

[Reactie gewijzigd door matty___ op 3 november 2014 17:02]

En BSD'ers snappen het doel van Linux niet :D. BSD is tevens een "echte Unix" terwijl Linux een pragmatische Unix alike kernel kloon is met GNU die het van userland voorziet.
Dus meer een concurrent voor elkaar, aight :)
Zal een keer met BSD spelen om de verschillen te vinden, zal het een heel verschil maken met linux of is het ongeveer gelijk?
Als je in linux je weg weet te vinden dan lukt dat zeker ook met bsd. Sommige dingen zijn anders maar ook heel veel gelijk.
De tools van BSD zijn orthogonaler. Ze houden zich meer aan de oude adage "One tool for one job" en alsdus zal je oude getrouwen wel vinden maar ze zullen beperkter zijn (ps, ls, grep, awk, ...).
Ik werk wel eens met beide, en vind FreeBSD op de commandline net iets logischer in elkaar zitten. Toen ik dat mijn broertje vertelde, had hij een paar leuke woorden voor me. ;)

Erg persoonlijke voorkeur denk ik dan, maar jij kan het ook logischer vinden, mogelijk.
Het lijkt mij een goede zaak om backwards compatibility tot op zekere hoogte op te geven t.b.v. extra veiligheid. Het eeuwenlang ondersteunen van reeds jaren als zwak bekend staande protocollen is gewoon vragen om problemen IMO. De keuze voor LibreSSL geeft ook naar OpenSSL een signaal af om e.e.a. eens goed te herzien.
De keuze van een software maker is altijd een afweging tussen belangen. In dat opzicht is de keuze tussen LibreSSL of OpenSSL (en dan samen met cURL, anders heb je geen https, OpenSSL levert alleen het 'SSL' deel) arbitrair (als met beide dezelfde API en integraties bestaan, anders ligt de keuze vaak al vast).

Voorbeeld: een webontwikkelaar gebruikt cURL om de klant een stukje software aan te bieden. Met https wordt een verbinding naar een bank (of fiscus of andere overheids organisatie waar de klant verpicht 'zaken' mee doet) opgezet. Echter die organisatie loopt lichtjaren achter op veiligheidsstandaarden. De klant moet echter zijn jaaropgave, belastingberekening, overboeking of wat dan ook toch uitvoeren. Dus is er geen keuze dan de bank te volgen in de slechte security.

Dat (grote) organisaties zo traag zijn is omdat het een hele klus om alles over te zetten. Even een default veranderen naar een stuk strikter security protocol is er niet bij. En het toverwoord risico speelt een hele grote rol. Systemen zijn soms zo complex dat geen manager durft te zeggen dat oud-insecure spul nu echt uit moet. Er zal vast nog wel ergens een oude applicatie draaien die niet over kan. En dan gaat - helaas - de business toch voor.
En nu de grootste vraag, is dit de laatste OpenBSD versie of hebben ze door middel van LibreSSL, genoeg geld binnen gehaalt om weer een jaartje vooruit te gaan?

http://www.undeadly.org/c...rticle&sid=20140114072427
OpenBSD, dat afgelopen zondag zijn 21e verjaardag vierde
Dat was FreeBSD, niet OpenBSD ;)
OpenBSD is gebaseerd op NetBSD, niet FreeBSD.
openbsd zit toch ook in de ps4?
zouden ze dit dan ook implementeren?
Nee, het OS van de PS4 is geforkt van FreeBSD 9 en wordt daarvandaan verder ontwikkeld. De nieuwe functionaliteiten en libraries van OpenBSD ga je dus niet zonder meer terug zien Orbis OS (Het OS van de PS4).

[Reactie gewijzigd door dev10 op 3 november 2014 15:34]

Beetje jammer dat httpd geen ingebouwde loadbalancing heeft,
het heeft unix socket support en is gebaseerd op een loadbalancer!

Had perfect geweest voor Ruby on Rails en dergelijke...
Daar heb je bijvoorbeeld HAProxy, nginx als loadbalancing proxy voor.
OpenBSD is waar 'pf' vandaan komt (packet filter - de firewall van OpenBSD), en pf heeft al load balancing features (d'r is eigenlijk weinig wat pf niet kan).
Edit: zojuist zag ik dat C.Hariri dit al had gemeld.
...[knip] OpenBSD, gebaseerd op FreeBSD....[knip]
OpenBSD is een fork van NetBSD en dat is dus niet FreeBSD.

Voor de zekerheid nog even opgezocht:
[1] https://en.wikipedia.org/wiki/OpenBSD
[2] http://sdtimes.com/the-story-of-bsd-and-open-source-linux/

[Reactie gewijzigd door DigiNezer op 4 november 2014 01:50]

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True