هجوم القاموس Dictionary Attack

من SalamaTech Wiki سلامتك ويكي
اذهب إلى: تصفح، ابحث

مقدمة

تعتمد عائلة من طرق اختراق الحسابات على تجريب كلمات سرّ Passwords مختلفة أملا بأن تكون أحداها الكلمة الصحيحة. من هذه الطرق، طريقة تخمين كلمات السرّ Passwords Guessing التي يقوم فيها المهاجم بتجريب كلمات سرّ يخمن أن الضحية قد يستخدمها. بالرغم من أن هذه الطريقة قد تنجح في بعض الأحيان إلا أنها تفشل في أغلبها، بالأخص عندما لا يعرف المهاجم أي شئ عن ضحيته. لذلك برزت طرق أكثر منهجية لتجريب كلمات السرّ مثل الهجوم الأعمى Brute Force Attack أو هجوم القاموس Dictionary Attack.

هجوم القاموس هو طريقة لمعرفة كلمة سرّ ما تعتمد على التجريب الممنهج لكلمات موجودة في لائحة تسمى القاموس Dictionary وتركيبات من هذه الكلمات، إلى أن تنجح إحدى الكلمات أو التركيبات وبالتالي يتم معرفة كلمة السرّ أو تفشل جميع الكلمات وجميع التركيبات ما يعني أن الهجوم قد فشل.

تعتمد طريقة الهجوم هذه إذا على:

  • حجم القاموس المستخدم.أي عدد الكلمات الموجودة ضمنه
  • جودة القاموس وهي تتعلق بنوع الكلمات الموجودة في اللائحة ومدى استخدامها ككلمات سرّ من قبل المستخدمين.
  • خوارزمية تشكيل التركيبات من كلمات اللائحة
  • جودة ونوع قواعد الاستبدال أي عمليات استبدال الأحرف بأرقام أو رموز أو استبدال الأحرف الصغيرة بأحرف كبيرة على الكلمات الموجودة في القاموس
  • آلية تجريب كلمة السرّ
  • سرعة الخوارزمية
  • إمكانية تشغيل الخوارزمية بشكل متوازي Parallel على عدد من المعالجات
  • إمكانية التحكم بالخوارزمية (إيقاف، متابعة)

القواميس Dictionaries

يعتمد نجاح هجوم القاموس بشكل كبير على القاموس المستخدم. ويقصد بالقاموس هنا لائحة بالكلمات التي يعتقد أن تستخدم لصياغة كلمات السرّ.

من الممكن استخدام قوائم الكلمات الموجودة في القواميس المعتادة التي تحتوي كلمات لغة معينة مثل قاموس أوكسفورد Oxford English Dictionary للغة الانجليزية. أو قاموس دودن Duden للغة الألمانية أو الـروبيرت Robert للغة الفرنسية.

لكن استخدام القواميس المعتادة له نقطة ضعف أساسية نذكر بعضها:

  • عدد الكلمات المستخدمة في الحياة اليومية أقل بكثير من عدد الكلمات التي توجد في القواميس النظامية. مثلا يحتوي قاموس أوكسفورد Oxford English Dictionary حوالي 300000 كلمة انجليزية لكن 10000 منها تجد طريقها إلى الاستخدام اليومي. وتبين التسريبات أن كلمات السرّ تحتوي عادة كلمات مستخدمة في الحياة اليومية.
  • القواميس النظامية لا تحتوي أسماء وتشير التسريبات إلى أن عددا كبيرا من كلمات السرّ يحتوي أسماء.
  • قد تكون كلمة السرّ المراد كشفها كلمة من قاموس للغة غير القاموس المستخدم. كأن تكون كلمة السرّ كلمة اسبانية في حين أن القاموس المستخدم في هذا الهجوم قاموسا للغة الانجليزية.

لتلافي هذه المشاكل من المفيد استخدام قواميس (لوائح كلمات) معدة بهدف استخدامها في كشف كلمات السرّ. يجب في القاموس أن:

  • يحتوي الكلمات المستخدمة في الحياة اليومية باللغات التي يتوقع أن تكون كلمة السرّ مكتوبة بها، مثلا إن كان صاحب كلمة السرّ فرنسيا فيجب أن يشمل القاموس كلمات فرنسية وربما انجليزية
  • أن يحتوي أسماء علم منتشرة في بلد صاحب كلمة السرّ، بالإضافة لأسماء المدن والدول، والفرق الغنائية والممثلين والمشاهير وأسماء الأماكن الأثرية والأماكن المميزة في العالم.
  • أن يحتوي على الكلمات العامية وغيرها من الكلمات التي لا توجد عادة في القاموس النظامي مثل كلمات السباب بمختلف أشكالها
  • أن يحتوي على الكلمات التي تتضمن أخطاء بين الأخطاء إملائية شائعة

هناك الكثير من القواميس الجاهزة والتي أعدها الهواة أو الخبراء والتي يمكن استخدامها في هذا الهجوم. لكن أفضلها هي القواميس المبنية على تسريبات كلمات السرّ.

