Van Kr00k tot het vinden van soortgelijke kwetsbaarheden
Eerder dit jaar maakten ESET-onderzoekers de ontdekking van Kr00k (CVE-2019-15126) bekend. Kr00k is een kwetsbaarheid in Broadcom- en Cypress-Wi-Fi-chips die decryptie van WPA2-versleuteld verkeer mogelijk maakt. De bug heeft ertoe geleid dat draadloze netwerkdata versleuteld wordt met een WPA2-pairwise session key dat uit allemaal nullen bestaat in plaats van de juiste session key die eerder vastgesteld is in de 4-way handshake. Deze ongewenste versleutelingsstatus vindt plaats in kwetsbare chips van Broadcam en Cypress als gevolg van Wi-Fi-disassociatie.
Figuur 1. Overzicht van Kr00k – na een disassociatie wordt verzonden data versleuteld met een all-zero session key.
Door Kr00k te misbruiken kunnen kwaadwillenden (mogelijk gevoelige) interessante data onderscheppen en ontsleutelen. In vergelijking met andere veelgebruikte technieken heeft het misbruiken van Kr00k een significant voordeel: de aanvallers hoeven niet geautoriseerd of verbonden met de WLAN te zijn. Oftewel: ze hoeven het Wi-Fi-wachtwoord niet te weten. Wel dienen aanvallers binnen bereik van het Wi-Fi-signaal te zijn.
ESET heeft samengewerkt met zowel de getroffen vendoren als ICASI door middel van het responsible disclosure-proces alvorens het onderzoeksteam de kwetsbaarheid publiekelijk bekendmaakte tijdens de RSA-conferentie in februari 2020. De daaropvolgende publiciteit heeft de aandacht getrokken van nog meer chipset- en apparaatfabrikanten, waarvan enkelen hebben ontdekt dat ook hun producten kwetsbaar waren – en daarvoor sindsdien patches hebben uitgerold. Op deze pagina kunt u een lijst vinden van gerelateerde vendor-adviezen.1
Al heeft ESET CVE-2019-15126 niet geobserveerd in andere Wi-Fi-chips dan bij Broadcom en Cypress. Wel hebben de onderzoekers soortgelijke kwetsbaarheden gevonden in chips van andere vendoren. Deze bevindingen zijn voor het eerst gedeeld tijdens Black Hat USA 2020 en zullen hieronder kort toegelicht worden.
Qualcomm – CVE-2020-3702
Eén van de andere chips die het onderzoeksteam onderzocht heeft, was die van Qualcomm. De kwetsbaarheid die zij ontdekten (die CVE-2020-3702 toegekend kreeg), kan net als bij Kr00k ook getriggerd worden door disassociatie en leidt tot het ongewenst delen van data door onversleutelde gegevens te verzenden in plaats van versleutelde dataframes. Het grootste verschil is dat de data bij Qualcomm helemaal niet versleuteld is (ondanks dat encryption flags worden benut), terwijl bij Kr00k de data wel versleuteld is, maar dan met een all-zero session key.
De apparaten die wij getest hebben en kwetsbaar zijn bevonden, zijn de D-Link DCH-G020 Smart Home Hub en de Turris Omnia draadloze router. Andere ongepatchte apparaten die de kwetsbare Qualcomm-chipsets gebruiken zijn ook kwetsbaar.
Volgend op onze disclosure heeft Qualcomm snel gehandeld en hebben zij in juli een oplossing gepubliceerd voor de proprietary driver die gebruikt wordt in al hun officieel ondersteunde producten. Echter wordt deze proprietary driver niet in alle apparaten met Qualcomm-chips gebruikt; soms worden open-source Linux-drivers gebruikt zoals de ath9k-driver. Omdat deze niet actief in ontwikkeling is bij Qualcomm, is het op het moment van schrijven onduidelijk of deze driver een patch van Qualcomm of de open-sourcegemeenschap zal ontvangen.
MediaTek en Microsoft Azure Sphere
De ESET-onderzoekers hebben ook de manifestatie van een soortgelijke kwetsbaarheid (oftewel: een gebrek aan encryptie) geobserveerd in verscheidene Wi-Fi-chips van MediaTek.
Eén van de getroffen apparaten is de ASUS RT-AC52U-router. Een ander getroffen apparaat is de Microsoft Azure Sphere-ontwikkelingskit, die we onderzocht hebben als onderdeel van ons Azure Sphere Security Research Challenge-samenwerking. Azure Sphere gebruikt MediaTeks MT3620 microcontroller en wordt gebruikt in een groot aantal IoT-applicaties voor andere, commerciële, industriële, smart home- en andere domeinen.
Volgens MediaTek zijn softwarepatches voor dit probleem gepubliceerd in maart en april 2020. De patch voor MT3620 is meegenomen in de Azure Sphere OS-versie 20.07 die in juli 2020 werd uitgerold.
Publicatie van testscript
Gezien het al meer dan vijf maanden geleden is dat we de Kr00k-kwetsbaarheid bekend hebben gemaakt – en meerdere proofs-of-concept gepubliceerd zijn door onafhankelijke onderzoekers – hebben we besloten om het script te publiceren dat we gebruiken om te testen of een apparaat kwetsbaar is voor Kr00k. We hebben hier ook meerdere tests in meegenomen voor de nieuwere varianten die we hier hebben beschreven. Dit script kan door onderzoekers en apparaatfabrikanten gebruikt worden om te verifiëren dat specifieke apparaten gepatcht en niet langer kwetsbaar zijn.
Onze dank gaat uit naar Martin Kalužník voor zijn toewijding en bijdrage aan dit onderzoek.
1 Indien u een advies heeft dat u graag aan de lijst laat toevoegen, dan kunt u contact opnemen via threatintel@eset.com.