Apache Struts

Man Yue Mo که یک محقق امنیتی در Semmle است، یک آسیب‌پذیری امنیتی حیاتی اجرای کد از راه دور را در فریم‌وورک برنامه تحت وبِ محبوب Apache Struts افشا کرده است[۱] که می‌تواند مهاجمینِ از راه دور را قادر به اجرای کدهای موذی بر روی سرورهای آلوده‌شده کند.

Apache Struts یک فریم‌وورک منبع باز برای توسعه برنامه‌های کاربردی وب به زبان برنامه‌نویسی جاوا است و به‌طور گسترده‌ای توسط شرکت‌ها در سطح جهانی استفاده می‌شود، ازجمله ۶۵ درصد از شرکت‌های Fortune 100 مانند Vodafone ،Lockheed Martin ،Virgin Atlantic و IRS.

این آسیب‌پذیری (CVE-2018-11776) در هسته Apache Struts قرار دارد و به دلیل تصدیق ناکافی از ورودی‌های غیرقابل‌اعتماد ارائه‌شده توسط کاربر در هسته فریم‌وورک Struts تحت تنظیمات خاص به وجود آمده است.

بهره‌بردار Apache Struts تازه کشف‌شده می‌تواند فقط با مراجعه به یک URL خاص به‌کاررفته در سرور وب آلوده‌شده فعال شود. این بهره‌بردار به مهاجمان اجازه می‌دهد تا یک کد موذی را اجرا کرده و درنهایت کنترل کامل سرور مورد هدف که در حال اجرای یک برنامه آسیب‌پذیر است را به عهده گیرند.

آسیب‌پذیری Struts2: آیا شما تحت تأثیر قرار گرفته‌اید؟

تمام برنامه‌های کاربردی که از نسخه‌های پشتیبانی شده‌یApache Struts  یعنی نسخه ۲٫۳ تا ۲٫۳٫۳۴ و نسخه ۲٫۵ تا ۲٫۵٫۱۶ استفاده می‌کنند و حتی برخی از نسخه‌های پشتیبانی نشده Apache Struts، به‌طور بالقوه به این نقص آسیب‌پذیر هستند، حتی اگر هیچ‌یک از افزونه‌های اضافی فعال نشده باشند.

Yue Mo دراین‌باره می‌گوید: “این آسیب‌پذیری بر روی endpointهای به‌طورمعمول استفاده‌شده در Struts که احتمالاً در معرض آن قرار دارند، تأثیر می‌گذارد و باعث باز شدن یک شاخص حمله برای مهاجمان موذی می‌شود.”

پیاده‌سازی Apache Struts شما به نقص گزارش‌شده RCE در صورت برآورده شدن شرایط زیر آسیب‌پذیر است:

  • پرچم alwaysSelectFullNamespace در تنظیمات Struts بر روی True تنظیم شده باشد.
  • فایل تنظیمات struts حاوی یک برچسب action یا url است که مشخصه namespace اختیاری را مشخص نمی‌کند و یا یک namespace از نوع wildcard را مشخص می‌کند.

به گفته این محقق، حتی اگر یک برنامه در حال حاضر آسیب‌پذیر نباشد، “یک تغییر غیرمستقیم در یک فایل تنظیمات Struts ممکن است این برنامه را در آینده آسیب‌پذیر کند.”

در اینجا آمده است که چرا باید بهره‌بردار Apache Struts را جدی بگیرید؟

کمتر از یک سال پیش، آژانس اعتباری Equifax اطلاعات شخصی ۱۴۷ میلیون نفر از مشتری‌های خود را[۲] به دلیل ناتوانی در وصله کردن یک نقص Apache Struts مشابه (CVE-2017-5638) که در اوایل سال ۲۰۱۸ منتشر شده بود[۳]؛ افشا کرد.

نقص Equifax برای این شرکت بیش از ۶۰۰ میلیون دلار هزینه در برداشت.

Pavel Avgustinov، مؤسس و سرپرست QL Engineering در Semmle دراین‌باره گفت: “Struts برای وب‌سایت‌های قابل‌دسترس و در اختیار مشتریان مورداستفاده قرار می‌گیرد، سیستم‌های آسیب‌پذیر به‌راحتی شناسایی‌شده و این نقص به‌آسانی مورد بهره‌برداری قرار می‌گیرد.”

“یک مهاجم می‌تواند راه خود را در عرض چند دقیقه پیدا کند و اطلاعات را exfiltrate کند و یا حملات بعدی را توسط سیستم در معرض خطر انجام دهد.”

وصله مناسب برای نقص حیاتی Apache Struts منتشر شده است.

Apache Struts با انتشار نسخه‌های ۲٫۳٫۳۵ و ۲٫۵٫۱۷ این آسیب‌پذیری را وصله کرده است. به سازمان‌ها و توسعه‌دهندگانی که از Apache Struts استفاده می‌کنند، قویاً توصیه می‌شود که در اسرع وقت اجزای Struts خود را به‌روزرسانی کنند.

ما دیده‌ایم که چگونه افشای اطلاعات قبلی به خاطر نقص‌های بحرانی مشابه در Apache Struts موجب شده است که بهره‌بردارهای PoC در یک روز منتشر شود و بهره‌برداری از این آسیب‌پذیری‌ها در سطح اینترنت اتفاق بیفتد و زیرساخت‌های مهم و همچنین داده‌های مشتریان را در معرض خطر قرار دهد.

بنابراین، به کاربران و مدیران به‌شدت توصیه می‌شود اجزای Apache Struts خود را به آخرین نسخه ارتقاء دهند، حتی اگر معتقد باشند که پیکربندی آن‌ها در حال حاضر آسیب‌پذیر نیست.

این اولین بار نیست که یک تیم تحقیقاتی ازSemmle  یک نقص حیاتی RCE را در Apache Struts گزارش کرده است. کمتر از یک سال پیش، این تیم یک آسیب‌پذیری مشابه اجرای کد از راه دور (CVE-2017-9805) را در Apache Struts منتشر کرد[۴].

به‌روزرسانی: PoC مربوط به بهره‌بردار RCE قرار داشته بر روی Apache Struts منتشر شد.

یک محقق امنیتی اخیراً یک بهره‌بردار PoC را برای این آسیب‌پذیری اجرای کد از راه دورِ اخیراً کشف‌شده (CVE-2018-11776) در فریم‌وورک برنامه تحت وب Apache Struts منتشر کرد[۵].

منابع

[۱] https://lgtm.com/blog/apache_struts_CVE-2018-11776

[۲] https://thehackernews.com/2017/09/equifax-apache-struts.html

[۳] https://thehackernews.com/2017/03/apache-struts-framework.html

[۴] https://apa.aut.ac.ir/?p=2955

[۵] https://github.com/jas502n/St2-057/blob/master/README.md

[۶] https://thehackernews.com/2018/08/apache-struts-vulnerability.html