'Honderdduizenden Dovecot-mailservers kwetsbaar door foutief configbestand'

Een fout in het standaard configuratiebestand van de mail transfer agent Exim maakt het volgens een beveiligingsfirma mogelijk om een Dovecot-mailserver aan te vallen door slechts e-mails naar deze servers te sturen. Mogelijk honderdduizenden Dovecot-servers zouden kwetsbaar zijn.

De kwetsbaarheid in Exim, een opensource mail transfer agent, samen met Dovecot werd ontdekt door de firma RedTeam Pentesting. Volgens de beveiligingsfirma bevat het door de Dovecot-ontwikkelaars standaard meegeleverde Exim-configuratiebestand een uiterst riskante instelling die luistert naar de naam 'use_shell'. Deze instelling is standaard actief en maakt het volgens het beveiligingsbedrijf zeer eenvoudig om een mailserver op afstand aan te vallen. Het versturen van een mailtje zou het al mogelijk maken om commando's via een shell script op een kwetsbare server uit te voeren. Ook zou de aanvalsmethode zeer betrouwbaar werken.

Dovecot-ontwikkelaars hebben inmiddels de kwetsbaarheid erkend en het betreffende configuratiebestand in de beschikbare pakketten aangepast. Desondanks stelt de firma Immunity dat er vermoedelijk honderdduizenden Dovecot-mailservers kwetsbaar zijn omdat systeembeheerders hun Exim-configuratie veelal baseren op de meegeleverde voorbeeldbestanden. Zij dienen handmatig de 'use_shell'-optie uit te schakelen.

Door Dimitri Reijerman

Redacteur

05-05-2013 • 12:18

42

Reacties (42)

42
42
27
2
1
8
Wijzig sortering
Ik heb het zelf blijkbaar niet in mijn configuratie bestanden. Zowel in /etc/dovecot als /etc/exim4 gekeken.

Snel zoeken in alle bestanden? Gebruik de volgende opdrachtregel:
find /etc/dovecot -type f | xargs grep -rl 'use_shell' && find /etc/exim -type f | xargs grep -rl 'use_shell'
Is het misschien een instellig die je expliciet uit moet zetten (niet gedefinieerd is aan?) Dat kan ik zo niet uit het artikel halen.
Nee, use_shell is een exim configuratie optie die standaard false is. Als jet het niet in je exim configuratie kan vinden ben je safe. De standard dovecot configuratie voor exim bevat deze optie dus wel.
En toch denk ik dat het sowiso veiliger is om het expliciet uit te zetten, zodat je bij een fout van een programmeur (kan voor komen) altijd veilig bent.
Tenzij de programmeur de fout heeft gemaakt dat hij alleen checkt of use_shell geset is, en niet welke waarde :P

Dus iets als
if ( isSet(use_shell) )
ipv
if ( isSet(use_shell) && getValue(use_shell) )
find /etc/dovecot -type f | xargs grep -rl 'use_shell' && find /etc/exim -type f | xargs grep -rl 'use_shell'
of gewoon:

