چند روز پیش ، گروه هکری گنجشک درنده، دومین حمله ی خودش رو به زیرساخت های سوخت کشور انجام داد و منجر به اختلال در ارائه خدمات در جایگاههای سوخت شدن.
این گروه در سال 1400/2021 هم ، حمله ای به زیرساخت های سوخت ایران انجام داده بودن. اون زمان ، آقای حمید کشفی بهمراه J. A. Guerrero-Saade ، رو این حادثه کار کردن و یه گزارشی در خصوص این حادثه تهیه کردن. اما بدلیل اینکه سیستم های آسیب پذیر هنوز در معرض دید بودن، گزارش رو منتشر نکردن. اما بعد از دو سال که این حادثه دوباره رخ داده، این گزارش رو بصورت عمومی منتشر کردن.
در این سری از پستها، این گزارش رو در قالب 4 قسمت منتشر کردیم:
- قسمت اول: معماری سیستم هوشمند سوخت
- قسمت دوم : بردارهای حمله ی بالقوه
- قسمت سوم : بررسی حادثه
- قسمت چهارم: OSINT و ردپای اولیه
این گزارش توسط حمید کشفی ، Juan Andrés ، Silas Cutler و یسری محقق دیگه که ترجیح دادن ناشناس بمونن ، تهیه شده. برای دانلود این گزارش به زبان انگلیسی میتونید از این لینک، یا کانال تلگرامی ما استفاده کنید.
در 26 اکتبر 2021 / 4 آبان 1400 ، حدود ساعت 11 به وقت ایران ، تقریبا همه ی 4300 جایگاه سوخت در کشور، از کار افتادن. در عرض حدودا دو ساعت، هر دستگاه POS در هر جایگاه سوخت آفلاین میشه و از کار میافته. برخی دستگاههای POS ، که تعدادشون دقیقا مشخص نیست، همچنان روشن هستن اما قابلیت ارائه سرویس رو ندارن و به جای نمایش پیغام همیشیگی ، پیام “حمله سایبری 64411” روی صفحه ی نمایش POS نمایش داده میشه. عدد 64411 مرتبط با دفتر مقام معظم رهبری هستش و در حملات قبلی هم مورد استفاده قرار گرفته بود.
قبل از حمله، پیامهای هشداری از طریق تلگرام به یسری افراد منتخب شاغل در اورژانس ، آتش نشانی و آمبولانس ارسال کردن. در این پیام اعلام شده که بدلیل قطعی پیش رو ،باکهاشون رو پر کنن. این هشدار برای جلوگیری یا کاهش تلفات جانی احتمالی انجام شده.
بعد از دو ساعت از گزارش اولین قطعی POS، کل شبکه دچار اختلال شد و اکثر پایانه های جایگاه های سوخت از کار افتاد. از کار انداختن یه POS به سادگی پاک کردن یه ایستگاه کاری نیست. یه ایمیج مخرب یا یه دستور FLASH باید برای همه ی اونا ارسال بشه تا همه ی اونا رو از کار بندازه. با توجه به معماری استاندارد امنیتی و مدل مدیریتی پایانه های POS ، فلش کردن اونا یا هر بروزرسانی پیکربندی، باید از طریق کانال قانونی مدیریت از راه دور انجام بشه و امضای دیجیتالی داشته باشه. بروزرسانی پیکربندی برای برخی از اونا ،برای نمایش یه پیام خاص روی صفحههای LCD POS صورت گرفته که به این معنیه که، زیرساخت مدیریت پایانههای POS در دیتاسنتر، بطور کامل هک شده.
تنها سناریوی دیگه ای که امکان بروزرسانی پیکربندی یا ایمیج فریمور مخرب در دستگاههای POS میده، اینه که مهاجم تونسته کلیدهای امضای فروشنده رو بدست بیاره. احتمال این سناریو پایینه، چون اگه اینجوری باشه، برای شرکتی مثله Ingenico که فقط مشتریان ایرانی نداره، فاجعه بار هستش.
محققا نتونستن یه ایمیج فریمور مخرب POS در بین شواهد فارنزیکی آپلود شده بدست بیارن. بدون داشتن چنین ایمیجی یا دامپ حافظه فلش، محققا فقط میتونن فرض کنن که مهاجمان از دستورات مخرب و آسیب پذیری های احتمالی در فریمور POS برای از کار انداختن ترمینال استفاده کرده و احتمالاً ایمیج قابل بوت در حافظه فلش POS رو خراب کردن.
مهاجمان حداقل در اطلاعیه های عمومی خودشون اعلام کردن که دو آسیب پذیری در محصولات Ingenico کشف کردن و با اکسپلویت یکی از این دو آسیب پذیری ، حمله رو انجام دادن. با اینکه بازیگر تهدید به آسیب پذیری دوم و حیاتی تر در محصولات Ingenico اشاره کرده، اما جزییات فنی در این خصوص منتشر نکرده.
گنجشگ درنده ادعا کرده بود که جزییات این آسیب پذیری ها رو به Ingenico گزارش کردن. محققا با گروه گنجشک درنده تماس گرفتن و اونا یه کپی از ایمیلی که به Ingenico ارسال کردن و حاوی جزییاتی از آسیب پذیری دوم بود ، رو در اختیار محققین قرار دادن. محققا با Ingenico هم تماس گرفتن تا بررسی کنن که آیا در خصوص این آسیب پذیری اقدامی کردن یا نه، که پاسخی دریافت نکردن.
آسیب پذیریاز نوع افزایش امتیاز در کرنل UNICAPT32 (یه SoC که بطور گسترده در محصولات Ingenico استفاده میشه) بود که امکان arbitrary read/write access رو به مهاجم میده و مهاجم میتونه محدودیتهای بخش هایی از حافظه ی محافظت شده ی UNICAPT32 SoC رو دور بزنه. برای اکسپلویت این آسیب پذیری مهاجم باید به یه POS بعنوان یه برنامه دسترسی داشته باشه. بازیگر تهدید بدلیل اینکه میتونست پیکربندی یا برنامه دلخواه رو روی شبکه از طریق ابزارهای مدیریتی داشته باشه، چنین نیازمندی رو داشته.
محققا بطور مستقل این آسیب پذیری گزارش شده رو ارزیابی نکردن.
در گزارش دو تا بروزرسانی در خصوص تماس با Ingenico هم اومده:
- یکیش برای 13 ژانویه 2022 / 23 دی 1400 هستش که محققا اعلام کردن با Ingenico تماس گرفتن تا در خصوص افشای مسئولانه ی آسیب پذیری که در 13 ژانویه 2021 / 24 دی 1399 گزارش شده بود، تاییدیه ای داشته باشن، اما پاسخی دریافت نکردن.
- بروزرسانی دوم برای 30 ژانویه 2022 /10 بهمن 1400 هستش که محققا اعلام کردن که در ابتدا Ingenico پاسخی نداده اما دوباره پیگیری کردن و تا اینکه در 20 ژانویه شرکت پاسخ داده که جزییات رو تا 4 فوریه منتشر نکنید.
در زیر اسکرین شات ایمیلی که گروه گنجشک درنده به شرکت Ingenico ارسال کرده رو مشاهده میکنید :
بازیگر تهدید در ادامه حمله، بعد از اینکه پایانه های POS رو از کار انداخت و دیگه نیاز نبود که سرورهای IPC ، بروزرسانی رو به پایانه ها ارائه بدن، این سرورهای IPC رو هم از کار انداخت. این کار باعث میشه که بازیابی از راه دور میسر نباشه و نیاز به حضور فیزیکی اپراتور برای بازیابی باشه، از طرفی آسیب اونقدر نبود که منجر به خرابی طولانی مدت یا دائمی زیرساخت بشه.
پاک کردن سرورهای IPC ، که تعداشون بطور دقیق مشخص نیست، نشون دهنده اینه که بازیگر تهدید به شبکه دسترسی کامل داشته. محققا در ادامه آنالیزشون متوجه شدن که سیستم مرکزی یه رابط مدیریت وب برای مدیریت و مونیتورینگ داره. این رابط وب ، امکان تعامل و مونیتورینگ سرورهای Pooler و IPC و ترمینال های POS و حتی پایانه ها و مودم های VSAT در هر جایگاه سوخت رو داره.
همونطور که قبلا توضیح داده شد، برخی از این نقاط اتصال با اینترنت هم در تعامل بودن و یه شبکه ایزوله نبودن. محققا با بررسی سورس کد این رابط متوجه وجود چندین آسیب پذیری طراحی در این سامانه شدن. مثلا اسکریپتهای PHP که برخی از ویژگیهای مونیتورینگ رو ارائه میکنن، دستورات سیستمعامل رو روی مولفه های مختلف برای بدست آوردن اطلاعات یا تعامل با دستگاههای خارجی که بصورت محلی متصل شدن ، مانند پایانههای VSAT ، از طریق USB یا رابط سریال یا ارسال دستورات AT به اونها ارائه میدن.
محققا اعلام کردن که تقریباً هر جزء نرمافزاری و کتابخانه ی شناسایی شده در طراحی سیستم، که میشه اطلاعات نسخه رو از اونا مشاهده یا بدست آورد، قدیمی و گاهی آسیبپذیر بودن. در حالی که مخاطبان متوسط اخبار ممکنه تصور کنن که چنین سیستمها و زیرساختهای حیاتی در این مقیاس به دقت نظارت میشن و بطور ایمن نگهداری میشن تا آخرین استانداردهای امنیتی رو فراهم کنن، واقعیت اینه که بطور گسترده از نرمافزارهای منسوخ در این سیستم استفاده شده بود.