Red Hat a expliqué hier que trois failles apparentées ont été détectées dans la gestion par le noyau Linux des paquets SACK (accusé de réception sélectif TCP) avec une taille de MSS faible. L’ampleur de l’impact est censée se limiter au déni de service pour le moment. Aucune élévation de privilèges ou fuite d'informations n'est actuellement suspectée pour les trois vulnérabilités. L’entreprise a cité trois vulnérabilités CVE (Common Vulnerabilities and Exposures) à savoir CVE-2019-11477, CVE-2019-11478 et CVE-2019-11479. CVE-2019-11477 est considéré comme une gravité importante, alors que CVE-2019-11478 et CVE-2019-11479 sont considérés comme une gravité modérée.
Les deux premières vulnérabilités sont liées aux paquets d'accusés de réception sélectifs (SACK) combinés à la taille maximale de segment (MSS) et la troisième est uniquement liée à la taille maximale de segment (MSS). Mais de quoi parle-t-on exactement ? En premier lieu, l'acquittement ou l’accusé de réception sélectif TCP (SACK) est un mécanisme par lequel le destinataire des données peut informer l'expéditeur de tous les segments acceptés. Cela permet à l'expéditeur de retransmettre les segments du flux qui sont absents de son ensemble de « produits connus ». Lorsque TCP SACK est désactivé, un ensemble beaucoup plus important de retransmissions est nécessaire pour retransmettre un flux complet.
TCP est un protocole orienté connexion. Lorsque deux parties souhaitent communiquer via une connexion TCP, elles établissent une connexion en échangeant certaines informations telles que la demande d’initialisation (SYN) d’une connexion, le numéro de séquence initial, le numéro d’accusé de réception, la taille maximale de segment (MSS) à utiliser sur cette connexion, pour envoyer et traiter des accusés de réception sélectifs (SACK), etc. Ce processus d’établissement de connexion est connu sous le nom de négociation à trois. TCP envoie et reçoit les données utilisateur par une unité appelée Segment. Un segment TCP est constitué d'un en-tête TCP, des options et des données utilisateur.
En second, la taille maximale de segment (MSS) est un paramètre défini dans l'en-tête TCP d'un paquet qui spécifie la quantité totale de données contenues dans un segment TCP reconstitué. Comme les paquets peuvent devenir fragmentés lors de la transmission sur différentes routes, un hôte doit spécifier le MSS comme étant égal à la plus grande taille de charge utile de datagramme IP qu'un hôte peut gérer. De très grandes tailles de MSS peuvent signifier qu'un flux de paquets finit par être fragmenté lorsqu'il se dirige vers la destination, alors que des paquets plus petits peuvent garantir une fragmentation moindre, mais aboutissent à une surcharge non utilisée.
Les systèmes d'exploitation et les types de transport peuvent utiliser par défaut les tailles MSS spécifiées. Les attaquants disposant d'un accès privilégié peuvent créer des paquets bruts avec des options MSS spécialement conçues dans le paquet pour créer cette attaque. Chaque segment TCP a un numéro de séquence (SEQ) et un numéro d'accusé de réception (ACK). Ces numéros SEQ & ACK sont utilisés pour déterminer quels segments ont été reçus avec succès par le récepteur. Le numéro ACK indique le prochain segment attendu par le destinataire. Red Hat a fourni un exemple pour comprendre plus en profondeur cela.
Pris séparément, dans le cas de la vulnérabilité CVE-2019-11477, le noyau Linux est vulnérable à un dépassement d'entier dans la largeur de 16 bits de TCP_SKB_CB (skb) -> tcp_gso_segs. Un attaquant distant pourrait exploiter ceci afin de faire planter le système et créer un déni de service. S’agissant de CVE-2019-11478, le noyau Linux est vulnérable à une faille qui permet aux attaquants d’envoyer une séquence spécialement construite de SACK qui fragmentera la file d’attente de retransmission TCP. Un attaquant pourrait peut-être exploiter davantage la file d'attente fragmentée afin de provoquer une consultation de la liste chaînée pour les SACK suivants reçus pour cette même connexion TCP.
Cela pourrait entraîner un temps excessif de la part du processeur dans la tentative de reconstruction de la liste en créant un déni de service. En dernière position, CVE-2019-11479 rend le noyau Linux vulnérable à une faille qui permet aux attaquants d’envoyer des paquets spécialement conçus avec des valeurs MSS faibles pour provoquer une consommation excessive de ressources. Un attaquant peut forcer le noyau Linux à segmenter ses réponses en plusieurs segments TCP, chacun d'entre eux ne contenant que 8 octets de données. Cela augmente considérablement la bande passante requise pour fournir la même quantité de données. En outre, il consomme des ressources supplémentaires (puissance de traitement du processeur et de la carte réseau).
Cette attaque nécessite des efforts continus de la part de l'attaquant et les impacts prendront fin peu de temps après que l'attaquant ait cessé d'envoyer du trafic. Pendant que cette attaque est en cours, le système fonctionnera à capacité réduite, ce qui entraînera un déni de service pour certains utilisateurs. Un utilisateur distant peut déclencher ce problème en définissant la taille maximale de segment ( MSS ) d'une connexion TCP sur sa limite la plus basse (48 octets) et en envoyant une séquence de paquets SACK spécialement conçus. Le SMS le plus bas ne laisse que 8 octets de données par segment, ce qui augmente le nombre de segments TCP nécessaires pour envoyer toutes les données.
Pour détecter si votre système est vulnérable, vous devez télécharger le script de détection mis à disposition par l’entreprise et suivre les étapes indiquées. Red Hat a fait une longue liste des produits concernés et qui pourront être touchés par ces trois vulnérabilités. La liste est dressée comme suit :
Produits principalement concernés
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 5
- Red Hat Atomic Host
- Red Hat Enterprise MRG 2
- Red Hat OpenShift Container Platform 4 (RHEL CoreOS)
- Red Hat OpenShift Online
- Red Hat OpenShift Dedicated (and dependent services)
- OpenShift on Azure (ARO)
- Red Hat OpenStack Platform (images shipping kernel)
- Red Hat Virtualization (RHV-H)
Produits secondairement impactés (la plateforme sous-jacente doit être mise à jour)
- Red Hat Virtualization (RHV)
- Red Hat OpenStack Platform
- Red Hat OpenShift Container Platform 3
D’après ce que dit l’entreprise, bien que les vulnérabilités du noyau ne touchent pas directement les conteneurs Linux de Red Hat, leur sécurité repose sur l'intégrité de l'environnement du noyau hôte. Red Hat vous recommande d'utiliser les versions les plus récentes de vos images de conteneur. L'indice de santé du conteneur, qui fait partie du catalogue de conteneurs Red Hat, peut toujours être utilisé pour déterminer l'état de sécurité des conteneurs Red Hat. Pour protéger la confidentialité des conteneurs utilisés, vous devez vous assurer que l'hôte du conteneur (tel que Red Hat Enterprise Linux, CoreOS ou hôte Atomic) a été mis à jour en fonction de ces attaques.
Red Hat publiera un hôte Atomic mis à jour pour ce cas d'utilisation. Pour finir, l’entreprise recommande aux clients Red Hat exécutant des versions affectées de ces produits Red Hat de les mettre à jour dès que des errata seront disponibles. Les clients sont instamment invités à appliquer immédiatement les mises à jour disponibles et à activer les mesures d'atténuation appropriées. Elle informe également qu’un kpatch pour les clients exécutant des versions prises en charge de Red Hat Enterprise Linux 7 ou supérieure sera disponible. Vous devez donc ouvrir une demande d'assistance pour accéder au kpatch.
Source : Red Hat
Et vous ?
Qu'en pensez-vous ?
Voir aussi
Red Hat annonce la sortie de Red Hat Enterprise Linux 8 qui embarque des outils d'apprentissage automatique, d'analyse prédictive et d'IdO
IBM entame l'acquisition de Red Hat pour 33,4 milliards de dollars. Pour, contre, indifférent, quel est votre avis sur cette acquisition ?
Red Hat annonce la disponibilité de la version 7.2 de JBoss Enterprise Application Platform qui est certifiée Java EE 8