تجربة Timeweb
تحتاج أي شركة إلى منظور خارجي حول حالة أمن معلومات الخدمات والمنتجات. يمكن حل هذه المشكلة بطرق مختلفة ، من بينها المشاركة في برامج Bug Bounty.

Bug Hunting Bug Bounty هو برنامج يوفر مكافآت مالية أو مزايا أخرى للعثور على الأخطاء واستغلال الثغرات ونقاط الضعف في البرامج. يتم تنفيذ برامج Bug Bounty من قبل العديد من الشركات ، بما في ذلك Facebook و Google و Reddit و Apple و Microsoft وغيرها ، ويمكن لأي
شركة إطلاق مثل هذا البرنامج من تلقاء نفسها وتنظيم جميع العمليات والتفاعلات من تلقاء نفسها. الخيار الثاني هو التحول إلى منصات Bug Bounty الخاصة: نبرم اتفاقية ، ويبدأ جيش صائدي الحشرات في العمل.
أطلقت Timeweb برنامج Bug Bounty منذ حوالي عام. في ذلك الوقت ، لم يكن لدى الشركة متخصصون من ذوي الخبرة في هذا المجال ، كان يجب القيام بكل شيء عن طريق التجربة والخطأ. على الإنترنت ، لا يشارك أحد تقريبًا توصيات حول كيفية بناء هذه العملية ، لذلك غالبًا ما يتم اختراع الدراجات ، وعادة ما يتم نقل المعرفة في المحادثات مع الزملاء في آلة القهوة.
في هذه المقالة ، سنخبرك بكيفية تنظيم إطلاق برنامج Bug Bounty ، إذا لم تكن قد فعلت ذلك من قبل ، فما الذي يجب الانتباه إليه وكيف يمكنك التحقق من حالة نظام أمن المعلومات.
تحقق من ذلك!
لماذا أطلقنا برنامج Bug Bounty؟
كانت مهمتنا هي رفع نظام أمن المعلومات إلى مستوى جودة جديد أعلى وعدم إنفاق الكثير من المال. من المهم أن نلاحظ أن Timeweb هي شركة ناضجة مع بنية تحتية معقدة ومجموعة كبيرة من الخدمات الحيوية ، لذلك لم يكن واضحًا لنا على الإطلاق في أي ترتيب لاختبار الخدمات وإصلاح الثغرات الأمنية ، وماذا نبدأ أولاً.
هناك عدة طرق للتحقق من نظام أمن المعلومات. قبل إطلاق برنامج Bug Bounty ، حاولنا دراسة الخيارات المختلفة وتحليلها. من بينها ، ربما يكون التدقيق الخارجي هو الحل الأكثر شيوعًا للمشكلة. بفضل التدقيق ، يمكنك العثور على مشاكل معقدة وغير قياسية ، ولكن حتى بعد دفع مبلغ كبير ، لا يمكنك التأكد من أنك ستحصل على ما تحتاجه حقًا.
طريقة أخرى هي تدريب الفريق وتطوير كفاءات الموظفين. هنا عليك أن تفهم أن موارد الفريق لا تزال محدودة ، وبالطبع ، من المستحيل العثور على كل الأخطاء المحتملة بنفسك.
فيما يتعلق بفحص نظام أمن المعلومات ، تساعد التذاكر وطلبات العملاء للدعم الفني أيضًا إذا كان من الممكن معالجة تعليقات المستخدم ورسائله بكفاءة.
في الوقت نفسه ، تحدثنا مع الزملاء وجمعنا آراء الخبراء حول كيفية بناء عملية اكتشاف الأخطاء في الشركات الأخرى. بفضل التوصيات ، قررنا الانتباه إلى برنامج Bug Bounty.
إطلاق برنامج Bug Bounty
ما المهم الذي يجب مراعاته في البداية؟
هناك أنواع مختلفة من برامج ومنصات Bug Bounty.
في المرحلة الأولى ، اخترنا بين البرامج العامة والخاصة ، وقررنا البقاء على الثانية. الوصول غير مقيد في البرنامج العام: يمكن للجميع البحث عن الأخطاء. في برنامج خاص - عن طريق الدعوة. في كلتا الحالتين ، يتم الكشف عن الأخطاء فقط باتفاق الطرفين. لقد قررنا أنه من السابق لأوانه فتح برنامج عام: أولاً وقبل كل شيء ، يجب أن نتأكد من أن خدماتنا ومنتجاتنا لا تحتوي على نقاط ضعف خطيرة.
بالنسبة لمنصة Bug Bounty نفسها ، قمنا بتحليل الخيارات الحالية واخترنا الأنسب لنا ، والأمثل من حيث عدد صائدي الأخطاء وتكلفة الخدمات.
فيما يلي قائمة بمنصات Bug Bounty الأكثر شهرة في السوق:
يجب أن نذكر أيضًا منصة Open Bug Bounty - وهي عبارة عن منصة Bug Bounty غير تجارية توحد المتحمسين لأمن المعلومات وتنشر القرصنة الأخلاقية. يمكن للباحثين الإبلاغ عن خطأ موجود في عمل أي برنامج ، حيث تقدم الشركة مكافأة (مدفوعات نقدية أو بضائع أو خصومات أو منتجاتهم الخاصة). Timeweb ، على سبيل المثال ، يوفر استضافة مجانية لصائدي الأخطاء. يرجى ملاحظة أنه وفقًا لسياسة Open Bug Bounty ، يمكنك فقط الإبلاغ عن الأخطاء التي لا تتضمن تدخلًا نشطًا ، على سبيل المثال ، لا يمكنك الإبلاغ عن RCE و SQL.
بادئ ذي بدء ، قمنا ببناء العمل داخل الشركة: لقد حددنا كيف يجب أن تتفاعل الأقسام مع بعضها البعض ، ومن المسؤول عن إصلاح الأخطاء ، ومن يراقب النطاق والردود على التقارير.
قبل بدء البرنامج ، ننصحك بالتأكد من قيامك بكل ما في وسعك ، والعثور على جميع الأخطاء المحتملة بنفسك. من المهم أيضًا معرفة الجزء الداخلي والخارجي للمنتج الذي تخطط لوضعه في عمل صائدي الأكياس: ما هي المشاكل الموجودة الآن ، وماذا كانت ؛ ما إذا كانت تظهر أخطاء منهجية. ستسمح لك هذه المعلومات بتشكيل النطاق الصحيح - بإيجاز ، ولكن شامل ، لإعطاء بيانات الإدخال ووصف طلب صائدي الأخطاء.
تم اختيار المنصة ، وتم الإعداد - نبدأ
نحن نشكل سكوب
سنخبرك بما فهمناه خلال عام وجود برنامج
Scopes ، الذي تم ملؤه على منصة Bug Bounty ، وهو نوع من العرض - اتفاقية بين الشركة ومجتمع صائدي الأخطاء. يجب تضمين المعلومات التالية في النطاق:
- وضح الغرض: وجود أي آثار ضارة أو عواقب مدمرة نود التحقق منها
- معلومات حول الأخطاء المعروفة بالفعل أو غير ذات الصلة أو غير المهمة للشركة (لا يتم تقديم مكافأة للعثور عليها)
- قواعد وحدود البحث عن نقاط الضعف التي يجب اتباعها
- حجم الجوائز.
كلما زاد الوقت الذي تقضيه في البحث ، كان ذلك أفضل. حاول ملء جميع العناصر بعناية وبالتفصيل ، بحيث يمكنك في المستقبل حل جميع الحوادث بناءً على المعلومات المحددة.
مثال على الأقسام المحددة مع محتوى النقاط في مثال برنامجنا الحالي:

