Ali Borhani - گاه‌نوشته‌های یک توسعه‌دهنده!

چرا اکستنشن شاپرک را نوشتم؟ +‌جواب سوالات متداول!

Shaparak Verifier - Chrome Extension

چند روز پیش، یک اکستنشن ساده کروم برای بررسی دروازه های پرداخت شاپرک نوشتم و در استور کروم منتشر کردم. اما اینکه چرا اینکار را کردم یا اصلا کاربردی دارد و یا قصد من جاسوسی اطلاعات (!) هست یا نه، باعث شد این پست را بنویسم.

چه اتفاقی افتاد؟

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

صفحه جعلی دروازه پرداخت بانک ملت صفحه‌ی جعلی بانک ملت - این صفحه در اپلیکیشن لود می شده و url آن برای کاربر مشخص نبوده است!

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

مسدود شدن سایت جعلی توسط هاستینگ مسدود شدن سایت جعلی توسط هاستینگ

هفته بعد از این ماجرا، دوباره اپ جدیدی منتشر شد توسط همان شخص! روز از نو روزی از نو! اینبار پیگیری ها جدی تر شد و من در توییتر نیز منتشر کردم (اینجا) . سایت شخص به سرعت مسدود شد و دیروز از دوستم پرسیدم انگار شخصی که فیشینگ کرده بود را هم گرفته‌اند!

همان هفته اول با یکی دیگر از دوستانم هم صحبت کردم برای راه حل جلوگیری از این حملات، به این نتیجه رسیدیم که اکستنشن برای مرورگر می تواند کمکی کند و نوشتن این اکستنشن تا چند روز پیش در لیست todo من وجود داشت!

فیشینگ دیگری در راه هست!

چند روز پیش میلاد اسلامی زاد توییتی ارسال کرد که شخصی به بهانه فروش اطلاعات درز کرده ایرانسل یک صفحه جعلی دروازه پرداخت بانک پارسیان را ساخته و کاربران را فریب می دهد!

Shut Up and do the Work

این عنوان پادکستی هست که jeffrey way هفته پیش منتشر کرده بود! من هم دقیقا کاری را کردم که گفته!

Shut Up and do the Work - Jeffrey way

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

خلاصه تمام بهانه های بالا باعث شد که چنین اکستنشنی ساخته شود! (بهانه ها بیشتر از تعداد خط‌های کد آن است!😂)

این اکستنشن چه جوری کار می کند؟

فرآیند این اکستنشن خیلی ساده است، فقط چک می کند که url تبی که در کروم باز کردید اولا ‍‍https‍ و ثانیا یکی از ساب دامین های شاپرک باشد:

https://*.shaparak.ir/*

آیا این اکستنشن صفحات جعلی را نیز تشخیص می دهد؟

جواب کوتاه: خیر!

این اکستنشن تایید می کند، که صفحه فعلی شما زیرمجموعه شاپرک است یا خیر (حالت برعکس!) ولی توانایی این را ندارد که بررسی کند این صفحه یک صفحه جعلی است! دلیل آن هم روشن است برای اینکار باید روشن کنید که این یک صفحه پرداخت است و این کار ساده ای نیست و راحت فریب می خورد + بررسی تعداد حالت کم (دروازه های شاپرک) خیلی راحت تر از بررسی تماس سایت هاست! دلیل دیگر هم این هست که کاربر نیازی به این پیچیدگی ندارد! اگر وارد صفحه پرداخت شدید و آیکان اکستنشن فعال نشد، شما متوجه می شوید که این یک صفحه پرداخت جعلی است! به همین سادگی!

آیا کسی که فریب فیشینگ را می خورد اکستنشن می تواند نصب کند؟!

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

اما باید این نکته را در نظر داشته باشیم، دلیل اصلی فیشینگ و سایر کلاه برداری های اینترنتی، ناآگاهی مردم می باشد!
اما چه طوری می شود آگاهی مردم را به این مقوله ها زیاد کرد؟ آموزش!

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

خوب خودمان url را چک می کنیم که شاپرک باشد!

بله قطعا باید url را چک کنید! این به عنوان پیش نیاز برای هر کاربر اینترنت است! اما کاربران از جمله خود من بعضی مواقع تنبلی می کنیم! یا توسط بعضی از ترفند ها فریب می خوریم! مثلا:

https://bpm.shaparak.ir.shaparak.xyz

حال اگر اندازه این صفحه را کوچک کنید، اصلا متوجه نمی شوید!

صفحه جعلی بانک ملت با لینک بالا در حالت اندازه صفحه کوچک صفحه جعلی بانک ملت با لینک بالا در حالت اندازه صفحه کوچک

من به این اکستنشن اعتماد ندارم! از کجا معلوم اطلاعات من را نمی دزد؟!

این هم از موضوعاتی بود که خیلی از من پرسیده می شد! خصوصا بعد از اینکه امکان نوتیفیکیشن را علیرضا احمدی عزیز برای من pull request فرستاد و کروم درخواست فعال سازی دوباره را بعد از آپدیت به کاربر نشان می داد.

این اکستنشن در مرحله اول به صورت متن باز در گیت‌هاب گذاشته شده و اگر برنامه نویس هستید می توانید کدهای آن را بررسی کنید، حتی می توانید خودتان آن را دانلود کنید، تغییر دهید و به صورت دستی خودتان در کروم نصب کنید.

این اکستنشن نیاز به ۳ تا پرمیشن دارد:

tabs

کروم پرمیشن tabs را با جمله Read your browsing historyistory نشان می دهد! و این به نظر خطرناک می رسد! در واقع این جمله درست است چون شما دسترسی به url هر تب دارید و می توانید آن را جمع آوری کنید!

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

Notification

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

Storage

برای ذخیره سازی تنظیمات مانند فعال شدن نمایش نوتیفیکیشن استفاده می شود.

با این حال اگر به این اکستنشن اعتماد ندارید، اصراری بر نصب آن نیست، اما هنگام پرداخت حتما بررسی کنید که url مربوط به شاپرک می باشد :)

آیا این اکستنشن می‌تواند تمام حمله های فیشینگ شاپرک را دفع کند؟

جواب کوتاه:‌ خیر!

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

البته کافه بازار و گوگل پلی قوانین سختی برای این موارد دارند، اگر مورد غیر مجازی دیدید، حتما گزارش دهید :)

در مواردی نیز هم ممکن است url درست باشد اما باز هم صفحه جعلی را مشاهده کنید، این موردی است که یا مرورگر خطای گواهینامه ssl/tls را به شما نشان می دهد که راحت متوجه می شوید. اما در حالت دیگری که هکر یا یک برنامه مخرب با دسترسی root/admin یک گواهینامه root CA را به مجموعه گواهینامه های کامپیوتر شما اضافه کرده است، در این مورد شما با خطر جدی طرف هستید و باید با برنامه آنتی ویروس و اینترنت سکیوریتی و ... این رخنه امنیتی را برطرف کنید.

نتیجه گیری

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

اما صبحتی هم با توسعه دهندگان بانک ها و شاپرک داشتم، اینکه امیدوارم برای تامین امنیت بیشتر فرآیند HPKP را پیاده کنند و شاپرک لیست آدرس دروازه های خود و هش/fingerprint گواهینامه های آن ها را در اختیار عموم قرار دهد.