Botnet به نوعی ترکیب دو واژه robot و network است و در اصطلاح به تعدادی رایانه گفته میشود که به اینترنت متصل هستند و تحت کنترل نوعی بدافزار قرار دارند. از این رایانهها معمولن برای کارهای خرابکارانه از قبیل ارسال ایمیل اسپم (spamming)، سرقت اطلاعات، حملهی منع سرویس توزیعشده (DDoS) و... استفاده میشود.
نفوذ بدافزار در دستگاه قربانی به روشهای مختلفی ممکن است؛ برای نمونه استفاده از آسیبپذیری وبسایت، تروجان، شکستن رمزهای عبور ضعیف و... . با اجرا کردن بدافزار روی دستگاه موردنظر، میتوان از توان پردازشی آن دستگاه از راه دور و به شکل رایگان استفاده کرد. این بدافزار میتواند یا به شکل پردازشی در پسزمینه اجرا شود (در این حالت حتی مالک دستگاه نیز متوجه وجود آن نمیشود) یا کاملا دستگاه را تصرف کند و به مالک آن اجازهی استفاده از دستگاه را ندهد. گاهی در مواردی دیده میشود که تعداد رایانههایی که Botnet توانسته است در آنها نفوذ پیدا کند، حدود چند میلیون دستگاه بوده است.
چرا Botnet خطرناک است؟
همانگونه که بیان شد هدف اصلی از ایجاد Botnet انجام کارهای خرابکارانه است. به عنوان مهمترین مورد، در یک حمله DDoS، کنترلکنندهی یک Botnet میتواند به رایانههای در اختیار خود دستور بدهد تا به سمت سروری که میخواهد آن را از کار بیاندازد، درخواست ارسال کنند. به این ترتیب، حجم بسیار بالایی درخواست به سمت آن سرور ارسال میشود که اگر بیشتر از ظرفیت پاسخگویی آن باشد، سرور از کار میافتد و نمیتواند به درخواستهای سایر کاربران واقعی پاسخ بدهد.
در این حملهی منع سرویس، چون مبدا ارسال درخواستها (از Botnet) دستگاههای مختلفی هستند که IPهای متفاوتی دارند، تشخیص دستگاههای آلوده به بدافزار از کاربران عادی سخت و جلوگیری از آن نیازمند مکانیزمهای امنیتی پیچیده در سمت سرور است. مشکل بزرگ دربارهی این چنین حملاتی آن است که افرادی هستند که اقدام به تشکیل Botnet میکنند و آن را به فروش میرسانند. بنابراین، به دستآوردن چنین مجموعهای کار مشکلی نیست. به همین دلیل حمله DDoS با استفاده از Botnet، تهدیدی جدی به شمار میآید.
چگونه IP حمله کننده را پیدا کنیم؟
جهت جلوگیری از حمله یکی از راههای مفید آن پیدا کردن IP مبداء حملات است که تعداد اتصالات آن به سرور از حالت عادی بیشتر باشد و پس از پیدا کردن آن را از فایروال مسدود میکنیم. برای این کار کافی است که از دستور زیر استفاده کنیم تا لیست IPهای که به سرور متصل هستند را بیابیم:
netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
و با دستور زیر میتوانیم تعداد اتصالات به سرور را مشخص کنیم:
netstat -n | grep :80 |wc -l