Inleiding
Enige tijd nadat Tweakers.net de kwetsbaarheid van verschillende ‘beveiligde’ usb-sticks uit de doeken deed, nam de leverancier van mobile-harddisk.nl contact met ons op. Ze leveren twee verschillende externe harde schijven die ook beveiligd zijn tegen onrechtmatig gebruik en wilden beide producten graag laten onderwerpen aan een kritische blik.
Mobile-harddisk.nl levert twee beveiligde externe harde schijven. De iUSB is een metalen externe harde schrijf gemaakt door het bedrijf Synology. De tweede is de BIO-250U; hiervan konden we de fabrikant niet vaststellen. Beide schijven zijn wereldwijd als externe behuizing te koop, maar ze worden door mobile-harddisk.nl al voorzien van een schijf. Beide exemplaren worden geleverd met cd met daarop de driver en een aantal andere programma’s: de iUSB heeft een tooltje om data met een druk op de knop te backuppen en de vingerafdrukscanner van de BIO-250U kan ook bestanden op de interne harde schijf versleutelen. Naast de cd worden twee usb-kabels meegeleverd zodat er geen gebruik gemaakt hoeft te worden van een externe stroomvoorziening.
De software
De werking van de software is niet nieuw, net als de eerder geteste usb-sticks emuleert de driver een cd-romstation als de schijf op de computer wordt aangesloten. Er is een publieke partitie die zonder wachtwoord toegankelijk is, en een beveiligde partitie die alleen met een wachtwoord of vingerafdruk te bereiken is. De grootte van beide partities is instelbaar. Het lijkt erop dat de beveiligde partities niet compatibel zijn met Linux. Bij de iUSB zijn, naast het onbruikbare cd-romstation met Windows-executables, twee verschillende partities zichtbaar. De publieke partitie is normaal toegankelijk, maar lezen van en schrijven naar het beveiligde gedeelte resulteert slechts in foutmeldingen. De BIO-250U toont ook een onbruikbaar cd-romstation en twee verschillende externe harde schijven. Op het moment dat we toegang tot de beveiligde schijf willen geeft het systeem een ‘no-media’-foutmelding.

Screenshot van de setup-wizard van de iUSB
De hardware
Om de hardware aan een nadere blik te kunnen onderwerpen moesten we uiteraard de schroevendraaier hanteren. Bij de BIO-250U was dit redelijk eenvoudig; de behuizing van de iUSB gaf zich echter niet zo makkelijk gewonnen. Toch moest ook deze uiteindelijk capituleren. In beide behuizingen bevindt zich een 2,5"-harde schijf. Met een usb-naar-ide-adapter sloten we de schijven op de computer aan. In eerste instantie konden we er weinig wijs uit worden. Het leek erop dat de schijven beide niet beschikten over een partitietabel. Ook de data bleek niet leesbaar: het linux-commando strings /dev/sda - dat gebruikt wordt om leesbare karakters op een schijf te tonen - leverde geen bruikbare informatie op.
De iUSB-behuizing bevat, gezien de verscheidenheid aan onderdelen, een opvallend kleine printplaat. Van rechts naar links zien we een microcontroller met typenummer CY7C68013, die de USB2.0-verbindingen regelt, een flashcontroller en 32MB nand-geheugen met de inhoud van het geëmuleerde cd-romstation. Naast de microcontroller zit nog een eeprom met daarop het programma van de microcontroller.

Het binnenwerk van de iUSB
De BIO-250U heeft een aanzienlijk grotere printplaat, maar minder onderdelen. Helemaal links is de vingerafdruksensor te zien. In het midden vinden we dezelfde microcontroller als op de iUSB, ook samen met een eeprom met daarop de firmware. Er is geen extra flashgeheugen aanwezig, wat betekent dat de inhoud van het geëmuleerde cd-romstation op de harde schijf geplaatst wordt via de bijgeleverde cd.

