HTTP en texte clair/brut

Catégorie OWASP : MASVS-NETWORK : communication réseau

Présentation

Autoriser les communications réseau en texte clair dans une application Android signifie que toute personne surveillant le trafic réseau peut voir et manipuler les données transmises. Il s'agit d'une faille si les données transmises incluent des informations sensibles telles que des mots de passe, des numéros de carte de crédit ou d'autres informations personnelles.

Que vous envoyiez ou non des informations sensibles, l'utilisation de texte clair peut constituer une faille, car le trafic HTTP en texte clair/brut peut également être manipulé par des attaques d'empoisonnement réseau telles que l'empoisonnement ARP ou DNS. Cela permet aux pirates informatiques d'influencer le comportement d'une application.

Impact

Lorsqu'une application Android envoie ou reçoit des données en texte clair sur un réseau, toute personne qui surveille le réseau peut intercepter et lire ces données. Si ces données incluent des informations sensibles telles que des mots de passe, des numéros de carte de crédit ou des messages personnels, cela peut entraîner un vol d'identité, une fraude financière et d'autres problèmes graves.

Par exemple, une application transmettant des mots de passe en texte clair peut exposer ces identifiants à un acteur malveillant interceptant le trafic. Ces données peuvent ensuite être utilisées pour obtenir un accès non autorisé aux comptes de l'utilisateur.

Stratégies d'atténuation

Les conseils de cette section ne s'appliquent qu'aux applications qui ciblent Android 8.1 (niveau d'API 27) ou version antérieure. À partir d'Android 9 (niveau d'API 28), la prise en charge du texte clair est désactivée par défaut.

Utilisez la fonctionnalité NetworkSecurityConfig.xml pour désactiver le trafic en texte clair :

XML

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

Cette option permet d'éviter les régressions accidentelles dans les applications en raison de modifications des URL fournies par des sources externes telles que des serveurs backend.

Ressources