Pourquoi macOS est-il livré avec Postfix préinstallé ?


Voulez-vous dire "Pourquoi est-ce Postfix, plutôt que quelque chose d'autre ?"?

Parce qu'il y a cette notion plutôt erronée, provenant de DJB (Daniel J. Bernstein), que casser un programme en beaucoup de parties le rendra magiquement plus sûr en partitionnant la surface d'attaque contre les attaquants, en séparant l'espace d'adresse en différents processus.


Tout cela ne fait vraiment qu'ajouter des parties mobiles à l'espace du problème, et au mieux me fait faire une attaque indirecte à travers une frontière de protocole.

Ce qui serait, en fait, quelque peu efficace, s'il n'était pas cassé à travers une frontière de protocole, et était plutôt cassé à travers une frontière de fichier de données de sorte qu'il n'y avait pas de contenu potentiellement actif impliqué.

Mais ce n'est pas ainsi que Wietse Venema, l'auteur de Postfix (qui a bu le Kool-Aid de DJB) a cassé les choses, et à cause de cela, toute augmentation de la sécurité est due à une réduction de la complexité du programme global, plutôt qu'à une réduction réelle de la surface d'attaque.

En conséquence, les chercheurs en sécurité ont découvert dans Postfix un certain nombre de vulnérabilités, allant de multiples vulnérabilités de déni de service, à une vulnérabilité de corruption de mémoire (la chose même que le partitionnement était censé empêcher - devinez que cela n'a pas fonctionné), à une escalade de privilèges locaux.

Si, d'autre part, vous vous demandez pourquoi toute sorte de services SMTP (y compris Postfix) sont installés par défaut du tout, c'est à des fins de prise en charge des clients de messagerie sur les plateformes Mac OS X/macOS, de sorte qu'il est possible du tout d'envoyer du courrier.

Bien qu'il soit occasionnellement utilisé pour la prise en charge des serveurs (en supposant que vous installiez le paquet de prise en charge des serveurs à partir de l'Apple Mac Store), il est principalement utilisé uniquement pour la journalisation, le rapport d'erreurs, le rapport de crash (si vous avez accordé la permission de renvoyer ces données à Apple) et la prise en charge de l'application Mail.

En pratique, cela signifie qu'il ne fonctionne pas sous forme de sévérité par défaut dans th OS, et donc que si ses composants sont installés, ils ne sont pas actifs.

Donc, par exemple, vous n'aurez pas de connexions entrantes sur le port SMTP (port 25) activées par défaut, et votre ordinateur ne sera pas utilisable par des tiers comme relais de messagerie.

Note : Au cas où vous seriez curieux de savoir pourquoi les idées de DJB sont erronées, plus en détail...

Le terrain d'essai initial de ses idées était un ensemble de logiciels appelés djbdns, qui signifiait " Daniel J. Bernstein's Domain Name System server".

Il tentait de résoudre un certain nombre de problèmes de sécurité dans les services DNS de l'ISC (l'Internet Software Consortium) nommés bind (Berkeley Internet Name Domain).

Malheureusement, il le faisait en laissant de côté les fonctionnalités problématiques du logiciel bind, et en ne fournissant aucun mécanisme de remplacement pour obtenir les mêmes résultats.

Par exemple... les transferts de zone, qui étaient intrinsèquement nécessaires pour faire fonctionner des services DNS primaires et secondaires, plutôt que simplement des serveurs primaires, avec des données potentiellement non synchronisées entre eux.

Donc le logiciel était relativement inutile pour tout sauf pour de très petits déploiements (jouets) de services DNS.

Lorsque ce genre de choses était évoqué, la réponse était toujours que ces choses étaient "laissées comme un exercice pour l'étudiant".

Qu'est-ce que je dis de ça ? Ah oui...

"Je peux le rendre aussi sûr que vous le voulez, tant qu'il n'a pas besoin de fonctionner réellement".

Utilisant ces mêmes principes, DJB a également imaginé son propre service SMTP, appelé "qmail", et il devrait être révélateur que Venema, un étudiant à l'époque, a estimé nécessaire d'implémenter Postfix pour contourner la fonctionnalité manquante dans qmail.

Ce n'est pas grave, car cela lui a permis de trouver un emploi chez IBM, puis (à partir de 2015), chez Google, donc les choses ont bien fonctionné pour lui.