اکسپلویت Log4j که توسط برخی Log4Shell یا CVE-2021-44228 نامیده می شود، در چند هفته اخیر در اخبار منتشر شده است. این بد است! همه جا هست! اما واقعاً چیست؟ چگونه به میلیون ها سرور راه پیدا کرد؟ و چگونه می توانید از خود در برابر عواقب این حفره امنیتی محافظت کنید؟ That’s Not Data—That’s Code! در قلب مشکل Log4j، سردرگمی بین داده های ساده و دستورات اجرایی است. کدگذارهای مخرب عملاً برای همیشه از این نوع سردرگمی سوء استفاده میکنند. در زمان ویروسهای رایانهای مبتنی بر DOS، برنامههای روی دیسک به سادگی مستقیماً در حافظه کپی میشد و راهاندازی میشد. ویروس های اولیه خود را به شکل یک بلوک داده در انتهای برنامه میزبان اضافه می کردند. با تغییر یک یا دو بایت در شروع برنامه، آنها باعث شدند که DOS قبل از راه اندازی برنامه، کد ویروس را اجرا کند. و ویروس در طول اجرای کوتاه خود به برنامه های بیشتری اضافه شد.
برنامههای ویندوز که برنامههای اجرایی قابل حمل (PE) نامیده میشوند، بسیار پیچیدهتر هستند. بلوک های مختلف اطلاعات در ناحیه حافظه مناسب بار می شوند و آن بلوک ها به عنوان کد یا داده علامت گذاری می شوند. با این حال، بدخواهان حملاتی را مدیریت کردند که اجرای آن چیزی که قرار بود داده باشد را مجبور کرد. نسخههای مدرن ویندوز از Data Execution Prevention (DEP) و Address Space Layout Randomization (ASLR) برای خنثی کردن چنین حملاتی استفاده میکنند. جاوا و Open-SourceLog4j در جاوا نوشته شدهاند، به این معنی که ذاتاً محافظتهایی مانند DEP و ASLR ندارد. از سوی دیگر، این یک بسته منبع باز است. این بدان معناست که هر کسی (خوب، هر کسی که مهارت های برنامه نویسی داشته باشد) می تواند کد منبع را بخواند، هر گونه اشکالی را شناسایی کند و در بهبود بسته کمک کند. تئوری این است که کد منبع باز ایمن تر است زیرا توسط بسیاری از چشمان مورد بررسی قرار گرفته است، و به دلیل اینکه هیچ امکانی برای پنهان شدن یک درب پشتی یا برخی از ویژگی های ناخواسته دیگر در کد وجود ندارد. وقتی کتابخانه درگیر بسیار حساس است، شاید شامل رمزگذاری باشد، واقعاً مورد بررسی جدی قرار می گیرد. اما ظاهراً این ماژول نوشتن گزارش ساده مورد توجه کافی قرار نگرفته است. ناشر نسخه جدیدی را ایجاد می کند که حفره را اصلاح می کند، به روز رسانی را بیرون می دهد و همه چیز خوب است. Log4j متفاوت است. این یک سیستم عامل، یا یک مرورگر یا حتی یک برنامه نیست. در عوض، این چیزی است که کدنویس ها آن را کتابخانه، بسته یا ماژول کد می نامند. این یک هدف را دنبال می کند – ثبت گزارش از اتفاقاتی که در یک سرور اتفاق می افتد. افرادی که کد می نویسند می خواهند روی چیزی که برنامه آنها را منحصر به فرد می کند تمرکز کنند. آنها نمی خواهند چرخ را دوباره اختراع کنند. بنابراین، آنها به کتابخانه های بی پایان کد موجود، مانند Log4j متکی هستند. ماژول Log4j از آپاچی، که پرکاربردترین نرم افزار وب سرور است، می آید. و به همین دلیل است که در میلیونها سرور یافت میشود. قربانی اینجا کیست؟ اینجا یک نکته مهم است. حملاتی که از آسیبپذیری در Log4j استفاده میکنند، شما را هدف قرار نمیدهند. هکری که آن را مجبور می کند تا یک خط متن را وارد کند که به یک فرمان تبدیل می شود، قصد دارد بدافزار را روی سرور نصب کند. مایکروسافت گزارش می دهد که هکرهای تحت حمایت دولتی از آن استفاده می کنند و احتمالاً باج افزار را تحت فشار قرار می دهند. Apple، Cloudflare، Twitter، Valve و دیگر شرکتهای بزرگ تحت تأثیر قرار گرفتهاند. ممکن است ویدیویی از یوتیوب را دیده باشید (یا نادیده گرفته باشید) که در آن یک محقق امنیتی نشان داده است که سرور Minecraft را با استفاده از چت درون بازی کنترل کرده است. این بدان معنا نیست که روی بازیکنان درگیر در چت تأثیر گذاشته است. این بدان معناست که محقق سرور را مجبور به اجرای کد دلخواه کرده است.
توصیه شده توسط ویراستاران ما
اما هنوز آرام نگیرید. هکری که می تواند کد دلخواه را روی سرور آسیب دیده اجرا کند، گزینه های نامحدودی دارد. مطمئناً، یک حمله باجافزاری به صاحب سرور میتواند کاملاً سودآور باشد، همانطور که میتواند سرور را برای استخراج بیت کوین انتخاب کند. اما این امکان نیز وجود دارد که هکر بتواند سرور را خراب کند و باعث شود که بدافزار به بازدیدکنندگان وبسایتهای میزبانی شده روی آن سرور وارد شود. چه کاری میتوانم انجام دهم؟ سوء استفاده Log4j تنها یکی از حفرههای امنیتی بسیاری است که توسط بازیگران بد مورد سوء استفاده قرار میگیرد. کاتالوگ آسیب پذیری های مورد سوء استفاده CISA 20 مورد را که تنها در ماه دسامبر یافت شده اند را فهرست می کند. با دقت نگاه میکنید، میبینید که برخی از آنها قبلاً رفع شدهاند، اما برخی دیگر تعمیری دارند که برای شش ماه یا بیشتر موعد مقرر ندارد. البته تعداد کمی تاثیر سوء استفاده Log4j را خواهند داشت. در مورد محافظت در برابر Log4j در سمت سرور، به طرز خندهداری ساده است. تنظیمی وجود دارد که کنترل میکند آیا سیستم گزارشگیری میتواند دادهها را به عنوان کد تفسیر کند یا خیر. خاموش کردن آن کلید کار را انجام می دهد. طبیعتا آپاچی یک به روز رسانی برای ماژول کد منتشر کرده است، اما برخی از محققان گزارش می دهند که تنها تغییر قابل توجه در به روز رسانی این است که این سوئیچ به طور پیش فرض خاموش است. همانطور که اشاره شد، Log4j کدی است که برای سرورها طراحی شده است و حمله سوء استفاده بر سرورها تأثیر می گذارد. با این حال، اگر یک هکر از آن برای حذف سروری که برای شما مهم است استفاده کند یا سعی کند از سرور برای دانلودهای درایو یا سایر حملات بدافزار استفاده کند، ممکن است به طور غیرمستقیم تحت تأثیر قرار بگیرید. برای جلوگیری از تأثیر سرور نمی توانید کاری انجام دهید. حذف، اما می توانید با نصب یک ابزار آنتی ویروس قدرتمند و به روز نگه داشتن آن در برابر آن حملات ثانویه محافظت کنید. سهم خود را با هوشیاری برای کلاهبرداری های فیشینگ، استفاده از مدیر رمز عبور و اجرای ترافیک اینترنت خود از طریق شبکه خصوصی مجازی یا VPN انجام دهید. ایمن نگهداشتن دادهها، دستگاهها و اتصالات خود به این معنی است که بعید است از پیامدهای حمله Log4j تحت تأثیر قرار بگیرید.
مانند آنچه می خوانید؟
در خبرنامه دیده بان امنیتی ثبت نام کنید تا داستان های برتر حریم خصوصی و امنیتی ما مستقیماً به صندوق ورودی شما تحویل داده شود.
این خبرنامه ممکن است حاوی تبلیغات، معاملات یا پیوندهای وابسته باشد. اشتراک در خبرنامه نشان دهنده رضایت شما با شرایط استفاده و خط مشی رازداری ما است. شما می توانید در هر زمان از خبرنامه ها لغو اشتراک کنید.
var facebookPixelLoaded = false;
window.addEventListener('load', function(){
document.addEventListener('scroll', facebookPixelScript);
document.addEventListener('mousemove', facebookPixelScript);
})
تابع facebookPixelScript() {
اگر (!facebookPixelLoaded) {
facebookPixelLoaded = درست است.
document.removeEventListener('scroll', facebookPixelScript);
document.removeEventListener('mousemove', facebookPixelScript);
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(پنجره،
document,'script','//connect.facebook.net/en_US/fbevents.js');
fbq('init', '454758778052139');
fbq ('track', "PageView");
}
}