Lek in 4g-modem maakte Windows-laptops kwetsbaar voor niet-verwijderbare malware

Onderzoekers van Intel hebben een bug gevonden in een 4g-modem van Huawei in Windows-laptops. Het modem checkte updates van de eigen firmware niet, waardoor een aanvaller eigen firmware met malware kon flashen op het modem. Er is een patch.

Door malware voor een Windows-laptop onder te brengen in het 4g-modem, is de malware immuun voor virusscanners en blijft deze nog de laptop staan, zelfs als de gebruiker de laptop terugzet naar fabrieksinstellingen, meldt Computerworld. Het is onbekend in welke laptopmodellen het Huawei-modem precies te vinden is. Het typenummer van in elk geval het genoemde kwetsbare modem is ME906V.

Het modem checkte bij firmware-updates niet of de cryptografische handtekening klopte, waardoor het iedere firmware accepteerde, ook als daar malware in zit. Het modem is verbonden via een interne usb-verbinding, blijkt uit de presentatie op hackersconferentie DEF CON. Het Huawei-modem heeft een eigen processor en eigen besturingssysteem, een afgeleide van Android.

Een kwaadaardig programma op de Windows-computer kan vervolgens de update installeren op het modem, waarna antivirusprogramma's er niet meer bij kunnen en een herinstallatie van Windows ook niet helpt.

Huawei heeft inmiddels een patch uitgebracht om het beveiligingsgat te dichten. De Intel-onderzoekers meldden dat de fabrikant snel handelde toen zij het lek kwamen melden.

Door Arnoud Wokke

Redacteur

10-08-2015 • 08:39

51 Linkedin

Reacties (51)

51
50
37
2
0
0
Wijzig sortering
Het is onbekend in welke laptopmodellen het Huawei-modem precies te vinden is.
De presentatie van DEF CON spreekt toch echt over type ME906V in alle screenshots.

Of dat ook meteen het enige LTE/4G-device is wat kwetsbaar is, kan ik niet 1-2-3 terugvinden.
Anoniem: 463321
@MAX340010 augustus 2015 17:58
[...]
"Het is onbekend in welke laptopmodellen het Huawei-modem precies te vinden is."
De presentatie van DEF CON spreekt toch echt over type ME906V in alle screenshots.
type ME906V is toch echt niet het model van de laptop. Het is niet duidelijk in welke laptop modellen die module zit.
Ah, dank je wel! Heb het er even bijgezet in het artikel.
De HP LT4112 Gobi 4G is volgens mij een OEM product hiervan, wellicht is deze ook kwetsbaar.
Het modem checkte bij firmware-updates niet of de cryptografische handtekening klopte, waardoor het iedere firmware accepteerde
Een goede zaak, het geeft de eigenaar de vrijheid te installeren wat hij wil. De beveiliging tegen flashen met "foute" firmwares zou moeten bestaan uit een fysieke schakelaar. De cryptografische handtekening zou alleen gebruikt moeten worden om de gebruiker opmerkzaam te maken op het feit dat hij een niet originele firmware aan het installeren is en hem de keus geven om dat wel/niet te doen.

Overigens, aangezien er steeds meer malware via hardware/firmware opduikt, zou elk stuk hardware met een 2de schakelaar moeten komen die de complete firmware wist. Alleen de code om een nieuwe firmware te installeren zou dan over moeten blijven, en die moet in ROM aanwezig zijn zodat hij niet verandert kan worden.

@MAX3400. Als op een andere manier de veiligheid niet te garanderen is wel ja. En natuurlijk kan dat wel fysiek, we hebben het hier niet over schakelaars die je dagelijks gebruikt. Maar dit kost natuurlijk wel EUR 0,02 meer per apparaat, het kost moeite en je moete weten wat je doet. Dat alles hebben we er niet voor over en dus zoeken we excuses en doen we liever niets. Dat is het probleem.

[Reactie gewijzigd door locke960 op 10 augustus 2015 10:46]

zou elk stuk hardware met een 2de schakelaar moeten komen die de complete firmware wist
Dan trek ik je opmerking even door tot het uiterste; je wil dus graag fysieke schakelaars op de controller van een Mini USB drive, een Realtek AC97 controller of een JMicron ethernet controller? Of hoeveel controllers/flashables zitten er wel niet in je GSM, tablet, televisie?

