Cum să determinați dacă este sigur să instalați fișiere apk din magazinele alternative de aplicații Android? (Securitatea informațiilor, Android, Instalați)

Sparkler a intrebat.
a intrebat.

Mai multe site-uri oferă descărcări APK (1, 2, 3). Există o modalitate de a determina dacă un anumit site web/apk este sigur pentru instalare?

Comentarii

  • În afară de rularea efectivă a acestuia, nu, nu chiar. –  > Por Steve.
  • Faceți inginerie inversă sau rulați-l într-un sandbox. –  > Por r00t.
  • Cum puteți determina dacă un APK din magazinul Play este sigur? –  > Por Neil Smithline.
  • Deci „încredere” este, practic, răspunsul tău. Este ceea ce va trebui să folosiți și în cazul site-urilor terțe. Îmi pare rău că nu există un răspuns mai bun. –  > Por Neil Smithline.
  • @NeilSmithline, există două „trusturi” separate în acest caz. (1) Am încredere în faptul că scripturile Google etc. fac o treabă mai bună decât mine în depistarea problemelor de securitate; (2) nu am încredere în faptul că fișierele apk de pe site-urile alternative sunt lipsite de malware. –  > Por Sparkler.
3 răspunsuri
RoraΖ

Analiza inițială


Cred că cel mai temeinic mod de a testa aplicațiile 3rd party este să:

  1. Descărcați aplicația SDK/instrumente Android
  2. Creați un dispozitiv Android virtual cu versiunea Android a telefonului dvs..
  3. Activați depanarea Android prin USB pe dispozitivul dvs. (Poate fi dezactivat ulterior)
  4. Verificați cu ADB că emulatorul dvs. este detectat: adb devices
  5. Instalați aplicația terță parte cu ADB: `adb install

Puteți analiza ce se întâmplă în dispozitiv folosind diferite jurnale care rulează în mod constant. Acestea pot fi greu de capturat, dar puteți captura logcat dispozitivului dvs. cu adb logcat. Puteți învăța cum să utilizați Logcat ca un profesionist.

Dispozitivul virtual Android (AVD) utilizează conexiunea dvs. la internet ca o conexiune WiFi. În acest moment, puteți efectua tot felul de analize. Postarea mea despre cum să analizați malware ar putea fi utilă (în ceea ce privește instrumentele și tehnicile de utilizat). Wireshark va fi un instrument util pentru a analiza traficul de rețea. Vedeți ce face aplicația cu conexiunile sale de rețea.

Ingineria inversă


Deci, acum veți intra în detalii pentru a vedea ce anume face APK-ul. Pentru aceasta veți avea nevoie de câteva instrumente. Iată un instrument online (eu nu l-am folosit) care pretinde că poate descompila un APK Android înapoi în codul Java. Dacă doriți să înțelegeți procesul și să o faceți singur, m-aș uita la acest răspuns de pe Stack Overflow.

Un APK este doar un .zip fișier. Deci, pașii (cu instrumentele din acel răspuns de pe Stack Overflow)

  1. unzip example.apk

Acum avem următoarele fișiere și directoare:

-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

classes.dex este ceea ce ne dorim. Acesta conține toate clasele Java utilizate pentru aplicație.

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

Acum avem un fișier ./example-dex2jar.jar JAR care poate fi descompilat în cod Java. Aici este momentul în care JD-GUI și ApkTool pot fi utile. Acum vă puteți uita la codul exact care este executat de APK.

Rețineți totuși că unele porțiuni (dacă nu majoritatea) din codul Java vor fi ofuscate. Acest lucru este obișnuit și veți vedea adesea simboluri de funcție smulse și înlocuite cu a, b, etc. Nu numai funcții, ci și pachete, metode, variabile. Văzând Java ofuscat ca z = (a) b.d() nu ar fi neobișnuit. Dar puteți vedea șiruri de caractere, importuri tipice și orice funcții de obiecte partajate JNI pe care le-ar putea folosi.


Acestea fiind spuse. Vrei să faci asta pentru fiecare aplicație pe care o descarci? Probabil că nu. Totul depinde de încrederea pe care o aveți în magazinul pe care îl utilizați și/sau în compania de software care a scos aplicația. Eu personal nu folosesc nicio aplicație în afara magazinului Google Play. Aplicațiile pe care le descarc mă bazez pe companiile care le-au dezvoltat, pe recenziile utilizatorilor (acestea pot fi falsificate), pe recomandările prietenilor/forumurilor etc.

Trebuie să acorzi un fel de încredere aplicației pe care o descarci sau să analizezi fiecare aplicație pe care o instalezi. Oricum ar fi, trebuie să fii prudent.

SaeX

Pentru a verifica dacă un APK este sigur, îl poți încărca de ex. Virustotal. Acesta va folosi o serie de scanere de viruși pentru a detecta dacă este ceva în neregulă cu APK-ul.

Notă că APK-urile sunt (în momentul redactării acestui articol) tipul de fișier nr. 1 scanat de Virustotal.

Pedro

Va trebui să faci inginerie inversă pentru a afla ce face și dacă are ceva rău intenționat.

În mod corect, chiar și aplicațiile distribuite de Google Play / App Store au fost găsite cu malware pe ele, astfel încât, chiar dacă este mai probabil ca malware-ul să fie distribuit prin surse externe, nu înseamnă direct că „sursă externă = = malware”.