Exchange Canary

Grubenarbeiter und Winzer haben gerne singfreudige Kanarienvögel in geschlossene Räume mitgenommen. Wenn diese verstummten, drohte eine CO-Vergiftung. Der Begriff "Canary" gibt es aber auch bei Exchange und hat eine ähnliche Funktion.

Warum?

Zur Bereitstellung von Exchange gehört, dass Clients darauf zugreifen. Wie aber jeder Server im Internet sind DoS-Attacken nicht ungewöhnlich und der Server sollte möglichst wenig Zeit dafür aufwenden. Er muss also ganz schnell entscheiden, ob die Anfrage es überhaupt wert ist, bearbeitet zu werden. Selbst anonyme Anfragen sind nicht per se unwichtig, denn der erste Zugriff eines Clients ist immer anonym und der Server lehnt zwar ab aber sendet doch genug Informationen mit, damit der Client sich weiter anmelden kann. Dann gibt es noch "Replay"-Attacken und letztlich versucht Microsoft sich früh davor zu schützen.

Daher nutzt eine Exchange Installation einen individuellen "Key" der nach erfolgreicher Anmeldung des Clients auch diesem mitgeteilt wird. Der Client speichert den Wert auch als Cookie und sendet ihn mit jedem Request wieder an den Server. Der Exchange Server prüft bei den angeblich authentifizierten Requests auch diesen Wert. Stimmt er nicht, kann Exchange das Paket sehr schnell verwerfen. Die Anfrage muss ja "gefälscht" sein

Das macht Exchange für OWA; ECP, EWS.

Schema: msExchCanaryData

Durch das Exchange 2013 Schema-Updates wurden im Active Directory erstmals die neuen Felder angelegt und in folgenden LDF-Dateien finden Sie die Definitionen. (Stand Exchange 2016CU16). Genau genommen werden sogar drei Felder "ms-Exch-Canary-Data-0", "ms-Exch-Canary-Data-1", "ms-Exch-Canary-Data-2" addiert.

POSTEXCHANGE2000_SCHEMA53.LDF
POSTEXCHANGE2000_SCHEMA95.LDF
POSTEXCHANGE2003_SCHEMA94.LDF
POSTWINDOWS2003_SCHEMA73.LDF
POSTWINDOWS2003_SCHEMA77.LDF
SCHEMA95.LDF

Letztlich wird dem Schema folgendes Feld addiert

dn: CN=ms-Exch-Canary-Data-0,<SchemaContainerDN>
changetype: ntdsSchemaAdd
adminDescription: ms-Exch-Canary-Data-0
adminDisplayName: ms-Exch-Canary-Data-0
attributeID: 1.2.840.113556.1.4.7000.102.52051
attributeSecurityGuid:: iYopH5jeuEe1zVcq1T0mfg==
attributeSyntax: 2.5.5.10
isMemberOfPartialAttributeSet: FALSE
isSingleValued: TRUE
lDAPDisplayName: msExchCanaryData0
name: ms-Exch-Canary-Data-0
oMSyntax: 4
objectCategory: CN=Attribute-Schema,<SchemaContainerDN>
objectClass: attributeSchema
rangeLower: 0
rangeUpper: 50000
schemaIdGuid:: ozyg68m2DkW92znZFULHag==
searchFlags: 0

Das Feld wird dann weiter an das Objekt "Exchange Container" angefügt

dn: CN=ms-Exch-Base-Class,<SchemaContainerDN>
changetype: ntdsSchemaAdd
adminDescription: ms-Exch-Base-Class
adminDisplayName: ms-Exch-Base-Class
defaultHidingValue: TRUE
governsID: 1.2.840.113556.1.5.7000.62.14
lDAPDisplayName: msExchBaseClass
name: ms-Exch-Base-Class
objectCategory: CN=Class-Schema,<SchemaContainerDN>
objectClass: classSchema
objectClassCategory: 3
rDNAttID: cn
schemaIdGuid:: NCx42MpG0xGqcgDAT47t2A==
subClassOf: top
...
mayContain: msExchCanaryData0
mayContain: msExchCanaryData1
mayContain: msExchCanaryData2
...

Speicherort im AD

Da die Client Access Rolle diese Information braucht, finden Sie diese Felder am "Client Access"-Objekt in der Exchange Konfiguration

Bei mir waren alle drei Felder gefüllt. Weitere Details habe ich dazu nicht aber ich vermute, dass Exchange diese Felder füllt und auch ggfls. durchrotiert.

IISLogs

Wenn Sie ihre Webserver-Logs anschauen, dann finden Sie hier auch manchmal diesen Kanarienvogel in den URLs. Hier ein Beispielzeile (Umgebrochen)

2013-05-04 00:05:07 fe80::fdf3:c513:ee8a:81df%13 
   POST /ecp/RulesEditor/InboxRules.svc/GetList msExchEcpCanary=Cc2JvWbJ2U2l2DS8jmSVltNHCSxyFtAIr6cn-Z04-IiA71lLTBuqolmH_Ze048b7plS8oco-zA0. 
   443 HealthMailbox9d246b94d86a47e69d886eb053a0a32a@msxfaq.de fe80::fdf3:c513:ee8a:81df%13 
   Mozilla/4.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+MSEXCHMON;+ACTIVEMONITORING) - 200 0 0 93

Auf dem Server hat der Health Monitoring Service von einer Health-Mailbox die Posteingangsregel ausgelesen.

Weitere Links