كيف تختار أي فحص أولا؟ ننصحك بتضمين البرنامج الخدمة أو الجانب الذي من المرجح أن يتم التحقق منه أكثر من غيره. من المستحيل أن تفهم على الفور ما الذي يجب البحث عنه بالضبط ، يمكنك فقط اختيار اتجاه ، ومن المهم العثور على النقاط الأكثر إشكالية. مع كل تقرير جديد وكل برنامج جديد ، قمنا بزيادة خبرتنا وفهمنا بشكل أوضح إلى أين نذهب بعد ذلك.
حتى الآن ، لم يتم إدراج جميع خدماتنا ومنتجاتنا في منصة Bug Bounty. تم القيام بذلك عن عمد ، نظرًا لأن بعض الخدمات ، على سبيل المثال ، تم إنشاؤها على أساس حلول مفتوحة المصدر: تشارك فرق الجهات الخارجية في تطويرها ودعمها ، لذلك نعتقد أنه ليس من المنطقي عرضها في منصة Bug Bounty الخاصة بنا ، نظرًا لأن فريقنا يراقب فقط الصلة بالموضوع من هذه الخدمات.
يجدر التفكير فيما إذا كان بإمكانك تغيير المنتج المتضمن في برنامج Bug Bounty: هل هناك فريق يمكنه تطويره؟ هل تسمح الفروق الدقيقة في الهندسة المعمارية.
من جانبنا ، خلال برامج Bug Bounty ، بحثنا باستمرار في جميع الخدمات والشبكة بأنفسنا. سمح لنا ذلك بتوفير المال: أصلحنا الأخطاء الموجودة وقمنا بتحديث النطاق.
من المكونات المهمة للبرنامج تحديد مستوى شدة الثغرة الأمنية التي تم العثور عليها وتحديد مقدار المكافأة. حاول التقاط علاقة شفافة بين شدة الخطأ وحجم المكافأة. كلما كانت أكثر شفافية ، قل عدد الأسئلة المطروحة عليك! من الممارسات الجيدة ربط حجم الجائزة بمقياس CVSS(معيار مفتوح لتقييم مدى خطورة الضعف). بالإضافة إلى ذلك ، تعرض منصات Bug Bounty عادةً كتيبات وإرشادات حول كيفية تحديد مقدار المكافأة. يمكن لمديري الموقع مساعدتك في ذلك. للتنقل في مستوى الدفع لعمل صيادي الحقائب ، يمكنك الذهاب إلى بوابة HeadHunter وتحليل الرواتب المشار إليها. إذا لم يعد المتسللون نشطين ، فقد يكون من المفيد رفع المكافأة.
في Timeweb ، نقوم بشكل مستقل بتقييم خطورة الموقف اعتمادًا على التأثير على العمل. يتضمن مقياس شدة تأثير الأعمال لدينا 4 مستويات:
- منخفض (تلقي معلومات غير مهمة حول مستخدمين آخرين ، على سبيل المثال ، اسم تسجيل الدخول أو القدرة على تغيير الصور الرمزية ؛ وكذلك انتهاك تكامل هذه المعلومات وتوافرها)
- medium ( , , ; )
- high ( “” ; : , , , ; )
- critical ( ; ).
بالإضافة إلى المعلومات المقدمة أعلاه ، فإننا ننظر إلى نوع الثغرة الأمنية (RCE ، XSS ، حقن SQL) وأهمية الخادم الذي تم اختراقه أو تمكن من الوصول إليه.
وبالتالي ، من أجل تحديد مستوى خطورة الخطأ الذي تم العثور عليه ، نقوم بتحليل نوع الثغرة الأمنية وأهمية الخادم ودرجة التأثير على الشركة. بناءً على هذه المعايير ، نحدد مستوى كل ثغرة تم العثور عليها ، والتي تحدد مقدار المكافأة لصائد الأخطاء. ومع ذلك ، نضيف أنه من المستحيل أخذ كل شيء في الاعتبار ، وغالبًا عند تحديد مستوى الأهمية الحرجة لخلل ما ، لا يمكن للمرء الاستغناء عن الذاتية.
يرد وصف أكثر تفصيلاً لعملية تقييم شدة الضعف في الجداول:

