بازی شب یلدار ای نتورک، هک و شیوه های پاسخگویی به مشکلات امنیتی

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

مساله اینه که بازی شب یلدای ای نتورک هم دقیقا اشتباه بازی سنگ کاغذ قیچی دلیون رو داره. این بازی هم کلاینت ساید است با متغیری به بامزگی winnings که مشخصه می‌کنه چند بار برنده شدین و ریکوئست هایی که بعد از یک تابع encrypt به سرور خبر می‌دن شما چی برنده شدین. این مساله رو سه چهار نفر از دوستان با ایمیل بهم گفتن و به شکل‌های مختلفی هم تونسته بودن مساله رو حل کنن.

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

بعد از مدتی جواب ساده ای گرفتم که تشکر کرده بود از ایمیلم و می گفت «اگر در مسابقه شرکت کنید و برنده یکی از جوایز باشید خوشحال خواهیم شد». امیدوارم که حداقل در پشت صحنه به یک مدیر خبر داده باشن. در واقع اصلی ترین دلیل پیگیری من این بود که ببینم آیا پشتیبانی در یک مدیر رو به این رفت و آمد ایمیلی اضافه می کنه یا نه.

تجربه مشابه زیاد هست – بخصوص موارد حادتر. مثلا یکی از دوستان اخیرا یکی از این به اصطلاح فایروال‌های وطنی رو هک کرده بود. این فایروال‌ها معمولا یک کامپیوتر هستن که یک لینوکس دارن و کمی تنظیم شدن و توی یک جعبه گذاشته شدن و [معمولا] به زور به عنوان فایروال ساخت کشور به شرکت ها فروخته می‌شن. این دوستمون تونسته بود از راه دور با استفاده از یک حفره امنیتی شناخته شده از فایروال رد بشه و وقتی فیلم این کار رو به شکل خصوصی برای اون شرکت فرستاده بود تهدیدش کرده بودن به شکایت به جرم نفوذ غیرمجاز و آموزش هک و غیره و غیره.