Ik begrijp dat je een soort omgekeerde kill-switch wil maar de implementatie kan & zal onmogelijk fysiek gaan zijn omdat de procedes voor het produceren van chips al zo geavanceerd is, dat je onmogelijk nog een aan/uit schakelaar erop kan maken.
Omdat het voornamelijk tweakers en reparateurs betreft vind ik twee naast elkaar liggende soldeereilandjes ook een schakelaar. Even kortsluiten en de rom wordt zoals locke960 schreef gereset. En voor twee extra eilandjes is vast wel plaats op de print.
Het lijkt me het beste om een systeem te implementeren dat je wel custom rom's moet flashen, maar daarvoor moet je eerst iets doen waar je echt fysieke toegang voor nodig hebt. Zolang dat niet is gedaan moet de firmware alleen geflasht kunnen worden als die is voorzien van een handtekening van de fabrikant.
Ik zie het al voor me: We krijgen de good old DIP-switches terug.

Ohh, die tijd toen je nog kon overklokken door DIP-switches te verzetten. Tweaken met een horlogeschroevendraaiertje in de hand ... :)
Zou een goede zaak zijn...
Firmware fysiek tegen schrijven beveiligen is de beste methode die via een exploit nagenoeg niet te omzeilen is.

Je enige kans is dan een erg domme gebruiker en social engineering...
Ik vraag me even af hoe dat fysiek werkt. Ik neem aan dat b.v. het modem wel contact met de computer moet hebben, en het modem moet contact kunnen maken met zijn eigen firmware, anders kan het niet werken. Dus die draadjes kun je allemaal niet afsluiten. Hoe sluit je dan iets af dat garandeert dat er niets naar het geheugen van de firmware geschreven kan worden (dat dus geen ROM is)?
Een geheugenchip werkt als volgt:

Vanaf de databus krijgt zo'n chip de volgende zaken:

Get of Set (wel of geen spanning op een fysieke pin)
Het geheugenadres waarvan de waarde gelezen of geschreven moet worden. En als er geschreven moet worden de waarde die dat betreffende geheugen adres moet krijgen.

Door de draad naar de fysieke set pin te onderbreken met een fysieke schakelaar kan de chip dus nooit beschreven worden zonder de onderbreking van de fysieke schakelaar op te heffen(om te zetten)

De data die het modem moet verwerken moet niet in de firmware maar in een soort ram geheugen welke op zijn beurt een vluchtig geheugen dient te zijn. (wat bij stroomloos worden alle data verliest)

Kijk ook eens hier naar: https://youtu.be/cNN_tTXABUA

Zowel mijn verhaal als het filmpje zijn erg vereenvoudigt maar de basisprincipes kloppen wel met de werkelijkheid.

[Reactie gewijzigd door Plopeye op 12 augustus 2015 23:59]

Het is op zich wel goed dat een eigenaar van een apparaat custom firmware kan flashen, maar het is niet cool als dat het risico op malware vergroot, en zeker niet met een modem. Op mobieltjes etc. is het nogal al lastig om een rootkit te ontwikkelen die overleeft als de telefoon wordt geflasht, voor dit apparaat is dat niet zo want als je je PC herinstalleert kan er dus een rootkit aanwezig blijven. Het lijkt me beter dat de keys wel gewoon gecheckt worden en dat er daarnaast nog een mogelijkheid is om de bootloader te unlocken om custom firmware te flashen.

Je zou het zo kunnen doen dat je op basis van een serienummer een telefoonnummer genereert, dat op je simkaart zet en daarmee de bootloader unlockt. Dat nummer mag natuurlijk niet geschreven worden vanaf het modem zelf en als dat een nummer is dat niet met een 0 begint en veel te lang is om normaal voor te komen heb je er nooit last van dat je net een bepaald nummer niet op je sim kunt zetten vanaf het modem.

Op die manier simuleer je een soort van fysieke switch (alleen met fysieke toegang kun je dit doen) om de beveiliging uit te zetten en eigen firmware te flashen.

Een echte fysieke schakelaar is gewoon geen optie. Technisch gezien kan het wel, maar in de praktijk is het geen doen. Elke keer dat men updates krijgt moet het knopje weer om en daarna weer terug. Als dat knopje een keer stuk gaat zit je mogelijk met een modem wat niet te updaten is en mogelijk een beveiligingsrisico heeft, of nog erger, het blijft aanstaan en je bent alsnog kwetsbaar voor malafide rom's.

