1
‫معرفی‬
‫آسیب‬
‫پذیری‬
‫کتابخانه‬ ‫در‬ ‫دور‬ ‫راه‬ ‫از‬ ‫کد‬ ‫اجرای‬
Apache Log4j2
‫بار‬ ‫اولین‬
‫تاریخ‬ ‫در‬
24
( ‫نوامبر‬
3
)‫آذر‬
‫جاری‬ ‫سال‬
‫توسط‬
‫ابری‬ ‫امنیت‬ ‫تیم‬
Alibaba
‫به‬
Apache
‫اعالم‬
‫گردید‬
.
‫در‬
10
‫نسخه‬ ‫آپاچی‬ ‫دسامبر‬
Log4j 2.15.0
‫جاوا‬ ‫برای‬
8
(
CVE-2021-44228
)
.‫است‬ ‫کرده‬ ‫منتشر‬
‫گسترد‬ ‫استفاده‬ ‫بدلیل‬
‫استفاده‬ ‫گی‬
‫جاوایی‬ ‫کتابخانه‬ ‫این‬ ‫از‬
)
‫تقربیا‬
7000
Artifact
‫در‬
Maven
)
‫و‬
‫سادگی‬
‫این‬ ‫برداری‬ ‫بهره‬
‫پذیری‬ ‫آسیب‬
،
‫رفع‬ ‫لذا‬ ‫است‬ ‫شده‬ ‫گزارش‬ ‫حیاتی‬ ‫پذیریی‬ ‫آسیب‬ ‫شدت‬
‫به‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫در‬ ‫آن‬
.‫است‬ ‫ضروری‬ ‫اند‬ ‫وابسته‬ ‫کتابخانه‬ ‫این‬
‫دوم‬ ‫بخش‬ ‫در‬
‫گزارش‬ ‫این‬
‫جزییات‬
‫پذیری‬ ‫آسیب‬ ‫فنی‬
،
‫پذیری‬ ‫آسیب‬ ‫از‬ ‫برداری‬ ‫بهره‬ ‫روش‬ ‫سوم‬ ‫بخش‬ ‫در‬
.‫شود‬ ‫می‬ ‫بیان‬ ‫آن‬ ‫با‬ ‫مقابله‬ ‫راهکارهای‬ ‫چهارم‬ ‫بخش‬ ‫در‬ ‫و‬
‫واژگان‬
1
JNDI
‫از‬ ‫یکی‬ :
API
‫نام‬ ‫طریق‬ ‫از‬ ) ‫جاوایی‬ ‫اشیای‬ ‫قالب‬ ‫(در‬ ‫منابع‬ ‫یا‬ ‫داده‬ ‫جو‬ ‫و‬ ‫جست‬ ‫امکان‬ ‫که‬ ‫جاوا‬ ‫های‬
‫آنها‬
‫در‬
.‫نماید‬ ‫می‬ ‫فراهم‬ ‫را‬
Java Seriliaztion
‫از‬ ‫ای‬ ‫آرایه‬ ‫صورت‬ ‫به‬ ‫باید‬ ‫دایرکتوری‬ ‫سرورهای‬ ‫در‬ ‫سازی‬ ‫ذخیره‬ ‫برای‬ ‫جاوا‬ ‫اشیای‬ :
‫بایت‬
.‫شوند‬ ‫می‬ ‫سریالیز‬
1
Java Naming and Directory Service
2
‫پذیری‬ ‫آسیب‬ ‫جزییات‬
‫در‬
‫قبل‬ ‫های‬ ‫نسخه‬
‫از‬
2.14.1
‫کتابخانه‬
Log4j
‫با‬
‫پالگین‬
JNDI Lookup
‫امکان‬
‫جو‬ ‫و‬ ‫جست‬
‫بازیابی‬ ‫و‬
‫مشخص‬ ‫داده‬
‫واسط‬ ‫طریق‬ ‫از‬
2
JNDI
‫و‬
‫پروتکل‬
3
LDAP
‫دارد‬ ‫وجود‬
‫آن‬ ‫هدف‬ ‫و‬
‫از‬ ‫بیشتر‬ ‫جزییات‬ ‫دریافت‬
‫هریک‬
‫از‬
‫شده‬ ‫الگ‬ ‫ای‬ ‫داده‬ ‫اقالم‬
‫در‬
LDAP
‫یک‬ ‫با‬ ‫که‬
URI
‫دهی‬ ‫آدرس‬
‫است‬ ‫گردیده‬
.
‫شکل‬ ‫در‬ ‫دهی‬ ‫آدرس‬ ‫قالب‬
1
‫مشخ‬
.‫است‬ ‫شده‬ ‫ص‬
‫در‬
Log4j
‫های‬ ‫روش‬
‫نیز‬ ‫جو‬ ‫و‬ ‫جست‬ ‫برای‬ ‫دیگری‬
‫این‬ ‫ولی‬ ‫دارد‬ ‫وجود‬
‫روش‬
‫و‬ ‫داکر‬ ‫جدید‬ ‫های‬ ‫نسخه‬ ‫در‬ ( ‫است‬ ‫متداول‬ ‫بیشتر‬
Kubernetes
)
‫شکل‬
1
-
‫در‬ ‫دهی‬ ‫آدرس‬ ‫نحوه‬
‫جوی‬ ‫و‬ ‫جست‬ ‫مدل‬
JNDI
‫پذیری‬ ‫آسیب‬ ‫این‬ ‫از‬ ‫پیش‬ ‫های‬ ‫نسخه‬ ‫در‬ ‫است‬ ‫ذکر‬ ‫به‬ ‫الزم‬
.‫ندارد‬ ‫وجود‬ ‫مذکور‬
‫پردازش‬ ‫روال‬ ‫ادامه‬ ‫در‬
URI
:‫شود‬ ‫می‬ ‫داده‬ ‫شرح‬ ‫سرور‬ ‫در‬
1
-
‫سرویس‬ ‫که‬ ‫هاستی‬
LDAP
‫درخواست‬ ‫یک‬ ‫توسط‬ ‫دارد‬ ‫قرار‬ ‫آن‬
DNS
‫آدرس‬ ‫یک‬ ‫به‬
IP
) ‫مشخص‬
2
-
‫ارتباط‬
TCP
.‫شود‬ ‫می‬ ‫برقرار‬ ‫نظر‬ ‫مورد‬ ‫پورت‬ ‫با‬
3
-
‫پروتکل‬ ‫طریق‬ ‫از‬ ‫نظر‬ ‫دستوررمورد‬
LDAP
‫ش‬ ‫می‬ ‫اجرا‬ ‫سرور‬ ‫در‬ ‫و‬ ‫ارسال‬
.‫ود‬
‫اعتبارسنجی‬
‫نامناسب‬
‫ورودی‬
‫وجود‬ ‫با‬
‫پذیر‬ ‫آسیب‬ ‫مولفه‬
،‫سرور‬ ‫در‬
‫با‬
‫ارسال‬
URI
‫و‬ ‫کاربر‬ ‫توسط‬ ‫مخرب‬
‫و‬ ‫جست‬ ‫درخواست‬ ‫خودکار‬ ‫اجرای‬
‫جو‬
‫ی‬
‫بدون‬
‫اعتبارسنجی‬
‫امکان‬
‫سرورهای‬ ‫به‬ ‫اتصال‬
‫بدخواه‬
‫دارد‬ ‫وجود‬
.
2
Java Naming and Directory Interface
3
Lightweight Directory Access Protocol
3
‫دور‬ ‫راه‬ ‫از‬ ‫کد‬ ‫اجرای‬
JNDI/LDAP
‫سال‬ ‫در‬ ‫پذیری‬ ‫آسیب‬ ‫این‬
Black hat 2015
‫شده‬ ‫ارائه‬ ‫امنیتی‬ ‫محققان‬ ‫توسط‬
‫است‬
.
‫سرویس‬
LDAP
‫اشیای‬
‫کردن‬ ‫سریالیز‬ ‫طریق‬ ‫از‬ ‫را‬ ‫جاوا‬
‫یک‬ ‫در‬
‫بایت‬ ‫از‬ ‫ای‬ ‫آرایه‬
‫رشته‬ ‫این‬ . ‫نماید‬ ‫می‬ ‫ذخیره‬
‫حاوی‬
‫تمام‬
‫اطالعات‬
‫شی‬
‫شی‬ ‫های‬ ‫ویژگی‬ ‫و‬ ‫توابع‬ ‫شامل‬
‫است‬
‫و‬
‫استفاد‬ ‫قابل‬ ‫شی‬ ‫از‬ ‫نمونه‬ ‫یک‬ ‫ایجاد‬ ‫برای‬
‫است‬ ‫ه‬
.
‫به‬ ‫منجر‬ ‫موضوع‬ ‫همین‬
.‫شود‬ ‫می‬ ‫دور‬ ‫راه‬ ‫از‬ ‫کد‬ ‫اجرای‬
.‫است‬ ‫ساده‬ ‫آنها‬ ‫از‬ ‫برداری‬ ‫بهره‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫پذیری‬ ‫آسیب‬ ‫دو‬ ‫هر‬
4
‫برداری‬ ‫بهره‬
‫بتواند‬ ‫باید‬ ‫مهاجم‬ ‫پذیر‬ ‫آسیب‬ ‫ازاین‬ ‫برداری‬ ‫بهره‬ ‫برای‬
URI
‫یک‬ ‫کاربر‬ ‫های‬ ‫ورودی‬ ‫در‬ ‫را‬ ‫خود‬ ‫بدخواه‬
‫آ‬ ‫سرور‬ ‫تا‬ ‫نماید‬ ‫وارد‬ ‫پذیر‬ ‫آسیب‬ ‫برنامه‬
‫کد‬ ‫سپس‬ ‫شود‬ ‫متصل‬ ‫مهاجم‬ ‫سرور‬ ‫به‬ ‫و‬ ‫نماید‬ ‫پردازش‬ ‫را‬ ‫آن‬ ‫پذیر‬ ‫سیب‬
‫پاسخ‬ ‫در‬ ‫مهاجم‬ ‫مخرب‬
LDAP
.‫گردد‬ ‫اجرا‬ ‫پذیر‬ ‫آسیب‬ ‫سرور‬ ‫در‬
.‫شود‬ ‫می‬ ‫داده‬ ‫شرح‬ ‫مراحل‬ ‫از‬ ‫یک‬ ‫هر‬ ‫ادامه‬ ‫در‬
‫سروربدخواه‬ ‫به‬ ‫اتصال‬
‫حمله‬ ‫شروع‬ ‫نقطه‬
‫ارسال‬ ‫امکان‬
URI
‫و‬ ‫کاربر‬ ‫توسط‬ ‫مخرب‬
‫اعتبارسنجی‬ ‫عدم‬
‫سرور‬ ‫در‬ ‫آن‬
‫باش‬ ‫می‬
‫و‬ ‫د‬
‫نهایتا‬
‫منجر‬
‫به‬
‫با‬ ‫ارتباط‬
LDAP
‫شود‬ ‫می‬ ‫مهاجم‬ ‫کنترل‬ ‫تحت‬ ‫سرور‬
.
‫یک‬ ‫خود‬ ‫اکانت‬ ‫اطالعات‬ ‫نمودن‬ ‫وارد‬ ‫جای‬ ‫به‬ ‫کاربر‬ ‫الگین‬ ‫صفحه‬ ‫یک‬ ‫در‬
URI
‫که‬ ‫نماید‬ ‫وارد‬ ‫بدخواه‬
‫سرویس‬ ‫یک‬ ‫با‬ ‫مهاجم‬ ‫کنترل‬ ‫تحت‬ ‫دامین‬ ‫آن‬ ‫هاست‬ ‫آدرس‬
LDAP
‫باشد‬
‫عنوان‬ ‫به‬ ‫آن‬ ‫دریافت‬ ‫با‬ ‫سرور‬ ‫لذا‬
‫یک‬
‫یک‬ ‫پردازش‬ ‫مراحل‬ ‫لذا‬ ‫کرد‬ ‫خواهد‬ ‫برخورد‬ ‫جو‬ ‫و‬ ‫جست‬ ‫درخواست‬ ‫مورد‬ ‫فیلد‬
URI
‫مهاجم‬ ‫سرور‬ ‫به‬ ‫و‬ ‫اجرا‬ ‫را‬
‫شود‬ ‫می‬ ‫وصل‬
!
.‫است‬ ‫شده‬ ‫داده‬ ‫نشان‬ ‫شکل‬ ‫در‬ ‫جو‬ ‫و‬ ‫جست‬ ‫عبارت‬ ‫اجرای‬ ‫برای‬ ‫مهاجم‬ ‫درخواست‬ ‫نمونه‬
‫شکل‬
2
-
‫بدخواه‬ ‫درخواست‬ ‫نمونه‬
‫دور‬ ‫راه‬ ‫از‬ ‫کد‬ ‫اجرای‬
‫شکل‬ ‫درخواست‬ ‫با‬
2
‫سرور‬ ‫با‬ ‫با‬ ‫پذیر‬ ‫آسیب‬ ‫سرور‬
LDAP
‫مهاجم‬ ‫دامین‬ ‫در‬ ‫که‬
‫پورت‬ ‫در‬
TCP
‫شماره‬
22
‫است‬ ‫اجرا‬ ‫حال‬ ‫در‬
‫می‬ ‫برقرار‬ ‫ارتباط‬ ،
‫و‬ ‫کند‬
‫یک‬
object
‫نام‬ ‫به‬
a
‫می‬ ‫درخواست‬
‫کند‬
.
‫درخواست‬ ‫به‬ ‫پاسخ‬ ‫در‬
LDAP
‫نام‬ ‫به‬ ‫پارامتری‬
java code base
‫پذیر‬ ‫آسیب‬ ‫سرور‬ ‫آدرس‬ ‫که‬ ‫دارد‬ ‫وجود‬
‫برای‬
‫می‬ ‫مشخص‬ ‫کد‬ ‫اجرای‬
.‫شود‬
5
‫مقابله‬ ‫راهکار‬
1
-
‫ورود‬ ‫امکان‬ ‫و‬ ‫است‬ ‫وابسته‬ ‫کتابخانه‬ ‫این‬ ‫به‬ ‫یا‬ ‫شده‬ ‫استفاده‬ ‫مستقیم‬ ‫صورت‬ ‫به‬ ‫کتابخانه‬ ‫این‬ ‫از‬ ‫که‬ ‫هایی‬ ‫پروژه‬ ‫شناسایی‬
.‫دارد‬ ‫وجود‬ ‫کاربر‬ ‫توسط‬ ‫داده‬
2
-
‫کتابخانه‬ ‫بروزرسانی‬
‫نظر‬ ‫مورد‬ ‫های‬ ‫سیستم‬ ‫الویت‬ ‫براساس‬
3
-
‫رسانی‬ ‫بروز‬ ‫امکان‬ ‫عدم‬ ‫صورت‬ ‫در‬
•
‫کالس‬ ‫حذف‬
lookup
‫از‬
log4j

