cside est un produit de cybersécurité qui évolue dans l'espace de la chaîne d'approvisionnement du navigateur. Nous et les autres fournisseurs opérant dans ce domaine aimons parler de cette chaîne d'approvisionnement. Mais qu'entendons-nous exactement par là ?
La chaîne d'approvisionnement du navigateur est la combinaison de composants et de processus qui s'assemblent pour afficher des pages web, exécuter des scripts et assurer un bon fonctionnement. Cette chaîne comprend tout, depuis la requête initiale d'une page web jusqu'au rendu final de cette page dans le navigateur de l'utilisateur. Ainsi que les comportements dynamiques qui se produisent après le rendu du site.
Voici la chaîne d'approvisionnement du navigateur dans son intégralité et comment la sécuriser correctement
1. L'utilisateur effectue une action : Un utilisateur initie une requête en saisissant une URL dans le navigateur ou en cliquant sur un lien.
Composants : Navigateur.
2. Résolution DNS : Le navigateur interroge un serveur DNS pour traduire le nom de domaine en adresse IP.
Composants : Serveurs DNS et cache du navigateur.
Utilisez DNSSEC (Domain Name System Security Extensions) pour sécuriser le processus de résolution DNS. Cela valide l'authenticité de la réponse DNS et protège contre les attaques de DNS spoofing et d'empoisonnement du cache. Bien que la mise en cache DNS puisse améliorer les temps de chargement, assurez-vous que le TTL d'un enregistrement DNS est suffisamment bas pour pouvoir effectuer des modifications rapidement. Enfin, optez pour des fournisseurs DNS ayant un solide historique en matière de sécurité.
3. Connexion TCP/IP : Le navigateur établit une connexion TCP avec le serveur web en utilisant l'adresse IP obtenue lors de la résolution DNS.
Composants : Infrastructure Internet, FAI et routeurs réseau.
Configurez des pare-feux au niveau de la couche réseau pour surveiller et contrôler le trafic réseau entrant et sortant en fonction des politiques de sécurité. Cela contribue à prévenir les accès non autorisés.
4. Handshake SSL/TLS : Si la connexion est sécurisée (HTTPS), le navigateur et le serveur effectuent un handshake SSL/TLS pour établir une connexion chiffrée.
Composants : Certificats SSL/TLS et Autorités de Certification (CA).
Utilisez toujours Transport Layer Security (TLS) pour chiffrer les données transmises sur le réseau. Cela empêche les attaquants d'intercepter ou de falsifier les données en transit.
5. Requête HTTP : Le navigateur envoie une requête HTTP au serveur pour la page web.
Composants : Serveur web et équilibreurs de charge.
Implémentez HTTPS sur toutes vos pages pour sécuriser les requêtes HTTP en chiffrant les données en transit. Utilisez HTTP Strict Transport Security (HSTS) pour garantir que les navigateurs n'établissent que des connexions sécurisées avec votre serveur. Le cas échéant, envisagez d'implémenter une limitation de débit pour prévenir les abus sur les API de votre service.
6. Réponse du serveur : Le serveur traite la requête et répond avec un document HTML et le JavaScript associé. Souvent, la livraison de la réponse initiale amènera le navigateur à récupérer du contenu depuis d'autres serveurs tiers. Cependant, les réponses ici peuvent être dynamiques, il est donc recommandé de disposer d'un outil comme cside pour surveiller les ressources tierces récupérées côté client.
Composants : Serveur web, serveur d'application et serveur de base de données.
Pour prévenir les attaques Cross-Site Scripting (XSS), encodez correctement tout contenu généré par les utilisateurs dans les réponses du serveur. Cela implique de transformer les caractères potentiellement dangereux en équivalents encodés sûrs avant de les renvoyer au client.
7. Réseaux de diffusion de contenu (CDN) : Les ressources statiques telles que les images, les fichiers CSS et JavaScript sont souvent servies depuis des CDN pour réduire la latence.
Composants : Serveurs CDN.
Beaucoup de personnes pensent que sécuriser la chaîne d'approvisionnement du navigateur nécessite uniquement de sécuriser le début de la chaîne. Cette hypothèse est incorrecte. Notre campagne de lancement, Supply Chain Risk Doesn't End At NPM, explique pourquoi ce n'est pas le cas. Se contenter de sécuriser cet aspect est insuffisant, comme l'a démontré l'incident de 2021 avec cdnjs. Bien qu'il soit utilisé sur 12 % de tous les sites web mondiaux, cdnjs était exposé à une vulnérabilité significative.
Ici, l'utilisation d'un fournisseur CDN robuste est bien entendu nécessaire. Assurez-vous simplement que ce n'est pas votre seule barrière de sécurité et suivez les autres recommandations.

