Tee's zijn onder de streep dus goede manieren om data te beveiligen, maar geen enkele beveiliging is waterdicht. Is er iets te zeggen over hoe veilig deze methode is ten opzichte van andere beveiligingsmethoden? Daarvoor is het goed om eens te kijken naar de geschiedenis. Er zijn verschillende gevallen geweest waarin tee's zijn aangevallen, al moet je goed zoeken. In de meeste gevallen gaat het om onderzoeken die je vooral theoretisch kunt noemen, al dan niet in laboratoriumopstellingen, waarbij computerwetenschappers een methode hebben gevonden om bepaalde gegevens onder ideale omstandigheden te kunnen afluisteren.
Zo doken onderzoekers twee jaar geleden in de Secure Enclave van Apple. Tarjei Mandt, Mathew Solnik en David Wang presenteerden hun bevindingen op de BlackHat-securityconferentie. In het stuk probeerde het trio de precieze werking van Apples tee te achterhalen. Hoewel de onderzoekers concluderen dat de Secure Enclave een paar slimme beveiligingstrucs bevatte, noemen ze ook een paar potentiële kwetsbaarheden, zoals het gebrek aan memory layout randomization. Dat zijn echter theoretische bevindingen, die ze niet in het echt wisten uit te buiten. Later wist een andere beveiligingsonderzoeker zelfs de decryptiesleutel van de Secure Enclave te ontcijferen, waarmee hij vervolgens de versleutelde data kon afluisteren.
Ryzenfall
Zowel in Intel- als AMD-socs werden lekken ontdekt waarmee de tee kwetsbaar werd
Er zijn ook verschillende gevallen bekend waarin tee's van bijvoorbeeld AMD kwetsbaar blijken. In 2018 kwamen diverse prominente lekken in zowel de Epyc-processors voor datacenters als de Ryzen-cpu's voorbij. Het ging feitelijk om één soort aanval waarmee AMD's Secure Processor werd bestookt. De lekken werden onderverdeeld in vier categorieën; Masterkey, Ryzenfall, Fallout en Chimera waren lekken waarmee de communicatie tussen de soc en de Secure Processor-chip kon worden afgeluisterd. Kort daarna bleken Duitse onderzoekers juist de softwareomgeving van AMD's Secure Encrypted Virtualization op Epyc-processors te kunnen omzeilen door de geheugenlay-out van de virtuele machine te mappen. Er zijn dus wel degelijk voorbeelden te zien van kwetsbaarheden in de tee's. Hoe vaak die in de praktijk worden ingezet, is echter de vraag. Misschien gebruiken geavanceerde staatshackers hier en daar eens een methode, maar er zijn nergens voorbeelden bekend waarbij de lekken op grote schaal worden misbruikt.
In de meeste gevallen waarin tee's worden gekraakt, is een rode draad te zien. Twee kwetsbaarheden in Qualcomms Secure Execution Environment betreffen allebei buffer overflows. Niet zo gek: de data van de tee naar de soc loopt via zo'n buffer en dat is vaak een van de weinige plekken waar de data te onderscheppen is. Praktisch is dat niet; voor de aanvallen is soms roottoegang nodig en het kan heel lang duren voordat data uitlekt. Bij een aanval duurde het bijvoorbeeld veertien uur voordat een onderzoeker een P-256-sleutel wist te achterhalen. In veel gevallen zijn de aanvallen ook niet persistent en verdwijnen ze na een reboot.
Een ander potentieel gevaar voor tee's zit in een ander soort kwetsbaarheden. Dat zijn de bugs in speculative execution, die de laatste jaren met regelmaat worden ontdekt. Dat gebeurt in zowel Intel- als AMD-cpu's. Een zo'n aanval werd zelfs specifiek opgezet om data uit tpm's af te lezen.
Theoretisch onderzoek
In de praktijk zijn de kwetsbaarheden moeilijk uit te buiten, zeker op grote schaal
De onderzoeken naar de lekken zitten vaak aan de academische kant. Ze zijn in de praktijk dan ook lastig uit te buiten. Er is veel tijd en kennis voor nodig, vaak ook veel geld en in sommige gevallen fysieke toegang tot een apparaat. Dat maakt, afhankelijk natuurlijk van je threat model, dat de ontdekte kwetsbaarheden weinig risico met zich meebrengen. Als het zoveel moeite kost om een wachtwoord van één gebruiker te achterhalen, loop je waarschijnlijk meer gevaar door ransomware of een goede spearphishingmail. Aan de andere kant zit er wel een risico aan microkernellekken dat bij gewone software lang niet altijd aanwezig is. Ze zijn bijvoorbeeld lastiger op te lossen doordat microkernel-updates een stuk moeilijker door te voeren zijn dan reguliere software-updates.
Conclusie
Trusted execution environments doen voornamelijk wat hun naam belooft. Ze bieden een veilige, vertrouwde omgeving op een chip voor het uitvoeren van belangrijke taken. Ondanks een paar incidenten rondom de veiligheid ervan is het een belangrijke beveiligingstrend, die waarschijnlijk niet snel zal verdwijnen, want zeg zelf: welke oplossing ligt meer voor de hand?