zaterdag 12 april 2014

Waarom Heartbleed schokkend is

Deze week kun je niet om het nieuws heen dat er een "bug"gevonden is in OpenSSL, open source software die je kunt inzetten om bijvoorbeeld je website van HTTPS te voorzien. Ik ben in de materie gedoken en die was verrassend toegankelijk. Nu ik de ins en outs ken wil ik wat met je delen, iets dat verder gaat dan de beveiligingsgat zelf.

Geen bug

Af en toe lees je dat het een bug is, dit is niet waar. Want de software deed gewoon zijn werk goed, er zat alleen een gat in de beveiliging. Eén van de eerste principes van veilige software is dat je de input van gebruikers niet vertrouwd. Als een functie vraagt "Geef mijn order informatie over Order X"  dan zou je software eerst moeten checken of de order wel van die gebruiker is. Dit ging er mis in OpenSSL. De gebruiker gaf zijn "hartslag" naar de server, maar door bewust over de grootte van de hartslag informatie te liegen, gaf de server een stukje van wat er in zijn geheugen stond terug, ook als deze data niet over de hartslag informatie van de huidige gebruiker ging.


C en Open Source

De kracht van Open Source is vaak dat het gratis te gebruiken is, dat de broncode voor iedereen in te zien is en dat mensen deze code zelf mogen wijzigen voor eigen gebruik, of de gemeenschap kunnen helpen door de code te verbeteren.  Dit is een mooi principe en kom ik zo nog op terug.


OpenSSL is een stuk software die je inzet om je site te beveiligen en waar robuustheid en veiligheid dus van enorm belang is. OpenSSL wordt door zeer veel grote bedrijven gebruikt om hun websites te beveiligen, niet alleen Google en Yahoo gebruiken het, maar ook zelfs banken. OpenSSL is echter geschreven in C. Dat is een computertaal die heel veel gebruikt wordt, redelijk snel op te pikken is en die vrij dicht op het hart van een computer zit nadat de software "gecompileerd" is. Hoe dichter bij het hart hoe sneller de code kan worden uitgevoerd en daar zit meteen ook een groot nadeel qua veiligheid. C is een taal die direct naar het geheugen van een computer schrijft en daaruit ook nagenoeg onbeperkt kan lezen. Software geschreven in C die op een server gebruikt word is een veiligheidsrisico in zichzelf. Als je de software niet goed geschreven is kan deze dus data uit het geheugen van de server geven die niets met de werking van de software zelf te maken heeft. In het geheugen van de server staan wachtwoorden van gebruikers, maar bijvoorbeeld ook het veiligheidscertificaat die gaat over de versleuteling van gebruikersdata. Wie dit certificaat en de juiste sleutel heeft zal dus de data van gebruikers kunnen lezen alsof deze niet versleuteld is. Met andere woorden: Als je het geheugen van een server kunt lezen op afstand kan deze server niet meer als veilig worden beschouwd. Ook alle geheimen die langs deze server zijn gegaan moeten gezien worden als "geopenbaard" en daarmee snap je waarom het OpenSSL gat zo heftig is.


Schaal

Nu moet ik een nuance aanbrengen die je bijna nergens leest: Zoals het lijkt wordt er namelijk niet een willekeurig stukje geheugen van de server teruggegeven naar de kwaadwillende gebruiker, maar het stukje geheugen wat gebruikt werd in de buurt van de "hartslag". Wellicht is het onvoorspelbaar wat daarin geschreven stond, maar het moet nog blijken na testen of hiermee uiteindelijk het volledige geheugen van een server was uit te lezen, of dat de geheugenstroom vooral te maken heeft met data die te maken heeft met de werking van OpenSSL. Het is dus niet zeker of een server wel al zijn geheimen prijsgeeft door dit lek.


Maar even terug naar de taal C. Deze is dus niet geschreven met veiligheid in het achterhoofd. Het is dan ook zeer moeilijk om inherent veilige software te schrijven in C. Dat OpenSSL zo populair is en breed wordt toegepast is een indicatie van onachtzaamheid. Ik denk dat veel bedrijven zich niet bewust waren van dit risico.


Wat is er nu zo schokkend aan dit veiligheidsgat? Dat banken en bedrijven als Google OpenSSL zo breed hebben toegepast, vooral voor Google staat deze software aan de basis van de veiligheid van diens producten en had gewoon goed en continu getest moeten worden. Goede unit testing had deze onvolkomenheid er namelijk direct uitgehaald.


