بات‌نت

بات‌نت‌ها شبکه‌هایی هستند که با در اختیار گرفتن مجموعه‌ای از کامپیوترها که بات(bot) نامیده می‌شوند، تشکیل می‌شوند. این شبکه‌ها توسط یک یا چند مهاجم که botmasters نامیده می‌شوند، با هدف انجام فعالیت‌های مخرب کنترل می‌گردند. به عبارت بهتر ربات‌ها کدهای مخربی هستند که بر روی کامپیوترهای میزبان اجرا می‌شوند تا امکان کنترل نمودن آن‌ها از راه دور را برای botmasterها فراهم نمایند و آن‌ها بتوانند این مجموعه را وادار به انجام فعالیت‌های مختلف نمایند.
تاریخچه
از نظر تاریخی بات‌نت‌ها از (Internet Relay Chat (IRC که یک سیستم گفتگوی مبتنی بر متن است و ارتباطات را در کانال‌ها سازماندهی می‌کرد، سرچشمه می‌گیرد. در این سیستم از بات‌نت‌ها با هدف کنترل فعل و انفعالات در اتاق‌های گفتگوی IRC استفاده می‌شد. این ربات‌ها می‌توانستند دستورات ساده را اجرا کنند، بازی‌های ساده و سرویس‌های مختلف را به کاربران گفتگو پیشنهاد دهند و اطلاعاتی در مورد سیستم عامل‌ها، گزارش‌های ورود به سیستم، آدرس‌های ایمیل و مانند آن‌ها را استخراج نمایند.
اولین ربات IRC، به اسم Eggdrop در سال ۱۹۹۳ ارائه شد و پس از آن توسعه یافت. پس از آن ربات‌های IRC مختلفی با اهداف مخرب اعم از حمله به کاربران IRC یا همه سرورها، ایجاد شدند. ربات‌های جدید از مکانیزم‌های پیچیده‌ای برای ارتباط با botmaster استفاده می‌کنند که این مکانیزم‌ها از پروتکل‌ها و تکنیک‌های متعددی استفاده می‌کنند که منجر به پیچیده شدن روزافزون این ربات‌ها و سخت‌تر شدن تشخیص و مقابله با آن‌ها می‌گردد. آن‌ها می‌توانند مانند کرم‌ها منتشر شوند، مثل یک ویروس مخفی بمانند و حملات گسترده و سازمان یافته‌ای را شکل دهند. نسل جاری ربات‌ها می‌توانند از طریق شبکه‌های اشتراک فایل، شبکه‌های نظیر به نظیر (p2p) و پیوست‌های ایمیل و سایت‌های آلوده منتشر شوند.
به‌کارگیری
کامپیوترها در یک بات نت وقتی که یک نرم‌افزار مخرب را اجرا می‌کنند، می‌توانند مشترک تصمیم بگیرند. آن‌ها با فریب دادن کاربران نسبت به ایجاد یک درایو با استفاده از دانلود کردن، بهره‌برداری از آسیب‌پذیری‌های web browser، یا از طریق فریب کاربران برای اجرای یک اسب تروجان که ممکن است از ضمیمه یک فایل بیاید، می‌توانند این کار را انجام دهند. این بدافزار به‌طور معمول ماژول‌ها را نصب خواهد کرد که باعث می‌شود کامپیوتر توسط اپراتور بات نت فرمان دهی و کنترل شود. یک تروجان بسته به چگونگی نوشته شدن آن، ممکن است خودش را حذف کند یا برای بروزرسانی و حفظ ماژول‌ها باقی بماند.
اهداف
بات‌نت‌ها می‌توانند فعالیت‌های مخربی از جمله spamming، انجام حملات DDoS، توزیع بدافزارها (مثل Trojan horses، ابزارهای جاسوسی و keyloggerها)، به سرقت بردن نرم‌افزارها، کشف و سرقت اطلاعات، سرقت هویت، دستکاری بازی‌های آنلاین و نظر سنجی‌ها، حملات phishing و کشف کامپیوترهای آسیب‌پذیر را انجام دهند.
اجزای یک بات‌نت
Bot
یک برنامه نرم‌افزاری (بدافزار) است که بر روی یک میزبان آسیب‌پذیر نصب می‌شود. این نرم‌افزار می‌تواند به روش‌های مختلف بر روی کامپیوتر میزبان نصب شود که از جمله آن‌ها می‌توان به مشاهده یک وب سایت آلوده اشاره نمود. ربات‌ها اغلب به نحوی پیکر بندی می‌شوند که هر بار که کامپیوتر قربانی روشن شود، ربات نیز فعال گردد.
Command and Control Infrastructure(C-C
اقداماتی که ربات‌ها انجام می‌دهند بر اساس فرمان‌هایی هستند که توسط botmaster و از طریق یک کانال کنترلی ارسال می‌شوند. ربات‌ها آسیب‌پذیری‌های سیستم‌های عامل یا برنامه‌های کاربردی نیستند؛ بلکه برنامه‌هایی هستند که برای نصب کردن backdoorهایی بر روی ماشین قربانی مورد استفاده قرار می‌گیرند. چیزی که ربات‌ها را از سایر بدافزارها متمایز می‌کند، کانال فرمان و کنترل است.
Botnet
یک بات‌نت، مجموعه‌ای از ربات هاست که به یک کانال کنترل و فرمان متصل شده‌اند. به عبارت بهتر شبکه‌ای از ربات‌ها که منتظر دریافت دستوری برای انجام فعالیت‌های مخرب هستند.
Botmaster or Botherder
کاربران مخربی هستند که با ارسال فرمان‌هایی برای انجام فعالیت‌های مخرب، ربات‌ها را کنترل می‌کنند. این کاربران اهداف مختلفی را دنبال می‌کنند.
Vulnerable Hosts
بات‌نت‌ها ماشین‌هایی در اینترنت هستند که توسط نرم‌افزار مخربی که توسط botmaster منتشر شده است، آلوده گردیده‌اند. این ماشین‌ها بعد از آلوده شدن تبدیل به "zombies" یا "slaves" می‌شوند و می‌توانند اهداف مخرب مختلفی را دنبال کنند.
مهم‌ترین جزء یک بات‌نت زیربنای C-C است که شامل ربات‌ها و یک واحد کنترل است که می‌تواند به صورت متمرکز یا غیر متمرکز باشد. Botmasterها از پروتکل‌های ارتباطی مختلفی برای برقراری ارتباط با slaveها و ارسال دستورات به آن‌ها استفاده می‌کنند. با توجه به این که کانال C-C عموما به عنوان تنها راه کنترل ربات‌ها محسوب می‌شود و کارایی بات‌نت وابسته به ارتباط پایدار با این کانال می‌باشد، معماری آن می‌تواند تعیین‌کننده میزان مقاومت (robustness)، پایداری (stability) و زمان واکنش (reaction time) آن باشد. در حالت کلی ربات‌ها به دو دسته متمرکز و غیر متمرکز تقسیم می‌شوند.
چرخه حیات بات‌نت
چرخه حیات یک بات‌نت شامل مراحل زیر می‌باشد:
Initial infection
در این فاز یک میزبان آلوده می‌شود و به عنوان عضوی از یک شبکه رباتی در می‌آید.
Secondary injection
این فاز نیازمند آن است که فاز اول به صورت موفقیت‌آمیز انجام شده باشد. در این فاز میزبان آلوده شده، برنامه‌ای را اجرا می‌کند که در پایگاه داده یک شبکه مشخص، باینری‌های بدافزار را جستجو می‌کند. زمانی که این باینری‌ها دانلود و اجرا شدند، میزبان آلوده شده، تبدیل به یک ربات واقعی می‌شود. دانلود کردن باینری‌های ربات‌ها معمولا توسط پروتکل‌های FTP, HTTP و P2P انجام می‌شود.
Connection or Rally
در این مرحله بایستی ربات جدید به یک کانال کنترل و فرمان متصل شود تا به روز رسانی‌ها و دستورالعمل‌ها را دریافت نماید. به برقراری ارتباط ربات با کانال فرمان و کنترل، Rally نیز گفته می‌شود. در واقع هر بار که میزبان restart می‌شود بایستی این فاز مجددا انجام شود تا از اتصال و آماده به کار بودن ربات، اطمینان حاصل شود؛ بنابراین فاز اتصال، چندین بار در طول حیات یک ربات اتفاق می‌افتد. با توجه به این که ربات‌ها باید با سرورهای C-C ارتباط برقرار کنند، در این فاز بسیار آسیب پذیرند. ربات‌ها معمولا به صورت پیش‌فرض ارتباطی را با سرورهای C-C برقرار می‌کنند که این ویژگی می‌تواند منجر به این شود که مکانیزم‌هایی برای تشخیص الگوهای ترافیکی ایجاد شوند که می‌توانند در نهایت منجر به کشف اجزای یک شبکه رباتی و حتی سرورهای C-C گردند.
Malicious activities
پس از برقراری ارتباط با کانال فرمان و کنترل، ربات منتظر دریافت دستورات می‌شود تا فعالیت‌های مخربی را انجام دهد. در این فاز تبادل پیام‌ها با شدت بیشتری انجام می‌گیرد به گونه‌ای که در یک دوره زمانی کوتاه تعداد زیادی پیام مبادله می‌شوند. البته لازم است ذکر شود که ترافیک C-C حجم زیادی ندارد و منجر به تاخیر بالای شبکه نمی‌شود؛ بنابراین تکنیک‌های مبتنی بر بی‌نظمی نمی‌توانند ترافیک C-C را تشخیص دهند.
Maintanance and upgrading
برای این که یک botmaster بتواند ارتش zombieهای خود را حفظ نماید اجرای این فاز الزامیست. ممکن است که botmaster احتیاج داشته باشد که کدها را به دلایلی اعم از دور زدن تکنیک‌های تشخیص، اضافه کردن ویژگی‌های جدید یا تغییر دادن سرور C-C به روزرسانی کند. این مرحله معمولا به عنوان یکی از مراحل آسیب‌پذیر در نظر گرفته می‌شود چرا که botmasterها معمولا تلاش می‌کنند تا به روز رسانی‌ها را خیلی سریع انجام دهند و این می‌تواند منجر به الگوهای مشخص رفتاری شود که با استفاده از آن‌ها می‌توان ترافیک ربات‌ها را تشخیص داد. پس از این که ربات‌ها به روز شدند، باید ارتباطات جدیدی را با سرور C-C برقرار نمایند.
سازمان
در حالی که بات نت اغلب بعد از بدافزارها که آن‌ها را تولید می‌کنند نامیده می‌شوند؛ بات نت‌های متعدد به‌طور معمول از همان بدافزارها استفاده می‌کنند، اما توسط نهادهای جنایی اداره می‌شود. عبارت بات نت برای اشاره به هر گروهی از کامپیوترها مثل بات‌های IRC استفاده می‌شود، اما این عبارت عموما برای اشاره به گروهی از کامپیوترها (که کامپیوترهای zombie خوانده می‌شوند) که توسط نرم‌افزارهای مخرب در حال اجرا به کار گرفته شده‌اند استفاده می‌شود.موسس یک بات نت (به عنوان چوپان بات یا رئیس بات شناخته می‌شود) معمولا از طریق IRC و اغلب برای مقاصد جنایی می‌تواند گروه را از راه دور کنترل کند. سرور به عنوان سرور فرمان و کنترل (C-C) شناخته می‌شود. اگر چه نادر است، بیشتر اپراتورهای بات نت با تجربه‌تر پروتکل‌های فرمان را از ابتدا برنامه‌نویسی می‌کنند. این پروتکل‌ها شامل یک برنامه سرویس دهنده، یک برنامه سرویس گیرنده برای عملیات و برنامه‌ای که برای مشتری بر روی دستگاه قربانی تعبیه شده‌است. این‌ها با استفاده از یک روش رمزنگاری منحصربه‌فرد برای پنهان‌سازی و حفاظت در برابر تشخیص یا نفوذ به بات نت، بر روی اینترنت با یکدیگر ارتباط برقرار می‌کنند.یک بات به‌طور معمول مخفی اجرا می‌شود و از یک کانال مخفی (RFC 1452 (IRC) استاندارد، توییتر یا IM) با سرور C-C ارتباط برقرار می‌کند. به‌طور کلی، خرابکار سیستم‌های متعدد را با استفاده از ابزار مختلف (سوء استفاده، سرریزی‌های بافر و …؛ همچنین نگاه کنید به RPC) به خطر می‌اندازد. بات‌های جدیدتر می‌توانند به‌طور خودکار محیط خود را اسکن کنند و با استفاده از آسیب‌پذیری‌ها و کلمات عبور ضعیف خود را منتشر کنند. یک بات از طریق آسیب‌پذیری‌های بیشتر می‌تواند اسکن و منتشر شود و برای جامعه کنترل‌کننده بات نت باارزش‌تر می‌شود. روند سرقت منابع محاسباتی به عنوان یک نتیجه از یک سیستم که به بات نت پیوسته است، گاهی اوقات به عنوان "scrumping" اشاره دارد.سرورهای بات نت به‌طور معمول با سرورهای بات نت دیگر در ارتباط هستند، به‌طوری‌که یک گروه ممکن است شامل ۲۰ یا تعداد بیشتری ماشین‌های متصل خصوصی با سرعت بالا به عنوان سرور باشد که از یکدیگر جدا هستند و این‌ها با یکدیگر ارتباط برقرار می‌کنند تا افزونگی بیشتر شود. جوامع بات نت واقعی معمولا شامل یک یا چندین کنترل‌کننده هستند که به ندرت سلسله مراتب فرماندهی را بسیار توسعه داده‌اند؛ آن‌ها به ارتباطات نظیر به نظیر خصوصی تکیه می‌کنند. معماری بات نت در طول زمان تکامل یافته‌است و همه بات نت‌ها از یک توپولوژی برای کنترل و فرمان استفاده نمی‌کنند. توپولوژی پیشرفته نسبت به خاموش کردن، شمارش یا کشف انعطاف پذیرتر است. به هر حال، بعضی از توپولوژی‌ها قابلیت عرضه به بازار را به اشخاص ثالث محدود می‌کنند. توپولوژی‌های معمول بات نت ستاره‌ای، چند سرویس دهنده‌ای، سلسله مراتبی و تصادفی هستند.برای خنثی کردن تشخیص، برخی از بات نت‌ها در حال افزایش تدریجی در اندازه هستند. در سال ۲۰۰۶، متوسط اندازه یک شبکه ۲۰۰۰۰ کامپیوتر تخمین زده شده بود، هر چند شبکه‌های بزرگتر به کار ادامه دادند.
طرح‌های معماری
می‌توان کانال فرمان و کنترل را بر اساس معماری خاص و مدهای عملکردی آن به چند گروه تقسیم نمود:
C-C متمرکز
دیدگاه متمرکز مشابه با مدل شبکه کلاسیک کلاینت- سرور است. در این معماری، همه ربات‌ها ارتباط خود را با یک یا چند نقطه ارتباطی ایجاد می‌نمایند که این نقاط عمدتا سرورهای C-C هستند.
مزیت این روش زمان سریع واکنش و سازماندهی خوب آن است. مشکل اصلی این روش آن است که سرور C-C می‌تواند به عنوان نقطه شکست شبکه رباتی باشد. یعنی در صورتی که یک شبکه رباتی کشف شود به راحتی می‌توان با قطع کردن ارتباط همه ربات‌های آن شبکه با این سرور، کل آن را از کار انداخت.
پروتکل‌های اصلی مورد استفاده در این معماری، Internet Relay Chat (IRC) و HyperText Transfer Protocol (HTTP) می‌باشند.
مزیت‌های استفاده از پروتکل IRC عبارتند از:
امکان برقراری ارتباط multicast و هم چنین ارتباط unicast خصوصی بین دو عضو مشخص که در نتیجه امکان مدیریت سریع و راحت شبکه رباتی را برای botmaster فراهم می‌کند.
چندین پیاده‌سازی باز از این پروتکل وجود دارد که botmaster به راحتی می‌تواند از آن‌ها برای اهداف مختلف خود استفاده نماید.
ویژگی‌هایی مثل افزونگی (redundancy)، مقیاس‌پذیری (scalabilit) و قابلیت تغییر (versatility) که امکان استفاده مجدد از کدها را برای ربات‌ها و هم چنین ایجاد ربات‌های جدید فراهم می‌نماید.
محدودیت‌های استفاده از پروتکل IRC عبارتند از:
با توجه به این که ترافیک IRC در شبکه‌ها به ندرت استفاده می‌شود، تشخیص دادن و بلاک کردن ترافیک ربات‌هایی که از این پروتکل استفاده می‌کنند به سادگی امکان‌پذیر است. برای حل این مشکل مدیران شبکه‌های رباتی از پروتکل HTTP که رایج بوده و در اکثر شبکه‌ها مجاز محسوب می‌شود، استفاده می‌کنند.
C-C غیر متمرکز
شبکه‌های رباتی که از این معماری استفاده می‌کنند دارای انعطاف‌پذیری بالاتر و هم چنین مقاومت بیشتر بوده و امکان مدیریت کردن تعداد زیادی از ربات‌ها را دارا می‌باشند. تشخیص دادن و منحل کردن شبکه‌های رباتی که از این معماری استفاده می‌نمایند کار دشوارتری است؛ چرا که کشف کردن چندین ربات (حتی تعداد زیادی از آن‌ها) الزاما به معنای از دست رفتن کامل شبکه رباتی نیست چون در این معماری یک سرور مرکزی C-C وجود ندارد که بتوان با غیرفعال نمودن آن کل شبکه را از کار انداخت.
این شبکه‌های رباتی غیر متمرکز مبتنی بر انواع مختلف پروتکل‌های P2P هستند و به عنوان یک شبکه overlay کار می‌کنند. این شبکه‌ها را می‌توان به گروه‌های زیر تقسیم نمود:
Unstructured P2P overlays
کلاس گسترده overlayهای بدون ساختار، شامل توپولوژی‌های تصادفی با درجه‌های مختلف توزیع، مانند power-law یا شبکه‌های یکنواخت تصادفی می‌باشد. در این شبکه‌ها امکان مسیر یابی وجود ندارد. این شبکه‌ها flooding و random walk و هم چنین پروتکل‌های Gossip را نیز پشتیبانی می‌کنند.
Structured P2P Overlays
در این شبکه‌ها نگاشت (mapping) بین محتوا و مکان آن انجام می‌شود. در این گونه از شبکه‌ها از یک Distributed Hash Table (DHT) برای مسیر یابی استفاده می‌شود. از جمله الگوریتم‌های DHT که تاکنون پیاده‌سازی شده‌اند و در شبکه‌های P2P از آن‌ها استفاده شده‌است می‌توان به CAN, Chord Pastry, Tapestry و Kademila اشاره کرد. شبکه‌های رباتی مدرن از الگوریتم Kademila استفاده می‌کنند.
Superpeer overlays
در این شبکه‌ها همه گره‌ها برابر نیستند و زیر مجموعه کوچکی از آن‌ها به صورت اتوماتیک به عنوان سرورهای موقتی انتخاب می‌شوند. با توجه به این که این مدل آسیب‌پذیری بیشتری دارد ربات‌ها با احتمال کم‌تری از این مدل استفاده می‌کنند. ربات‌هایی که به این گروه تعلق دارند معمولا یک IP ی معتبر دارند و تحت دیوار آتش یا DHCP نمی‌باشند.
ساخت یک شبکه رباتی P2P دارای دو مرحله است:
انتخاب peerها: که به یکی از ۳ روش زیر انجام می‌شود:
Parasite: در این شبکه رباتی، ربات‌ها از میان میزبانان آسیب‌پذیر موجود در یک شبکه P2P موجود انتخاب می‌شوند. در این روش تعداد ربات‌های تحت امر یک botmaster محدود به تعداد میزبانان آسیب‌پذیر شبکه P2P موجود است.
Leeching: در این روش ربات‌ها به یک شبکه P2P موجود می‌پیوندند و برای ارتباطات C-C خود متکی به آن هستند.
Bot-only: در این روش یک شبکه رباتی، شبکه P2P خودش را می‌سازد که همه اعضای آن ربات هستند.
انجام عملیات مورد نیاز برای تبدیل میزبانان انتخاب شده به اعضای یک شبکه رباتی
C-C ترکیبی
معماری ترکیبی مشخصه‌های شبکه‌های رباتی متمرکز و غیر متمرکز را در کنار هم مورد استفاده قرار می‌دهد. ربات‌هایی که متعلق به یک شبکه رباتی P2P ترکیبی هستند، به دو گروه تقسیم می‌شوند:
ربات‌های سرویس دهنده (Servant Bots)
این ربات‌ها هم به عنوان مشتری و هم سرور عمل می‌کنند. این ربات‌ها با آدرس‌هایIP ی ایستا و قابل مسیر یابی پیکربندی می‌شوند.
ربات‌های مشتری (Client Bots)
این ربات‌ها هیچ ارتباط ورودی را نمی‌پذیرند و با آدرس‌های IPی پویای مشخص شده یا با آدرس‌های غیرقابل مسیریابی پیکر بندی شده‌اند. آن‌ها هم چنین می‌توانند بدون ارتباط با اینترنت پشت دیوارهای آتش قرار بگیرند.
در این روش ادرس‌های IPی ربات‌های servant در اختیار همه ربات‌های client قرار می‌گیرد. ربات‌های servant بر روی یک پورت مشخص گوش می‌کنند و برای ارتباطات خود از یک کلید رمزنگاری متقارن که خودشان تولید می‌کنند، استفاده می‌نمایند. همه ربات‌ها بایستی به صورت دوره‌ای به ربات‌های موجود در لیست خود متصل شوند و دستورات ارسال شده توسط botmaster را دریافت نموده و آن‌ها را اجرا کنند. در صورتی که یک ربات دستوری را دریافت کند که قبلا ندیده است (!) آن را به سرعت برای همه ربات‌های servant موجود در لیست خود می‌فرستد.
C-C تصادفی
این روش تا به امروز در هیچ رباتی مورد استفاده قرار نگرفته‌است. در این روش هیچ‌کدام از ربات‌ها با یکدیگر یا با botmaster ارتباط برقرار نمی‌کنند و منتظر می‌مانند تا وی با آنان ارتباط برقرار نماید. برای انجام یک حمله، botmaster شبکه را برای یافتن zombieها جستجو می‌کند و دستورات خود را به آن‌ها می‌فرستد. مزیت این روش آن است که پیاده‌سازی آن ساده است و با توجه به نبودن ارتباط رایج بین ربات و botmaster تشخیص دادن آن دشوارتر خواهد بود. با توجه به این که این روش نیازمند اسکن کردن شبکه است، مسائلی در مورد مقیاس‌پذیری و مشکلات هماهنگ‌سازی حمله مطرح می‌گردند.
تشکیل و بهره‌برداری
این مثال نشان می‌دهد چگونه یک بات نت ایجاد می‌شود و برای ارسال هرزنامه به ایمیل استفاده می‌شود.
چگونه یک بات نت کار می‌کند
۱- یک اپراتور بات نت، ویروس‌ها یا کرم‌ها را به کامپیوترهای آلوده کاربران عادی می‌فرستد که دنباله آن یک برنامه مخرب است.۲- بات از کامپیوتر آلوده به سرویس دهنده فرمان و کنترل خاص گزارش می‌دهد.3- spammer سرویس‌های بات نت را از اپراتور می‌خرد.4- spammer پیام‌های اسپم را برای اپراتور فراهم می‌کند، که ماشین‌های در معرض خطر را از طریق کنترل پنل روی وب سرور آموزش می‌دهد، و باعث می‌شود پیام‌های اسپم به آن‌ها فرستاده شود.بات نت‌ها برای اهداف مختلف مورد استفاده قرار می‌گیرند، شامل حملات حمله محروم‌سازی از سرویس سوء استفاده از SMTP mail relays برای اسپم (ربات جفنگ‌نگار را ببینید)، حیله کلیک کردن، spamdexing و سرقت شماره‌های سریال کاربردها، شناسه‌های ورود به سیستم و اطلاعات مالی از قبیل شماره‌های کارت‌های اعتباری.
انواع حملات
در حملات denail-of-service توزیعی، تعداد زیادی درخواست در حد ممکن از طرف چندین سیستم به یک کامپیوتر یا سرویس تکی در اینترنت ارائه می‌شود، سربار زیادی برایش ایجاد می‌کنند و از پاسخ دادن به در خواست‌های قانونی جلوگیری می‌کنند. یک مثال حمله به یک شماره تلفن قربانی است. قربانی با تماس‌های تلفنی بات که قصد دارد به اینترنت متصل شود، بمباران می‌شود.
روش‌های مقابله
اقداماتی که تا به امروز برای مقابله با فعالیت‌ها مخرب ربات‌ها به ویژه در مقابل حملات DDoS و spamming انجام شده‌است را می‌توان به دو گروه واکنشی (reactive) و جلوگیری (preventive) تقسیم نمود.
روش‌های واکنشی رایج‌ترین روش‌ها هستند. استراتژی مورد استفاده در این روش‌ها آن است که ابتدا فعالیت‌های مخرب تشخیص داده شوند و سپس اقدام مناسب برای کاهش ترافیک مخرب به مقداری قابل قبول، انجام گیرد. این روش‌ها دارای دو عیب عمده می‌باشند:
نیاز به ساخت یک زیربنای کامل با قدرت پردازشی قابل توجه و هم چنین فضای ذخیره‌سازی داده برای آنالیز حجم عظیمی از اطلاعات جمع‌آوری شده
با توجه به این که حمله در زمان تشخیص هم چنان در حال اجرا است، کاربران عادی و ISPها، حداقل از بخشی از تاثیرات منفی آن تا انجام واکنش مناسب، رنج خواهند برد.
روش‌های جلوگیری روش‌هایی هستند که سعی می‌کنند احتمال انجام فعالیت‌های مخرب را تا حد ممکن کاهش دهند. این تکنیک‌ها می‌توانند شامل افزایش منابع کاربران یا ایجاد تغییر در زیربنای شبکه به گونه‌ای باشد که کاربران را وادار به احراز هویت کند. هرچند که در مقابله با این تکنیک‌ها، مهاجمان نیز می‌توانند منابع و ابزارهای خود را بهبود بخشند. برای این که این روش‌ها بتوانند موثر باشند، تشخیص دادن ریشه اصلی مشکل الزامیست. به عبارت بهتر بایستی تعیین نمود که چه چیزی تشخیص دادن یک حمله یا پیاده‌سازی فعالیت‌های مخرب را امکان‌پذیر می‌کند.
مقابله با هرزنامه‌ها
کرم رایانه‌ای
بات‌نت
E-mail address harvesting
اسپم
List poisoning
ربات جفنگ‌نگار
Spamtrap
Timeline of notable computer viruses and worms
زامبی (رایانه)