بدافزار ATMJaDi، دشمن جان دستگاه‌های خودپرداز

بهار 2019 بود که به نمونه‌ای از بدافزار جدیدِ ATM برخوردیم. این بدافزار درقالب جاوا نوشته و در یک سرویس اسکنر چندگانه آپلود شده بود. خاستگاه این بدافزار ابتدا مکزیک بود و بعد در کلمبیا نیز دیده شد. بعد از تحلیلی کوتاه پی بردیم نام این بدافزار ATMJaDi است و می‌تواند دخل دستگاه‌های خودپرداز را دربیاورد و همه‌ی نقدینگی‌اش را غارت کند. با این حال برای این کار از آرشیوهای استاندارد  XFS، JXFS یا CSC استفاده نمی‌کند؛ بلکه در عوض این بدافزار تنها با زیر مجموعه‌ی کوچکی از دستگاه‌های خودپرداز سازگاری خواهد داشت. از همین روست که می‌گوییم این بدافزار بسیار هدف‌دار عمل کرده و حلقه‌ی قربانیانش بسیار محدود و خاص است.
یکی از محصولات ما در کسپرسکی توانست این نمونه تروجان را مورد شناسایی قرار دهد.
 
جزئیات فنی  
نخست اینکه، درست مانند هر بدافزار دستگاه خودپردازی، مهاجمین باید راهی پیدا کنند تا بتوانند بدافزار خود را روی ATMها نصب کنند. این بدافزار را نمی‌توان از طریق کیبورد یا تاچ‌اسکرین ATM کنترل کرد زیرا برای اهدافی که دارد در خود رابط وبِ سرور  HTTP درون‌سازه‌ای اجرا می‌کند. بنابراین مجرمین باید به منظور دسترسی به دستگاه خودپرداز مورد هدف خود شبکه‌ی اینترنتی داشته باشند. این باعث شده تا فکر کنیم مجرمان زیرساخت بانک را برای دسترسی پیدا کردن به شبکه‌ای که دستگاه‌های خودپرداز بدان وصلند دستکاری کرده‌اند.
وقتی بدافزار نصب و اجرا شد (در قالب فایل آرشیو جاوا موسوم به INJX_PURE.jar) آنوقت به دنبال پروسه‌ای خواهد گشت که  ATM را بتوان با آن تحت کنترل درآورد و به داخل آن رخنه کرد؛ بطوریکه انگار این فرآیند دارد کاملاً قانونی عمل می‌کند. بعد از این تزریق، بدافزار به طور همزمان پیامی را به چند زبان روی پایانه پرینت می‌کند: روسی، پرتغالی، اسپانیایی و چینی. با این وجود، تمام پیام‌ها یا رشته‌های دیگر که توسط این بدافزار استفاده شده‌اند به زبان انگلیسی است. تمام این عبارات که به زبان‌های مختلف نمایش داده شده‌اند به انگلیسی «آزادی و شکوه» ترجمه می‌شوند. این عبارت در ادامه‌اش یک پیام اضافی به زبان روسی هم دارد و آن این است: «отдельный» به معنای «جداگانه». گمان داریم این یک‌ عملیات پرچم دروغین[1] باشد؛ زیرا روسی‌زبانانِ بومی هیچوقت در این شرایط از این واژه‌ی بخصوص استفاده نمی‌کنند.
Свобода и слава
Liberdade e glória
Libertad y Gloria
自由与荣耀
Отдельный
 
سپس، یک سرور HTTP با استفاده از مسیرهای از پیش تعریف‌شده‌ی URL  شروع می‌کند به پذیرش فرمان‌ها. آن‌ها از قرار زیر می‌باشند:
/d برای دریافت کاستِ دستگاه خودپرداز به منظور انجام اقدامات (اقدام درست را پارامترهای موفقیت‌آمیز رقم می‌زند)
/eva برای ارزیابی (اجرای) کد تأمین‌شده توسط کاربر روی خودپردازِ قربانی
/mgr برای مدیر که اجازه می‌دهد مجرمان به فهرستی از دسته‌های در حال اجرا (برای ماشین مجازی جاوای مربوطه) دسترسی پیدا کنند تا بدین‌ترتیب بتوانند هر کارکردی را از آن طلب کرده و درصورت نیاز نیز هر نوع استدلالی را به نفع خود تمام کنند.
/core به مجرمین اجازه می‌دهد تا از فایل سیستم قربانی یک فایل بخصوصِ .jar لود کنند
 /root این مسیر، بدنه‌ی درخواست POST را قبول می‌کند و آن را در قالب یک فرمان Shell به cmd.exe تحویل می‌دهد (که خروجی نهایی را بازمی‌گرداند).
