I am aware that on Windows this is very much possible. But is it possible on Android [...] Can you install a virus/malware/spyware by just clicking on an image?
Sì, è possibile, anche se difficile. Non vi è alcuna differenza fondamentale tra Windows e Android in termini di vulnerabilità del decodificatore di immagini. In effetti, è possibile che entrambi i sistemi utilizzino la stessa libreria per la decodifica, con identiche vulnerabilità. Anche le mitigazioni precise (DEP, ASLR, canarini di stack, ecc.) Applicate dai sistemi operativi sono simili.
L'unico modo in cui questo può essere fatto è se c'è un grave bug di sicurezza nella libreria di immagini. Un bug di sicurezza può essere in grado di dirottare la libreria e attivare l'esecuzione di codice arbitrario. In questi casi, l'immagine dannosa non è in realtà un eseguibile, ma contiene un formato leggermente modificato che non è così diverso da causare un errore, ma è abbastanza simile da essere elaborato dalla libreria, attivando un comportamento non voluto. Questi tipi di bug sono piuttosto rari e vengono risolti rapidamente quando vengono scoperti. È necessario mantenere aggiornato il software (preferibilmente con aggiornamenti automatici / automatici) per evitare di avere una libreria di immagini vulnerabili a lungo.
Also what exactly happens when someone renames a malicious apk to .jpg or .png or .mp4. Will the malware/spyware execute if you open the image/video?
Se qualcuno rinomina un file eseguibile dannoso in modo che abbia un'estensione dell'immagine o in altro modo trovi un modo per passarlo al decodificatore multimediale (ad esempio cambiando il tipo MIME), verrà semplicemente visualizzato un messaggio che l'immagine non può essere visualizzata. Il decodificatore non riconoscerà automaticamente il file e lo eseguirà se non è un'immagine. I decoder funzionano innanzitutto controllando i cosiddetti magic byte all'inizio del file che specificano il tipo di file. I byte per un APK e per un file JPEG, ad esempio, sono completamente diversi. Se non vede i byte JPEG si rifiuterà semplicemente di provare per analizzare il file.