HvA beveiligingslek

Lek in leeromgeving Hogeschool Amsterdam gaf toegang tot cijfers

10-09-2014 - Sander de Vos


Op donderdag 4 September vonden we een groot privacy- en beveiligingslek bij de Hogeschool van Amsterdam. Aanvankelijk werd eerst gedacht dat het enkel om een privacylek ging dat het mogelijk maakte om 3000 pasfoto’s van medestudenten te downloaden, maar al snel werd duidelijk dat er met die data veel meer gedaan kon worden.


VLO

VLO is de Leeromgeving van de HvA (heb ik me laten vertellen). Niemand weet helemaal zeker waar de V in VLO precies voor staat. Het zou zomaar eens Vrolijke Leeromgeving kunnen heten.

In de VLO zat een privacylek dat het mogelijk maakte met wat programmeerkennis een JSON bestandje aan te maken met daarin de voor en achternamen, pasfoto’s, HvA-ID’s en e-mailadressen van studenten.

Omdat ook wij een HvA-pas nodig zullen hebben om deel te mogen nemen aan de tentamens op de HvA waren we daar niet zo blij mee. Het ongevraagd publiceren van een pasfoto moet echt niet kunnen. Om het even te verduidelijken: een pasfoto is een foto die bedoeld is voor een ID-kaart of een paspoort. Dit is niet een random Facebook foto. Ook wordt er bij het verstrekken van een pasfoto voor een HvA-pas niet gevraagd of deze nog voor andere doeleinden gebruikt mag worden. Zonder toestemming gaat jouw pasfoto een schoolsysteem in waar je vervolgens zelf totaal geen controle meer over hebt.


HvA-ID wachtwoorden resetten

Nadat Tijme en ik de som 1+1 hadden uitgerekend kwamen we er al snel achter dat met de data van het privacylek veel meer gedaan kon worden. Wanneer een inschrijving wordt bevestigd op de HvA krijgt een student meteen een HvA-ID toegestuurd die hij/zij vervolgens moet activeren. Al snel kwamen we tot de conclusie dat het activeren van een HvA-ID ook kon worden misbruikt om iemands HvA-ID wachtwoord te resetten op basis van de data van het privacylek. Direct daarna zijn we aan de slag gegaan om het beveiligingslek te melden.


Van het kastje naar de muur

Na 8 keer te zijn doorverwezen en 2 keer gebeld te hebben kwamen we bij de juiste persoon terecht die de ernst van het beveiligingslek wél begreep. Dit is overigens ook logisch: niet iedereen bij zo’n grote organisatie heeft IT-kennis. Na het lek gedemonstreerd te hebben werd er gezegd dat er direct achteraan gezeten zou worden. Dit is ook gebeurd: het beveiligingslek is meteen (tijdelijk) gedicht en ook het privacylek was al snel opgelost. Nu hebben alleen docenten nog toegang tot de gegevens van studenten. De HvA is op het moment van schrijven nog bezig om het beveiligingslek netjes en volledig op te lossen. Daardoor is het voor nu niet mogelijk om een HvA-ID online te activeren, hiervoor moet een student tijdelijk naar de servicedesk.


Twitter en de media

Ik zelf zet alles op Twitter waarvan ik denk dat mensen het grappig of interessant kunnen vinden. Dit doe ik volledig op persoonlijke titel en ik ben me er van bewust dat sommige mensen hier op sommige momenten minder blij mee zijn. Dat is het mooie van Twitter: je kan zonder al teveel moeite gehoord worden door personen en bedrijven. Dat heeft op zich vrij weinig met dit verhaal te maken, maar dat is mijn mening. Al snel werd ik gecontacteerd door Foliaweb nadat ik de volgende tweet had verstuurd:

Eerste grootschalige privacy en security lek gevonden op de #HvA binnen de 1e week.

— Sander (@sdevos16) September 4, 2014

Foliaweb wou een paar vragen stellen over het beveiligingslek dat we hadden gevonden. Natuurlijk stemde ik hiermee in maar gaf ik wel aan dat ik geen details kon vrijgeven voordat het lek daadwerkelijk gedicht was. Dit deed ik overigens uit mezelf. Ik ben niet gevraagd om hierover mijn mond te houden. Sindsdien staat de telefoon roodgloeiend en is het artikel verschenen op Tweakers, Het Parool (online en offline), AT5, HanzeMag, Sensor Magazine, The Post, RTV Ronde Venen, Peters Hotnews en vooral op Twitter en Facebook.




