نگاره‌هایی پیرامون امنیت، شبکه و رمزنگاری

01 آگوست 2019

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


روال بسیار غلط در ایران

در ایران معمولا پس از کشف آسیب‌پذیری، مسیری بسیار بد طی می‌شود. ابتدا هکر کلاه‌سفید، در میان شبکه‌های اجتماعی و آشنایان به دنبال «آشنایی» می‌گردد تا بتواند باگ خود را به پول تبدیل کند. در بهترین حالت بعد از پیدا کردن لینک در داخل سازمان، بحث بر سر شدت آسیب‌پذیری به بدترین شکل ممکن صورت می‌گیرد. بدین ‌صورت که هکر کلاه‌سفید، اصرار بر خطرناک بودن آسیب‌پذیری خود دارد، در عین حال، سازمان، ادعای امن بودن کرده و تقاضای دیدن POC برای تخمین شدت آسیب‌پذیری را دارد. هکر کلاه‌سفید به دلیل ترس از «از دست دادن آسیب‌پذیری»، از دادن جزئیات امتنا می‌کند. در اکثر مواقع هم بعد از ارائه جزئیات توسط هکر کلاه‌سفید، سازمان اظهار کم اهمیت بودن سامانه آسیب‌پذیر را می‌کند.این روال بسیار غلط است، اصلا نیازی به کشف روال صحیح نیست، کافی است ببینیم سازمان‌ها و شرکت‌های بزرگ دنیا چه‌کار می‌کنند؟ تمامی شرکت‌ها، جدولی مربوط به قلمرو یا Scope مجاز برای گزارش آسیب‌پذیری را دارند. برای مثال، یک قلمرو مناسب برای شرکت ارتباطات سیار یا همراه‌اول، می‌تواند*.mci.irباشد، و دامین‌های غیر مجاز و کم اهمیت از آن کاسته شود. قسمت بعدی، باید جدول پرداختی به ازا شدت‌های مختلف آسیب‌پذیری باشد. یک مثال بسیار عالی می‌توان به برنامه Twitter در HackerOne اشاره کرد. بدین ترتیب، بحث بی نتیجه بالا هیچ‌وقت پیش نمی‌آید. برای جمع‌بندی، می‌توان اشاره کرد که یک برنامه بانتی خوب نیاز به شاخص‌های زیر دارد:

  • قوانین برنامه
  • تعیین قلمرو
  • جوایز کشف آسیب‌پذیری
  • نحوه گزارش
  • آسیب‌پذیری‌های خارج از بانتی

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

تعریف سامانه باگ‌بانتی

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

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

در خصوص سامانه پیش‌روی، چند نمونه بسیار موفق خارجی وجود دارد که مهمترین آن‌ها hackerone.com و bugcrowd.com می‌باشد. در حال حاضر شرکت‌ها و سازمان‌های بزرگی در آمریکا از خدمات hackerone.com بهره می‌برند که از بین آن‌ها می‌توان به وزارت دفاع آمریکا، Yahoo و Twitter اشاره کرد.همچنین لازم به ذکر است که این سامانه حتما نباید به صورت یک Third Party وارد عمل شود، بلکه می‌تواند درون یک شرکت یا سازمان شکل بگیرد. برای مثلا، همراه اول می‌تواند با راه‌اندازی این سامانه فقط برای خود، نظر هکرهای کلاه‌سفید را به‌خود جلب کند.


مقایسه برنامه بانتی و روش سنتی آزمون نفوذ

وجود یک سامانه‌ Bug Bounty مزایای بسیاری نسبت به آزمون نفوذ سنتی دارد. مهم‌ترین ویژگی آن‌ تبدیل هکرهای کلاه خاکستری و حتی در برخی موارد هکرهای کلاه سیاه به هکرهای کلاه سفید یا به عبارت دیگر ورود هکرها به یک چرخه مولد است. به عنوان نمونه برخی از ویژگی‌های این سامانه به شرح زیر است:

