توضیحی در مورد دریافت پیام‌های مشابه در «حرف به من»

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

حقیقتش ماجرا در لحظه اول برام ترسناک بود، چون در تیم ما کسی غیر از من چنین دسترسی‌ای رو نداره و خب می‌دونستم که خودم هم چنین کاری نکردم (!) و کمی نگران دیتاها شدم، اما بعد از بررسی لاگ‌ها و دیتابیس متوجه جزییاتی شدم که در سه بند کوتاه توضیح میدم.

 

اول از همه، چطور این اتفاق افتاده؟

لینک دریافت پیام‌ ناشناس در حرف‌به‌من، لینک امنیتی و عجیبی نیست. در واقع، هیچ‌وقت نیازی هم نبوده که امنیتی باشه! این لینک حاصل base64 encode کردن UserID تلگرام کاربرانه. UserID یک عدد پابلیک محسوب میشه و زمانی که کاربران از کلاینت‌ها، یا بات‌های دیگه استفاده می‌کنند برای شناسوندن کاربر به تلگرام استفاده می‌شه. در نتیجه، با نوشتن یک کلاینت ساده بدون خروجی تصویری (صرفا کد)، یا چیزی شبیه نرم‌افزاری که هدایت موس و کی‌بورد کامپیوتر رو به عهده می‌گرفت میشه به تعداد زیادی از کاربران که UserID شون رو داریم پیام ارسال کرد‌ (با ساختن لینک از طریق انکد کردن UserID و قرار دادنش در انتهای اون harfbemanbot?start=XXXXXXXXX).

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

برخلاف حدس برخی از دوستان، به نظر نمی‌رسه که از روش ارسال مستقیم به ناشناس (از طریق Username یا فوروارد یک مسج) برای این کار استفاده شده باشه. در واقع این امکان در بات، مشکلی ایجاد نکرده.

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

 

دوم، چرا یکی باید این کار رو بکنه؟

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

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

 

مهم‌تر از همه، آیا خطری اطلاعات من رو تهدید می‌کنه؟ اینایی که گفتید یعنی هک شدید؟

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

 

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

ممنون از وقتی که به خوندن این پست اختصاص دادید.

بروزرسانی: همه پیام‌های ارسال شده توسط UserIDهای شناسایی شده از سرور حذف شد تا از این لحظه کسی اشتباها دستور پاسخ دادن به اون‌ها رو لمس نکنه. این‌ پیام‌ها دیگه در این‌باکس هم دیده نمیشن.

توضیحاتی در مورد «حرف به من»

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

چند نکته در این موضوع توجه من رو جلب کرد که به اون‌ها اشاره می‌کنم:

Untitled

نکته اول اینکه نگارنده پست در توییتی اشاره کرده که «روباتی که هیچ اسم و هویتی از خودش اعلام نمی‌کند… [بقیه صحبت]». این جمله در ابتدا من رو یاد هشتگ #کمی_تحقیق_بد_نیست انداخت! چرا که لینک کانال رسمی برنامه در تلگرام از روز اول در صفحه توضیحات روبات قرار گرفته. کانالی که در اون گفت‌وگوهای متعددی با من در مورد این برنامه در رسانه‌ها منتشر شده. از جمله این پست در دیجیاتو، و این مصاحبه در روزنامه فناوران. در واقع با حداکثر ۳۰ ثانیه تحقیق یا حتی جست‌وجوی ساده در گوگل، می‌شد به حساب کاربری من در توییتر، و حتی اطلاعات شخصی و سوابق کاری‌ام در لینکدین دست پیدا کرد. صحبت مهدی عزیز نشون می‌ده که با کمترین تحقیق، لفظ جاسوس رو به این برنامه نسبت دادند و مقاله‌ای تحلیلی منتشر کرده‌اند. آفتی که این روزها در ما خاورمیانه‌ای‌ها نهادینه شده.

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

از اوایل سال میلادی جاری که تلگرام بات‌ها رو معرفی کرد، اعتقاد من به این بود که آینده دنیای اینترنت در حوزه IM اتفاق می‌افته. چرا که برای کاربر نهایی، بسیار شناخته شده‌تر و ساده‌تره، توسعه استارتاپ روی اون نیازی به اجبار کاربران به دانلود اپ‌های حجیم و اشغال فضای گوشی‌شون نداره، و از همه مهم‌تر،‌ با هر نوع اینترنتی به راحتی در دسترسه. دنیا هم داره به همین سمت پیش می‌ره؛ مثلا چند روز پیش، اوبر بات رسمی خودش رو برای سفارش تاکسی روی پلت‌فرم مسنجر فیس‌بوک معرفی کرد. از این رو، فعالیت‌هایی رو در این حوزه شروع کردم که «حرف به من» فقط یکی از اون‌هاست. این برنامه در کمتر از دو ماه موفق به جذب بیش از دو میلیون و صدهزار کاربر فعال شده، خودش رو بدون دریافت کمک از نهادهای مالی نظام سرمایه‌داری و با تکیه به صبر شخصی، شناخت حوزه رسانه و دانش فنی از نظر مالی سر پا نگه داشته، و البته یکی از تنها استارتاپ‌های ایرانه که با دریافت هزینه خدمات به صورت in-app purchase از طریق پی‌پال (در نسخه انگلیسی بات) در حال ارزآوری و فعالیت در بازار آزاد بین‌المللیه. انتظار شخصی من به عنوان یک خبرنگار سابق حوزه آی‌سی‌تی، و یکی از دنبال‌کنندگان برنامه کلیک، پرداختن به این استارتاپ موفق ایرانی و سایر فعالیت‌های اون (حتی در بازار بیرون ایران) بود، نه چنین نقل قولی! اما حق می‌دم که ما ایرانی‌ها انقدر کانال و بات بی‌کاربرد در تلگرام دیدیم، که در ناخودآگاهمون دید مثبتی نسبت به این فضا نداشته باشیم.

بگذریم؛ چند نکته فنی:

۱- همون‌طور که در اسکرین‌شات بالا می‌بینید، دوستی نگرانی‌ای رو در مورد اتصال توییتر و «شماره» تلگرام‌شون مطرح کردند. به این موضوع بارها در کانال پرداخته شده، اما جا داره مجددا اشاره کنم که همون‌طور که با جست‌وجو در سایت رسمی تلگرام می‌تونید ببینید، بات‌ها هیچ دسترسی‌ای بیشتر از یک دسترسی کاربر عادی به اطلاعات شما ندارند. این اطلاعات دقیقا شامل First Name و Last Name شما در تلگرام، User Name، تصویر پروفایل‌ شما و پیام‌هایی است که به اون‌ها می‌فرستید. به بیان خلاصه‌تر،‌ بات‌ها دسترسی به شماره تلگرام شما ندارند، مگه اینکه خودتون شماره‌تون رو بفرستید!

Untitled

۲- مهدی عزیز! تحلیل پنج میلیون پیام در زبان‌ها، گفتار‌ها، نوشتارها و تایپ‌های نوشتاری مختلف کار یک رویاپرداز و خوره‌ی استارتاپ ۲۲ ساله نیست! هلدینگ‌های بزرگی مثل فیس‌بوک و گوگل، سال‌ها وقت صرف کرده‌اند تا بتونند گفته‌های کاربران رو، مثلا از روی اونچه در فرم انتشار استاتوس فیس‌بوک تایپ می‌کنید درک کنند (اون هم فعلا به زبان انگلیسی!). همیشه از افرادی مثل شما که در توضیحات پروفایل توییتر لقب IT Man رو برای خودشون برگزیدند و بی‌پروا حکم جاسوسی صادر می‌کنند (که البته این ادعا در یک دعوای رسمی و در صورت شکایت حقوقی طرف مقابل می‌تونه عواقبی داشته باشه) انتظار می‌ره با اطلاعات بیشتری نسبت به انتشار توضیحات در زمینه تحلیل داده‌های حجیم تصمیم‌گیری کنند.

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

بهترین باشید.

۲-۱

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