Onze mening

Naar onze mening heeft de HvA snel en adequaat gehandeld bij het oplossen van het privacy en beveiligingslek. Ze hebben het lek hartstikke serieus genomen en hebben er echt werk van gemaakt. Wij zijn van mening dat menig bedrijven hier nog het een en ander van kunnen leren.


Dit blog item is geschreven om het een en ander te verduidelijken en te voorkomen dat er online een verkeerd beeld wordt geschept. Wij zijn niet gevraagd dit te doen. Als dit wel zo zal zijn dan zouden jullie dat allang op Twitter hebben gelezen :-)


Sluiten

Masonry newsfeed

Een webapplicatie die het lezen van nieuws plezieriger moet maken

10-09-2014 - Sander de Vos


Naast het programmeren lees ik dagelijks het nieuws. Ik ben van mening dat je nooit 1 kant van het verhaal moet geloven, dus ik doe dit ook uit meerdere bronnen. Nu heb ik helaas niet de tijd om achter ieder artikel de waarheid te zoeken maar ik ben meestal wel redelijk op de hoogte. Het enige probleem is dat ik naar zoveel verschillende websites moet toegaan om alles te lezen. Iedere website heeft zijn eigen menu, social media buttons, reclame en nog veel meer onnodige overhead.


Dat probleem wou ik graag oplossen. Om dat te kunnen doen moet ik de content naar mij toe laten komen. Ik wil een webapplicatie die alle artikelen in hetzelfde format weergeeft, makkelijk werkt op mobiele telefoons (voor tijdens het reizen) en vrij is van reclame. Om dit te bereiken moet ik al het nieuws ophalen van alle websites en behoorlijk wat filteren.


Gelukkig bieden de meeste websites RSS feeds aan. Die feeds bevatten (meestal) een beknopte versie van het artikel. Dit is perfect, want zo ga je alleen naar de website toe wanneer je zeker weet dat je het artikel ook daadwerkelijk interessant vindt. De RSS feeds worden opgehaald, door een aantal filters heen gehaald (om reclame en tracking cookies te weren), omgezet naar het juiste format voor de webapplicatie en vervolgens weergegeven.


Om de applicatie zo simpel mogelijk te houden maak ik geen gebruik van een database. Deze keuze heb ik gemaakt omdat ik anders ook aan garbage collection moet denken. Er wordt uiteraard wel gebruik gemaakt van caching. Ook heb ik geen auto refresh geïmplementeerd. Ten eerste omdat ik dan toch gebruik zou moeten maken van een database (om alleen de laatste artikelen op te halen) en omdat ik van mening ben dat de meeste mensen al genoeg tijd op hun smartphone doorbrengen.


Nadat alle RSS feeds zijn opgehaald worden ze in 1 array samengevoegd en gefilterd door een slimme PHP functie:

<?php
private function sort_by_publication_date($a, $b) {
	$a = strtotime($a->pubDate);
	$b = strtotime($b->pubDate);

	if ($a == $b) {
		return 0;
	}

	return ($a < $b) ? 1 : -1;
}
?>

Het resultaat is hier te bekijken: https://ucfirst.nl/playground/masonry/.

Let wel dat de afbeeldingen van Nu.nl tergend traag laden omdat ze er niet van houden dat er 20+ requests tegelijk worden gedaan. Pre loading moet nog worden toegepast.


Sluiten

Secure Chat

Een applicatie die je privacy respecteert en veiligheid serieus neemt

10-09-2014 - Sander de Vos


Iedereen heeft de berichten gelezen. Iedereen weet dat alles wat je op het internet doet potentieel onveilig is. E-mail is onveilig, netwerken schijnen backdoors te bevatten, SSL blijkt niet de oplossing voor alles te zijn en zelfs encryptie wordt in twijfel getrokken. Toch worden de meeste fouten gemaakt bij de implementatie van beveiliging. WhatsApp is verre van veilig en Telegram maakt gebruik van een zelfgemaakt protocol.


