Attaques via Sendmail    Enregistrer au format PDF

Sendmail est un agent de transfert de messages (ATM) qui est utilisé sur de nombreux systèmes UNIX. Sendmail est l’un des programmes en usage les plus décriés. Il est extensible, hautement configurable et bigrement complexe !


par Sphix


Principe des attaques

En fait, les malheurs de sendmail remontent à 1988 quand ses faiblesses ont été utilisées pour accéder à des milliers de systèmes. La plaisanterie classique à une époque était "étais-ce cela le bug de la semaine de sendmail ?" Sendmail et ses protections ont beaucoup progressé au cours des dernières années, mais c’est toujours un énorme programme comptant plus de 80 000 lignes de code. Dès lors, les chances d’y trouver de nouveaux points faibles en matière de sécurité restent élevées.

L’une des attaques sendmail les plus populaires utilisait la vulnérabilité de transmission de sendmail présente sendmail 4.1. Cette vulnérabilité permettait aux attaquants de transmettre directement des commandes à sendmail pour exécution. Toute commande venant après les données était exécutée par sendmail avec les droits d’accès de "bin" .

  1. helo
  2. mail from : |
  3. rcpt to : bounce
  4. data
  5. .
  6. mail from : bin
  7. rcpt to : | sed '1, /^$/d' |  sh
  8. data

Télécharger

En plus des attaques courantes de débordement de tampon et de validation d’entrée, il est également possible d’exploiter les fonctionnalités de sendmail pour obtenir un accès protégé. Une attaque courante consiste à créer ou à modifier le fichier /.forward via ftp ou nfs d’un utilisateur en supposant que les pirates détiennent des droits d’accès en écriture au répertoire personnel de la victime. Un fichier /.forward va typiquement retransmettre le courrier vers un autre compte ou exécuter un programme donné lorsque du courrier arrive. Bien évidemment, les pirates peuvent modifier le fichier /.forward dans un but malveillant.

Examinons un exemple de ce que des pirates peuvent ajouter à un fichier /.forward hébergé par le sustème de la victime.

  1. [gk@tsunami gk]$ cat > .forward
  2. | "cp /bin/sh /home/gk/evil_shell ; chmod 755 /home/gk/evil_shell"
  3. <crtl> D
  4. [gk@tsunami gk]$ cat .forward
  5. | "cp /bin/sh /home/gk/evil_shell ; chmod 755 /home/gk/evil_shell"

Télécharger

Ce fichier une fois créé, les pirates vont transférer le fichier malveillant /.forward vers le système cible, en faisant l’hypothèse que le répertoire personnel de l’utilisateur est accessible en écriture. Ils vont ensuite envoyer du courrier sur le compte de la victime :

  1. [gk@tsunami gk]$ echo hello chump | mail gk@systeme-cible.com

Le fichier evil_shell sera créé dans le répertoire personnel de l’utilisateur. Une fois exécuté, il donnera naissance à un interpréteur de commandes qui aura les même droits d’accès que l’identifiant de la victime.


Parades

La mailleure parade contre les attaques sendmail consiste à désactiver sendmail si vous ne vou en servez pas pour recevoir du courrier par un réseau. Si vous devez exécuter sendmail, assurez-vous que vous utilisez la version la plus récente dotée de tous les patches de sécurité disponibles (www.sendmail.org).

D’autres mesures à prendre comprennent la suppression des alias de décodage du fichier des alias, puisqu’il est apparu que ce point constituait une brèche en matière de sécurité. Examinez chaque aliaspointant vers un programme plutôt que vers un compte utilisateur et assurez vous que les autorisations des alias et autres fichiers associés ne permettent pas aux utilisateurs d’apporter des modifications.

Il existe d’autres utilitaires qui peuvent être utilisés pour améliorer la sécurité de sendmail. Smap et smapd (cf bas de page).

Smap est utilisé pour recevoir des messages par le réseau de manière sécurisée et les place en file d’attente dans un répertoire spécial. Smapd consulte régulièrement ce répertoire et envoie le courrier à l’utilisateur concerné en utilisant sendmail ou un autre programme. Cette opération interrompt bien la connexion entre sendmail et des utilisateurs non validés, puisque toutes les connexions de messagerie transitent par smap et non directement par sendmail.

Envisagez enfin d’utiliser un agent ATM plus sûr comme qmail par exemple.

Documentations publiées dans cette rubrique