Nous sommes heureux de présenter aujourd'hui notre solution Page Shield, un produit de sécurité côté client permettant à nos clients de détecter les attaques au sein des navigateurs des utilisateurs finaux.
En 2015, un groupe de pirates surnommé Magecart a commencé à voler des données bancaires auprès de boutiques en ligne en infectant des dépendances provenant de tiers avec du code malveillant. Le code infecté était demandé par le navigateur des utilisateurs finaux, dans lequel il exécutait et accédait aux données utilisateur sur la page Web. Après avoir récupéré les informations, le code infecté l'envoyait aux pirates, qui s'en servaient pour lancer d'autres attaques telles que des fraudes à la carte de crédit ou des usurpations d'identité.
Depuis, ces attaques sur la chaîne d'approvisionnement ont visé d'autres cibles telles que Ticketmaster, Newegg, British Airways, entre autres. L'attaque de la British Airways est partie de la compromission d'un des fichiers JavaScript hébergés en local et a exposé les données de presque 500 000 clients aux pirates. Cette attaque a donné lieu à des amendes pour violation du RGPD et au plus important recours collectif pour non-respect de la confidentialité de l'histoire du Royaume-Uni. Au total, des millions d'utilisateurs ont été concernés par ces attaques.
Il est déjà complexe d'écrire un code sécurisé, cela le devient encore plus lorsqu'il faut se préoccuper des fournisseurs de composants tiers. De nombreuses plateformes SaaS servent du code tiers à des millions de sites, ce qui signifie qu'avec la compromission d'un seul élément, les effets peuvent être dévastateurs. Page Shield aide les clients à suivre ces vecteurs d'attaques potentielles et à éviter que des données utilisateur confidentielles ne tombent dans les mains des pirates.
En début de cette semaine, nous avons annoncé le lancement de l'isolation du navigateur à distance dont l'objectif est d'atténuer les attaques côté client dans les navigateurs de vos employés. Page Shield s'inscrit dans la continuité des efforts de Cloudflare en matière de sécurité côté client, en contribuant à l'atténuation des attaques ciblant vos clients.
Contexte
Une attaque de type Magecart est une attaque de la chaîne d'approvisionnement logicielle, lancée dans le navigateur d’un utilisateur. Les pirates ciblent les hôtes des dépendances JavaScript tierces afin de prendre le contrôle du code source servi aux navigateurs. Lorsque du code infecté est utilisé, il tente souvent de dérober les données sensibles que les utilisateurs finaux saisissent dans les sites telles que les informations de leur carte de crédit transmises au moment du règlement.
Ces attaques sont difficiles à détecter car de nombreux propriétaires d'application s'attendent sincèrement à ce que le code JavaScript tiers fonctionne comme prévu. Et c'est parce qu'ils lui font confiance à ce code tiers qu'ils ne le font que rarement auditer. Dans de nombreux cas, les attaques de Magecart n'ont pas été détectées avant plusieurs mois.
L'exfiltration de données n'est pas le seul risque associé aux chaînes d'approvisionnement logicielles. Depuis quelques année, nous avons vu des pirates modifier le code tiers pour afficher des publicités frauduleuses aux utilisateurs. Les utilisateurs cliquent sur ces publicités et accèdent à des sites d'hameçonnage dans lesquels leurs données personnelles sont volées par les pirates. D'autres codes JavaScript malveillants ont miné des cryptomonnaies au profit de pirates à l'aide des ressources de l'utilisateur final, provoquant la dégradation des performances du site.
Quels sont donc les recours des propriétaires d'application pour se protéger ? Il existe des technologies associées au navigateur telles que les politiques de sécurité du contenu (CSP) et l'intégrité des sous-ressources (SRI) qui offrent une certaine protection contre les menaces côté client, mais elles comportent des inconvénients.
Avec les CSP, les propriétaires d'application peuvent envoyer une liste verte au navigateur, l'empêchant d'exécuter toute ressource qui ne figurerait pas dans cette liste. Cette technique empêche certaines attaques de script de site à site (XSS) mais elle ne permet aucune prévention lorsque des ressources existantes deviennent malveillantes alors qu'elles ne l'étaient pas auparavant. Les CSP sont également complexes à gérer d'un point de vue opérationnel car elles impliquent que les développeurs doivent mettre à jour la liste verte chaque fois qu'un nouveau script est ajouté à la liste.
Avec la SRI, les propriétaires d'application peuvent spécifier le hachage de fichier qu'ils attendent pour JavaScript ainsi que d'autres ressources. Si le fichier récupéré ne correspond pas au hachage attendu, son exécution est bloquée. La SRI peut devenir un vrai casse-tête dans la mesure où les fournisseurs mettent souvent à jour leur code et dans certains cas ils servent différents fichiers à différents utilisateurs finaux. Il nous est également apparu que les fournisseurs de JavaScript diffusent parfois des fichiers versionnés présentant des hachages différents aux utilisateurs finaux du fait de différences mineures, comme l'espacement. Cette situation peut entraîner le blocage SRI de fichiers légitimes sans faute imputable au propriétaire de l'application.
Script Monitor est la première fonctionnalité disponible de Page Shield
Cloudflare a de grandes ambitions pour Page Shield, Script Monitor est la première étape. Lorsque la fonctionnalité est activée, elle enregistre les dépendances JavaScript au fil du temps. Lorsque de nouvelles dépendances JavaScript apparaissent, nous vous alertons afin que vous puissiez vérifier si des modifications sont attendues pour votre site. Cela vous permet de déterminer si des acteurs malveillants ont modifié votre application dans le but de demander un nouveau fichier JavaScript malveillant. Une fois la version Bêta terminée, cette fonctionnalité initiale sera mise à disposition des clients Business et Enterprise sans frais supplémentaires.
Comment fonctionne Script Monitor ?
Grâce à la position unique de Cloudflare qui se trouve entre les serveurs d'origine d'application et les utilisateurs finaux, nous pouvons modifier les réponses avant qu'elles n'accèdent aux utilisateurs finaux. Dans ce cas, nous ajoutons un en-tête Content-Security-Policy-Report-Only (politique de sécurité du contenu, rapport uniquement) aux pages lorsqu'elles traversent la périphérie de Cloudflare. Si des fichiers JavaScript tentent de s'exécuter sur la page, les navigateurs renvoient un rapport à Cloudflare. L'utilisation d'un en-tête de type Rapport uniquement élimine la nécessité pour les propriétaires d'application de tenir à jour des listes vertes pour les informations importantes.
Pour chaque rapport que nous voyons, nous comparons le fichier JavaScript avec les dépendances historiques et cette zone et nous vérifions si le fichier est nouveau. Si c'est le cas, nous déclenchons une alerte, ainsi, les clients peuvent examiner le code et déterminer si la modification était attendue.
L'IU de Script Monitor se trouve sous Pare-feu -> Page Shield
En tant que participant à la version Bêta, vous verrez l'onglet Page Shield sous la section Pare-feu de votre tableau de bord de zone. Vous y trouverez le tableau Script Monitor de suivi des dépendances JavaScript de votre zone. Pour chaque dépendance, vous verrez la date de première apparition, la date de dernière apparition et le domaine hôte sur lequel elle a été détectée.
Exemple de notification par e-mail de la découverte d'une nouvelle dépendance JavaScript.
Vous pouvez également configurer les notifications Script Monitor dans le tableau de bord. Ces notifications vous envoient des alertes par e-mail ou PagerDuty dès lors qu'un nouveau fichier JavaScript est demandé par votre site.
Perspectives d'avenir
Nous nous sommes donné pour mission de contribuer à bâtir un Internet meilleur. Cette mission concerne jusqu'aux navigateurs des utilisateurs finaux sur lesquels nous avons constaté une augmentation alarmante des attaques au cours de quelques dernières années. Avec Page Shield, nous aidons les applications à détecter et atténuer ces attaques insaisissables afin de garantir la confidentialité des informations sensibles des utilisateurs.
Nous sommes déjà en train de créer la fonction de détection des modifications du code dans Script Monitor. La détection des modifications ira régulièrement récupérer les dépendances JavaScript de vos applications afin d'en analyser le comportement. Lorsqu’un nouveau comportement de code est détecté dans des fichiers existants, nous vous en alertons afin que vous puissiez examiner les modifications et déterminer si le nouveau code est une mise à jour bénigne ou un élément de code infecté.
Après la détection de code vient l'analyse intelligente des fichiers JavaScript. Nous alertons les propriétaires d'application lorsque la modification de leurs dépendances donne accès à des informations dans des fichiers importants mais nous pouvons faire mieux. Nous nous sommes rapprochés de nos partenaires en sécurité pour obtenir des échantillons de code JavaScript Magecart et nous sommes arrivés à la preuve que nous pouvions classer avec précision les échantillons de code JavaScript malveillant. Nous prévoyons d'affiner plus encore nos techniques et parvenir enfin à alerter les clients Page Shield lorsque nous pensons que leurs dépendances sont malveillantes.
Nous avons échangé avec nos clients et nous comprenons combien il peut être complexe d'un point de vue opérationnel de tenir à jour les listes vertes de CSP. Si du nouveau code JavaScript côté client est déployé sans être ajouté à la liste verte, il sera bloqué par les navigateurs. C'est pourquoi nous utiliserons notre position de proxy inverse pour proposer le blocage de modèle de sécurité négatif. Cela permettra aux propriétaires d'application de bloquer des scripts individuels sans avoir à tenir à jour une liste verte et les clients pourront envoyer du nouveau code en s'épargnant des frais lourds.
S'inscrire à la bêta
À compter d'aujourd'hui, tous les clients Business et Enterprise peuvent s'inscrire ici pour bénéficier de la version Bêta de Page Shield. En rejoignant la version Bêta, les clients seront en mesure d'activer Script Monitor et de commencer à assurer le suivi du code JavaScript de leur site.