به گفته محققان، خطوط لوله یکپارچهسازی/توسعه مستمر (CI/CD) ممکن است خطرناکترین سطح حمله احتمالی زنجیره تامین نرمافزار باشد، زیرا مهاجمان سایبری علاقه خود را برای بررسی نقاط ضعف افزایش میدهند.
سطح حمله نیز در حال رشد است: خطوط لوله CI/CD به طور فزاینده ای در تیم های توسعه نرم افزار سازمانی که از آنها برای ساخت، تست و استقرار کد با استفاده از فرآیندهای خودکار استفاده می کنند، یک ابزار ثابت هستند. اما مجوز بیش از حد، عدم تقسیمبندی شبکه، و اسرار ضعیف و مدیریت وصلهها، اجرای آنها را آزار میدهد و به مجرمان این فرصت را میدهد که آنها را به خطر بیاندازند تا آزادانه بین محیطهای داخلی و ابری قرار بگیرند.
در روز چهارشنبه، 10 آگوست، در Black Hat USA، ایین اسمارت و ویکتور گازداگ از مشاوران امنیتی NCC Group در طول "روی صحنه خواهند رفت.RCE-as-a-Service: درس های آموخته شده از 5 سال سازش خط لوله CI/CD در دنیای واقعیبرای بحث در مورد حملات زنجیره تامین موفقیت آمیز آنها در خطوط لوله CI/CD تولید تقریباً برای هر شرکتی که شرکت آزمایش کرده است.
گروه NCC بر دهها توافق موفقیتآمیز از اهداف، از مشاغل کوچک گرفته تا شرکتهای فورچون 500 نظارت داشته است. بعلاوه اشکالات امنیتیمحققان می گویند که سوء استفاده های جدید از عملکرد مورد نظر در خطوط لوله خودکار به آنها این امکان را داده است که خطوط لوله را از یک ابزار توسعه دهنده ساده به اجرای کد از راه دور (RCE) -به عنوان یک سرویس- تبدیل کنند.
گزداگ می گوید: "امیدوارم مردم به خطوط لوله CI/CD خود عشق بیشتری نشان دهند و تمام یا حداقل یک یا دو توصیه از جلسه ما را اعمال کنند." "ما همچنین امیدواریم که این جرقه تحقیقات امنیتی بیشتری در مورد این موضوع باشد."
تارا سیلز، سردبیر دارک ریدینگ برای اخبار، با ویکتور گازداگ، مشاور امنیتی مدیریت گروه NCC برای کسب اطلاعات بیشتر به گفتگو نشست.
مهر تارا: برخی از رایجترین ضعفهای امنیتی در خطوط لوله CI/CD چیست و چگونه میتوان از آنها سوء استفاده کرد؟
ویکتور گازداغ: ما به طور مرتب سه ضعف امنیتی رایج را می بینیم که نیاز به توجه بیشتری دارند:
1) اعتبارنامه هاردکد شده در سیستم کنترل نسخه (VCS) یا مدیریت کنترل منبع (SCM).
اینها شامل اسکریپتهای پوسته، فایلهای لاگین، اعتبارنامههای رمزگذاریشده در فایلهای پیکربندی است که در همان مکان کد ذخیره میشوند (نه جداگانه یا در برنامههای مدیریت مخفی). همچنین اغلب توکنهای دسترسی به محیطهای ابری مختلف (توسعه، تولید) یا خدمات خاصی را در فضای ابری مانند SNS، پایگاه داده، EC2 و غیره پیدا میکنیم.
همچنین ما هنوز اعتباری برای دسترسی به زیرساخت پشتیبانی یا خط لوله CI/CD پیدا می کنیم. هنگامی که یک مهاجم به محیط ابری دسترسی پیدا می کند، می تواند امتیازات خود را برشمرد، به دنبال پیکربندی های نادرست باشد یا سعی کند امتیازات خود را همانطور که قبلاً در فضای ابری است افزایش دهد. با دسترسی به خط لوله CI/CD، آنها می توانند تاریخچه ساخت را ببینند، به مصنوعات و اسرار مورد استفاده (به عنوان مثال، ابزار SAST و گزارش های آن در مورد آسیب پذیری ها یا توکن های دسترسی ابری) دسترسی پیدا کنند و در بدترین حالت، کد دلخواه (backdoor، SolarWinds) را به برنامه ای که کامپایل می شود تزریق کنید یا به محیط تولید دسترسی کامل پیدا کنید.
2) نقش های بیش از حد مجاز.
توسعهدهندگان یا حسابهای خدماتی اغلب نقشی مرتبط با حسابهای خود دارند (یا میتوانند آن را فرض کنند) که مجوزهای بیشتری نسبت به نیاز برای انجام کار مورد نیاز دارد.
آنها می توانند به عملکردهای بیشتری مانند پیکربندی سیستم یا اسرار محدود به محیط های تولید و توسعه دسترسی داشته باشند. آنها ممکن است بتوانند کنترلهای امنیتی مانند تأیید سایر توسعهدهندگان را دور بزنند یا خط لوله را اصلاح کنند و هر ابزار SAST را که به جستجوی آسیبپذیریها کمک میکند حذف کنند.
از آنجایی که خطوط لوله می توانند به محیط های تولید و استقرار آزمایش دسترسی داشته باشند، اگر بین آنها تقسیم بندی وجود نداشته باشد، می توانند به عنوان پل بین محیط ها، حتی بین on-prem و cloud عمل کنند. این به مهاجم این امکان را می دهد که فایروال ها یا هر هشداری را دور بزند و آزادانه بین محیط هایی حرکت کند که در غیر این صورت امکان پذیر نبود.
3) فقدان ممیزی، نظارت و هشدار.
این نادیدهگرفتهترین ناحیه است و 90 درصد مواقع متوجه عدم نظارت و هشدار در مورد هرگونه تغییر پیکربندی یا مدیریت کاربر/نقش میشویم، حتی اگر ممیزی روشن یا فعال شده باشد. تنها چیزی که ممکن است تحت نظر باشد، گردآوری یا ساخت کار موفق یا ناموفق است.
مسائل امنیتی رایج تری نیز وجود دارد، مانند عدم تقسیم بندی شبکه، مدیریت مخفی، و مدیریت وصله و غیره، اما این سه مثال نقطه شروع حملات هستند که برای کاهش میانگین زمان تشخیص نقض لازم است، یا برای محدود کردن مهم هستند. شعاع انفجار حمله
TS: آیا نمونه خاصی از دنیای واقعی یا سناریوهای مشخصی دارید که بتوانید به آنها اشاره کنید؟
VG: برخی از حملات در اخبار مربوط به حملات CI/CD یا خط لوله عبارتند از:
- حمله CCleaner، مارس 2018
- هومبرو، آگوست 2018
- ایسوس ShadowHammer، مارس 2019
- نقض شخص ثالث CircleCI، سپتامبر 2019
- SolarWinds، دسامبر 2020
- اسکریپت آپلودکننده bash Codecov، آوریل 2021
- دسترسی غیرمجاز TravisCI به اسرار، سپتامبر 2021
TS: چرا ضعف در خطوط لوله خودکار مشکل ساز است؟ ریسک شرکت ها را چگونه توصیف می کنید؟
VG: صدها ابزار می تواند در مراحل خط لوله مورد استفاده قرار گیرد و به همین دلیل، دانش فوق العاده ای که کسی باید بداند بسیار زیاد است. علاوه بر این، خطوط لوله دسترسی شبکه به چندین محیط، و اعتبارنامه های متعدد برای ابزارها و محیط های مختلف دارند. دسترسی به خطوط لوله مانند دریافت مجوز سفر رایگان است که به مهاجمان اجازه می دهد به هر ابزار یا محیط دیگری که با خط لوله مرتبط است دسترسی داشته باشند.
TS: در صورتی که یک دشمن با موفقیت خط لوله CI/CD را واژگون کند، شرکت ها چه نتایجی را متحمل خواهند شد؟
VG: پیامدهای حمله میتواند شامل سرقت کد منبع یا دادههای فکری، درب پشتی برنامهای که برای هزاران مشتری (مانند SolarWinds) مستقر است، دسترسی به محیطهای متعدد (و حرکت آزادانه بین) مانند توسعه و تولید، چه در مرحله اولیه و چه در محیط داخلی باشد. ابر یا هر دو
TS: دشمنان برای به خطر انداختن خط لوله چقدر باید پیچیده باشند؟
VG: آنچه ما در Black Hat ارائه میکنیم آسیبپذیریهای روز صفر (حتی اگر من برخی از آسیبپذیریها را در ابزارهای مختلف پیدا کردم) یا هر تکنیک جدیدی نیست. مجرمان می توانند به توسعه دهندگان از طریق فیشینگ (دزدیدن جلسه، دور زدن احراز هویت چند عاملی، سرقت اعتبار) یا خط لوله CI/CD مستقیماً در صورتی که محافظت نشده باشد و در اینترنت قرار دارد، به توسعه دهندگان حمله کنند.
گروه NCC حتی ارزیابیهای امنیتی را در جایی که ما در ابتدا برنامههای کاربردی وب را آزمایش کردیم، انجام داد. آنچه ما دریافتیم این است که خطوط لوله CI/CD به ندرت ثبت می شوند و با هشدار نظارت می شوند، به غیر از کار ساختن/کامپایل نرم افزار، بنابراین مجرمان برای به خطر انداختن خط لوله نیازی به دقت یا پیچیده بودن ندارند.
TS: این نوع حملات چقدر رایج هستند و خطوط لوله CI/CD چقدر سطح حمله را نشان می دهند؟
VG: همانطور که گفته شد چندین نمونه از حملات دنیای واقعی در اخبار وجود دارد. و شما هنوز هم می توانید پیدا کنید، برای مثال، موارد جنکینز با شودان در اینترنت. با SaaS، مجرمان میتوانند رمزهای عبور را برشمارند و به زور به آنها دسترسی پیدا کنند، زیرا احراز هویت چندعاملی بهصورت پیشفرض یا محدودیتهای IP فعال نیستند و با اینترنت مواجه هستند.
با کار از راه دور، ایمن سازی خطوط لوله حتی سخت تر است زیرا توسعه دهندگان می خواهند از هر کجا و در هر زمان دسترسی داشته باشند، و محدودیت های IP لزوماً دیگر امکان پذیر نیست زیرا شرکت ها به سمت شبکه های بدون اعتماد حرکت می کنند یا مکان های شبکه تغییر می کنند.
خطوط لوله معمولاً به چندین محیط دسترسی دارند (که نباید داشته باشند) و به چندین اعتبار برای ابزارها و محیط های مختلف دسترسی دارند. آنها می توانند به عنوان پلی بین on-prem و cloud یا سیستم های تولید و آزمایش عمل کنند. این میتواند یک سطح حمله بسیار گسترده باشد و حملات میتوانند از مکانهای متعددی انجام شوند، حتی آنهایی که ربطی به خود خط لوله ندارند. در Black Hat، ما دو سناریو را ارائه می دهیم که در ابتدا با آزمایش برنامه های وب شروع کردیم.
TS: چرا خطوط لوله CI/CD همچنان یک نقطه کور امنیتی برای شرکت ها باقی می ماند؟
VG: بیشتر به دلیل کمبود وقت، گاهی کمبود افراد و در برخی موارد کمبود دانش. خطوط لوله CI/CD اغلب توسط توسعه دهندگان یا تیم های فناوری اطلاعات با زمان محدود و با تمرکز بر سرعت و تحویل ایجاد می شوند، یا توسعه دهندگان فقط با کار بیش از حد کار می کنند.
خطوط لوله CI/CD میتواند بسیار یا بسیار پیچیده باشد و میتواند شامل صدها ابزار باشد، با محیطها و اسرار متعدد تعامل داشته باشد و توسط افراد متعددی استفاده شود. برخی از افراد حتی یک نمایش جدول تناوبی از ابزارهایی که می توانند در خط لوله استفاده شوند ایجاد کردند.
اگر شرکتی برای ایجاد یک مدل تهدید برای خط لوله ای که استفاده می کند و محیط های پشتیبانی کننده زمان اختصاص دهد، ارتباط بین محیط ها، مرزها و اسرار و جایی که حملات ممکن است رخ دهد را خواهند دید. ایجاد و به روز رسانی مداوم مدل تهدید باید انجام شود و زمان می برد.
TS: بهترین روش ها برای تقویت امنیت خطوط لوله چیست؟
VG: تقسیم بندی شبکه را اعمال کنید، از اصل کمترین امتیاز برای ایجاد نقش استفاده کنید، دامنه یک راز را در مدیریت اسرار محدود کنید، بهروزرسانیهای امنیتی را مکرر اعمال کنید، مصنوعات را تأیید کنید، و تغییرات پیکربندی را نظارت کنید و هشدار دهید.
TS: آیا افکار دیگری وجود دارد که بخواهید به اشتراک بگذارید؟
VG: اگرچه خطوط لوله CI/CD مبتنی بر ابر سادهتر هستند، اما همچنان شاهد مشکلات مشابه یا مشابهی مانند نقشهای بیش از حد مجاز، عدم تقسیمبندی، اسرار بیشازحد دامنه و عدم هشدار بودیم. برای شرکتها مهم است که به خاطر داشته باشند که در فضای ابری نیز مسئولیتهای امنیتی دارند.