ایجاد VDP شما

یک خط مشی برنامه برای هر VDP ضروری است و باید با دقت طراحی شود. سیاست برنامه اولین چیزی است که محققان امنیتی هنگام شرکت در VDP می بینند. لحن برنامه را تعیین می کند، انتظارات را مشخص می کند و تعهد شما را به محققانی که شرکت را انتخاب می کنند، مشخص می کند.

نحوه ایجاد و میزبانی خط مشی برنامه

از دستورالعمل های زیر برای پیش نویس خط مشی برنامه برای VDP خود استفاده کنید. خط‌مشی‌های برنامه معمولاً فقط 1 تا 3 صفحه هستند و معمولاً موضوعات زیر را شامل می‌شوند:

  • قول یک محقق
  • دستورالعمل های تست
  • محدوده برنامه

خط مشی برنامه باید در دسترس همه محققان بالقوه باشد. اگر قصد دارید VDP را به صورت خصوصی تنها برای چند محقق دعوت شده راه اندازی کنید، سیاست برنامه به نوعی کنترل دسترسی نیاز دارد تا آن را برای محققانی که دعوت کرده اید در دسترس قرار دهد، اما برای همه افراد دیگر محدود شود. محققان همچنین به راهی برای ارسال گزارش‌ها نیاز دارند، مانند فرم وب یا نام مستعار ایمیل متصل به سیستم فروش بلیط برای ردیابی گزارش‌ها. این را هنگام تنظیم منابع آنلاین VDP در نظر بگیرید.

پلتفرم‌های افشای آسیب‌پذیری شخص ثالث و پاداش باگ معمولاً قابلیت‌هایی مانند:

  • راهی برای ایجاد، ویرایش و انتشار یک خط مشی
  • کنترل های دسترسی برای ایجاد یک برنامه خصوصی
  • دعوت خودکار هکرها با سرعتی راحت
  • عملکرد صندوق ورودی برای تسهیل پردازش گزارش های دریافتی

پلتفرم های شخص ثالث نیز خدمات مشاوره ای متنوعی را برای کمک به تسهیل فرآیند ایجاد و راه اندازی VDP ارائه می دهند. به طور معمول پلتفرم های شخص ثالث و خدمات مشاوره هزینه دارند. هزینه ها و مزایای استفاده از شخص ثالث در مقابل ساخت و مدیریت برنامه خود را در داخل در نظر بگیرید تا بهترین مسیر را برای سازمان خود تعیین کنید.

برای الهام بیشتر در مورد آنچه باید در خط مشی برنامه خود بگنجانید، " چارچوبی برای برنامه افشای آسیب پذیری برای سیستم های آنلاین " وزارت دادگستری ایالات متحده را بخوانید.

ذینفعان سیاست برنامه

همانطور که خط مشی برنامه خود را پیش نویس می کنید، نحوه کار با سهامداران خود را در نظر بگیرید. تیم‌های مختلف ممکن است در مورد ملاحظاتی که باید در خط‌مشی شما لحاظ شود، ورودی ارائه کنند.

ذینفع ملاحظات
مجاز
  • برای پیش نویس خط مشی برنامه و شرایطی که هکرها تحت آن شرکت خواهند کرد، با تیم حقوقی خود کار کنید.
  • به محققان غرامت پرداخت نمی شود، بنابراین دلیل خوبی وجود ندارد که خود را در معرض الزامات گسترده ورود یا شرایط سنگین قرار دهند.
آی تی
  • با تیم فناوری اطلاعات خود کار کنید تا به توسعه الزامات و دامنه آزمایش کمک کنید، مانند ایجاد نکردن شرایط انکار خدمات.
مهندسی
  • مهندسی ممکن است در مورد الزامات و دامنه آزمایش ورودی داشته باشد، از جمله اینکه چه نوع آسیب‌پذیری‌هایی بیشتر یا کمتر جالب‌تر هستند.
روابط عمومی
  • با تیم روابط عمومی خود برای بررسی زبان خط مشی در مورد افشا همکاری کنید.
امنیت
  • تیم امنیتی معمولاً ایجاد خط مشی را هدایت می کند.
  • تیم امنیتی احتمالاً از هکرها بازخورد دریافت می کند و در طول زمان با سایر ذینفعان در مورد خط مشی تکرار می کند.

قول محقق

