Serveur d'impression

Sysadmins se démêle pour sécuriser les serveurs de messagerie 5M Exim – Serveur d’impression

Par Titanfall , le 23 octobre 2019 - 7 minutes de lecture

Une vulnérabilité vraiment simple à exploiter dans Exim nécessite des correctifs sur environ 5 millions de serveurs Internet. Si les administrateurs ne corrigent pas – et rapidement – ils peuvent s’attendre à ce que leurs boîtes soient rapidement possédées.

En son coeur, le bug échec d'échapper correctement à un caractère spécial dans l'indication de nom de serveur TLS (SNI). Une simple paire d'octets dans la SNI permet un accès root au serveur.

Les conséquences potentielles sont vraiment effrayantes. Dans SB Blogwatch d’aujourd’hui, nous \ 0.

Votre humble blogwatcher a organisé ces extraits pour votre divertissement. Sans parler des conséquences inattendues.


Échapper à l'échec

Quel est le craic? Catalin Cimpanu— “Des millions de serveurs Exim vulnérables à un exploit octroyant la racine”:

Tous les serveurs Exim exécutant les versions 4.92.1 et antérieures sont vulnérables. … La version 4.92.2 a été publiée vendredi… pour résoudre le problème.

Exim est un agent de transfert de courrier (MTA), un logiciel qui s'exécute en arrière-plan des serveurs de messagerie. … Exim est le MTA le plus répandu aujourd’hui, avec un [installed base] de plus de 57%. … Son succès peut être attribué au fait qu’il a été livré avec une multitude de distributions Linux, de Debian à Red Hat.

C'est la deuxième vulnérabilité majeure d'Exim corrigée cet été. En juin, l'équipe Exim a corrigé… une vulnérabilité connue sous le nom de «Retour du WIZard», qui permettait également aux attaquants d'exécuter du code malveillant avec les privilèges root.

Les experts en sécurité s’attendent à ce que cette dernière faille de sécurité d’Exim fasse également l’objet d’une exploitation active. … Fabriquer un exploit est relativement trivial.

«Relativement trivial»? Ouais, vous pourriez dire ça. Shaun Nichols explique: «Exim marque l'endroit»:

L'erreur de programmation peut être utilisée de manière abusive sur le réseau ou sur Internet si le serveur est public ou par des utilisateurs connectés pour réquisitionner complètement les installations vulnérables, voler ou altérer des données, installer des logiciels espions, etc.

[It’s] utilisé dans un grand nombre de systèmes Unix et Linux – nous parlons au moins de millions de serveurs publics – pour envoyer et recevoir des messages électroniques. … On nous a dit que la faille d'exécution du code à distance avait été introduite accidentellement dans le code lorsqu'un contributeur au projet avait tenté de corriger une vulnérabilité antérieure.

Oui, mais quel est le vuln? Les gnomes anonymes d’Exim enregistrent le problème – «CVE-2019-15846»:

La vulnérabilité est exploitable en envoyant un SNI se terminant par une séquence "backslash-null" lors de la prise de contact TLS initiale. L'exploit existe en tant que POC. … Si votre serveur Exim accepte les connexions TLS, il est vulnérable.

Atténuation: Ne pas offrir le TLS. (Cette atténuation n'est pas recommandée.)

Vous ne dites pas? L'équipe de conseil en sécurité Qualys évalue le bogue:

Tant que Exim prend en charge et accepte les connexions TLS, un attaquant peut envoyer un SNI et ainsi atteindre les fonctions problématiques string_unprinting () et string_interpret_escape ().

Est-il possible d'envoyer un sni écrit dans le fichier d'en-tête de spool et qui se termine par la séquence problématique de backslash-null-byte? La réponse est oui, à cause de ce que nous croyons être un autre bogue, dans string_printing (): le sni est écrit dans le fichier d’entête du spool via string_printing (tls_in.sni), ce qui échappe aux caractères avec une barre oblique inverse, mais ne pas échapper au caractère lui-même (barre oblique inverse), bien que ce soit absolument le cas.

Ce bogue est ce qui permet d’atteindre et de déclencher le bogue dans string_unprinting () et string_interpret_escape (), avec un sni qui se termine par une barre oblique inversée non échappée (suivie de l’octet nul final). [But] est-ce exploitable? La réponse est presque certainement oui (et, comme spool_read_header () est exécuté en tant que root, cela signifie root).

Attends quoi? nineteen999 compte les moyens suivants:

Pourquoi exim est-il exécuté en tant que root à ce stade? Au moins c'est la question dans mon esprit. Une fois connecté au port, setuid () ou seteuid () doit correspondre à un UID moins privilégié, sauf erreur de ma part. Certes, il sera toujours possible d’exécuter du code à distance en tant qu’utilisateur non root, mais au moins vous ne transférez pas les privilèges root d’un attaquant par défaut.

Le programme de livraison devrait être un processus séparé… avec peut-être une sorte de schéma de séparation des privilèges. … Peut-être que les employés d’Exim ne se sentent pas obligés de le restaurer, étant donné que certains MTA ont déjà des conceptions / implémentations plus sûres.

Je ne me souviens pas du dernier exploit de la racine distante découvert pour Postfix, ni même s’il en existait un.

Certaines distributions pourrait partager la faute, selon Sergiu Gatlan – "Critical Exim TLS Flaw":

Bien que TLS ne soit pas activé par défaut dans le fichier de configuration par défaut fourni par l’équipe d’Exim… certaines distributions Linux distribuent Exim avec ce paramètre activé. … Le moteur de recherche Shodan pour les appareils connectés à Internet estime à environ 5 250 000 le nombre de serveurs… visibles sur Internet et acceptant les connexions.

La seule question n'est pas si les pirates vont commencer à rechercher et à attaquer les serveurs Exim non corrigés, mais quand. Très probablement, une nouvelle série d'attaques commencera dès qu'un exploit sera disponible.

Et rurban partage le blâme autour de:

Les gens ne le choisissent généralement pas. C’est le service de messagerie habituel des fournisseurs d’hébergement, car il est si facile à configurer pour des milliers de domaines et d’utilisateurs. Pas seulement cPanel, presque tout le monde.

Mais tout va bien maintenant, non? userbinator a passé en revue les commits et n'aime pas ce qu'ils ont vu:

Ce code me rappelle FizzBuzz et l’énorme manque de compétences qu’il démontre, c’est-à-dire qu’un nombre étonnamment élevé de «programmeurs» ne parviennent pas à écrire les solutions correctes aux problèmes les plus simples. Peut-être que «détacher une ficelle» doit être une question d’interview avec autant d’attention que FizzBuzz, à la fois parce qu’il a une application pratique et peut montrer beaucoup de choses sur les compétences de quelqu'un.

L'analyse du texte n'est vraiment pas une chose rare à faire dans beaucoup d'applications.

Pendant ce temps, Boris Pixel—@PxlPhile—Sons légèrement sarcastique:

Mec, je suis content d’avoir dirigé cette ancienne instance de Windows IIS, donc ce n’est pas un problème.

Et enfin:

Méfiez-vous des conséquences imprévues


Vous avez lu SB Blogwatch par Richi Jennings. Richi sélectionne les meilleurs articles de blogs, les meilleurs forums et les sites Web les plus étranges… pour que vous n'ayez pas à le faire. Le courrier haineux peut être dirigé vers @RiCHi ou sbbw@richi.uk. Demandez à votre médecin avant de lire. Votre kilométrage peut varier. E & OE.

Source de l'image: Ervins Strauhmanis (cc: par)

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.