طريقة سهلة لكسب المال على علة باونتي

الشكل 2


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

مكافآت الأخطاء على البرمجيات الحرة والمفتوحة المصدر - ما هذا؟


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

يمكن العثور على الكثير منها على HackerOne ، ولكن ربما يكون الأكبر هو FOSSA - تدقيق البرمجيات الحرة والمفتوحة المصدر. إنه برنامج للبحث عن نقاط الضعف في مختلف المشاريع مفتوحة المصدر ، برعاية الاتحاد الأوروبي. إجمالي صندوق الجائزة هو مبلغ مثير للإعجاب - يصل إلى 850،000 يورو!

كيف تشارك؟


أولاً ، تحتاج إلى التسجيل في HackerOne . سنحتاج فقط إلى مشاريع مفتوحة المصدر. هناك قائمة كاملة على HackerOne.

إذا كنت ترغب في المشاركة في Bug Bounty من الاتحاد الأوروبي ، فيمكنك العثور على قائمة المشاريع ، المشاركة في هذا البرنامج ، هنا . بالنسبة لمعظم المشاريع ، سيكون تسجيلك على HackerOne كافياً ، لكن العديد من البرامج المدرجة موجودة أيضًا على موقع intigriti.com.

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

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

لكن أين البساطة؟


الجزء البسيط هو أنه لا يتعين عليك تحليل الشفرة يدويًا فقط. هناك أدوات تتيح لك البحث عن الأخطاء في التعليمات البرمجية تلقائيًا. على سبيل المثال - محلل الكود الثابت. أفضل استخدام أداتنا - PVS-Studio . يستطيع محلل PVS-Studio العثور على أخطاء في التعليمات البرمجية ، مكتوبة بلغات C ++ و C # و Java ، بالإضافة إلى واجهة سهلة الاستخدام. بالإضافة إلى ذلك ، هناك العديد من الخيارات للاستخدام المجاني. على أي حال ، هناك العديد من أجهزة تحليل الشفرات الأخرى.

بالطبع ، يمكن للمحللين الاستاتيكيين كشف جميع الأخطاء. لا مانع! بعد كل شيء ، لدينا هدف للعثور على الأخطاء بسرعة وسهولة ، وليس للعثور عليها جميعًا.

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

الشكل 1


مثال على تصفية نتائج التحليل.

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

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

لقطة الشاشة تعرض واجهة Visual Studio. ومع ذلك ، لا تدعها تضللك. يمكن استخدام المحلل ليس فقط كبرنامج إضافي لبرنامج Visual Studio ، ولكن أيضًا من تلقاء نفسه ، بما في ذلك بيئات Linux و macOS .

إيجابيات هذا النهج


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

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

ثالثًا ، غالبًا ما يكون للمحللين معرفة أكثر من البشر. ماذا يعني ذلك؟ اسمحوا لي أن أشرح أفكاري بالمثال من رمز kernel لنظام Android:

static void FwdLockGlue_InitializeRoundKeys() { unsigned char keyEncryptionKey[KEY_SIZE]; .... memset(keyEncryptionKey, 0, KEY_SIZE); // Zero out key data. } 

يبدو ، أين يوجد خطأ هنا؟

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

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

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

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

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

الشكل 4


نقاط الضعف المحتملة


قد يكون في حيرة القارئ اليقظة:

انتظر ، انتظر! من ناحية ، أنت تقول عن البحث عن الأخطاء في التعليمات البرمجية في البرامج ، من ناحية أخرى - أنت تذكر نقاط الضعف المحتملة. نقاط الضعف أكثر إثارة للاهتمام من حيث Bug Bounty. يرجى توضيح ما تقصد!

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

بالمناسبة ، وفقًا لتقرير المعهد الوطني للمعايير والتكنولوجيا (NIST) ، فإن حوالي 64٪ من نقاط الضعف في التطبيقات تتعلق بأخطاء في البرامج ، وليس بالمسائل المتعلقة مباشرة بالأمان.

لذلك فهم القراص ، احصل على PVS-Studio وابدأ في البحث عن الأخطاء وعيوب السلامة! التصنيف حسب CWE سيكون عونا كبيرا هنا.

استنتاج


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

حسنا ، هذا كل شيء. حظا سعيدا في البحث عن مكافأة!

Source: https://habr.com/ru/post/ar464553/


All Articles