Hoe schadelijke macrovirussen ongemerkt op macOS kunnen worden gelanceerd

Onderzoeker Patrick Wardle heeft aangetoond hoe een reeks exploits succesvol kan worden gebruikt om macOS Catalina aan te vallen.

Veel macOS-gebruikers zijn er nog altijd van overtuigd dat hun apparaten geen bescherming nodig hebben. Sterker nog: systeembeheerders bij bedrijven waar werknemers op Apple-hardware werken hebben vaak van dezelfde mening.

Tijdens de Black Hat USA 2020-conferentie trachtte onderzoeker Patrick Wardle het publiek ervan te overtuigen dat dit toch echt een misvatting is door zijn analyse van malware voor macOS en door een exploit chain te bouwen om de controle over een Apple-computer over te nemen.

Microsoft, macrovirussen en Macs

Een van de meest voorkomende manieren om computers die op macOS draaien aan te vallen is via documenten met macrovirussen, oftewel via Microsoft Office-applicaties. Inderdaad: ondanks het feit dat Apple zijn eigen productiviteits-apps heeft, geven toch veel gebruikers de voorkeur aan Microsoft Office. Voor sommigen is dat uit gewoonte; voor anderen vanwege de compatibiliteit met de documenten die hun collega’s aanmaken.

Iedereen kent natuurlijk al lang de potentiële dreiging die documenten met macrovirussen kunnen vormen. Daarom hebben zowel Microsoft en Apple mechanismes om de gebruikers hiertegen te beschermen.

Microsoft waarschuwt gebruikers als ze een document openen dat een macro bevat. Als de gebruiker toch besluit het bestand met macrovirus te openen, dan wordt de code uitgevoerd in een sandbox, die volgens Microsoft-ontwikkelaars voorkomt dat de code toegang heeft tot de bestanden van de gebruikers of anderszins schade aan het systeem kan aanrichten.

Apple heeft verschillende nieuwe veiligheidsfuncties geïntroduceerd in de nieuwste versie van hun besturingssysteem, macOS Catalina. Deze omvatten in het bijzonder de bestandsquarantaine en “notarisatie”, wat een technologie is die het opstarten van uitvoerbare bestanden van externe bronnen voorkomt.

Deze technologieën zouden samen genoeg moeten zijn om aanvallen door middel van macrovirussen te voorkomen. In theorie lijkt alles veilig te zijn.

Een exploit chain haalt het macrovirus uit de sandbox

In de praktijk zijn er tal van beveiligingsmechanismes op een nogal problematische wijze geïmplementeerd. Daarom kunnen onderzoekers (of aanvallers) mogelijk methodes vinden om ze te omzeilen. Wardle illustreerde zijn presentatie met een reeks exploits.

1. Het omzeilen van het mechanisme dat macrovirussen uitschakelt

Neem bijvoorbeeld het systeem dat gebruikers waarschuwt als er een macrovirus in een document wordt gedetecteerd. In de meeste gevallen werkt dit zoals de ontwikkelaars het hadden bedoeld. Maar het is tegelijkertijd mogelijk om een document aan te maken waarin de macro automatisch opstart zonder enige gebruikersmelding, zelfs als macro’s in de instellingen zijn uitgeschakeld.

Dit kan worden gedaan met gebruik van het bestandsformaat Sylk (SLK). Dit formaat, dat gebruikmaakt van de XLM-macrotaal, werd in de jaren 1980 ontwikkeld en in 1986 voor het laatst geüpdatet. Maar sommige Microsoft-applicaties (zoals bijvoorbeeld Excel) ondersteunen Sylk nog altijd vanwege achterwaartse compatibiliteit. Deze kwetsbaarheid is niet nieuw en werd in 2019 al in detail beschreven.

2. Uit de sandbox ontsnappen

Zoals we nu hebben kunnen zien, kan een aanvaller op onzichtbare wijze een macro runnen. Maar de code wordt nog altijd uitgevoerd binnen de geïsoleerde sandbox van MS Office. Hoe kan een hacker de computer dan toch aanvallen? Het blijkt dat het helemaal niet zo lastig is om op een Mac aan Microsofts sandbox te ontsnappen.

Het klopt dat u geen bestanden kunt wijzigen die al op uw computer staan opgeslagen van binnen de sandbox. Maar u kunt ze wél <em>creëren</em>. Deze exploit is al eerder gebruikt om aan de sandbox te ontsnappen, en Microsoft bracht destijds een update uit om iets aan deze kwetsbaarheid te doen. Het probleem werd echter nooit écht opgelost, zoals een gedetailleerder onderzoek van de patch heeft aangetoond: de oplossing deed alleen iets tegen de symptomen en blokkeerde het aanmaken van bestanden binnen plekken die door sommige ontwikkelaars als onveilig werden beschouwd, zoals in de map LaunchAgents, wat de opslaglocatie is voor scripts die automatisch worden opgestart na het opnieuw opstarten van de computer.

