بداية ماذا يعني Email Spoofing ؟ هو ببساطة انتحال شخصية المُرْسِلُ فيظن المستلم أن ما يراه في خانة المُرْسِلُ هو فعلا من أرسل الرسالة بينما في الحقيقة أرسلها شخص آخر. مثلا لنفترض أنك تعمل في مؤسسة والـ Email الخاص بك هو [email protected] ومديرك في العمل الـ Email الخاص به هو [email protected] فيكون Spoofing هو قيام المهاجم بإرسال رسالة تبدو لك في ظاهرها أنها مرسلة من مديرك ولكنها في الحقيقة رسالة مزيفة ولم يقم مديرك بإرسالها من الأساس والسؤال هو ما علاقة هذا بما ناقشناه في الدرس السابق؟




هل تتذكر ما قلناه بأن هجمات الـ Email تعتمد بالدرجة الأولى على خداع المستخدم إما لفتح المرفقات أو الضغط على رابط ؟ لا يوجد طريقة أكثر فاعلية من قيام المهاجم بانتحال شخصية تعرفها أنت و يطلب منك فتح الرابط أو المرفقات فلا يساورك أدنى شك بخصوص الرسالة وتقدم على فعل ما يطلبه منك بكل سهولة ولكن هل الأمر بهذه السهولة ؟




للأسف الأمر أسهل مما نتخيل حتى أنه يوجد العديد من المواقع التي تقدم لك هذه الخدمة مجانا ويمكنك عن طريقها إرسال رسائل مزيفة مثل هذا الموقع . إذا ما الذي يمكننا فعله لمنع Email Spoofing ؟




يمكننا منع ذلك باستخدام ما يعرف بـ



DMARC : Domain-based Message Authentication, Reporting & Conformance





ويعرف كالآتي:



DMRC is an email authentication, policy, and reporting protocol. It builds on the widely deployed SPF and DKIM protocols, adding linkage to the author (“From:”) domain name, published policies for recipient handling of authentication failures, and reporting from receivers to senders, to improve and monitor protection of the domain from fraudulent email.


قبل شرح كيف يعمل DMARC Protocol يجب أن نعلم أن هذا الـ Protocol هو أحدث طرق الحماية المستخدمة ضد الـ Email Spoofing وتستخدمه مؤسسات مثل Facebook, Twitter & Google لحماية موظفيها...قد يتسائل البعض لابد أن تكلفته المادية مرتفعة جدا والإجابة أنه مجاني ولا يحتاج إلا لدراسته جيدا وفهم كيف يعمل لتطبيقه بفاعلية. هل تتذكر ما قلناه في الدرس السابق بضرورة عدم الربط بين تحقيق مستويات حماية عالية ووجود Financial Budget كبيرة ؟




إذا كيف يمكننا تطبيقه ؟ يعتمد DMARC على محورين أساسيين وهما SPF و DKIM وهي Protocols تستخدم أيضا في منع Email Spoofing ويمكن استخدامها منفردة ولكن ما يميز DMARC أنه يوظف كلا من SPF و DKIM لتحقيق أعلى مستوى حماية ممكن.



=====================================================
SPF
=====================================================​