وعده محقق تعهدات سازمان را در قبال محققان شرکت کننده که با حسن نیت با پیروی از دستورالعمل های آزمایشی که در خط مشی مشخص شده عمل می کنند، توضیح می دهد. به عنوان مثال، تعهد به پاسخگویی به تمام گزارش‌های امنیتی دریافتی در یک بازه زمانی خاص، و همچنین انتقال تصمیماتی که در آن گزارش‌های آسیب‌پذیری پذیرفته و رفع می‌شوند.

مثال:

<نام سازمان شما> متعهد به همکاری با محققان امنیتی است تا به شناسایی و رفع آسیب‌پذیری‌ها در سیستم‌ها و خدمات ما کمک کند. تا زمانی که شما با حسن نیت عمل کنید و از دستورالعمل های ذکر شده در این خط مشی پیروی کنید، ما تمام تلاش خود را برای متعهد شدن به موارد زیر به کار خواهیم بست:
  • پاسخ اولیه به گزارش آسیب پذیری خود را ظرف سه روز کاری ارائه دهید
  • تعیین کنید که آیا ما ظرف ده روز کاری گزارش آسیب‌پذیری شما را می‌پذیریم یا رد می‌کنیم (گزارش شما را به عنوان یک خطر مثبت یا قابل قبول نادرست شناسایی می‌کنیم).
  • شما را در جریان پیشرفت در جهت اصلاح گزارش هایی که از شما می پذیریم، نگه دارید

اتخاذ زبان بندر امن در خط‌مشی برنامه شما به محققان این اطمینان را می‌دهد که تا زمانی که با حسن نیت عمل کنند و از تمام دستورالعمل‌های توضیح داده شده در خط‌مشی پیروی کنند، اقدام قانونی علیه آنها برای آزمایش علیه سیستم‌های شما انجام نخواهد شد.

دستورالعمل های تست

دستورالعمل‌های آزمایش، آزمایش‌های امنیتی را که در محدوده VDP است، و همچنین آزمایش‌هایی که در محدوده نیست و باید توسط محققان اجتناب شود، توصیف می‌کنند. اگر انواع خاصی از آسیب‌پذیری‌ها وجود دارد که می‌خواهید محققان روی آنها تمرکز کنند، این بخش مکان خوبی برای برجسته کردن آنها است.

مثال:
هنگام انجام تست های امنیتی، لطفاً دستورالعمل های زیر را رعایت کنید:

  • فقط با حساب ها و داده های خود تست کنید (مثلاً حساب های آزمایشی ایجاد کنید). اگر آسیب‌پذیری را شناسایی کردید که ممکن است منجر به دسترسی به داده‌های سایر کاربران شود، لطفاً قبل از آزمایش بیشتر، ابتدا با ما تماس بگیرید.
  • اگر در آزمایش خود به طور ناخواسته به داده های سایر کاربران دسترسی پیدا کردید، لطفاً به ما اطلاع دهید و چنین اطلاعات کاربری را ذخیره نکنید.
  • آزمایش هایی که منجر به انکار شرایط خدمات یا تخریب خدمات تولیدی ما می شود، انجام ندهید.
  • مهندسی اجتماعی خارج از محدوده این برنامه است. سعی نکنید سازمان یا کاربران خود را از نظر اجتماعی مهندسی کنید.


ما به ویژه به انواع آسیب‌پذیری‌ها و تأثیرات زیر علاقه‌مندیم:

  • اجرای کد از راه دور
  • XSS منجر به دسترسی به داده های حساس (مثلاً اطلاعات جلسه) می شود
  • تزریق SQL منجر به دسترسی به داده های حساس یا عملکرد می شود
  • نقص های منطق تجاری که منجر به دسترسی به داده های حساس یا عملکرد می شود


ما کمتر به انواع آسیب‌پذیری‌های زیر علاقه‌مندیم، که احتمال بیشتری دارد
به عنوان موارد مثبت کاذب یا ریسک پذیرفته شده رد شوید:

  • عدم وجود هدر X-Frame-Options در صفحات بدون قابلیت تغییر حالت
  • نتایج اسکنر خودکار تأیید نشده
  • مسائلی که بعید است قابل بهره برداری باشند و/یا تاثیر امنیتی واقعی ندارند

محدوده

