تفعيل DMARC يعتبر أسهل إلى حد كبير من تفعيل SPF و DKIM ولكن يجب الإنتباه أن نتائجه قد تكون كارثية إذا لم يتم تطبيقه بشكل صحيح لأنه سيكون سبب في عمل Drop للـ Emails الصادرة من مؤسستك بواسطة الـ Email Servers الخاصة بالمؤسسات الأخرى….فكر كيف سيكون الوضع لو قام Gmail مثلا برفض استلام أي Email مرسل من مؤسستك ؟
ولكن ما الذي يجعل DMARC خصيصا مؤثر لهذه الدرجة عن SPF و DKIM ؟ والإجابة لأن معظم المؤسسات لا تسمح بمرور الرسائل إذا فشلت في التحقق من DMARC (وهو ما يعرف بـ DMARC Failure) ولكنها في المقابل قد تسمح بمرور الرسائل إذا فشلت في التحقق من SPF أو DKIM فقط
كما ذكرنا سابقا فإن كلا من SPF ، DKIM محورين أساسيين يعتمد عليهم DMARC ولكن كيف يحدث هذا ؟ بكل بساطة يفشل التحقق من DMARC في حالة فشل التحقق من SPF أو DKIM. إذا فهو يعتمد عليهما ولا يضيف شئ جديد باستثناء أنه يوظف الإثنين معا ويمكنك من إخبار المؤسسات الأخرى بما تود فعله إذا استلموا Emails من مؤسستك ولكنها Failed DMARC وهو مالايمكنك فعله في حالة الـ SPF أو DKIM.
نعم أنت تتحكم في كلا من SPF و DKIM وقد يصل المؤسسات الأخرى رسائل Failed SPF/DKIM ولكنه لا يوجد آلية لتقوم بإخبار المؤسسات الأخرى ما يجب فعله في حالة استلامهم رسائل Failed SPF/DKIM
بينما في حالة DMARC يمكنك إخبار المؤسسات الأخرى ما تود فعله في حالة استلام رسائل Failed DMARC حيث يمكنك إخبار المؤسسات الأخرى برفض استلام أي رسالة أو وضعها في SPAM/JUNK وسنرى هذا بالتفصيل
بداية هذا الموقع يساعدك على إنشاء DMARC Record لتقوم بوضعه في DNS Server الخاص بك كما يمكنك إستخدامه لرؤية DMARC Record الخاص بأي مؤسسة قامت بتفعيله. لنأخذ Google.com على سبيل المثال سنجد أن الـ DMARC Record الخاص بها كما يلي
(p=reject) : وهو الإجراء المتبع في حالة فشل التحقق من DMARC. سنجد في هذه الحالة أن Google.com تريد من أي مؤسسة استلمت Email يكون الـ Sender فيه من [email protected] ونتيجة التحقق من DMARC هي Falied أن تقوم المؤسسة برفض استلام الرسالة بالكلية. كما نرى في الشرح هناك ثلاث إجراءات يمكن تطبيقها الأولى Reject والثانية Quarantine وعادة تعني استلام الرسالة ولك وضعها في Junk والثالثة None وتعني لا شئ أي استلم الرسالة دون أي مشاكل.
(rua=mailto:[email protected]) : وفيها تخبر Google أي مؤسسة استلمت Email يكون الـ Sender فيه من [email protected] ونتيجة التحقق من DMARC هي Failed أن تقوم بإرسال report إلى هذا البريد الإلكتروني [email protected] يحتوي على تفاصيل هذه الرسائل لكي يتمكن العاملون في Google من مراجعتها.
الآن بعد أن شاهدنا محتويات DMARC Record, لنرى كيف يتم التحقق من DMARC
الرسم أعلاه يوضح كيف يعمل DMARC بداية من إرسال الـ Email وحتى استلامه في الجهة الأخري.
أولا: يقوم المرسل بإرسال الرسالة
ثانيا: تصل الرسالة إلى Email Server الخاص بالمرسل وتقوم بعمل توقيع إلكتروني للرسالة إذا كانت هذه الخاصية مفعلة (DKIM)
ثالثا: يتم إرسال الرسالة وتستقبل في الجهة الأخرى بواسطة الـ Email Server الخاص بالمستلم
رابعا: يقوم Email Server بعمل بعض الفحوصات البدائية مثل IP Reputation Check والتي يتم التحقق فيها هل IP Address الذي قام بإرسال الرسالة له Bad Reputation ؟ يحدث هذا في حالة استخدام هذا IP في SPAM وفي هذه الحالة سيتم منع الرسالة من المرور
خامسا: سيقوم الـ Email Server من التحقق من DMARC (إذا كانت هذه الخاصية مفعلة). سيتطلب ذلك التحقق أولا من SPF و DKIM وبناءا على نتيجة التحقق ستظهر نتيجة التحقق من DMARC…كما وضحنا سابقا للتبسيط DMARC = SPF + DKIM
سادسا: بعد ظهور نتيجة التحقق من DMARC سيتم تطبيق أحد الإجراءات الثلاث إما Reject أو Quarantine او None
بالعودة إلى الوراء قليلا...لقد كان الغرض من التعرض للـ DMARC هو ما قلناه سابقا من أنه واحد من أكثر الطرق الفعالة لرفع مستوى الحماية للـ Email Security وحماية المستخدمين في مؤسستك من Spoofing ولا يوجد أفضل من مثال عملي يوضح ذلك. سنقارن بين Two Domains أحدهم يستخدم DMARC والأخر لا يستخدمها وسنرى الفرق بينهما.
لنقارن Checkpoint.com و Nakerah.net. الأول لا يستخدم DMARC كما نرى في بالأسفل
بينما Nakera.net لديه DMARC كما هو موضح
لنذهب الآن لأحد المواقع التي تقدم خدمة Spoofing مثل هذا الموقع ونقوم بمحاولة عمل Spoofing بحيث يكون Sender في مرة [email protected] ونقوم بإرسال هذه الرسالة إلى أي حساب لديك على. يرجى ملاحظة أن الرابط الموجود في الرسالة يوجه المستخدم إلى www.evil.com Gmail
والمرة الأخرى [email protected]
الآن بعد أن أرسلت الرسالتين ستجد أن الرسالة الخاصة بـ Checkpoint قد وصلت إلى الـ Inbox الخاص بك كما نرى
بينما الرسالة الأخرى الخاصة بـ Nakerah.net لم تصل ! لماذا لم تصل في هذه الحالة ؟ لأن Nakerah.net لديها DMARC Record مفعل لحمايتها وعليه عند استلام Gmail الرسالة من [email protected] سيتحقق من DMARC Record الخاص بها
وكما هو موضح في DMARC Record فإن p=reject تعني رفض استلام الـ Email بالكلية في حالة فشل التحقق من DMARC. ولماذا فشل التحقق من DMARC هنا ؟ الأجابة بسبب فشل التحقق من SPF لأن Nakerah.net لديها SPF Record يوجد به IP Addresses المستخدمة بواسطة الـ Email Server الخاص بها وفي حالة Spoofing أعلاه تم ارسال الرسالة من IP Address مختلف ولذلك فشل التحقق من SPF وبالتبعية من DMARC
الأن قد يتسائل البعض عن الخطوات مرتبة لتفعيل DMARC وهي كالآتي
أولا: قم بتفعيل خاصية التحقق من SPF و DMARC على الـ Email Server الخاص بك للرسائل المستلمة (Inbound Emails)
ثانيا: قم بحصر IP Addresses المستخدمة بواسطة Email Server الخاص بك ثم قم بإنشاء SPF Record وضعه في DNS Server الخاص بك
ثالثا: قم بالتأكد من عمل SPF بشكل صحيح عن طريق ارسال رسالة حقيقة من داخل مؤسستك وأخرى spoofed إلى بريدك الإلكتروني على Gmail وبمجرد وصول الرسالتين قم بفتح الـ Mail Headers لترى نتيجة التحقق في الحالتين. في حالة الرسالة Spoofed ستكون نتيجة SPF = Fail وفي حالة الرسالة الحقيقية ستكون SPF = Pass. يرجى ملاحظة أنه في حالة عدم وجود SPF Record لديك ستكون SPF = Neutral
رابعا: قم بإنشاء DMARC Record وضعه في DNS Server مع ضرورة أن يكون p=none في البداية بحيث لا يؤثر DMARC على أي رسائل حقيقة قد تم إرسالها من أحد Email Servers الخاصة بك والتي قد تكون نسيت وضع الـ IP الخاص بها في SPF Record.
خامسا: قم بمراقبة الـ Reports التي ستستقبلها من المؤسسات الأخرى لتتأكد من عمل الـ DMARC بشكل صحيح وعدم نسيانك لإضافة أحد IPs الخاصة بك إلى SPF Record وإلا سيتم منعها إذا تم الانتقال من p=none إلى p=reject
سادسا: بعد مراقبة الوضع لمدة كافية، قم باستخدام باستبدال p=none بــ p=quarantine كما يمكنك استخدام pct=50 والتي تعني تطبيق الـ DMARC فقط على ٥٠٪ من الـ Email Traffic الخاص بك للمساعدة في تطبيق تدريجي بحيث لا يتأثر كل الـ Email Traffic الخاص بك في حالة وجود شئ خاطئ. بعد قليل يمكنك زيادتها لـ ٧٠٪ ثم ٩٠٪ ثم حذفها في النهاية ليتم تطبيق DMARC على كل الـ Email Traffic الخاص بك
سابعا: بعد مراقبة الوضع لمدة كافية يمكنك الإنتقال من p=quarantine إلى p=reject والفرق بينهما أنه في حالة Quarantine سيتم استلام الرسالة ولكنها ستظهر في Junk أما في حالة reject فسيتم رفض الرسالة من البداية ولن تظهر بتاتا في الـ Inbox
ملحوظات:
لا يشترط تفعيل كل من SPF و DKIM لاستخدام DMARC. يمكنك استخدام SPF فقط وستعمل DMARC بشكل طبيعي.
تفعيلك للـ DMARC لن يحمي الـ Users داخل مؤسستك فقط ولكنه سيوفر لهم الحماية خارجها أيضا فقد شاهدنا حالات يقوم فيها المهاجم بارسال رسالة Spoofed إلى بريد العمل الخاص بالمستخدم مثل [email protected] وعند فشله سيقوم بالمحاولة مع البريد الإلكتروني الخاص بالمستخدم مثل [email protected] وفي كلتا الحالتين سيقوم DMARC بإيقاف الرسالة
إذا كان لديك أكثر من sub-domain وتسخدمهم في إرسال Emails فسيحتاج تفعيل DMARC إلى مجهود أكبر قليلا. يرجى مراجعة خيار (sp) والذي يمكنك من تطبيق policy مختلفة على sub-domain عن المطبقة في الـ Parent Domain. فيمكنك مثلا تطبيق reject على company.com بينما marketing.company.com يطبق عليها quarantine أو none.
أكثر المؤسسات بحاجة إلى تفعيل الـ DMARC هي المؤسسات المالية لأن أكبر تهديد يتمثل في محاولة المهاجمين عمل Spoofing و Phishing للحصول على بيانات العملاء وسرقة حساباتهم وعادة ما يتم ذلك على Personal Email الخاص بالعميل وهو ما يجعل المهمة صعبة على المؤسسة في حماية عملائها
التقارير المرسلة من المؤسسات الأخرى بخصوص الـ DMARC الخاص بك غاية في الأهمية فهي تمكنك من معرفة من يقوم بمهاجمة الـ users على بريدهم الإلكتروني الشخصي ما يعني Better Visibility. هل تتذكر الرسالة Spoofed التي قمنا بارسالها من [email protected] إلى حساب Gmail ؟
هذه الرسالة تم إيقافها بواسطة Gmail كما رأينا ولكن الأهم أن Gmail قام بإرسال Email إلينا يحتوي على XML Report به IP Address الذي حاول عمل Spoofing كما نرى
وكما نرى فإن الـ IP Address 89.34.237.113 هو الخاص بالـ Email Server الذي تم ارسال الرسالة منه عن طريق anonymousemail.me
أشهر الشركات التي تستخدم DMARC هي Facebook, Google , Twitter ولكن قد تتفاجئ أن بعض الشركات العاملة في مجال Security لا تستخدم DMARC أو تستخدمه ولكنه غير مفعل (p=none) مثل cisco.com و FireEye.com