In de aanval
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
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)
Volgende pagina (Reactie en conclusie - 4/4)