دامنه دارایی هایی را که محققان می توانند در برابر آنها آزمایش کنند و همچنین دارایی هایی که بخشی از VDP در نظر گرفته نمی شوند را تعریف می کند. دامنه باید با دقت در نظر گرفته شود و تا حد امکان بدون بارگذاری بیش از حد تیم شما گسترده باشد. هرچه بیشتر بخواهید در محدوده خود قرار دهید، احتمال بیشتری وجود دارد که از سوی محققان امنیتی درگیر شوید. با این حال، دامنه را آنقدر گسترده نکنید که تیم شما نتواند با گزارش های دریافتی همراه شود. با چند دارایی در محدوده شروع کنید. با درک بهتر حجم گزارشی که دریافت خواهید کرد، دامنه را گسترش دهید. قبل از اینکه VDP خود را در طول زمان برای عموم باز کنید، سعی کنید همه چیز را در محدوده خود داشته باشید.

از نظر نحوه تعریف محدوده خود در خط مشی برنامه خود، افزودن جزئیات در مورد هر دارایی یا حوزه به محققان امنیتی کمک می کند تا بدانند چه چیزی برای شما مهم است و کجا باید تلاش خود را متمرکز کنند. همچنین می‌توانید نکاتی را در مورد چگونگی تست ایمن در برابر دارایی‌های خود درج کنید. در اینجا یک مثال است:

دارایی mail.example.com
شرح دامنه اصلی برای دسترسی کاربران به ایمیل خود.
آسیب پذیری ها و تاثیرات جالب
  • آسیب پذیری هایی که منجر به دسترسی غیرمجاز به ایمیل سایر کاربران می شود.
  • امکان حذف غیرقابل جبران ایمیل یا کل حساب کاربری دیگر.
مسائلی که احتمال رد شدن وجود دارد
  • SPF
  • فیشینگ یا مسائلی که فیشینگ را تسهیل می کند
  • امکان ارسال پیوست های بالقوه مخرب
دستورالعمل تست فقط با حساب‌هایی که مالک آنها هستید یا با آنها موافقت صریح دارید آزمایش کنید. هنگام ایجاد حساب های آزمایشی، لطفاً "vdptest" را در جایی در نام کاربری وارد کنید. می توانید حساب های آزمایشی را در mail.example.com/new ایجاد کنید.

این یک تفکیک نسبتاً دقیق است. از طرف دیگر، می‌توانید فهرست ساده‌ای از دارایی‌های در محدوده و خارج از محدوده داشته باشید:

در دامنه

  • mail.example.com
  • example.com

خارج از دامنه

  • blog.example.com

تامین منابع VDP شما

قبل از راه اندازی VDP به منابع خاصی نیاز دارید. شما به منابع نیاز دارید:

  • بررسی گزارش‌های آسیب‌پذیری دریافتی
  • ارتباط با هکرها
  • پیدا کردن صاحبان دارایی و ثبت اشکالات
  • رفع اشکالات
  • مدیریت آسیب‌پذیری / پیگیری اصلاح

بازبینی ذینفعان کلیدی

اگر قبلاً این کار را نکرده‌اید، دوباره به مکالمات با سهامداران کلیدی که قبلاً با آنها در مورد VDP صحبت کرده‌اید، مراجعه کنید تا مطمئن شوید که آنها با جدول زمانی راه‌اندازی VDP شما هماهنگ هستند و همچنین منابع لازم برای راه‌اندازی را در صف قرار دهید. به عنوان مثال، ممکن است بخواهید با رهبری مهندسی کار کنید تا اطمینان حاصل شود که تیم های آنها برای هجوم احتمالی اشکالات امنیتی برای کار در چند هفته اول پس از راه اندازی آماده هستند. در تیم امنیتی خود، مطمئن شوید کسانی که هشدارهای تریاژ در سیستم‌های شناسایی و پاسخ شما را دارند از تاریخ راه‌اندازی VDP آگاه هستند و زمان و منابع بیشتری را برای شروع آزمایش در نظر بگیرید. شما همچنین باید یک تیم بسازید تا به پشتیبانی از عملیات روزانه VDP شما کمک کند.

تیم خود را بسازید

