Come determinare se è sicuro installare i file apk da altri store di app Android?

7

Diversi siti offrono download di APK ( 1 , 2 , 3 ). C'è un modo per determinare se un determinato sito Web / apk è sicuro da installare?

    
posta Sparkler 03.08.2015 - 17:15
fonte

2 risposte

5

Analisi iniziale

Penso che il modo più completo per testare app di terze parti sia:

  1. Scarica Android SDK / Strumenti
  2. Crea un dispositivo Android virtuale con versione Android del tuo telefono .
  3. Abilita il debug di Android tramite USB sul tuo dispositivo. (Può essere disattivato in seguito)
  4. Verifica con ADB che il tuo emulatore è stato rilevato: adb devices
  5. Installa l'app di terze parti con ADB: "adb install

Puoi analizzare cosa sta succedendo nel dispositivo usando registri diversi che sono costantemente in esecuzione. Questi possono essere difficili da catturare, ma puoi catturare il logcat del tuo dispositivo con adb logcat . Puoi imparare come usare Logcat like a Pro .

Il dispositivo virtuale Android (AVD) utilizza la tua connessione Internet come una connessione WiFi. A questo punto puoi eseguire tutti i tipi di analisi. Il mio post su come analizzare il malware potrebbe essere utile (per quanto riguarda gli strumenti e le tecniche da usare). Wireshark sarà uno strumento utile per analizzare il traffico di rete. Guarda che cos'è l'app con le sue connessioni di rete.

Reverse engineering

Quindi ora ti stai addentrando e impuri nel vedere che cosa sta facendo esattamente l'APK. Per questo avrai bisogno di alcuni strumenti. Ecco uno strumento online (non l'ho usato) che afferma di decompilare un APK Android nel suo codice Java. Se vuoi capire il processo e farlo da solo, guarderei risposta Stack Overflow .

Un APK è solo un file .zip . Quindi i passaggi (con gli strumenti da quella risposta Overflow dello stack)

  1. unzip example.apk

Ora abbiamo i seguenti file e directory:

-rw-rw-r--  1       3708 Oct 14  2013 AndroidManifest.xml
-rw-rw-r--  1    2751916 Oct 14  2013 classes.dex
drwxrwxr-x  2       4096 Aug  3 12:12 META-INF
drwxrwxr-x 23       4096 Aug  3 12:12 res
-rw-rw-r--  1     363640 Oct 14  2013 resources.arsc

Il classes.dex è ciò che vogliamo. Contiene tutte le classi Java utilizzate per l'applicazione.

  1. ./d2j-dex2jar.sh ../example.apk

Ora abbiamo un file JAR ./example-dex2jar.jar che può essere decompilato nel codice Java. Qui è dove JD-GUI e ApkTool possono essere utili. Ora puoi guardare il codice esatto che viene eseguito dall'APK.

Ricorda però che alcune parti (se non la maggior parte) del codice Java saranno offuscate. Questo è comune e spesso vedrai i simboli delle funzioni strappati e sostituiti con a , b , ecc. Non solo funzioni, ma pacchetti, metodi, variabili. Vedere Java offuscato come z = (a) b.d() non sarebbe insolito. Ma puoi vedere stringhe, importazioni tipiche e qualsiasi funzione oggetto condiviso JNI che possono utilizzare.

Tutto ciò che viene detto. Vuoi farlo per ogni app che scarichi? Probabilmente no. Si tratta di stabilire se ti fidi dello Store che stai utilizzando e / o della società di software che ha distribuito l'app. Personalmente non uso nessuna app al di fuori del Google Play Store. Le app che faccio scaricare sono basate su società che le hanno sviluppate, recensioni degli utenti (queste possono essere simulate), consigli di amici / forum, ecc.

Devi dare una sorta di fiducia all'app che stai scaricando, o analizzare ogni app che installi. In ogni caso devi usare cautela.

    
risposta data 03.08.2015 - 18:23
fonte
4

Per verificare se un APK è sicuro, puoi caricarlo ad es. Virustotal . Utilizzerà un gruppo di scanner antivirus per rilevare se c'è qualcosa di sbagliato nell'APK.

Nota che gli APK sono (in questo momento in cui scrivo) il tipo di file # 1 sottoposto a scansione da Virustotal.

    
risposta data 01.06.2016 - 14:50
fonte

Leggi altre domande sui tag