Als je overigens alleen gebruik wil maken van een cryptokey om eventueel een waarschuwing te geven dan moet je ook wel zeker weten dat de gebruiker het kan zien en dat de gebruiker bevestigd... Laat nou net het scherm, toetsenbord en muis niet direct op het modem aangesloten zijn. Als je malware op je pc hebt verstopt 'ie de melding gewoon en klikt 'ie in de achtergrond op 'OK'.

Voor juist dit soort dingen zijn cryptografische handtekeningen de beste oplossing (en het controleren ervan). Als er eventueel een mogelijkheid moet zijn om custom roms te flashen dan kan de fabrikant het best een systeem implementeren waar je fysieke toegang voor nodig hebt.

edit: Halve zin afgemaakt.

edit2: In plaats van een gegenereerd nummer zou je ook een contactpersoon kunnen maken waarvan het email-adres iets is als [code]@fabrikant.com waar [code] een unieke ontgrendelcode is die je op basis van het serienummer kunt genereren. Vanuit de firmware moet het dan wel zo geregeld zijn dat je een unlock-code dus niet op de sim kan zetten, maar dat kan dan alleen met een ander apparaat (mobieltje ofzo). De fabrikant gebruikt die email-adressen gewoon niet om mee te mailen en zo heb je nooit het probleem dat je iemands email er niet in kunt zetten vanaf het modem.

[Reactie gewijzigd door M.l. op 10 augustus 2015 14:52]

Ik weet niet of ik me moet verbazen.
Maar zo langzamerhand is de trend dusdanig dat elk 'gerespecteerd' bedrijf een beveiligingsafdeling heeft die als doel heeft 'het vinden van gaten bij de concurrentie'.

Aan de ene kant is het beter voor ons dat dit gebeurt. Maar de doel waarvoor die afdelingen zijn opgezit is op zijn minst twijfelachtig.
In het geval van Intel vind ik niet zo vreemd. Zij maken toch de reference architecture voor dit soort producten en dan wil je in kaart brengen wat er allemaal speelt. Hun naam staat op de laptopsticker en productbeschrijving. Die van andere toeleverancier meestal niet.
Het maakt mij niet uit wie de veiligheidsproblemen vindt; of dat de fabrikant zelf is of een concurrent. Het enige dat mij boeit is dat het wordt gepatcht.
In hoeverre is vooral Windows hier gevoelig voor? Of zou ook een malware variant geschreven kunnen worden die onder Linux werkt en zichzelf opnieuw kan installeren naar een herinstallatie van Linux?
Zover ik het begrijp heb je beheerders-rechten op het OS nodig.
Nu is dat helaas op Windows een stuk makkelijker dan onder OS X en Linux omdat de meesten als verkapte admin (met alleen UAC als beveiliging) draaien.

Onder Linux en OS X zou het theoretisch als Trojan kunnen. Als je mensen zo gek krijgt om je mallware als root te draaien zou het gewoon werken.

[Reactie gewijzigd door hackerhater op 10 augustus 2015 13:31]

Ook op Linux hoef je dan echt niet als root te draaien... Sudo is voldoende. Het is op Windows niet makkelijker of moeilijk als op menig Linux Distro.

Als een process op Linux admin rechten nodig heeft terwijl ik het onder een normale user draai, krijg ik ook zo'n UAC achtig scherm, enige verschil is daar is, UAC checkt voor hardware inputs, Sudo wilt het root wachtwoord.

Voor de meeste gebruikers zijn beide admin-sessie schermen redelijk zinloos, omdat ze toch wel ja drukken of hun wachtwoord invoeren.
Lees eerst eens in wat sudo doet, want je praat onzin.
https://en.wikipedia.org/wiki/Sudo
Sudo vraagt om het gebruikerswachtwoord, NIET het wachtwoord van root.
Ook op Linux hoef je dan echt niet als root te draaien... Sudo is voldoende.
Dit is ook bullshit. standaard voert sudo de commando's als root uit (do as superuser).

En je noemt het een UAC achtig scherm terwijl het juist andersom is. UAC (stuk jonger) is een sudo-achtig scherm.
Ik was in de veronderstelling dat het om je root ww vroeg, ik su - mezelf gewoon de root in als ik root nodig heb. En zodra ik af wil sluiten als user, komt het om mijn root wachtwoord vragen (was de enige uac achtige popup die ik wel eens tegenkom naast die je krijgt bij het openen van de root terminal). Maar terug denkend herinner ik me inderdaad dat je vroeger users nog apart toegang moest geven tot sudo. Sudo is voor Ubuntu-ers, su voor Debianers.

