'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 Linkedin

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 5 mei 2013 14:23]

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 5 mei 2013 16:07]

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 5 mei 2013 13:24]

"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.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee