Aller au contenu

Index

Paramètres de configuration réseau non sécurisés

Description

La configuration de la sécurité réseau d'Android (Network Security Configuration) permet de définir de manière déclarative la sécurité réseau de l'application.

Lorsque la configuration de la sécurité réseau d'Android est manquante ou configurée de manière non sécurisée, elle peut rendre l'application vulnérable aux attaques de type homme du milieu (MiTM).

Recommandation

La configuration de la sécurité réseau d'Android est un fichier XML qui permet de définir de manière déclarative la sécurité réseau de l'application.

Ajouter une configuration de sécurité réseau à votre application :

1- Créez un nouveau fichier XML dans le répertoire res/xml de votre application. Nommez-le network_security_config.xml, ou tout autre nom approprié. 2- Définissez les configurations de sécurité, voir les exemples ci-dessous 3- Appliquez la configuration au manifeste :

<application
        android:networkSecurityConfig="@xml/network_security_config"
        <!-- Other attributes -->
        >
        <!-- Other configurations -->
</application>  

Exemples de configuration de sécurité réseau

  • Autorité de certification personnalisée avec prise en charge des paramètres de débogage uniquement
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="@raw/debug_cas"/>
        </trust-anchors>
    </debug-overrides>
</network-security-config>
  • Désactivation déclarative du trafic en texte clair
<?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>
  • Définition déclarative des clés d'épinglage de certificats
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <pin-set expiration="2018-01-01">
            <pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
            <!-- backup pin -->
            <pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
        </pin-set>
    </domain-config>
</network-security-config>

Liens

Normes

  • OWASP_MASVS_L1:
    • MSTG_NETWORK_1
  • OWASP_MASVS_v2_1:
    • MASVS_NETWORK_1
  • HIPAA_CONTROLS:
    • SECURITY252
    • SECURITY212
    • SECURITY213
  • OWASP_MASVS_L2:
    • MSTG_NETWORK_1
  • PCI_STANDARDS:
    • REQ_1_2
    • REQ_2_2
  • CNIL_FOR_DEVELOPERS:
    • DEVELOPERS_4_1_4