آسیب‌پذیری امنیتی در Hadoop

آسیب‌پذیری امنیتی در Hadoop

تاریخ ایجاد

آپاچی هادوپ در حوزه داده‌های بزرگ به‌عنوان یک ابزار کاربردی ظاهر شده است؛ یک چارچوب نرم‌افزاری که از قدرت محاسبات توزیع‌شده به‌منظور پردازش و تجزیه و تحلیل مجموعه‌ داده‌های بسیار بزرگ بهره می‌برد. با این‌حال، به‌تازگی یک آسیب‌پذیری با شناسه CVE-2023-26031 در آن کشف شده است که تهدید قابل‌توجهی برای امنیت هادوپ ایجاد می‌کند و به کاربران محلی این امکان را می‌دهد تا به دسترسی root رسیده و به اطلاعات حساس دسترسی پیدا کنند.این نقص امنیتی اجازه بارگیری کتابخانه‌های مشترک (.so files) از یک مسیر خاص را می‌دهد که در این حالت شامل دایرکتوری "/lib/native/" می‌باشد. مهاجم با ساخت یک کتابخانه libcrypto.so مخرب و قرار دادن آن در یک مسیر قابل دسترس برای نصب Hadoop می‌تواند از این آسیب‌پذیری بهره‌برداری کند. هنگامی که فایل باینری container-executor فراخوانی می‌شود، کتابخانه libcrypto.so مخرب بارگیری شده و به مهاجم امکان دسترسی root را خواهد داد.
آسیب‌پذیری مذکور امکان بهره‌‌برداری از راه دور را نیز دارد. اگر YARN کاربر را از راه دور احرازهویت کرده و تسک‌های ارسال شده توسط وی به‌جای اجرا در کانتینرها، بر روی میزبان فیزیکی اجرا شوند، آسیب‌پذیری می‌تواند برای بهره‌مندی از امتیازهای root از راه دور به‌کار گرفته شود. Apache Hadoop YARN یک مکانیزم مدیریت منابع است که در چارچوب Hadoop استفاده می‌شود. YARN اجازه می‌دهد تا برنامه‌های مختلف با استفاده از منابع سیستم (مانند پردازنده و حافظه) به‌صورت همزمان و موازی اجرا شوند. در واقع، YARN مسئول دسته‌بندی و اختصاص منابع به برنامه‌های مختلف جهت اجرای همزمان آن‌ها در یک سرور یا یک مجموعه از سرورها می‌باشد. برای تشخیص اینکه آیا Hadoop آسیب‌پذیر است یا خیر، می‌توان از دستور readelf جهت بررسی مقدار RUNPATH یا RPATH در فایل باینری container-executor استفاده کرد. اگر هر یک از این مقادیر شامل مسیر نسبی " ./lib/native/ " باشد، سیستم در معرض خطر قرار دارد.


محصولات تحت تأثیر
این آسیب‌پذیری در کتابخانه رزولوشن container-executor در نسخه‌های 3.3.1 تا 3.3.4 Apache Hadoop سیستم‌های لینوکس وجود دارد.

توصیه‌های امنیتی
1. به‌روزرسانی نرم‌افزار Hadoop به آخرین نسخه (3.3.5) بهترین راهکار جهت رفع این آسیب‌پذیری می‌باشد.
2. اگر از کانتینرهای امن YARN استفاده نمی‌کنید، می‌توانید container-executor را غیرفعال کنید. این می‌تواند با حذف مجوز اجرایی، تغییر مالکیت یا حتی حذف خود باینری انجام شود.
3. اگر به‌دلیل شرایط خاصی در حال حاضر نمی‌توانید به نسخه 3.3.5 ارتقاء دهید، می‌توانید باینری container-executor را با نسخه‌ای از 3.3.5 جایگزین کنید. 
4. جهت اطمینان از امنیت سیستم، از دستور readelf برای بررسی مقدار RUNPATH یا RPATH در باینری container-executor استفاده کنید. اگر این مقادیر شامل مسیر نسبی " ./lib/native/ " باشد، باید اقدامات لازم جهت رفع این مسئله را انجام دهید.
5. اطمینان حاصل کنید که دسترسی به مسیرها و فایل‌های مرتبط با Hadoop به افراد غیرمجاز محدود شده است. این اقدام می‌تواند به تقویت امنیت کلی سیستم کمک کند.

منابع خبر:


[1] https://hadoop.apache.org/cve_list.html
[2] https://github.com/advisories/GHSA-94jh-j374-9r3j