Wat zou de douane doen als ik met de attachékoffer die ik in deze aflevering voorstel, over de grens zou reizen? Toch is de inhoud compleet onschuldig, al moet ik toegeven dat die in een Bond-film niet zou misstaan...

hetlab logo
Henk van de Kamer

 

In PC-Active nummer 296 uitte ik mijn zorgen wat betreft de beveiliging van embedded apparaten. Een aantal maanden daarvoor maakte de wereld kennis met WannaCry [https://en.wikipedia.org/wiki/WannaCry_ransomware_attack]. De code hiervan was gebaseerd op een gestolen cyberwapen van de Amerikaanse veiligheidsdienst NSA met de naam EthernalBlue [https://en.wikipedia.org/wiki/EternalBlue]. Meer dan vijf jaar lang (!) was de NSA ‘vergeten’ om de bug die hun cyberwapen misbruikte, te melden aan Microsoft. Dat vergeten mag je als sarcasme van mijn kant opvatten. De schade van deze aanval ligt volgens schattingen tussen enkele honderden miljoenen tot een aantal miljard dollars.

SambaCry
EthernalBlue maakt gebruik van een bug in versie 1 van het SMB-protocol. Voor de niet-ingewijden: dit is de basis van Windows bestandsdeling. Het SMB-protocol is in 1983 ontwikkeld door een IBM-medewerker. Windows 1.0 [https://en.wikipedia.org/wiki/Windows_1.0] zag twee jaar later het levenslicht, ofwel SMB is pas later door Microsoft omarmd. Letterlijk, want zij zorgden in 2006 voor SMB-versie 2 en later voor versie 3. De oude versie is voornamelijk voor backwards-compatibiliteit en kan op moderne netwerken rustig uitgezet worden.samba2
Windows bestandsdeling is tegenwoordig de standaard en andere protocollen om bestanden te delen komen we steeds minder vaak tegen. Dit betekent dat macOS en Linux het ook moeten gebruiken. Dat is mogelijk dankzij de opensource software Samba. De ontwikkelaars daarvan hebben alle details van het SMB-protocol via reverse engineering achterhaald en op basis daarvan hun eigen code geschreven.

Nadat de werking van EthernalBlue bekend was, werd al snel een vergelijkbare bug in de Samba-code gevonden. Deze werd in analogie EthernalRed genoemd en uiteraard volgde al snel een SambaCry aanval. Wat veel mensen zich niet realiseren, is dat in de meeste huishoudens ondertussen meer computers met een GNU/Linux besturingssysteem draaien dan met Windows. Bijna alle embedded apparaten gebruiken GNU/Linux. Ook Samba wordt daardoor wijdverspreid zodra uitwisseling van bestanden wenselijk is. Voor een NAS is dat een vereiste, maar ook routers, bewakingscamera’s en mobiele telefoons hebben vaker wel dan niet Samba draaien. Op gewone computers worden patches al slecht doorgevoerd, dus je kunt je voorstellen wat de status is van apparaten die de meesten niet eens als computer zien. Nog erger is dat veel fabrikanten dezelfde nonchalance hebben als het gaat om het maken van updates of, nog erger, dat maar compleet vergeten...

WD My Cloud
Voor een boek over de NAS wilde ik een hoofdstuk maken met een oplossing voor dit probleem. De keuze viel op een WD My Cloud omdat een aantal mensen daarop Debian Jessie konden draaien. Na aanschaf bleek dat het verkochte apparaat – logisch gezien de tijdlijn – qua EthernalRed zo lek als een mandje was. In diezelfde periode bracht Synology patches uit voor hun apparaten. Western Digital reageerde doodleuk met het volgende antwoord toen iemand vroeg wanneer zij met patches zouden komen:

According to your information you would like to know when will there be a security patch for the new Samba Cry vulnerability.
We would like to inform you that we do not support Linux operating system.

Duidelijk een antwoord van iemand die niets van techniek begrijpt. Het is dan ook niet vreemd dat bijna een half jaar later pas een update [https://bit.ly/2F5Ssak] beschikbaar was die het gat dichtte.

Ik had al langer zorgen over de beveiliging op embedded apparaten, maar bovenstaand voorbeeld is de druppel die de emmer bij mij deed overlopen. Als het aan mij ligt, wil ik geen enkel apparaat meer waar ik niet een eigen besturingssysteem op kan zetten. Ook ik zal niet altijd meteen een update maken, maar dan weet ik in ieder geval wie een schop krijgt als het misgaat. Eigen verantwoordelijkheid dus en niet afhankelijk zijn van een fabrikant waar commerciële belangen op de eerste plaats staan.

Rsyncd
Nadat ik de WD My Cloud van Debian Jessie had voorzien en het boek had ingeleverd, waren er andere zaken die om mijn aandacht schreeuwden. Vorig jaar begon ik met het archiveren van de nodige zaken en wilde ik uiteraard een back-up. Waarna ik mij afvroeg waarom op een NAS een webinterface of Samba zou moeten draaien. Sterker nog, die laatste zodanig instellen dat de back-up niet door een virus mishandeld kan worden, vraagt de nodige discipline.

Voor het back-uppen gebruik ik meestal het rsync-commando via een SSH-verbinding. Die laatste zorgt voor een versleutelde verbinding, maar op veel embedded apparaten zorgt dat voor een fikse processorbelasting. En waarom zou ik op mijn eigen netwerk versleutelen? Dit alles combineren, leidde tot het draaien van een rsync daemon [https://www.hetlab.tk/back-up/rsync-daemon-4]. Tezamen met het script waarmee ik voor het synchroniseren bepaal welke bestanden gewijzigd of verwijderd zijn en daar dan een archief van maak, is dit wat mij betreft de perfecte oplossing.

Praatje
Zo perfect dat het geheel opnieuw een jaar uit mijn gedachten verdween. Totdat ik onlangs een praatje moest geven over de NAS en besloot om bezoekers te laten zien hoe embedded systemen ook geüpdatet kunnen worden. Zoals gezegd draaide op dat moment Debian Jessie, maar deze was bij het verschijnen van het boek al LTS – Long Term Support ofwel drie jaar – geworden. Nu kan ik het systeem upgraden naar Debian Stretch, behalve de kernel. Deze is niet beschikbaar via een pakket, omdat elk embedded apparaat zijn eigen kernel nodig heeft. Of beter een DTB- deel (Device Tree Blob) en daar kom ik zo op terug. Mogelijk dat Debian Stretch draait op de oude kernel, maar beter is om ook deze te upgraden.

De B van Blob hierboven geeft aan dat het een binair bestand is. Veel hardware heeft iets dergelijks en dat noemen we oneerbiedig BLOB – Binary Large OBject. Wie privacy belangrijk vindt, wil eigenlijk dit soort zwarte dozen niet op zijn of haar computer. Qua grootte is het gemakkelijk om een achterdeur op te nemen en als deze BLOB bijvoorbeeld voor een netwerkkaart nodig is, wordt het doodeng. In geval van een DTB is dat anders als we deze zelf kunnen compileren vanuit een DTS – de S staat voor source ofwel broncode – met een DTC – waarbij de C voor compiler staat. De broncode is een letterlijke beschrijving van de hardware tot op pinniveau en frequenties van chips. Fabrikanten van embedded apparaten leveren vaak een .dtb-bestand mee en in dat geval is het weer een zwarte doos als de .dts ontbreekt…

attache koffer 2

Wat zou de douane van deze koffer vinden?

 

 

 

 

 

 

 

Gelukkig heeft iemand een .dts-bestand voor de WD My Cloud gemaakt en daarmee is het compileren van de juiste kernel geen probleem. Omdat de Debian Jessie via een tarball [https://en.wikipedia.org/wiki/Tar_(computing)] is ‘geïnstalleerd’ heb ik een procedure [https://www.hetlab.tk/embedded/verbouwen-wd-my-cloud-9] gemaakt via debootstrap – een tool voor het installeren van Debian op het gewenste medium via een andere computer. Daarmee draait het geheel nu op Debian Stretch. Dit alles wilde ik live demonstreren en dat leidde tot de attachékoffer met inhoud, zoals te zien in getoonde foto.

De zwarte doos links is een externe harddisk waarmee bezoekers de installatieprocedure zelf konden testen. Daarvoor had ik een Debian repository nodig en dat is de taak van de Raspberry Pi midden boven. Hierop draait een webserver met de bestanden afkomstig van een installatie cd-rom. De harddisk met embedded moederbord is een uitgeklede WD My Cloud. Hierop heb ik een seriële verbinding gesoldeerd, zodat bezoekers ook eens konden rondneuzen in de U-Boot – te vergelijken met UEFI of BIOS – en zien hoe een computer bediend kan worden zonder aangesloten toetsenbord en beeldscherm. In het midden ten slotte een router met OpenWrt. Dat laatste is voor deze demonstratie niet noodzakelijk, maar wel noodzakelijk is dat ik nu mijn eigen netwerkje heb waarop de Raspberry Pi, WD My Cloud en natuurlijk een laptop aangesloten kunnen worden.

Tot slot
Helaas is de ruimte weer op. Het praatje was een succes, maar heeft mij inclusief het maken van de koffer ruim tachtig uur werk gekost. Nu is de opstelling in de koffer snel terug te plaatsen, ofwel als iemand mij wil uitnodigen – niet in de avond gezien de reistijden – voor een demonstratie, is dat bespreekbaar. Enige tegenprestatie is betaling van de reiskosten, maar dat spreekt denk ik voor zich. Mijn e-mailadres is henk@hetlab.tk. Mogelijk tot ziens...