Het is toch echt vrijwel hetzelfde, een process/sessie onder admin/root uitvoeren terwijl je normale user bent. Implementatie in het OS is anders, en de manier waarop is wat anders (WW vs hardware input).

Een Windows "admin" is een normale user die toegang heeft tot UAC elevation.
Een Linux "admin" is een normale user in de sudo file.

Ik zie het niet, maar het doel en idee is voor beide hetzelfde.
sudo wordt ondertussen door veel distro's gebruikt en is ook aangeraden voor de grafische distro's. Juist omdat je niet grafisch constant als root wilt werken.

Als je su - (switch user root) doet vraagt ie inderdaad om het root-wachtwoord. Als je sudo -i of sudo -s doet, vraagt ie om je eigen wachtwoord. Dit zijn 2 verschillende commando's.
https://nl.wikipedia.org/wiki/Su_%28Unix%29

Die toestemmings-popup van Windows is maar een half-bakken oplossing. Je zou helemaal niet grafisch in moeten loggen als beheerder.
Het UAC-scherm wat je ziet als gewone gebruiker (wachtwoord vereist!) komt meer in de buurt van sudo.
Dan wordt 1 proces met verhoogde rechten gedraaid ipv proberen alles omlaag te drukken, wat heel erg fout gevoelig is.
En dat is als mensen uberhaupt dat scherm nog aan hebben staan.
Ik ben ervan op de hoogte dat Sudo != su, alleen gebruik ik liever su - om de hele terminal/ssh sessie in root te hebben. Men raadde me vaker sudo aan ivm "Nooit als root draaien", maar luiheid en su doet wat ik wil dat het doet, scheelt weer 2 letters. Voor oude debian gebruikers is sudo echt een Ubuntu iets. Voor mij iig geen toegevoegde waarde.

Wie logt er grafisch in op Windows als beheerder? Sinds 7, eigenlijk Vista, draait er normalitair geen enkele user als full admin, de administrator account is al enkele Windowsen by default uitgeschakeld.
Pas -zoals je zelf aangeeft- bij Runas admin word het process volledig als Administrator geladen, maar jou en mijn "Admin Account" is een normale user account in de Windows tegenhanger van de sudoers file. En vanaf 2012 word er op Windows Server door MS zelf aangeraden het GUI-loos te gebruiken en het via Powershell of remote administration te beheren.

UAC een interessant stukje techniek. Doet meer dan process meer rechten geven zoals Sudo of soortgelijke "Elevation" systemen. Maar voor de meeste mensen en de ervaringen die je met UAC krijgt, is het doel met UAC hetzelfde als Sudo, geef het process verhoogde rechten.

http://weblogs.asp.net/ke...320_-User-Account-Control
http://blogs.msdn.com/b/p...-i-get-access-denied.aspx
Ik zocht eigenlijk een andere die het wat beter verwoord, maar goed.
Op een terminal maakt het niet veel uit. Hetzij dat je uit moet kijken als je de hele terminal naar root verheft.
Met nooit als root draaien wordt in het algemeen via een GUI bedoeld. Dan is het zeer gemakkelijk fouten te maken + dat elke troep die je binnen krijgt direct installatie-rechten heeft.
Dit is dan ook vaak standaard geblokkeerd.

Standaard zijn de gebruikers onder Windows nog verkapte admins.
Zelfs in Windows 10 is dat nog het geval. 1 foutje in dat UAC en een deel van de Windows-gui draait met alle rechten. 1 mogelijk pad vergeten te blokkeren en mallware heeft een gat.
Pas zodra de accounts standaard als gewone users draaien (dus account type user + wachtwoord vereist voor UAC) is dat probleem opgelost.

Dat een account onder Linux in de sudoers-file staat betekend niks anders dat hij gerechtigd is een sudo-commando uit te voeren. Het is een whitelist van gebruikers-namen, meer niet.
Zolang er geen sudo-popup komt + wachtwoord niet ingevuld draait er geen enkel user-based process met verhoogde rechten.
Een gebruiker die niet in de sudoers-file staat krijgt die popup/prompt ook te zien, maar zijn credentials worden niet geaccepteerd ".... is not in the sudoers file. This incident will be reported"
Volgens de Pricewatch zijn er 2500 laptops vermeld waarvan er 191 kunnen worden geleverd met UMTS, 86 met LTE en 55 met GPRS af fabriek. Dit is even los van de laptops die je achteraf nog kan uitrusten met een PCMCIA/M2/USB dongle voor je connectivity naar het internet.
Het wordt tijd dat virusscanners ook firmware kunnen gaan scannen.