اجرای یک VDP به مقدار مناسبی از کار عملیاتی و مبتنی بر وقفه نیاز دارد. اگر سعی کنید هر گزارش آسیب‌پذیری را که وارد می‌شود بررسی کنید، از نظر فنی تأیید کنید، و به آن پاسخ دهید، و همچنین هر اشکالی را ثبت کنید، وضعیت‌ها را پیگیری کنید، و به‌روزرسانی‌ها را به تنهایی به محققان منتقل کنید، ممکن است دچار سوختگی شوید. حتی اگر تیم امنیتی بزرگی ندارید، داوطلبان امنیتی را پیدا کنید تا به ایجاد تیمی کمک کنند تا به عملیاتی کردن و اجرای VDP شما کمک کنند. شما همچنان یک "مالک" یا "رهبر" تعریف شده برای VDP خود می خواهید که در نهایت مسئول موفقیت VDP شما باشد، اما همچنین به تیمی برای حمایت از آن رهبر نیاز دارید.

یک برنامه در حال انجام وظیفه بسازید

هنگامی که منابعی را در اختیار داشتید و مایل به کمک به VDP خود هستید، با تنظیم یک برنامه زمانبندی وظیفه، ساختاری را پشت سر آن قرار دهید. شما می توانید این را هر طور که دوست دارید ایجاد کنید، اما چرخش هفتگی یک روش نسبتا معمول است. هنگامی که در طول هفته در حال انجام وظیفه هستید، این مسئولیت شماست که:

  • Triage - گزارش های آسیب پذیری دریافتی را بررسی کنید
    • از نظر فنی گزارش را تأیید کنید و تصمیم «پذیرش» یا «رد» بگیرید
    • تصمیم خود را به هکری که مشکل را گزارش کرده است، در میان بگذارید
    • در صورت لزوم، اگر قادر به بازتولید مشکل نیستید، از هکر اطلاعات بیشتری بخواهید
    • اگر آسیب‌پذیری معتبر است، یک اشکال اصلاح‌شده را با مالک مناسب ارسال کنید
  • مدیریت آسیب‌پذیری - آسیب‌پذیری‌های موجود را به جلو هدایت کنید
  • ارتباط - ارائه به روز رسانی به محققان امنیتی در مورد گزارش های موجود
    • محققان ممکن است فعالانه درخواست به روز رسانی در مورد گزارش های موجود را داشته باشند. این را بررسی کنید و در صورت نیاز پاسخ دهید
    • اگر آسیب‌پذیری برطرف شد، این موضوع را به محقق برگردانید تا بدانند کار سخت آنها منجر به تغییرات مثبت در سازمان شما شده است. حتی می‌توانید زبان الگو را اضافه کنید که از محقق می‌خواهد به شما اطلاع دهد که آیا چیزی را در اصلاح خود از قلم انداخته‌اید، یا اینکه ممکن است به نحوی از اصلاح شما دور زده شود.

بسته به تعداد گزارش‌هایی که دریافت می‌کنید، پیچیدگی این گزارش‌ها، و مهارت‌ها و دانش افراد در حال انجام وظیفه، می‌تواند از چند ساعت تا کل هفته شما طول بکشد. نکاتی برای یک چرخش موفق در حین کار عبارتند از:

  • اطمینان حاصل کنید که تیم شما آماده است تا وارد عمل شود و در هفته های به خصوص سنگین به حمایت از وظیفه کمک کند.
  • یک فرآیند انتقال خوب در محل داشته باشید. اگر مسائلی وجود دارد که ممکن است نیاز به توجه فوری شخص بعدی داشته باشد، در پایان هفته یادداشت هایی بنویسید یا یک مکالمه زنده داشته باشید.
  • برنامه ریزی خودکار ایجاد کنید تا مطمئن شوید که همه از زمان انجام وظیفه خود مطلع هستند. این می تواند به سادگی ایجاد ورودی های تقویم تکرار شونده برای هر فرد باشد.
  • به خصوص در آغاز VDP خود، با فرد وظیفه چک کنید تا مطمئن شوید که هفته اوست و همچنین ببینید آیا به کمک نیاز دارد یا خیر. اگر منابع خردسال بیشتری در چرخش دارید، از منابع ارشد بیشتری بخواهید که با آنها کار کنند تا اطمینان حاصل شود که احساس راحتی می کنند و می توانند در حین افزایش سؤالات بپرسند.
  • یک فرآیند انعطاف پذیر برای تعویض هفته ها داشته باشید. به ناچار فردی یک وضعیت اضطراری خواهد داشت و باید در طول هفته خود مرخصی بگیرد، یا شخصی به مرخصی می‌رود و غیره. وقتی این اتفاق می‌افتد، تیم را تشویق کنید تا هفته‌ها را در صورت نیاز تعویض کنند تا برنامه‌های همه را برآورده کند.
  • یک "برگ تقلب" در حین انجام وظیفه ایجاد کنید که وظایفی را که باید تحت پوشش قرار گیرند، از جمله مستندات مربوط به نحوه انجام آن را مشخص می کند.

