شناسایی نشانه های حمله به وب سایت ها
تجربه اینگونه ثابت کرده است که در موارد متعدد سایت هایی که اهمیت و بازدید بیشتری دارند بیش از سایر سایت ها مورد علاقه هکرها قرار می گیرند و در معرض حملات بیشتری قرار دارند. اما راه تشخیص این حملات از چه قرار است؟
اگر جستجویی کوتاه در اینترنت داشته باشید علاوه بر مواجهه با لیستی بلند بالا از سایتهایی که هک شدهاند و هر لحظه هم بر تعداد آن ها افزوده می شود، در موارد متعدد حتی با سایتهایی رو به رو خواهید شد که مدعی آموزش اینترنتی شیوه های هک کردن هستند.
هکرها به ابزارهای حملات خودکار تزریق SQL و Remote File Inclusion علاقه ویژه ای دارند و با استفاده از نرمافزارهایی مانند sqlmap، Havij یا NetSparker، پیدا کردن و سوء استفاده از آسیب پذیری های وبسایت ها حتی برای مهاجمان تازهکار سریع و آسان است.
هکرها به سه دلیل کلیدی به ابزارهای خودکار علاقه دارند:
2: این ابزارها هکر را قادر می سازند که در زمانی کوتاه و با تلاشی کم به تعداد زیادی سایت حمله کند.
3: این ابزارها استفاده بهینه را از سرورهای آلوده که ممکن است تنها برای مدت محدودی در اختیار آنها باشند، به عمل می آورند.
اما نکته مثبت اینجاست که در صورتی که شما بتوانید راهی برای کشف و مسدود کردن حملات خودکار پیدا کنید، خواهید توانست حجم زیادی از حملات هکری را بر روی سایت خود متوقف کنید. در این مقاله نحوه شناسایی ترافیک خرابکارانه تولید شده توسط این ابزارهای خودکار شرح داده خواهد شد.
نشانه اول: نرخ بالای درخواست ورودی
یکی از نشانه های کلیدی یک حمله خودکار، نرخ رسیدن درخواست های ورودی است. احتمال اینکه یک انسان بتواند بیش از یک درخواست HTTP در هر 5 ثانیه تولید کند بسیار پایین است. اما ابزارهای خودکار اغلب حدود 70 درخواست در دقیقه تولید میکنند (یعنی بیش از یک درخواست در ثانیه). یک انسان نمی تواند به طور عادی با این سرعت کار کند.
اکنون مسأله ساده به نظر می رسد. هر ترافیکی که با نرخی بیش از یک درخواست در 5 ثانیه برسد، باید توسط این ابزارها تولید شده باشد. اما متأسفانه قضیه به این سادگی نیست.
نخست اینکه تمامی ترافیک های تولید شده توسط ابزارهای خودکار، خرابکارانه نیستند. حجم قابل توجهی از ترافیک خودکار توسط کسانی مانند گوگل تولید میشود که تنها کاری که انجام می دهند این است که سایت شما را در فهرست خود قرار داده و اصطلاحا ایندکس میکند تا دیگران بتوانند به سادگی شما را پیدا کنند.
از طرف دیگر تمام ترافیک هایی که با نرخ بالا وارد می شوند، لزوما توسط ابزارهای خودکار تولید نمی شوند. ممکن است به نظر برسد که سرویس هایی مانند شبکه های تحویل محتوا (content delivery) و پراکسی ها، منبع حجم زیادی از ترافیک هستند، اما ممکن است قضیه صرفا تراکم تعداد زیادی کاربر مختلف باشد.
اما نکته مهمتر این است که بسیاری از هکرها آنقدر پیچیده هستند که بدانند که تولید درخواست با نرخ بالا به سادگی قابل تشخیص است و در نتیجه تاکتیک هایی را برای جلوگیری از تشخیص این ابزارها به کار می برند. این تاکتیک ها میتوانند به شرح زیر باشند:
کم کردن عمدی سرعت ابزار
کم کردن عمدی سرعت ابزار برای شبیه کردن الگوی ترافیک آن به ترافیک تولید شده توسط انسان یکی از راه هایی است که هکرها علاقه خاصی نسبت به آن نشان می دهند.
حمله به سایتهای دیگر بهطور موازی
این کار عبارت است از استفاده از ابزارهای حمله خودکار برای ارسال ترافیک به چند سایت به صورت گردشی. در نتیجه اگر چه ابزار درخواست ها را با نرخ بالایی تولید می کند، اما هر سایت ترافیکی با نرخی مشابه ترافیک انسانی دریافت می کند.
استفاده از چندین میزبان برای اجرای حملات
این روش پیچیده تر، هکرها را قادر می سازد که به یک سایت طوری حمله کنند که تمامی ترافیک از یک آدرس آی پی واحد و قابل شناسایی ارسال نشود.
در نتیجه، نرخ بالای ترافیک درخواست های ورودی فقط یک نشانه از حمله خودکار است. نشانه های دیگری نیز در این مورد وجود دارند.
نشانه دوم: هدرهای HTTP
هدرهای HTTP می توانند نشانه ارزشمند دیگری از طبیعت ترافیک ورودی باشند. برای مثال، ابزارهای خودکار تزریق SQL مانند sqlmap، Havij و Netsparker همگی به درستی خود را در هدرهای درخواستهای HTTP توسط رشته های توصیفی عامل کاربر (User Agent) معرفی می کنند. این بدان علت است که این ابزارها با این هدف ساخته شده اند که برای تست نفوذ معتبر مورد استفاده قرار بگیرند. همینطور حملات نشأت گرفته از اسکریپتهای Perl نیز ممکن است توسط یک عامل کاربر libwww-perl شناسایی شوند.
روشن است که هر ترافیکی که حاوی نام این ابزارها در رشته عامل کاربر (User Agent) باشد باید مسدود شود. قطعا این رشته ها می توانند تغییر کنند، ولی هکرهای تازهکار اغلب از این موضوع ناآگاه هستند.
حتی اگر ابزارها شامل رشته های معرفی کننده نباشند، تحقیقات Imperva نشان داده است که بسیاری از این ابزارها بخش هایی از اطلاعات هدرها را که اغلب مرورگرها در درخواست های وب انتظار آن را دارند، ارسال نمی کنند. این بخش ها شامل هدرهایی مانند Accept-Language و Accept-Charset میشود.
البته یک هکر زرنگ میتواند سیستم خود را طوری پیکربندی کنند که این هدرها را اضافه کند. ولی بسیاری نیز این کار را انجام نمی دهند. نبود این هدرها باید یک نشانه هشدار دهنده به شمار رود و در ترکیب با نرخ بالای درخواست ها، نشانه ای بسیار قوی از ترافیک خرابکارانه محسوب می شود.
نشانه سوم: ردپای ابزار حمله
ابزارهای حمله گستره محدودی از فعالیت های مختلف را میتوانند انجام دهند. Imperva کشف کرده است که برخی اوقات با تحلیل رکوردهای ترافیکی که توسط حملات خودکار تولید می شوند، می توان به الگوهایی دست یافت (مانند رشتههای خاص در دستورات SQL تولید شده در تزریق SQL) که به طور یکتا یک ابزار خاص را معرفی می کنند. برخی اوقات این رشته ها با بررسی کد منبع یک ابزار قابل کشف هستند.
این ردپاها می توانند اساس قوانین مسدود کردن در فایروال را تشکیل دهند، ولی توجه به این نکته مهم است که ممکن است این ردپاها در نسخه های بعدی ابزار تغییر کنند.
نشانه چهارم: جغرافیای غیر معمول
Imperva کشف کرده است که 30 درصد از حملات تزریق SQL با نرخ بالا از چین نشأت گرفته اند و سایر حملات از کشورهای غیر معمول نشأت . توصیه می شود که در مورد ترافیک های تولید شده از کشورهایی که انتظار آن را ندارید، مشکوک باشید.
یک افزایش ناگهانی در ترافیک تولید شده توسط مناطق جغرافیایی غیر منتظره به تنهایی اثبات کننده هیچ چیز نیست، اما در ترکیب با سایر نشانه ها مانند هدرهای HTTP یا نرخ بالای درخواست ورودی، باید مورد توجه قرار گرفته و یا حتی منجر به مسدود کردن کل ترافیک شود.
نشانه پنجم: لیست های سیاه آی پی
هر زمان که حمله ای توسط متدی تشخیص داده می شود، آدرس آی پی منبع می تواند ثبت شود. گروه تحقیقاتی Imperva کشف کرده است که حملات خودکار از یک آدرس آی پی یکتا معمولا تمایل دارند بین سه تا پنج روز از آن آدرس منتشر شوند.
اما برخی آدرس های آی پی برای هفته ها یا حتی ماه ها منبع ترافیک خودکار خرابکارانه باقی می مانند. این بدان معنی است که آدرس های لیست سیاه می توانند در جلوگیری از حملات خودکار آتی از آن منبع بسیار سودمند باشند. ارائه دهندگان امنیت ابری می توانند با قرار دادن هر سایتی که منبع حملات خودکار بر روی هر یک از کلاینت ها است در لیست سیاه، سایر کلاینت ها را نیز در برابر آن محافظت کنند.