همه به اهمیت افزایش امنیت سایت و توانا بودن آن در شناسایی و دفع حملات واقف هستیم. و کپچا ابزاری است که جهت تامین امنیت سایت در کنار شما خواهد بود. کپچا از فناوری هوش مصنوعی، جهت تشخیص کامپیوتر از انسان استفاده میکند. در مقابل، باتها هم با استفاده از هوش مصنوعی و جهت ایجاد خطا در فرایند کپچا تلاش میکنند. آرکپچا، سرویس کپچای فارسی است که جهت دفع حملات باتها در کنار شما خواهد بود. ما با شعار “آرکپچا، محافظت در برابر باتها” بهترین انتخاب به عنوان کپچای ایرانی برای وبسایت شما خواهیم بود. در ادامه مطالبی را درباره rate limiting و مزیت استفاده از کپچا در آن، مطرح خواهیم کرد.
Rate Limiting، کاربران و باتهایی که بیش از حد از ویژگیها و منابع سایت استفاده میکنند را block میکند. و میتواند تعداد زیادی از حملات باتها را شناسایی و متوقف کند. در واقع Rate limiting، یک استراتژی برای محدود کردن ترافیک شبکه است. و به منظور تعریف محدودیت هایی برای تکرار یک عمل توسط یک کاربر در بازه زمانی معین استفاده میشود. مثلا اقدام برای ورود به حساب کاربری که پس از تعدادی تلاش ناموفق، حمله تشخیص داده شود و پروتکل های امنیتی فعال گردند.
Rate limiting راه حل کاملی برای مدیریت فعالیت باتها نیست. اما میتواند جلوی فعالیت انواع خاصی از باتهای مخرب را بگیرد. و همچنین میزان فشار بر روی سرورها را کاهش دهد.
باتها به طور گسترده در اینترنت هم برای سازماندهی عملکردها و هم در جهت اهداف منفی فعالیت میکنند. Rate Limiting میتواند تاثیر عملکرد باتهای مخرب بر روی وبسایت و یا برنامهها را متوقف کند. حملاتی که توسط Rate Limiting متوقف میشوند، شامل حملات Brute force ،DoS ،DDoS و Web scraping هستند. در ضمن Rate Limiting میتواند از فعالیت بیش از حد API ها که لزوما به دلیل فعالیت باتها نیست، جلوگیری کند.
در توضیح حملات گفته شده بالا، Brute force حمله ای است که در آن هکر به منظور دستیابی به اطلاعات از روش بررسی تمام احتمالات استفاده میکند. در این نوع حملات، اقدامهای زیاد از طرف یک کاربر، در یک بازه زمانی معین، اتفاق میافتد.
Web scraping فرآیندی است که معمولا موتورهای جستجو با استفاده از باتها اقدام به جمع آوری اطلاعات مربوط به یک سایت و جهت مدیریت بهتر سایت میکنند. و اینگونه، راه برای حملات Web scraping و در قالب باتهایی که اهداف تخریب دارند باز میشود.
حملات DoS و DDoS نیز نوعی از حملات هستند که هکر با ارسال درخواست های زیاد، باعث عدم پاسخگو بودن سرور میگردد. تفاوت این حملات در ارسال درخواست ها از یک یا چندین سیستم است. در حملات DoS، درخواست ها از یک سیستم و در حملات DDoS، از چندین سیستم ارسال میگردند.
در ادامه با شیوه کار Rate Limiting آشنا میشویم اما پیش از آن مفهوم آدرس IP را توضیح میدهیم.
آدرس IP، شناسه ای منحصر به فرد است که به هر دستگاهی که به اینترنت متصل میشود اختصاص داده میشود. این شناسه خاص، تا زمانی که دستگاه متصل باشد، در اختیار آن قرار خواهد داشت. آدرس های IP در قالب آدرس های ورژن 4 (IPv4) یا 6 (IPv6) ارائه میشوند. برای مثال نمونه آدرس IP ورژن چهار، 198.41.129.1 است.
این آدرس ها به صورت پویا و توسط ISP یا ارائه دهنده خدمات اینترنت شما تعریف میشوند و دائمی نیستند. به هر حال آنچه که شما باید درباره آدرس IP بدانید این است که شناسه ای خاص است و گشت و گذار در اینترنت را برای شما ممکن میسازد.
اکنون به توضیح عملکرد Rate Limiting میپردازیم.
Rate limiting به جای اجرا در وب سرور، در لایه application اجرا میگردد. و عملکرد آن بر اساس اینکه هر درخواست از چه دستگاهی ارسال میگردد و فاصله زمانی میان هر درخواست چقدر است، انجام میگیرد. تشخیص مبداء درخواست ها، همانگونه که قبل تر اشاره شد با آدرس IP، امکان پذیر است.
Rate limiting، اقدام به محاسبه زمان بین هر درخواستی که متعلق به یک آدرس IP است میکند و همچنین تعداد درخواست های ارسال شده از یک آدرس IP در یک بازه زمانی معین را محاسبه میکند. در این حالت آدرس هایی که به صورت بیش از حد خواستار دسترسی باشند و شرایط تعریف شده برای آنها صدق کند، Rate limiting برای مدت مشخص درخواست های آنها را پذیرش نمیکند.
اما روش دیگری که وجود دارد، نمایش کپچا بعد از تشخیص، اقدام برای دسترسی های با تعداد زیاد است. که در ادامه توضیح داده خواهد شد.
یکی از مزیت های کپچا این است که به صورت گسترده میتواند جلوی حملات مخرب مختلف از جمله نفوذ باتها را بگیرد. شیوه انجام کار اینگونه است.
در مورد حمله های که rate limit با آنها سروکار دارد، مفصل توضیح داده شد. ماهیت این حمله ها اینگونه است که اقدام به ارسال درخواست های فراوان در یک مدت زمان معین مینمایند. یکی از کارهایی که جهت حفظ تامین امنیت میتواند انجام شود این است که اگر کاربر به حداکثر محدودیت رسیده باشد، حتی اگر گذرواژه صحیح را وارد کند، دیگر مجاز به ادامه نباشد.
محدودیت ورود به سیستم را میتوان با راه های مختلفی انجام داد. با ارسال پیغام «اقدامهای ناموفق زیاد» و سلب امتیاز ورود به سیستم برای آن IP یا اینکه فرم login را برای کاربر غیرفعال کنید و یا اینکه از کپچا استفاده کنید.
استفاده از کپچا اینگونه است که بعد از درخواست های مکرر اقدام به نمایش کد امنیتی یا چالش هایی که کامل کردن آنها توسط باتها سخت است مینماییم. بسیاری از باتها فقط تسلیم میشوند، چون اپراتورهای آنها هیچ راه حلی برای حل کپچا ندارند. ولی کاربر واقعی میتواند با ارسال جواب، به فعالیت خود ادامه دهد.
همانطور که در ابتدا، اشاره شد، rate limiting میتواند تعداد محدودی از حملات را متوقف کند. در ضمن میان باتهای مخرب و باتهای مفید تمایزی قائل نمیشود. پس در واقع rate limiting، برای مقابله با باتها نیست، بلکه برای محدود کردن میزان دسترسی استفاده است که با همین عملکرد، توانایی متوقف کردن بعضی از حملات که پیشتر اشاره شد را نیز دارد. اما ابزار bot management یا مدیریت باتها، به طور کلی فعالیت باتها را تشخیص میدهد و به اینکه هر بات چه کاری انجام میدهد، اجازه دسترسی و یا سلب دسترسی را صادر میکند. تشخیص حملاتی مانند، spam posting و credential stuffing و inventory hoarding و سایر حملات با bot management امکان پذیر است.