در این مقاله میخواهیم به نحوه نوشتن گزارش خوب در باگ بانتی بپردازیم. برای گزارش یک باگ نیازمند به رعایت نکاتی هستیم که اگر به آنها دقت نشود شاید باعث سردرگمی خواننده شود و بازخورد مناسبی نداشته باشد. اتفاقی که شاید باعث کاهش امتیاز و بانتی شما شود.
۱. مقدمه:
اگر هنگام نوشتن گزارش باگ بانتی دقت و زمان کافی را نداشته باشید ممکن است امتیازی متناسب با سطح گزارش خود را دریافت نکنید. این عمل باعث کاهش مبلغ بانتی شما میشود، همچنین روند داوری باگ به کندی پیش میشود. نوشتن یک گزارش خوب، مهارتی است که هر متخصص امنیتی باید بر آن مسلط باشد. در این گزارش به بررسی تجارب تیم فنی و تریاژ باگدشت در رابطه با دریافت گزارشات خوب در باگ بانتی میپردازیم.
۲. گزارش باگ بانتی
همانطور که در بالا اشاره شد ، یک گزارش باگ بانتی کامل و خوب کمک بسیاری به تایید سریعتر باگ، متقاعد سازی کارفرما و دریافت پاداش باگ میکند. همچنین ممکن است آسیبپذیری در نگاه اول سطح CVSS کمی داشته باشد ولی با ارائه یک سناریو در گزارش باگ بانتی خوب امکان بهبود ارزش باگ، افزایش پیدا میکند. همچنین امتیاز و بانتی بیشتری به متخصص امنیت اختصاص پیدا میکند.
خود را به جای تحلیلگر تریاژ قرار دهید. هنگامی که میان گزارشهای انبوه خود یک گزارش باگ در بانتیها با اطلاعات کافی و دقیق داشته باشید، کار سختی برای بررسی ندارید و وقت زیادی برای بررسی و اجرای مجدد گزارش ارسالی نخواهد گرفت پس باسرعت بیشتر به نتیجه مطلوب میرسید.
۳. قوانین مسابقات باگ بانتی
بیشترین موردی که اکثر متخصصان باید در نظر داشته باشند، توجه به قوانین باگ بانتی یا VDP مانند دامنه هدف و آسیبپذیریهای قابل قبول است. بعد از ارسال گزارش آسیبپذیری و قبل از بررسی و تایید آن، تیم تریاژ به بررسی این موضوع میپردازند که آیا گزارش آسیبپذیری در چارچوب قوانین باگ بانتی تعریف شده قرار میگیرد یا خیر.
اگر گزارش خارج چارچوب قوانین باشد، احتمالا گزارش شما بسته و امتیاز و اعتبار گزارش باگ را از دست میدهید. توجه داشته باشید که امتیاز متخصص امنیت از اهمیت بالایی برخوردار است و برای شرکت در تیم های VIP و ایونت هایی مانند CTB از متخصصان امنیت با امتیاز بالاتر دعوت به همکاری میشود. پس قبل از اینکه شروع به پیدا کردن باگ کنید، قوانین باگ بانتی را مطالعه کنید.
۴. جایزه باگ بانتی
طبق گفته “thehackerish” در مقاله خود یک گزارش خوب به سه روش باعث افزایش جایزه در باگ بانتی میشود:
- مورد اول : ارائه گزارش دقیق باعث افزایش تمرکز متخصص امنیت بر روی یافتن باگهای دیگر میشود، چرا که تیم تریاژ نیازی به درخواست توضیحات بیشتری در مورد باگ گزارش از متخصص امنیت نمیکند.
- مورد دوم : سازمان با خواندن گزارش باگ سریعا متوجه دلیل وجود باگ خواهد شد و فرایند پرداخت جایزه باگ سریعتر اجرا میکند.
- مورد سوم : اولین گزارش تایید شده توسط تیم تریاژ جایزه باگ را دریافت میکند و در صورتی گزارش باگ شما در حالت بازگشت به متخصص باشد و متخصص دیگر گزارش بهتر از همان باگ ارسال کند و تایید شود، جایزه باگ را از دست خواهید داد.
۵. ساختار گزارش باگ بانتی
در دوران تحصیل همه ما تجربه نگارش متن با چارچوب مشخص را داشتهایم، چارچوبهایی مانند تعداد صفحات، ارائههای ادبی و … اما گزارش باگ بانتی یک تفاوت عمده با دیگر نگارشها دارد؛ مختصر و البته مفید بودن.
در یک مقایسه ساده اگر گزارش شما یک صفحه باشد و تماماً اطلاعات مفید باشد خیلی بهتر از گزارش پنج صفحه ای است که به سختی میتوان مطالب مفید پیدا کرد.
برای نوشتن یک گزارش خوب رعایت ساختار گزارش نقش اساسی را ایفا میکند. برای نوشتن گزارش خوب، یک سوال از خود بپرسید آیا فهم گزارش برای خوانده با دانش امنیت راحت و سریع است؟ آیا میتوان از گزارش در برابر کارفرما حمایت نمود؟ در پاسخ با خود صادق باشید. اگر هنگام مرور مجدد گزارش با قسمتی مواجه شدید که احساس میکنید خواننده متوجه قسمتی از گزارش نخواهد شد، توضیح بیشتری در آن قسمت بدهید.
برای اینکه مطمئن شوید که گزارش شما به خوبی نگارش شده است باید شامل درخواستهای HTTP، بخشی از کد و توضیحات مناسب اجرای مجدد قدم به قدم باشد تا حرفهای به نظر برسد.
۶. مواردی که باید در ساختار گزارش باگ بانتی رعایت شود
۶.۱ عنوان آسیبپذیری
عنوان مناسب برای گزارش آسیبپذیری خود انتخاب کنید به نحوی که خواننده با نگاه کردن به عنوان هدف گزارش آسیبپذیری را متوجه شود. برای مثال:
XSS in bugdasht.ir
۶.۲ چکیده آسیبپذیری
قبل از اینکه شروع به نوشتن گزارش کاملی از آسیبپذیری کنید، خلاصهای از عملکرد سایت و دلیل وجود باگ را شرح دهید. این قسمت به تیم تریاژ کمک میکند که جزئیات باگ را سریعتر متوجه شوند. در بعضی از موارد مراحل اکسپلویت آسیبپذیری پیچیده است و این بخش میتواند درک جزئیات باگ را برای تیم تریاژ سادهتر کند.
۶.۳ نمونه اطلاعات بدست آمده:
اگر اطلاعات بسیار حساسی افشا شود، باید صریحا را اعلام شود. تیم تریاژ متوجه سطح حساسیت اطلاعات خواهد شد. ولی ممکن است عدم بیان حساسیت اطلاعات در بعضی مواقع منجربه بازگشت گزارش به متخصص و کاهش ارزش باگ شود.
۶.۴ نحوه تست:
تمام مراحل اجرای اکسپلویت و اجرای مجدد آسیبپذیری قدم به قدم توضیح داده شود که شامل المان آسیبپذیری و پیلود استفاده شده میشود.
۶.۵ درخواست و پاسخ HTTP
درخواست و پاسخ آسیبپذیر HTTP در گزارش آسیبپذیری یا POC بیان گردد.
۶.۶ عکس از صفحه خروجی اکسپلویت آسیبپذیری
عکس از صفحه خروجی اکسپلویت آسیبپذیری در بیشتر مواقع مفید است. گاهی اوقات، رابط کاربری بسیار شلوغ است و شامل دکمهها ، فرمها و منوها است. در این حالت، به اشتراک گذاشتن عکسهای صفحه با اشاره به منطقه آسیبپذیر گزارش شما را بهینهتر میکند.
۶.۷ ویدیو مراحل اکسپلویت آسیبپذیری
مراحل انجام اکسپلویت آسیبپذیری بهتر است ضبط شود و همراه گزارش آسیبپذیری به صورت ویدیو فرستاده شود. در بعضی از موارد بعد از ارسال گزارش، باگ یا آسیبپذیری توسط سازمان رفع شده است و تیم تریاژ نمیتواند باگ را تایید کند ولی با استفاده از ویدیو ضبط شده وجود آسیبپذیری در زمان ضبط ویدیو اثبات میشود.
۶.۸ بازتولید اکسپلویت آسیبپذیری
قبل از ارسال گزارش، گزارش خود را بخوانید و براساس گزارشی که نوشتید مراحل اکسپلویت آسیبپذیری را انجام دهید. تمام مراحل اکسپلویت آسیبپذیری به شکل شفاف گفته شود برای مثال، اسکریپت یا پیلودی که برای اکسپلویت آسیبپذیری استفاده شده است در گزارش آورده شود. این کار به تیم تریاژ در فرایند اعتبارسنجی و اجرای مجدد باگ کمک فراوانی میکند. تنها خروجی نهایی اکسپلویت در باگ بانتی مورد پذیرش واقع نمیشود. تیم تریاژ به جای شما در جلسات کارفرما شرکت کرده و شرح اجرای باگ را ارایه میدهد.
۶.۹ اثر باگ
یک گزارش خوب به بیان اثرباگ بر هدف ارزیابی شده در باگ بانتی اشاره میکند. این قسمت میتواند ارزش باگ را افزایش دهد و در نتیحه بانتی باگ افزایش پیدا میکند.
۶.۱۰ راهکار ایمن سازی
این بخش از گزارش معمولا اختیاری است و راهکار ایمن سازی به شرکت هدف در رفع سریعتر آسیبپذیری کمک فراوانی میکند.
۷ نمونهای از یک گزارش کامل آسیبپذیری
عنوان آسیبپذیری:
آسیبپذیری XSS در example.com
خلاصه:
- معرفی عملکرد و ویژگیهای نرمافزار
- نوع آسیبپذیری
نمونه اطلاعات بدست آمده:
- مشخصات کاربران
- نام کاربری و رمزعبور
- و موارد دیگر
نحوه تست:
- مرحله اول
- مرحله دوم . . .
درخواست و پاسخ HTTP آسیبپذیر
نمونه درخواست آسیبپذیری
GET /js HTTP/1.1
Host: example.coom
Cookie: PHPSESSID
Accept: /
نمونه پاسخ آسیبپذیری
HTTP/1.1 200 OK
Date: Sun, 23 May 2021 12:27:27 GMT
Server:XXX
Last-Modified: Sun, 24 Sep 2017 14:42:21 GMT
فایلهای ضمیمه:
- exploit.mp4
- exploit.jpg
اثر باگ:
- اطلاعات اکانت کاربر مانند نام، نامخانوادگی و آدرس افشا میشود
- امکان د راختیار گرفتن اکانت مدیر سیستم وجود دارد
راهکار ایمنسازی:
- پیکربندی صحیح وف برای بلاک نمودن درخواستهای مخرب
- پیاده سازی مکانیزم ارور هندلینگ
برای خواندن مقالات دیگر و آموزش باگ بانتی به وبلاگ باگدشت مراجعه کنید.