Spoofing Prevention Mechanism
Spoofing Prevention Mechanism
السلام عليكم ورحمة الله وبركاته
في هذه المقالة نستعرض بعض التقنيات/ البروتوكولات التي تساعد في الحد من رسائل الإنتحال
The Sender Policy Framework (SPF) :
بروتوكول الـ SMTP لا يوفر خاصية الـ authentication أي لا يمكننا التحقق من أن المصدر ( Email Server) الذي قام بإرسال الرسالة بالفعل مرتبط بالـ Domain الخاص بالمرسل، بالتالي لابد من ايجاد طريقة تضمن لنا هوية الـ Email Server الذي يقوم بإرسال الرسالة الخاصة بالمرسل وأن هذا الـ Email Server بالفعل مرتبط بالـ Domain الذي تصلنا منه الرسائل، الـ SPF يقوم بحل هذه المشكلة ( التحقق من هوية المرسل)
كيف يعمل الـ SPF ؟ :
الـ SPF يتيح لمالك الدومين بتعريف قائمة بالـ Email Servers المسموح لها بإرسال الرسائل الخاصة بهذا الدومين، وهذه القائمة تخزن فيما يسمى بالـ SPF Records بتفصيل أكثر:
خلال عملية إرسال الرسالة لدينا هذه الأطراف :
1. الـ Sending Email Server ( مصدر الرسالة )
2. الـ Receiving Email Server ( المستقبل للرسالة )
3. الـ DNS Server
والمشكلة هي أن الـ Receiving Email Server يود التحقق من هوية الـ Sending Email Server المرتبط بالدومين الذي صدرت منه الرسالة ، وعلى سبيل المثال لنفترض أن الدومين كالآتي : example.com
فحتى يتم التحقق من هوية المرسل تتم الخطوات التالية :
1 يقوم الـ Sending Email Server بإرسال الرسالة الخاصة بالدومين example.com إلى الـ Receiving Email Server
2 يستقبل الـ Receiving Email Server الرسالة ومن ثم يقوم بسؤال الـ DNS Server ( الخاص بدومين example.com ) عن الـ SPF Records ( حيث يتم تخزين قيم الـ Email Servers المصرح لها بإرسال الرسائل من دومين example.com )
3 بعدما يحصل الـ Receiving Email Server على الـ SPF Recordsيقوم بالتأكد من أن الـ Sending Email Server مُعرف في هذه القائمة
التحقق من قيم الـ SPF الخاصة بالـ Domain :
بالإمكان إستخدام أداة dig للتحقق من قيم الـ SPF المعرفة لدومين ما كالآتي :
dig +short TXT domain.com
Domain Key Identified Mail (DKIM) :
الـ DKIM يتيح إمكانية التحقق من محتوى الرسالة التي تم إستقبالها وسلامتها من أي تعديل من قبل أي طرف آخر بعد خروجها وصدورها من الـ Sending Email Server
كيف يعمل الـ DKIM ؟ :
يعتمد الـ DKIM على الـ Asymmetric Encryption Algorithm
حيث يقوم الـ Sending Email Server بتوقيع الرسالة بالـ Private Key ويتم إضافة الـ Hash encrypted value إلى الـ SMTP Headers
بعد ذلك يتم تمرير الرسالة إلى الـ Receiving Email Serverومن ثم يقوم الـ Receiving Email Server بالحصول على الـ Public Key من Record معرف في الـ DNS الخاص بالدومين الصادرة منه الرسالة
بعد ذلك يقوم الـ Receiving Email Server بحساب قيمة الـ Hash مرة أخرى بإستخدام الـ Public Key ومن ثم مقارنتها بالقيمة المُعرفة في الـ SMTP Headers وفي حال تطابقت القيمتين فالرسالة سليمة من التعديل
الصورة التالية تُلخص عمل الـ DKIM
نقطة أخرى جديرة بالذكر وهي أن الـ DKIM يتيح أيضًا التأكد من هوية المرسل ( الخاصية التي يقدمها الـ SPF )
وهذا يتم لأنه فقط الـ Sending Email Server هو الذي يملك الـ Private Keyالمرتبط بالـ Public Key المعلن عنه في الـ DNS Records(في حال لم يتسرب هذا الـ Key بالطبع! )
التحقق من قيم الـ DKIM Record الخاصة بالـ Domain :
بالإمكان أيضًا إستخدام أداة dig للإستعلام عن هذه القيم عن طريق هذا الأمر
dig dkim._domainkey.domain.com TXT
Domain-based Message Authentication, Reporting & Conformance (DMARC) :
الـ DMARC عبارة عن بروتوكول يوظف خصائص الـ SPF والـ DKIM معًا للإستفادة منها في عملية الـ Email Authentication ( مثل تحديد هوية المرسل والتحقق من سلامة الرسالة) حيث يعتمد الـ DMARC على تعريف Policies يتم الإعلام عنها في الـ DNS Records وهذه السياسات يستفيد منها الـ Receiving Email Server في كيفية التعامل مع الرسائل التي لا تتوافق مع معايير الـ SPF أو الـ DKIM الخاصة بالدومين المرسلة منه الرسالة.
أنواع السياسات الخاصة بالـ DMARC :
1. Monitor policy: p=none
هذه السياسة تقوم بإعلام الـ Receiving Email Server بإرسال تقارير حول الرسائل الصادرة من الدومين
2. Quarantine policy: p=quarantine
هذه السياسة تقوم بإعلام الـ Receiving Email Server بـأن يحجر الرسائل التي لا تتوافق مع معايير الـ SPF أو الـ DKIM المعرفة في الـ DNS Record ( توضع الرسائل في مجلد الـ Spam/Junk الخاص بالمستقبل)
3. Reject policy: p=reject
هذه السياسة تقوم بإعلام الـ Receiving Email Server بأن يحجب ولا يستقبل أي رسالة لا تتوافق مع معايير الـ SPF أو الـ DKIM
التحقق من قيم الـ DMARC Record الخاصة بالـ Domain :
dig +short TXT _dmarc.domain.com
ختامًا، أود الإشارة بأن هذه المقالة تمّت كتابتها خلال دراسة هذه المواضيع، فكل ما تم ذكره هنا قد يحتمل الخطأ، لكن بالإمكان العودة إلى المراجع التي إستندت عليها هذه المقالة
وإن أصبت فمن توفيق الله وحده، وإن أخطأت فمن نفسي والشيطان
المراجع:
مقالات:
· https://www.ciso-central.org/fraudulent-email/domain-key-identified-mail-dkim
· https://altntechnology.com/domain-keys-identified-mail-dkim/
· https://www.ciso-central.org/fraudulent-email/sender-policy-framework-spf
· https://dmarc.org/wiki/FAQ#Why_is_DMARC_important.3F
· https://www.dmarcanalyzer.com/dmarc/
دورات:
· PTXv2 from eLearnSecurity