تیم Apache Tomcat اخیراً چندین آسیب‌پذیری امنیتی در Apache Tomcat را وصله کردند که یکی از آن‌ها می‌توانست به یک مهاجم غیرقانونی اجازه دهد تا یک کد مخرب را بر روی سرورهای آلوده‌شده و از راه دور اجرا کند.

Apache Tomcat، که توسط بنیاد نرم‌افزار آپاچی(۱) توسعه یافته است، یک وب سرورِ منبع باز و یک سیستم servlet است که از چندین ویژگی Java EE مانند Java Servlet، JavaServer Pages (JSP)، Expression Language و WebSocket استفاده می‌کند و یک محیط وب سرور HTTP از نوع pure Java برای Java concept فراهم می‌کند تا آن را اجرا کند.

برخلاف آسیب‌پذیری‌های Apache Struts2 که اخیراً برای نفوذ به سیستم‌های اعتباری آژانس حسابرسی آمریکا Equifax مورد بهره‌برداری قرار گرفتند[۱و۲]، آسیب‌پذیری‌های Apache Tomcat به‌احتمال‌زیاد قابل بهره‌برداری نخواهند بود.

این آسیب‌پذیری اجرای کد از راه دور که CVE-2017-12617 نام‌گذاری شده است و در Apache Tomcat کشف شده ناشی از اعتبار ناکافی برای ورودی ارائه‌شده توسط کاربر به‌وسیله نرم‌افزار تحت تأثیر است.

تنها سیستم‌هایی که بر روی آن‌ها گزینه HTTP PUTs فعال است (از طریق تنظیم پارامتر مقداردهی اولیه فقط خواندنی servlet به false) تحت تأثیر این آسیب‌پذیری قرار دارند.

Peter Stöckli از شرکت امنیتی Alphabot دراین‌باره می‌گوید[۳]: “نسخه‌های Tomcat قبل از ۹٫۰٫۱ (بتا)، ۸٫۵٫۲۳، ۸٫۰٫۴۷ و ۷٫۰٫۸۲ حاوی آسیب‌پذیری بالقوه و خطرناک اجرای کد از راه دور بر روی همه سیستم‌عامل‌هایی هستند که پارامترreadonly  در آن‌ها بر روی false قرار داده شده یا WebDAV servlet با پارامتر readonly قرار داده شده بر روی false در آن‌ها فعال شده است.”

بهره‌برداری از این آسیب‌پذیری، نیازمند این است که یک مهاجم یک فایل مخرب طراحی‌شده برایJava Server Page یا JSP را در یک سرور مورد هدف که دارای یک نسخه Apache Tomcat که تحت تأثیر این آسیب‌پذیری قرار دارد، بارگذاری کند و کد موجود در فایل JSP در هنگام درخواست این فایل توسط سرور اجرا خواهد شد.

برای بارگذاری فایل JSP مخرب طراحی‌شده، مهاجم فقط نیاز به ارسال یک درخواست HTTP PUT به سرور آسیب‌پذیر خواهد داشت؛ همان‌طور که در کد اثبات ادعای (PoC) این آسیب‌پذیری توسط Peter منتشر شده است[۴].

این بهره‌برداری درنهایت به مهاجم اجازه می‌دهد تا یک کد مخرب را بر روی سرور هدف اجرا کند.

Peter دراین‌باره می‌گوید: “ازآنجاکه این ویژگی به‌طورمعمول مورداستفاده قرار نمی‌گیرد، بیشتر سیستم‌هایی که در دسترس عموم قرار دارند گزینه readonly را بر روی false قرار نداده و بنابراین به این نقص امنیتی آسیب‌پذیر نیستند.”

این آسیب‌پذیری که در دسته‌بندی مهم قرار داده شده است بر روی تمامی نسخه‌های Apache Tomcat  شامل نسخه‌های ۹٫۰٫۰٫۱ تا ۹٫۰٫۰، ۸٫۵٫۰ تا ۸٫۵٫۲۲، ۸٫۰٫۰٫۱ تا ۸٫۰٫۴۶ و ۷٫۰٫۰ تا ۷۰٫۰٫۸۱ تأثیرگذار بوده و در نسخه‌های منتشر شده ۹٫۰٫۱ (بتا)، ۸٫۵٫۲۳، ۸٫۰٫۴۷ و ۷٫۰٫۸۲ برطرف شده است.

یک مشکل امنیتی مشابه که CVE-2017-12615 نام‌گذاری شده است[۵] نیز در Tomcat نسخه ۷ و بر روی سیستم‌عامل ویندوز کشف شده است که توسعه سازندگان Apache Tomcat در تاریخ ۱۹ سپتامبر ۲۰۱۷ و با انتشار نسخه ۷٫۰٫۸۱ برطرف شده است.

به مدیران سیستم‌ها اکیداً توصیه می‌شود که هر چه سریع‌تر این به‌روزرسانی‌ها را بر روی سیستم‌های خود اعمال کرده و به آن‌ها توصیه می‌شود که تنها برای کاربران مورد اعتماد دسترسی به شبکه را فعال کنند.

محققان هیچ‌گونه حادثه‌ای را ناشی از بهره‌برداری از این آسیب‌پذیری‌های موجود در Apache Tomcat در سطح اینترنت تشخیص ندادند.

 

منابع

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

[۲] https://thehackernews.com/2017/10/equifax-credit-security-breach.html

[۳]https://www.alphabot.com/security/blog/2017/java/Apache-Tomcat-RCE-CVE-2017-12617.html

[۴] https://bz.apache.org/bugzilla/show_bug.cgi?id=61542

[۵] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12615

[۶] https://thehackernews.com/2017/10/apache-tomcat-rce.html


(۱) Apache Software Foundation (ASF)