Maar wie besloot dat Microsoft rekening had gehouden met elke “gevaarlijke locatie” bij het creëren van de patch? Het bleek dat een script dat in Python werd geschreven en vanuit een Office-document werd opgestart (en dus in een sandbox), kon worden gebruikt om een object met de naam “Login Item” te creëren. Een object met die naam start automatisch op als de gebruiker op het systeem inlogt. Het systeem start het object op, dus het wordt uitgevoerd buiten de Office-sandbox en omzeilt zo dus de beveiligingsmaatregelen van Microsoft.

3. Het omzeilen van de beveiligingsmechanismes van Apple

Dus nu weten we hoe we stiekem een macro kunnen runnen en een Login Item-object kunnen aanmaken. Maar de beveiligingsmechanismes in macOS voorkomen nog altijd dat de backdoor, die onbetrouwbaar is omdat hij is gecreëerd door een verdacht proces binnen de sandbox, opgestart kan worden. Toch?

Aan de ene kant, ja: de beveiligingsmechanismes van Apple blokkeren inderdaad het uitvoeren van code die op zo’n manier verkregen is. Aan de andere kant is hier iets aan te doen: als u een ZIP-archief als een Login Item naar binnen glipt, dan zal dit bestand bij de volgende login automatisch worden uitgepakt door het systeem.

Vervolgens hoeft de aanvaller alleen nog maar de juiste locatie te kiezen om het bestand uit te pakken. Het archief kan bijvoorbeeld in dezelfde map worden geplaatst als de gebruikersbibliotheken, één stap boven de map waar objecten van het Launch Agent-type opgeslagen zouden moeten zijn (de objecten die Microsoft terecht als gevaarlijk beschouwt). Het archief kan zelf weer een map bevatten met de naam LaunchAgents die het LaunchAgent-script bevat.

Eenmaal uitgepakt, wordt het script in de LaunchAgents-map geplaatst om bij het opnieuw opstarten van het systeem uitgevoerd te worden. Doordat het door een vertrouwd programma is gecreëerd (de Archiver) en geen quarantaine-attributen heeft, kan het worden gebruikt om iets gevaarlijks op te starten. Beveiligingsmechanismes zullen niet voorkomen dat dit bestand wordt opgestart.

Hierdoor kan een aanvaller een mechanisme lanceren via de Bash-command shell om op afstand toegang te verkrijgen (en hierdoor zogenaamde reverse shell te verkrijgen). Dit Bash-proces kan worden gebruikt om bestanden te downloaden, die ook niet over het quarantaine-attribuut beschikken, waardoor de aanvaller dus daadwerkelijk schadelijke code kan downloaden en deze zonder enige beperkingen kan uitvoeren.

Samengevat:

  • Een aanvaller kan stiekem een geheime macro opstarten zonder enige waarschuwingen te tonen of de gebruiker iets te vragen, zelfs als de uitvoering van macro’s is uitgeschakeld in de instellingen. Voor de aanvaller is het alleen nodig dat de gebruiker een Office-document downloadt en dit opent.
  • Vervolgens kan de aanvaller aan de sandbox van Microsoft Office ontsnappen en een Login Item-object en een archief creëren met de Launch Agent erin, dat automatisch buiten de sandbox wordt uitgevoerd bij de volgende login.
  • In slechts een paar stappen kan de aanvaller eenvoudig de beveiligingsmechanismes van Apple omzeilen door een object van het LaunchAgent-type via een ZIP-archief uit te pakken. Nu de beveiligingsmechanismes van het systeem zijn omzeild, kan het programma het “aanvalsgedeelte” van de schadelijke code downloaden en uitvoeren.

Hoe beschermt u zichzelf tegen schadelijke macrovirussen op macOS

De onderzoeker meldde zijn bevindingen natuurlijk aan zowel Apple als Microsoft, en beide bedrijven voerden stilletjes wijzigingen door zonder deze te adverteren of zelfs maar officiële CVE-identificatiecodes aan de kwetsbaarheden toe te wijzen. Maar de situatie wijst erop dat het dankzij een grondig onderzoek van beveiligingsmechanismes best mogelijk is om methodes te vinden om deze te omzeilen.

In het verleden werd macOS als veilig beschouwd en was dit nog enigszins terecht, maar dat was niet omdat het over geavanceerde beveiligingsmechanismes beschikte, maar eerder omdat aanvallers macOS nog grotendeels negeerden. Apple-computers zijn echter veel populairder geworden, ook in bedrijfsomgevingen, en daarom zijn ook aanvallen op macOS veel interessanter geworden voor cybercriminelen.

Dus om veilig te blijven moet u niet alleen uw systeem en alle software regelmatig updaten, maar ook beveiligingsoplossingen gebruiken die verdachte activiteiten kunnen detecteren en blokkeren. Onze reeks beveiligingsproducten voor zowel thuisgebruikers als bedrijven omvat ook versies voor macOS.

Tips