BadPack is een kwaadaardig APK-bestand dat opzettelijk is gewijzigd om de bestandsstructuur van het Android-besturingssysteem te misbruiken.
Typisch, aanvallers wijzigen op kwaadaardige wijze de headerinformatie in het gecomprimeerde bestandsformaat van APK's om reverse engineering-inspanningen te belemmeren. Deze geknoeide headers zijn een kenmerk van BadPack, wat aanzienlijke uitdagingen oplevert voor Android reverse engineering tools. Deze techniek wordt vaak gebruikt door op Android gebaseerde banking-Trojans zoals BianLian, Cerberus, en TeaBot.
Deze bevindingen waren gerapporteerd aan Google door Palo Alto Networks, die bevestigde dat er geen apps zijn die dit bevatten malware zijn momenteel te vinden op Google Play. Android-gebruikers worden automatisch beschermd tegen bekende versies van deze malware door Google Play Protect, die standaard is ingeschakeld op apparaten met Google Play Services. Google Play Protect kan gebruikers waarschuwen of apps blokkeren die kwaadaardig gedrag vertonen, zelfs als deze apps afkomstig zijn van bronnen buiten Google Play.
Hoe werkt BadPack-malware??
APK-bestanden, essentieel voor Android-applicaties, gebruik het ZIP-archiefformaat en bevat een cruciaal bestand met de naam AndroidManifest.xml. Dit bestand slaat gegevens en instructies op die van vitaal belang zijn voor de werking van de applicatie.. In BadPack APK's, aanvallers manipuleren de ZIP-headergegevens, waardoor het voor tools als Apktool en Jadx moeilijk wordt om de inhoud te extraheren en te analyseren. Bijvoorbeeld, Apktool slaagt er vaak niet in om AndroidManifest.xml uit BadPack-samples te extraheren.
Palo Alto Networks’ Geavanceerde WildFire-detectietelemetrie vanaf juni 2023 tot juni 2024 bijna geïdentificeerd 9,200 BadPack-voorbeelden, wat duidt op een aanzienlijke bedreiging. Figuur 1 illustreert de maandelijkse trends van deze detecties, met een opmerkelijke stijging in mei 2024.
Het Android Manifest-bestand begrijpen
Het Android Manifest-bestand, AndroidManifest.xml, is een cruciaal configuratiebestand in APK-voorbeelden, het verstrekken van essentiële informatie over de mobiele applicatie aan het Android OS. Dit omvat details over activiteiten, diensten, permissies, en compatibele Android-versies. Het extraheren en verwerken van dit bestand is de eerste stap in de statische analyse van een APK-monster. Auteurs van malware vaak knoeien met de ZIP-headers om beveiligingsanalisten te belemmeren deze analyse uit te voeren.
ZIP-bestandsstructuur
Het ZIP-formaat comprimeert en archiveert inhoud in één enkel bestand, bestaande uit twee hoofdtypen headers: Lokale bestandsheaders en centrale directorybestandsheaders. Malware-auteurs kunnen velden in deze headers wijzigen om te voorkomen dat analisten de inhoud van een APK-bestand extraheren, terwijl de APK nog steeds op een Android-apparaat kan worden uitgevoerd.
Lokale bestandsheaders
Lokale bestandsheaders vertegenwoordigen individuele bestanden in een ZIP-archief. Het archief begint met een lokale bestandsheader, herhaald voor elk bestand. Deze headers beginnen met een handtekening van 4 bytes (PK, voor Phillip Katz, de maker van het ZIP-formaat). Het compressieveld, gelegen op byte-offsets 0x08 en 0x09, geeft de compressiemethode aan, gewoonlijk ONTLUCHTEN (0x0800). De header bevat ook velden voor gecomprimeerde en ongecomprimeerde bestandsgroottes en bestandsnamen.
Centrale directorybestandheaders
Centrale directorybestandsheaders verschijnen na de laatste lokale bestandsheader in een ZIP-archiefdirectory. Ze vatten de inhoud van het archief samen en kunnen een optioneel APK-ondertekeningsblok bevatten. Deze headers bevatten ook velden voor de compressiemethode, maten, en bestandsnamen, gelegen op andere byte-offsets dan in lokale bestandsheaders.
Analyse van de BadPack-techniek
In BadPack-voorbeelden, aanvallers manipuleren ZIP-structuurheaders, voorkomen van APK-extractie en AndroidManifest.xml-decodering, waardoor statische analysetools falen. Deze manipulatie kan niet-overeenkomende waarden tussen de lokale en centrale directorybestandsheaders omvatten. Bijvoorbeeld, het opgeven van een onjuiste compressiemethode of ongeldige formaten.
Terwijl analysetools zoals Apktool en Jadx strikte naleving van ZIP-formaatspecificaties vereisen, Android-runtime op apparaten is soepeler, alleen de centrale directoryheader inspecteren. Zo, BadPack APK's kunnen op Android-apparaten worden uitgevoerd, maar falen in analysetools. Door deze wijzigingen terug te draaien en de oorspronkelijke ZIP-structuurheaderwaarden te herstellen, analisten kunnen BadPack-samples succesvol analyseren.
Conclusie
Het toenemende aantal Android-apparaten vormt een groeiend doelwit en een aanzienlijke uitdaging bij de bestrijding van malware-aanvallen op het platform. APK-bestanden die BadPack gebruiken, weerspiegelen de toenemende verfijning van APK-malwaremonsters, wat een enorme uitdaging vormt voor beveiligingsanalisten.
Gebruikers moeten op hun hoede zijn voor Android-applicaties die ongebruikelijke machtigingen vragen niet in lijn met hun geadverteerde functionaliteit, zoals een zaklamp-app die toegang vraagt tot het telefoonboek van het apparaat. Ook, Het is raadzaam om geen applicaties van derden te installeren om de beveiliging van het apparaat te behouden.
Als u een vermoeden heeft van een compromis of een dringende kwestie, Neem contact op met de eenheid 42 Incident Response-team voor assistentie.