8. Analyse et rendu HTML : Le navigateur analyse le document HTML pour construire le DOM (Document Object Model).
Composants : Moteur de rendu du navigateur.
De la même manière, ne vous reposez pas uniquement sur les Content Security Policies (CSP), mais configurez-les ici. Si des scripts inline sont nécessaires, utilisez un nonce (un jeton à usage unique) dans la balise script. Le nonce doit correspondre à celui présent dans l'en-tête Content Security Policy (CSP). Cette approche garantit que seuls les scripts disposant du bon nonce peuvent s'exécuter, ce qui contribue à empêcher l'exécution de scripts non autorisés ou malveillants.
9. Analyse CSS : Le navigateur analyse les fichiers CSS pour construire le CSSOM (CSS Object Model).
Composants : Moteur de rendu du navigateur.
Les expressions CSS peuvent exécuter du code dans le contexte du navigateur, ce qui peut entraîner des vulnérabilités de sécurité. Même si elles sont largement obsolètes et non prises en charge par de nombreux navigateurs modernes. Si votre application permet aux utilisateurs de saisir du CSS directement ou indirectement (via un CMS ou similaire), assurez-vous que cette saisie est validée et assainie pour empêcher l'exécution de CSS malveillant. Cela peut inclure la suppression des URL basées sur JavaScript, des expressions et des propriétés potentiellement dangereuses.
10. Exécution JavaScript et scripts tiers : Le navigateur télécharge et exécute les fichiers JavaScript, modifiant le DOM et le CSSOM selon les besoins. Des scripts supplémentaires provenant de sources tierces (par exemple, analytics, publicités, widgets de réseaux sociaux) sont récupérés et exécutés.
Composants : Moteur JavaScript du navigateur, serveurs tiers, paramètres Content Security Policy (CSP) et cside.
Nous traitons tous les scripts tiers via notre moteur de détection, en améliorant leur vitesse pour éviter toute latence supplémentaire. Nous vous fournissons ces données, vous permettant de surveiller leur activité, ce qui est essentiel pour la conformité aux réglementations PCI DSS 4.0. Nous pouvons également bloquer de manière autonome les acteurs malveillants, renforçant ainsi la sécurité de votre site. Commencez gratuitement avec nous dès aujourd'hui pour être plus proche de la conformité et plus en sécurité immédiatement.
Pour les autres fournisseurs et comment nous nous comparons, lisez ici.
11. Récupération des ressources : Le navigateur effectue des requêtes HTTP supplémentaires pour les ressources référencées dans le HTML, le CSS et le JavaScript (par exemple, polices, images supplémentaires).
Composants : Serveur web et CDN.
Il est important de noter ici que cside détecte toute activité malveillante dans le domaine tiers avant qu'elle ne soit rendue par le navigateur. D'autres outils de surveillance ne font souvent pas cela. À notre avis, c'est la meilleure façon de sécuriser cette étape.
12. Mise en cache côté client : Le navigateur met en cache les ressources localement pour améliorer les performances lors des visites ultérieures.
Composants : Cache du navigateur et Service Workers.
Définissez des directives de cache appropriées pour éviter de stocker des informations sensibles dans le cache. Pour les pages particulièrement sensibles, utilisez la directive no-store pour vous assurer qu'elles ne sont pas mises en cache. Utilisez toujours HTTPS pour toutes les transactions. Implémentez des sommes de contrôle ou des hachages pour vérifier l'intégrité des données mises en cache avant leur utilisation.
13. Service Workers : Le cas échéant, les service workers peuvent intercepter les requêtes réseau, gérer la mise en cache et activer les fonctionnalités hors ligne.
Composants : Scripts Service Worker et environnement du navigateur.
Définissez des règles de mise en cache strictes dans vos scripts service worker pour vous assurer que seul le contenu non sensible et immuable est mis en cache.
14. Rendu et affichage : Le navigateur construit l'arbre de rendu et dessine les pixels à l'écran, créant la représentation visuelle de la page web.
Composants : Moteur de rendu du navigateur (et GPU).
Assurez-vous que les ressources chargées depuis des sources cross-origin ne peuvent pas interférer avec le rendu de votre site. Utilisez l'attribut crossorigin pour contrôler la façon dont ces ressources interagissent avec votre document.
15. Étape d'interaction utilisateur : L'utilisateur interagit avec la page web (par exemple, en cliquant, en tapant), déclenchant des écouteurs d'événements et une exécution supplémentaire de scripts.
Composants : DOM du navigateur, mécanismes de gestion des événements et moteur JavaScript.
Implémentez des jetons anti-CSRF dans les formulaires pour vous protéger contre les attaques Cross-Site Request Forgery. Assurez-vous que les gestionnaires d'événements JavaScript sont codés de manière sécurisée pour éviter l'exposition d'informations ou de fonctionnalités sensibles. Évitez d'utiliser du JavaScript inline dans les attributs HTML tels que onclick. Si votre site autorise les téléversements de fichiers, assurez-vous d'effectuer une analyse antimalware approfondie des fichiers téléversés. Appliquez des restrictions strictes de taille et de type pour empêcher le téléversement de fichiers potentiellement dangereux.
Sécurisez votre chaîne d'approvisionnement au maximum
Nous vous encourageons à entamer ce processus dès aujourd'hui. De nombreuses organisations ont subi des attaques, des amendes ou des atteintes à leur réputation en négligeant la sécurité de leur chaîne d'approvisionnement web. Cela découle souvent de problèmes de conformité liés au non-respect des normes de sécurisation des sites.
Les normes évoluent fréquemment, généralement en réponse à des attaques ou à des problèmes identifiés. Anticipez ces problèmes potentiels en faisant preuve de proactivité dès aujourd'hui. Utilisez la liste complète fournie ci-dessus pour sécuriser chaque partie de votre chaîne d'approvisionnement au plus haut niveau possible.
Envisagez également d'utiliser cside. Avec notre offre gratuite, vous pouvez surveiller et sécuriser les scripts tiers sur votre site, garantissant que cette partie de votre site web est entièrement sécurisée.






