دقیقا یک ماه پیش بود که ما نتایج تحقیقاتمان را درباره اولین بدافزار (روتکیت) سفتافزار HP iLO منتشر کردیم. در کنار گزارش تفصیلی که از بدافزار، ماژولها و قابلیتهای فنی آن منتشر شد، روش سادهای نیز برای تشخیص بدافزار با استفاده از قیافه ظاهری رابط کاربری iLO بیان شده بود.
اما از آن جایی که هیچ ابزاری برای تشخیص یا بررسی وجود بدافزار در iLO وجود نداشت، متعهد شدیم که ابزار پویش iLO را به صورت عمومی منتشر کنیم تا همگان بتوانند سرورهای خود را بررسی کنند.
امروز این ابزار به صورت متنباز و با عنوان Padvish iLO Scanner در اختیار علاقه مندان قرار گرفت تا با استفاده از آن بتوانند سفتافزار iLO را دامپ گرفته و صحت آن را چک کنند. این ابزار بر مبنای روش لیست سفید عمل میکند، لذا نه تنها قادر است iLOBleed را تشخیص دهد، بلکه امکان تشخیص هر نوع آلودگی یا دستکاری در سفتافزار را نیز دارا میباشد. به علاوه به عنوان اولین ابزار در نوع خود میتواند با در دسترس قرار دادن دامپ خام، در گام نخست تحلیل بدافزارهای سفتافزاری نیز به کار رود.
دقت کنید که ابزار در حال حاضر تنها برای استفاده در سیستم عامل لینوکس تهیه شده است. ما امیدواریم انتشار ابزار به صورت متنباز، سایر محققان و علاقه مندان را ترغیب کند که از آن استفاده کرده و بر پایه آن نسخهها و ابزارهای تکمیلتری تولید کنند.
اگر از ابزار استفاده کردید، خوشحال میشویم نظرات و تجربیات شما را بشنویم. ایمیل apt@amnpardaz.com به همین منظور در نظر گرفته شده است.
نکته دیگر اینکه، از زمان انتشار گزارش تاکنون، متوجه شدیم که سوالات و برخی توصیههای اشتباه درباره iLOBleed و نحوه محافظت در برابر آن وجود داشته است. لذا بر آن شدیم که به صورت پرسش و پاسخ، هر آنچه که لازم است مدیران شبکه درباره iLOBleed بدانند را در یک جا جمعآوری کنیم.
ILOBleed چیست؟
ILOBleed یا همان «Implant.ARM.iLOBleed.a» نام اولین بدافزاری (روتکیت یا نهان افزار) است که در سفت افزارهای iLO متعلق به شرکت HP کشف شده است. این بدافزار میتواند به طور کامل از دیدرس هر نوع ابزار امنیتی مخفی شده، حتی وقتی سیستم خاموش است نیز به کار خود ادامه دهد، بعد از پاک کردن و حذف و نصب دوباره سیستم عامل نیز باقی بماند، و دسترسیهای بیسابقهای در پایینترین سطح به سختافزار سرور – ورای آنچه که یک سیستم عامل به آن دسترسی دارد – داشته باشد.
HP iLO چیست؟
iLO یک چیپ مدیریتی است که در سرورهای شرکت HPE موجود بوده و مدیریت محلی و از راه دور سرور را فراهم میکند. سفتافزار این چیپ به مدیران سرور اجازه میدهد که از راه دور سرور را روشن کرده، سختافزار را تنظیم نموده، سیستم عامل نصب کرده و امور دیگری را انجام دهند.
به محض اتصال کابل برق، iLO بالا آمده و شروع به کار میکند. حتی وقتی که سرور خاموش است، iLO هیچ گاه خاموش نمیشود و از طریق پروتکلهایی مانند HTTPS ,SSH ,SNMP و غیره بر روی شبکه در دسترس است.
چیپ iLO از یک CPU کم مصرف (کاملا مجزا از CPU اصلی سرور) و میتواند CPU اصلی، سختافزار و حتی سیستم عامل را کنترل کرده و با آنها ارتباط برقرار کند.
چگونه iLOBleed میتواند بعد از فرمت کردن و نصب دوباره سیستم عامل، باز هم پا برجا باقی بماند؟
ماژول iLO شامل یک سیستم عامل مجزا است که بر روی CPU، حافظه فلش، کارت شبکه و سختافزار اختصاصی خودش اجرا میشود. این روتکیت خود سفتافزار iLO را آلوده میکند، به همین علت حتی بعد از اینکه دیسک سخت سرور فرمت شد و یک سیستم عامل جدید بر روی آن نصب گردید، بدافزار حذف نشده و بقا و تداوم خود را حفظ میکند.
سطح دسترسی iLOBleed چگونه است؟ چقدر خطرناک است و چه صدماتی میتواند وارد کند؟
Implant.ARM.iLOBleed.a بدافزاری است که دسترسی کامل به تمام سختافزارهای سرور داشته و میتواند هر کاری را که بخواهد بدون هیچگونه مزاحمت یا تشخیصی از سوی محصولات امنیتی، و یا سیستم عامل نصب شده بر روی سرور انجام دهد. نسخه کنونی این بدافزار قادر است تا کلیه اطلاعات دیسکها را حذف کند، یا کلا سختافزار سرور را بلااستفاده کند، لیکن امکان انجام هر نوع عمل دیگری نیز برای آن وجود دارد.
آیا این یک تهدید جدید است؟
بله.
این بدافزار اولین روتکیت کشف شده در سفت افزارهای HP iLO میباشد.
پیش از این احتمال ایجاد چنین بدافزارهایی از لحاظ تئوری توسط محققان برآورد شده بود، اما هیچکس یک بدافزار واقعی از این نوع را کشف نکرده بود. حتی باید گفت تا پیش از این در هیچ نوع BMC دیگری غیر از iLO نیز بدافزاری کشف نشده بود و در واقع این اولین بدافزار BMC محسوب میشود (BMC یا Baseboard Management Controller اصطلاح عمومیتری است که به هر نوع چیپ مشابه HP iLO با کارکردهای مشابه مانند کنترل سرور از راه دور اطلاق میشود).
آیا باید نگران باشم؟
بله.
این نوع از حملات بسیار مخفی و فوقالعاده مقاوم هستند. چرا که از طریق ابزارهای مرسوم شناسایی نمیشوند و میتوانند برای سالیان سال مخفی بمانند. ضمن اینکه قدرت اثر و تخریب بالایی نیز دارند.
Implant.ARM.iLOBleed.a در سفت افزار iLO 4 پیدا شده است اما حملههای مشابهی نیز در جدیدترین سفتافزارهای HP مشاهده شده است که در صورت عدم فعال کردن تنظیمات غیرپیشفرض میتوانند رخ دهند.
من آخرین وصلههای امنیتی را نصب کردهام، آیا امنیت من تامین است؟
خیر.
برخی از سیستمهایی که ما آلودگی را در آنها پیدا کردیم آخرین وصلهها را به طور کامل نصب کرده بودند.
اگر از سرورهای سری HP G9 و یا قدیمیتر استفاده میکنید، حتی اگر سفتافزار را نیز کاملا بهروز کرده باشید، باز هم در معرض خطر قرار دارید. مهاجم میتواند به راحتی نسخه سفتافزار را به نسخه آسیبپذیر پایین بیاورد، آن را آلوده کند و برای پنهان ماندن از چشم شما به ظاهر آن را آپگرید کند. در این سرورها هیچ راهی برای جلوگیری از دانگرید وجود ندارد.
نکته دیگر اینکه، شما بدون استفاده از ابزار پویشگری که بتواند سفتافزار را بررسی کند، اصلا نمیتوانید متوجه شوید که آیا در گذشته به این بدافزار آلوده شده بودهاید یا خیر و اگر آلوده شده باشید راه سادهای برای پاکسازی یا تشخیص ندارید (لذا در این شرایط نصب وصله بیهوده خواهد بود).
اگر از سری G10 استفاده میکنید، تا کنون بدافزاری با قابلیت ماندگاری روی این سری از سرورها پیدا نشده است، اما این سرورها نیز مصون نیستند. در سری G10 امکان جلوگیری از دانگرید وجود دارد، اما باید یک تنظیم غیرپیشفرض را فعال کرده باشید. به علاوه در این سری، مهاجم همچنان میتواند از بوت شدن سرور به طور کامل جلوگیری کرده و کل سختافزار گرانقیمت سرور را به طور کامل (و غیرقابل تعمیر، مگر به روشهای سختافزاری) از کار بیندازد.
بنابراین در این سری نیز توصیه میشود سفتافزار سرور خود را با یک ابزار پویشگر بررسی کنید.
از آن جایی که هیچ ابزار پویشگری برای سفتافزار HP iLO تا کنون وجود نداشته است، به همراه این متن ابزار توسعه داده شده توسط کارشناسان امنپرداز به صورت متنباز و عمومی منتشر شده است (به لینک انتهای متن مراجعه کنید).
شنیدهام که این بدافزار تنها اطلاعات دیسک را پاک میکند. من از تمام اطلاعاتم پشتیبان دارم، آیا امنیت من تامین است؟
خیر.
داشتن پشتیبان فکر بسیار خوب و لازمی است. اما لازم است بدانید این بدافزار صرفا برای حذف اطلاعات نوشته نشده است، بلکه برای تداوم و بقای طولانی مدت بر روی سرور و عملیات مخفیانه درازمدت نوشته شده است. حذف و تخریب دادهها، تنها یکی از عملکردهای مخرب و بدافزاری قابل انجام توسط این بدافزار است.
توجه داشته باشید که مهاجمان میتوانند سفتافزار سرور را به طور کلی تخریب کرده و کل سختافزار سرور را بلااستفاده کنند، به نحوی که سرور نه بوت شده و نه هیچ علائم حیاتی داشته باشد. در این شرایط امکان تعمیر سرور نیز، بدون دخالت سختافزاری وجود نخواهد داشت.
چگونه سیستم آلوده میشود؟
سوال خوبی است که نیاز به اندکی توضیح دارد.
iLO از طریق دو کانال ارتباطی محلی و شبکهای در دسترس است.
ارتباط شبکهای از طریق پورت موجود روی آداپتور شبکه iLO صورت میگیرد و بر روی پروتکلهای مختلفی چون HTTP, HTTPS, SSH, SNMP و غیره سرویسدهی انجام میشود. جداسازی شبکه، بهروزرسانی iLO و استفاده از رمزهای عبور قوی میتواند امنیت را در مقابل تهدیدهایی که از طریق پورت شبکه سرور را تهدید میکنند، تقویت کند.
کانال ارتباط محلی، به طور مستقیم در دسترس سیستم عامل میزبان (Host) قرار دارد که بر روی سرور نصب شده است. کانال ارتباطی محلی، برخلاف کانال ارتباطی شبکهای، نیازی به هیچ نوع احراز هویت اضافه ندارد، و صرفا داشتن دسترسیهای روت/ادمین بر روی سیستم عامل میزبان سرور، برای ارسال مستقیم فرمان به iLO کافی است.
هر دو روش محلی و شبکهای میتواند برای آلودهسازی بدافزار iLO سرور به کار رود. این موضوع به این معنی است که صرف آلودگی سیستم عامل سرور، میتواند راهی برای آلوده شدن iLO و باقیماندن آلودگی برای مدت طولانی باشد. حتی وقتی پورت شبکه کلا قطع است.
چگونه آلوده بودن یا نبودن سرور را تشخیص دهم؟
شرکت امنپرداز یک پویشگر مختص HP iLO به نام Padvish iLO Scanner را به صورت متنباز منتشر کرده است که میتواند بر روی سیستم عامل میزبان سرور اجرا شده و وجود یا عدم وجود آلودگی را نشان دهد.
این ابزار به طور مستقیم حافظه فلش iLO را میخواند و دامپ (روگرفت حافظه) سفتافزار را ذخیره میکند. همچنین میتواند سفتافزارهای دامپ شده را با نمونههای اصلی منتشر شده از سوی شرکت HP مقایسه کند و وجود هر نوع آلودگی و یا تغییر در سفتافزار را تشخیص دهد. این تشخیص محدود به تشخیص iLOBleed نیست و شامل هر تغییر یا آلودگی میشود.
شما میتوانید سورس ابزار پادویش و نحوه استفاده از آن را در آدرس زیر بیابید:
https://github.com/padvish/iLOScanner
پویشگر iLO پادویش، سرور من را آلوده تشخیص داده است، اکنون چه باید بکنم؟
اگر پویشگر پیام “UNKNOWN FIRMWARE” را نمایش داد، احتمال دارد سرور شما واقعا آلوده شده باشد و یا احتمال دارد علت پیام این باشد که لیست سفید درون ابزار جامع و کامل نبوده است.
در هر دو مورد، توصیه میشود که برای دریافت مشاوره و راهنمایی با ایمیل apt@amnpardaz.com تماس بگیرید.
اگر به این نتیجه برسیم که سرور شما واقعا آلوده است، به شما کمک میکنیم تا آن را پاکسازی کنید. اما مسائل دیگری هم وجود دارد که باید به دنبال پاسخ آنها باشید: اینکه این آلودگی به چه هدفی و از چه طریقی و در چه زمانی وارد سرور شما شده است.
چگونه میتوانم از آلودگی به iLOBleed پیشگیری کنم؟
- اول از هرچیز، لطفا در اولین قدم، زمانی را اختصاص دهید تا بفهمید آیا سرور شما آلوده هست یا خیر.
- در سرورهای G10، توصیه میکنیم سیاست “Permanently Disallow Downgrades” را فعال نمایید. این گزینه در تنظیمات iLO قرار دارد و میتوانید جهت اطلاعات بیشتر به راهنمای آن مراجعه نمایید.
- متاسفانه در سرورهای G9 و یا قدیمیتر، راهی برای امنسازی آنچنانی قابل پیادهسازی نیست. مهاجم همیشه میتواند نسخه سفتافزار شما را دانگرید کرده و آن را آلوده کند. در این صورت باید از روشهای کاهش خطر آلودگی استفاده کنید و به صورت دورهای سرور را برای شناسایی هر نوع آلودگی جستجو و پویش نمایید.
در هر دو مورد میتوانید نکات زیر را جهت امنسازی و کاهش ریسک آلودگی انجام دهید:
- هرگز رابط شبکه iLO را به شبکه عملیاتی متصل نکرده و از یک شبکه کاملا جداگانه برای این امر استفاده کنید. ترجیحا از یک سوپیچ، کابلکشی و ایستگاه کاری که به صورت فیزیکی کاملا ایزوله و مجزا باشد برای iLO استفاده کنید.
- همواره نسخه سفتافزار iLO خود را به آخرین نسخه ارائه شده از سوی شرکت تولیدکننده ارتقا دهید.
- از راهبردهای دفاع در عمق برای کاهش خطر و تشخیص نفوذ استفاده کنید تا قبل از آلوده شدن iLO نفوذگر را متوقف کنید.
- به صورت دورهای از ابزار iLO Scanner پادویش برای شناسایی آلودگی و بدافزار در سفتافزار iLO سرورهای خود استفاده کنید.
- سفتافزار iLO را تنظیم کنید تا لاگهای خود را به یک سیستم دیگر جهت بررسی ارسال کند.