Aller au contenu

Cordova Cross-Site Scripting (XSS)

Cross-Site Scripting (XSS) Cordova

Description

Les attaques de type Cross-Site Scripting (XSS) sur mobile sont un type d'injection dans lequel des scripts malveillants sont injectés dans un contenu par ailleurs inoffensif et de confiance. Les attaques XSS se produisent lorsqu'un attaquant peut injecter du code malveillant via :

  • Une entrée de communication inter-processus (IPC) non approuvée
  • Une attaque de l'homme du milieu (Man-in-the-Middle)
  • Un contenu non approuvé stocké sur l'application du serveur web
  • Une entrée de fichier local non approuvée

Exemple de script pour tester la présence de XSS

<script>alert("Ostorlab XSS!")</script>

<img src="http://ostorlab.co/js_xss2" onerror=alert(document.cookie)>

Les vulnérabilités XSS pour les applications Cordova sont critiques car elles permettent d'accéder aux fonctionnalités natives du téléphone cible et pourraient conduire à un accès non autorisé aux contacts, messages, caméras, à l'audio et à la localisation.

Recommandation

L'application doit valider toutes les entrées fournies et utiliser une API de formatage HTML sécurisée. L'approche recommandée consiste à définir une liste de caractères acceptables et à n'autoriser que ceux-ci. Par exemple, les caractères acceptables seraient des lettres majuscules, des lettres minuscules et des chiffres (c'est-à-dire a-z, A-Z et 0-9).

Les frameworks offrent des méthodes pour valider les entrées et prévenir les vulnérabilités XSS, et les frameworks modernes (Angular JS 2, React JS) échappent automatiquement les entrées de l'utilisateur :

Pour échapper les entrées à l'aide de Sencha Ext JS, les méthodes suivantes peuvent être utilisées :

  • Ext.util.Format.stripTags
  • Ext.util.Format.stripScripts
  • Ext.util.Format.htmlEncode/Decode

Liens

Normes

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • CWE_TOP_25:
    • CWE_79
    • CWE_20
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_3_4
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5