ففي عدد لا بأس به من الحالات التي حصل فيها اختراق لمخدمات خدمة ما على الانترنت، قام المخترقون بنسخ سجلات المستخدمين بما في ذلك سجلات كلمات سرّ مهششة Hashed Passwords وقاموا باستخدام طرق مختلفة لكشف كلمات السرّ الأصلية مثل استخدام الهجوم الأعمى أو باستخدام هجوم القاموس بقاموس ما أو غيره. ثم وبعد ذلك قاموا بنشرها على العلن.

من هذه اللوائح لائحة RockYou الشهيرة التي نشرت عام 2009، ويمكن معاينة عدد من اللوائح في هذا الرابط: https://github.com/danielmiessler/SecLists/tree/master/Passwords

يذكر أن مخدمات LinkedIn اخترقت عام 2014 وتم سرقة الملايين من كلمات السرّ المهششة Hashed Passwords التي المخترقون حاليا بمحاولة استعادتها ويتوقع نشرها في السنوات القادمة.

قواعد الاستبدال والتركيب Substitution and combination rules

يقصد بقواعد التركيب، القواعد التي تستخدمها الخوارزمية لانتاج تركيبات من الكلمات الموجودة في القاموس. ويقصد بقواعد الاستبدال، القواهد التي تستخدمها الخوازمية لانتاج كلمات جديدة انطلاقا من كلمات القاموس باستبدال أحرف من تلك الكلمات بأرقام أو رموز لانتاج كلمات جديدة.

قواعد الاستبدال

في كثير من الحالات تكون كلمة السرّ عبارة عن كلمة عادية استخدم فيها صاحبها الرقم 3 مكان الحرف e أو الرقم 0 مكان الحرف o. أو قد تكون استبدال حرف صغير بذات الحرف الكبير، مثلا:

  • fr33dom
  • freed0m
  • freeDom

جميع هذه القواعد هي قواعد استبدال يمكن استخدامها واحدة تلو الأخرى أو يمكن مزجها كأن تستبدل 3 أحرف e وأن تستبدل 0 أحرف o وأن تكتب d بالحرف الكبير D:

  • fr33D0m

قواعد التركيب

كثيرا ما تكون كلمات السرّ مكونة من كلمة ما يتبعها كلمة أخرى. مثلا syria-freedom أو syria-crazy-lover. إذا لكي تستطيع طريقة هجوم القاموس من كشف كلمة السرّ هذه يجب أن تكون الكلمة syria-freedom و syria-crazy-lover وغيرها من التركيبات الممكنة من كلمتين ومن ثلاثة كلمات موجودة ضمن اللائحة. لكن ذلك غير مجدي لأنه يجعل اللائحة طويلة جدا ويجعل تعديلها وإضافة كلمات إليها عملية مضنية. لذلك جاءت قواعد التركيب لحل هذه المشكلة.

تحدد قواعد التركيب الطريقة التي تقوم بها خوارزمية انتاج التركيبات فعلى فرض احتوى القاموس على 3 كلمات فقط بقصد التبسيط وهي:

  1. syria
  2. freedom
  3. lover

وكانت القاعدة هي: الكلمة الأولى متبوعة برمز ناقص ثم الكلمة الثانية أي: <word_1>-<word_2> تنتج الخوارزمية التركيبات التالية:

  1. syria-syria
  2. syria-freedom
  3. syria-lover
  4. freedom-syria
  5. freedom-freedom
  6. freedom-lover
  7. lover-syria
  8. lover-freedome
  9. lover-lover

ويمكن أن تكون القاعدة هي الكلمة الأولى متبوعة بالكلمة الثانية بدون فاصل أو رمز بينهما. ويمكن استخدام عدد من القواعد واحدة تلو الأخرى للمرور على جميع الاحتمالات الممكمة لتركيب الكلمات من القاموس.

الخوارزمية

نذكر فيما يلي الخوارزمية الأساسية لهجوم قاموس يقوم فقط بتجريب الكلمات في القاموس بدون قواعد التركيب أوالاستبدال ثم نذكر الخوارزنية التي تدعم قواعد الاستبدال ونترك لكم تصميم بخوارزمية تدعم كلا من قواعد الاستبدال والتركيب.

الخوارزمية الأساسية

  1. قم بتحميل الكلمة التالية من القاموس
  2. قم بمحاولة استخدام الكلمة لمعرفة إن كانت هي الكلمة الصحيحة
  3. في حال كانت الكلمة الحالية هي الكلمة الصحيحة أظهر الكلمة الناجحة على الشاشة وتوقف
  4. في حال لم تنته لائحة الكلمات تابع من الخطوة 1
  5. في حالة انتهاء اللائحة أظهر رسالة فشل الهجوم وتوقف

