F5 BIG-IP LTM - Security HTTP headers

Cela fait de nombreuses années que je n'ai pas écrit sur «Make your App safer with HTTP security policy» dans laquelle j'expliquais le fonctionnement de l'en-tête HSTS ainsi que d'autres en-têtes HTTP tels que HPKP ou CSP. Cependant, les en-têtes HSTS et CSP sont de plus en plus utilisés par les ingénieurs système pour protéger les services Web. Aujourd'hui, je voudrais parler de certains en-têtes HTTP, qui sont très importants pour sécuriser les sites Web, et en plus, je vais vous expliquer comment les configurer dans F5 BIG-IP.

Tout d'abord, je veux écrire sur l'en-tête HSTS. Je pense que c'est l'un des en-têtes HTTP qui protègent mieux les services Web car si votre serveur Web envoie cet en-tête au navigateur du client, toutes les prochaines requêtes seront sécurisées par le protocole HTTPS, même la première requête la prochaine fois. Configurer l'en-tête HSTS dans F5 BIG-IP est vraiment simple car il suffit d'activer une case à cocher dans le profil HTTP.
 
En-tête HSTS

Un autre en-tête HTTP intéressant, dont j'ai déjà parlé, est l'en-tête CSP ou Content Security Policy. Cet en-tête empêche les attaques XSS et par injection de données. L’objectif de la politique de sécurité est d’indiquer aux navigateurs quel est le contenu source fiable afin d’empêcher l’exécution de code par des scripts malveillants dans le navigateur de la victime. La configuration de l'en-tête CSP dans F5 BIG-IP est un peu plus difficile que l'en-tête HSTS. Cependant, vous verrez que ce n’est pas si difficile car vous pouvez le faire avec une simple iRule comme la suivante.
 
En-tête CSP

L'en-tête X-Content-Type-Options est un autre en-tête de réponse HTTP très intéressant car il s'agit d'un en-tête de sécurité conçu pour protéger les applications du serveur Web contre les attaques par reniflage de type MIME. Lorsque cet en-tête est défini sur « nosniff », il demande au navigateur de toujours utiliser le type MIME déclaré dans l'en-tête Content-Type plutôt que d'essayer de déterminer le type MIME en fonction du contenu du fichier. Cet en-tête de sécurité est configuré comme l'en-tête CSP dans F5 BIG-IP. Nous pouvons le configurer avec une iRule ou une politique LTM.
 
En-tête X-Content-Type-Options

Il existe un autre en-tête HTTP que j'aime vraiment inclure dans les services Web. Ce n’est pas un en-tête de sécurité mais c’est intéressant. L'en-tête Cache-Control est utilisé pour spécifier les politiques de mise en cache du navigateur dans les requêtes client et les réponses du serveur. Les politiques incluent la manière dont une ressource est mise en cache, l’endroit où elle est mise en cache et son âge maximum avant son expiration. Il existe de nombreuses directives pour configurer le contrôle du cache telles que Max-Age, No-Cache, No-Store, etc. A vous de choisir laquelle utiliser. Vous pouvez également configurer cet en-tête HTTP avec une iRule ou une politique LTM.
 
En-tête Cache-Control

Enfin, il faut également prendre en compte les chiffrements entre clients et serveurs car les services sécurisés ne concernent pas uniquement les en-têtes HTTP. Il est bien connu que nous devrions désactiver TLS 1.0 et TLS 1.1, mais je pense que nous devons activer uniquement les algorithmes d'échange de clés dotés de la fonctionnalité Forward Secrecy, car cette méthode cryptorographique garantit que les clés de session ne seront pas compromises même si les clés privées d'un échange particulier sont révélés par un attaquant. Ceci est réalisé en générant de nouvelles clés de session (éphémères) pour chaque transaction.
 
Forward Secrecy

Utilisez-vous ces recommandations de sécurité dans vos services Web ?

Commentaires