Gelukkig nieuwjaar!
De Exchange bug 2022… was in 2000 iedereen voorbereid op het ergste vanwege de millenniumbug en stonden beheerders klaar om in te grijpen, zo verrast werden veel beheerders nu op 1 januari 2022. De eerste minuten van 2022 zorgden voor verbaasde blikken bij beheerders van on-premises Microsoft Exchangeservers. Het was amper 12 uur of ik ontving de eerste berichten van (ex)collega’s al in de chat. Geen nieuwsjaarwensen, maar weigerende mailservers: “Exchange verstuurt geen e-mail meer.”
Het probleem leek zich te beperken tot de mailflow tussen Exchange on-premises en Exchange Online (de zogenaamde hybrid-connector), in de loop van 1 januari bleken er meer issues te zijn met on-premises Exchange-omgevingen.
Postkantoor
Eerst een stukje achtergrond. E-mailsystemen werken met wachtrijen; je kunt dit het beste vergelijken met een sorteercentrum van “gewone” post. Een brief komt aan op het postkantoor (de mailserver), en wordt ter sortering in een bakje gelegd (de wachtrij). Voordat het bericht afgeleverd wordt moet deze misschien eerst nog door de controle (anti-spam/malware). Hoe groter de omgeving, hoe meer wachtrijen er zijn, soms zijn er wel tientallen tot honderden.
Wat gebeurt er nu als er onverhoopt iets mis is met het adres van de geadresseerde? Als het adres gewoon niet klopt wordt de e-mail teruggestuurd naar de verzender. Het bekende non-delivery-report. Als iemand de mail niet accepteert zal de mailserver 48 uur blijven proberen om het bericht alsnog te bezorgen. Eerst na vijf minuten, daarna na tien, enzovoort. Na 48 uur, tevergeefs proberen, zal hij aan de verzender laten weten dat de e-mail niet bezorgd kon worden.
Millenniumbug of de Exchange bug 2022?
Eén van de wachtrijen binnen Exchange wordt gebruikt voor de “anti-malware scanning”. Alle post die in en uit de omgeving gaat moet via deze scanner lopen. Deze scanner heeft zijn eigen wachtrij. Deze specifieke wachtrij accepteerde om 12:00 op 1 januari 2022 geen e-mail meer. Er werd een onduidelijke foutmelding weggeschreven in de logbestanden, en de e-mail kwam vast te zitten in de wachtrij. Al snel werd duidelijk dat de “anti-malware wachtrij” oorzaak van de storing was. Een “dirty quick fix” (workaround) bestond uit het tijdelijk uitschakelen van de “anti-malware scanning”.
Maar waarom ging het mis? Eigenlijk hadden we te maken met een vertraagde millenniumbug. De anti-malware software werkt met definitiebestanden, die meerdere keren per dag worden bijgewerkt. In deze bestanden staan de unieke handtekeningen van bekende malware. Omdat deze bestanden meerdere keren per dag worden bijgewerkt hebben deze een apart veld waarin de datum en tijd wordt aangegeven van de definitiebestanden.
Dit veld is binnen de Exchange anti-malware software aangegeven als een “integer”. Een integer is een definitie, die binnen programma’s gebruikt wordt, om een nummer aan te geven. De maximum waarde van een integer is 2.147.483.647; dat is één van de computerwetten. Microsoft “misbruikt” het integer-veld om een datum aan te geven. Een definitie van 19:00 uur 31 december 2021 wordt bijvoorbeeld aangegeven als 2112311900: oftewel 2.112.311.900. Op 1 januari 2022 werd de eerste definitie dus 2201010100. Een waarde die buiten de range van de “computerwet” valt!
De oplossing?
Op nieuwjaarsdag hebben wij op alle getroffen Exchangeservers de anti-malware software tijdelijk uitgeschakeld. Doordat wij ook werken met een hardware-appliance, die mailverkeer scant voordat deze de Exchangeservers bereikt, is de impact van het tijdelijk uitschakelen van anti-malware op de mailservers zelf vrij klein.
Ondertussen is Microsoft bezig met een permanente oplossing en heeft daarnaast een andere workaround gecreëerd: de definitiewaarde loopt nog even door in 2021! De laatste definitiebestanden zijn dus van 34 december in plaats van 3 januari.
Ondertussen is op onze systemen de antimalware weer ingeschakeld. Twijfel je of jouw mailservers wel goed beschermd zijn, of was dit de “druppel” en wil je gebruik gaan maken van Exchange Online? Neem dan contact met ons op!
Jaap de Koning, Techlead @ The Sourcing Company