با پیشرفت روز افزون فناوری، مسئله امنیت و شاخههای آن در فضای وب بیش از پیش به امری حیاتی تبدیل شده است. توسعهدهندگان وب در این میان بیشتر از همه درگیر تامین امنیت فضای وب هستند. چرا که آسیب پذیری و ضعف امنیتی به عنوان عاملی بازدارنده در مسیر پیشرفت و توسعه اهدافشان در وب است. مهاجمین یا همان هکرها از روشهای مختلفی برای نفوذ و اختلال در سیستم استفاده میکنند. به این صورت که از یک ضعف امنیتی در شبکه استفاده کرده و از همان نقطه باعث اختلال در روند و کارایی شبکه میشوند. یکی از مرسومترین و البته خطرناکترین حملات اینترنتی، حمله DDos یا Distributed Denial of Service Attack است.
Denial of Service Attacks به آن دسته از حملاتی گفته میشود که هدف اصلی آنها از دسترس خارج کردن یک سایت، شبکه و یا منابع موجود در شبکه است. ترفند اینگونه حملات به صورت ارسال درخواست با حجم بسیار زیاد به سمت سرور است. بدین ترتیب درخواستهای زیاد، باعث مصرف بیش از اندازه منابع زیرساخت شده و به این شکل پردازش عادی برای پاسخگویی به کاربران، با اختلال و کندی روبرو خواهد شد. در حالت توزیع شدهی این حملات یا همان دیداس، درخواستهای ارسال شده از سیستمهای مختلف و با آدرس IP های متفاوت رخ میدهد که قدرت بسیار بیشتری دارند.
در شبکههای کامپیوتری، دو مدل لایهبندی برای بررسی جزئیات ارائه شده است. بزرگترین دستاورد مدل OSI روشن ساختن مفاهیم لایهبندی در شبکه است. هر لایه سرویسهایی را در اختیار لایههای بالاتر از خود قرار میدهد. لایه ۷ بالاترین لایه در مدل Open Systems Interconnection (OSI) است که در آن درخواستهای Http رخ میدهد. لایه ۷ به لایه اپلیکیشن در بین متخصصین شبکه معروف است. حملات در این لایه به طور خاصی موثر هستند چرا که منابع سرور و منابع شبکه را درگیر میکنند.
حمله DDos لایه ۷ جزو حملات معمول اما پیچیده است زیرا رفتار و نوع درخواستهای ارسالی بسیار شبیه به درخواست معمول از طرف کاربران واقعی است. یکی از چالشهای کاهش حملات لایه کاربرد، تشخیص ترافیک قانونی از ترافیک مخرب است.
به طور خلاصه موثرترین روشها شامل CAPTCHA و WAF است. از طریق CAPTCHA، بازدیدکنندگان باید با پاسخ به یک چالش، انسان بودن خود را ثابت کنند. این وجه تمییز میان انسان و ربات خطرات حملات دیداس لایه ۷ را به طور چشمگیری کاهش میدهد. هر آدرس IP که با چالش مواجه شود، دسترسی به سرور برایش مسدود میشود.
حمله دیداس دارای انواع مختلفی است اما به طور کلی در دو دسته زیر جای میگیرد:
حملات ترافیکی: در این نوع حمله DDos حجم عظیمی از درخواستهای TCP، UDP و ICPM به سمت سیستم هدف ارسال میشود. در این بین، برخی درخواستها گم میشوند و برخی دیگر توسط بدافزار با موفقیت به کار گرفته میشوند.
حملات پهنای باند: در این نوع از حمله DDos، سیستمهای زامبی به منظور اشغال پهنای باند، حجم زیادی از اطلاعات بدون استفاده را به سرور سایت ارسال میکنند. در نتیجه، هدف کاملا از کار میافتد و دسترسی آن به تمامی منابع قطع میشود.
حمله دیداس در لایه اپلیکیشن که گاهی هم با اسم Layer 7 DDoS شناخته میشود، شکلی از حملات DDoS است که متجاوز، عملیات و پروسههای لایه اپلیکیشن را هدف قرار میدهد. در این گونه حملات، متجاوز بار سنگینی را برای ویژگیها یا توابع اپلیکیشن بهوجود میآورد تا کارکرد آن قسمت بهخصوص را مختل کند.
حمله DDos در لایه اپلیکیشن با نوع کل شبکه متفاوت است. یکی از اهداف این حمله، سازمانهای مالی هستند. سال ۲۰۱۳، بیست درصد همه حملات دیداس، از این نوع بوده و تحقیقات شرکت Akamai Technologies نشان میدهد نرخ این نوع حملات افزایش داشته است.
شاید بتوان گفت پیچیدهترین نوع حملات DDos از نوع حملات لایه ۷ یا همان اپلیکیشین در مدل OSI باشد. لایه اپلیکیشن معمولا شامل حملات HTTP است. به عنوان مثال زمانی که بیش از چند صد هزار سیستم آلوده، شامل کامپیوتر شخصی، سرورهای مختلف و حتی مودمهای اینترنت خانگی به درستی تنظیم نشده باشند، به سمت یک سایت درخواست قانونی ارسال میکنند. بدین ترتیب سرور یا وبسایت مورد نظر به راحتی از دسترس خارج میشود. با این مشکل چگونه میتوان برخورد کرد؟
در حالت عمومی و اولیه، یک Redirection به همراه هدر set_cookie به سمت کاربر برمیگردد. و مرورگر باید در هدر cookie درخواست خود را قرار دهد و دوباره بفرستد. این راهکار از ورود بسیاری از باتها که توانایی تنظیم کوکی و استفاده از آن را در سایر اتصالات ندارند، جلوگیری خواهد کرد. در مرحله بعدی، همان Redirection به همراه set-cookie در قالب یک فایل JS به سمت کاربر بازگردانده میشود. با این کار باتهای پیشرفتهتر که قابلیت تحلیل فایل JS را ندارند از تنظیم کوکی بازمیمانند. به این صورت میتوان از ورود باتهایی که در تلاش هستند رفتار انسان را شبیهسازی کنند جلوگیری کرد.
اما اگر باتهای طراحی شده، این مراحل را پشت سر بگذارند، چه باید کرد؟ در چنین حالتی استفاده از کپچا بهترین راهکار ممکن است. کپچا با نشان دادن چندین تصویر و سوال، میان رفتار انسان و ربات تمایز قائل میشود. از آنجایی که نمایش این قبیل صفحات و پردازش آنها خارج از سرور انجام میشود، میتوان استفاده از کپچا را جزو روشهای پیشرفته و کارآمد برای جلوگیری از حمله DDos لایه ۷ دانست.
کپچا آزمونی است که با ارائه یک سری چالش و ایجاد تمایز میان انسان و ربات، امنیت سایت را تامین میکند. حل این چالشها برای انسانها آسان بوده اما برای رایانهها سخت و ناممکن است. کپچا به خودی خود به فیلترکردن ترافیک ربات کمک بزرگی میکند.
کاربرانی که درخواست یک URL محافظت شده توسط CAPTCHA را دارند، باید برای دستیابی به آن از صفحه محافظت شده با حل چالش عبور کنند. اگر سایت تحت حمله DDoS قرار داشته باشد، تنظیم قانون محافظت کپچا برای کل سایت میتواند انتخاب موقتی خوبی باشد تا از ترافیک مزاحم جلوگیری شود. یک راهکار بهتر، استفاده از سرویسهای امنیت ابری است که روند نمایش کپچا را بر عهده میگیرند. و باعث میشوند هیچ ترافیک نامتعارفی به سمت سرورهای شما وارد نشود.
خارج از حوزه محافظت DDoS، کپچا به جلوگیری از تراش(scrap) خودکار صفحات با داده اختصاصی کمک کرده و به کاربران عادی اجازه میدهد بدون هیچ مشکلی در دنیای وب جستجو و مرور کنند.
کپچا یک روش محافظتی به صرفه است که مقدار CPU و حافظه کمتری را درگیر میکند. بنابراین آسانتر و حتی سریعتر است که در مورد صحیح بودن کپچا بررسی شود تا اینکه در پایگاه داده به جستجوی کاربر پرداخته شود. در اولین مرحله، سرور، کپچا را بررسی میکند و در صورت صحیح بودن کپچا، سایر فرایند ورود (Login) به سایت انجام میشود. در غیر این صورت کاربر با خطا روبرو میشود. البته توجه داشته باشید که ساختن یک تصویر CAPTCHA به پردازش نیاز دارد و منابع زیرساخت شما را درگیر میکند. بهتر است خدمت کپچا، برون سپاری شود. و از سرویسهای متعارف مثل آرکپچا برای اینکار استفاده شود تا هیچ پردازش اضافی به سرور شما تحمیل نشود.
حمله منع سرویس یا همان حمله DDos با هدف محروم کردن کاربران واقعی برای دسترسی به خدمات انجام میشود. حمله DoS معمولاً توسط رباتها و نرمافزارهای خودکار انجام میشود. رباتها میتوانند تعداد زیادی درخواست جعلی به سرور ارسال کنند که بیش از ظرفیت بافر سرور است. همچنین اکثر وبسایتهای فعلی از یک روش متداول برای تولید تمام CAPTCHAهای خود استفاده میکنند. مجموعهای از الگوهای متمایز کپچا، مانع از رمزگشایی رباتها شده و در نتیجه به کاهش تولید ترافیک غیرقانونی کمک بزرگی میکند. با این کار پهنای باند سرور حفظ میشود تا کاربران قانونی بتوانند به سایت دسترسی پیدا کنند.
کپچا با ارائه یک سری سوال ساده مانند پیدا کردن دوچرخه، اتوبوس یا علامت ایست راهنمایی و رانندگی در تصاویر، میان رفتار انسانها و باتها تمایز قائل میشود. برای حفظ امنیت وبسایت و اطلاعات کاربران، حتماً کاربران را مجبور به تعریف گذرواژههای قوی کنید. به عنوان مثال استفاده همزمان از حروف، اعداد و کاراکترها برای داشتن یک گذرواژه قوی توصیه میشود. همچنین احراز هویت دو مرحلهای یکی از رویکردهایی است که بسیاری از وبسایتها برای ارتقای سطح امنیت خود استفاده میکنند. باتهای فعلی قادر به حل کپچا فارسی نیستند و با استفاده از خدمات ارائه شده در آرکپچا، میتوانید به آسانی محافظ وبسایت خود در برابر حملات امنیتی و نفوذ هکرها باشید.