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