Domanda capire se un apk è infetto

Stato
Discussione chiusa ad ulteriori risposte.

The King of BlackOut

Utente Bronze
21 Ottobre 2020
36
11
7
27
Salve a tutti mi scuso nel caso il quesito fosse già stato posto ma non ne ho trovati..
vorrei capire come posso stabilire se un apk (ma non solo nel mondo mobile magari anche un .exe) sia infetto o meno per tutelare la sicurezza dei dispositivi.
Più che qualche tool , vorrei anche capire realmente come funziona un software infetto e cosa può fare un utente finale a riguardo in prima persona. (Bibliografia ben accetta se serve)
spero nell'aiuto della community, grazie in anticipo. :)
 
Salve a tutti mi scuso nel caso il quesito fosse già stato posto ma non ne ho trovati..
vorrei capire come posso stabilire se un apk (ma non solo nel mondo mobile magari anche un .exe) sia infetto o meno per tutelare la sicurezza dei dispositivi.
Più che qualche tool , vorrei anche capire realmente come funziona un software infetto e cosa può fare un utente finale a riguardo in prima persona. (Bibliografia ben accetta se serve)
spero nell'aiuto della community, grazie in anticipo. :)
Allora anzi tutto taggo due/tre persone che sicuro ne sanno di più (@JunkCoder , @0xbro , @Dany Dollaro )

Detto questo, la cosa principale che bisogna capire quando si parla di file, è come quest'ultimo è codificato: un apk, ad esempio, è un semplice archivio d'installazione, mentre un "exe" è un file eseguibile. Diverse codifiche comportano diversi sistemi di offuscamento per confondere, chi come te, cerca di comprendere se quel file è infetto o meno.

Un exe scritto in C++ potrebbe essere "paccato", e te ne potresti accorgere analizzando il PE dello stesso con un programma di reverse. L'analisi dell'header dovrebbe ritornarti senza informazioni (poichè il """paccher""" dovrebbe offuscare il tutto). Altro esempio potrebbe essere un eseguibile scritto in C#, il quale compila l'exe in un meta-linguaggio e non lo compila direttamente, (questo perchè c# è un linguaggio interpretato) in questo caso analizzando l'eseguibile con un programma di reverse (dnSpy ad esempio) noteresti che il linguaggio è "legibile", ma non ha spesso e volentieri senso.

Per l'analisi PE ti lascio:

Vedi: https://youtu.be/z0e306Jod5A


Questo è un esempio di reverse di un programma C# paccato:

Vedi: https://youtu.be/5mUoqU3ExCM


E infine ti consiglio VirusTotal per eseguire il controllo dei file :)
 
  • Geniale
Reazioni: DanyDollaro
La differenza tra un programma che svolge azioni leggittime ed un malware non è ben marcata, e le metodologie impiegate per la loro individuazione varia molto dalla piattaforma su cui gira il programma e dalla serie di azioni che svolge.

Per un antivirus sarebbe difficile capire se un programma che effettua operazioni di scrittura su file stia effettivamente scrivendo dei dati che il programma andrà ad utilizzare per se, oppure se sta criptando il file (ransomware), solitamente questi programmi quando sono privi di una firma digitale vengono sempre rilevati come malware.

@JunkCoder tempo fa scrisse questa guida, a mio parere niente male dato che non richiede conoscenze di reverse engineering, quindi ottima per chi inizia, nel quale illustra dei metodi per individuare vari tipi di malware su windows.
 
Per analizzare staticamente e dinamicamente un file APK esiste un Framework chiamato Mobile-Security-Framework-MobSF (link GitHub) che permette di analizzare un file APK (o file IPA per dispositivi iOS) e identificare privilegi richiesti, IP contattati, comportamenti inaspettati, leggere il codice sorgente dell'app e tanto altro. Per le app mobile esistono anche altri tools che permettono di fare analisi e reversing, come Androguard e tanti altri (una lista abbastanza completa di seguito https://github.com/ashishb/android-security-awesome)
 
  • Mi piace
Reazioni: DanyDollaro
Salve a tutti mi scuso nel caso il quesito fosse già stato posto ma non ne ho trovati..
vorrei capire come posso stabilire se un apk (ma non solo nel mondo mobile magari anche un .exe) sia infetto o meno per tutelare la sicurezza dei dispositivi.
Più che qualche tool , vorrei anche capire realmente come funziona un software infetto e cosa può fare un utente finale a riguardo in prima persona. (Bibliografia ben accetta se serve)
spero nell'aiuto della community, grazie in anticipo. :)
Beh, una prima prova per capire se un apk o un eseguibile è infetto, è il semplice fatto che un programma a pagamento venga distribuito gratuitamente sotto forma di crack, già quello risulta sospetto, alle volte basta avere un buon antivirus come Avira "che blocca pure la scrittura ai file di sistema" e se il malware in questione è in giro da un po' viene rilevato, mentre sul mondo mobile, basta stare sugli store ufficiale come Google play e F-droid che garantiscono una certa affidabilità delle fonti, se invece vuoi bibliografia esistono diversi archivi online con diversi malware archiviati con tanto di descrizione e comunque si trova davvero tantissimo materiale a riguardo. Ricordo sempre che l'utente è il miglior antivirus che verificare un minimo le fonti da cui sta scaricando e controllare sempre cosa effettivamente abbia scaricato.
 
  • Mi piace
Reazioni: DanyDollaro
Stato
Discussione chiusa ad ulteriori risposte.