رمز یکبار مصرف بانکی کشک است! Authentication is Irrelevant!

پیش از هر چیزی، لطفا اگر هر کسی در حوزه بانکی، مخصوصا در این شرکت‌هایی که به بانک‌ها خدمات می‌دهند، مثل خدمات انفورماتیک و سداد و به پرداخت و امثالهم، یا در بانک مرکزی و باز مخصوصا در حوزه امنیت می‌شناسید، mention کنید! شاید توجهشان جلب شد و باعث خیری بشود و اصلاحی رخ دهد! البته چندین بار این موارد را در گعده‌های کوچک‌تر طرح کردم، اما اینبار می‌خواهم با کمک خوانندگان این مطلب، آنقدر صدای آنرا بلند کنم که به گوش شنوایی برسد.Authentication is Irrelevant!در چند روز گذشته اتفاقی برای یک از نزدیکان من افتاد که ماجرای آنرا کمی جلوتر نقل خواهم کرد، اما پیش از آن می‌خواهم داستانی از زمانی که در دانشگاه TUDelft هلند مشغول تحصیل در دوره PhD بودم نقل کنیم. حوزه‌ای که من در آن مشغول تحصیل بودم، به حوزه امنیت شبکه البته از نگاهی زنجیره تامین و اقتصاد آن ربط داشت. استاد من اسمش را گذاشته بود Economy of Cyber Security. اغلب تمرکز در حوزه امنیت روی مسایل خیلی فنی و تکنیک‌های نفوذ و جلوگیری و ... هست. اما کار استاد من پیدا کردن ارتباط‌ها بین شاخص‌های حوزه امنیت شبکه و سایر شاخص‌های اجتماعی، اقتصادی، سیاسی و همچنین مباحث قانون گذاری بود. علاوه بر آن نگاهی به زنجیر تامین و انگیزه‌ها در این فضا می‌پرداخت. به همت دانشجویان این استاد و خود این استاد، چهارشنبه‌ها، جلساتی تحت عنوان colloquium شکل گرفته بود که هر هفته یک موضوعی بحث می‌شد. بعضی وقت‌ها هم یک متخصص یا استاد دیگر دعوت می‌شد و درباره موضوعی بحث می‌شد. در یکی از این جلسات Chief Security Officer یکی از بانک‌های هلند توسط استاد عزیز ما که آدم سرشناسی بود حضور پیدا کرد و موضوع بحث این بود: Authentication is Irrelevant! ( که با لهجه هلندی می‌گفت ighghelevant :) ) یک آدم تپل خیلی با مزه و کلی تجربه. در اون جلسه از تجربیاتش از چندین سال قبل‌تر می‌گفت. یعنی این جلسه سال 2014 بود و احتمالا حرف‌های ایشان به سالهای 2010 الی 2012 برمی‌گشت. این تاریخ را در نظر بگیرید و اینکه الان 2019 هستیم. بعدا جلوتر به این تاریخ کار دارم. یکی از اولین بحث‌هایی که مطرح کرد، این بود که در بانک‌ها و تیم امنیت بانک‌ها ها همه می‌دانند که SSL دارای مشکل weakest link problem هست. (برای اطلاع دوستانی که خیلی با این موضوع آشنا نیستند، به طور خلاصه: امنیت در زنجیره SSL به اندازه امنیت ضعیف‌ترین CA ها هست. یعنی تفاوتی ندارد که شما از Verisign یک SSL Certificate چند ده هزار دلاری سبز رنگ Enhanced Validated بگیرید یا از یک جایی مثل WoSign سابق به طور مجانی و یا از Let's Encrypt مجانی! هر کدام از اینها اگر هک شوند، می‌توانند اون سایتی هم که Certificate خیلی گران قیمت از Verisign داره را تحت تاثیر قرار بدهند). اتفاقا در همان تیم یک کار خوبی در این خصوص انجام شده بود که بازیگران حوزه SSL Certificate بررسی شده بود و اینکه آیا این بازیگران بزرگ، مشکل امنیتی نداشتند؟ چرا یک CA هلندی مثل DigiNotar وقتی دچار مشکل شد، کلا ورشکسته شد محو شد، اما مثلا Comodo آمریکایی هم که سابقه هک شدن آن وجود داشت سر جایش است. یا بازیگران این حوزه چه کسانی هستند و چه قدرتی دارند؟ کلا که نتایج خیلی جالبی داشت. https://www.econinfosec.org/archive/weis2013/papers/AsghariWEIS2013.pdf بعد این آقای تپل در جلسه به ما می‌گفت، فکر نکنید که ما نمی‌فهمیم که SSL دچار مشکل Weakest link Problem هست و ما را سرزنش نکنید که چرا پول مردم را با خریدن SSL Certificate های گران قیمت از Verisign و امثالهم هدر می‌دهیم! می‌گفت اگر روزی اتفاقی بیفته، تا ما بیایم حالی سهامدار و مدیر و بالا دست و رسانه‌ها بکنیم که بابا جان این نوع incident ربطی به اینکه CA کی بوده نداشته، صد بار شهید شدیم و اخراج شدیم! در نتیجه این پول ها را تایید می‌کنیم to keep our ass safe!. البته این قسمتش بد آموزی داشت! چون این درد نفهمیدن مسوولین و جو دادن رسانه‌های ظاهرا حتی در کشوری مثل هلند هم وجود دارد! اما لااقل در متخصصین منسوب شده به رده‌های بالای بانکی، کاملا توجیه بودند که قضیه چی هست! آیا در ایران عزیز ما هم، این بزرگان بانکی که با شاه فالوده نمی‌خورند، آگاهند؟ بروم سراغ ادامه داستان که نکات جالب‌تری داشت. در بخشی از بحث برای ما داستان شیوه‌های سرقت و شیوه‌های دفاع را تعریف می‌کرد. باز تاکید می‌کنم که به تاریخ اون روز، این اطلاعات و مثال‌ها دست کم دو سال قدیمی‌تر بودند. مفهوم Mule: همان قاطر خودمان. مفهومی که به حساب‌های بانکی واسط برای انتقال پول گفته می‌شد. می‌گفت وقتی از حساب بانکی کسی دزدی می‌شه، باید پول بره توی حساب‌های دیگه و خلاصه تهش به یک جا برسه که مثلا از اتحادیه اروپا خارج بشه و یا به بانک‌های کشورهای اروپایی‌ای برود که ردگیری سخت و تا حد ممکن غیر قابل دسترس بشه یا باهاش خرید‌های مختلف انجام بشه و خلاصه یک جوری شسته بشه. به این حساب‌های واسط می‌گفتند Mule. به تاریخ سال 2014، می‌گفت یکی از کارهای مهم ما پیدا کردن این حساب‌های Mule و مسدود کردن یا بلاک کردن آنها هست و به ازای هر تراکنش خلافکارانه، به طور متوسط دو حساب Mule بسته می‌شود. (یعنی اینقدر پیشرفت کرده بودند و کار افراد خلافکار را سخت کرده‌بودند که برای اینکه یک تراکنش fraudulent انجام شود، اینقدر سرعت عمل و دقت ایشان بالا هست که فرد تبهکار مجبور میشه دست کم برای هر انتقال دو حساب Mule را بسوزاند! ) حالا این را مقایسه کنید با کشور ما. احتمالا یک حساب ساخته می‌شود یا سرقت می‌شود. با ان صدها تراکنش دزدی انجام می‌شود تا شاید ان شاله با شکایت یکی از شکات و بعد از چند بار رفت و آمد پلیس فتا و دادسری و قاضی و بانک، بالاخره یک حساب Mule بسته شود و تا آن زمان دزد عزیز چه حالی کرده. بعد مثال زد که معمولا در اتحادیه اروپا چگونه حساب Mule به دست تبهکاران می‌افته. اون زمان می‌گفت طبق آمار ما، دسته‌های قابل توجه اینها هستند: افراد جوان و نوجوان. مثلا کودک یک کارت بانکی برایش گرفته اند، 50 یورو داره. یک نفر می‌گه کارتت را به من می دهی من 100 یورو بدهم. فرد نوجوان هم می‌گوید این که خیلی خوب است! کارتش را می‌دهد! دسته دیگر، مهاجرینی که سطح آگاهی آنها کم است و در دام این شبکه‌های تبهکاری می‌افتند. دسته دیگر، افراد مشکل دار (اعم از بی‌بضاعت، مشکل دار، ... ) که تحت فشار گروه‌های تبهکاری، حاضر به دادن کارت و حساب بانکی و یا باز کردن حساب بانکی می‌شوند. این وسط یک گریزی بزنم به وضعیت کشور خودمان. این قضیه Mule و حساب‌های واسطه، یکی از درد‌های رایج در کشور خود ما هم هست. حساب به نام افراد مرده، حساب با مدارک غلط، حساب (و کارت بازرگانی!) به اسم افرادی که در روستا‌ها زندگی می‌کنند و از اطلاعات لازم برخوردار نیستند. بازکردن حساب به اسم افراد ضعیف. و باز نقل قولی را از قول یک صراف ایرانی در کانادا بکنم که کار عجیبی نمی‌کرد، مثل همه این سالها که ایرانی‌هایی از ایران برای خانوادشان پول از طریق این صرافان می‌فرستادند، می‌گفت شرایط را سخت کرده‌اند. اما این نیاز وجود دارد. تا وقتی هم که با 500 هزار تومان تا یک میلیون تومان افراد ضعیفی (ضعیف از نظر اقتصادی بیشتر مد نظرش بود) هستند که هویتشان را می‌فروشند یا اجاره می‌کنند، این بازی تمام شدنی نیست. بعد داستان دیگری را از چند شیوه‌های دزدی گفت. که من یکی از آنها را اینجا می‌گویم. یک مقدمه‌ای درباره زنجیره تامین malwareو botnet را اول بحث کردیم که از حوصله این متن خارج است. اما خلاصه آن این بود که کامپیوتر افراد آلوده می‌شود به یک malware و آقای دزد، از راه دور به کامپیوتر این فرد دسترسی دارد. لطفا نگویید این خیلی حالت خاصی است! نخیر! حالت خیلی رایجی هم هست! همین الان اگر ISP های ایرانی را از نظر فقط SPAM بررسی کنید (فکر نکنیم لزوما این SPAM های تبلیغاتی هست! اینها اغلب کپمین‌های آلوده کردن هستند! یعنی سیستم کاربر آلوده است و دستور می‌گیرد که ایمیل و spam ارسال کند) جایگاه ایران بد است! https://www.blockedservers.com/ http://stats.uceprotect.net/?page=sa و جزو 25 تا کشور اول است. این یکی از نشانه‌های بالای آلودگی است! در کنار آن، مسدود بودن دسترسی به google play و انواع apk های crack شده و انواع فیلتر شکن و تلگرام‌های رنگارنگ که ممکن است توسط خیلی از افراد دستکاری شده باشد، خود اینها هم همه از ابزار‌های آلوده کردن کاربران است. برگردم به ادامه قصه. آقای دزد به کامپیوتر شما دسترسی دارد. به نوعی به همه اطلاعات شما دسترسی دارد. مثلا می داند شما چه کسی هستید. صفحه‌های شما را می‌بیند. نام شما را می داند. مشخصات شما را می‌داند. تلفن شما را دارد، دوباره یادآوری می‌کنم! اصلا به کل کامپیوتر شما دسترسی دارد! حالا شما وارد Internet bank خودتان می‌شوید. تا لاگین می‌کنید، آقای دزد موبایل شما را می‌گیرد. سلام علیک می‌کند و خودش را معرفی می‌کند و می‌گوید می‌خواسته برای دوستش 2000 یورو واریز کند ولی اشتباه به حساب شما واریز کرده و بانک هم گفته نمی‌تواند کاری بکند فقط شماره شما را به ایشان داده که خودتان با هم صحبت کنید! شما هم به ایشان می‌گویید اتفاقا همین الان داخل اینترنت بانک هستم. بگذارید نگاه کنم. Bingo! شما یک تراکنش 2000 یورویی می‌بینید که وارد حساب شما شده. به فردی که پشت خط هست می‌گویید: بله! ظاهرا یک 2 هزار یورو در حساب من هست. آقای دزد از آن طرف خط ساعت و مشخصات می‌دهد شما هم تایید می‌کنید! بعد مطمین می‌شوید که همه چیز درست است و تماس گیرنده بیچاره چقدر دچار استرس شده. در نقش یک انسان فرهیخته می‌خواهید به اون کمک کنید. اون از شما می‌خواهد که پول را به یک شماره حساب بریزید. شما هم با کمال میل این کار را انجام می‌دهید. برای اطلاع زمانی که من در هلند بودم، همان بانک‌ها Tokenداشتند. آن زمان Token اینگونه بود که باید کارت بانکی را داخل یک دستگاه می‌کردیم. رمز کارت را می‌زدیم. بعد برایمان رمز یکبار مصرف تولید می کرد. در چند سناریو مختلف، مثلا برای لاگین کردن و یا برای انجام تراکنش. البته با USB هم به کامپیوتر وصل می‌شد که لازم نباشه شما همه رمز ها را دستی تایپ کنید. روی اون دستگاه تایید می‌کردید، بعد رمز را می فرستاد روی browser. پس شما دستگاه token را هم می آوردید. رمز یکبار مصرف هم تولید می‌کردید. وجه را هم انتقال می‌دادید. بعد آقای دزد هم از شما تشکر می‌کرد و تمام. شب می‌گذشت و فردا شما دوباره سراغ Internet bankتان می‌رفتید. خوشحال از شخصیتی که به خرج داده بودید. در تراکنش‌هایتان دو هزار یورویی که پس داده بودید می‌دیدید. اما صبر کنید! پس اون تراکنش 2000 یورویی که به حساب شما وارد شده بود چه شد؟! چرا آنرا نمی‌بینید! این بخش را من مختصر می‌کنم: آقای دزد به کامپیوتر شما دسترسی داشته. در زمانی که شما به اینترنت بانک وصل شده بودید، از طریق browser شما چند خط HTML بیشتر را وارد صفحه شما کرده بوده به نحوی که شما یک خط بیشتر در لیست تراکنش‌های خودتان می‌دیدی. عملا وقتی browser شما درخواست به سمت بانک فرستاده بوده، از طرف بانک محتوایی شامل آن تراکنش ارسال نشده بوده. بلکه روی کامپیوتر خود مشتری تغییرات رخ داده بوده! حالا آیا به نظرم شما، SSL داشتن مهم است؟ صد البته که نه! از طریق browser شما به طور مستقیم inject شده. (باز برای کسانی که خیلی آشنایی ندارند و فکر می‌کنند این کار نشدنی است! وقتی اسکایپ را نصب می‌کردید، هرکجای صفحه یک شماره تلفن می‌دید، یک آیکون اسکایپ اضافه به شما نشان می‌داد که با کلیک بر روی آن بتوانید تماس تلفنی بگیرید!) آیا پسورد طولانی مهم است؟ آیا رمز دوم مهم است؟ آیا Token مهم است؟! خود مشتری، با دستان خودش، با استفاده از کارت و رمز یکبار مصرف و token و هزاران ابزار امنیتی که بانک در اختیارش قرار داده بوده، تراکنش 2000 یورویی را انجام داده بوده! و اینجا بود که این تپلی امنیت اطلاعات موضوع بحث را یادآوری کرد! Authentication is irrelevant! بله راست می‌گفت! در ادامه کمی وارد بحث دفاع شد. گفت Authentication اصلا مهم نیست! Detection راه حل است! یعنی اینکه تشخیص دهید یک تراکنش (اعم از وصل شدن به سایت بانک یا انتقال وجه یا تغییر رمز یا هر چیزی) مشکوک است یا غیر مجاز است و توسط فرد مجاز انجام نمی‌شود. می‌گفت ما الان تکنولوژی‌هایی داریم که می‌توانیم اصلا رمز را حذف کنیم! مثل می‌گفت یک شرکت از کشور اسمشو نبر، چندین سال هست که روی حرکت mouse کار کرده و به این نتیجه رسیده که شیوه حرکت mouse افراد مثل اثر انگشت یک جور هویت فردی هست. یا مثلا می‌گفت ما با دقت فوق‌العاده زیاد می‌دانیم که وقتی شما وارد سایت اینترنت بانکتان می‌شوید می‌خواهید چه تراکنشی با چه مبلغی به چه مقصدی را انجام دهید! می‌گفت می‌دانیم که شما چه روزهایی از کجا وصل شده اید. (بحث اطلاعات IP) چه ساعت هایی. خانه شما کجاست، محل کار شما کجاست و خلاصه همه این اطلاعات را لحظه به لحظه به هم وصل می‌کنیم. در نتیجه اگر الان شما بخواهید اون تراکنش 2000 یورویی را انجام دهید، ما می‌دانیم که اون تراکنش به احتمال زیاد دزدی است! ولی می‌گفت نمی‌توانیم این کار را بکنیم! نمی‌توانیم پسورد را حذف کنیم! چون اگر این کار را بکنیم مردم یک دفعه panic می‌زنند! فکر می‌کنند دیگه امنیت ندارند! در صورتیکه از نظر ما هیچ تفاوتی نداره! چون Authentication is irrelevant! ما که محو این حرف‌ها بودیم شروع کردیم به ایده دادن که خوب شما تا فهمیدید دسترسی مشتری را قطع کنید. تراکنش را بلوک کنید فلان کنید، بهمان کنید. خیلی از این ایده‌ها را هم من می‌دادم چون خیلی در فضای ایران بودم که به سادگی می‌شه هر کاری کرد! مثلا شب بخوابید، صبح بلند شوید، از فردا دیگه اینترنت بانک قبلی شما بدون اطلاع رسانی قطع شده و شما باید به بانک مراجعه حضوری کنید! بعد این بنده خدا چند تا نکته گفت که بعضی از آنها را باید دوستان تکنولوژی دوست یا بدبخت پندار بانکی بهش توجه ویژه کنند: می‌گفت ببینید خیلی از سیستم‌های بانکی ما قدیمی قدیمی هست. این اینترنت بانک و اینها رویش سوار شده. مثلا سیستم بانک با Cobol هست! ما اصلا امکان این شامورتی بازی‌ها را آنجا نداریم! بعد می‌گفتم در یک جاهایی وقتی سیستم تشخیص دزدی ما یک تراکنش را تشخیص میداد، یک دفعه وسط کار یک tcp reset از یک جایی می‌فرستاد! که کانکشن مشتری را قطع کنه که مثلا تراکنش نتونه کامل انجام بشه! فکرش را بکنید! برای اینکه نمی‌توانستند در سیستم اینترنت بانک و سیستم core banking به این سادگی دستکاری کنند، سیستم‌های جانبی اینچنینی ایجاد کرده بودند! می‌گفت فکر می‌کنید بلوک کردن حساب مشتری به همین سادگی هست؟ طرف فرد مسن است، سختش است از خانه بیرون بیاید! طرف خارج از کشور است! اصلا بر فرض در دسترس باشد، هزینه هر مراجعه به بانک برای بانک،60 تا 70 یورو هست! یعنی بانک‌های هلند (و البته کشور‌های متمدن) دوست دارند تا می‌تواند مشتری کارهایش را خودش پشت کامپیوتر انجام دهد! (این را مقایسه کنید با کشور ما که شعبه زده است! رقابت بین بانک‌ها برای باز کردن شعبه و جینگول مستون کردن شعبه! که البته ظاهرا بانک مرکزی جلویش را سعی کرده بگیره). خلاصه حرفش این بود که مسدود کردن حسابی داره بهش دستبرد می‌شه، به این سادگی نیست! می‌گفت اون داستان 2000 یوروی بالا را اینگونه فهمیده بودن که دزده فقط نوشته بوده 2000، در صورتیکه در سیستم بانکی (و اقتصادی) هلند، رسم بر این است که همه اعداد با سنت نوشته شود. حتی اگر صفر باشد. یعنی 2000.00 می‌گفتم از همینجا ما اولین بار فهمیدیم که جریان چی هست! می‌گفت بعد از اینکه فهمیدیم جریان چیه، یکی از کارهایی که کرده بودیم، یک javascript گذاشته بودیم که چیزی که مشتری روی صفحه browser از بانک می‌بینه را برای ما بفرسته و ما این طرف مقایسه می‌کردیم که آیا همین را برای مشتری فرستاده بودیم؟ اگر متفاوت بود، متوجه می‌شدیم که یک چیزی در صفحه مشتری inject شده .... می‌گفت یکی از چیزهایی که در طی اون سالها فهمیدیم این بود که این افراد تبهکار اغلب LCD و مانیتور‌های با resolution بالا دارند! این خودش یکی از شاخص‌های ما برای دسترسی غیر مجاز اینترنت بانک افراد بود! می‌گفتم در هلند (و البته خیلی کشور‌های متمدن) این بانک‌ها هستند که برای مشتریان حقیقی، تمام مسوولیت را قبول می‌کنند. یعنی حتی همان کیس 2000 یورویی که خود مشتری فرستاده بود را بانک تمام و کمال به مشتری بر می‌گرداند! برای اینکه بانک اینگونه فکر می کنه، اگر اعتماد مردم به سیستم اینترنتی از بین برود، باید چند صد برابر هزینه کنه که بتواند به افراد خدمات حضوری و ... بدهد. البته درباره شرکت‌ها قضیه تفاوت دارد. شرکت‌ها آدم حرفه‌ای باید داشته باشند. درک و شعور لازم برای استفاده از خدمات اینترنتی و محافظت از دارایی‌های خودشان را داشته باشند. در نتیجه ایشان از این قاعده مستثنی بودند. گذشته از آن مثلا به طور کلی، سقف تراکنش یک فرد حقیقی در اینترنت بانک‌ها(ی هلند) در بیشترین حالت، 25 هزار یورو در یک روز می‌توانست باشد. لذا امکان دزدی میلیون یورویی وجود نداشت. خلاصه ته همه این حرف‌ها این بود که Authentication is irrelevant! Detection is the solution! بعد از این توضیحات بعد اشاره خیلی مختصری هم البته به یکی از چالش‌های جدید کرد و اون این بود که این تبهکاران در یک نمونه رفته بودند یک شرکتی که مثلا چند سالی کار کرده بوده و مثلا خیلی سود بالایی نداشته ولی گردش مالی قابل توجهی داشته را خریده بودند (احتمالا با قیمت بسیار کم). بعد تراکنش‌های دزدی را شبیه و اندازه تراکنش‌های آن شرکت انجام داده بودند و در یک زمان کوتاه یک سرقت جانانه کرده‌بودند و پول را به کشور‌هایی برده بودند که ردگیری پول کاملا سخت بوده سیستم detection هم به دلیل اینکه تراکنش‌های جدید همگن با تراکنش‌های قبلی بوده، فعالیت غیر معمولی را تشخیص نداده بوده. (منظور در مقصد بوده). و خلاصه اون زمان ابراز نگرانی می‌کرد که این سبک جدید دزدی که البته effort بیشتری هم برای شبکه‌های تبهکاری داره، اما از آن طرف هم سود سرشاری برای آنها دارد و صد البته موضوع Detection باید خیلی پیشرفته‌تر بشود. تا اینجای داستان، تجربه یک کشور خارجی در حوزه امنیت بانکی و ... البته نکاتی را هم خوب است اضافه کنم: حساب جاری (یا همان حساب چک) که همه داشتند، هزینه‌ای حدود 3 یورو در ماه دارد. این یعنی 20 دقیقه حداقل دستمزد (حدودا حداقل دستمزد، 10 یورو در ساعت است) بانک‌ها توکن و همه ادوات را به طور مجانی به مردم می دهند. (جزوی از خدمات هست) در هلند در آن زمان کارت اعتباری خیلی رایج نبود. مردم هلندی خیلی فرهنگ "بدهکار بودن" را برخلاف آمریکای شمالی نمی‌پسندیدند. چون موضوع کارت اعتباری و هزینه‌های پذیرنده و zero liability و اینها خودش بحث‌های دیگری را دارد، این توضیح را دادم که یک دفعه کسی قاطی نکند مطالب را با هم اما اتفاقی چند روز پیش افتاد: در روز تعطیلی نزد یکی از افراد نزدیک خانواده دعوت بودیم و رفته بودم. وارد که شدیم دیدم مشغول مکالمه تلفنی هستند. اندکی گذشت، با ایما و اشاره متوجه شدم که ظاهرا کسی که پشت خط است می‌گوید برنده یک سفر کربلا شده‌اند به ارزش 9 میلیون تومان و خلاصه قرار است نقدی به حسابشان بریزند! گفتم کلاهبرداری هست. در همان میانه، یکی دیگر از اقوام از خیلی وقت بود آنجا بود، اشاره کرد که آره مشکوک بود، ولی با پلیس هم چک کردند. درست است! خیلی ادامه ندادم. متوجه شدم که آن طرف خط می‌گوید یک چیزی را از روی SMS بخوانید. کلمه "کد 5 رقمی" به گوشم خورد. بلند گفتم ندهید! دیدم در حال خواندن هستند! پنجاه و دو ... فریاد زدم ندهید! دزدی است! باز هم چیزی نشد! مکالمه ادامه پیدا کرد! پنداری آن طرف خط گفته بود، نه اشتباه است! یکبار دیگر بگویید! چند لحظه بعد مخاطب من که فریادم را نثارش کرده بودم، به داخل اتاق رفت! جملاتی را می‌شنیدم! ... شما که پول از حساب من برداشت کردید....! همچنان مکالمه ادامه داشت. طرف مقابل با حربه‌های مختلف همچنان سعی داشت مکالمه را ادامه دهد! کار به آدرس گرفتن رسید! پشت خط آدرس داد: میدان آرژانتین، (اینجا بود که فامیل نزدیک دوباره به داخل جمع آمد که آدرس را ما بشنویم و مثلا یادداشت کنیم) خیابان الوند، برج سینا، طبقه 26، معاونت جوایز. از این طرف هم ادامه سوال که کدام سازمان؟ کدام نهاد؟ پس من می‌آیم انجا تکلیف را مشخص کنم! آن طرف خط هم ظاهرا جفنگیات! آخرش رسید به وزارت ارتباطات! حتی یک جایی ظاهرا گفت: "... برایتان مشکل ایجاد می‌شود..."!!!! من همچنان می‌گفتم مکالمه را ادامه ندهید! دزد است! دوباره با جدیت و فریاد گفتم قطع کنید! که قوم و خویش نزدیک با اکراه و سختی و مکالمه را قطع کرد! انگار کم کم متوجه شده بود که مشکلی هست و حالا می‌خواست طرف را پشت خط نگه‌دارد اما غافل از اینکه دزدان بیشتر درحال تفریح و تلاش برای موجه جلوه نشان دادن خودشان هستند و هر کلام بیشتری که رد و بدل شود، ممکن است منجر به سو استفاده‌ای بیشتر شود! اینقدر عصبانی بودم که فقط فریاد می‌زدم! گفتم پولهایتان را بردند! چرا گوش نمی‌دهید! چرا اطلاعات می‌دهید! چقدر در حساب پول بود؟ می‌گفتد شماره کارتی که پرسیده شد، حدود یک میلیون تومان در آن پول داشته! تاکید کردم SMS هایتان را ببینید. ... دیدم همچنان هاج و واج هستند. خیلی عصبانی بودم. به همسرم گفتم گوشی را بگیرد و بدهد به من! چشمتان روز بد نبیند: بانک ملی، شناسه تایید XXXX، مبلع -300 میلیون، به حساب 99007. بانک ملی شناسه تایید xxxxx، مبلغ 170 میلیون ریال به حساب 99007. بالاتر: بانک ملی، کابر گرامی به منظور حفاظت از اطلاعات بانکی خود از قراداد این کد در اختیار دیگران اکیده خودداری نمایید. شناسه فعال سازی عضویت شما XXXXX و بعد پیامک‌های جابجایی وجه، که همین اعداد و چند عدد دیگر را با علامت منفی نشان می‌داد! اینقدر ناراحت بودم، که بلند شدم و رفتم. فقط تاکید کردم که همین الان بروید نزد پلیس شکایت کنید! باید حتما کیشیکی باشد، دادسرایی باشد، قاضی کیشیکی باشد. اگر اندک احتمالی هم برای رصد این پول رفته شده باشد، همین الان باید اقدام کرد و البته تصور کنید 3 روز تعطیلی پشت سر هم! دزد‌ها چه زمان بندی خوبی داشتند! در این بین هم کلی حرف دیگر رد بد شده بود. اینکه از چه شماره‌ای تماس گرفته شده؟ آخه مگر روز تعطیل کسی زنگ می‌زنه؟ این دولتی‌ها روز عادی‌اش کار نمی‌کنن! چگونه امروز تماس گرفته‌اند که هدیه بدهند؟ چگونه با پلیس چک کردید؟ ظاهرا آنقدر صحنه‌سازه‌ها و ممارست‌های آقای دزد خوب بوده که توانسته بوده همه شک‌ها را به نحوی رفع و رجوع کنه. حتی در جایی با قاطی کردن حرف‌ها به ظاهرا به پلیس فتا وصل کرده بوده!!! فکر کنید! البته من هیچ کدام اینها را در صحنه حضور نداشتم. خیلی هم عمیق پیگیری نکردم. فقط از تکه حرف‌های رد و بدل شده در جمع متوجه شدم. ولی می‌توانم این را بگویم که این فرد فامیل نزدیک، فرد نسبتا دقیقی است. البته به دلیل شرایط سنی، خیلی تکنولوژی باز نیست. ولی همیشه تلاش می‌کند مسایل امنیتی را تا حدی که می‌داند رعایت کند. مثلا ظاهرا شماره کارت را طرف مقابل پرسیده بود. نداده بود. حتی دو رقم سمت راست را هم نداده بود (البته اینها خیلی مهم نیست چون جلوتر توضیح می‌دهم که آقای دزد چه کرده بود). جزو چیزهایی که می‌دانم حتما پرسیده بود، تاریخ تولد بوده. خیلی افراد روی این موضوع حساسیت ندارند. به همین دلیل فامیل نزدیک هم خیلی حساس نشده بوده. در ذهن خودش، اون کارتی که حرفش به میان آمده و ان طرف خط هم به آن اشاره کرده بوده، موجودی کمی داشته، پس برای همین خیلی نگران نبوده. غافل از اینکه کارت ابزار میانی بوده. اصل کار، حساب‌های بانکی بوده. در اینجا گریزی بزنم به شیوه نفوذ آقای دزد و مواردی که مطمین هستم و مواردی که حدس می‌زنم: آقای دزد کارش را در سامانه my.bmi.ir انجام داده بوده. اینکه انقدر صریح به اسم بانک اشاره می‌کنم ،دلیلش نا امنی یا مشکل دار بودن بانک ملی نیست. فقط برای این است که درک درستی در خواننده از مسیر نفوذ و مهندسی اجتماعی انجام شده ایجاد کنم. همین مکانیزم احتمالا کمتر یا بیشتر یا به شیوه‌های مشابه درباره بانک‌های دیگر هم حتما وجود دارد. آقای دزد به نحوی فامیل نزدیک را تارگت کرده. این بخش را به درستی نمی‌‌توانم مشخص کنم. اما مثال‌هایی می‌زنم که همه آنها محتمل بوده و هست آقای دزد به نحوی به این نتیجه رسیده بوده که فامیل نزدیک نزد بانک ملی حساب دارد، احتمالا بنا به شواهدی توانسته بوده متوجه بشه که فامیل نزدیک مقداری پول در حسابش دارد که ارزش سرمایه گذاری دارد. به نحوی شماره موبایل فامیل نزدیک را هم پیدا کرده بوده. (ظاهرا دو شماره موبایل مختلف). چون با فامیل نزدیک مصاحبه دقیق نکردم، جزییات این بخش را نمی‌دانم. شاید حتی فقط با شماره موبایل شروع کرده، کد ملی را هم از خود فامیل نزدیک گرفته باشه. ممکن است این شناسایی از یک حضور در شعبه یک بانک حاصل شده باشه. ممکن است از طریق یک آشنا. گزینه دیگری هم وجود دارد. آن هم این است که نرم‌افزار آلوده‌ای روی گوشی فامیل نزدیک نصب بوده. شماره موبایل و SMS های اون را برای دزدان می‌فرستاده. دزد عزیز، در نتیجه از روی پیامک‌ها می‌دانسته وضعیت موجودی چگونه است. شماره موبایل را هم داشته. احتمالا key logger و ... و حتی تمام مواردی که بر روی سایت‌های پرداخت وارد می‌شده (مثل رمز دوم و CVV و تاریخ انقضا) را داشته. آقای دزد به صفحه my.bmi.ir رفته و روی گزینه ثبت نام در سامانه بام کلیک کرده. یا کد ملی را داشته یا نداشته. (در واقع نمی‌دانم که آیا مستقیما از فامیل نزدیک کد ملی را پرسیده یا خودش داشته) اما موبایل را داشته (که تماس هم گرفته) و خلاصه مرحله اول ثبت نام را پیش برده. اولین مرحله ثبت نام در سامانه بام بانک ملیدر این مرحله، برای فامیل نزدیک، یک پیامک رفته که در ان کد فعال سازی بوده. البته جالب است که بگویم در پیامک نوشته شده بوده که این کد را در اختیار هیچ کس قرار ندهید! نمی‌دانم آقایان دزد چه ادبیاتی را استفاده کردند که فامیل نزدیک را قانع کردند که کد را به ایشان بدهد. دومین مرحله ثبت نام در سامانه بام. درخواست تاریخ تولد و شناسه فعال سازیدر همین زمان تاریخ تولد را هم پرسیده‌اند که بتوانند مرحله دوم ثبت نام را انجام دهند. اینقدر در این مملکت برای هر کار ساده‌ای هزاران قلم اطلاعات ریز و جز از آدمها گرفته شده که تنها چیزی که به نظر یک نفر نمی‌رسد این است که اطلاعات تاریخ تولدش ارزش امنیت اطلاعاتی داشته باشد! مرحله سوم، اطلاعات کارت است. اینجا قسمتی جالبی است. یک نفر باید اطلاعات کارت را داشته باشد. رمز دوم را داشته باشد (معمولا افراد توجیه هستند که رمز دوم را نباید در اختیار کسی قرار دهند. همانظور که فامیل نزدیک هم آگاه بوده) تاریخ انقضا و ... بر اساس توضیحاتی که در بند اول دادم، دو حالت برای این موضوع متصور هستم. یا فامیل نزدیک در یک دستگاه POS دستکاری شده، کارتش را کشیده بوده و رمز هم یا گفته شده یا به نحوی سرقت شده. بعد از طریق رمز اول و کپی کردن کارت از پای دستگاه ATM، یک رمز دوم جدید تنظیم شده یا اینکه گوشی آلوده بوده و در یکی از خرید‌های اینترنتی همه اطلاعات به سرقت رفته. باز تاکید می‌کنم که چون با فامیل نزدیک مصاحبه دقیقی انجام ندادم، نمی‌توانم نظر دقیقی بدهم، اما گزینه اول هم گزینه محتلمی است. چرا که در جایی از حرف‌ها (بعدتر) شنیدم که با رمز دوم (یکی از کارتها) در جایی نتوانسته بودند وارد شوند که نشانه ریست شدن و تغییر پیدا کردن ان بوده. فامیل نزدیک در این مقطع ظاهرا مقاومت در ارایه شماره کارت کرده بوده. میزان مقاومت برای ندادن اطلاعات و میزان اطلاعات داده شده برای من مشخص نیست. اما ظاهرا آقای دزد با خواندن بخشی هایی از شماره کارت که خیلی هم دشوار نبوده است تلاش در جلب اعتماد کرده‌ بوده. هر کسی که روی این موضوع تمرکز کنه، می‌داند که شماره‌های کارت بانکی بانک ملی با 6037 شروع می‌شود و آخر آنها را هم که در تصویر زیر داشته. البته بماند که اگر سرقت از مشخصات کارت به وسیله یک POS آلوده، یا key logger انجام شده باشد، اصلا کل اطلاعات را داشته! (در جایی از حرف‌ها شنیدم که آقای دزد شماره کارت را خوانده بوده. حالا اینکه کل آنرا یا بخشی از آنرا نمی‌دانم. اما این هم یکی از تکنیک‌های جلب اطمینان بوده که بدان که ما از جای درستی زنگ می‌زنیم که این اطلاعات را داریم!) مرحله سوم فعال سازی/ گرفتن اطلاعات کارتدر مرحله بعدی شرایط استفاده از سرویس را آقای دزد تایید کرده. بعد هم رفته شناسه و رمز انتخاب کرده و خان اول را رد کرده! مرحله آخر، ثبت نام در بامبعد رسیده به ماجرای سرقت پول! در چهار تلاش مختلف، چهار تراکنش انتقال حساب انجام داده شده. دو تراکنش کارت به کارت با سقف 3 میلیون تومان هم انجام شده. هر بار با تکنیکی اون شماره 5 رقمی را گرفته و گفته نه این اشتباه است! دوباره تلاش کنید! که در تمام این موارد با روش‌های مختلف سعی کرده عدد رمز را بخواند. البته باید این نکته را اضافه کنم که فامیل عزیز از عینک استفاده می‌کند. سنش هم بالا هست. در خواندن SMS ها مشکل داشته. احتمالا این موارد در کنار تلاش‌های آقای دزد و هیجانات ایجاد شده توسط او در دیده نشدن جزییات SMS و متوجه نشدن ماجرا توسط فامیل نزدیک بی تاثیر نبوده. همه این داستان‌های برای این گفتم که این به گوش متولیان امر در بانک مرکزی، سایر بانک‌ها، نهاد‌های مدعی امنیت شبکه (ماهر؟! پدافند غیر عامل؟! و یک دوجین دیگر که واقعا نمی‌دانم چقدر پولی که می‌گیرند را دارند بهینه استفاده می‌کنند) رسانده شود که Authentication is irrelevant! رمز دوم هم همینجوری‌اش کشک است! چه برسد به اینکه با SMS باشد یا از طریق App باشد اون هم روی گوشی‌هایی که از کرامات این عزیزان الان محل تجمع انواع malware ها شده‌اند! چون ممکن است درست برای برخی از این عزیزان درست جمله بالا جا نیفتاده باشد، توضیح تکمیلی می‌دهم: آیا SMS امن است؟ آقای موبوگرام و تلگرام طلایی و ...، به طور معمول دسترسی به پیامک‌های گوشی‌های اندروید دارند، اغلب هم تایید می‌کنند. حالا شما با SMS چیزی را بفرستد. نسل بعدی هک حساب خالی‌کردن‌ها، حتی نیاز به تماس تلفنی هم ندارد! اصلا فکر کنید گوشی همه تمیز! همین الان رهیاب و مگفا و پیک آسا و همه این اپراتورهای ارسال پیامک، خودشان به عنوان یک نقطه ریسک دیگه اضافه شده‌اند! تا در مدل سنتی، اگر مثلا بانک با اپراتوی موبایل در ارتباط مستقیم بود، متن پیامک یکی در اپراتور موبایل احتمالا ذخیره می‌شد یکی در بانک. اما الان در این شرکت‌های واسطه هم ذخیره می‌شود. (البته خدا کند که از reseller های اینها سرویس نگرفته باشند که در این صورت احتمالا جاهای دیگری هم یک نسخه از پیامک‌ها وجود دارد!) یا در خصوص app هایی که قرار است رمز یکبار مصرف تولید کنند، اما توصیه‌هایم در حد سواد ناقص خودم: آموزش آموزش آموزش آموزش! شب و روز اگر رسانه ملی از این داستان‌ها پخش کنه، مصاحبه با مالباختگان بکنه ...در مدارس اگر اموزش بگذاره، حتما باعث خیر می‌شود! این چه فرهنگی هست که در مغازه‌ و بیمارستان و خلاصه اغلب جاها، رمز کارت را صندوقدار از مشتری می‌گیرد! این همه نیروی بسیج این مملکت داره! این همه نظام بازرسی داره! این همه پلیس اماکن داره! آقایان محترم! به جای اینکه به درز دیوار بروید گیر بدهید، این پتانسیل را استفاده کنید، بگویید بروند در مغازه‌ها، دونه به دونه، خرید بکنند یا بایستند چند دقیقه نگاه کنند. اگر صندوق‌دار گفت رمز را بدهید، همانجا اخطار اول، امضا بگیرند تحویل دهند. بار دوم، همه POS های آنجا را ببندند! برادر من، اگر بانک‌ها را مجبور کنید، این کار را نمی‌کنند! بانک ملت سخت می‌گیره! اون یکی بانک شل می‌گیره، همه می‌روند سراغ اون یکی! چرا بعد بانک ملت نوعی خودش را خراب کنه؟ منظورم از بانک همان PSP ها هستند که اغلبشان به بانکها وصلند. به نظر من رمز دوم روی SMS و app روی گوشی‌ها را فراموش کنید. برای تراکنش مثلا تا 500 هزار تومان شاید بد نباشه. ولی اگر نگران دزدی هستید، فراموش کنید! Token درست حسابی به مردم بدهید! مشخصا برای انتقال وجه. برای بحث خرید آنلاین اون هم ماجرای دیگری هست. اگر قرار باشه توکن همه جا باشه، دشواری خواهد داشت. الان ایده سریع (quick fix) ندارم. تهش همان موضوع detection هست. کاری که بانک‌های همه دنیا دارند انجام می‌دهند. Fraud detection ایده‌آل این است که تراکنش‌های بالای یک حدی را ملزم به داشتن token کنید. برای زیر آن هم بانکها مسوول باشند! مثل خارجه! اون موقع ببینید چگونه برای اینکه یک قرون دزدی را روی هوا نعل کنند، چه مکانیزم‌های fraud detection خوبی می آورند! نه اینکه مثل الان صد جور تعهد بگیرند که هر چی شد به جهنم! در ادامه بند بالا، از حالا این هشدار را می‌خواهم بدهم که ممکلت ما الان ایزوله هست و اینگونه داخلش دارد دزدی می‌شود. فردا روزی که با کل دنیا تعامل داشتیم و swift و iban جاری شد و به سادگی مردم توانستند به خارج از مرزهای کشور پول بفرستند، آنگاه میخواهید چه کنید؟ پولی که الان رفته را هم نمی‌توانید ردگیری درست بکنید یا سریع جلویش را بگیرید. الان روز‌های خوش بانکداری ایران در حوزه fraud هست! بهتر است کاری کنید که بانک‌ها انگیزه داشته باشند! مثل اینکه مسوولیت را گردن خودشان بندازید! یعنی مجبور باشند پول مشتری را پس بدهند! الان در این کشور حدود 30 تا بانک داریم که مشخصا در حوزه consumer فعال هستند! وقتی مثلا به کانادا نگاه می‌کنید با جمعتی 37 میلیونی، 6-7 بانک اصلی consumer دارد (البته بانک زیاد دارد. اما لزوما همشون مشتری عمومی ندارند و اغلب کارهای خاص می‌کنند و مشتری خاص دارند تا حدی که یک آدم عادی خیلی وقت‌ها نمی‌تواند در آنها حساب باز کند!) همه‌جای دنیا کارمزد برای تراکنش هست. می‌دانم که بانک مرکزی هم به دنبال این است که تراکنش‌ها مجانی نباشد. بالاخره شاپرک هم خرج روی دست بانک مرکزی گذاشته! از طرفی وجود کارمزد باعث تقویت این سامانه‌های fraud detection خواهد شد. اما شاید باید یک الاهم و فی‌الاهم کرد. وارد کردن کارمزد به این بازی که احتمالا سمت پذیرنده‌ها خواهد رفت، بدون اینکه مزیت قابل توجهی برای آنها ایجاد شود، با شکست مواجه خواهد شد. حرکت خوبی در کشور انجام شده. پول نقد بسیار کم شده. کارت فراگیر شد. به نوعی کارت زده داریم می‌شویم! اعداد سرانه 5 کارت را شنیدم! یا مثلا وقتی بحث پزشکان و مالیات مطرح شد، یک دفعه بساط پول نقد گرفتن باب شد! شاید بهتر باشد این هزینه گرفته نشود به جایش شفافیت وجود داشته باشد! پول نقد جریانش زیاد نشود! بالاخره چاپ اسکناس، رد گیری سرقت اسکناس و هزاران موضوع مرتبط با آن، می‌تواند هزینه‌های بیشتری را به کشور و سیستم تحمیل کند! پس تا مشوق اساسی برای این موضوع پیدا نشده، بهتر است سوبسید داده شود! تیم ضربتی از همه بانک‌ها در اتاقی ویژه‌ای ایجاد شوند. Call center مفصل برای دریافت چنین گزارش‌هایی در تمام 24 ساعت. خیلی فکر کردم که چگونه، اینها را باید جمع کرد، یک نهاد ثالث؟ یا هر بانک تعدادی نماینده و نیرو به نحوی که بتوانند تراکنش‌های انجام شده را رصد کنند و hold کنند؟ مثال از PSP ها هم حتما باشند. به این ترتیب فردی که پولی از حسابت رفته، بتواند خیلی سریع با این مرکز تماس بگیرد. از طریق این مرکز احراز هویت شود. اسم، شماره تماس، خرید های اخیر، تاریخ تولد، کد ملی، آدرس ثبت شده در فایل بانک (که معمولا دزد به ان دسترسی ندارد) تاریخ بازگشایی حساب، (باور کنید در دنیا وقتی زنگ میزنید بانک، با همین اطلاعات شما را احراز هویت می‌کنند! از پای تلفن کلی هم کار برایتان می‌کنند!). اصلا از طریق اطلاعات داخل سوابق بانک، شماره تماس های ثبت شده مشتری را خودش دوباره بگیرد و تصدیق کند. فردی که متولی بانک تماس گیرنده است، سریع رد گیری کند که تراکنش مشکوک به چه مقصدی بوده. با کارشناس موسسه مقصد در همان سالن رسیدگی ویژه ارتباط برقرار کند. حساب مقصد جزو لیست مشکوک ثبت شود. میزان پولی که ادعا شده بلوکه شود. کارشناس مقصد سوابق حساب مقصد را کنترل کند. چه بسا گزارش‌های دیگری هم باشد. تماس با صاحب حساب مقصد هم مفید است. اگر پول حرکت کرده، نفرات بعدی وارد شوند. حتی اگر به فروشگاهی رسیدند که خرید انجام شده، همه اینها ثبت شود. به فروشگاه اعلام شود که اگر جنس یا خدمت ارسال نشده، متوقف کنند مثلا به مدت 72 ساعت. اگر تا 72 ساعت دستور قضایی آمد، کامل توقف دهند اگر نه، می توانند ادامه دهند. اگر هم خدمت یا کالا ارایه شده، بخواهند که اسناد و مدارک لازم را نگه دارند. مثلا دوربین و بگویند که حکم قضایی احتمالا خواهد آمد. این مکانیزم اگر ادامه پیدا کند، POS های مسموم یا اصطلاحا پول شور، سریعتر flag می‌شوند، اینها می‌تواند مقدمه همان سیستم detection باشد. شرایطی که وقتی یک تراکنش مشکوک از طرف مشتری ثبت می‌شود، روی hold قرار می‌گیرد و بخش امنیت بانک با مشتری تماس می‌گیرد و چک می‌کند که ایا این خود مشتری بوده یا خیر و در صورت تایید تلفنی مشتری به آن اجازه می‌دهند. قبل از تیم ضربت، به نظرم ایجاد کیشیک 24 ساعته پلیس فتا حتی به صورت مرکزی و الزام بانک‌ها به داشتن نمایند 24 ساعته که توانایی دادن اطلاعات به قاضی کیشیک، مسدود کردن حساب، یا مسدود کردن بخشی از موجودی را داشته باشند. حداقل با این روش، افراد مالباخته می‌توانند بلافاصله پس از متوجه شدن، مراجعه حضوری بکنند. احراز هویت حضوری بشوند. بعد پلیس فتا و قاضی کیشیک از احکام موقت و بازدارنده برای متوقف کردن جریان پول استفاده کنند. من منکر "بهتر" بودن وجود رمز دوم در مقابل عدم وجود آن نیستم. بالاخره شرایط را برای دزدها سخت‌تر می‌کنه. اما مشکل را حل نمی‌کنه. درواقع همچنان رمز دوم یک quick patch خوب است. در همین زمینه، پیشنهاد می‌کنم هرچه سریعتر مدل پیامکی را برای رمز دوم منسوخ شود. تا زمان منسوخ شدن، هر گونه کد تاییدی که ارسال می‌شود، هرباره درج شود، این کد را در اختیار دیگران قرار ندهید. فرض کنید که مثل کیس فوق، کاربر مورد حمله، تا به حال به سامانه شما وصل نشده که اصلا آگاهی داشته باشد که پیامک‌ها چه شکلی است! مطمین نیستم که این حرفی که می‌زنم بهترین راه باشد، اما الان خیلی از بانک‌ها کارتهایشان smart card هست و چیپ داره. با فرض اینکه بتوان از آنها در تولید رمز دوم استفاده کرد، انگاه همه بانک‌ها اگر از یک استاندارد استفاده کنند، می‌توان یک مدل دستگاه Token را استفاده کرد. به این ترتیب، لازم نیست برای هر نفر در هر بانک یک token ایجاد شود. هر فرد کافی است یک token داشته باشد و کارت بانکی حکم آن private key را خواهد داشت که با رمز اول هم protect شده. بدون اینکه بخواهم توصیه به استفاده از محصول خاصی بکنم، یک نمونه را که در جستجوی سریع پیدا کردم، لینکش را می‌گذارم اینجا: http://www.apg8202.com/ و در نهایت باز هم می‌خواهم بگویم Authentication is irrelevant! وقت و انرژیتان را روی چیز بهتری صرف کنید!