Het binnenwerk van de BIO-250U
Opvallend detail is de gebruikte microcontroller. Het is een simpel 8bit-exemplaar dat niet beschikt over speciale encryptieroutines. De snelheid is bij lange na niet hoog genoeg om softwarematige versleuteling te doen. Dat betekent dat iedere vorm van geavanceerde encryptie door de host-pc uitgevoerd moet worden.
In de aanval
De BIO-250U
Bij het aansluiten van de BIO-250U kregen we een bekend scherm te zien. Hetzelfde venster wordt namelijk gebruikt bij de usb-stick van enkele weken geleden. De software was vrijwel identiek; alleen de routines voor het aanspreken van de hardware waren logischerwijs anders. Op dit moment besloten we even het vorige artikel erbij te pakken. We kozen dezelfde library die we de vorige keer moesten aanpassen om toegang tot de beveiligde partitie te krijgen. Weinig verrassend was dit stukje software volledig identiek. Na het plaatsen van een breakpoint op dezelfde plaats en het aanpassen van een enkele waarde hadden we al toegang tot de beveiligde data. Dat was wel erg eenvoudig. Zou de iUSB ook zo snel zijn waardevolle inhoud prijs geven?
De iUSB
De iUSB gebruikt een wachtwoord om de data te beschermen. We hebben al eens uitgelegd waarom dat een stuk veiliger zou moeten zijn dan een scan van een vingerafdruk. In de handleiding van de behuizing wordt vermeld dat er gebruik gemaakt wordt van een intern ontwikkeld encryptiealgoritme. Dit mag voor de onwetende consument vertrouwenwekkend zijn, in de praktijk is dit bijna altijd een slechte keuze. Het is veel beter gebruik te maken van een bewezen en tot op heden ongekraakte methode zoals AES.
Om te onderzoeken of de software van de iUSB om de tuin te leiden was startten we onze debugger weer. We voerden een foutief wachtwoord in en vonden de routine die het wachtwoord controleert. Het bleek wederom erg eenvoudig deze routine zo aan te passen dat ieder willekeurig wachtwoord geaccepteerd zou worden. Na een tweede test bleek echter dat ook op een andere plaats het wachtwoord werd gevalideerd. We kregen geen melding dat het wachtwoord onjuist was, maar de beveiligde partitie werd ook niet vrijgegeven. Omdat het controleren van het wachtwoord vliegensvlug door de software werd afgehandeld leek het haalbaar een brute force-tactiek te gebruiken. Het nadeel hiervan is echter wel dat we eerst een stukje code moesten schrijven om de aanval uit te voeren, en dat het toch nog meerdere dagen zou kunnen duren om het wachtwoord te vinden. We gingen het eerst maar op een andere manier proberen.
De software van de iUSB heeft naast het controleren van het wachtwoord nog enkele functies. Het is mogelijk om een nieuw wachtwoord in te stellen zonder gebruik te maken van het oude, maar dan wordt de schijf op een grondige en niet terug te draaien manier gewist. Daar hebben we dus niets aan. De andere optie is het wachtwoord te wijzigen met gebruikmaking van het oude wachtwoord. Hoewel het scherm er identiek uitziet als het scherm dat het wachtwoord vraagt voor het vrijgeven van de beveiligde partitie, besloten we toch een poging te wagen. Met de debugger spoorden we de routine op die het oude wachtwoord controleert voordat het nieuwe actief wordt. Nadat we deze routine aangepast hadden probeerden we een nieuw wachtwoord in te voeren. We kozen voor het weinig originele ‘test’. De software meldde tot onze tevredenheid dat het wachtwoord met succes was aangepast. Hoewel dat natuurlijk goed nieuws was, waren we er nog niet zeker van dat dit voldoende zou helpen. We konden immers na het aanpassen van de routine die het wachtwoord voor de toegang controleert, nog steeds niet bij de versleutelde data. We voerden het nieuwe wachtwoord ‘test’ in, en we klikten op ok. Hoewel we eigenlijk helemaal rekenden op een foutmelding gebeurde er in eerste instantie niets. Het programma sloot af zonder een melding. Na een seconde werd echter de beveiligde partitie volledig vrijgegeven door de software. Ook de iUSB bleek relatief eenvoudig te kraken te zijn.

Een debugger-screenshot van de routine die het wachtwoord aanpast (klik om te vergroten)
We kwamen er later achter dat het systeem nog een ernstige ontwerpfout bevat. Bij het opstarten controleert de schijf de partitietabel om te zien welke partitie beveiligd moet worden. Door nu simpelweg de partitietabel te overschrijven met een lege en de schijf vervolgens opnieuw op de computer aan te sluiten worden beide partities helemaal vrij gegeven.
Reactie en conclusie
Nadat mobile-harddisk.nl op de hoogte was gesteld van de resultaten kregen we een nette reactie terug:
'We zijn teleurgesteld dat de schijven die op het oog zo veilig leken, zo eenvoudig te hacken zijn. We halen ze niet uit het programma, maar verkopen ze ook niet meer als oplossing om zeer vertrouwelijke data te beschermen. We hebben contact met de beide fabrikanten opgenomen, en ze gevraagd om een reactie. We hopen dat ze deze informatie gebruiken om hun producten te verbeteren, en we hopen dat ze deze test zien als een waardevolle aanvulling op hun ontwerpproces. We nemen ook contact op met al onze klanten, en bieden hen de mogelijkheid de schijf te retourneren. Wij zullen op onze beurt proberen deze schijven terug te sturen naar onze leveranciers. Wij denken dat we door onze producten ter test aan te bieden, en onze klanten de mogelijkheid bieden hun geld terug te krijgen onze verantwoordelijkheid voor de producten die wij verkopen ruimschoots nemen .'
De leverancier van de iUSB heeft inmiddels gereageerd. Ze brengen een nieuwe firmware uit die de geconstateerde problemen moet oplossen. Van de leverancier van de BIO-250U hebben we nog geen reactie mogen vernemen.
Het blijkt maar weer dat sommige fabrikanten niet eens beschikken over de geringste basiskennis met betrekking tot beveiliging. De keuze voor verificatie via een vingerafdruk maakt de BIO-250U bij voorbaat al kwetsbaar. Omdat de microprocessor te zwak is om de vingerafdruk te controleren moet dit in de software gebeuren, met alle risico's van dien. De iUSB valt ook lelijk door de mand. Hoewel er genoeg gratis sofware te vinden is die een goede beveiliging biedt door middel van sterke encryptie met een wachtwoord zet de iUSB de achterdeur wagenwijd open. Onze conclusie is dan ook weer dat voor huis-tuin-en-keukengebruik de beide schijven wel geschikt zijn, maar dat in het geval van strikt vertrouwelijke data maar beter uitgekeken kan worden naar een andere oplossing. Het wordt een beetje saai, maar we verwijzen graag weer naar Truecrypt.
We willen Bjorn Heirman van mobile-harddisk.nl bedanken voor het ter beschikking stellen van de schijven. Daarnaast ook een woord van dank voor Jeroen - op Tweakers.net bekend als Sprite_tm - voor het beschikbaar stellen van zijn kennis en tijd.