موضوع مقاله: بات‌نت | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # بات‌نت | مقدمه: بات‌نت (به انگلیسی: botnet) یعنی گروهی از رایانه‌ها یا دستگاه‌هایی که به‌طور پنهانی آلوده به یک نوع نرم‌افزار مخرب شده‌اند و یک هکر آن‌ها را از راه دور کنترل می‌کند. | ## بخش 1: بات‌نت | این دستگاه‌ها بدون اطلاع صاحبانشان برای انجام کارهایی مثل حمله به سایت‌ها، فرستادن هرزنامه یا دزدیدن اطلاعات به کار گرفته می‌شوند. بات‌نت‌ها با در اختیار گرفتن مجموعه‌ای از کامپیوترها که بات (bot) نامیده می‌شوند، تشکیل می‌شوند. به عبارت بهتر، ربات‌ها کدهای مخربی هستند که بر روی کامپیوترهای میزبان اجرا می‌شوند تا امکان کنترل نمودن آن‌ها از راه دور را برای بات‌گردان‌ها فراهم نمایند و آن‌ها بتوانند این مجموعه را وادار به انجام فعالیت‌های مختلف نمایند. در این سیستم از بات‌نت‌ها با هدف کنترل فعل و انفعالات در اتاق‌های گفتگوی IRC استفاده می‌شد. این ربات‌ها می‌توانستند دستورها ساده را اجرا کنند، بازی‌های ساده و سرویس‌های مختلف را به کاربران گفتگو پیشنهاد دهند و اطلاعاتی در مورد سیستم عامل‌ها، گزارش‌های ورود به سیستم، آدرس‌های ایمیل و مانند آن‌ها را استخراج نمایند. پس از آن ربات‌های IRC مختلفی با اهداف مخرب، اعم از حمله به کاربران IRC یا همهٔ سرورها، ایجاد شدند. ربات‌های جدید از مکانیزم‌های پیچیده‌ای برای ارتباط با بات‌گردان استفاده می‌کنند که این مکانیزم‌ها از پروتکل‌ها و تکنیک‌های متعددی استفاده می‌کنند که منجر به پیچیده شدن روزافزون این ربات‌ها و سخت‌تر شدن تشخیص و مقابله با آن‌ها می‌گردد. آن‌ها می‌توانند مانند کرم‌ها منتشر شوند، مثل یک ویروس مخفی بمانند و حملات گسترده و سازمان یافته‌ای را شکل دهند. نسل جاری ربات‌ها می‌توانند از طریق شبکه‌های اشتراک فایل، شبکه‌های نظیر به نظیر (p2p) و پیوست‌های ایمیل و سایت‌های آلوده منتشر شوند. به‌کارگیری کامپیوترها در یک بات نت وقتی که یک نرم‌افزار مخرب را اجرا می‌کنند، می‌توانند مشترک تصمیم بگیرند. آن‌ها با فریب دادن کاربران نسبت به ایجاد یک درایو با استفاده از دانلود کردن، بهره‌برداری از آسیب‌پذیری‌های مرورگر وب، یا از طریق فریب کاربران برای اجرای یک اسب تروجان که ممکن است از ضمیمه یک فایل بیاید، می‌توانند این کار را انجام دهند. این بدافزار به‌طور معمول ماژول‌ها را نصب خواهد کرد که باعث می‌شود کامپیوتر توسط اپراتور بات نت فرمان دهی و کنترل شود. یک تروجان بسته به چگونگی نوشته شدن آن، ممکن است خودش را حذف کند یا برای بروزرسانی و حفظ ماژول‌ها باقی بماند. اجزای یک بات‌نت Bot یک برنامهٔ نرم‌افزاری (بدافزار) است که بر روی یک میزبان آسیب‌پذیر نصب می‌شود. این نرم‌افزار می‌تواند به روش‌های مختلف بر روی کامپیوتر میزبان نصب شود که از جملهٔ آن‌ها می‌توان به مشاهدهٔ یک وب‌سایت آلوده اشاره نمود. ربات‌ها اغلب به نحوی پیکربندی می‌شوند که هر بار که کامپیوتر قربانی روشن شود، ربات نیز فعال گردد. ربات‌ها، آسیب‌پذیری‌های سیستم‌های عامل یا برنامه‌های کاربردی نیستند؛ بلکه برنامه‌هایی هستند که برای نصب کردن backdoorهایی بر روی ماشین قربانی مورد استفاده قرار می‌گیرند. Botnet یک بات‌نت، مجموعه‌ای از ربات‌ها است که به یک کانال کنترل و فرمان متصل شده‌اند. به عبارت بهتر شبکه‌ای از ربات‌ها که منتظر دریافت دستوری برای انجام فعالیت‌های مخرب هستند. مهم‌ترین جزء یک بات‌نت زیربنای C&C است که شامل ربات‌ها و یک واحد کنترل است که می‌تواند به صورت متمرکز یا غیر متمرکز باشد.Botmasterها از پروتکل‌های ارتباطی مختلفی برای برقراری ارتباط با slaveها و ارسال دستورها به آن‌ها استفاده می‌کنند. در این فاز میزبان آلوده شده، برنامه‌ای را اجرا می‌کند که در پایگاه دادهٔ یک شبکهٔ مشخص، باینری‌های بدافزار را جستجو می‌کند. زمانی که این باینری‌ها دانلود و اجرا شدند، میزبان آلوده‌شده، تبدیل به یک ربات واقعی می‌شود. در واقع هر بار که میزبان restart می‌شود، بایستی این فاز مجدداً انجام شود تا از اتصال و آماده به کار بودن ربات، اطمینان حاصل شود؛ بنابراین فاز اتصال، چندین بار در طول حیات یک ربات اتفاق می‌افتد. | ## بخش 2: بات‌نت | با توجه به این که ربات‌ها باید با سرورهای C&C ارتباط برقرار کنند، در این فاز بسیار آسیب‌پذیرند. ربات‌ها معمولاً به صورت پیش‌فرض ارتباطی را با سرورهای C&C برقرار می‌کنند که این ویژگی می‌تواند منجر به این شود که مکانیزم‌هایی برای تشخیص الگوهای ترافیکی ایجاد شوند که می‌توانند در نهایت منجر به کشف اجزای یک شبکهٔ رباتی و حتی سرورهای C&C گردند. در این فاز تبادل پیام‌ها با شدت بیشتری انجام می‌گیرد؛ به‌گونه‌ای که در یک دورهٔ زمانی کوتاه تعداد زیادی پیام مبادله می‌شوند. البته لازم است ذکر شود که ترافیک C&C حجم زیادی ندارد و منجر به تأخیر بالای شبکه نمی‌شود؛ بنابراین تکنیک‌های مبتنی بر بی‌نظمی نمی‌توانند ترافیک C&C را تشخیص دهند. ممکن است که botmaster احتیاج داشته باشد که کدها را به دلایلی اعم از دور زدن تکنیک‌های تشخیص، اضافه کردن ویژگی‌های جدید یا تغییر دادن سرور C&C به روزرسانی کند. این مرحله معمولاً به عنوان یکی از مراحل آسیب‌پذیر در نظر گرفته می‌شود چرا که botmasterها معمولاً تلاش می‌کنند تا به روز رسانی‌ها را خیلی سریع انجام دهند و این می‌تواند منجر به الگوهای مشخص رفتاری شود که با استفاده از آن‌ها می‌توان ترافیک ربات‌ها را تشخیص داد. پس از این که ربات‌ها به روز شدند، باید ارتباطات جدیدی را با سرور C&C برقرار نمایند. عبارت بات‌نت برای اشاره به هر گروهی از کامپیوترها مثل بات‌های IRC استفاده می‌شود، اما این عبارت عموماً برای اشاره به گروهی از کامپیوترها (که کامپیوترهای zombie خوانده می‌شوند) که توسط نرم‌افزارهای مخرب در حال اجرا به کار گرفته شده‌اند، استفاده می‌شود.مؤسس یک بات‌نت (به عنوان چوپان بات یا رئیس بات شناخته می‌شود) معمولاً از طریق IRC و اغلب برای مقاصد جنایی می‌تواند گروه را از راه دور کنترل کند. اگر چه نادر است، بیشتر اپراتورهای بات‌نت باتجربه‌تر پروتکل‌های فرمان را از ابتدا برنامه‌نویسی می‌کنند. این پروتکل‌ها شامل یک برنامه سرویس دهنده، یک برنامه سرویس گیرنده برای عملیات و برنامه‌ای که برای مشتری بر روی دستگاه قربانی تعبیه شده‌است. این‌ها با استفاده از یک روش رمزنگاری منحصربه‌فرد برای پنهان‌سازی و حفاظت در برابر تشخیص یا نفوذ به بات‌نت، بر روی اینترنت با یکدیگر ارتباط برقرار می‌کنند.یک بات به‌طور معمول مخفی اجرا می‌شود و از یک کانال مخفی (RFC 1452 (IRC) استاندارد، توییتر یا IM) با سرور C&C ارتباط برقرار می‌کند. به‌طور کلی، خرابکار سیستم‌های متعدد را با استفاده از ابزار مختلف (سوء استفاده، سرریزی‌های بافر و …. بات‌های جدیدتر می‌توانند به‌طور خودکار محیط خود را اسکن کنند و با استفاده از آسیب‌پذیری‌ها و کلمات عبور ضعیف خود را منتشر کنند. یک بات از طریق آسیب‌پذیری‌های بیشتر می‌تواند اسکن و منتشر شود و برای جامعه کنترل‌کننده بات‌نت باارزش‌تر می‌شود. به‌طوری که یک گروه ممکن است شامل ۲۰ یا تعداد بیشتری ماشین‌های متصل خصوصی با سرعت بالا به عنوان سرور باشد که از یکدیگر جدا هستند و این‌ها با یکدیگر ارتباط برقرار می‌کنند تا افزونگی بیشتر شود. جوامع بات‌نت واقعی معمولاً شامل یک یا چندین کنترل‌کننده هستند که به ندرت سلسله مراتب فرماندهی را بسیار توسعه داده‌اند؛ آن‌ها به ارتباطات نظیر به نظیر خصوصی تکیه می‌کنند.معماری بات‌نت در طول زمان تکامل یافته‌است و همه بات‌نت‌ها از یک توپولوژی برای کنترل و فرمان استفاده نمی‌کنند. توپولوژی‌های معمول بات‌نت ستاره‌ای، چند سرویس‌دهنده‌ای، سلسله مراتبی و تصادفی هستند.برای خنثی کردن تشخیص، برخی از بات‌نت‌ها، در حال افزایش تدریجی در اندازه هستند. در سال ۲۰۰۶، متوسط اندازه یک شبکه ۲۰۰۰۰ کامپیوتر تخمین زده شده بود؛ هر چند شبکه‌های بزرگ‌تر به کار ادامه دادند. طرح‌های معماری می‌توان کانال فرمان و کنترل را بر اساس معماری خاص و مدهای عملکردی آن به چند گروه تقسیم نمود: C&C متمرکز دیدگاه متمرکز مشابه با مدل شبکهٔ کلاسیک کلاینت- سرور است. در این معماری، همهٔ ربات‌ها ارتباط خود را با یک یا چند نقطهٔ ارتباطی ایجاد می‌نمایند که این نقاط عمدتاً سرورهای C&C هستند. مشکل اصلی این روش آن است که سرور C&C می‌تواند به عنوان نقطهٔ شکست شبکهٔ رباتی باشد؛ یعنی در صورتی که یک شبکهٔ رباتی کشف شود به راحتی می‌توان با قطع کردن ارتباط همهٔ ربات‌های آن شبکه با این سرور، کل آن را از کار انداخت. چندین پیاده‌سازی باز از این پروتکل وجود دارد که botmaster به راحتی می‌تواند از آن‌ها برای اهداف مختلف خود استفاده نماید. محدودیت‌های استفاده از پروتکل IRC عبارتند از: با توجه به این که ترافیک IRC در شبکه‌ها به ندرت استفاده می‌شود، تشخیص دادن و بلاک کردن ترافیک ربات‌هایی که از این پروتکل استفاده می‌کنند به سادگی امکان‌پذیر است. | ## بخش 3: بات‌نت | برای حل این مشکل مدیران شبکه‌های رباتی از پروتکل HTTP که رایج بوده و در اکثر شبکه‌ها مجاز محسوب می‌شود، استفاده می‌کنند. C&C غیر متمرکز شبکه‌های رباتی که از این معماری استفاده می‌کنند، دارای انعطاف‌پذیری بالاتر و همچنین مقاومت بیشتر بوده و امکان مدیریت کردن تعداد زیادی از ربات‌ها را دارا می‌باشند. تشخیص دادن و منحل کردن شبکه‌های رباتی که از این معماری استفاده می‌نمایند، کار دشوارتری است؛ چرا که کشف کردن چندین ربات (حتی تعداد زیادی از آن‌ها) الزاماً به معنای از دست رفتن کامل شبکهٔ رباتی نیست؛ چون در این معماری یک سرور مرکزی C&C وجود ندارد که بتوان با غیرفعال نمودن آن کل شبکه را از کار انداخت. با توجه به این که این مدل آسیب‌پذیری بیشتری دارد ربات‌ها با احتمال کمتری از این مدل استفاده می‌کنند. ربات‌هایی که به این گروه تعلق دارند، معمولاً یک IP معتبر دارند و تحت دیوار آتش یا DHCP نمی‌باشند. ساخت یک شبکهٔ رباتی P2P دارای دو مرحله است: انتخاب peerها: که به یکی از ۳ روش زیر انجام می‌شود: Parasite: در این شبکهٔ رباتی، ربات‌ها از میان میزبانان آسیب‌پذیر موجود در یک شبکهٔ P2P، : انتخاب می‌شوند. انجام عملیات مورد نیاز برای تبدیل میزبانان انتخاب‌شده به اعضای یک شبکهٔ رباتی C&C ترکیبی معماری ترکیبی مشخصه‌های شبکه‌های رباتی متمرکز و غیرمتمرکز را در کنار هم مورد استفاده قرار می‌دهد. ربات‌هایی که متعلق به یک شبکهٔ رباتی P2P ترکیبی هستند، به دو گروه تقسیم می‌شوند: ربات‌های سرویس دهنده (Servant Bots) این ربات‌ها هم به عنوان مشتری و هم سرور عمل می‌کنند. ربات‌های مشتری (Client Bots) این ربات‌ها هیچ ارتباط ورودی را نمی‌پذیرند و با آدرس‌های IPی پویای مشخص شده یا با آدرس‌های غیرقابل مسیریابی پیکربندی شده‌اند. ربات‌های servant بر روی یک پورت مشخص گوش می‌کنند و برای ارتباطات خود از یک کلید رمزنگاری متقارن که خودشان تولید می‌کنند، استفاده می‌نمایند. همهٔ ربات‌ها بایستی به صورت دوره‌ای به ربات‌های موجود در لیست خود متصل شوند و دستورها ارسال شده توسط botmaster را دریافت نموده و آن‌ها را اجرا کنند. در صورتی که یک ربات دستوری را دریافت کند که قبلاً ندیده‌است (!) آن را به سرعت برای همهٔ ربات‌های servant موجود در لیست خود می‌فرستد. در این روش هیچ‌کدام از ربات‌ها با یکدیگر یا با botmaster ارتباط برقرار نمی‌کنند و منتظر می‌مانند تا وی با آنان ارتباط برقرار نماید. مزیت این روش آن است که پیاده‌سازی آن ساده است و با توجه به نبودن ارتباط رایج بین ربات و botmaster، تشخیص دادن آن دشوارتر خواهد بود. با توجه به این که این روش نیازمند اسکن کردن شبکه است، مسائلی در مورد مقیاس‌پذیری و مشکلات هماهنگ‌سازی حمله مطرح می‌گردند. تشکیل و بهره‌برداری این مثال نشان می‌دهد چگونه یک بات‌نت ایجاد می‌شود و برای ارسال هرزنامه به ایمیل استفاده می‌شود. ۴- spammer پیام‌های اسپم را برای اپراتور فراهم می‌کند که ماشین‌های در معرض خطر را از طریق کنترل پنل روی وب سرور آموزش می‌دهد و باعث می‌شود پیام‌های اسپم به آن‌ها فرستاده شوند. انواع حملات در حملات denail-of-service توزیعی، تعداد زیادی درخواست در حد ممکن از طرف چندین سیستم به یک کامپیوتر یا سرویس تکی در اینترنت ارائه می‌شود و سربار زیادی برایش ایجاد می‌کنند و از پاسخ دادن به درخواست‌های قانونی جلوگیری می‌کنند. استراتژی مورد استفاده در این روش‌ها آن است که ابتدا فعالیت‌های مخرب تشخیص داده شوند و سپس اقدام مناسب برای کاهش ترافیک مخرب به مقداری قابل قبول، انجام گیرد. این روش‌ها دارای دو عیب عمده می‌باشند: نیاز به ساخت یک زیربنای کامل با قدرت پردازشی قابل توجه و همچنین فضای ذخیره‌سازی داده برای آنالیز حجم عظیمی از اطلاعات جمع‌آوری شده با توجه به این که حمله در زمان تشخیص همچنان در حال اجرا است، کاربران عادی و ISPها، حداقل از بخشی از تأثیرات منفی آن تا انجام واکنش مناسب، رنج خواهند برد. روش‌های جلوگیری روش‌هایی هستند که سعی می‌کنند احتمال انجام فعالیت‌های مخرب را تا حد ممکن کاهش دهند. برای این که این روش‌ها بتوانند مؤثر باشند، تشخیص دادن ریشهٔ اصلی مشکل الزامی است. | ## جمع‌بندی | به عبارت بهتر بایستی تعیین نمود که چه چیزی تشخیص دادن یک حمله یا پیاده‌سازی فعالیت‌های مخرب را امکان‌پذیر می‌کند.