Politique de sécurité du contenu (CSP) expliquée

Publié: 2023-04-18

Avec l'évolution rapide des menaces de cybersécurité, s'appuyer sur une seule couche de défense n'est plus suffisant pour protéger votre présence en ligne. Il est donc impératif pour les propriétaires de sites Web d'avoir une approche de sécurité à plusieurs niveaux, qui est mieux représentée par le concept de défense en profondeur.

Dans les sites Web et les applications Web, la défense en profondeur peut être mise en œuvre à l'aide d'en-têtes de réponse de sécurité HTTP, spécialement conçus pour appliquer des contrôles de sécurité supplémentaires côté client. Les en-têtes de réponse HTTP constituent une deuxième ligne de défense importante contre les cyberattaques ciblant les applications Web.

En tant que l'un des principaux en-têtes de réponse de sécurité HTTP, la politique de sécurité du contenu (CSP) peut protéger efficacement votre site Web et ses visiteurs contre les conséquences dévastatrices des scripts intersites (XSS) et des attaques par injection de données.

Dans ce guide, vous apprendrez pourquoi la politique de sécurité du contenu est un en-tête de sécurité HTTP clé et comment mettre en œuvre une défense en profondeur sur votre site pour atténuer avec succès un large éventail de cyberattaques sophistiquées ciblant WordPress.

politique de sécurité du contenu

Que sont les en-têtes de réponse HTTP ?

Les en-têtes de réponse HTTP sont un ensemble de contrôles mis en œuvre dans les sites Web et les applications Web qui définissent la façon dont le navigateur interagit avec le contenu demandé. La mise en œuvre d'en-têtes de réponse HTTP peut aider les propriétaires de sites Web à améliorer considérablement l'expérience utilisateur, ainsi qu'à améliorer les fonctionnalités, les performances et la sécurité de leurs sites Web.

Comme de petites informations sont envoyées avec le contenu demandé par les visiteurs du site Web, les en-têtes de réponse HTTP modifient la façon dont les navigateurs interprètent et traitent la réponse reçue du serveur Web. Et bien que le contenu et les fonctionnalités du site Web restent inchangés, la mise en œuvre d'en-têtes de réponse HTTP peut modifier la façon dont les utilisateurs le perçoivent.

En-têtes de réponse de sécurité HTTP comme deuxième couche de défense contre les menaces de sécurité

L'un des domaines clés dans lesquels les en-têtes de réponse HTTP, tels que la politique de sécurité du contenu, sont utilisés est la sécurité du site Web. La puissante fonctionnalité fournie par les en-têtes de réponse HTTP en fait une deuxième ligne de défense importante contre de nombreuses cyberattaques ciblant des applications Web dynamiques telles que WordPress.

La première ligne de défense contre les cyberattaques consiste en un certain nombre de mesures de sécurité basées sur le code et côté serveur qui réduisent la surface d'attaque et éliminent les vulnérabilités au niveau des applications. Cela inclut l'utilisation de pratiques de codage sécurisées, l'établissement de politiques de contrôle d'accès solides et la mise en œuvre d'un pare-feu d'application Web pour inspecter les demandes entrantes et filtrer le trafic malveillant.

Et bien qu'il soit absolument essentiel d'avoir une première ligne de défense solide, s'appuyer sur une seule couche de sécurité peut toujours rendre votre site Web vulnérable à des attaques de plus en plus sophistiquées. Un seul contrôle de sécurité peut être facilement contourné, en particulier si un attaquant est capable d'identifier et d'exploiter une vulnérabilité non corrigée.

La politique de sécurité du contenu et d'autres en-têtes de réponse de sécurité fournissent une couche de protection supplémentaire en réduisant les dommages causés par les attaques malveillantes. Si un pirate informatique malveillant est capable d'identifier avec succès une vulnérabilité sur votre site Web, une deuxième ligne de défense solide rendra son exploitation beaucoup plus difficile.

Qu'est-ce que la politique de sécurité du contenu ?

La politique de sécurité du contenu (CSP) est un mécanisme de sécurité utilisé pour définir une liste de sources fiables pour le contenu qu'un site Web ou une page Web spécifique est autorisé à charger, ainsi que le protocole qui sera utilisé pour cela. Cela peut inclure des scripts, des feuilles de style, des images et d'autres types de contenu pouvant être intégrés dans une page Web.

La politique de sécurité du contenu est une puissante défense en profondeur du contrôle de sécurité qui aide à bloquer les demandes non autorisées de contenu situé en dehors du site Web actuel. En plus de cela, CSP empêche avec succès l'exécution de scripts en ligne et limite l'exécution de code dynamique non sécurisé.

En tant qu'en-tête de réponse de sécurité HTTP, CSP transmet les instructions configurées par le propriétaire du site Web au navigateur du visiteur. Le navigateur doit alors suivre les instructions et bloquer la diffusion de contenu non autorisé par les règles de la politique de sécurité du contenu. Ainsi, le navigateur verra qu'un certain contenu a été référencé par une page web mais refusera de le charger.

Pourquoi la politique de sécurité du contenu est-elle si importante ?

En tant que deuxième ligne de défense, la politique de sécurité du contenu n'empêche pas l'attaquant de compromettre un site Web dans la plupart des cas. Néanmoins, cela aidera à atténuer les conséquences dévastatrices de l'infection par le logiciel malveillant, en bloquant les tentatives du pirate de l'exploiter.

Même si des logiciels malveillants sont injectés dans votre site Web dans le but de voler des informations sensibles ou d'effectuer d'autres activités malveillantes, une politique CSP robuste vous protégera, vous et vos clients. L'acteur malveillant ne pourra tout simplement pas exploiter la confiance de vos clients dans votre site Web, car le navigateur empêchera tout code malveillant d'être exécuté en premier lieu.

La possibilité d'empêcher les pirates d'exploiter votre site Web pendant que vous en reprenez le contrôle total et d'effectuer un nettoyage des logiciels malveillants après qu'il a été compromis est ce qui fait de la mise en œuvre de la politique de sécurité du contenu un outil puissant pour sécuriser les sites Web et les applications Web modernes.

De quoi le CSP protège-t-il ?

La politique de sécurité du contenu protège un site Web et ses visiteurs contre une gamme de cyberattaques facilitées par des infections de logiciels malveillants, ainsi que des tentatives d'intrusion reposant sur des scripts malveillants hébergés sur les ressources contrôlées par l'attaquant. Cela inclut les scripts intersites (XSS), les attaques par inclusion de fichiers et le détournement de clics comme les trois principaux vecteurs d'attaque atténués par la politique de sécurité du contenu.

Script intersite (XSS)

Le cross-site scripting (XSS) est une attaque par injection impliquant l'insertion de code malveillant dans une page Web. Le code sera ensuite exécuté par le navigateur lors du chargement de la page Web, permettant à l'attaquant de voler des informations sensibles, de détourner des sessions utilisateur ou de distribuer des logiciels malveillants.

Pour mener des attaques de scripts intersites, les pirates peuvent injecter des logiciels malveillants sous la forme d'un script en ligne, qui est intégré au code HTML, ou en référençant un script externe, généralement hébergé sur un site Web contrôlé par l'attaquant. Pendant le processus de rendu du contenu, le code malveillant sera chargé dans le navigateur de l'utilisateur et exécuté à son insu ou sans son consentement.

Un bon exemple d'attaques de scripts intersites affectant les propriétaires de sites WordPress est l'injection de logiciels malveillants d'écrémage de cartes dans le paiement WooCommerce, qui voleront les informations de paiement de l'acheteur. Les écumeurs de cartes et autres types de renifleurs JavaScript utilisés pour mener des attaques de script intersite ressembleront généralement à ceci dans le code source d'une page Web :

 <script type="text/javascript" src="https://hackerswebsite/evil.js"></script>

Dans le cas d'un script en ligne, vous verrez du code malveillant intégré dans les balises de script ou même déguisé en feuille de style en utilisant les balises de style.

L'atténuation des scripts intersites est l'objectif principal de la mise en œuvre de la politique de sécurité du contenu. En empêchant l'exécution de scripts en ligne, du Javascript non sécurisé injecté à l'aide de la fonction eval et en bloquant les scripts chargés à partir de sources non fiables, la politique de sécurité du contenu (CSP) atténue efficacement le risque d'exécution de code arbitraire sur un site Web.

Attaques par inclusion de fichiers

Les attaques par inclusion de fichiers sont un autre type d'attaque par injection que la politique de sécurité du contenu peut atténuer. En tant que technique d'intrusion, les attaques par inclusion de fichiers à distance permettent au pirate d'exploiter une mauvaise validation des entrées dans différentes zones du site Web pour exécuter un code malveillant hébergé sur une ressource externe.

Les attaques par inclusion de fichiers à distance exploitent souvent des vulnérabilités non corrigées dans les plugins et les thèmes WordPress dans le but de pénétrer dans un site Web en installant une porte dérobée Web Shell. Semblable à l'atténuation des scripts intersites, la politique de sécurité du contenu empêchera efficacement tous les scripts externes suspects d'être injectés dans le site Web, rendant ainsi presque impossible pour l'attaquant d'exploiter les vulnérabilités d'inclusion de fichiers à distance (RFI).

Clicjacking

En plus de permettre aux propriétaires de sites Web de définir une liste de ressources fiables à partir desquelles charger du contenu, la politique de sécurité du contenu peut aider à limiter la liste des sites Web autorisés à intégrer du contenu du site Web dans des cadres. Cela permet d'atténuer les attaques de réparation de l'interface utilisateur (UI) telles que le détournement de clic, dont vos clients peuvent être victimes en ouvrant des liens suspects qui leur sont envoyés lors d'une attaque de harponnage.

La directive frame-ancestors de la politique de sécurité du contenu a remplacé avec succès l'en-tête X-Frame-Options , qui est maintenant obsolète par la plupart des navigateurs modernes. Cette directive et d'autres directives CSP sont absolument essentielles dans la sécurité de WordPress.

Directives sur la politique de sécurité du contenu

La politique de sécurité du contenu vous aide à spécifier un ensemble de règles, appelées directives, pour contrôler les sources de contenu que votre site Web peut charger. Les directives de la politique de sécurité du contenu sont une liste d'instructions incluses dans l'en-tête HTTP d'une page Web demandée qui définissent les types de contenu qu'un navigateur est autorisé à charger sur cette page, ainsi que la liste des sources fiables à partir desquelles il peut être chargé.

Parmi les différentes directives de politique de sécurité du contenu disponibles, les règles ci-dessous sont les plus couramment appliquées pour sécuriser les sites Web contre les scripts intersites (XSS), le détournement de clics et les attaques par injection de données. Toutes les directives CSP suivantes, à l'exception de frame-ancestors , form-action et upgrade-insecure-requests , sont des directives d'extraction qui spécifient la liste des ressources à partir desquelles charger le contenu. Frame-ancestors et form-action sont des directives de navigation qui définissent comment d'autres ressources peuvent utiliser le contenu du site Web pour lequel la politique de sécurité du contenu est configurée.

  • default-src définit la politique de chargement de tous les types de ressources que le navigateur utilisera par défaut si aucune règle supplémentaire n'est spécifiée pour un certain type de contenu.
  • script-src spécifie les sources fiables des fichiers JavaScript pouvant être chargés à partir du site Web.
  • style-src définit la liste des sources valides de feuilles de style (CSS).
  • img-src liste blanche les ressources à partir desquelles les images peuvent être chargées.
  • media-src spécifie les sources fiables des fichiers audio et vidéo intégrés dans les éléments HTML <audio> et <video>
  • connect-src permet de contrôler les connexions XMLHttpRequest , EventSource et WebSocket .
  • child-src définit les sources de contenu pouvant être incluses dans une page Web via des cadres.
  • frame-ancestors est une directive de navigation qui permet d'atténuer les attaques de détournement de clic en spécifiant la liste des ressources autorisées à intégrer le contenu d'un site Web dans des cadres.
  • form-action restreint les ressources auxquelles les formulaires Web peuvent soumettre des informations, empêchant l'exfiltration de données vers des ressources externes contrôlées par l'attaquant.
  • upgrade-insecure-requests demande au navigateur de mettre à niveau toutes les requêtes non sécurisées vers HTTPS , garantissant des connexions sécurisées.

Selon le type de site Web et les fonctionnalités spécifiques qu'il fournit, les propriétaires de sites Web peuvent avoir besoin de configurer plusieurs directives pour contrôler toutes les sources de contenu récupérées en externe.

La norme de l'industrie pour assurer une protection suffisante contre les scripts croisés et les attaques par injection en utilisant la politique de sécurité du contenu comme deuxième ligne de défense consiste à limiter les sources valides de contenu externe au site Web actuel uniquement via la directive default-src . Des directives plus ciblées peuvent ensuite être utilisées pour mettre en liste blanche des ressources pour des types de contenu particuliers, mais le refus de toutes les autres ressources est l'approche recommandée.

Configuration des directives de politique de sécurité du contenu

Chaque directive de politique de sécurité du contenu accepte une liste de valeurs représentées par une URL (Uniform Resource Locator), qui doit inclure l'adresse Web valide précédée d'un protocole, d'un nom de domaine, d'un caractère générique ou de valeurs spécifiques telles que 'self' ou 'none' . 'none' fourni par l'en-tête de réponse HTTP.

Voici quelques exemples de valeurs pouvant être attribuées aux directives de politique de sécurité du contenu :

Valeur directive Exemple Définition
* media-src* Caractère générique, utilisé pour autoriser tout chargement de contenu à partir de toutes les ressources.
'self' default-src 'self'
frame-ancestors 'self';
Liste blanche le site Web actuel comme seule source valide de contenu spécifique. Définit la politique de sécurité stricte de la même origine, la politique de sécurité du contenu par défaut recommandée.

Utilisé avec la directive frame-ancestors, interdit le cadrage de contenu sur des ressources autres que le site Web lui-même.
'none' media-src 'none' Interdit le chargement de ressources à partir de n'importe quelle source, y compris le même site Web.
domain.com
*.domain.com
img-sr c *.domain.com Permet de charger du contenu à partir de n'importe quel sous-domaine sous domaine.com.
https://domain.com default-src 'https://domain.com' Autorise la récupération de contenu uniquement via HTTPS à partir du nom de domaine spécifié.

Par défaut, quelles que soient les règles spécifiées, la politique de sécurité du contenu bloque l'exécution des scripts en ligne et empêche les pages Web d'exécuter des fonctions de conversion de texte en JavaScript telles que eval, couramment utilisées par les pirates malveillants. L'ajout des valeurs 'unsafe-inline' et 'unsafe-eval' à la directive script-src Content Security Policy peut aider les propriétaires de sites Web à contourner les restrictions, mais cela peut exposer le site Web à des risques de sécurité importants et saper les protections imposées par d'autres directives. .

La configuration d'en-tête de la politique de sécurité du contenu suivante empêche efficacement le site Web de charger du contenu à partir de ressources externes et interdit l'exécution de scripts en ligne et de JavaScript non sécurisé :

Content-Security-Policy "default-src 'self' https://mywebsite.com; frame-ancestors 'self'"

Étant donné la valeur 'self' , la directive frame-ancestors atténue les attaques de détournement de clic en bloquant le cadrage du contenu.

Politique de sécurité du contenu et réseaux de diffusion de contenu (CDN)

Comme la plupart des réseaux de diffusion de contenu, tels que Cloudflare, sont entièrement compatibles avec la politique de sécurité du contenu et ne modifient pas les en-têtes CPS du serveur d'origine. Vous n'avez pas besoin de mettre en liste blanche des ressources supplémentaires dans les règles de sécurité que vous configurez.