شاید تنها تجربه‌های مثبت من در این موارد دوبار بوده. دفعه اول دلیون که اجازه داد فیلمش رو منتشر کنم و جایزه ها رو هم داد و دفعه دوم کسی که یک با هک یک دیتابیس قدیمی به ایمیل من رسیده بود و بهم خبر داد که اون سرویس که من نوشته ام هک شده (:

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

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

  • sinasalek

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

  • Hamid Azimi

    بازی های تلگرام هم دقیقا همینطوریه…

  • Saar

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

    سایت خواهر دیجی‌کالا، دیجی‌استایل، یک مسابقهٔ جالب داره که یکی از کالاهاش رو هر ساعت ۱۰۰۰ تومن قیمت گذاری می‌کنه و هرکی زودتر اون رو پیدا کنه، برنده‌است.

    من یک اسکریپت سادهٔ جاوا اسکریپت نوشتم که تمام کالاها رو می‌گشت (استفاده از API خودشون) و خب کالایی که کمتر از قیمتی که من گفته بودم رو پیدا می‌کرد.
    متاسفانه متوجه شدم که این بازی تبلیغاتی، در عمل صحت نداره و کالایی که بعد از هر ساعت به عنوان کالای ۱۰۰۰ تومنی مشخص می‌شه، تا قبل از اتمامش توی کالاهای سایت نیست!

    در کل، این کارشون باعث شده که اعتماد و احترامی که براشون دارم کمتر از قبل بشه.

    و خب برای تایید حرفم، این URL لیست تمام کالاهای دیجی‌استایل رو به صورت JSON داره:
    http://search.digistyle.com/api2/Data/GetCollection?collectionId=1&pageIndex=1&pageSize=10000

    • دقیق راجع به ساز و کار دیجی‌استایل و این بازی اطلاعی ندارم‌، ولی یه چند تا نکته به نظرم می‌رسه:
      ۱. بازم می‌گم از نیت دیجی‌استایل خبری ندارم‌، ولی این که کمپینی با همچین احتمال بالایی در لو رفتن داشته باشه‌، جدا در مخیلم نمی‌گنجه.
      ۲. لینک جیسونی که دادین حتی با ست کردن pageSize=10000 (که انجام دادین) تعداد محدودی hit (کالا) بر می‌گردونه (احتمالا ۴۶ که کار درستیه محدود کردن درخواست‌ها از سمت سرور). صفحات دیگری هم شامل لیست کالاها موجوده.
      ۳. این که با کراول (حالا چه با api و چه از روی خود سایت) بشه نتیجهٔ بهتری توی یه بازی گرفت رو نمی‌شه یه ضعف امنیتی دونست… کامپیوتر‌ها ساخته شدن برای اتومات کردن کارهامون، و حداقل در مورد وب‌سایت‌ها، دایرهٔ خیلی کمی از کار‌ها هست که به راحتی قابل خودکار شدن نیستن.

      • Saar

        به نظر الان اصلاح شده وگرنه اون موقع ۲ مگابایت دیتا برمی‌گردوند، آخرین JSON که من سیو کردم ۵۷۳۳ تا کالا توش بوده؛ تازه به فرض محدود کردن، هم چنان می‌شه تو یه لوپ، پیج‌ها رو زیاد کرد و صفحات دیگه رو دید.
        منظور من ضعف امنیتی نبود چون تخصصی هم تو این زمینه ندارم، در مورد بی احترامی به کاربر گفتم و کلکی که تو تبلیغات زدن.

  • Mohammad Reza Mashoufi

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

    • jadijadi

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

      من اگر بودم توی استارتاپ خودم یک صفحه درباره می ذاشتم که یه لینک داره به کسانی که کمک کردن سایت بهتر بشه که اونجا اسم می بردم از آدم هایی که مشکلات رو حل کردن.

      جادی

  • متاسفانه اشتباهات امنیتی این شکلی تنها محدود به توسعهٔ کد استارت‌آپ‌ها نمی‌شه… نمونش هم آموزش خطرناک نادیده گرفتن اخطار https درگاه بانک توسط تیمی مثل فیدیبو https://twitter.com/Shahinism/status/805811199476662272
    نمی‌دونم ولی احساسم اینه که این ضعف برخورد ممکنه توی استارت‌اپ‌ها/پروژه‌های ایرانی از یکی از این دو دیدگاه منشا بگیره:
    ۱. سندروم همه چیز دانی که متاسفانه خیلی‌هامون (از جمله خود من) باهاش خو گرفتیم‌، و ترس از اشتباه کردن که رسما ترجیح می‌دیم نفی‌اش کنیم تا قبول…
    ۲. زیادتر بودن تعداد آدم‌های بی‌جنبهٔ علاقه‌مند به خودنمایی نسبت به آدم‌های حرفه‌ای با نیت خیر در این سمت قضیه! مثلا فکرش رو بکن چه جنبهٔ تبلیغات منفی و یا تعداد گزارش اشتباه (که برای کسی که سوادش رو نداره‌، حکم تبلیغات منفی فوق‌آلعاده موثر رو داره) می‌تونه داشته باشه. (البته می‌دونم دیدگاه خیلی تاریکیه)

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

  • Saeid Azm

    درود
    اینجا ایرانه و شرایط خودشو داره .دو ماه پیش بود که به دعوت از پارک علم و فناوری پردیس برای ارایه طرحمون که تو زمینه خانه های هوشمند نیروگاه های ترکیبی از منابع تجدید پذیر بود رفتیم جاتون خالی گفتن ناهارتون روبخورید و برید :خخ چرا چون حامیانی چون ایرانسل فرمودن طرحتون باید زود تبدیل به پول شه .مثلا ۱۰۰ میلیون میدم با ۵۰۰ تومن برداشت کنم .
    بگذریم…
    جادی جان شماره جدید رادیو گیگ رو کی میدی بیرون عزیزجان

  • مصطفی

    جادی ممنون که اینها رو میگی.
    صنعت نرم افزار یه صنعت بسیار نو پا تو کشور ماست (حداقل از لحاظ فرهنگ نه قدمت) و این مشکلات به نظرم به مرور زمان و با فرهنگ سازی بیشتر افراد متخصص و بیشتر شدن رقابت شرکت ها حل میشن.

  • مهمان

    سلام جادی
    منم به عنوان کسی که به صورت تفریحی مقوله هک رو دنبال می کنه تا امروز بارها مشکلات حاد امنیتی تو سایت های مختلف پیدا کردم ولی دریغ از حتی یک تشکر خشک و خالی.
    غیر از چند ماه پیش که چند مورد باگ خیلی شدید امنیتی تو وب بانکینگ یکی از بانک های خصوصی بزرگ کشور پیدا کردم و با معرفی یکی از دوستان اون موارد رو به مسئول حراست و آی تی بانک اطلاع دادم. در قبالش همون دو نفر تشکر کردن ازم و مبلغ 500هزار تومان بهم جایزه دادن(!) که بهشون برگردوندم. بعدا یه نفر که تو بانک مرکزی پستی داشت بهم گفت خیلی خیلی شانس آوردی چون یه آشنا معرفیت کرده وگرنه دهنتو سرویس می کردن!

  • Ebrahim Houshyar

    شما الان یه نگاه به توضیحات بروزرسانی اپ ها [تو اپل که من دارم] هم بندازی همین رو متوجه میشی، اکثر اپ ها کلی توضیح دادن که تو این ورژن چیو درست کردن یا چیو اضافه کردند، اما اپ های ایرانی عین همدیگه همشون فقط دو تا جمله ان، باگ ها رفع شده و سازوکار اپ بهتر شده! همین
    حداقل تو دو تا اپ ”ایرانسل من” و ”دیوار” که من دارم اینجوریه همین الان
    درعوض وقتی میای مثلا به فیدیبو میگی که آقا وقتی رو پاورقی کلیک میکنی و برمیگردی، آیکون برگشت میمونه رو نوشته، بعد ایمیل میزنه که یه صفحه بزن عقب بعد بیا همون صفحه درست میشه! حالا منتظرم ببینم تو آپدیت بعدی درستش میکنن یا نه!