جدول درجات الخادم / الخدمة

الجدول الزمني لمكافأة الأخطاء: كيف كان ذلك؟
برنامج # 1
ترك: لوحة استضافة Timeweb.ru Scop
: تم تجميع Scop على أساس أمثلة من شركات أخرى. المفسد: لا تفعل ذلك! لكن كان علينا أن نبدأ من مكان ما.
النتائج: تلقينا 20 تقريرًا خلال الأسبوع ، مع الإشارة بشكل أساسي إلى نقاط الضعف الحرجة ، و ... صرفنا كل الأموال التي وضعناها في الحساب (عدة آلاف من الدولارات). خلال هذه الأيام السبعة ، رأينا أنماطًا متكررة من المشكلات: مشكلات متعددة في تصفية المدخلات وعرض البيانات ، وانتهاكات مختلفة لمنطق عمل التطبيق ، بالإضافة إلى بعض المخاطر الأخرى لـ OWASP Top Ten. قررنا تعليق البرنامج ، وفي الشهر التالي كنا نصلح الأخطاء الموجودة ونحللها فقط.
بمجرد أن حللنا هذه التقارير العشرين ، فهمنا ما يجب القيام به بعد ذلك: أين يجب الحفر أثناء التطوير ، وكيفية العمل مع الأمان بشكل صحيح.
البرنامج رقم 2
نتخلى عنه: لوحة استضافة Timeweb.ru (مرة أخرى)
النطاق: قمنا بإصلاح Scop بناءً على التقارير التي وردت سابقًا: أزلنا الثغرات الأمنية الثابتة وركزنا على ما يثير اهتمامنا.
النتائج: تلقينا هذه المرة عددًا كبيرًا من التقارير المهمة ، ولكنها أكثر تحديدًا وتحديداً. تم تحديد جميع مهام Bug Bounty على أنها عاجلة. بفضل البرنامج الثاني ، قمنا بتعديل عمليات التطوير وإصلاح الأخطاء.
برنامج رقم 3
نتخلى عنه للتمزق: لوحة VDS Timeweb.ru ، تحقق
نتائج الموقع الرسمي : تم استلام حوالي 40 بلاغًا بأخطاء متفاوتة الخطورة.
نظرًا لأن منتجاتنا متشابهة في الوظائف ، فإنها في بعض الأحيان لا ترث الوظائف فحسب ، بل ترث أيضًا الأخطاء من بعضها البعض. اتضح أن اللوحة الجديدة تحتوي على أخطاء تم العثور عليها بالفعل في برامج Bug Bounty السابقة. تم تسجيل مثل هذه الأخطاء في النطاق كنسخة مكررة ، لذلك لم يكن علينا دفع ثمنها مرة أخرى.
تم العثور على العديد من المشكلات المتعلقة بالنماذج وثغرات XSS في الموقع.
البرنامج رقم 4
النطاق: كان الهدف الرئيسي للبرنامج الرابع هو إيجاد حقن SQL.
النتائج:قبل إطلاق البرنامج ، درسنا بشكل مستقل كيف يعمل ، وأجرينا بحثًا على منتجنا بأنفسنا: وجدنا فقط نقطة ضعفين غير حرجة. بعد أسبوعين من إطلاق هذا البرنامج في الليل ، تلقينا تقريرًا طال انتظاره: أظهر صائد الحشرات ناقلًا للهجوم له تأثير مدمر على قاعدة بيانات الفوترة باستخدام SQLi الأعمى. تمكنا من إغلاق هذه الثغرة الأمنية بسرعة في غضون 5 دقائق: كانت في الإصدار العالمي السابق من النواة ، والتي لا تزال تستخدم كمكونات إضافية للعديد من الإجراءات في أحدث الإصدارات العالمية من لوحات التحكم (الاستضافة الافتراضية ، VDS ، مشرفي المواقع). يسعدنا أننا تمكنا من اكتشاف مثل هذه المشكلة الخطيرة وحلها في الوقت المناسب. من بين أمور أخرى ، قمنا بفحص جميع أقسام الكود المماثلة الأخرى عن طريق القياس.
البرنامج رقم 5
نمنحه للرحمة: استضافة افتراضية Timeweb
Virtual Hosting هي ، تقريبًا ، خادم فعلي مقسم بين مئات العملاء. يستضيف العملاء تطبيقات الويب وأدلة العمل الخاصة بهم على هذا الخادم ، ولديهم وصول SSH و FTP إلى الخادم. كل عميل من عملائنا لديه عملائه. على مثل هذا الخادم ، يتم تشغيل البرامج النصية للخدمات والخدمات والتخصيصات الأخرى الخاصة بنا ، والتي تتفاعل مع خدمات الخدمة وقواعد البيانات الأخرى.
نطاق:كان الهدف الرئيسي لصائدي الأخطاء هنا بسيطًا: العثور على ناقلات لتصعيد الامتيازات إلى الجذر. توقعنا أيضًا البحث عن عوامل التأثير على المستخدمين الآخرين ومواردهم ، والبحث عن عوامل التأثير على البرامج النصية للخدمة والبحث عن ناقلات الهجوم على الخوادم الأخرى ، سواء الاستضافة الافتراضية وخوادم الخدمة ، التي سيكون هناك إمكانية وصول افتراضية إليها.
النتائج: لقد خصصنا خادمًا خاصًا بدون عملاء لصائدي الأخطاء ، يشبه في وظائف خوادم الإنتاج. في الوقت الحالي ، وجد صائدو الحشرات 10 حشرات فقط. أظهر تقريران موجهات هجوم مع تصعيد الامتياز إلى الجذر ، لكنهما فشلوا في الوصول إلى الخوادم الأخرى. تم إصلاح هذه المشاكل على الفور.
قبل إطلاق البرنامج الخامس ، انغمسنا في تحديث الخوادم والبرامج ، والتعامل مع نقاط الضعف ، ونشر خدمات الخدمة على شبكة محلية لا يمكن الوصول إليها من الشبكة الخارجية. بفضل هذا البرنامج ، نقوم بإعادة هيكلة الأنظمة الداخلية على الخادم. سمح لنا ذلك بملاحظة الأخطاء حتى قبل أن يكتبوا لنا.
وأين أخذتك؟
حول نتائج برنامج Bug Bounty
لمدة عام تقريبًا من برنامج Bug Bounty ، تلقينا 72 تقريرًا. من بين هذه التقارير ، هناك 36 تقريرًا لا تمتثل لقواعد نطاقنا. ومع ذلك ، وجد الباحثون عن البق 7 نقاط ضعف حرجة ، و 9 أخطاء عالية و 10 أخطاء متوسطة ومنخفضة الخطورة.
للحصول على هذه النتيجة ، أنفقنا أكثر من 15000 دولار على أجر صائدي الأخطاء (باستثناء رسوم النظام الأساسي). أصغر مكافأة كانت 50 دولارًا (للثغرة الأمنية التي تسمح لك بتلقي معلومات حول طريقة الدفع لأي فاتورة من خلال IDOR). أعلى مكافأة مدفوعة حتى الآن هي 1500 دولار. متوسط الأجر: حوالي 423 دولارًا.
بالنسبة لنتائج الجودة:
نحافظ على تناغم عضلات IB
نظرًا لأن برنامج Bug Bounty يتضمن بحثًا مستمرًا ومستمرًا عن الأخطاء ، فإن فريق أمن المعلومات لدينا في حالة تأهب على مدار الساعة طوال أيام الأسبوع.
يمكننا القول أن صائدي الأخطاء يحاكيون تصرفات المتسللين. إنهم يخلقون نشاطًا "ضارًا" كل يوم ، مما يجبرنا على إبقاء أعيننا مفتوحة والحفاظ على حذرنا.
مواكبة الاتجاه الذي
يستخدمه Baghunters في استخدام خدمات جديدة ومرافق غير مألوفة وتقنيات القرصنة الحديثة. بفضل هذا ، يمكن لمتخصصينا تحديث كفاءاتهم ومعرفتهم.
تحسين الخدمة والمنتجات
تهدف عمليات أمن المعلومات بشكل عام وعمليات Bug Bounty بشكل خاص دائمًا إلى تحسين وتطوير الخدمات والمنتجات للعميل.
إشراك مجتمع من الخبراء
في تنفيذ أمن المعلومات ، لا يشارك فقط المسؤولون الداخليون لدينا ، ولكن أيضًا مجتمع كامل من الخبراء ذوي الخبرة والمعرفة المتنوعة.
غالبًا ما سألنا صائدي الأخطاء عن كيفية إعادة إنتاج الخطأ الموجود وحتى كيفية إصلاحه. كان المتخصصون على استعداد للتواصل مباشرة في Telegram ، وتسجيل الفيديو ، ونحن ممتنون للغاية لذلك.
نحن نلاحظ الانضباط
بالعمل مع منصات Bug Bounty ، فنحن مسؤولون عن إغلاق الأخطاء ليس فقط لأنفسنا وعملائنا ، ولكن أيضًا لصائدي الأخطاء ، فهم ينتظرون التعليقات. يحدث التفاعل وفقًا للوائح المعمول بها ، يجب علينا تحديث المعلومات بانتظام حول التقارير الحالية.
في غضون 3 أيام ، كان علينا أن نجيب الصاعق على تقريره: هل وجد الخطأ خطأ ، ما هو مستوى خطورته. بالطبع ، يمكننا تقديم إجابة في غضون أسبوع ، لكن هذا السلوك لن يكون ملائمًا للقرصنة وقد ينفر صائدي الأخطاء.
نحن نتفهم أن المستخدمين أفضل من
Baghunters هم نفس المستخدمين والعملاء الذين يزودوننا بتجربة مستخدم معينة فيما يتعلق بأمن المعلومات.
هل هناك حياة بعد باغ باونتي؟
نواصل العمل مع برنامج Bug Bounty خاص مع منصة مثبتة. نود أن نبني بكفاءة جميع العمليات الداخلية لإغلاق الأخطاء وإصلاحها. بمجرد أن نفهم أن صائدي الأخطاء الذين نتفاعل معهم حاليًا قد أصبحوا أقل نشاطًا ، سنحاول الانتقال إلى مواقع أخرى ، بما في ذلك أكبر مواقع Bug Bounty لتلقي المزيد من التقارير والعثور على جميع المشكلات المحتملة.
كان مجال التطوير الآخر بالنسبة لنا هو تنفيذ مبادئ التنمية الآمنة. عادةً ما يقوم المطورون ببرمجة وظيفية ، ويحتل الأمان مقعدًا خلفيًا. من المهم جعل مراجعة أمان الكود جزءًا رئيسيًا من أي مراجعة للكود.
يحاول فريق Timeweb تقديم أدوات جديدة وحديثة لتدقيق أمن المعلومات للخدمات. لقد تعلمنا عن بعض الموارد من خلال التعاون مع صائدي الحشرات.
تدريجيًا ، نشرك موظفي الدعم الفني في حل مشكلات أمن المعلومات: نقوم بتدريب الزملاء وتقوية الفريق.
نحن على استعداد للحديث عن برنامج Bug Bounty إلى أجل غير مسمى. ربما لا تزال لديك أسئلة لخبرائنا - اكتب في التعليقات ، ما هو الشيء المثير للاهتمام والمفيد للقراءة عنه. سنحاول الإجابة على جميع الأسئلة أدناه أو الشرح بمزيد من التفصيل في المقالات التالية.