پوسته محدود چیست و چرا حملات پوسته پرشی اهمیت دارند؟
پوستههای محدود برای کنترل دستوراتی که کاربران میتوانند اجرا کنند استفاده میشوند و اغلب از اقداماتی مانند موارد زیر جلوگیری میکنند cd، راه اندازی پوسته های جدید یا صادرات متغیرهای محیطی. آنها معمولاً در CI/CD عاملها یا محیطهایی برای محدود کردن رفتار کاربر ایجاد میکنند. با این حال، مهاجمان به دنبال راههایی برای انجام یک پوسته پرشی هستند، روشی که برای فرار از محیطهای پوسته محدود و دسترسی به پوستههای نامحدود مانند ... استفاده میشود. bin/bashوقتی داخل شدید it، مهاجم کنترل کامل خط فرمان را در اختیار دارد و تمام محدودیتهای محیط محدود را دور میزند.
نحوهی عملکرد Jumping Shell: از Restricted تا bin/bash
هدف یک پوستهی جهنده، بهرهبرداری از نقاط ضعف در محیطهای محدود و ایجاد یک فرار پوستهای است که منجر به bin/bashتکنیکهای رایج برای حملات پوستهای محدود شده برای فرار عبارتند از:
$ ls /bin/bash $ /bin/bashIf bin/bash قابل دسترسی باشد، این فراخوانی ساده آن را کامل میکند.
روش رایج دیگر:
$ echo "/bin/bash" > run.sh $ sh run.sh مهاجمان همچنین ممکن است از ویرایشگرهایی مانند موارد زیر سوءاستفاده کنند vi or کمتر:
vi :set shell=/bin/bash :shell این روشها نشان میدهند که یک پوستهی در حال پرش چقدر میتواند به راحتی منجر به bin/bash اجرا، و به طور مؤثری محافظتهای محدود پوسته را دور میزند.
خطرات واقعی این حملات در DevOps
به صورت مشترک CI/CD محیطها، پوستههای محدود برای ایزوله کردن ساختها و کاهش ریسک استفاده میشوند. اما وقتی یک مهاجم با یک پوسته در حال جهش موفق میشود و به ... میرسد bin/bash، مدل امنیتی فرو میریزد.
خطرات عبارتند از:
- دسترسی غیرمجاز به اسرار محیط زیست
- افزایش امتیاز از طریق نامحدود bin/bash
- دستکاری در ساخت و ساز pipelineیا مصنوعات
- استقرار ابزارهای پایدار در داخل pipeline
پوستهی محدود شده برای فرار bin/bash در را به روی نفوذ کامل به سیستم باز میکند، که اغلب اولین حرکت در یک فرآیند گستردهتر است. حمله DevSecOps.
نظارت و تشخیص Jumping Shell و Bin/bash Escapes
برای تشخیص رفتار پوسته پرشی و مسدود کردن تلاشهای پوسته محدود شده برای فرار، تیمهای امنیتی باید:
- تمام فعالیتهای پوسته، به ویژه / bin / bash اعدام
- نظارت بر سوءاستفاده از ویرایشگر و استفاده از اسکریپت به عنوان بردارهای تولید پوسته
- دسترسی به فایلهای پیکربندی پوسته مانند موارد زیر را ردیابی کنید .bashrc or .bash_profile
الگوهای رفتاری مانند پرتاب کردن bin/bash از یک محیط محدود باید به عنوان هشدارهای با اولویت بالا در نظر گرفته شوند. تشخیص زودهنگام آن میتواند از حرکت جانبی عمیقتر جلوگیری کند.
جلوگیری از حملات و سوءاستفادههای Shell محدود شده برای فرار
برای کاهش خطرات پوستههای در حال پرش و جلوگیری از حمله مهاجمان bin/bash:
- پوستههای محدود شده را محکم کنید: آنها را بردارید یا مسدود کنید دسترسی
- استفاده از AppArmor یا SELinux برای محدود کردن اجرای دستورات
- اعمال حداقل امتیاز در همه سطوح CI/CD نقشها و دوندهها
- ساختهای کانتینری با ایمیجهای بدون دیستروت که فاقد پوستههایی مانند ... هستند bin/bash
- اعتبارسنجی محیطها قبل و بعد از ساخت برای شناسایی ناهنجاریها
پیشگیری از سناریوهای پوسته محدود فرار نیازمند کنترلهای لایهای است، نه صرفاً اتکا به پوستههای محدود. اگر پوستههای محدود امن نیستند، فرض نکنید که امن هستند. bin/bash حتی به طور بالقوه قابل دستیابی است.
نتیجهگیری: فرارهای پوستهای نقاط ورود هستند
پوستههای محدود شده یک لایه دفاعی هستند، نه یک تضمین. حملات پوسته پرشی، ایزولهسازی ضعیف و اعتبارسنجی ضعیف را هدف قرار میدهند. پس از ورود / bin / bashمهاجمان میتوانند تغییر مسیر دهند، ادامه دهند و زیرساخت DevSecOps را به خطر بیندازند.
تشخیص و جداسازی ضروری هستند. ترکیب ثبت دستورات، محیطهای محدود و پاکسازی مناسب مدیران بسته، میزان آسیبپذیری را کاهش میدهد.
در نهایت، ابزارهایی مانند شیگنی آنها به تقویت یکپارچگی کد، تشخیص رفتار غیرمعمول پوسته و ... کمک میکنند. امنیت خود را تامین کنید pipelineاز تهدیدات داخلی و خارجی، از جمله مواردی که با یک پوسته جهنده ساده شروع میشوند / bin / bash یا تلاش برای فرار از محیطهای محدود پوستهای.






