کشف یک بات تازه: Win32/Napolar
ESET موفق به کشف بات جدیدی شده و نام Win32/Napolar را برای آن برگزیده است،
موسسه خبری سایبربان:ESET موفق به کشف بات جدیدی شده و نام Win32/Napolar را برای آن برگزیده است، این در حالی است که نویسندهی این بات آن را سولاربات (solarbot) نام نهاده است. این قطعهی بدافزاری از اواسط ماه آگوست به خاطر شیوهی جالب تزریق کد و ضد-اشکالزدایی خود توجه محققان را به خود جلب کرده و به موضوع داغ انجمنهای گفتوگو با موضوع مهندسی معکوس تبدیل شده است.
این بدافزار را میتوان برای مقاصد گوناگونی به کار گرفت. سه هدف اصلی برای استفاده از سولاربات عبارتند از:
انجام حملات انسداد سرویس
عمل در مقابل یک کارگزار پروکسی SOCKS
سرقت اطلاعات از سامانههای آسیبدیده
این بدافزار قادر است کنترل مرورگرهای متعددی را در دست بگیرد و به این ترتیب اطلاعاتی را که در فرمهای وب به ثبت رسیده به سرقت ببرد.
فعالیتهایWin32/Napolar در اواخر ماه جولای به اوج خود رسید و از اواسط ماه آگوست رویهی آلودهسازی آن آغاز شد. تاکنون هزاران مورد آلودگی گزارش شده که بسیاری از آنها مربوط به آمریکایی جنوبی بوده است. کشورهایی که بیشترین میزان آلودگی مربوط به آنها بوده عبارتند از: پرو، اکوادور و کلمبیا.
نویسندهی Win32/Napolar از یک وبگاه برای انتشار آن کمک گرفته است. این وبگاه بسیار حرفهای به نظر میرسد و شامل اطلاعات موشکافانهای راجع به این بات میباشد، اطلاعاتی نظیر قیمت (۲۰۰ دلار آمریکا برای هر نسخه) و حتی گزارش کاملی از تحولاتی که تاکنون در کد این بات رخ داده است.
اگرچه تا به حال انتشار Win32/Napolar بعینه رؤیت نشده، میتوان این احتمال را داد که بات مورد نظر از طریق فیسبوک منتشر میشود. از آنجایی که این بدافزار میتواند اطلاعات محرمانهی فیسبوک را برباید، اپراتور آن این امکان را خواهد داشت که که از اطلاعات محرمانهی سرقتی برای ارسال پیام از حسابهای کاربریِ نقضشده استفادهی مجدد نماید و به این طریق در راستای آلودهسازی دوستان قربانی هم تلاش کند. در زیر فهرست اسامی پروندههایی را مشاهده میکنید که توسط این خانوادهی بدافزاری استفاده شدهاند:
Photo_032.JPG_facebook.com.exe
Photo_012-WWW.FACEBOOK.COM.exe
Photo_014-WWW.FACEBOOK.COM.exe
نکتهی جالب توجه استفاده از ترفند قدیمی «دو-پسوند» برای یک پرونده است (*.JPG.EXE, *.TXT.EXE) تا به این صورت فهم پسوند واقعی هر پرونده پیچیده شود؛ پیدایش این حربه به ویندوز ۹۵ برمیگردد اما آنطور که به نظر میرسد هنوز هم طرفداران خاص خود را دارد و عمر آن به سر نرسیده است.
نکتهای که در این میان مایهی خنده است این است که به نظر میرسد توسعهدهندهی Win32/Napolar نمیدانسته که COM. پسوند معتبری برای پروندههای اجرایی میباشد، هرچند تا حدودی قدیمی شده است؛ و اینگونه نام پروندهها بدون اضافهکردن EXE. اجرا خواهند شد.
در این مطلب قصد داریم به برخی از ترفندهای ضد-اشکالزدایی مورد استفاده توسط Win32/Napolar اشاره کنیم. این ترفندها از نخستین نسخههای این خانوادهی بدافزاری دیده شدهاند. گونههای جدیدتر از ابزار بستهبندی2 شخص ثالث برای فرار از شناساییشدن توسط ضدبدافزارها و نیز کمکردن سرعت فعالیتهای تشخیصی مبتنی بر مهندسی معکوس استفاده مینمایند.
در ادامه به پروتکل فرماندهی و کنترل Win32/Napolar خواهیم پرداخت. در نهایت به بیان اطلاعاتی میپردازیم که از وبگاه تبلیغاتی مربوطه، پیش از درآمدن به حالت برونخط، به دست آمده است.
شیوههای ضد-اشکالزدایی
با بررسی پروندههای باینری Win32/Napolar نخستین چیزی که به ذهن میرسد این است که هیچ مدخل معتبری در سرآیندPE وجود ندارد، همانطور که در تصویر زیر نشان داده شده است:
دستورالعملهای اول، که زمانی که پروندهی باینری آغاز به کار نموده اجرا شدهاند، در توابع 5Thread Local Storage یا به اختصار TLS ذخیره میشوند. دو پروندهی TLS ثبتشده وجود دارد. نخستین پرونده کار خاصی انجام نمیدهد. دومین مورد بخش عمدهی کد را به کمک الگوریتم رمزنگاری RC4 و کلید 0xDEADBEEF رمزگشایی میکند. کد رمزگشاییشده پیش از آنکه خروجی دومین تابع را برگرداند، به عنوان سومین تابع TLS ثبت میشود. روند کار را در کد زیر مشاهده میکنید:
سومین تابع TLS باقی کد را پیش از فراخوانی بدنهی اصلیِ بدافزار رمزگشایی میکند. این بدافزار از حقههای دیگری برای هرچه سختتر کردن تجزیه و تحلیل خود کمک میگیرد:
همهی موارد واردشدهدر زمان اجرا به جای استفاده از اسامی پروندهها، رشتههای درهمسازیشدهی آنها را به کار گرفتهاند.
برقراری ارتباط با سامانهی عامل به جای استفاده از APIهای استاندارد عمدتاً از طریق فراخوانی مستقیم توابع مستندنشدهی متعلق به کتابخانهی NTDLL انجام میشود.
همچنین تمام کد مستقل از موقعیت مکانی است.
Win32/Napolar برای پیدا کردن آفست کدی که رمزگشایی میشود، در حافظهی خود به دنبال کد دستور یا آپکد 0×55 میگردد. آپکد مربوطه «push ebp» را نشان میدهد؛ push ebp نخستین دستورالعمل تابع کنونی در زبان اسمبلی میباشد. چنانچه دستورالعمل با 0xCC جایگزین شود، آپکد نرمافزار با بریکپوینت مواجه شده و رمزگشایی کد انجام نخواهد شد. این راهی هوشمند برای اِعمال تغییر در رفتار این بدافزار در صورت تجزیه و تحلیل از طریق دیباگر و یا در صورت بروز شرایطی است که یک بریکپوینت نرمافزاری در نخستین دستورالعمل TLS قرار بگیرد.
Win32/Napolar ترفندهای ضد-اشکالزدایی دیگری هم دارد. این بات برای دشوار نمودن تجزیه و تحلیل پویا یک فرآیند فرعی از خود را ایجاد میکند و این نمونهی جدید را اشکالزدایی میکند. اسکرینشات زیر فراخوانی CreateProcess را نشان میدهد:
محافظت نرمافزاری مقابل خود-اشکالزدایی تا به حال دیده شده اما در مورد Win32/Napolar این حقه در بدنهی اصلی بدافزار دیده شده نه در ابزار بستهبندی آن.
هنگامی که یک فرآیند اشکالزداییشده آغاز میشود، Win32/Napolar وارد حلقهای میشود که رخدادهای اشکالزدایی مربوط به تابع WaitForDebugEvent را مدیریت میکند. شبهکد مورد استفاده برای رخدادهای اشکالزداییِ مدیریت حلقه در تصویر زیر نشان داده است:
اولین رخدادی که توسط این کد مدیریت میشود CREATE_PROCESS_DEBUG_EVENT میباشد. این رخداد هنگامی شکل میگیرد که فرآیند اشکالزداییشده آغاز شود. در این مورد، فرآیند اصلی سرآیند MZ و PE از فرآیند اشکالزداییشده را پردازش میکند تا آفست و اندازهی کد مستقل از موقعیت مکانی را به دست بیاورد.
سپس مکان دیگری از حافظه را در فرآیند اشکالزداییشده قرار میدهد تا کد را در آن تزریق نماید. این امر منجر به تهیهی دو نسخهی رونوشت از یک کد در یک فرآیند واحد میشود.
رخداد دیگر EXCEPTION_DEBUG_EVENT نام دارد. در این رخداد دوم فرآیند اصلی، اولین تابع TLS موجود در پروندهی باینری را با استفاده از یک دستور push – ret بازنویسی میکند و به این ترتیب اجرای آن را به صدر فهرست توابع قابل اجرا موکول میکند. این امر بار دیگر منجر به رمزگشایی بدنهی اصلی بدافزار شده و به آن اجازه میدهد در میان فرآیند فرزند اجرا شود. این کد فرآیند فرزند است که اقدام به تزریق خود در همهی فرآیندهایی مینماید که فرآیندهای فرعی را اجرا میکنند و از توابع متنوع به عنوان تلههایی استفاده میکند تا حضور خود را در سامانه پنهان کرده و اطلاعات مورد نظرش را به چنگ بیاورد.
در آخر فرآیند اصلی رخداد EXIT_PROCESS_DEBUG_EVENT را دریافت میکند؛ این فرآیند با فراخوانی DebugActiveProcessStop اشکالزدایی را متوقف کرده و به فرآیند ویژهی خود با استفاده از NtTerminateProcess پایان میدهد.
یکی از مهمترین خصیصههای Win32/Napolar توانایی آن در سرقت اطلاعات در مواقعی است که یک کاربر فرم وبی را در یک مرورگر وب پر میکند. محافظ مرورگر Trusteer احتمالاً بدافزار را از رسیدن به چنین اطلاعاتی باز میدارد. شاید به همین خاطر است که بدافزار مورد نظر بهطور خاص به دنبال محصولات Trusteer میگردد.
این موضوع از طریق تمامی فرآیندهای در حال اجرا تکرار میشود و بهطور ویژه هر فرآیندی را که دارای رشتهی «Trusteer» در خود باشد، خاتمه میدهد.
رفتار شبکهای
هنگامی که Win32/Napolar با کارگزار فرماندهی و کنترل وارد تعامل میشود، از پروتکل HTTP استفاده میکند. پرسوجوی اول توسط این بات به کارگزار فرماندهی و کنترلی ارسال میشود که شامل اطلاعات زیر است:
نسخهی بات
نام کاربری متعلق به کاربری که سامانهی وی آلوده شده است.
نام رایانه
شناسهی منحصربهفرد بات
نسخهی سامانهی عامل
نوع سامانه، که میتواند ۳۲ یا ۶۴ بیتی باشد. درواقع این بات از هر دو معماری پشتیبانی میکند.
این کارگزار سپس با دستورهایی پاسخ میدهد که بات برای اجرا به آنها نیاز دارد. این دستورات با استفاده از RC4 رمزگشایی شدهاند. شناسهی منحصربهفرد بات به عنوان یک کلید رمزگشایی به کار میرود. این بات از مجموعهای از دستورات پشتیبانی میکند؛ از سرقت اطلاعات گرفته تا انسداد سرویس، بارگیری، اجرا و بهروزرسانی. هر دستور دارای شناسهی ویژهی خود است که در یک بایت ذخیره شده و اطلاعاتی که به دنبال این بایت میآیند دربرگیرندهی پارامترهای دستوری هستند. تصویر زیر نشاندهندهی ترافیک ارتباطی میان میزبان آلوده به Win32/Napolar و کارگزار فرماندهی و کنترل آن است.
شکل زیر رمزگشایی این دستور را با استفاده از کلید صحیح نشان میدهد. نخستین بایت محتوای دریافتی 0xC است که به بات دستور میدهد به خواب برود. این پارامتر رشتهی «600» است که بیانگر تعداد ثانیههایی میباشد که نیاز است بات بخوابد.
ما دست کم ۷ کارگزار فرماندهی و کنترل را مشاهده کردهایم که توسط Win32/Napolar استفاده شدهاند. بیشتر کارگزارهای مذکور قبل از آنکه اپراتور مربوطه آنها را به یک شبکهی جدید منتقل کند، تنها برای مدت چند روز در حالت برخط بودهاند. ممکن است این بدان معنا باشد که بات مورد نظر بهطور فعالانهای مورد استفاده قرار میگیرد. در زیر فهرست نام دامنههایی را مشاهده میکنید که اخیراً کارگزارهای فرماندهی و کنترل آنها رؤیت شده است:
dabakhost.be
terra-araucania.cl
xyz25.com
yandafia.com
elzbthfntr.com
alfadente.com.br
چندین مرتبه در کد این بدافزار به TOR ارجاع شده است. مهمتر اینکه برخی از خطوط پیکربندی و ارجاعات به پروندهی پیکربندیِ TOR در این کد به چشم میخورد. در طول دورهای که محققان مشغول تجزیه و تحلیل این بدافزار بودهاند هرگز ندیدهاند که بدافزار از این اطلاعات استفادهای کند. ممکن است این موضوع به خاطر برخی از قابلیتهای نهفتهای باشد که هنوز در نمونهی بررسیشده فعال نشدهاند.
وبگاه تبلیغاتی
به نظر میرسد نویسندهی Win32/Napolar در مورد فروش بدافزار جدید خود بسیار مصمم است. او یک وبگاه تبلیغاتی را، که بسیار حرفهای جلوه میکند، برای ارائهی بدافزار خود در نظر گرفته است؛ او با افتخار از ویژگی استقلال از موقعیت مکانی در بات خود یاد میکند و آن را یک بات حرفهای مبتنی بر شلکد معرفی مینماید.
وبگاه سولار
این وبگاه همچنین اطلاعاتی را برای مشتریان احتمالی فراهم میکند. بهطور مثال، نسخهی کامل کد مربوط به کارگزار فرماندهی و کنترل در آن یافت میشود، کد مذکور یک اسکریپت php است که با پشتیبانی یک پایگاه دادهی SQL اجرا میشود.
کد کارگزار فرماندهی و کنترل، تجزیه و تحلیلهای صورتگرفته دربارهی پروتکل شبکهی مورد استفاده توسط بدافزار Win32/Napolar را تأیید میکند.
علاوه بر این، وبگاه تبلیغاتیِ پشت ماجرا افزونههای متعددی را ارائه میکند که اپراتورهای Win32/Napolar میتوانند از آنها استفاده کنند. این افزونهها میبایست به کمک زبان برنامهنویسی دلفی نوشته شده باشند. افزونههای مورد بررسی نشان میدهند که چگونه یک نفر میتواند پیامی را روی سامانهی آلودهی کاربر قربانی به نمایش درآورد، متوجه شود کدام نسخه از ضدبدافزار روی سامانهی قربانی نصب شده، و حتی اینکه به چه نحوی میتوان کیف پول بیتکوین را به سرقت ببرد.
وبگاه مورد بحث حتی گزارش کاملی را از تغییرات ایجادشده در کد منبع بات ارائه مینماید، نظیر اطلاعاتی دربارهی قابلیتهای جدید و اصلاحاتی که در مورد خطاها صورت گرفته است. این وبگاه نشان میدهد که نخستین مدخل گزارش تغییرات، مربوط به چهاردهم جولای است؛ این تاریخ با جدول زمانی در نظر گرفتهشده برای بات متناسب است (اولین نمونهی این بات در اوایل آگوست مشاهده شده است). تاریخ ثبت نام دامنهای که میزبانی محتوا را بر عهده دارد، به اول آگوست بازمیگردد؛ این هم یکی دیگر از علائمی است که تأیید میکند شروع انتشار این بات همین اواخر بوده است.
نتیجهگیری
Win32/Napolar بات جدید است که در جولای تولید شده و اولین نشانههای آن از آگوست مشاهده شده است. این بات از شیوهی جالبی برای مقابله با رویکردهای مهندسی معکوس استفاده میکند. نکتهی قابل توجه در مورد Win32/Napolar این است که چگونه سازندهی مربوطه آشکارا در محیط وب به ترویج آن میپردازد. ممکن است تبلیغات انجامشده برای Win32/Napolar همان موردی باشد که در ماه جولای توسط دانچو دانچِو از شرکت امنیتی وبروت کشف شده بود. تاکنون در کنار یک وبگاه ویژه که دسترسی به آن برای عموم آزاد است، پیامهای گوناگونی نیز در انجمنهای گفتوگوی مختلف با هدف اشاعهی این بدافزار منتشر شده است. در حقیقت Win32/Napolar نیز مانند Foxxy، در مسیر هرچه تخصصیتر کردن عملیاتهای مبتنی بر جرایم سایبری خود گام برداشته است؛ در همین راستا در حال حاضر نویسندگانی داریم که بدافزار مورد نظر خود را تهیه نموده و آن را به سایر گروههایی که قصد اجرایش را دارند، میفروشند.
اگرچه این بات دارای قابلیتهای مشابه با سایر خانوادههای بدافزاری نظیر زئوس8 یا اسپایآی9 است، اما از لحاظ محبوبیت از بقیه پیشی گرفته است؛ شاید به این خاطر که نویسندهی Win32/Napolar بهطور فعالانهای در زمینهی تعمیر و نگهداری آن تلاش میکند، همچنین استفاده از این بات بسیار ساده است و ایجاد افزونههای آن کار دشواری نیست.