Piratage informatique d'intent implicite

Catégorie OWASP : MASVS-PLATFORM : interaction avec la plate-forme

Présentation

La faille liée au piratage informatique de l'intent implicite se produit lorsqu'une application ne spécifie pas de nom de classe de composant complet ni de package lorsqu'elle appelle un intent. Cela permet à une application malveillante d'enregistrer un filtre d'intent pour intercepter l'intent à la place de l'application souhaitée.

Selon le contenu de l'intent, les pirates informatiques peuvent lire des informations sensibles ou interagir avec des objets modifiables, tels que des modifiables PendingIntents ou des liaisons.

Impact

Le piratage d'un intent implicite permet à un pirate informatique de lire ou de modifier le contenu de l'intent et d'intercepter l'intent pour effectuer une action. Cela peut avoir des conséquences, telles que la fuite d'informations ou de données sensibles, ou le lancement de composants contrôlés par des pirates.

Stratégies d'atténuation

Rendez les intents explicites en appelant setPackage(), comme indiqué dans l'extrait de code suivant :

Kotlin

val intent = Intent("android.intent.action.CREATE_DOCUMENT").apply {
    addCategory("android.intent.category.OPENABLE")
    setPackage("com.some.packagename")
    setType("*/*")
    putExtra("android.intent.extra.LOCAL_ONLY", true)
    putExtra("android.intent.extra.TITLE", "Some Title")
}

startActivity(intent)

Java

Intent intent = new Intent("android.intent.action.CREATE_DOCUMENT");
intent.addCategory("android.intent.category.OPENABLE");

intent.setPackage("com.some.packagename");

intent.setType("*/*");
intent.putExtra("android.intent.extra.LOCAL_ONLY", true);
intent.putExtra("android.intent.extra.TITLE", "Some Title");
startActivity(intent);

Si vous devez utiliser des intents implicites, omettez les informations sensibles ou les objets modifiables que vous ne souhaitez pas exposer. Les intents implicites peuvent être utiles lorsqu'une appli ne sait pas exactement quelle appli va résoudre l'action (par exemple, rédiger un e-mail, prendre une photo, etc.).

Ressources