مورد ۱) هزینه در روش سنتی آزمون نفوذ نسبت به برنامه بانتی بسیار بالا می‌باشد، قراردادهای آزمون نفوذ عموما مشروط به کشف آسیب‌پذیری نمی‌باشد، درصورتی که در برنامه بانتی، به ازار هر آسیب‌پذیری، بعد از تائید کارفرما و صدور وصله امنیتی، وجه توافقی پرداخت می‌شود.
مورد ۲) دانش در پروژه آزمون نفوذ، محدود به سقف دانش اعضای پروژه می‌باشد. در صورتی که در برنامه بانتی، طیف وسیعی از هکران با دانش‌های مختلف، بر روی سامانه مورد آزمون، از دانش خود برای کشف آسیب‌پذیری بهره‌مند می‌شوند.
مورد ۳) منابع انسانی در پروژه آزمون سنتی، محدود به افراد خاص، مشخص شده در قرارداد و وابسته به مبلغ آن می‌باشد. در صورتی که در برنامه بانتی، منابع انسانی نامحدود می‌باشد، البته این امر در کنترل سازمان مورد آزمون قرار گرفته می‌باشد.
مورد ۴) سرعت کشف ‌آسیب‌پذیری در پروژه آزمون نفوذ سنتی، به سرعت افراد، میزان درگیری زمانی/ذهنی آن‌ها در پروژه‌های موازی وابسته است، به همین دلیل آسیب‌پذیری‌ها همیشه با انجام اولین آزمون نفوذ کشف نمی‌گردند. بسیاری از سامانه‌ها، بعد از چندید بار آزمون نفوذ سنتی،‌ آسیب‌پذیری جدید کشف می‌گردد که گواه سرعت پایین کشف آسیب‌پذیری در روش سنتی می‌باشد. در برنامه بانتی، به دلیل شرکت منابع انسانی نامحدود، این مورد به شدت تسریع می‌گردد.
مورد ۵) در پروژه آزمون نفوذ سنتی،‌ نظارت بر پیمان‌کار کاری بسیار دشوار و غیر قابل انجام می‌باشد. عموما مستندات آزمون نفوذ، معیار اصلی برای تخمین کیفیت کار پیمان‌کار می‌باشد. در سامانه بانتی، به دلیل خودجوش بودن هکرها و عدم صرف هزینه اولیه از سوی کارفرما، دلیلی بر نظارت وجود ندارد.
مورد ۶) در آزمون نفوذ سنتی، به دلیل وجود منابع مالی/انسانی محدود، معمولا تمام سامانه‌ها مورد آزمون قرار نمی‌گیرند، تنها سامانه‌های حساس در اولویت می‌باشند، این خود ضعف در سازمان‌های مختلف حساب می‌شود،‌ زیرا در مقوله نفوذ به یک سازمان، حساسی سامانه اولویتی برای یک هکر نداشته، و بسیاری از سازمان‌ها، از سامانه‌های غیر حساس و فراموش‌شده خود آسیب می‌بینند. در سامانه بانتی، یک سازمان می‌تواند تمام سامانه‌های خود را در معرض آزمون گذاشته و فقط برای سامانه‌های حساس مبلغ جایزه در نظر بگیرد. اینکه چرا هکر بر روی سامانه‌های غیرپولی وقت می‌گذارد، به چرخه سیستم سامانه برمی‌گردد.
مورد ۷) مدت در قراردادهای سنتی، محدود می‌باشد و معمولا بسیاری از سازمان‌ها به صورت ادواری قراردادهای خود را با پیمان‌کاران تمدید می‌کنند. در صورت وجود آسیب‌پذیری در میان فاصله زمانی بین انعقاد دوقرارداد، ضرر متوجه سازمان می‌گردد. در برنامه بانتی، زمان آزمون به‌صورت خیلی آسان قابل تمدید می‌باشد.
مورد ۸) در آزمون نفوذ سنتی، کارشناسان می‌توانند آسیب‌پذیری کشف شده را گزارش نکنند. زیرا هیچ سازوکار بازدارنده برای آن‌ها وجود ندارد (اصولا امکان نظارت این بخش وجود ندارد). زیرا کارشناس در نهایت اظهار در عدم توانایی در کشف آسیب‌پذیری را دارد. در سامانه بانتی، هکر بدون فوت وقت، آسیب‌پذیری را گزارش می‌کند، زیرا اولا انگیزه مالی برای انجام این امر دارد، ثانیا ممکن است هکری دیگر این آسیب‌پذیری را گزارش کند، و علاوه بر رفع شدن آسیب‌پذیری، امتیازی به ایشان نرسد.
مورد ۹) در آزمون نفوذ سنتی، انگیزه کارشناسان قابل اندازه‌گیری نمی‌باشد. بسیاری از کارشناسان ممکن است برای رفع تکلیف آزمون را انجام دهند و تلاشی برای کشف آسیب‌پذیری نکنند. در سامانه بانتی، هکر برای پیشرفت مالی/کاربری در سامانه، حداکثر تلاش خود را برای انجام آزمون انجام می‌دهد.


پیش‌بینی دغدغه و نگرانی احتمالی سازمان‌ها و شرکت‌ها

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

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

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

  • سازمان‌هایی که مبلغ بیشتری بابت هر آسیب‌پذیری پرداخت کنند مورد توجه تعداد بیشتری از هکرها بوده و آسیب‌پذیری احتمالی آن‌ها قاعدتاً زودتر گزارش می‌شود.
  • سازمان‌هایی که مبلغ کمتری پرداخت کرده و یا حتی به صورت رایگان عضو شده‌اند نیز با توجه به عملکرد سامانه، مورد توجه هکرهای کم تجربه‌تر یا تازه واردتر قرار می‌گیرند.
  • سازمان‌ها تنها زمانی وجه پرداخت خواهند کرد که آسیب‌پذیری‌هایی از انواع مطلوب خودشان گزارش شود.
علاقه‌مند به امنیت، بازی و تفریح. ۳۳ سال زندگی کردم، دوست دارم ۲۷ سال دیگه هم زندگی کنم. دو پارادوکس بزرگ زندگیم اینه که رشته تحصیلیم لیزر و اپتیک هست،‌ ربطی به کارم نداره، اسمم هم یاشار هست اما ترک نیستم.
زندگی من به سه قسمت تقسیم میشه، قسمت اول کار روزانه من هست که مثل بقیه مردم میرم سر کار. قسمت دوم سعی در براورده کردن علایق کاری خودم، مثل همین وبلاگ. قسمت سوم هم خانواده، مسافرت و تفریح. تلاش می‌کنم توی قسمت دوم، باگ‌بانتی کار کنم،‌ هم درآمد خوبی داره هم هیجان خاص خودش رو. اون قسمت‌هایی از تکنیک‌ها و کشفیات در فرایند باگ‌بانتی رو سعی می‌کنم توی این وبلاگ قرار بدم.
  • به اشتراک بگذارید:
  1. امیر گفت:

    ممنون از فرهنگ سازی
    چندتا اشتباه املایی داشت:بنباید،ل می نمی‌آیند؟

  2. […] برای آشنایی بیشتر با این سازوکار پیشنهاد می‌کنم پست قبلی من رو در این مورد رو مطالعه کنید. توی این پست قرار به ارائه توضیح و […]

  3. میعاد گفت:

    👍🏻👍🏻👍🏻👍🏻