grep -rli "use_shell" /etc/dovecot/* /etc/exim/* ;)

[Reactie gewijzigd door tofus op 23 juli 2024 19:18]

Of gewoon:
grep -rli use_shell /etc/dovecot /etc/exim

-geen te escapen dingen in zoekterm en slechts 1 term (dus geen ")
-* als wildcard voor inhoud directory is overbodig en werkt zelf averechts indien er bestanden zijn die beginnen met een . of extreem veel bestanden aanwezig zijn.
Je hebt helemaal gelijk. Maar ik mis eigenlijk een opmerking over de '-i' optie; We weten immers al dat de term 'use_shell' is, zonder capitals... :P

[Reactie gewijzigd door tofus op 23 juli 2024 19:18]

Thx net ff gekeken hier heb ik hem niet draai met postfix :)
grep -n -R 'use_shell' /etc/dovecot /etc/exim
We werkt er nu nog met exim.. Postfix is toch de algemene standaard?
Mogelijk honderdduizenden Dovecot-servers
Nog genoeg mensen lijkt me.
Zullen we linux en Mac-os ook maar afschaffen, want het grootste gros van de pc`s draait op windows. 8)7

Wees blij dat er alternatieven zijn, waarvan sommige misschien wel de standaard van de toekomst worden. (Of dat hier zo is laten we dan maar in het midden)
Laten we dan windows afschaffen in dit internet tijdperk. De meeste internet servers draaien toch echt linux :P.

Maar er zijn er genoeg ja, ken aardig wat ISPs die exim gebruiken.

En standaard van de toekomst is hopelijk toch echt iets anders dan het met spam overspoelde SMTP. Hoeveel pleisters ze er ook op proberen te plakken het blijft hopeloos.
Debian (en Ubuntu?) installeert het by default.
Ubuntu heeft standaard postfix. Exim is wel beschikbaar, maar moet je bewust installeren.

Door postfix in een chroot jail te draaien (standaard op in elk geval Ubuntu) beperkt je de risico's.
Debian installeert by default helemaal geen MTA.
De default MTA in debian, als je er een installeert zonder direct iets bij naam te noemen, is Exim.
Exim wordt gebruikt in DirectAdmin.
Er draait DA 1.43.0 op mijn VPS, en ik kan niks terug vinden m.b.t. "use_shell" in een standaard DA configuratie.
Ik heb zojuist ook mijn DA servers nagelopen maar standaard lijkt het niet opgenomen te zjin in DA :)
Hier ook een aantal DA servers, allemaal niet aanwezig.
Mijn CentOS 6 VPS met DA 1.43 heeft dit ook niet.

Dus ga vanuit als je DA hebt dat je geen zorgen hoeft te maken om deze kwetsbaarheid :)
Sommige distro's hebben standaard Exim als MTA. Ongeveer 43% van alle mailservers draait Exim. Vooral cPanel en Mailman schijnen lekker te werken met Exim, en dat zal dan ook wel een reden zijn om Exim te gebruiken. Stel dat je een hosting partij hebt die shared hosting doet. Dan heb je met een groot klantenbestand al snel honderden als niet duizenden servers met Exim ;)
We werkt er nu nog met exim.. Postfix is toch de algemene standaard?
Nee? Exim is veel flexibeler dan postfix.

En als er een "algemene standaard" is, is 't sendmail.

[Reactie gewijzigd door CyBeR op 23 juli 2024 19:18]

"We werkt er nu nog met exim.. Postfix is toch de algemene standaard?"

Exim heeft enkele voordelen t.o.v. Postfix, met name m.b.t de flexibiliteit van de configuratie en de integratie met externe databases/LDAP's.

De 'algemene' standaard is overigens gewoon SMTP. Er zijn tal van (commerciele) MTA's die minstens net zo goed, zo niet beter presteren dan Postfix, met name op het gebied van per-domain queueing, virtual mtas en pattern-based/backoff--routing.

Maar voor 'standaard' email op een standaard omgeving 'Postfix does the job and does it well'.
Postfix is dan ook niet geschreven om de meest flexibele SMTP server te zijn - maar de meest veilige.

Postfix attempts to be fast, easy to administer, and secure. The outside has a definite Sendmail-ish flavor, but the inside is completely different.

En geschreven door een NL'er (die in de USA woont) als je van dat sentiment houd.

Gedateerde markt verdeling (2010): http://www.securityspace..../man.201007/mxsurvey.html
Postfix is dan ook niet geschreven om de meest flexibele SMTP server te zijn - maar de meest veilige.
Die scepter is overgenomen door OpenSMTPD, onderdeel van OpenBSD.org. Een veiliger alternatief voor je mailserver bestaat simpelweg niet.
Het lek wat wordt beschreven op de site van RedTeam is alleen van toepassing als je Dovecot als Local Delivery Agent van Exim gebruikt. Oftewel: als Exim Dovecot gebruikt om mail lokaal te bezorgen in een mailbox.

Volgens mij is dit niet zo'n veelgebruikte opzet, meestal laat je exim zelf de mail bezorgen in de lokale mailboxen en gebruik je Dovecot alleen als IMAP of POP server (dus om de mail in de mailbox te bekijken of op te halen).
Ik gebruik dovecot wel als LDA.
Exim ondersteund geen (manege)Sieve dovecot wel.

Voordeel is dat ik zo middels sieve eenvoudig (in te stellen in bijvb roundcube) per account filters/scriptjes kan maken voor delivery in bepaalde mappen, of bijvb imap flags als "seen" kan aanpassen.

Maar kennelijk was de wiki al een tijd aangepast, de transport/router config die ik daar een tijdje geleden vandaan heb gevist gebruikte al geen use_shell.
Storm in een glas water dus. In mijn configs komt het helemaal niet voor en ik gebruik Dovecot voor pop3, imap en ook voor Exim's authentication.

Volgens de Exim docs is het een optie voor transports, een onderdeel waarvoor gebruik van Dovecot helemaal niet nodig is.
En dan natuurlijk de vraag:
Hoe is deze instelling in het configbestand gekomen? Per ongeluk? Vandalisme? Omdat er ook handige functionaliteit in zit?
Het handige van open source, is dat in ieder geval na te gaan moet zijn wie het gedaan heeft. ;)
Wordt Dovecot ook niet onderwater gebruikt in de systemen van Synology. Moet daar ook nog een check gedaan worden?
Wie zet uberhaupt een mail server op met de standaard voorbeeld/documentatie config?

Als je overal "ja" op klikt bij andere dingen heb je ook kans op een "security" probleempje.
mensen zoals ik voor wie het allemaal nieuw is en stapvoets aan het ontdekken zijn.
Ik heb geen opleiding ICT gevolgd maar ben wel handig en ik kom heel ver met tutorial's en fora. En ook nu me server met wat websites van vrienden/kennisen(met eigen bedrijven) een jaar of 2 online is zit ik wekelijks nog in de cli dingen te doorzoeken en ontdekken.

Zo wist ik in het begin niet je via pop3 geen wel gelezen/niet gelezen sync functionaliteit hebt en dat had ik al binnen enkele dagen door. En nu leer ik weer wat emix en postfix zijn. (mijne draait op postfix maar dat wist ik al)

wat ik wil zeggen is dat niet iedereen alles weet en dat ook jij niet altijd heb geweten wat je vandaag weet
Juist omdat niet iedereen alles weet is het belangrijk dat instellingen standaard conservatief zijn. Ofwel een mailserver met standaard instellingen moet alleen ontvangen en deze opslaan in een mbox/maildir storage. That's it.

Wil je meer met je mailserver zoals je mail benaderen via imap/pop3 dan moet je documentatie gaan lezen.

Het nadeel daarvan is dan wel weer dan beginners vooral alleen commando's overtypen van handleidingen. QmailRocks is een populaire handleiding om Qmail te configurereren, alleen bleek na verloop van tijd dat beheeders niet de documentatie lezen, maar puur scannen op commando's en die dan uitvoeren zonder dat ze eigenlijk weten wat ze nu aan het veranderen zijn. En dat is niet handig, want als je meer installeert/activeert dan je nodig hebt, heb je ook een grotere kans dat je vatbaar bent voor een bug..

Als je overigens eenvoudig spam wil weren, zorg dan dat je mailserver alleen mail accepteert over SSL of TLS (enforce 'starttls' commando). De meeste spambots gaan hier (nog) niet goed mee om..
*lol* use_shell voor een mail server :) En dan nog default *rofl*

Ik kan me echt geen enkele reden bedenken, waarom je via een mailSERVER shell toegang wilt hebben.
Om 'm te beheren?
Wie beheert zijn server nou weer via e-mail?
Wat stevenh zegt!
Anoniem: 144833 6 mei 2013 07:45
Ben alleen benieuwd of dit ook voor DirectAdmin installaties geld... Vanavond even uitzoeken hoeveel servers hier last van hebben...
De Exim configuratie van DirectAdmin machines komt uit de DirectAdmin distributie zo te zien, ik zie die use_shell optie er ook niet in staan op de 6 DirectAdmin machines die ik beheer.
Bij DA staat het niet in de config file en dan is de default 'false'. De exim config van DA is zowieso wel doordacht en niet standaard.

Op dit item kan niet meer gereageerd worden.