Security onderzoekers Thijs Alkemade en Daan Keuper van 'Sector 7', het Research & Development team bij Computest, hebben op 29 december 2020 gepresenteerd op de wereldberoemde hackerconferentie CCC. Tijdens dit event hebben ze hun onderzoek naar Sandboxing en TCC in macOS toegelicht en een aantal door hen ontdekte kwetsbaarheden bekendgemaakt.
CCC (Chaos Computer Club) is Europa's grootste vereniging van hackers. Al meer dan dertig jaar verstrekken zij informatie over technische en maatschappelijke vraagstukken, zoals privacy, hacktivisme, gegevensbeveiliging en vele andere interessante zaken rondom techniek en hackingvraagstukken. Als het meest invloedrijke hackercollectief in Europa organiseren ze ook ieder jaar het bekende CCC event. In 2020 heeft deze conferentie op 27-30 december online plaatsgevonden en is daarom gedoopt tot "rC3" (remote Chaos experience).
Gevonden kwetsbaarheden presenteren op hackerconferentie rC3
Nu niet als bezoekers op het CCC event, maar als sprekers. Trots en zeer ervaren startten Thijs Alkemade en Daan Keuper hun presentatie voor vele geïnteresseerde techneuten met een overzicht van de lokale securitybeperkingen waar apps op macOS mee om moeten gaan. De manieren waarop deze beperkingen door third-party applicaties omzeild kunnen worden kwamen aan bod. Tot slot hebben Thijs en Daan een aantal kwetsbaarheden laten zien die zij tijdens het securityonderzoek gevonden hebben:
- waardoor er ontsnapt kan worden aan de macOS sandbox;
- TCC permissies gestolen kunnen worden;
- waarmee het escaleren van privileges mogelijk wordt, zoals met CVE-2020-10009 en CVE-2020-24428.
Ook benieuwd naar de onderzoekswijze en gevonden kwetsbaarheden? Bekijk de gehele presentatie 'Escape the macOS Sandbox and TCC'.
Achtergrondinformatie over Sandboxing en TCC bij macOS
"SomeApp probeert toegang te krijgen tot bestanden in jouw Documenten folder." Iedereen die macOS recentelijk nog heeft gebruikt is waarschijnlijk bekend met deze prompts in zijn scherm. Maar hoe werken ze? Wat gebeurt er als je de toegang weigert? Vormen zij een effectieve bescherming tegen malware?
Beveiligingsmechanisme Sandboxing in macOS werd 13 jaar geleden geïntroduceerd, maar daar liet Apple het niet bij. Vanaf de release van macOS Catalina in 2019 moeten ook non-sandboxed apps omgaan met sandbox-achtige beperkingen voor bestanden; alle apps moeten nu toestemming vragen om toegang tot gevoelige locaties, zoals de documenten van de gebruiker of de desktop map. Bepaalde features zoals de camera en locatievoorzieningen hadden al toestemming van de gebruiker nodig via een permissie prompt. Dit systeem van gebruiker permissies wordt ook wel Transparency, Consent, and Control (TCC) genoemd.
Verantwoordelijkheden developers
Bij de introductie van een nieuw beveiligingsmechanisme, zoals Sandboxing en TCC ontstaan ook nieuwe securitybeperkingen, met nieuwe soorten kwetsbaarheden. Veel systeemonderdelen moeten opnieuw worden onderzocht om te controleren op aanwezigheid van kwetsbaarheden. Een voorbeeld: apps kunnen nu andere apps aanvallen, zodat ze de permissies kunnen "stelen" van andere apps die al door de gebruiker zijn gegeven.
Apple heeft stappen ondernomen om ervoor te zorgen dat apps zich kunnen beschermen tegen zulke aanvallen, zoals de hardened runtime. Maar uiteindelijk is het de verantwoordelijkheid van de developer om de permissies van zijn app te beschermen. Echter, veel developers zijn zich niet bewust van deze nieuwe verantwoordelijkheid - of ze nemen het niet serieus.
Developers die gewend zijn aan het securitymodel van Windows of Linux weten vaak niet dat deze begrenzingen bestaan. Nog zorgwekkender is het feit dat de documentatie en API's van Apple voor deze features niet zo helder en gebruiksvriendelijk zijn als eigenlijk zou moeten.
Met de presentatie 'Escape the macOS Sandbox and TCC' op hackerconferentie rC3 hebben Daan Keuper en Thijs Alkemade de aanwezige developers geïnformeerd en bewustwording gecreëerd over hun securityonderzoek naar Sandboxing en TCC in macOS, zodat developers in de toekomst er aan denken meer verantwoordelijkheid te nemen voor de beveiliging van hun applicaties.