Mise en œuvre de la politique de sécurité du contenu pour WordPress

WordPress propose divers plugins pour ajouter des en-têtes de réponse HTTP, ce qui peut être une bonne option pour les utilisateurs non techniques. Bien que cela puisse être une option pratique, la configuration d'en-têtes de réponse de sécurité tels que la politique de sécurité du contenu pour votre site Web WordPress est un processus simple qui ne nécessite l'installation d'aucun logiciel tiers.

Le module mod_headers Apache et le module ngx_http_headers_module Nginx vous permettent de configurer les en-têtes de réponse HTTP pour votre site Web. Si vous utilisez Nginx, vous pouvez inclure la directive add_header dans le bloc {} du serveur de votre site Web pour configurer les en-têtes de réponse HTTP.

De même, si vous utilisez Apache comme serveur Web, vous pouvez utiliser les instructions « Header set » et « Header append » pour configurer les politiques de sécurité dans le fichier .htaccess local de votre site Web situé à la racine du document. De cette façon, la configuration spécifiée dans le fichier .htaccess du répertoire racine de votre site Web est appliquée à toutes les pages Web du site.

Il est important de noter qu'en utilisant Apache, vous pouvez configurer les en-têtes de réponse HTTP à la fois localement - dans un fichier .htaccess - et globalement pour tous les sites Web sur le serveur. Il est possible que votre fournisseur d'hébergement configure globalement certains en-têtes de réponse, en particulier si vous utilisez un plan d'hébergement partagé. L'utilisation de la méthode "Header set" pour configurer la politique de sécurité du contenu écrasera complètement les règles globales existantes tandis que l'utilisation de "Header append" fusionnera votre nouvelle politique sur un en-tête de réponse existant au lieu de remplacer l'ensemble de la configuration.

Vous pouvez ajouter la configuration de la politique de sécurité du contenu ci-dessous pour appliquer des contrôles de sécurité stricts sur votre site Web WordPress

Pour Apache :

 Header set Content-Security-Policy "default-src 'self' https://mywebsite.com; frame-ancestors 'self';"

Pour Nginx :

 add_header Content-Security-Policy "default-src 'self' https://mywebsite.com; frame-ancestors 'self';"

L'élaboration d'une configuration de politique de sécurité du contenu qui répondra aux besoins de sécurité de votre site Web peut nécessiter des tests, ainsi qu'une compréhension approfondie des fonctionnalités du site Web. De plus, la mise en œuvre de nouveaux protocoles de sécurité sur votre site WordPress peut potentiellement entraîner une perte de fonctionnalité, il est donc important d'examiner attentivement l'impact de tout changement. Vous pouvez contacter votre fournisseur d'hébergement ou contacter votre développeur pour vous assurer que les en-têtes de sécurité sont correctement configurés et n'entraîneront aucune conséquence négative.

Implémenter la défense en profondeur avec iThemes Security Pro

Dans le paysage des menaces d'aujourd'hui, l'adoption d'une stratégie de défense en profondeur est essentielle. En ce qui concerne les applications Web dynamiques modernes telles que WordPress, l'en-tête Content Security Policy est au cœur de la défense en profondeur, fournissant une couche de protection critique contre les scripts intersites (XSS), les attaques par inclusion de fichiers, le détournement de clics et d'autres attaques Web.

La mise en œuvre d'une solution complète de défense en profondeur a toujours été un défi. Mais avec iThemes Security Pro, un plugin de sécurité robuste et fiable, vous pouvez protéger votre site Web WordPress. Avec des fonctionnalités telles que la surveillance de l'intégrité des fichiers, l'analyse des vulnérabilités, les mises à jour logicielles automatiques et l'authentification sans mot de passe, vous pouvez être assuré que toutes les parties critiques de votre site Web WordPress sont protégées contre les menaces de sécurité en constante évolution.