ماهو Bug Bounty
السلام عليكم ورحمة الله وبركاته
--------------------
الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد :-
--------------------
# ماهو BugBounty :-
هو برنامج يهدف إلى تمكين الباحث من البحث عن الثغرات الأمنية لدى جهة معينه (عميل) "مصرحه قانونيا للباحث أن يبحث عن الثغرات الأمنيه" لتقوم بمكافئته لإكتشافه ثغرة لديهم وتعزيز الأمان لديهم إما مكافئه مالية أو إعترافا بإكتشافه لهذه الثغرة لديهم أو هدية مقدمة منهم
---------------------
# هل للBugBounty دورات تعليمية أو كتب لتعلمه :-
لا, Bug Bounty ليس مجال علمي لكي تتعلمه بل هو مجرد إتفاقية بين أطراف ينتفع منها الجميع, الباحث يجد الثغرة, والعميل يكافئك على إكتشافها وإبلاغه بذلك وإنتهى الأمر, لكن يبقى السؤال يتراود في ذهن المبتدئين! "إذن إذ لم يكن مجالا علميا نستطيع تعلمه ف كيف تعلم الباحثين ؟" ! سؤال سأجاوب عليه في الحال لكسر الشكوك والكذب على الناس بما يتعلق بمسميات وهمية للكتب والدورات لا أساس لها سوى استدراج الناس إلى المحتوى الكاذب وسوف أشرح لماذا قلت محتوى كاذب, لكن أولا سأرد على السؤال السابق
-----------------------
# "إذن إذ لم يكن مجالا علميا نستطيع تعلمه ف كيف تعلم الباحثيين ؟" :-
هذا السؤال يراود الكثير فور قراءة ماسبق وجوابه في الواقع هم لايتعلمون Bug Bounty ! بل يتعلمون إحدى المجالات المستخدمه في Bug Bounty ألا وهي لا للحصر
* لا أسعى هنا لجعلك Script Kiddie ضعها في ذهنك قبل القراءة, إذا كنت تعتقد هناك أدوات ستقوم مقامك وتفعل كل شيء وأنت تحتسي القهوة ف هذه المقالة ليست لك وإبقى Script Kiddie كما أردت فالهدف الرقي بالمستويات من الصفر فهناك الكثير من Script Kiddies ولكن قليل عدد الخبراء والمحترفين وهم دائما من يحصلون على القضمة الكبيرة.
* جميع ماسوف أقترحه من دورات وكتب سوف أقترحها لك عن تجربة أو وفق أراء الخبراء في تلك المجالات وسوف تكون تعتمد على الجانب العملي (يجب ان تطبق) لتخرج منها تتقن ماأرادت منك تعلمه
- Binary exploitation مثال : https://hackerone.com/reports/832750
مجال Binary exploitaion يصف إستغلالات للثغرات الأمنية التي قد تتواجد في compiled programs وتتطلب منك خبرات في لغات البرمجة التي سوف تساعدك في فهم كيفية عمل compiled programs وتحتاج إلى معرفة بلغة البرمجة Assembly من أجل disassembler ولغة C من أجل decompilers وهنا دورة مدفوعه لتعلم لغة Assembly ستعلمك كل ماتحتاجه لتتعلم لغة الأسيمبلي
https://www.xorpd.net/pages/x86_adventures.html
ودورة لتعلم C
C (مدفوعه)
https://www.udemy.com/course/c-programming-tutorial-for-absolute-beginners
بعد ذلك نتجه إلى دورات Binary exploitaion
دورة مجانية من liveoverflow
https://www.youtube.com/watch?v=iyAyN3GFM7A&list=PLhixgUqwRTjxglIswKp9mpkfPNfHkzyeN
ودورة عربية مجانية من الدكتور علي تطرق أيضا فيها إلى Binary exploitaion
https://twitter.com/binaryz0ne/status/1290868861978513408
ودورة مدفوعه من eLearnSecurity منتهية بحصولك على شهادة eCXD
https://elearnsecurity.com/product/ecxd-certification
طبعا مجال Binary exploitaion مختلف عن Reverse Engineering ف مجال RE متشعب ولاتحصره معرفة بلغات برمجة محدده بل يحدده هدفك إذا كان مثلا تستهدف برامج مكتوبة بلغة #C فأنت تحتاج ان تكون ذو معرفة في لغة #C لكي تفهم كيفية عمل هدفك وقد يدخل RE في عدة مجالات أخرى ومن ضمنها Binary exploitaion
- Mobile Security مثال : https://hackerone.com/reports/200427
مجال Mobile Security هو مهتم في تطبيقات الجوال من النواحي الأمنية إن كانت على iOS/Android/etc
في Android Mobile Security يجب على الأقل أن تكون متقنا للغة البرمجة Java لأن Decompilers ستعطيك Decompiled Code (ليس بالشرط 100% صحيح لكن قدر المستطاع) عبارة عن Java code تستطيع منها معرفة كيف يعمل البرنامج او جزء منه وهنا دورة عربية من الأستاذ عبدالله عيد لتعلم لغة Java
https://youtube.com/playlist?list=PL28DDB2DCF87BEE43
وهنا كيفية عمل RE لتطبيقات الأندرويد
https://medium.com/level-up-programming/how-to-reverse-engineering-an-android-app-be5835f6fa1e
ولايتجلل هذا التوجه مجرد RE للتطبيقات إنما تدخل Network Security فيه من sniffing للطلبات التي تأتي من التطبيق وأيضا النواحي الأمنية مثل SSL Pinning التي تمنع sniffing ومن أفضل الدورات الحالية لهذا التوجه هي دورة eMAPT المقدمة من eLearnSecurity المنتهية بحصولك على شهادة eMAPT :
https://elearnsecurity.com/product/emapt-certification
وأيضا كتاب Android Security Internals
أما في iOS Mobile Security يختلف الأمر حيث أن إستخراج Source Code تطبيقات iOS أصعب من Android بسبب كونها محمية من نظام Apple's DRM حيث يقوم بتشفير أجزاء معينة من التطبيق بمفتاح UID مما يتطلب عملية decryption جهاز لديه جيلبريك لتشغيل unsigned code عليه وأفضل دورة تتحدث عن iOS Mobile Security هي الدورة المقدمة من Pentester Academy
https://www.pentesteracademy.com/course?id=2
وهنا paper ممتاز للقراءة عن iOS Mobile Security
- Web Application Security مثال : https://hackerone.com/reports/507132
مجال WebApp Security يعنى بكل ماهو مختص في حماية web applications مما يعني أن تعلم HTTP Packets ومايتجللها وأساسيات البرمجة ولغات البرمجة والتقنيات الشهيرة في صناعة تطبيقات الويب مثل لغة PHP (ليس حصرا) التي تمتلك عدد كبير من الثغرات التي تستطيع التعرف عليها والتعلم عليها (ليس المقصود ان PHP ضعيفة أمنيا) وهذه دورة عربية مجانية من الأستاذ عبدالله عيد لتعلم لغة PHP
https://youtube.com/playlist?list=PL66NrejTZbSBl7l27q8lCTxqRWCWpTdsh
ومسار Full Stack Development المدفوع من الأستاذ عبدالمجيب
https://www.flexcourses.com/paths/full-stack-developer
ونأتي إلى دورات WebApp Security ومن حسن الحظ أن أفضلها مجانيه, دورة عربية من الأستاذ إبراهيم حجازي
https://youtube.com/playlist?list=PLv7cogHXoVhXvHPzIl1dWtBiYUAL8baHj
وأكاديمية Web Security من Port Swigger
https://portswigger.net/web-security
وهنا دورتين من eLearnSecurity مدفوعه منهية بحصولك على شهادة eWPT/eWPTX
https://elearnsecurity.com/product/ewpt-certification/
https://elearnsecurity.com/product/ewptx-certification/
وهنا دورة AWAE المقدمة من Offensive Security المنتهية بحصولك على شهادة OSWE
- Browser Security مثال : https://hackerone.com/reports/175979
مجال Browser Security يختص بكل ماهو له علاقة بحماية المتصفحات من JS Engines إلى WebAPIs التي توفرها المتصفحات ويستلزم هذا المجال معرفة في لغات البرمجة التي تم الكتابة بها JS Engines و WebAPIs وهنا مقال من الأستاذ وسام تحدث فيه عن Browser Security
- الخ.. (فور توفر دورات مجربه سوف أحدث الموضوع)
أي أن في واقع الأمر عندما تريد الدخول والربح من Bug Bounty فأنت يجب أن تدخل إحدى المجالات المستخدمه في Bug Bounty
------------------------
# وهم الكتب والدورات التعليمية :-
نعم! وهم! عندما ترى شخصا يكتب "دورة Bug Bounty" ولا ترى سوى مواضيع متعلقه بمجال Web Application Security ف هذا وهم!! لايستطيع أحد تجميع كل المجالات المستخدمه في Bug Bounty في كتاب او دورة تعليميه ولو وجدت (وهذا أمر لم ولن يحدث) سيكون الأسم Offensive Security وليس Bug Bounty لكن الدورات الحقيقية التي يجدر عليك البحث عنها هي دورات المجالات المستخدمه في Bug Bounty لأن هذا سوف يجعلك تصب تركيزك في مجال واحد حتى تبدع فيه وقد تتعلم مجالات أخرى "هذا الأمر عائد لك" وتستفيد من معرفتك تلك في Bug Bounty, إذن! ماذا يجب علي أن أعرف في Bug Bounty ؟ الجواب: الجانب القانوني
----------------------
# الجانب القانوني :-
أكثر نقطة يجب الإنتباه إليها! الجانب القانوني يجب أن ينتبه إليه الجميع بقراءة الشروط المتواجده في المنصه التي ستبلغ منها, ومع وجود عرف سائده بين Bug Bounty Hunters يجب أن تنتبه إليها:
- لاتتحدث بشيء عن الثغرة مالم يتم السماح لك بذلك حتى نوعها لو لم تسمح لك الشركة بالتصريح عنها فلاتتحدث عنها
- لاتسأل! لاتسأل! لاتسأل! لاتسأل عن الثغرة مالم يقوم الباحث بنشرها بتفاصيلها بنفسه
- لاتعرض نفسك للخطر من أجل جعل الناس تصدقك (ضعها في ذهنك في النهاية الهدف المكافئة ليس إلا)
-----------------------
# نصائح عامه :-
- لاتجعل bug bounty مصدر دخلك "الوحيد" بل "الأضافي" قدر المستطاع
- قراءة التقارير و write-ups لثغرات منشوره من أصحابها وتطبيقها في بيئه مخصصة
- الممارسة ثم الممارسة (شيء قرأته ولم تطبقه بنفسك "لافائدة منه في bug bounty")
- البرمجة مهمه جدا لتخرج من مرحلة Script kiddie لاتتعذر ب XXX$ أستلمتها بالحظ بأستخدامك أداة dirb
- مرة أخرى: لاتسأل شخص عن ثغرة لم ينشرها
- كن الضحية قبل ان تكون المهاجم في main targets
يجب ان تفهم الهدف وماهي خصائصه اللي يقدمها ومميزاته ومالمعلومات الشخصية اللي يقدمها لك ! أي يجب ان تكون اولا المستخدم العادي لكي تفهم الهدف او scope ثم تحاول اكتشاف الثغرات لأنك سوف تكون على درايه بالطريقة المتبعه في هدفك.
------------------------
# منصات Bug Bounty :-
هذه المنصات تقدم برامج Bug Bounty موفره البيئة السليمة لذلك وتستطيع البحث عنها في Google والإستفادة منها
HackerOne
Bugcrowd
BugBounty.sa
Synack
Bounty Factory
Open Bug Bounty
HackTrophy
BountyGraph
PlugBounty
intigriti
HackenProof
Zerocopter
Cobalt
SlowMist
قد يكون هناك برامج Bug Bounty لدى جهات لوحدها (أي لم تدخل أي منصة Bug Bounty) تستطيع أن تجدها عن طريق البحث في Google عنها
# تقارير Bug Bounty :-
هنا مجموعة من تقارير Bug Bounty التي تستطيع التعديل عليها
https://github.com/ZephrFish/BugBountyTemplates
------------------------
والسلام خير ختام
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !