Lavorando su malware Android, ho dovuto affrontare molti malware Android che normalmente contengono URL che sono bank phishing page . Questo tipo di malware sta crescendo di numero, quindi è veramente necessario un sistema di rilevamento automatico . Il primo passo per rilevare tali malware è url / link extraction .
Un semplice approccio statico consiste nel decompilare l'app e cercare stringhe che iniziano con "http" nel codice sorgente. Esistono molti strumenti e librerie come stringoid , Diggy , NinjaDroid , Androguard e molti altri, ma per quanto ho testato questi strumenti, non sono in grado di rilevare gli URL offuscati. Ad esempio, considera questo codice:
this.c = "/something";
this.d = new String(Base64.decode(Application.a, 0));
this.a.loadUrl(this.d + this.c);
È chiaro che l'analisi statica da sola non è sufficiente, quindi sto cercando altre soluzioni. Finora, ho visto alcuni approcci in alcuni articoli che cercano di estrarre stringhe così offuscate dai file APK Android. Un esempio è ForceDROID che presenta una tecnica ibrida (sia statica che dinamica) per l'estrazione di informazioni nascoste. Questa tecnica funziona modificando le condizioni del flusso di controllo per eseguire un determinato percorso. Un altro esempio si basa sulla deobfuscation.
Queste tecniche sono tutte fantastiche, ma il problema è che non è disponibile alcuna implementazione.
Purtroppo, non sono abbastanza esperto per implementare tali tecniche. Un approccio che penso è quello di utilizzare prima un deobfuscator come semplificare e quindi estrarre gli URL attraverso l'analisi statica (usando gli strumenti menzionati sopra) .
Quali sono altri modi per estrarre automaticamente gli URL oscurati? C'è qualche strumento o libreria là fuori?