این مسیر run a shell و توزیع از هیچ صفحه‌ی رابط (با فرم و دکمه) برخوردار نیستند اما در عوض تنها درخواست‌های از پیش آماده‌شده‌ی HTTP POST را قبول  و نتایج خامی را به صورت متنی در پیج پرینت می‌کنند (بدین‌ترتیب تگ‌های  HTML نیز حذف می‌شود). بنابراین، اگر مورد، درخواست توزیع بود پاسخ بدافزار، این رشته خواهد بود: «ok». درخواست get cash units information نیز در ادامه با خود رشته‌ای دارد که شرایط واحدهای نقدینگیِ دستگاه‌های خودپرداز را شرح می‌دهد (همانطور که در نمونه‌ی زیر مشاهده می‌کنید).
; 20:30; 10:100; 5:700; 1:1000
این رشته عبارت است از چهار گروه که هر یک بواسطه‌ی نقطه ویرگول از هم جدا شده‌اند. این فهرستی است که به کاست نقدینگی دستگاه خودپرداز مربوط می‌شود و متشکل است از دو ارزش؛ که هر یک با دو نقطه از هم جدا شده‌اند: یکی واحد پول و دیگری تعداد دقیق و واقعی اسکناس‌های داخل کاست. در نمونه‌ی بالا اولین کاست در خود 1000 یادداشت بانکی از واحد 1 و 700 یادداشت بانکی از واحد 5 و غیره.
جدا از مسیرهای  “run a shell”، “dispense” و “get cash unit”، مسیرهای “eva”، “mgr” و “core” از صفحات رابط برخورداند. در زیر اسکرین‌شاتی از پیج ارزیابی را خدمتتان ارائه داده‌ایم:
 
 
 
بدین‌ترتیب، به مجرمان اجازه داده می‌شود تا هر کد جاوااسکریپتی را روی دستگاه خودپرداز قربانی اجرا کنند و ببینند آیا جواب می‌دهد یا خیر. حالا چرا جاوااسکریپت؟ چون جاوا استفاده از موتورهای خارجی را برای مجرمان آزاد گذاشته. در زیر، قابلیتی را مشاهده می‌کنید که بدافزار از آن برای اجرای کد پذیرفته‌شده‌ی جاوااسکریپت استفاده می‌کند.
 
 
 نتیجه‌گیری
طبیعت هدف‌دارِ بدافزار ATMJaDi نشان می‌دهد مجرمان پیش از نوشتن بدافزارشان، قربانی را به خوبی می‌شناسند. پر واضح است که حتماً به ATM -که در آن دسته‌های سفارشی جاوا و تازه به احتمال قوی کد منبع برنامه‌ی جاوا اجرا می‌شود- دسترسی داشته‌اند. همچنین اینکه، روشی که بدافزار تحت کنترل قرار می‌گیرد نشان می‌دهد مجرمین در نظر داشتند برای دسترسی به دستگاه خودپردازِ آلوده، شبکه‌ی اینترنتی آن را نشانه روند (احتمالاً از طریق شبکه‌ی اینترنتی داخلی بانک).
بانک‌ها برای جلوگیری از این نوع حملات باید چه اقداماتی را انجام دهند؟
بکارگیریِ راه‌حل‌های ضد حملاتِ هدف‌دار (نظیر  KATA[2]) به منظور محافظت از شبکه‌ی اینترنتی بانک و سایر راه‌حل‌ها جهت محفظت از دستگاه‌های خودپرداز خود در مقابل این بدافزار.
تهیه‌ی لیست سفید از ATM
شبکه‌ی بانکی ATM باید جداگانه و دسترسی به آن نیز می‌بایست به شدت محدود باشد.
البته این موارد را گلچین کردیم و البته که فهرست راهکارهای پیشگیرانه بلند بالاتر از اینهاست. این را به یاد داشته باشید که امنیت اطلاعات نیازمند واکنش‌دهیِ به موقع و توجه توأمان دارد. 
 
[1]  false flag، به عملیاتهایی گفته می‌شود که توسط نهادهای نظامی، شبه نظامی، اطلاعاتی یا سیاسی به گونه‌ای انجام می‌شود که این تصور به وجود آید که گروه‌ها یا کشورهای دیگری این عملیاتها را انجام داده‌اند.
[2] Kaspersky Anti Targeted Attack Platform
منبع: کسپرسکی آنلاین