چند روز پیش ، گروه هکری گنجشک درنده، دومین حمله ی خودش رو به زیرساخت های سوخت کشور انجام داد و منجر به اختلال در ارائه خدمات در جایگاههای سوخت شدن.
این گروه در سال 1400/2021 هم ، حمله ای به زیرساخت های سوخت ایران انجام داده بودن. اون زمان ، آقای حمید کشفی بهمراه J. A. Guerrero-Saade ، رو این حادثه کار کردن و یه گزارشی در خصوص این حادثه تهیه کردن. اما بدلیل اینکه سیستم های آسیب پذیر هنوز در معرض دید بودن، گزارش رو منتشر نکردن. اما بعد از دو سال که این حادثه دوباره رخ داده، این گزارش رو بصورت عمومی منتشر کردن.
در این سری از پستها، این گزارش رو در قالب 4 قسمت منتشر کردیم:
- قسمت اول: معماری سیستم هوشمند سوخت
- قسمت دوم : بردارهای حمله ی بالقوه
- قسمت سوم : بررسی حادثه
- قسمت چهارم: OSINT و ردپای اولیه
این گزارش توسط حمید کشفی ، Juan Andrés ، Silas Cutler و یسری محقق دیگه که ترجیح دادن ناشناس بمونن ، تهیه شده. برای دانلود این گزارش به زبان انگلیسی میتونید از این لینک، یا کانال تلگرامی ما استفاده کنید.
بعد از اون حادثه ، هیچ گزارش فنی یا تحلیلی در خصوص این حادثه منتشر نشد که تو ایران یه چیز مرسومی هستش. اسکرین شات هایی که گروه هکری از آخرین حمله اشون منتشر کردن، کارهای این محققین رو تایید میکنه و نشون دهنده ارتباط با شرکت یاس ارغوانی هستش که ارائه دهنده خدمات VAST و POS برای سیستم توزیع سوخت هستش.
این گزارش مرتبط با حمله ی 2021 این گروه هستش اما برخی موارد اون برای حمله ی اخیرشون هم معتبره چون توی عملکردهای سیستم سوخت ، تغییرات کمی رخ داده. همون زیرساخت، تامین کنندگان یکسان ، همون فروشندگان شخص ثالث ، بنابراین ما فقط با یه بردار حمله جدید و یه نقطه ورود جدید روبرو هستیم. محقق امنیتی احتمال داده که شاید یه گزارش جدید هم از حمله ی اخیر منتشر کنه.
حمله اخیر یه اتفاق غیرمنتظره نبود. وضعیت جنگی بین اسرائیل و غزه، منجر به عملیات سایبری مختلف توسط چندین بازیگر نیابتی شده، از جمله بازیگران مرتبط با دولت ایران که حملاتی رو علیه اسرائیل و زیرساخت های آمریکا انجام دادن. حمله به زیرساختها پیامدهایی رو داره. حمله ی سال 2021 پاسخی به حملات سایبری ایران در اون زمان بود و حمله ی اخیر هم واکنش همون بازیگر به این حملات هستش.
پیش نویس اصلی گزارش در دسامبر 2021 نوشته شده و محقق در ژانویه ی 2022 اونو بروز کرده. همچنین در کنفرانس LABSCon 2021 و GlassHouse OpenCall 2022 ارائه هایی در این خصوص داشتن.
5 اکتبر 2021 /13 مهر 1400، ایرانیا با یه خبر حمله سایبری دیگه از خواب بیدار شدن. برخلاف حملات قبلی که روی سانتریفیوژها و پاک کردن سیستم های سازمان بنادر و دریانوردی بود، این حمله قوانین اخلاقی نانوشته ای رو زیر پا گذاشته بود و مستقیما زیرساخت های حیاتی یه کشور رو هدف قرار داده بود. در نتیجه این حمله جایگاه های سوخت از کار افتادن و زندگی میلیونها ایرانی ، مختل شد. حملات مشابه این رو ، اوکراین هم داشته ، اما اونجا حمله باج افزاری بوده که در سراسر جهان گستردش یافته. اما حمله به سیستم سوخت ایران با هدف اختلال در زندگی غیرنظامیان طراحی شده بود.
حمله به قدری پیچیده و مهم هستش که منجر به درگیری بین دولت و ملت بشه، اما از طرفی هم در حدی نیست که آسیب فنی جبران ناپذیر یا طولانی مدتی داشته باشه. همچنین برای جلوگیری از تلفات جانبی ، حمله برنامه ریزی شده بود و قبل از حمله هشدارهایی به اورژانس داده شده بود.
ارسال هشدار اولیه قبل از حمله ، از نکات جالب این حمله هستش و نشون دهنده کار دقیق اطلاعاتی ، برنامه ریزی شده (کنترل خسارات) و داشتن اطلاعات کافی در خصوص تعداد قابل توجهی از افراد که کار مدیریتی و اضطراری مانند اورژانس و آتش نشانی رو انجام میدن هستش.
مهاجم این افراد رو براساس شغل و سلسه مراتب انتخاب کرده، تا یه هشداری برای قطع قریب الوقوع سوخت براشون ارسال کنه. اگرچه هویت این افراد از طریق لیک های قبلی ایران، تایید نشد، اما اینکه مهاجمان از این روش استفاده کردن ،یه جنبه مهمی از حمله هستش ، چون منجر به کاهش تلفات جانبی شده. البته مشخص هم نیست که چند درصد از این افراد بعد از دریافت هشدار، به اون عمل کردن.
جنبه مهم دیگه این هستش که اگرچه گنجشک درنده تونسته دسترسی کاملی به سیستم سوخت بگیره ، اما آسیب کمتر و در عین حال موثر به سیستم وارد کرده.
کاری که گنجشک درنده انجام داد، این بود که سرورهای مدیریتی سطح میانی رو پاک کرده بود، پایانه های POS پمپ بنزین ها رو دوباره پیکربندی کرده بود که منجر به از کار افتادنشون شده بود و برای بازیابی نیاز به حضور فیزیکی پشتیبان در جایگاهها رو داشت. اما گنجشک درنده با دسترسی که داشت میتونست کارهای زیر رو انجام بده اما برنامه ریزی کرده بودن که اینارو نکنن: (براساس دسترسی که داشتن)
- پایانه های POS رو بصورتی خراب کنن که امکان بازیابی حتی در حالت حضور فیزیکی هم نباشه.
- پاک کردن سرورهای مدیریت مرکزی و سایر سیستم های موجود در دیتاسنتر
- پاک یا خراب کردن کارت های هوشمند مشتریان
- دستکاری سهمیه بنزین مشتریان
- انتشار داده های حساس سیستم یا مشتریان. مثلا جزییات کارت های هوشمند رو منتشر کنن که منجر به صدور مجدد اونا در سراسر کشور بشه.
چنین حملاتی به زیرساخت های حیاتی یه کشور ، معمولا توسط اغلب بازیگران دولت- ملت ممنوع هست، چون ممکنه منجر به تشدید درگیری بشه. اما در این مورد ، بازیگر تهدید توانمندی خودش رو نشون داده، اما آسیب جدی هم وارد نکرده و مقامات ایرانی هم تونستن در یه زمان معقولی سیستم ها رو برگردونن. یکی از دلایلی که باعث شد این حمله منجر به هرج و مرج زیادی نشه، این بود که جایگاهها بلافاصله قابل استفاده بودن اما سوخت رو به قیمت یارانه ای ارائه نمیدادن. در حقیقت هدف بازیگر ارائه یه پیام به جای ایجاد هرج و مرج بود. در حملات قبلی هم، این گروه پیام هدفمندی صادر کرده بودن که توسط تیم های فارنزیک قابل مشاهد بود. در جریان حمله به سازمان بنادر (بدون PoC عمومی) یسری از سیستم های داخلی پاک شدن، اما به جای پاک شدن تصادفی بایت ها یا رمزنگاری محتویات دیسک، فقط دیسک هایی که طبقه بندی خاصی داشتن، پاک شده بودن.
با اینکه حمله و شدت اون توسط مقامات ایرانی تایید شد ، اما جزییات فنی توسط دولت یا شرکت شخص ثالثی منتشر نشد و تنها شرکت مدبران یه گزارش با جزییات کم و در حد حدس و گمان منتشر کرد که هیچ اشاره ای به جنبه های فنی ماجرا نداشت . (قسمت چهارم بررسی شده)
اگرچه حمله میتونه خیلی جالب باشه و محققا ، جزییاتی در خصوص اون ارائه دادن، اما تمرکز اصلی این گزارش، روی خود حمله نیست. در جریان بررسی این حادثه محققا با یه چیز غیرمعمول روبرو شدن. اصولا در حملاتی که علیه ایران میشه، جزییات زیادی منتشر نمیشه و معمولا بصورت محتاطانه باهاش رفتار میکنن. اما در خصوص این حمله، افرادی که مسئول فارنزیک بودن، کلی فایل Memory Dump رو به امید یافتن ردپایی از هکرها در سایتهای عمومی آپلود کردن. معلوم نیست که چی رو کشف کردن، اما این بی ملاحظه گی باعث شده محققا هم به این فایلها دسترسی داشته باشن. البته معلوم هم نیست که این اشتباهات بخشی از عملیات بوده یا نه (قسمت چهارم بررسی شده)
سیستم هوشمند سوخت :
قبل از اینکه بریم سراغ حمله، باید بدونیم که سیستم هوشمند سوخت در ایران ، چطوری کار میکنه. قیمت سوخت در ایران برای چندین دهه، کاملا یارانه ای و متناسب با میانگین دستمزد بود. قیمت پایین سوخت منجر به مسائلی مانند سوء مدیریت مصرف و قاچاق سوخت به کشورهای همسایه شد. بعنوان بخشی از کاهش قاچاق سوخت، سامانه جدید سهمیه بندی و توزیع هوشمند در سال 1386 در کشور معرفی و اجرا شد.
در این سیستم جدید، هر راننده یه سمهیه از سوخت داره و میتونه این مقدار رو بصورت یارانه ای دریافت کنه. هر راننده یه کارت هوشمند مرتبط با پلاک خودور داره که با PIN code محافظت میشه و بعنوان یه مکانیسم احرازهویت در جایگاههای سوخت استفاده میشه.
هر پمپ در جایگاه مجهز به دستگاه POS هستش که سهمیه باقی مونده رو نشون میده. در نهایت کارکنان جایگاهها، پرداخت رو بصورت نقدی یا از طریق کارت های بانکی دریافت میکنن. اگه سهمیه موجود در کارتها تموم بشه، همچنان میشه سوخت زد اما قیمت هر لیتر رو سه برابر حساب میکنن.
این سیاست با گذشت زمان نتیجه داد و منجر به کاهش قابل توجه قاچاق و مصرف سوخت شد. در ادامه دولت هر ساله قیمت سوخت یارانه ای و بدون یارانه رو افزایش میداد تا اینکه در 15 نوامبر 2019 / 24 آبان 1398 ، افزایش 50 درصدی قیمتها منجر به اعتراضات سراسری و ورود نیروهای امنیتی شد.
حمله سایبری به سیستم سوخت در دومین سالگرد این اعتراضات انجام شد که پتانسیل دوباره اعتراضات رو داشت اما این اتفاق نیافتاد. دلایل و نحوه رسیدگی دولت ایران به این حادثه ، فراتر از موضوع این گزارش هستش.
معماری سیستم هوشمند سوخت :
برخلاف ادعای مسئولین مبنی بر معماری منحصر به فرد سیستم هوشمند سوخت و افتخار به پیاده سازی این سیستم با استفاده از محصولات و راهکارهای بومی، بسیاری از قطعات نرم افزاری و سخت افزاری ، بویژه اجزای کلیدی مدیریت هوشمند کارت، تراکنشها، مدیریت سیستمهای POS و چارچوب زیربنایی که پمپ بنزینها رو به سیستمهای مدیریت مرکزی متصل میکنه، بر اساس محصولات تجاری (که اکنون منسوخ شدن) هستش.
هسته سیستم و سخت افزار مبتنی بر محصولات شرکت فرانسوی Ingenico، هستش. ایده نگار متولی طراحی و اجرای اصلی قطعات سیستم، اعم از قطعات سخت افزاری و نرم افزاری، یه سیستم مدیریتی متناسب با نیازهای سیستم هوشمند سوخت، روی محصولات و پلتفرم های Ingenico توسعه داده.
علاوه بر این، سیستم هوشمند سوخت یه معماری پیچیده و چند لایه با اجزا و اتصالات زیاده ، که هر کدومشون میتونن در معرض حمله قرار بگیرن. معماری و پیاده سازی این سیستم پیچیده هستش اما میشه بصورت نمودار زیر که از گزارش مدبران گرفته شده، بطور خلاصه نمایش داد :
POS و توزیع کننده سوخت :
پمپ و توزیع کننده سوخت در هر جایگاه از دو بخش کنترل کننده اصلی، تشکیل شدن. یه برد میکروکنترلری که عملیات سوخت رسانی رو مدیریت میکنه مثلا ، فعال شدن پمپ و میزان سوخت زده شده رو اندازه گیری میکنه. قسمت دوم شامل یه رابط کارت خوان هوشمند POS ، یه پین پد و یه کنترلر هستش.
برد میکروکنترلر که عملیات سوخت رسانی رو مدیریت میکنه، از طریق اتصال سریال به سرور مدیریت ایستگاه (IPC) متصل هستش. قسمت POS ، فریمور اختصاصی Ingenico رو اجرا میکنه و بر اساس استانداردهای امنیتی رایج برای سیستمهای پرداخت کار میکنه.
پایانههای POS و بردهای کنترلکننده توزیع سوخت، از طریق اتصالات اترنت و سریال به یه رایانه خاص در هر پمپ بنزین، که به عنوان سرور IPC شناخته میشه ، متصل میشن.
سرورهای IPC :
سرور IPC ، پمپ های بنزین رو راه اندازی و مونیتور میکنه ، داده های تله متری ایستگاه رو کنترل و همچنین در صورت لزوم برای مدیریت و بروز رسانی فریمور و داده ها در پایانه های POS استفاده میشن. این سیستم همچنین وظیفه خوندن و نوشتن آخرین دادههای مشتریان، مانند سهمیهبندی سوخت، به کارتهای هوشمند رو هم به عهده داره.
هر سرور IPC بعنوان یه عامل راه دور برای سیستم مدیریت مرکزی عمل میکنه و روی یه نسخه اختصاصی لینوکس براساس توزیع فدورا 12 کار میکنه. احتمالا بروزرسانی های امنیتی بالادستی رو دریافت نمیکنه. (شکل زیر از Boot Log سرور گرفته شده)
Pooler Serverها :
سرورهای IPC و داده هاشون در گروههای منطقه ای بزرگتر، از طریق سرورهای Pooler بصورت ریموت جمع آوری و مدیریت میشن. براساس گزارش شرکت مدبران ، هشت نقطه تجمیع یا سرور Pooler در کل کشور وجود داره. این سرورهای Pooler از طریق پایانه های VSAT به دیتاسنتر متصل میشن.
اتصال بین سرورهای Pooler و IPC و پمپ های بنزین که در این گزارش ذکر شده، براساس اتصالات E1 ، APN یا اینترانت هستش. محققا همچنین جایگاه های زیادی رو مشاهده کردن که از پایانه های VSAT یا مودم های LTE برای اتصال استفاده میکنن. سرورهای IPC از VPN برای دسترسی ایمن استفاده میکنن که یه پیاده سازی از Cisco VPN هستش. شکل زیر از Boot Log سرور گرفته شده.
ارتباط داده ای بین دیتاسنتر و سرورهای IPC ، ظاهرا از طریق شبکه MPLS صورت میگیره و از طریق اینترنت قابل مشاهده نیست، بنابراین همه چیز بعنوان بخشی از یه شبکه بزرگ اینترانت در کل کشور پیاده سازی شده.
اما در واقعیت ، جایگاههای سوخت از روش های دیگه ای هم برای ارتباط استفاده میکنن. خیلی از جایگاه های راه دور از پایانه های VSAT استفاده میکنن و شبکه VSAT که توسط بانک ملت مدیریت میشه رو ، پشتیبانی میکنن. در طول سالها خیلی از جایگاهها ، به شبکه محلی ارائه شده توسط DCI (Data Communication Company of Iran) متصل شدن. همچنین یسری از جایگاههای از مودم های LTE با سیم کارت هایهمراه اول استفاده میکنن.
همونطور که میشه حدس زد، مودم های LTE و پایانه های VSAT ایزوله بودن این شبکه رو شکستن. البته اینکه،اینا از یه APN ایزوله یا یسری سیم کارت مخصوص این شبکه استفاده میکنن، برای محققا مشخص نیست.
دیتاسنترها:
سرورهای مدیریتی در دو دیتاسنتر تهران و اصفهان هستن و داده هارو از سرورهای Pooler ، سرورهای IPC ، پایانه های POS و VSAT و سایر پایانه های اتصال در کل کشور جمع آوری میکنن. رابط مونیتورینگ مرکزی سیستم ، توسط ایده نگار توسعه داده شده ، که ترکیبی از برنامه های وبه که در PHP و جاوا و shell script توسعه یافته.
هر کسی با دسترسی بالا در این سیستم ها میتونه پایانه های IPC یا حتی POS رو در کل کشور از راه دور دستکاری کنه. این دقیقا اتفاقی هستش که تو این رخداد افتاده. البته این فرایند پیچیده تر از حملات OS command injection روی یه برنامه ی وب PHP هستش.
بروزرسانی نرم افزاری برای پایانه های POS و سرورهای IPC بصورت بسته های RPM ارائه میشه. همچنین فریمور POS براساس طراحی ، با الگوریتم رمزنگاری امضاء شده. بنابراین مهاجم اگه به زیرساخت هم دسترسی داشته باشه، نمیتونه فریمور آلوده رو ارائه کنه و همه POSها رو بصورت مخرب پیکربندی مجدد کنه. برای اینکار مهاجم باید گواهی دیجیتال و کلیدهای رمزنگاری رو داشته باشه. البته این ویژگی امنیتی منحصرا مرتبط به سیستم هوشمند سوخت نیست و در بین تولیدکنندگانی که راه حل های پرداخت ارائه میدن، رایجه.
سیستم مدیریت مرکزی در دیتاسنتر، باید با چندین سیستم خارجی ارتباط برقرار کنه. مثلا ثبت نام وسایل نقلیه، اطلاعات دارندگان کارت های هوشمند، گزارشات مرتبط با کارت های دزدیده شده یا مفقودی ، باید توسط یه نهاد شخص ثالث انجام بشه. شرکت ملی نفت ایران بعنوان یه نهاد بالادستی این سیستم، طبیعتا برخی از این اطلاعات رو از طریق API در اختیار سیستم هوشمند سوخت و اپراتورهای اون میزاره.
پورتال پشتیبانی فنی :
علاوه بر سیستم های عملیاتی و مدیریتی ، یه پورتال پشتیبان فنی هم کنار این زیرساخت و در این دیتاسنترها وجود داره. این پورتال با هدف دریافت سوالات پشتیبانی از اپراتورهای پمپ بنزین در رابطه با مسائل و نگهداری سرورهای IPC در جایگاهها هستش.