Het lastige in dit geval is echter dat de malware waarschijnlijk wél de beveiliging tegen overschrijven ingebouwd heft, waardoor de malware moeilijker te verwijderen is.

Of zou dit op OS level geregeld moeten worden? Het lastige is dat deze beveiliging weer omzeild kan worden als je een virus hebt (en zo kwam deze malware ook binnen).

Dan toch de eerder genoemde (locke960 in 'nieuws: Lek in 4g-modem maakte Windows-laptops kwetsbaar voor niet-verwijderbare malware') hardwareswitch of enkel de mogelijkheid om vanuit UEFI dergelijke updates te installeren (of in UEFI de firmware op 'read only' te kunnen zetten).
Het wordt tijd dat virusscanners ook firmware kunnen gaan scannen.
En dan? Ik werk regelmatig met firmwares die officieel van een fabrikant komen maar niet public fixes zijn. En dan ben ik zometeen sneller met de firmware implementeren dan dat de fabrikant en de virusscan-fabrikant met elkaar hebben gepraat. Zegt mijn AV-pakket dan: ja, maar dat gaat niet werken; we schakelen nu terug op de vorige firmware van je fibre-channel kaart? Of erger: we schakelen de hele fibre-channel communicatie uit tot je een supported firmware hebt?

En dan ben ik nog wel een professional die dan wel een omweg weet te bedenken. Maar wat als zometeen bij je oma de virusscanner zegt dat de firmware van de grafische kaart niet goed is en de grafische kaart niet meer mag functioneren?

Vind het sowieso erg glad ijs dat ik ervanuit moet gaan dat een virusscanner vlekkeloos werkt (voldoende voorbeelden te vinden) en dan zou mogen ingrijpen op, desnoods, laag 1 t/m 3 van OSI om mjn omgeving maar te beschermen.
Waarom zou eenzelfde laptop met Linux niet kwetsbaar zijn? Volgens mij is de kwetsbaarheid voor alle OS-en gelijk in dit geval omdat het de hardware is die kwetsbaar is. Hooguit dat de flash software alleen onder Windows draait. Maar als die zijn foutieve werk heeft gedaan maakt het niet meer uit welke OS laag je gebruikt, de 'rootkit' zit dan al in de modemfirmware.
Niet perse. Een rootkit die zich richt op Windows, zal niet werken onder Linux.
Het is theoretisch wel mogelijk een Linux-variant te maken, maar hoe krijg je die in eerste instantie op de hardware?
in Nederland volgens mij niet bijster veel.
maar de zakelijke klant die wil niet van hotspot naar hotspot, een veilige verbinding is een must have voor deze klanten.
Bij dit soort koppen boven artikelen begin ik toch weer ernstig te geloven dat Tweakers langzaamaan aan het afzakken is naar het niveau van WebWereld/Telegraaf.

De malware is prima te verwijderen, je hoeft alleen maar een goede versie van de firmware te flashen.
Het is moeilijk te detecteren want a/v gaat niet checken in firmware.
Dat is ook niet te doen ook, er is veel te veel hardware op de markt met veel te veel verschillende manieren om firmware uit te lezen dan wel te flashen.

Helaas is het tegenwoordig veel te gemakkelijk om hardware te flashen, de fabrikanten zijn te ver doorgeslagen in het bieden van gemak, in ieder geval op dit gebied, en de oplossing is zo verschrikkelijk simpel.

Wij als consument zullen bij de fabrikanten van hardware en masse moeten gaan eisen dat ze een fysieke schakelaar danwel een ouderwetse jumper op de hardware zetten die by default uit staat zodat het niet mogelijk is om de firmware te flashen.

De enige zwakke link in dit verhaal is dan de fabrikant, die moet er dan wel voor zorgen dat zijn firmware updates vrij zijn van malware.
Wat heeft dit te maken met Windows? Uit het originele artikel:
"There is a platform risk with these modems and other components that provide independent execution environments where malware can survive OS wiping and which are not visible to antivirus and other security programs".

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee