Enorma Janus-bugg lämnar Android-appar öppna för obehörig kodändring

0 Shares

Android-telefon med appar

Forskare från säkerhetsföretaget GuardSquare har upptäckt en Android-sårbarhet som gör det möjligt att redigera appkod utan att påverka appens signatur. Kallad Janus, sårbarheten har enorm potential för skadlig användning och påverkar Android 5.0 och framåt.

Säkerhetshålet skulle göra det möjligt för en angripare att justera en helt legitim app för att uppträda skadligt utan att utlösa säkerhetsvarningar. Även om sårbarheten CVE-2017-13156 har korrigerats i decemberens Android-uppdatering kommer väldigt få människor att ha tillgång till den här säkerhetsfixet.

På plussidan bör kontroller av appar som skickas till Google Play innebära att allt som erhålls via officiella kanaler ska vara säkert. Problemet påverkar verkligen appar som laddas ner från alternativa butiker, eller som är sidladdade efter nedladdning direkt från webbplatser.

GuardSquare förklarar Janus-problemet:

Janus-sårbarheten härrör från möjligheten att lägga till extra byte till APK-filer och till DEX-filer. Å ena sidan, en APK-fil är ett zip-arkiv, som kan innehålla godtyckliga byte i början före dess zip-poster (faktiskt mer generellt, mellan dess zip-poster). JAR-signaturschemat tar endast hänsyn till zip-posterna. Det ignorerar extra byte vid beräkning eller verifiering av applikationens signatur. Å andra sidan, a DEX-fil kan innehålla godtyckliga byte i slutet, efter de vanliga sektionerna av strängar, klasser, metoddefinitioner etc. En fil kan därför vara en giltig APK-fil och en giltig DEX-fil samtidigt.

Forskarna fortsätter med att förklara hur detta kan utnyttjas:

Ett annat nyckelelement är en till synes ofarlig funktion i den virtuella maskinen Dalvik / ART. I teorin laddar Android-körtiden APK-filen, extraherar dess DEX-fil och kör sedan sin kod. I praktiken kan den virtuella maskinen ladda och köra både APK-filer och DEX-filer. När den får en APK-fil tittar den fortfarande på magiska byte i rubriken för att avgöra vilken typ av fil det är. Om den hittar en DEX-rubrik läses den in som en DEX-fil. Annars läses den in som en APK-fil som innehåller en zip-post med en DEX-fil. Det kan alltså tolka dubbla DEX / APK-filer felaktigt.

En angripare kan utnyttja denna dualitet. Han kan förbereda en skadlig DEX-fil till en APK-fil utan att påverka dess signatur. Android-runtime accepterar sedan APK-filen som en giltig uppdatering av en legitim tidigare version av appen. Men Dalvik VM läser in koden från den injicerade DEX-filen.

Den typ av signaturschema som utvecklare använde är nyckeln – version 2 erbjuder skydd. Som sådan säger GuardSquare: “Applikationer som har undertecknats med APK-signaturschema v2 och som körs på enheter som stöder det senaste signaturschemat (Android 7.0 och senare) är skyddade mot sårbarheten. Till skillnad från schema v1 anser detta schema v2 alla byte i APK-filen. Äldre versioner av applikationer och nyare applikationer som körs på äldre enheter är fortfarande känsliga. Utvecklare bör åtminstone alltid tillämpa signaturschema v2. “

Bildkredit: dennizn / Shutterstock

0 Shares