آسیبپذیری قدیمی روی سیستمهای مبتنی بر یونیکس
خلاصه: محققان آسیبپذیری را روی سیستمعاملهای مبتنی بر یونیکس کشف نمودهاند که بیش از ده سال از وجود آن میگذرد. این آسیبپذیری که Stack Clashنام دارد، روی سیستمعاملهای لینوکس، Open BSD، Net BSD، Free BSD و Solaris وجود دارد به هکرها این امکان را میدهد که سطح دسترسی خود را به روت افزایش داده و کنترل کامل سیستم قربانی را به دست بگیرند.
محققین امنیتی آسیبپذیری را کشف نمودهاند که بیش از یک دهه است که روی سیستمعاملهای مبتنی بر یونیکس شامل لینوکس، Open BSD، Net BSD، Free BSD و Solaris وجود دارد. این آسیبپذیری که Stack Clash نام گرفته است. این آسیبپذیری مربوط به نحوه تخصیص حافظه در پشته برای کاربران است.
هر برنامه از قسمتی از حافظه استفاده مینماید که به آن پشته میگویند که برای ذخیره اطلاعات موقت استفاده میشود. این میزان حافظه با توجه به نیاز برنامه میتواند کم شده یا افزایش یابد. گروه تحقیقاتی Qualys که این آسیبپذیری را کشف نمودهاند متوجه شدهاند که یک برنامه خرابکار میتواند حافظهای بیش از آنچه به آن اختصاص داده شده را استفاده کنند و بنابراین موجب سرریز حافظه شوند که موجب تصادم با پشته دیگر برنامهها و بازنویسی حافظه مربوط به آنها است. علاوه بر این اکسپلویت Stack Clash میتواند صفحه محافظ پشته را یک مدیریت حفاظت از حافظه است که در سال ۲۰۱۰ معرفی شده را دور بزند.
آسیبپذیری Stack Clash نیاز به دسترسی محلی به سیستمهای قربانی برای اجرای کد اکسپلویت دارد؛ ولی کارشناسان معتقدند اجرای اکسپلویت میتواند از راه دور نیز در برخی برنامهها انجام شود. به عنوان مثال یک مشتری خرابکار با حساب کاربری با دسترسیهای پاین در یک شرکت هاستینگ، میتواند با اجرای کد اکسپلویت، کنترل دیگر وبسایتهای روی آن سرور را نیز به دست بگیرد و از راه دور دسترسی روت کسب کرده و به اجرای کد خرابکارانه بپردازد. ترکیب این آسیبپذیری با آسیبپذیریهای دیگر همچون آسیبپذیری Sudo میتواند موجب آسیبهای بیشتری شود.
محققان بیان نمودهاند که میتوانند هفت کد اکسپلویت و هفت اثبات آسیبپذیری برای این آسیبپذیری روی سیستمعاملهای مختلف ارائه کنند؛ اما هنوز چیزی را ارائه عمومی نکردهاند تا کاربران و مدیران شبکه زمان داشته باشند که این آسیبپذیری را وصله کنند.
برای بسیاری از توزیعها وصله رفع آسیبپذیری منتشر شده و به کاربران توصیه میشود که هرچه زودتر این وصلهها را نصب کنند. اگر برای توزیع مورد استفاده شما وصله منتشر نشده میتوانید به صورت دستی پشته را برای کاربران محلی محدود کنید. برای این منظور میتوانید مقادیر RLIMIT STACK و RLIMIT_AS را برای کاربران محلی و سرویسهای از راه دور مقداری کم در نظر بگیرید.
همچنین توصیه میشود کدهای فضای کاربری دوباره با استفاده از امکان –fstack-ckeck دوباره کامپایل شوند. این امر موجب میشود که نشانگر پشته نتواند به قسمتهایی از حافظه که متعلق به خود نیست دسترسی پیدا کند و از آسیبپذیری Stack Clash سو استفاده نشود.