در مورد داخلی در مقابل شخص ثالث تصمیم بگیرید

بیشتر راهنمایی‌ها تاکنون بر اساس ساخت و اجرای VDP خود در خانه بوده است. خدمات مشاوره و پلتفرم‌های مختلفی وجود دارد که می‌توانند به شما در ایجاد و اجرای VDP کمک کنند. این اشخاص ثالث معمولاً هزینه دارند، اما می توانند در راهنمایی شما در مورد نحوه ایجاد، راه اندازی و اجرای VDP مفید باشند. برخی حتی خدمات تریاژ را برای کمک به بررسی گزارش‌های آسیب‌پذیری دریافتی برای شما، کمک به مدیریت ارتباط با هکرها و تنها افزایش گزارش‌های معتبر به تیم شما ارائه می‌کنند. تصمیم گیری در مورد ایجاد این فرآیند در داخل یا استفاده از یک پلت فرم شخص ثالث به نیازها و منابع موجود شما بستگی دارد. اگر بودجه زیادی دارید اما تعداد کار زیادی ندارید، استفاده از شخص ثالث برای کمک به اجرای برنامه شما می تواند منطقی باشد. اگر برعکس است، ممکن است ارزش آن را داشته باشد که زمان صرف کنید تا خودتان برنامه خود را بسازید.

دریافت گزارشات

اگر تصمیم دارید از یک پلتفرم شخص ثالث استفاده کنید، آنها باید راهی برای هکرها داشته باشند تا گزارشات را مستقیماً برای شما ارسال کنند. اگر برنامه خود را در داخل می‌سازید، باید خودتان آن را بسازید. این می‌تواند یک آدرس ایمیل باشد که به‌طور خودکار یک بلیت یا اشکال در ردیاب مشکل شما ایجاد می‌کند (مثلا security@example.com)، یا می‌تواند یک فرم وب با فیلدهای فرم الزامی باشد که از یا در همان صفحه با خط‌مشی برنامه شما پیوند داده شده است. . به هر شکلی که باشد، این بهترین فرصت برای اطلاع هکرها از قالبی است که می‌خواهید گزارش‌های خود را دریافت کنید. به خاطر داشته باشید که درخواست از هکرها برای ارسال گزارش‌ها در یک فرمت خاص، همیشه تضمین نمی‌کند که آنها را ارسال کنند، اما اینطور نیست. سوال کردن در اینجا نمونه ای از آنچه ممکن است در فرم ارسال گزارش بخواهید آورده شده است:

عنوان: [لطفاً یک توضیح یک خطی درباره مشکل اضافه کنید، به عنوان مثال «XSS در mail.example.com
منجر به سرقت جلسه می شود"]

خلاصه: [لطفاً شرح مختصری از آسیب‌پذیری و دلیل اهمیت آن اضافه کنید، به عنوان مثال به دلیل عدم امکان فرار، می‌توانید یک ایمیل به کاربر دیگری حاوی بار XSS ارسال کنید که مهاجم را قادر می‌سازد کوکی‌های کاربر دیگری حاوی اطلاعات جلسه را بدزدد. این به مهاجم اجازه می‌دهد تا به حساب قربانی وارد شود.] مراحل تولید مثل: [لطفاً دستورالعمل‌های گام به گام در مورد نحوه بازتولید آسیب‌پذیری را اضافه کنید.]
1.
2.
3.

سناریو حمله و تأثیر: [چگونه می توان از این مورد سوء استفاده کرد؟ این چه تاثیر امنیتی دارد
مشکل دارید؟] مشاوره اصلاحی: [در صورت تمایل، اگر توصیه ای در مورد چگونگی رفع یا رفع این مشکل دارید، آن را اینجا اضافه کنید.]