مقال : لماذا البرمجة مهمة في إختبار الإختراق
تقيمك :من أكثر الأسئلة التي تطرح هي إن كان تعلم البرمجة أمر مهم لمختبر الإختراق أم لا. الإجابة على هذا السؤال ستختلف من شخص لآخر خصوصاً أن مجال إختبار الإختراق أقرب للشبكات من البرمجة. فلو كان التخصص إكتشاف وتحليل ثغرات فالجواب نعم طبعاً أما إختبار إختراق فالبعض أصبح يشكك بالموضوع.
لأقرب الصورة أكثر هل من الضروري أن يستخدم الطباخ وصفات خاصة به ليجيد الطهي؟ الجواب لا! لكن مالفرق بين هذا الطباخ وآخر يستخدم وصفاته الخاصة ويصنع وجبات لن تجدها عند غيره؟ الأمر متشابه جداً في مجال إختبار الإختراق خصوصاً مع التطور الكبير الحاصل في الأدوات من حيث الأتمتة الكاملة وسهولة الإستخدام ولك مشروع ميتاسبلويت أو CoreImpact كمثال فباستخدام هذه الأدوات الإختراق أصبح مثل الأفلام ولم يعد تنفيذ إختبار الإختراق أمر صعب أو يتطلب خبرة كبيرة!
الأمر الآخر هو أن الشهادات التي تعطى لمختبري الإختراق لا تختبرهم برمجياً بل بإعطائهم بعض السيناريوهات التي يفترض أنها تحاكي الواقع وعلى الشخص إستخدام أدوات جاهزة لانهاء المطلوب منه. حسناً أين المشكلة في ذلك؟ ببساطة الواقع مختلف خصوصاً عند التكلم عن الإختراق! فغالباً أنت ستحصل على حالات وسيواجهك مشاكل لم تصادفها من قبل. بمعنى آخر الإختراق ليس 1 2 3 تم الإختراق! كلما إزدادت ممارستك ومعرفتك ستزداد فرصتك بتخطي هذه المشاكل والعقبات التي ستواجهها وإن كنت تجيد البرمجة ففرصتك بالنجاح ستتضاعف.
لأطرح مثال بسيط. تخيل معي مختبر إختراق يستخدم مشروع ميتاسبلويت لتجربة إحدى الثغرات. أثناء التنفيذ إستغلال الثغرة بدء بالعمل لكنه لم ينجح! بهذه الحالة مختبر الإختراق لا يستطيع أن يكتب بتقريره بوجود ثغرة Remote Code Execution طالما لم يتمكن من إثبات وجودها أو إستغلالها لكن لو كان هذا الشخص مبرمج سيحاول تعديل كود الثغرة أو الإستغلال وفرصة نجاحه ستكون أكبر بكثير!
مثال آخر. مختبر إختراق في مرحلة إكتشف ثغرة SQL Injection. لم يتمكن من الوصول للإستغلال النهائي وجميع محاولاته فشلت. بهذه الحالة سيضطّر هذا الشخص لإعتبار الأمر على أنه خطأ بإستعلام SQL Injection يؤدي لكشف بعض المعلومات عن قاعدة البيانات ومستوى خطورته متوسط مثلا كون الإستغلال لم ينجح معه! لكن لو كان هذا الشخص يجيد البرمجة ويستطيع الإطلاع على الكود المصدري سيعرف سبب عدم نجاح إستغلاله وكيف يعمل الفلتر المستخدم مثلاً وهنا فرصته بالوصول لإستغلال ناجح أيضاً ستكون أكبر بكثير!
البرامج والأدوات لا تستطيع التفكير والتحليل وهي جيدة لإكتشاف الثغرات المنتشرة لكنها بكل تأكيد ليست كافية.
سنة 2010 إنتهت تقريباً وركزنا خلالها على برمجة المشاريع والأدوات. شخصياً أعتبرها ناجحة حتى إن لم ننهي جميع المشاريع التي بدأناها. في 2011 سنحاول التركيز على المحتوى أكثر خصوصاً البرمجة وبإذن الله سأبدء أنا والأخ زيد القريشي بنشر سلسلة شروحات فيديو عن لغة Ruby و Python سوياً (كونهم الخيار الأفضل لمختبري الإختراق). الشروحات ستكون موجهة لإستخدام هذه اللغات في إختبار الإختراق حيث سنمر على الأساسيات بشكل سريع ثم ننتقل مباشرة لبرمجة أدوات وسكريبتات مختلفة لتكون مدخل للجميع للبرمجة وتمكن المهتمين من برمجة وكتابة أدواتهم بأنفسهم وقد يتضمن الأمر بعض المسابقات أيضاً 😉
عن الكاتب:
عبدالمهيمن الآغا, مؤسس موقع iSecur1ty. مختص بالحماية وأساليب إختبار الإختراق. أملك خبرة في إدارة الشبكات والسيرفرات, تطوير المواقع والبرمجة بلغة Ruby التي برمجت بها عدّة مشاريع وأدوات مفتوحة المصدر.

