Chrome corrige 24 trous de sécurité, active le système de sécurité "Sanitizer"

Nœud source: 1646201

le dernier navigateur Chrome de Google, Version 105, est sorti, bien que le numéro de version complet soit fâcheusement différent selon que vous êtes sur Windows, Mac ou Linux.

Sur les systèmes de type Unix (Mac et Linux), vous souhaitez 105.0.5195.52, mais sous Windows, vous recherchez 105.0.5195.54.

Selon Google, cette nouvelle version comprend 24 correctifs de sécurité, bien qu'aucun d'entre eux ne soit signalé comme "à l'état sauvage", ce qui signifie qu'il n'y a pas eu de correctifs de jour zéro cette fois.

Néanmoins, il existe une vulnérabilité appelée Critical, et huit autres classés Haute.

Parmi les failles qui ont été corrigées, un peu plus de la moitié d'entre elles sont dues à une mauvaise gestion de la mémoire, dont neuf répertoriées comme utilisation-après-libre bugs, et quatre comme dépassements de tampon de tas.

Types de bogues de mémoire expliqués

A utilisation-après-libre est exactement ce qu'il dit : vous restituez de la mémoire pour la libérer pour une autre partie du programme, mais continuez à l'utiliser quand même, ce qui pourrait interférer avec le bon fonctionnement de votre application.

Imaginez, par exemple, que la partie du programme qui pense avoir maintenant un accès exclusif au bloc de mémoire incriminé reçoit une entrée non fiable et vérifie soigneusement que les nouvelles données peuvent être utilisées en toute sécurité…

… mais ensuite, juste avant qu'il ne commence à utiliser cette entrée validée, votre code bogué "use-after-free" interfère et injecte des données obsolètes et non sécurisées dans la même partie de la mémoire.

Soudain, le code sans bogue ailleurs dans le programme se comporte comme s'il était lui-même bogué, grâce à la faille de votre code qui vient d'invalider ce qui était en mémoire.

Les attaquants qui peuvent trouver un moyen de manipuler le moment de l'intervention inattendue de votre code peuvent non seulement planter le programme à volonté, mais aussi lui arracher le contrôle, provoquant ainsi ce que l'on appelle exécution de code à distance.

Et un débordement de la mémoire tampon du tas fait référence à un bogue dans lequel vous écrivez plus de données en mémoire que ne peut en contenir l'espace qui vous a été initialement alloué. (Heap est le terme de jargon pour la collection de blocs de mémoire qui sont actuellement gérés par le système.)

Si une autre partie du programme a un bloc de mémoire qui se trouve juste à côté ou à côté du vôtre dans le tas, alors les données superflues que vous venez d'écrire ne déborderont pas sans danger dans l'espace inutilisé.

Au lieu de cela, cela corrompra les données qui sont activement utilisées ailleurs, ce qui a des conséquences similaires à ce que nous venons de décrire pour un bogue d'utilisation après libération.

Le système « Sanitizer »

Heureusement, en plus de corriger des défauts qui n'étaient pas censés exister du tout, Google a annoncé l'arrivée d'une nouvelle fonctionnalité qui ajoute une protection contre une classe de failles de navigateur appelées script inter-site (XSS).

Les bogues XSS sont causés par le navigateur insérant des données non fiables, par exemple à partir d'un formulaire Web soumis par un utilisateur distant, directement dans la page Web actuelle, sans vérifier (et supprimer) le contenu à risque au préalable.

Imaginez, par exemple, que vous ayez une page Web qui propose de me montrer à quoi ressemble une chaîne de texte de mon choix dans votre nouvelle police funky.

Si je tape l'exemple de texte Cwm fjord bank glyphs vext quiz (un mélange artificiel mais vaguement significatif d'anglais et de gallois qui contient les 26 lettres de l'alphabet en seulement 26 lettres, au cas où vous vous poseriez la question), alors vous pouvez mettre ce texte exact dans la page Web que vous créez en toute sécurité.

En JavaScript, par exemple, vous pourriez réécrire le corps de la page Web comme ceci, en insérant le texte que j'ai fourni sans aucune modification :

document.body.innerHTML = " Cwm fjord bank glyphs vext quiz"

Mais si je trichais et vous demandais "d'afficher" la chaîne de texte Cwm fjord<script>alert(42)</script> au lieu de cela, il serait imprudent de votre part de faire cela…

document.body.innerHTML = " Fjord du MCG alert(42) "

… parce que vous me permettriez d'injecter du code JavaScript non fiable de my choisir directement dans Un flux efficace peut augmenter page Web, où mon code pourrait lire vos cookies et accéder à des données qui seraient autrement interdites.

Alors, pour faire ce qu'on appelle désinfecter tes entrées plus facile, Chrome a maintenant officiellement activé la prise en charge d'une nouvelle fonction de navigateur appelée setHTML().

Cela peut être utilisé pour pousser le nouveau contenu HTML via une fonctionnalité appelée le Sanitizer d'abord, de sorte que si vous utilisez ce code à la place…

document.body.setHTML(" Fjord du MCG alert(42) ")

… Ensuite, Chrome analysera d'abord la nouvelle chaîne HTML proposée pour détecter les problèmes de sécurité et supprimera automatiquement tout texte susceptible de présenter un risque.

Vous pouvez voir cela en action via le Outils de développement en exécutant ce qui précède setHTML() code à la Console invite, puis en récupérant le code HTML réel qui a été injecté dans le document.body variable, comme nous l'avons fait ici :

Notez comment la balise de script en surbrillance a été "désinfectée" du code HTML finalement inséré dans la page.

Même si nous mettons explicitement un <script> balise dans l'entrée que nous avons transmise au setHTML() fonction, le code du script a été automatiquement purgé de la sortie qui a été créée.

Si vous avez vraiment besoin d'ajouter du texte potentiellement dangereux dans un élément HTML, vous pouvez ajouter un deuxième argument au setHTML() fonction qui spécifie différents types de contenu à risque à bloquer ou à autoriser.

Par défaut, si ce deuxième argument est omis comme ci-dessus, alors le Sanitizer fonctionne à son niveau de sécurité maximum et purge automatiquement tout le contenu dangereux dont il a connaissance.

Que faire?

  • Si vous êtes un utilisateur de Chrome. Vérifiez que vous êtes à jour en cliquant Trois points > d’aide > À propos de Google Chrome, ou en accédant à l'URL spéciale chrome://settings/help.
  • Si vous êtes un programmeur Web. Découvrez le nouveau Sanitizer ainsi que le setHTML() fonctionnalité en lisant les conseils de Google et par MDN Web Docs.

Au fait, si vous êtes sur Firefox, Sanitizer est disponible, mais n'est pas encore activé par défaut. Vous pouvez l'activer pour en savoir plus en accédant à about:config et basculer le dom.security.sanitizer.enabled Option de true.


Horodatage:

Plus de Sécurité nue