توسعهدهندگان توزیع آلپاین Linux آنها اطلاعاتی در مورد تلاشها برای هک کردن پلتفرم توسعه مشارکتی gitlab.alpinelinux.org فاش کردند، جایی که کار بر روی مدیر بسته APK، ابزارهای ساخت، اجزای زیرساخت و اسکریپتهای ساخت بسته (aports) انجام شد. این حمله با سوءاستفاده از یک آسیبپذیری در پلتفرم GitLab که ناشی از سرریز عدد صحیح در موتور عبارت منظم Ruby بود، انجام شد. هیچ مدرک یا اثری از هک موفقیتآمیز یافت نشد، اما از آنجایی که نمیتوان بهطور کامل سوءاستفاده موفقیتآمیز از این آسیبپذیری را رد کرد، کانتینر GitLab بهطور بالقوه در معرض خطر تلقی شد و محتویات آن بهطور کامل از ابتدا بازسازی شد و یک روش تنظیم مجدد رمز عبور برای کاربران آغاز شد.
مدیران زیرساخت آلپاین Linux هیچ فایل شخص ثالث، فرآیندهای در حال اجرای مشکوک، فراخوانیهای غیرمعمول API، تغییرات در تنظیمات یا فایلهای سیستمی یا افزایش ناگهانی بار که معمولاً برای استخراج انبوه دادهها استفاده میشود، شناسایی نشد. تجزیه و تحلیل یکپارچگی مخزن aports، بستهها و فایلهای انتشار، و همچنین تأیید آنها در برابر کپیهای سرورهای ساخت خارجی و سیستمهای توسعهدهنده، هیچ تغییر پنهانی را نشان نداد.
کمبود اطلاعات در مورد اتصالات خروجی شبکه، حذف برخی از گزارشها در حین چرخش (به عنوان مثال، گزارش cron) و کمبود جزئیات کافی در گزارشهای وب سرور (استفاده موفقیتآمیز از یک اکسپلویت که منجر به خرابی نمیشود در گزارش منعکس نمیشود) رد کامل یک حمله موفق را غیرممکن میسازد.
اگر حمله موفقیتآمیز بود، مهاجمان میتوانستند به پایگاه داده حاوی دادههای مربوط به همه کاربران GitLab (هشهای رمز عبور، ایمیل، آدرس های IP و غیره)، متغیرهای محیطی و توکنهای سیستمهای یکپارچهسازی مداوم، کدهای احراز هویت دو مرحلهای، هشهای توکنهای دسترسی شخصی، محتویات مخازن خصوصی و بحثهای محرمانه در مورد مسائل. کلیدهایی برای تولید امضاهای دیجیتال برای نسخهها و بستهها در سرور مورد حمله. سرور ذخیره نشده بودند.
اولین تلاشها برای سوءاستفاده از این آسیبپذیری در تاریخ ۲۰ و ۲۱ اکتبر ثبت شد. مهاجم یک حساب کاربری GitLab ثبت کرد و تلاش کرد تنظیمات اصلاحشده را به سیستم یکپارچهسازی مداوم ارسال کند. گزارشها هشت مورد خرابی فرآیند GitLab را ثبت کردند که چهار مورد از آنها مربوط به سوءاستفاده بود. مرحله اول سوءاستفاده موفقیتآمیز بود، اما مرحله دوم با شکست مواجه شد.
در زمان حمله، کانتینر نسخه آسیبپذیر GitLab 19.3.4 را اجرا میکرد که در ۲۲ اکتبر به GitLab 19.3.6 بهروزرسانی شد. با این حال، مدیران Alpine توجه نکردند که این اصلاحیه فقط در بستههای نصب رسمی GitLab 19.3.6 گنجانده شده است، نه در خود کد GitLab، زیرا این آسیبپذیری در زنجیره ابزار Ruby وجود دارد. کانتینر همچنان از زنجیره ابزار قدیمیتر Ruby استفاده میکرد و این آسیبپذیری همچنان وصله نشده باقی مانده بود.
آسیبپذیری باقیمانده تنها در ۲۶ اکتبر کشف شد. تجزیه و تحلیل گزارشها نشان داد که مهاجمان حملات خود را در ۲۵ و ۲۶ اکتبر از سر گرفتند. در ۲۷ اکتبر، دسترسی شخص ثالث به GitLab محدود شد. در ۲۸ اکتبر، محتویات بازسازی شدند، همه رمزهای عبور بازنشانی شدند (از کاربران خواسته شد تا از طریق روش بازیابی رمز عبور فراموششده، رمز عبور جدیدی تنظیم کنند) و کلیدهای دسترسی جایگزین شدند. در ۲۹ اکتبر، بهروزرسانی سرور به بهرهبرداری رسید. کانتینر داکر alpinelinux/gitlab که توسط این پروژه نگهداری میشد، تا ۲۷ اکتبر آسیبپذیر باقی ماند.
منبع: opennet.ru
