![]() |
إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. السلام عليكم و رحمة الله سنتكلم عن موضوع بسيط حول إكتشاف ثغرات البرامج بإستخدام طريقة فحص السورس و الهندسة العكسية لإيجاد الخطأ البرمجي. لما نريد أن نفحص برنامج من الثغرات فأول شيء لازم نعرف خصائص البرنامج: - نوع البرنامج. - وظيفته. - مفتوح أم مغلق المصدر. - تحديد مدخلات البرنامج (user inputs) مثلا : عملية login في سيرفير FTP. 1- إكتشاف و تحليل الثغرة بفحص السورس: سنفترض أن البرنامج مفتوح المصدر. يعتبر فحص السورس من أفضل الطرق للكشف عن مكان الثغرة بدقة, لكن ماذا لو كان البرنامج كبير فإن قراءة مئات الأسطر من الأكواد أكيد متعب و يأخذ وقت. لهذا تم توفير أدوات تقوم بعمل فحص أوتوماتيكي للدوال المصابة و المستعملة بطريقة غير آمنة. ملاحظة: لا تعتبر هذه الأدوات فعالة 100% لأنها تعتمد على البحث عن الدوال المصابة و الطرق المعروفة للحصول على user inputs (recv,argv…)l لأن من الممكن أن نجد كود يحتوي على دوال خاصة بالبرنامج و طرق مختلفة للحصول على البيانات من المستخدم و لهذا فالفحص اليدوي ينفع في هذه الحالات. من بين هذه الأدوات RATS يدعم فحص عدة لغات C,C++,php,ruby,python,perl… بإستخدام قواعد بيانات xml تحتوي على دوال غير محمية. الآن لنجرب السكريبت على برنامج مصاب ( الكود مأخوذ من أحدى مقالات SecurityCompass). البرنامج عبارة عن سيرفير يتنصت على البورت 200 و يستقبل بيانات من client اقتباس:
اقتباس:
-w 1: إظهار الدوال التي خطورتها عالية. 1-High, 2-Medium, 3 Low -d : تحديد نوع القاعدة التي بها الدوال اللازم فحصها في هذه الحالة البرنامج بال c++ نستخدم rats-c.xml ناتج الفحص كان كالتالي: http://img534.imageshack.us/img534/7205/captureab.jpg نستطيع تقسيم ناتج الفحص إلى قسمين: 1-قسم إظهار المتغيرات ذات الحجم المحدود (fixed size) و التي يمكن أن يكون لها إستخدام غير صحيح فيما بعد (فيض في الذاكرة مثلا). 2-قسم إظهار الدوال المصابة مع توضيح تلميح حول كيفية تجنب حدوث الثغرة. في مثالنا نلاحظ تحذيرين نبدأ بالثاني و اللذي يتعلق بالدالة recv اقتباس:
لكن التحذير يقول أنه يجب عمل تحقيق آخر في حالة ما إذا تم إستخدام نفس المتغير خلال عملية أخرى و هو الحال الذي سنراه بالنسبة للدالة strcpy الموجودة في الدالة اقتباس:
الآن داخل دالة pr() اقتباس:
2- إكتشاف و تحليل الثغرة بإستخدام الهندسة العكسية : نفترض الآن أننا لا نملك سورس البرنامج في هذه الحالة سنلجأ إما إلى fuzzing أو reverse engineering سنتكلم عن الخيار الثاني. لعمل ذلك سنستخدم برنامج IDA. ميزة هذا disassembler هو أنه يستطيع إستخراج الدوال الخاصة بالبرنامج حتى أسماؤها و الparameters الخاصة بها. بالإضافة إلى العديد من الخصائص التي تميز هذا البرنامج. http://img13.imageshack.us/img13/5307/graphfunc.jpg لنفحص الآن كود دالة pr() http://img534.imageshack.us/img534/7...shot1copie.jpg نلاحظ أن البرنامج إستطاع تحديد حجم المتغير buf 500 bytes. -القسم ما قبل par1 :هو عبارة عن prologue الدالة يعني تهيئة المكدس و حفظ المسجل esp و ebp… بالإضافة إلى وضع الcanary(******)l هذا لأن عملية ترجمة البرنامج كانت بإضافة GS Flag. -Part1: هنا تتم تهيئة المتغير buf لملأ محتواه عن طريق دالة memset كما نعلم دالة memset بها 3 parameters اقتباس:
اقتباس:
اقتباس:
اقتباس:
الآن بعد أن أصبح buf جاهزا لتلقي التسونامي سيتم إستدعاء الدالة strcpy اقتباس:
1-Destination: و سيكون buf اقتباس:
اقتباس:
أظن أن بعد إكتشافنا للثغرة و بعد هذا التحليل البسيط نكون قد أنهينا العملية المصـــدر |
thanks |
مشكوووووووووووووووووووووووووووور يا غالي |
منورين موضوعي |
بارك الله بك تحياتي |
[align=center]مشكور ياغالي ... واصل ابداعك ... تحياتي[/align] |
thnX |
بـــصراحه درســ جــدأ جـــباااار تـــابع وعطــينا جديدك يا مــذهل تحــياتي . . |
ممتازززززززززززززززز |
موضوع رائع |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. Speical Thanks - Bent Syria |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. وفقك الله |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. ششششكرا أخوي ما قصصصرت |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. thanks broo |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. مشكووووووووووووووووووور |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. thankkkk you |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. مشكوووووووووووور والله يعطيك العااااااافيه |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. ثانكيو |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. شكرآ يعطيك العآفيه |
رد: إكتشاف و تحليل الثغرات : فحص السورس و الهندسة العكسية. merciiiiiii |
الساعة الآن 03:27 PM |
[ vBspiders.Com Network ]