لنبدأ بالـ (SPF (Sender Policy Framework ويعرف كالآتي:


Sender Policy Framework (SPF) is a simple email-validation system designed to detect email spoofing by providing a mechanism to allow receiving mail exchangers to check that incoming mail from a domain comes from a host authorized by that domain's administrators.[1] The list of authorized sending hosts for a domain is published in the Domain Name System (DNS) records for that domain in the form of a specially formatted TXT record. Email spam and phishing often use forged "from" addresses, so publishing and checking SPF records can be considered anti-spam techniques.


لنفترض أن المؤسسة company.com تريد تطبيق SPF فما الذي يجب عليها فعله ؟ من المعلوم أن أي مؤسسة لديها Email Server يستخدم في إرسال Emails من المؤسسة لغيرها من المؤسسات. هذا الـ Email Server قطعا سيكون له Public IP Address ولنفترض أنه في حالة Company.com سيكون الـ IP Address الخاص بالـ Email Server هو 1.1.1.1




والأن لنفكر بمنطقية اذا كانت company.com لا تستخدم إلا هذا الـ Email Server فطبيعي أن تكون كل الرسائل الصادرة من company.com لها Source IP Address هو 1.1.1.1 وعليه يمكننا الجزم بأنه إذا استلم أي شخص خارج المؤسسة Email مرسل من company.com@ ولكن الـ Source IP ليس 1.1.1.1 فإن هذا الـ Email مزيف وليس مرسل من company.com.




إذا اذا استطاعت company.com إخبار العالم الخارجي بالـ IP Address الخاص بالـ Email Server الخاص بها فإنه يمكنها أن تستخدم ذلك كوسيلة لرصد الـ Spoofed Emails ومنعها. يتم ذلك عن طريق إنشاء SPF Record في DNS Server الخاص بـ Company.com يحتوى على كل المعلومات المطلوبة ويوجد العديد من المواقع التي تساعدك في إنشاء هذا الـ Record مثل هذا الموقع




هذا مثال لـ SPF Record في أبسط صوره قمنا بإنشائه باستخدام الموقع المذكور:



"company.com. IN TXT "v=spf1 ip4:1.1.1.1 -all


ولكن ماذا يعني هذا Record ولماذا قمنا بوضعه في DNS Server ؟ لنمر سريعا على مكوناته:




(Company.com): هذا الـ Record مسئول عن الـ Domain المسمى company.com



(IN TXT): هذا الـ Record من نوع TXT



(v=spf1): هذا الـ Record المسئول عن SPF



(ip4:1.1.1.1): هذا الـ IP Address هو فقط المسموح له بإرسال Emails من company.com



(all -): ما هو الإجراء الذي يجب اتباعه بواسطة المستلم في حالة استلام Email مرسل من company.com ولكن
ليس من الـ IP Address 1.1.1.1. الإجراء في هذه الحالة هو Hard Fail




الآن بعد أن قمنا بوضع هذا الـ Record في DNS Server الخاص بـ Company.com كيف يعمل SPF ؟




لنفترض أن هناك شخصان (أحمد) أحدهم يعمل بـ company.com والأخر (عمار) يعمل بـ organization.com وقام أحمد بإرسال Email من [email protected] إلى [email protected] ما الذي سيحدث الآن؟





p1.png



أولا: سيقوم Email Server الخاص بـ organization.com باستلام الـ Email من الـ Email Server الخاص بـ company.com



ثانيا: اذا كان الـ Email Server الخاص بـ organization.com تم ظبطه ليتحقق من SPF الخاص بالـ Emails المستلمة فإنه سيذهب إلى DNS Server الخاص بـ company.com ويبحث عن SPF Record ليتحقق من IPs المسموح لها بالإرسال وبناءا عليه إما أنه سيجد أن الرسالة فعلا مرسلة من 1.1.1.1 وبالتالي سيسمح لها بالمرور أو سيجد أنها مرسلة من IP آخر غير موجود في SPF Record وعندها سيقوم بإيقاف الرسالة وعدم السماح لها بالمرور لأنها ليست مرسلة من الـ Email Server الخاص بـ company.com وبالتالي فهي مزيفة.





ملحوظات:



كل مؤسسة هي المسئولة عن ضبط Email Server الخاص بها لتفعيل التحقق من الـ SPF للرسائل المستلمة وما يجب فعله عند فشل التحقق (أو ما يعرف بـ Fail SPF) ….هل يجب السماح للرسالة بالمرور أم يتم إيقافها ؟



-يمكنك إضافة أكثر من IP Address في الـ SPF Record الخاص بك كما يمكنك إضافة IP Range كامل



-عند إنشائك لـ SPF Record فأنت تساعد المؤسسات الأخرى على منع استلام الـ Emails المزيفة والتي تظهر كأنها مرسلة من مؤسستك ولكن هذا لا يؤثر على الـ Email Server الخاص بك. إذا أردت حماية مؤسستك فستحتاج لتفعيل التحقق من الـ SPF للـ Emails المستلمة من المؤسسات الأخرى.



-تفعيلك لخاصية التحقق من SPF للـ Emails المستلمة لا يشترط وجود SPF Record لديك لأنك عندما تتحقق من SPF Record للمؤسسات الأخرى فأنت في حاجة فقط للـ SPF Record الخاص بهم والموجود في DNS Servers الخاصة بهم . ولكن إذا أردت أن تتحقق المؤسسات الأخرى من SPF عند استلامهم رسائل منك فحينئذ لابد أن تقوم بإنشاء SPF Record الخاص بك



يمكنك التحقق يدويا من SPF Record الخاص بأي مؤسسة مثل Twitter.com عن طريق Mxtoolbox



وهو كما نرى في الصورة




Screen Shot 2017-09-09 at 4.07.45 PM.png




=====================================================
DKIM
=====================================================​



والآن لنناقش DKIM (DomainKeys Identified Mail) وتعريفه كما يلي


DomainKeys Identified Mail (DKIM) is an email authentication method designed to detect email spoofing. It allows the receiver to check that an email claimed to have come from a specific domain was indeed authorized by the owner of that domain.[1] It is intended to prevent forged sender addresses in emails, a technique often used in phishing and email spam.

يعمل بروتوكول DKIM عن طريق خاصية من خصائص Asymmetric Encryption ( أو ما يعرف بـ Public/Private Key Encryption ) وهي Digital Signature. بدون الخوض في كيفية عمل هذا النوع من التشفير يكفينا أن نعلم الآن أنه إذا أرادت مؤسسة ما تفعيل DKIM فإنها بحاجة إلى إنشاء زوج من مفاتيح التشفير الأول يدعى Private Key وتستخدمه في عمل Digital Signing لجميع الرسائل الصادرة. هذا المفتاح يوجد فقط على Email Server ولا يفترض أن يوجد مع أحد آخر لذا يجب الحفاظ عليه جيدا.


المفتاح الآخر وهو Public Key وكما يظهر من الإسم فإنه متاح للجميع وتقوم المؤسسة بوضع هذا المفتاح كـ DKIM Record في الـ DNS Server تماما كما فعلنا في حالة SPF حيث ستحتاج المؤسسات الأخرى للوصول لهذا المفتاح لتتمكن من التحقق من DKIM عند استلامها رسالة من company.com


إذا كيف يعمل DKIM وكيف يساعد في الحماية من Email Spoofing ؟ لنستخدم نفس المثال السابق:


Untitled Diagram (6).png



أولا: [email protected] سيقوم بإرسال رسالة إلى [email protected]

ثانيا: ستصل الرسالة إلى mail-server.company.com والذي سيقوم بتوقيع الرسالة إلكترونيا (Digitally Signature) ومن ثم يقوم بإرسالها إلى mail-server.organization.com

ثالثا: إذا كان mail-server.organization.com تم ظبطه ليتحقق من DKIM للرسائل المستلمة فإنه سيرى أن الرسالة موقعة إلكترنيا (Digitally Signed) من company.com وبالتالي سيحاول التحقق من صحة هذا التوقيع

رابعا: سيقوم mail-server.organtiaton.com بسؤال dns-server.company.com عن Public Key الخاص بـ company.com وسيحصل عليه.

خامسا: سيقوم mail-server.organization.com الآن بمطابقة Digital Signature الموجود في الرسالة مع Public Key وإذا كانوا متطابقين فسيكون التوقيع الإلكتروني صحيح وسيسمح للرسالة بالمرور. أما إذا لم يتطابقا فإن التوقيع في هذه الحالة غير صحيح وسيتم منع الرسالة من المرور.



ملحوظات:

كل زوج من Public/Private Key مرتبطين ببعضهم البعض ويتم إنشائهم في وقت واحد على الـ Mail Server واذا تم توقيع رسالة بالـ Private Key فإن Public Key الخاص بهذا الزوج فقط من المفاتيح هو الإثبات الوحيد على صحة هذا التوقيع فإذا تم توقيع الرسالة بأي Private Key آخر فلن ينجح التوقيع

يمكننا التفكير في Digital Signature كختم النسر ولكنه إلكتروني غير موجود مع أحد إلا المؤسسة نفسها وبالتالي فاستلام رسالة مختومة إلكترونيا من company.com يضمن أن هذه الرسالة غير مزيفة (بافتراض صحة الختم/التوقيع)

الـ DKIM مثله مثل SPF.. كل مؤسسة هي المسئولة عن ضبط Email Server الخاص بها لتفعيل التحقق من الـ DKIM للرسائل المستلمة وما يجب فعله عند فشل التحقق (أو ما يعرف ب DKIM Failure) ….هل يجب السماح للرسالة بالمرور أم يتم إيقافها ؟

تفعيلك لخاصية التحقق من DKIM للـ Emails المستلمة لا يشترط وجود DKIM Record لديك لأنك عندما تتحقق من DKIM للمؤسسات الأخرى فأنت في حاجة فقط للـ DKIM Record الخاص بهم والموجود في DNS Servers الخاصة بهم. ولكن إذا أردت أن تتحقق المؤسسات الأخرى من DKIM عن استلامهم رسائل منك فحينئذ لابد أن تقوم بإنشاء DKIM Record
الخاص بك



يوجد العديد من المواقع التي تساعدك في إنشاء DKIM Record الخاص بك مثل هذا الموقع



وكل المطلوب هو أن تقوم بكتابة Domain الخاص بمؤسستك بالإضافة إلى ما يسمى Selector ويمكنك إدخال أي قيمة فيه والغرض من وجوده هو إمكانية إستخدام Public/Private keys مختلفة لكل Sub-Domain



فمثلا يمكنك أن تنشئ توقيع/ختم إلكتروني لـ Company.com وآخر لـ contractors.company.com وهكذا





كما يمكنك أيضا مشاهدة Public Key الخاص بأي موسسة تستخدم DKIM مثل Twitter.com باستخدام العديد من المواقع مثل Mxtoolbox




Screen Shot 2017-09-09 at 4.12.32 PM.png



بعد أن مررنا سريعا على SPF و DKIM وكيفية استخدامهما بقي لنا أن نقوم بشرح DMARC وكيف يمكن تفعيله للإستفاده مما قمنا بتطبيقه هنا وهو ما سنتعرض له في الدرس القادم بإذن الله.


Author
Muhammad.Alharmeel
Views
1,202
First release
Last update
Rating
4.88 star(s) 8 ratings

Latest reviews

ممتاز جدا
أكثر من رائع
more than amazing way of delivering understanding of how email spoof works and how Orgs can protect themselves from it. Great Job
helped me to more understand bugs related
شكرا جزيلا :)
Top