We zijn volop bezig met de ontwikkeling van een Android app. Een chat applicatie die je privacy respecteert en beveiliging serieus neemt. We maken gebruik van open standaarden en proberen zo min mogelijk het wiel opnieuw uit te vinden. Omdat er een keuze gemaakt moet worden tussen gebruiksvriendelijkheid, privacy en veiligheid hebben we ook een webapplicatie ontwikkeld die vooral de laatste 2 punten respecteert. De webapplicatie staat los van de toekomstige Android app en draait dan ook op een aparte omgeving.


De webapplicatie is inmiddels af en kan gebruikt worden op http://chat.soved.eu/. Huh?! Geen SSL?! Nee, inderdaad, geen SSL. SSL zorgt er alleen voor dat de verbinding van de client naar de server is beveiligd. Natuurlijk kan dit later worden toegevoegd als 2e encryptie laag, maar voor nu is dat zeker niet nodig. Alle encryptie en decryptie vindt namelijk client-side plaats. Op die manier kan er zelfs niet op de server worden achterhaald wat er in het bericht staat. Dat gaat ons namelijk helemaal niks aan, want een gesprek hoort privé te zijn en vooral ook te blijven.


De server is een "dom" doorvoerluik en slaat niets op. Er worden geen Apache logs bijgehouden, er wordt niet naar je IP-adres gekeken en we kunnen de berichten niet inzien omdat ze client-side zijn beveiligd (AES256) met een gehashde versie (SHA512 + salt) van een wachtwoord. Tijdens het verbinden word je in een random room gegooid, moet je een wachtwoord instellen (bij de verzender én ontvanger) en krijg je een socket id toegewezen. Het socket id wordt tijdelijk opgeslagen in het RAM geheugen en is het enige middel wat jou kan herleiden. Ook client-side wordt er nagenoeg niks opgeslagen (op de browserhistory na dan), geen cookies, geen localstorage, niks.


Sluiten

Team

Het team

Twee enthousiaste ontwikkelaars

Ucfirst bestaat uit twee enthousiaste ontwikkelaars die er alles voor willen geven om een project tot een succes te maken.

Development

Development

De laatste ontwikkelingen

Ucfirst zet de laatste bewezen technieken in om iedere website, app of webshop innoverend te maken.

Producten

Producten

Websites, apps en webshops

Ucfirst richt zich op de front- en backend ontwikkeling van websites, apps, webshops en systemen op maat.

Ucfirst is een veelzijdig development bureau

Onze passie is het beveiligen, creëren en optimaliseren van web- en mobile apps.

Websites

We ontwikkelen responsive websites en webapplicaties. Tijdens de ontwikkeling letten we nauwkeurig op de front- en backend performance, veiligheid en gebruiksvriendelijkheid.


Apps

Ongeveer 70% van de smartphones in Nederland draaien op Android, het open source besturingsysteem van Google. Een Android applicatie is een mooie uitbereiding van uw website of webshop.


Webshops

We ontwikkelen webshops met bijvoorbeeld iDeal, Track & Trace codes en een makkelijk te begrijpen Management Systeem om uw hele assortiment én administratie te beheren.


book.get-e.com

book.get-e.com

jetcat.nl

jetcat.nl

studioroex.com

studioroex.com

strongviking.com

strongviking.com

wijnhandelgommers.nl

wijnhandelgommers.nl

kinderopvangkoekoek.nl

kinderopvangkoekoek.nl

maudvanrijn.nl

maudvanrijn.nl

autogalleryeindhoven.nl

autogalleryeindhoven.nl

HvA beveiligingslek

10-09-2014 - Sander de Vos

We hebben een groot privacy- en beveiligingslek gevonden bij de Hogeschool van Amsterdam.

Lees meer...

Masonry newsfeed

10-09-2014 - Sander de Vos

Een webapplicatie die het lezen van nieuws plezieriger moet maken.

Lees meer...

Secure Chat

10-09-2014 - Sander de Vos

Een applicatie die je privacy respecteert en veiligheid serieus neemt.

Lees meer...

Contact


E-mailadres
contact@ucfirst.nl

Adres
Herenweg 57, 3648 CB Wilnis

KvK nummer
60141913