Introducció al pentesting d'aplicacions mòbils sense morir a l'intent
Compartir
Abans de començar a parlar de pentesting mòbil hem d'establir les bases i diferenciar entre allò que és una anàlisi estàtica de l'aplicació i una anàlisi dinàmica. Però no sense parlar abans de l'estructura d'un APK.
El procés de desassemblar un APK s'anomena descompressió i és mitjançant aquest procés a través del qual aconseguim accedir a les entranyes del nostre binari:
Per això, n'hi hauria prou amb:
unzip APP.apk -d output-unzip
apktool d APP.apk -o output-apktool
A l'hora de descompilar el codi font, tenim dues maneres, per una banda podem generar el .smali que és el bytecode “llegible” per a humans (apktool), o generar el .java interpretat, no és el codi font original, però ens ajuda a entendre la lògica de laplicació de forma més senzilla (jadx).
Anàlisi estàtica vs Dinàmic
Anàlisi estàtica
- Paraules clau o patrons vulnerables de codi.
- Credencials / api keys.
- Urls/endpoints.
- Identificació de funcions importants: autenticació, canvis d‟estat, PII.
- Identificació de funció de debug. Presència de comentaris al codi.
- Identificació de funcions perilloses: ús demmagatzematge extern, execució de codi. Sanitització.
- Secrets hardcodejats.