مختبر إختراق من الأردن أحب كل ما يتعلق بأمن المعلومات ، أساهم في كتابة العديد من المقالات والتحديات في مُجتمع iSecur1ty ، أحب البرمجة بلغة python ولدي خبره في إدارة السيرفرات وبناء الأنظمة.
التعليقات
Silver
28 ديسمبر، 2010 الساعة 2:10 مبارك الله فيك اخوي عبدالمهيمن واخوي زيد والقائمين على الموقع …
مالفرق بين اللغتين ؟؟؟ … بانتظار الشروحات
masterlinux
28 ديسمبر، 2010 الساعة 3:29 مسأكون من المتابعين ان شاء الله
لكن لو تكرمتم نريد ان نركز أيضآ على مواضيع متقدمه فى الفايروول والبروكسى
نادر
28 ديسمبر، 2010 الساعة 3:37 مالسلام عليكم..
في أول مشاركة لي أحب أحييكم جميعاً, و أهنئكم على هذا المجتمع الهادف.
بالنسبه للموضوع, في إعتقادي أن الإجابه دائماً نعم, بشرط أن يمتلك المختبر خلفيه جيدة وواسعه في أشياء أخرى أهم. كأن يمتلك معلومات جيده عن إستغلال ثغرات مختلفه, معرفه الأدوات المناسبه, الشبكات, أنظمة التشغيل, تطبيقات الويب .. و هكذا.
إتقان البرمجة بلغة أو أكثر بالتأكيد ستساعد المختبر في أموراً كثيرة, فكما ذكر الأخ عبدالمهيمن, من الممكن أن تساعد في إستكمال ثغرة ما, أو حتى كتابه برنامج خاص له لإستغلال معين و إختصار الوقت.
القصه مختلفه مع تخصص إكتشاف و تحليل الثغرات, فالبرمجة تطغى هنا.
موضوع رائع
شكراً
saudi isecurty
28 ديسمبر، 2010 الساعة 3:37 مبارك الله فيك اخي بس عندي … انا كنت سابقاً لا أدري من أيداء لغة البرمجه
وماهي الأفضل هذا السؤال الذي نرفزني كثيراً وحتى الآن لم اجد له أجابه 🙂
hak4
28 ديسمبر، 2010 الساعة 3:39 مانا مستعد ل2011
تعلمت الكثير من الموقع في 2010
انتظر الجديد منكم
Net-Geek
28 ديسمبر، 2010 الساعة 3:41 مشكرا لك اخي عبدو على التحليل الاكتر من رائع متل عادتك يا اخي
ولكن عندي سؤال بخصوص المبتدأ بالبرمجة قرات العديد من الكتب وحتى مقالاتك لكن كنت أنتظر بعد الشروحات والدروس من عندكم لانني ومن غير مجاملة أرى نفسي أستفيد من بيتنا هدا اكتر من أي مكان أخر وهدا بفضل جهدكم الواضح =)
لكي لا نبتعد عن سؤالي هل هذه الدروس والشروحات ستشمل أيضا الاشخاص المبتدإين في مجال البرمجة أم ماذا ؟
وسنة طيبة على الجميع =)
saleh abbas
28 ديسمبر، 2010 الساعة 3:47 مأشكرك أستاذى الفاضل على المقال الذى أوافقكم الرأى به، وطالما يريد الإنسان الناجح ألا يكون مُجرد شخص يستخدم بضع أدوات فقط، وإنما يود أن يُطور ويُبرمج أدواته الخاصة إلى جانب الأدوات التى تمت برمجتها مُسبقًا، ولكن لماذ أفضل لغتين فى برمجة أدوات الإختراق والإسكربتات وماشابه هما بايثون وروبى، ولم تذكر الجافا والبى اتش بى؟
وشكرًا لكم
Abed
28 ديسمبر، 2010 الساعة 4:22 منحن في الانتظار
الله يقويكو
sherif
28 ديسمبر، 2010 الساعة 4:32 ماختلف معك فى هذه النقطة فالاساس هنا هو الشبكات و لها الاولويه قبل البرمجه فالان معظم الشهادات كما ذكرت مثل ceh و شهادات san لا تركز على البرمجه بشكل اساسى بل تعطيك الكثير و الكثير من الادوات تسطيع استخدامهم عند الحاجه , و برامج اختبار الاختراق الان اصبحت اكثر تعقيدا مما كانت عليه من قبل فهناك تقرير من شركة سيسيكو كانت تتكلم عن تطور هذه البرامج فى السبع سنوات الاخيرة ,و استخدام هذه البرامج يختلف من شخص الى اخر كل حسب مهارته و خبراته مع الاداه او البرنامح فلو ركزت فى تعلم اسرار و خفايا اى من الادوات الموجوده و تعلم ادق تفاصيلها و التطبيق لهجمات منظمة سواء كانت حقيقية او عن طريق اجهزة وهميه ستتختلف كثيرا عن اى مستخدم عادى للاداه
و اتقانك لكثير من البرامج و الادوات و توفر المهاره اللازمة لتحديد ماذا تستخدم حسب الحاله التى امامك سيكون افضل بكثير من التعلم البرمجه نفسها , حتى بتعلم البرمجه وعدم التعمق بها لن تستطيع ان تقوم بشىء احترافى
M.B.O
28 ديسمبر، 2010 الساعة 4:33 مالبرمجة ماهي الا عبارة عن خطوات لحل المشكلة او بناء شي معين
ومختبر الاختراق يقوم بخطوات معينة اذا نجحت كان بها ما نجحت جرب غيرها
الامرين مشتركين في المنطق ويختلفون في الية التنفيذ فقط
وشي طبيعي ان يكون المخترق مبرمج ,, لان المبرمج هو في الاساس عنده منطق البرمجة
فشي سهل عليه انه يختبر الاختراق
اما الشخص الذي لا يفهم منطق البرمجة صعب يختبر الاختراق
^_^
prince
28 ديسمبر، 2010 الساعة 5:06 ممشكور اخي على المقال الرائع
فانا من محبي البرمجة وكنت انتظر شروحاتكم في هذا المجال بما انها مفيدة في مجال اختبار الاختراق
ووفقك الله اخي عبد المهيمن واخي زيد في ماتقدمانه
فكل التقدير والشكر
B4r4k47
28 ديسمبر، 2010 الساعة 5:31 مما اللذي يجعل الـ Black Hats (الحقيقيين) متقدمين دائما؟
احترافهم للبرمجة. اما اذا كان الشخص معتمد على الأدوات
فقدراته محدودة بقدرة الأداة.
Hit-Man
28 ديسمبر، 2010 الساعة 1:04 مالسلام عليكم أخي
في البداية اشكرك على المقال الجميل أخي
نعم أشاطرك الرأي اخي من ناحية أن البرمجة سوف تضاعف فرص النجاح و أنا اختبار الاختراق اقرب للشبكات .
وننتضر أخي دروسكم حول الروبي و البايتون بفارغ الصبر
و اضافتكم في الشريط الاعلى للبرمجة يدل على أنكم تريدون 2011 عام برمجي
تحياتي لكم يا أساتدتنا
بالتوفيق و نحن ننتضر الدروس
Ahmed Abdo
28 ديسمبر، 2010 الساعة 1:09 مشكرا لك على المقال التحليلي الرائع عن اهمية البرمجة وفي رأيي الشخصي ان البرمجة ضرورية جدا حتى انها دخلت في مجال مدراء الانظمة وسياتي علينا الوقت وهو (التطور اوالموت) ولذلك البرمجة شئ ضروري للغاية لانك عندما تتعلم البرمجة تكون اخذت التحكم المطلق في جهازك ولا يوجد حدود لما يمكنك فعله.
والان ايضا تتجه الشركات الى حركة DevOPS والتي بدورها تنادي على البرمجة والاوتوماتيكية في التعامل مع الانظمة ويعتبر ضروري في مهنة تكنولوجيا المعلومات.
أنتظر على فارغ الصبر شروحاتك انت واخي زيد ووفقكم الله
تحياتي واحترامي 🙂
فتحي القيسي
28 ديسمبر، 2010 الساعة 1:10 مبسم الله الرحمن الرحيم
شكرا كثير اخي مقال فوق الرائع,ان شاء الله سوف تكون دروس رائعة ان شاء الله
ولاكن اي من اللغات سوف يتم التركيز عليها اكثير,اقصد اي سوف يتم ادراجها هنا في
isecur1ty حتى يتم التركيز عليها اكثير (:
Hit-Man
28 ديسمبر، 2010 الساعة 1:16 مأخي على ما اعتقد أنه الاخ عبدالمهيمن سوف يركز على Ruby
و الاخ زيد القريشي على البايتون
و الله اعلم
فتحي القيسي
28 ديسمبر، 2010 الساعة 1:51 مشكرا اخي Hit-Man على تعليقك,الان نشوف رد الاخ عبدالمهيمن الآغا
عبدالمهيمن الآغا
28 ديسمبر، 2010 الساعة 1:54 مكلامك صحيح أخي.. أنا سأشرح عن روبي وزيد عن بايثون إن شاء الله ويمكن للمستخدم إختيار إحدى اللغتين وبدء البرمجة بهم.
بالنسبة للرابط فحصل خطء في ظهور قسم البرمجة في القائمة الرئيسية عوضاً عن قائمة المقالات.. تم تصحيحه الآن.
أخ أحمد وفتحي.. أسعدني مروركم =)
سعد المطيري
28 ديسمبر، 2010 الساعة 1:58 مالسلام عليكم
يسعدني شكركم على ما تقدمونة من مشاريع و دروس في مجال الحماية و أختبار الاختراق
سوف اكون من متابعينكمـ
SaibEr
29 ديسمبر، 2010 الساعة 3:26 صكل سنة وانتم طيبين
بداية موفقه ؛ واثراء للحماس مع بداية السنة الجديدة
فراس الخطيب
29 ديسمبر، 2010 الساعة 3:44 صبالتوفيق وهذا ما نسميه H4x0r . البرمجة بشكل عام هية الطريق الذي يسلكه الاشخاص المهتمين في تطوير قدراتهم وامكانياتهم في كلا المجالين الحماية والهاكينج .
وعدم الوقوف عند ماهو مطروح بل برمجة الادوات والتولز الخاصة به بصناعة يده .
Third9
29 ديسمبر، 2010 الساعة 9:37 صجميل جدا وجزيت خيرا
معاتب
29 ديسمبر، 2010 الساعة 10:14 صعليكم السلام ورحمه الله وبركاته
جميل جدا اخي ونحن ننتظر واتمنى ان نحترف اللغتين اللتي ذكرتهما وانا سوف ابدا بالبايثون معكم وسوف احترفها
بالبرمجه مهما في عالمنا الخفي وجميل ان يتعلم الشخص لغه برمجيه تفيده قبل ان تفيد غيره
فلذا سجلت الان وشاركت لأول مره لأحييك على الفكره لانها بالفعل مفيده وشيء جميل
واتمنى ان نخرج جميعا من هذه اعلدورات محترفين بايثون و روبي
لذا كل الأمل بالقائمين على الدورتين ان يخرجوها على اكمل وجه وان يعلمونا هذه اللغلتين
ننتظر …
sp33dykiller
29 ديسمبر، 2010 الساعة 1:25 منحن في انتظار شروحات ال Ruby و python بفارغ الصبر ^^
ibrahim
31 ديسمبر، 2010 الساعة 3:11 صالبرمجة مهمة جدا في الاختراق وخصوصا لشخص يطمح لتطوير قدراته
وانا كنت قد بدأت مع البايثون منذ أيام وبمقالتك هذه وبذكرك لغة البايثون لقد طمئنتني
هذا وبارك الله فيك
Mohamed El-seman
31 ديسمبر، 2010 الساعة 4:23 مدى اول مرة اشاارك فبها واحيك على ادائك
انتا اتكلمت فى موضوع مهم انتظار فى انتظار شروحاتكم
bakback
2 يناير، 2011 الساعة 7:25 ماتمنى لا تتاخر علينا بالدروس
islamquraini
3 يناير، 2011 الساعة 4:47 ملكم الشكر على هذا المجهود الجبار في زيادة الوعي بالمعنى السليم للهكر واهمية
رده الزهراني
3 يناير، 2011 الساعة 9:12 ميسرني ان اكون عضو معكم هنا في Isecur1ty.org
على الرغم من اني في السنه الفائته اردت ان اكون عضوا هنا
لكن حآل بيننا الظرووف …. وها انا اعود من جديد وان شاء الله نكون ضمن الفريق الذي يسعى إلى رقي الموقع والمجتمع العربي …..
سنبدأ بتعلم لغة البايثون معكم …. دمتم بود
Omar Ahmed
4 يناير، 2011 الساعة 4:17 صشكراً لكم جداً . لقد كنت انتظر هذه الفرصة منذ زمن .
فلغة Ruby ليس لها مصادر تعليم عربية كثيرة .
و أنا منذ مدة أحاول تعلمها .
و لكن تعلمت بعض أساسياتها .
و إن شاء الله أكمل معكم مسيرة تعليم هذه اللغة الرائعة .
و أيضاً لا بأس بمتابعة دروس Python . فبالتأكيد ستكون لغة رائعة .
في انتظاركم .
NASSER
7 يناير، 2011 الساعة 5:49 صالسلام عليكم ورحمة الله وبركاته
اسف على طرح سؤالي هنا حيث اانني لم اعرف اين اضعه او بالاحرى كيف اضعه
ارجو ان تعذروني
سؤالي هو
انني مركب نظام اوبنتو 10.10 بجهازي
واني ادخل االانترنت من مودم انترنت سبيد تتش
ويوجد عندي صديقي لديه ايفون ويقول لي ان لديه برنامج يستطيع اضهار الايبيهات اللتي متصله بالمودم مثل طريقة برنامج net cut او tux net ثمن يستطيع الدخول على جهازي ونقل الصور والملفات !!!!
سؤالي لكم اخواني هل يوجد برنامج للايفون يفعل ذالك ؟؟؟
وهل ذالك ممكن ؟؟؟
واذا كان هالشي ممكن كيف امنع حدوثه ؟
اسف مرة اخرى على الاطاله
تحياتي لكم
NASSER
8 يناير، 2011 الساعة 5:14 صارجوا الرد اخواني ؟؟؟؟؟
ibrahim
8 يناير، 2011 الساعة 7:22 صمن تعليقك رأيت انك تجهل عدة مواقع رائعة لتعلم هذه اللغة
تفضل تابع الدورات الموجودة هنا http://programming-fr34ks.net/smf
وسوف تجد مرادك بحيث يوجد عدة دورات رائعة ومنها دورة لغة الروبي
بالتوفيق
القعقاع
4 يونيو، 2011 الساعة 1:14 صاحسنت اخي فالبرمجة تعنى قدرتك على التطوير حتى لو كنت مبرمج للغة معينة والثغرة او البرنامج مكتوب بلغة اخري
فمفهوم البرمجة ومنطقها واحد
لذلك يستطيع المبرمج اقلمة نفسه وان يكون مدرك لكل متغير يمرره للبرنامج
ذيب المناهيل
21 أغسطس، 2011 الساعة 6:42 مالصراحه من زمان وانا افكر في تعليم لغات البرمجه !!
لاكن الشروحات بسيطه ؟ لم تفيدني حتى اني لم اعرف ماهي لغات البرمجه ؟ هل هي برنامج
او ملفات txt تحتوي علي ملاين الاكواد او او برنامج مثل الفيجوال بيسك , حتى اني لم
اعرف ان لغات البرمجه تفيد في اختبار اختراق المواقع او اختبار اختراق الاجهزه ؟
ننتظركم في شروحات جديده
اوس معن العراقي
15 مارس، 2013 الساعة 2:57 صانصحني من اين ابدا في اي لغة في البرمجة اعطني ال PATH