ما هو التشويش؟

ما هو التشويش

مقدمة: ما هو التشويش؟

في عام 2014 ، قراصنة صينيون اخترق أنظمة صحة المجتمع، وهي سلسلة مستشفيات أمريكية هادفة للربح ، وسرقت بيانات 4.5 مليون مريض. استغل المتسللون خطأ يسمى Heartbleed تم اكتشافه في مكتبة تشفير OpenSSL قبل عدة أشهر من الاختراق.

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

هذا هو المكان الذي يأتي فيه "التشويش".

ما هو هجوم التشويش؟

التشويش ، اختبار الزغب ، أو هجوم الغموض ، هي تقنية اختبار برمجية آلية تُستخدم لتغذية بيانات عشوائية أو غير متوقعة أو غير صالحة (تسمى fuzz) في برنامج. تتم مراقبة البرنامج بحثًا عن السلوكيات غير المعتادة أو غير المتوقعة مثل فيضان المخزن المؤقت ، والأعطال ، وتسرب الذاكرة ، وتعليق مؤشر الترابط ، وانتهاكات الوصول للقراءة / الكتابة. ثم يتم استخدام أداة التشويش أو المصهر للكشف عن سبب السلوك غير العادي.

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

تستخدم Fuzzers في البرامج التي تأخذ مدخلات منظمة أو لديها نوع من حدود الثقة. على سبيل المثال ، سيكون للبرنامج الذي يقبل ملفات PDF بعض التحقق من الصحة للتأكد من أن الملف يحتوي على امتداد pdf ومحلل لمعالجة ملف PDF.

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

تكتشف Fuzzers موجهات هجوم تشبه إلى حد كبير وتتضمن أمثال حقن SQL والبرمجة النصية عبر المواقع وتجاوز المخزن المؤقت وهجمات رفض الخدمة. كل هذه الهجمات ناتجة عن تغذية بيانات غير متوقعة أو غير صالحة أو عشوائية في النظام. 

 

أنواع الألغاز

يمكن تصنيف الألغاز بناءً على بعض الخصائص:

  1. أهداف الهجوم
  2. طريقة إنشاء الزغب
  3. الوعي ببنية المدخلات
  4. الوعي بهيكل البرنامج

1. أهداف الهجوم

يعتمد هذا التصنيف على نوع المنصة التي يستخدمها المصهر لاختبارها. تستخدم Fuzzers بشكل شائع مع بروتوكولات الشبكة وتطبيقات البرامج. كل منصة لها نوع معين من المدخلات تتلقاها ، وبالتالي تتطلب أنواعًا مختلفة من الألغاز.

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

يجب أن تتعامل Fuzzers التي تتعامل مع بروتوكولات الاتصال مع الحزم. يمكن للأزرار التي تستهدف هذه المنصة إنشاء حزم مزورة ، أو حتى تعمل كوكلاء لتعديل الحزم التي تم اعتراضها وإعادة تشغيلها.

2. طريقة إنشاء الزغب

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

ومع ذلك ، بينما يمكن نظريًا إنشاء بيانات تتجاوز حدود الثقة ، فإن الأمر سيستغرق وقتًا وموارد كبيرة للقيام بذلك. لذلك تُستخدم هذه الطريقة عادةً للأنظمة ذات هياكل الإدخال البسيطة.

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

هذا النهج أكثر ذكاءً من الأسلوب السابق ويضيق بشكل كبير التباديل الممكنة. تسمى Fuzzers التي تستخدم هذه الطريقة الزغب القائم على الطفرة

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

تتم إزالة مجموعات البيانات الأسوأ أداءً من تجمع البيانات ، بينما يتم تغيير أفضلها و / أو دمجها. ثم يتم استخدام الجيل الجديد من البيانات لاختبار الزغب مرة أخرى. يشار إلى هذه الألواح باسم الألغاز المستندة إلى الطفرات التطورية.

3. الوعي بهيكل المدخلات

يعتمد هذا التصنيف على ما إذا كان المصهر على دراية بهيكل إدخال البرنامج ويستخدمه بنشاط في توليد بيانات الزغب. أ فوزر غبي (فزر غير مدرك لبنية إدخال البرنامج) يولد ضبابًا بطريقة عشوائية في الغالب. يمكن أن يشمل ذلك كلاً من التوليد والقائم على الطفرات. 


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

4. الوعي بهيكل البرنامج

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

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

من ناحية أخرى ، يستخدم اختبار المربع الأبيض نموذجًا للبنية الداخلية للبرنامج لإنشاء بيانات زغب. يتيح هذا الأسلوب وصول المصهر إلى المواقع الحرجة في البرنامج واختباره. 

أدوات التشويش الشعبية

هناك الكثير من التشويش أدوات هناك تستخدم من قبل مختبري القلم. ومن أشهرها:

حدود التشويش

في حين أن Fuzzing هي تقنية مفيدة حقًا لاختبار القلم ، إلا أنها لا تخلو من عيوبها. بعض هؤلاء هم:

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

 

ومع ذلك ، فهي أداة مفيدة وضرورية جدًا لأي شخص يريد اكتشاف الأخطاء قبل الأشرار.

وفي الختام

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

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

ابدأ في التشويش اليوم!