Log4j CRE Vulnerability

  • 1.
    1 ‫معرفی‬ ‫آسیب‬ ‫پذیری‬ ‫کتابخانه‬ ‫در‬ ‫دور‬‫راه‬ ‫از‬ ‫کد‬ ‫اجرای‬ Apache Log4j2 ‫بار‬ ‫اولین‬ ‫تاریخ‬ ‫در‬ 24 ( ‫نوامبر‬ 3 )‫آذر‬ ‫جاری‬ ‫سال‬ ‫توسط‬ ‫ابری‬ ‫امنیت‬ ‫تیم‬ Alibaba ‫به‬ Apache ‫اعالم‬ ‫گردید‬ . ‫در‬ 10 ‫نسخه‬ ‫آپاچی‬ ‫دسامبر‬ Log4j 2.15.0 ‫جاوا‬ ‫برای‬ 8 ( CVE-2021-44228 ) .‫است‬ ‫کرده‬ ‫منتشر‬ ‫گسترد‬ ‫استفاده‬ ‫بدلیل‬ ‫استفاده‬ ‫گی‬ ‫جاوایی‬ ‫کتابخانه‬ ‫این‬ ‫از‬ ) ‫تقربیا‬ 7000 Artifact ‫در‬ Maven ) ‫و‬ ‫سادگی‬ ‫این‬ ‫برداری‬ ‫بهره‬ ‫پذیری‬ ‫آسیب‬ ، ‫رفع‬ ‫لذا‬ ‫است‬ ‫شده‬ ‫گزارش‬ ‫حیاتی‬ ‫پذیریی‬ ‫آسیب‬ ‫شدت‬ ‫به‬ ‫که‬ ‫هایی‬ ‫برنامه‬ ‫در‬ ‫آن‬ .‫است‬ ‫ضروری‬ ‫اند‬ ‫وابسته‬ ‫کتابخانه‬ ‫این‬ ‫دوم‬ ‫بخش‬ ‫در‬ ‫گزارش‬ ‫این‬ ‫جزییات‬ ‫پذیری‬ ‫آسیب‬ ‫فنی‬ ، ‫پذیری‬ ‫آسیب‬ ‫از‬ ‫برداری‬ ‫بهره‬ ‫روش‬ ‫سوم‬ ‫بخش‬ ‫در‬ .‫شود‬ ‫می‬ ‫بیان‬ ‫آن‬ ‫با‬ ‫مقابله‬ ‫راهکارهای‬ ‫چهارم‬ ‫بخش‬ ‫در‬ ‫و‬ ‫واژگان‬ 1 JNDI ‫از‬ ‫یکی‬ : API ‫نام‬ ‫طریق‬ ‫از‬ ) ‫جاوایی‬ ‫اشیای‬ ‫قالب‬ ‫(در‬ ‫منابع‬ ‫یا‬ ‫داده‬ ‫جو‬ ‫و‬ ‫جست‬ ‫امکان‬ ‫که‬ ‫جاوا‬ ‫های‬ ‫آنها‬ ‫در‬ .‫نماید‬ ‫می‬ ‫فراهم‬ ‫را‬ Java Seriliaztion ‫از‬ ‫ای‬ ‫آرایه‬ ‫صورت‬ ‫به‬ ‫باید‬ ‫دایرکتوری‬ ‫سرورهای‬ ‫در‬ ‫سازی‬ ‫ذخیره‬ ‫برای‬ ‫جاوا‬ ‫اشیای‬ : ‫بایت‬ .‫شوند‬ ‫می‬ ‫سریالیز‬ 1 Java Naming and Directory Service
  • 2.
    2 ‫پذیری‬ ‫آسیب‬ ‫جزییات‬ ‫در‬ ‫قبل‬‫های‬ ‫نسخه‬ ‫از‬ 2.14.1 ‫کتابخانه‬ Log4j ‫با‬ ‫پالگین‬ JNDI Lookup ‫امکان‬ ‫جو‬ ‫و‬ ‫جست‬ ‫بازیابی‬ ‫و‬ ‫مشخص‬ ‫داده‬ ‫واسط‬ ‫طریق‬ ‫از‬ 2 JNDI ‫و‬ ‫پروتکل‬ 3 LDAP ‫دارد‬ ‫وجود‬ ‫آن‬ ‫هدف‬ ‫و‬ ‫از‬ ‫بیشتر‬ ‫جزییات‬ ‫دریافت‬ ‫هریک‬ ‫از‬ ‫شده‬ ‫الگ‬ ‫ای‬ ‫داده‬ ‫اقالم‬ ‫در‬ LDAP ‫یک‬ ‫با‬ ‫که‬ URI ‫دهی‬ ‫آدرس‬ ‫است‬ ‫گردیده‬ . ‫شکل‬ ‫در‬ ‫دهی‬ ‫آدرس‬ ‫قالب‬ 1 ‫مشخ‬ .‫است‬ ‫شده‬ ‫ص‬ ‫در‬ Log4j ‫های‬ ‫روش‬ ‫نیز‬ ‫جو‬ ‫و‬ ‫جست‬ ‫برای‬ ‫دیگری‬ ‫این‬ ‫ولی‬ ‫دارد‬ ‫وجود‬ ‫روش‬ ‫و‬ ‫داکر‬ ‫جدید‬ ‫های‬ ‫نسخه‬ ‫در‬ ( ‫است‬ ‫متداول‬ ‫بیشتر‬ Kubernetes ) ‫شکل‬ 1 - ‫در‬ ‫دهی‬ ‫آدرس‬ ‫نحوه‬ ‫جوی‬ ‫و‬ ‫جست‬ ‫مدل‬ JNDI ‫پذیری‬ ‫آسیب‬ ‫این‬ ‫از‬ ‫پیش‬ ‫های‬ ‫نسخه‬ ‫در‬ ‫است‬ ‫ذکر‬ ‫به‬ ‫الزم‬ .‫ندارد‬ ‫وجود‬ ‫مذکور‬ ‫پردازش‬ ‫روال‬ ‫ادامه‬ ‫در‬ URI :‫شود‬ ‫می‬ ‫داده‬ ‫شرح‬ ‫سرور‬ ‫در‬ 1 - ‫سرویس‬ ‫که‬ ‫هاستی‬ LDAP ‫درخواست‬ ‫یک‬ ‫توسط‬ ‫دارد‬ ‫قرار‬ ‫آن‬ DNS ‫آدرس‬ ‫یک‬ ‫به‬ IP ) ‫مشخص‬ 2 - ‫ارتباط‬ TCP .‫شود‬ ‫می‬ ‫برقرار‬ ‫نظر‬ ‫مورد‬ ‫پورت‬ ‫با‬ 3 - ‫پروتکل‬ ‫طریق‬ ‫از‬ ‫نظر‬ ‫دستوررمورد‬ LDAP ‫ش‬ ‫می‬ ‫اجرا‬ ‫سرور‬ ‫در‬ ‫و‬ ‫ارسال‬ .‫ود‬ ‫اعتبارسنجی‬ ‫نامناسب‬ ‫ورودی‬ ‫وجود‬ ‫با‬ ‫پذیر‬ ‫آسیب‬ ‫مولفه‬ ،‫سرور‬ ‫در‬ ‫با‬ ‫ارسال‬ URI ‫و‬ ‫کاربر‬ ‫توسط‬ ‫مخرب‬ ‫و‬ ‫جست‬ ‫درخواست‬ ‫خودکار‬ ‫اجرای‬ ‫جو‬ ‫ی‬ ‫بدون‬ ‫اعتبارسنجی‬ ‫امکان‬ ‫سرورهای‬ ‫به‬ ‫اتصال‬ ‫بدخواه‬ ‫دارد‬ ‫وجود‬ . 2 Java Naming and Directory Interface 3 Lightweight Directory Access Protocol
  • 3.
    3 ‫دور‬ ‫راه‬ ‫از‬‫کد‬ ‫اجرای‬ JNDI/LDAP ‫سال‬ ‫در‬ ‫پذیری‬ ‫آسیب‬ ‫این‬ Black hat 2015 ‫شده‬ ‫ارائه‬ ‫امنیتی‬ ‫محققان‬ ‫توسط‬ ‫است‬ . ‫سرویس‬ LDAP ‫اشیای‬ ‫کردن‬ ‫سریالیز‬ ‫طریق‬ ‫از‬ ‫را‬ ‫جاوا‬ ‫یک‬ ‫در‬ ‫بایت‬ ‫از‬ ‫ای‬ ‫آرایه‬ ‫رشته‬ ‫این‬ . ‫نماید‬ ‫می‬ ‫ذخیره‬ ‫حاوی‬ ‫تمام‬ ‫اطالعات‬ ‫شی‬ ‫شی‬ ‫های‬ ‫ویژگی‬ ‫و‬ ‫توابع‬ ‫شامل‬ ‫است‬ ‫و‬ ‫استفاد‬ ‫قابل‬ ‫شی‬ ‫از‬ ‫نمونه‬ ‫یک‬ ‫ایجاد‬ ‫برای‬ ‫است‬ ‫ه‬ . ‫به‬ ‫منجر‬ ‫موضوع‬ ‫همین‬ .‫شود‬ ‫می‬ ‫دور‬ ‫راه‬ ‫از‬ ‫کد‬ ‫اجرای‬ .‫است‬ ‫ساده‬ ‫آنها‬ ‫از‬ ‫برداری‬ ‫بهره‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫پذیری‬ ‫آسیب‬ ‫دو‬ ‫هر‬
  • 4.
    4 ‫برداری‬ ‫بهره‬ ‫بتواند‬ ‫باید‬‫مهاجم‬ ‫پذیر‬ ‫آسیب‬ ‫ازاین‬ ‫برداری‬ ‫بهره‬ ‫برای‬ URI ‫یک‬ ‫کاربر‬ ‫های‬ ‫ورودی‬ ‫در‬ ‫را‬ ‫خود‬ ‫بدخواه‬ ‫آ‬ ‫سرور‬ ‫تا‬ ‫نماید‬ ‫وارد‬ ‫پذیر‬ ‫آسیب‬ ‫برنامه‬ ‫کد‬ ‫سپس‬ ‫شود‬ ‫متصل‬ ‫مهاجم‬ ‫سرور‬ ‫به‬ ‫و‬ ‫نماید‬ ‫پردازش‬ ‫را‬ ‫آن‬ ‫پذیر‬ ‫سیب‬ ‫پاسخ‬ ‫در‬ ‫مهاجم‬ ‫مخرب‬ LDAP .‫گردد‬ ‫اجرا‬ ‫پذیر‬ ‫آسیب‬ ‫سرور‬ ‫در‬ .‫شود‬ ‫می‬ ‫داده‬ ‫شرح‬ ‫مراحل‬ ‫از‬ ‫یک‬ ‫هر‬ ‫ادامه‬ ‫در‬ ‫سروربدخواه‬ ‫به‬ ‫اتصال‬ ‫حمله‬ ‫شروع‬ ‫نقطه‬ ‫ارسال‬ ‫امکان‬ URI ‫و‬ ‫کاربر‬ ‫توسط‬ ‫مخرب‬ ‫اعتبارسنجی‬ ‫عدم‬ ‫سرور‬ ‫در‬ ‫آن‬ ‫باش‬ ‫می‬ ‫و‬ ‫د‬ ‫نهایتا‬ ‫منجر‬ ‫به‬ ‫با‬ ‫ارتباط‬ LDAP ‫شود‬ ‫می‬ ‫مهاجم‬ ‫کنترل‬ ‫تحت‬ ‫سرور‬ . ‫یک‬ ‫خود‬ ‫اکانت‬ ‫اطالعات‬ ‫نمودن‬ ‫وارد‬ ‫جای‬ ‫به‬ ‫کاربر‬ ‫الگین‬ ‫صفحه‬ ‫یک‬ ‫در‬ URI ‫که‬ ‫نماید‬ ‫وارد‬ ‫بدخواه‬ ‫سرویس‬ ‫یک‬ ‫با‬ ‫مهاجم‬ ‫کنترل‬ ‫تحت‬ ‫دامین‬ ‫آن‬ ‫هاست‬ ‫آدرس‬ LDAP ‫باشد‬ ‫عنوان‬ ‫به‬ ‫آن‬ ‫دریافت‬ ‫با‬ ‫سرور‬ ‫لذا‬ ‫یک‬ ‫یک‬ ‫پردازش‬ ‫مراحل‬ ‫لذا‬ ‫کرد‬ ‫خواهد‬ ‫برخورد‬ ‫جو‬ ‫و‬ ‫جست‬ ‫درخواست‬ ‫مورد‬ ‫فیلد‬ URI ‫مهاجم‬ ‫سرور‬ ‫به‬ ‫و‬ ‫اجرا‬ ‫را‬ ‫شود‬ ‫می‬ ‫وصل‬ ! .‫است‬ ‫شده‬ ‫داده‬ ‫نشان‬ ‫شکل‬ ‫در‬ ‫جو‬ ‫و‬ ‫جست‬ ‫عبارت‬ ‫اجرای‬ ‫برای‬ ‫مهاجم‬ ‫درخواست‬ ‫نمونه‬ ‫شکل‬ 2 - ‫بدخواه‬ ‫درخواست‬ ‫نمونه‬ ‫دور‬ ‫راه‬ ‫از‬ ‫کد‬ ‫اجرای‬ ‫شکل‬ ‫درخواست‬ ‫با‬ 2 ‫سرور‬ ‫با‬ ‫با‬ ‫پذیر‬ ‫آسیب‬ ‫سرور‬ LDAP ‫مهاجم‬ ‫دامین‬ ‫در‬ ‫که‬ ‫پورت‬ ‫در‬ TCP ‫شماره‬ 22 ‫است‬ ‫اجرا‬ ‫حال‬ ‫در‬ ‫می‬ ‫برقرار‬ ‫ارتباط‬ ، ‫و‬ ‫کند‬ ‫یک‬ object ‫نام‬ ‫به‬ a ‫می‬ ‫درخواست‬ ‫کند‬ . ‫درخواست‬ ‫به‬ ‫پاسخ‬ ‫در‬ LDAP ‫نام‬ ‫به‬ ‫پارامتری‬ java code base ‫پذیر‬ ‫آسیب‬ ‫سرور‬ ‫آدرس‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫برای‬ ‫می‬ ‫مشخص‬ ‫کد‬ ‫اجرای‬ .‫شود‬
  • 5.
    5 ‫مقابله‬ ‫راهکار‬ 1 - ‫ورود‬ ‫امکان‬‫و‬ ‫است‬ ‫وابسته‬ ‫کتابخانه‬ ‫این‬ ‫به‬ ‫یا‬ ‫شده‬ ‫استفاده‬ ‫مستقیم‬ ‫صورت‬ ‫به‬ ‫کتابخانه‬ ‫این‬ ‫از‬ ‫که‬ ‫هایی‬ ‫پروژه‬ ‫شناسایی‬ .‫دارد‬ ‫وجود‬ ‫کاربر‬ ‫توسط‬ ‫داده‬ 2 - ‫کتابخانه‬ ‫بروزرسانی‬ ‫نظر‬ ‫مورد‬ ‫های‬ ‫سیستم‬ ‫الویت‬ ‫براساس‬ 3 - ‫رسانی‬ ‫بروز‬ ‫امکان‬ ‫عدم‬ ‫صورت‬ ‫در‬ • ‫کالس‬ ‫حذف‬ lookup ‫از‬ log4j