Google, maar ook banken hebben meerdere security officieren. Als je de architectuur van je IT landschap bekijkt moet OpenSSL eruit gekomen zijn als belangrijk onderdeel in de beveiliging. De NSA had zijn huiswerk wel goed gedaan. De NSA zoekt steeds naar gaten van software en deze software heeft zonder twijfel de revue gepasseerd aldaar omdat het geschreven is in C en wereldwijd gebruikt is.


Tot slot

Als het nu een echt obscuur geval was en zeer vergezocht, dan had ik dit niet geschreven, maar dit gat is groter dan het gat in de ozonlaag, is enorm eenvoudig te misbruiken en had nooit op zo'n schaal mogen bestaan. Als dit soort fouten mogelijk zijn, dan houdt ik mijn hart vast wat er nog in het "vat" zit. De maatregelen die bedrijven moeten nemen zijn fors. Er wordt dit weekend flink overgewerkt, maar erger nog is dat er wellicht miljarden wachtwoorden veranderd moeten worden, maar dit in de regel niet gebeurd. Dat het gat crimineel nog niet op grote schaal is uitgebuit stelt me dan nog enigszins gerust.


Even de nieuwste versie van OpenSSL installeren is niet voldoende. Ook het beveiligingscertificaat moet opnieuw worden aangevraagd en geïnstalleerd, maar ook alle wachtwoorden moeten als gelekt worden beschouwd.


Interesting times....

zondag 6 april 2014

Blendle is kansloos?

Die sympathieke Alexander Klöpping die ons meenam naar Silicon Valley en met glinstering in zijn ogen praat over producten van Apple heeft een initiatief gestart om het probleem waar journalistiek al jaren mee worstelt op te lossen. Digitale lezers laten betalen voor nieuws en journalistiek. Een tijdje terug had ik al een draft geschreven over kansloos Blendle. Nu ik het eindelijk heb kunnen gebruiken heb ik weer wat meer recht van spreken.



Concept
Het concept is simpel. Je betaalt voor ieder artikel wat je leest uit de diverse kranten en tijdschriften. Ook de betaling is simpel, je stort vooraf geld en betaald een klein bedrag, meestal minder dan 25 cent, voor ieder artikel dat je leest. Betalen ervan gaat automatisch als je het artikel leest, maar als het tegen valt kun je direct je geld terug vragen. Lezers zijn gebruikers en die kunnen weer hun artikel en mening delen en eventueel verspreiden over de social media.


Een aantal redenen waar ik Blendle kansloos achtte is dat als je bijvoorbeeld zes artikelen per dag leest, je al meer kwijt bent dan het laten bezorgen van de krant. De micro bedragen zelf zetten ook geen zoden aan de dijk als er niet heel veel gelezen gaat worden. 5000 Betalende lezers leveren misschien 1000 euro op. Dat bedrag wordt echter al minimaal door 3-en gedeeld; de schrijver, de uitgever en Blendle.


Execution is key!
Ik heb nu echter mijn proef account inclusief 2,50 lees tegoed. Ik heb pas een paar artikelen gelezen, dat heeft er wel voor gezorgd dat ik mijn mening bijstel. Blendle heeft wel kans om een succes te worden! De grootste reden is dat goed geschreven artikelen geweldig zijn om te lezen en dat je deze niet leest via de generieke media. Doordat al die artikelen een blendle zijn van diverse tijdschriften leent het zich erg tot cherry picking, van alle bladen alleen de leukste artikelen lezen. Ook de in-app tijdlijn zorgt ervoor dat artikelen die de moeite waard zijn gedeeld worden zodat je niet hoeft te zoeken, maar leest wat er op je pad komt.


De magie zit dus wederom in de executie van een idee. Bij veel kranten zie je initiatieven van betaalmuren, maar dat zijn vaak slappe ideeën zonder echte input in de uitvoer van het idee. Blendle brengt veel goede ideeën samen, stopt er zeer veel tijd in, overhaast zich niet en komt uiteindelijk tot een prachtige uitvoer.


Is Blendle kansloos in een internet wereld die niet wil betalen voor content? Absoluut niet. Als er een idee is wat kans maakt, dan is dit het. Ik kan artikelen vullen van details die goed en minder goed zijn uitgewerkt, maar als dit niet slaagt, dan wordt het echt tijd om in paniek te raken als je uitgever bent.

Link: Blendle