Simplification des en-têtes HTTP de sécurité avec edgeNEXUS Traffic Management : X-Content-Type-Options

flightpath http header in action

 

Un élément qui revient souvent dans les tests de pénétration de la sécurité que nous devons tous subir (malheureusement pour de bonnes raisons) est l’absence ou l’incohérence de l’en-tête HTTP X-Content-Type-Options dans les réponses du serveur web. Il peut s’agir d’un irritant, mais plus notre site et ses visiteurs sont sûrs, mieux c’est.

Quelle est l’utilité de cet en-tête ? C’est simple : Chrome et Internet Explorer disposent d’une fonction dite « MIME-Sniffing », activée par défaut, qui détecte le type de contenu trouvé dans la réponse d’un serveur web. Cette fonction est utilisée pour mieux afficher une page web, même si le serveur web se trompe ou si une page est mal écrite et a spécifié un type de contenu incorrect.

Par exemple, un site peut envoyer une réponse indiquant que le contenu inclus est du texte, via l’en-tête Content-Type et la valeur text/plain. Le navigateur détectera qu’il s’agit en fait d’un PDF et l’affichera correctement. Dans le cas contraire, il pourrait tenter de l’afficher sous forme de texte, ce qui donnerait une page déformée ou illisible. Pour certains développeurs de navigateurs, une jolie page vaut mieux que le respect des normes.

Cela ne vous semble pas trop grave ? Eh bien, tout logiciel que vous pourriez utiliser dans votre navigateur pour empêcher le téléchargement, l’affichage ou l’exécution de certains types de contenu peut potentiellement être contourné grâce à cette fonction. Il existe de nombreuses raisons de vouloir bloquer les exécutables, les fichiers zip, les fichiers Word, etc. Sous Windows, il est encore possible de « posséder » un PC avec une simple image GIF.

Tout logiciel que nous utilisons pour nous protéger contre de telles menaces en bloquant ce contenu ne peut qu’inspecter la valeur de l’en-tête Content-Type et agir de manière appropriée en fonction de cette valeur. Le fait que le navigateur fasse quelque chose de complètement différent de ce à quoi on pourrait s’attendre n’est pas utile et présente un risque.

L’intérêt de l’utilisation d’un équilibreur de charge est que nous n’avons à le faire qu « à un seul endroit pour le déployer sur tous nos serveurs. Nous n’avons pas besoin de faire appel à des développeurs ou à des reconfigurations d’Apache. Sur l » équilibreur de charge edgeNEXUS, il suffit d’importer un modèle de configuration jetPACK et d’assigner une règle de trafic flightPATH au(x) service(s) virtuel(s) que nous souhaitons protéger.

La règle n’ajoute l’en-tête que s’il n’existe pas, de sorte qu’elle fonctionnera même si nos serveurs web l’insèrent déjà ou ne l’insèrent que pour des pages spécifiques. Cette règle devrait faire partie de votre configuration standard de service virtuel – vous n’avez rien à perdre, quel que soit le site, même si, bien sûr, il est toujours recommandé de procéder à des tests. Vous pouvez télécharger le jetPACK sur le site Github d’edgeNEXUS ici.

Il s’agit de l’une des nombreuses règles flightPATH que nous avons développées et que vous pouvez déployer pour améliorer la sécurité de votre site et de ses utilisateurs. Pour en savoir plus sur les en-têtes HTTP liés à la sécurité, consultez ces articles :

 

L’intérêt de l’utilisation d’un équilibreur de charge est que nous n’avons à le faire qu’à un seul endroit pour le déployer sur tous nos serveurs. Nous n’avons pas besoin de faire appel à des développeurs ou de reconfigurer Apache.

About Donna Toomey