الخوارزمية مع استخدام قواعد الاستبدال

  1. قم بتحميل قواعد الاستبدال
  2. قم بتحميل الكلمة التالية من القاموس
  3. قم بمحاولة استخدام الكلمة لمعرفة إن كانت هي الكلمة الصحيحة
  4. في حال كانت الكلمة الحالية هي الكلمة الصحيحة أظهر الكلمة الناجحة على الشاشة وتوقف
  5. قم بتطبيق قاعدة الاستبدال التالية على الكلمة الحالية
  6. قم بمحاولة استخدام الكلمة بعد الاستبدال لمعرفة إن كانت هي الكلمة الصحيحة
  7. في حال كانت الكلمة الحالية هي الكلمة الصحيحة أظهر الكلمة الناجحة على الشاشة وتوقف
  8. في حال لم تنته جميع قواعد الاستبدال تابع من الخطوة 5
  9. في حال لم تنته لائحة الكلمات تابع من الخطوة 2
  10. في حالة انتهاء اللائحة أظهر رسالة فشل الهجوم وتوقف

برامج كشف كلمات السرّ Password Cracking Software

منذ ظهور كلمات السرّ، وظهور فكرة وخوارزميات هجوم القاموس قام العديد من المطورين والمخترقين بتطوير برامج كشف كلمات السرّ Password Cracking Software سواء لغرض خبيث كالاختراق والسرقة وانتحال الشخصية والتطفل أو لغرض حميد مثل استعادة كلمة سرّ فقدت أو نسيها صاحبها.

تقوم هذه البرامج بشكل أساسي بتوليد التركيبات بداية من القاموس الذي يزوده مستخدم البرنامج. بينما يقوم برنامج آخر بمحاولة أو تجريب هذه التركيبات لمعرفة إن كان أحدها هو كلمة السرّ الصحيحة المراد كشفها. وقد تدمج بعض البرامج المهمتين في برنامج واحد لتسريع العملية.

وفيما يلي أمثلة عن أشهر هذه البرامج:

Hashcat

هاش كات Hashcat برنامج لاستعادة أو كشف كلمات السرّ يعمل على منصات ويندوز Windows، لينوكس Linux، وماك أو إس إكس Mac OS X. ويعمل على وحدات المعالجة المركزية CPUs الخاصة بالجهاز أو على وحدات المعالجة الرسومات GPUs وهو لذلك من أسرع البرامج المستخدمة لكشف واستعادة كلمات السرّ.

يدعم هذا البرنامج عددا من طرق استعادة كلمات السرّ منها الهجوم الأعمى Brute Force Attack وهجوم القاموس Dictionary Attack وهجوم القناع Mask Attack وهجوم البصمة Fingerprint Attack

يستطيع أيضا البرنامج تجريب كلمات السر عبر مقارنة الهاش Hash الخاصة بكلمة السرّ المجربة مع الهاش Hash الخاصة بكلمة السرّ المستهدفة. ويدعم البرنامج مجموعة من خوارزميات الهاشينغ Hashing منها MD4 Hash، MD5 Hash، SHA-1 Hash، MySQL Hash، Microsoft LM Hashes، Cisco PIX Hashes وغيرها.

للمزيد قوموا بزيارة موقع https://hashcat.net/hashcat/.

John the Ripper

جون السفاح John the Ripper برنامج لكشف واستعادة كلمات السرّ يستطيع استخدام الهجوم الأعمى Brute Force Attack وهجوم القاموس Dictionary Attack وهجوم القناع Mask Attack لتوليد التركيبات. صمم أساسا لاستعادة كلمات السرّ المخزنة في سجل مسخدمي نظام التشغيل Unix وقريبه Linux.

يستطيع البرنامج تجريب التركيبات عبر مقارنة الهاش الخاصة بالتركيبات الناتجة ممع الهاش الخاصة بكلمة السرّ المستهدفة ويدعم البرنامج مجموعة من خوارزميات الهاشينغ Hashing أهمها الخوارزميات الخاصة بحفظ كلمات السرّ على نسخ نظام التشغيل يونيك Unix ونكهات نظام التشغيل لينوكس Linux المختلفة ,والمبنية على DES MD5 و Blowfish، وأيضا خوارزميات Kerberos AFS و Windows LM Hash وعبر عدد من الإضافات MD4 و LDAP وMySQL وغيرها.

برامج تجريب كلمات السرّ

Under Construction Non Commercial Reuse White Blue.png

هذه الفقرة ما تزال قيد الانشاء

تنقّل في الكتيب eBook Navigation

الهجمات على كلمات السرّ

الهجمات الالكترونية الخبيثة Malicious Cyber Attacks

الفهرس Index

الفهرس الكامل Full Index

اقرأ أيضا See Also

كلمات السرّ Passwords

تخمين كلمات السرّ Passwords Guessing

الهجوم الأعمى Brute Force Attack

هجوم القاموس Dictionary Attack

اصطياد كلمات السرّ Passwords Phishing

برامج تسجيل المفاتيح Keystroke Loggers

تسرب البيانات Data Breaches

برامج كشف كلمات السرّ Password Cracking Software

برامج تجريب كلمات السرّ Password Testing Software

مراجع References

Password Cracking - Computerphile فيديو بالانجليزية عن كشف كلمات السرّ من قناة Computerphile على يوتيوب

https://hashcat.net/hashcat/

John the Ripper password cracker