Beveiligingsonderzoekers Dan Petro en Allan Cecil van Bishop Fox Labs deelden onlangs hun bevindingen met betrekking tot een RNG-kwetsbaarheid in de basis van IoT (internet van dingen) veiligheid. De kritieke fout zit in hardwarenummergeneratoren (RNG's) en beïnvloedt 35 miljard apparaten wereldwijd.
"Eigenlijk, elk IoT-apparaat met een hardwarematige generator voor willekeurige getallen (RNG) bevat een ernstige kwetsbaarheid waardoor het er niet in slaagt om willekeurige getallen correct te genereren, die de veiligheid voor elk upstream-gebruik ondermijnt,” zegt het onderzoeksrapport.
De kern van de RNG-kwetsbaarheid ligt in het onvermogen om willekeurige getallen correct te genereren, dus verlammende IoT-apparaten’ beveiliging en hen bloot te stellen aan aanvallen.
Wat is RNG, of willekeurige nummergenerator?
RNG's zijn nodig voor de meeste beveiligingsgerelateerde bewerkingen die computers uitvoeren. Deze genereert de zogenaamde "geheimen" die de basis vormen van cryptografie, toegangscontrole, authenticatie, etc. Hoe deze worden gegenereerd, is afhankelijk van het einddoel. Echter, het canonieke voorbeeld is het genereren van een coderingssleutel. "In feite, vaak, apparaten kiezen coderingssleutels van 0 of erger. Dit kan leiden tot een catastrofale ineenstorting van de beveiliging voor elk stroomopwaarts gebruik,”Merkt het rapport op.
Wat is de kern van de RNG-kwetsbaarheid in IoT-apparaten??
Blijkbaar, vanaf 2021, de meeste nieuwe IoT-systemen-op-een-chip, kortweg bekend als SoC's, een speciale hardware-RNG-randapparatuur bevatten die is ontworpen om dit probleem op te lossen. Echter, het oplossen ervan is best ingewikkeld, en als het blijkt, de huidige IoT-standaard kan worden omschreven als "het verkeerd doen".
Een van de grootste gevaren vindt plaats wanneer ontwikkelaars de foutcode-reacties niet controleren, wat resulteert in getallen die minder willekeurig zijn dan wat vereist is voor een beveiligingsgerelateerd gebruik.
Wanneer een IoT-apparaat een willekeurig getal vereist, het maakt een oproep naar de speciale hardware-RNG via de SDK van het apparaat of in toenemende mate via een IoT-besturingssysteem. De naam van de functieaanroep varieert, natuurlijk, maar het vindt plaats in de hardware-abstractielaag (MATERIE).
Dit zijn de belangrijkste onderdelen van de hardware-abstractielaag (MATERIE):
- Een uitvoerparameter genaamd out_number. Dit is waar de functie het willekeurige getal zal plaatsen; het is een verwijzing naar een niet-ondertekend 32-bits geheel getal.
- Een retourwaarde om eventuele foutgevallen op te geven. Afhankelijk van het apparaat, het kan Booleaans zijn of een willekeurig aantal opgesomde foutcondities.
Bijna niemand controleert de foutcode van de RNG HAL-functie. Afhankelijk van de hardware, dit kan leiden tot een van de volgende problemen:: entropie opraken, het nummer 0, en niet-geïnitialiseerd geheugen.
Bijvoorbeeld, "Als u de RNG HAL-functie probeert te bellen terwijl deze geen willekeurige nummers heeft om u te geven, het zal mislukken en een foutcode retourneren. Zo, als het apparaat te snel te veel willekeurige getallen probeert te krijgen, de oproepen zullen beginnen te mislukken,"Zeggen Petro en Cecil".
Wat zijn de oplossingen voor de RNG-kwetsbaarheid??
Sinds de twee beschikbare oplossingen - het hele proces afbreken en beëindigen, en draaiende lus op de HAL-functie - zijn niet acceptabel, ontwikkelaars hebben de neiging om de foutconditie helemaal te negeren.
Waarom is de RNG-kwetsbaarheid alleen specifiek voor IoT-apparaten?, en niet laptops en servers?
Het probleem is uniek voor de IoT-wereld, aangezien het apparaatbeheer op laag niveau doorgaans wordt afgehandeld door een besturingssysteem dat wordt geleverd met een API voor willekeurigheid.
Het rapport werpt ook licht op de voordelen van een grotere entropiepool geassocieerd met een CSPRNG-subsysteem (Continu gezaaide pseudo-willekeurige nummergenerator) die "enkele storingspunten onder de entropiebronnen" verwijdert.
Volledige technische openbaarmaking is beschikbaar in het originele rapport, getiteld “Je doet IoT RNG".
Afgelopen juni, een ernstige kwetsbaarheid, bekend onder het CVE-2020-12695 advies, werd ontdekt in een kernprotocol in bijna alle IoT-apparaten - de Universal Plug and Play (UPnP) protocol. De fout, nagesynchroniseerde CallStranger, kan aanvallers toelaten om IoT-apparaten over te nemen in DDoS-aanvallen. De bug kan worden misbruikt bij andere soorten aanvallen, waar beveiligingsoplossingen worden omzeild en interne netwerken worden bereikt.