وضعیت سرورها

وبــلاگ

وضعیت سرورها
  • دفاع از وبسایت با استفاده از ZIP BOM ها

    بهاره قلندرنژاد یکشنبه ۵ شهریور ۱۳۹۶ امنیت , مقالات , وردپرس

    چگونه با استفاده از ZIP BOM ها از وبسایت مان دفاع کنیم

     

    روشهای خوب قدیمی که هنوز جواب می دهند

    اگر تا حالا یک وبسایت را میزبانی کرده باشید یا اینکه حتی یکبار یک سرور را مدیریت کرده باشید خوب می دانید آدم بدهایی هستن که میخوان بلا سر سایتتان بیاورند.

    خود من اولین باری که تو ۱۳ سالگی یه هاست لینوکس با دسترسی SSH رو بالا آوردم قشنگ یادمه. می نشستم و هر روز لاگ ها و IP های مهاجم رو چک می کردم! یادمه اغلب از چین و روسیه بودن. خیلی علاقه داشتن یه جوری به سرورم وصل بشن، خیلی!

    در واقع وقتی یک سرور لینوکس با دسترسی SSH دارید، یعنی از بیرون دیده می شه. پس باید یه جوری آمار درخواست اتصال ها به سرورتان را چک کنید:

     

    دستور بالا اولین کاریه که می تونید برای این موضوع انجام بدین. خروجیش رو ببینید:

    خروجی لاگ

    همانطور که در تصویر می بینید، صدها لاگین ناموفق با اینکه این سرور احراز هویت با رمز عبور رو غیرفعال کرده اما روی یک پورت غیر استاندارد تنظیم شده اند.

     

    وردپرس دوست داشتنی، همه ما رو بیچاره کرده!

     

    باشه باشه…قبول داریم اسکنر نقاط ضعف قبل از وردپرس هم وجود داشته اما از اونجایی که وردپرس دیگه شورش رو درآورده و تو همه دنیا گسترده شده، اسکنرهای نقاط ضعف به یکسری اسکن مخصوص فولدرهای wp-admin یا پلاگین های patch نشده اش مجهز شده اند.

    بنابراین اگه یه گروه هک جدید و کوچک بخواد واسه خودش اعتباری دست و پا کنه، یکی از این اسکنرها رو دانلود میکنه و شروع میکنه به تست، یه عالمه وبسایت به امید اینکه بتونه بهش دسترسی پیدا کنه و دیفیسش کنه.

     

    نمونه ای از لاگ تولید شده توسط اسکنری بنام Nikto.

     

    به خاطر همینه که همه ادمین های سایت یا سرور، مجبورن با لاگ هایی در حدود گیگابایت سر و کله بزنن که پر هستن از لاگین های ناموفق. پس این فکر به سرمون زد که:

     

    آیا راهی برای مقابله هست؟

    پس از راهکارهایی نظیر IDS و Fail2ban، ما به شما راه قدیمی ZIP BOM  رو پیشنهاد می کنیم.

     

    ZIP BOM چیست؟

    داریم می رسیم به جاهای جالبش، به نظر می رسه که فشرده سازی به روش زیپ واسه داده های تکراری خیلی خوبه پس اگه یه فایل متنی بشدت حجیم داشته باشین که شامل داده های تکراری باشه، مثلا همش صفر باشه، این روش عالی فشردش می کنه. یعنی جدا خوب فشرده میکنه.

    کما اینکه فایل ۴۲٫zip که نمونه ماست شون میده، روش زیپ میتونه ۴٫۵ پتا بایت معادل ۴،۵۰۰،۰۰۰ گیگابایت رو به ۴۲ کیلو بایت فشرده کنه. اگه سعی کنین محتوای چنین فایلی رو ببینید (از حالت فشرده خارج کنید) به احتمال قوی فضا کم خواهید آورد.

     

    چگونه می توانم یک اسکنر ناقص را بمب گذاری کنم؟

    متاسفانه مرورگرهای وب روش ZIP رو نمیفهمن ولی GZIP رو میفهمن. گام اول باید یک فایل GZIP 10 گیگابایتی حاوی ۰ بسازیم. میتونیم فشرده سازی چند لایه هم داشته باشیم اما الان راه ساده تر رو پیش میگیریم:

    ساخت بمب و  بررسی حجم

    همانطور که می بینید اندازش حدود ۱۰ مگابایت شد. میتونستیم فشرده ترش کنیم ولی فعلا کافیه.

    حالا که این فایلو ساختیم، بیایم یه فایل PHP بسازیم که بفرستیمش رو یک کلاینت.

     

     

    همین! پس می تونیم بشکل زیر یک تاکتیک دفاعی جالب درست کنیم:

     

    این اسکریپت قطعاً حلال همه مشکلات نیست اما می تونه با تغییر user agent از ما در مقابل مهاجمین حفاظت کند.

    حالا بیاین ببینینم وقتی اسکریپت فراخوانی میشه چه اتفاقی میوفته؟

    نتیجه مرورگر
    IE 11 مصرف حافظه بشدت بالا میره، IE هنگ میکنه
    Chrome مصرف حافظه بالا میره و خطا میده
    Edge مصرف حافظه بالا میره بعد قاطی میکنه و در حالت لود شدن گیر میکنه
    Nikto بنظر میاد درست اسکن میکنه اما خروجی نشون نمیده
    SQLmap مصرف حافظه اونقدر بالا میره که هنگ میکنه
    Safari مصرف حافظه بشدت بالا میره بعد هنگ میکنه و بسته میشه سپس دوباره بالا میاد، حافظه میره بالا، کرش میکنه و …
    Chrome (Android) حافظه میره بالا و خطا میده

     

    0

    برچسب ها :

با عضویت در خبرنامه شما را از آخرین تجربیات مان و مطالب تخصصی آگاه خواهیم کرد.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *