امروزه برای بخش قابل توجهی از حملاتی که در مقیاس اینترنت صورت میگیرد، از باتنتها استفاده میشود. از این رو این نسل مدرن از بدافزارها از یک سو بسیار مورد توجه متخصصان امنیتی و مراکز تحقیقاتی میباشند و از سوی دیگر نیز به عنوان ابزاری مناسب مورد توجه خرابکاران اینترنتی قرار دارند. در این گزارش سعی شده است که ضمن معرفی اجمالی باتنت و انواع آن، چند روش شناسایی باتنتها بررسی شود و در پایان نیز ضمن ارایه یک دستهبندی از روشهای شناسایی باتنت به نقاط قوت وضعف هرکدام پرداخته شود.
بات نت از جمله جدیدترین نوع بدافزارها در مقیاس اینترنت میباشند که در سالهای اخیر بیشترین تهدیدات را متوجه سامانههای اینترنتی نمودهاند. بات، کامپیوتری آلودهشده به یک بدافزار است که بدون آگاهی و اراده کاربر و از راه دور توسط یک یا چند عامل انسانی کنترل میشود. به این عامل کنترلکننده، سرکرده گویند و گاهی سیستم آلوده را افسونشده نیز مینامند.
اولین بات به نام EggDrop در سال 1993 به وجود آمد که بر خلاف تصور عمومی از ماهیت بدافزاری باتها، برای مقاصدی چون بازیهای رایانهای تحت اینترنت تولید شد [1] اما متاسفانه امروزه بیشترین کاربرد باتها در مقاصد نادرست است. باتها در سه حوزه کاربرد دارند که عبارتند از:
به شبکهای از باتها که تحت کنترل یک سرکرده باشند و به صورت هماهنگ فرمانهای صادره از سوی وی را اجرا نمایند، باتنت گویند. گستره باتنتها میتواند تمام اینترنت را در بر بگیرد و تعداد اعضای آن هم از چند بات تا چندین هزار بات متفاوت است. یک گروه امداد رایانهای(CERT ) شبکهای از باتها را با حدود 100000 عضو شناسایی نموده است .
هسته ارتباطی باتها، کارسازی به نام "فرمان-کنترل" است که باتها فرمانهای اجرایی خود را از آن دریافت مینمایند. البته همچنان که در بخشهای بعدی به آن پرداخته خواهد شد، این معماری مبتنی بر مدل کارخواه- کارساز تنها معماری مرسوم در باتنتها نیست ولی عمومیترین معماری است.
هرچند ممکن است ویروسها، کرمها، اسبهای تروا و بمبهای منطقی شباهتهایی با هم داشته باشند که نتوان به درستی آنها را از هم تفکیک کرد، ولی هرکدام از این دسته بدافزارها صفت بارز خاص خود را دارند. مثلا نام ویروس آمیخته با آلودهشدن فایلها است. هنگامی که نام کرم را میشنویم اولین چیزی که به ذهن متبادر میشود، ماهیت تکثیر شونده این بدافزار است. نام اسب تروا هم با "در پشتی" عجین است. مشخصه بارز باتنتها فارغ از نحوه عملکردشان، ماهیت توزیعشده و عملکرد گروهی آنهاست. همانند موارد فوق الذکر، نام باتنت همواره ارتشی از بدافزارها را در ذهن متبادر میکند که منتظر اجرای دستور از فرمانده خود میباشند. باتنتها بر خلاف دیگر بدافزارها، از یک دیگر استقلال کاری ندارند بلکه در کنار همکاری با هم به اهداف خود میرسند.
روشهای انتشار بدافزارها بسیار متنوع میباشند. بارگیری از طریق اینترنت، ضمیمههای آلوده پست الکترونیکی، وجود اشکال و ضعف امنیتی در سیستمعامل و ... پتانسیلهایی برای امکان انتشار بدافزارها فراهم میآورد. حتی بعضی از بدافزارها از چندین روش برای نفوذ در سیستم قربانی استفاده میکنند. باتنتها هم از این قاعده مستثنی نیستند. معمولا برای آلوده کردن یک سیستم یک نصبکننده را به یکی از روشهای فوق الذکر وارد سیستم قربانی میکنند و آن را اجرا مینمایند. این نصبکننده بعد از اجرا نسخه اصلی بات را بارگیری میکند و سپس آن را اجرا مینماید. بات بلافاصله به جستجوی کارساز فرمان- کنترل خود میپردازد و با اتصال به آن اعلام میدارد که آماده به خدمت است. به این ترتیب سیستم آلوده تبدیل به یک سیستم افسونشده میگردد. برای یافتن قربانیان دیگر رویکردهای متفاوتی وجود دارد که روشهای انتخاب تصادفی یکی از آنها است. انتخاب تصادفی قربانی گرچه باعث ایجاد توزیع مناسبی از قربانیها در شبکه میگردد (از دید منفی) ولی در برابر رویکردهای هدفمند کارایی کمتری دارد. بدافزارهای امروزی به جای انتشار تصادفی خود، از روشهای آگاهانهای استفاده میکنند. مثلا از لیست نشانیهای ایمیل دوستان قربانی استفاده میکنند، از لیست شبکههای اجتماعی که فرد در آن عضویت دارد استفاده میکنند و .... همچنین این نرمافزارها به جای پیدا کردن خدمات یا نرمافزارهای کاربردی آسیبپذیر، به دنبال کاربران آسیبپذیر میباشند و از همین روست که سیستمهای تشخیص و به داماندازی این بدافزارها به سمتی میروند که به جای تقلید رفتار یک خدمت آسیبپذیر، به تقلید رفتار یک کاربر آسیبپذیر بپردازند.
باتنتها با توجه به سازوکاری که برای فرمان- کنترل خود استفاده میکنند از دو معماری کلی استفاده میکنند. معماری متمرکز و نامتمرکز.
در معماری متمرکز که عمومیترین معماری نیز میباشد، یک کارگزار فرمان- کنترل وجود دارد و تمام باتها دستورات خود را از این کارگزار دریافت میکنند. حسن این معماری پیادهسازی آسان و امکان آرایشدهی سریع باتها است به این معنی که با ارسال دستورات در مدت زمان کوتاهی میتوان باتها را برای هدف خاصی آرایش داد. عیب اساسی این روش این است که اگر به دلیلی کارساز فرمان- کنترل از دسترس خارج شود، عملا باتنت از کار میافتد. دوم این که این روش به راحتی قابل شناسایی است. زیرا دستورات مشابه دادن به یک سری گره در شبکه و یا اتصال چندین گره از یک شبکه به یک سیستم خاص، شک سیستمهای تشخیص نفوذ (IDS ) را برخواهد انگیخت.
دو نوع باتنت در دسته معماری متمرکز قرار میگیرند که عبارتند از:
در معماری نامتمرکز خلاف روش قبلی کنترل مرکزی وجود ندارد بلکه باتها به صورت یک شبکه نظیر به نظیر با هم در تعامل میباشند. سرکرده دستورات خود را به یک یا چند بات ارسال میکند و با استفاده از قراردادهای نظیر به نظیر این دستورات در تمام باتنت منتشر میشود. حسن این روش است که تمام باتها به کارساز فرمان- کنترل وابسته نیستند. توزیع ترافیک در این باتنتها شناسایی آنها را دشوار کرده است. این باتنتها مقیاسپذیری بالایی دارند اما پیادهسازی آنها پیچیده و دشوار است. باتها به خاطر تاخیر در انتشار دستورات نمیتوانند به سرعت آرایش بگیرند. حالت خاصی هم از باتنتهای نظیر به نظیر موجود است که در آن هر بات فقط با یک بات دیگر در ارتباط است. در نتیجه گراف اتصال حاصل از این شبکه به صورت زنجیر است. این پیادهسازی گرچه از مدل کامل نظیر به نظیر سادهتر است ولی تاخیر انتشار در آن زیاد است و تضمینی نیز برای رسیدن پیام به همه باتها وجود ندارد زیرا این روش از این ضعف رنج میبرد که در صورت قطع شدن زنجیر بخشی از باتنت از دسترس خارج میگردد در نتیجه چنین ساختاری از استحکام مطلوبی برخوردار نیست.
به طور کلی روشهای شناسایی ترافیکهای مختلف شبکه از زمره چالشهای باز در حوزه کنترل ترافیک است. فراهمکنندگان سرویسهای اینترنت (ISP ) از منظر استفاده بهینه از پهنای باند، بسیار مشتاقند که ابزاری در اختیار داشته باشند که بتوانند انواع ترافیک موجود در شبکه خود را شناسایی کنند و اجازه عبور ترافیکهای ناخواسته را ندهند. متخصصان امنیت شبکه نیز به دنبال شناسایی ترافیکهای خطرناک مثلا ترافیک ناشی فعالیت یک نفوذگر یا انتشار یک کرم میباشند. اما همان گونه که گفته شد، این حوزه هنوز به بلوغ کافی نرسیده است. ترافیک ناشی از فعالیت یک باتنت هم به عنوان بخشی از ترافیک شبکه است. علاوه بر آن، ترافیک ناشی از یک باتنت بسیار شبیه ترافیک نرمال است و همین امر شناسایی آن را دشوارتر کرده است. روشهای گوناگونی برای شناسایی باتنتها ارایه شدهاند ولی هنوز جامعیت لازم را ندارند و میزان خطایشان بالاست. در ادامه به بررسی اجمالی چند روش شناسایی باتنتها میپردازیم و درپایان هم یک دستهبندی از روشهای شناسایی باتنت ارایه خواهد شد.
هیونسنگ چوی وهمکاران این ایده را دنبال کردهاند که مفهوم باتنت در قبال فعالیت جمعی تعدادی بات معنی پیدا میکند و باتها به صورت میزبانهایی مستقل عمل نمیکنند. به این ترتیب مشخصهای به نام فعالیت گروهی در بین باتها وجود دارد که به اعمالی گفته میشود که اجرای آنها در باتهای یک شبکه عمومیت دارد. کشف این مشخصه امکان تشخیص بات را فراهم میآورد.
برای یافتن مشخصه فعالیت گروهی در یک باتنت نخست باید چرخه حیات یک بات را بررسی نمود. همان گونه که قبلا هم به آن اشاره شد، چرخه حیات یک بات از سه مرحله تشکیل شده است.
در سه مرحله بالا نقش فعالیت گروهی بارز است اما بهترین مرحله برای شناسایی و جلوگیری از خرابکاری باتنت، مرحله دوم میباشد. زیرا هم از نظر زمانی طولانیتر است و هم فعالیت گروهی در آن برجستهتر میباشد. از جمله فعالیتهای گروهی پرس و جوهای DNS است. هر بات پس از نصب بر روی سیستم قربانی، تلاش خود را برای برقراری ارتباط با کارساز فرمان- کنترل آغاز میکند. اولین گام این ارتباط ارسال یک پرس و جوی DNS برای یافتن نشانی کارساز مربوطه است. از آنجا که برای جلوگیری از شناسایی این کارساز مرتباً نشانی آن تغییر میکند، باتها برای حفظ ارتباط خود ناچارند مرتبا نشانی کارساز خود را از DNS درخواست نمایند. در نتیجه کشف چنین وضعیتی در شبکه، باعث شناسایی باتنت خواهد شد. مشابه همین حالت در ارتباط باتها با کارساز فرمان- کنترل هم وجود دارد. باتها مرتباً در ارتباط با این کارساز میباشند و این ارتباط دایمی پتانسیلی جهت شناسایی باتنت به وجود میآورد. در حمله به یک قربانی مانند حمله از کاراندازی سرویس (DOS) هم نقش فعالیت گروهی کاملا آشکار است. شکل شماره 1 این موارد از فعالیتهای گروهی را نمایش میدهد
نکته قابل توجه این است که فعالیت گروهی مختص باتنتها نیست و در ترافیکهای طبیعی نیز این فعالیتهای به چشم میخورد. مثلا هنگامی که یک خبر بر روی یک وبگاه قرار میگیرد، مشتریان زیادی جهت مشاهده آن به کارساز مربوط متصل میشوند. این عمل دستهجمعی خود یک فعالیت گروهی است اما طبیعی است. پس مهمتر از تشخیص فعالیت گروهی در باتنتها، تفکیک آن از فعالیتهای گروهی طبیعی است.
روشی مبتنی بر تشخیص ناهنجاری ارایه نمودهاند که اساس آن بر شمارش بستههای کنترلی TCP مانند SYN ،FINS و ... است. با شنود مستمر از شبکه، در بازههای زمانی مشخص، چندتاییهایی متشکل از شماره IP ، تعداد بستههای SYN ارسالی و دریافتی ، تعداد بستههای Reset و .... تشکیل میشود و با تحلیل و بررسی آنها وجود باتنت تشخیص داده میشود. برای این منظور معیاری به صورت زیر تعریف میشود.
W=(S+F+R)/T
که در آنS تعداد بستههای SYN ,ACKSYN است،F تعداد بستههای FIN ، R تعداد بستههای RESET و T هم تعداد کل بستههای ارسالی و دریافتی یک میزبان در یک بازه زمانی مشخص است. به این معیار "وزنکاری TCP " گویند. بالا بودن درصد این معیار برای یک میزبان نشانه وجود رفتارهای نامتعارف در آن است. اعضای یک باتنت چه در هنگام هماهنگی و چه در هنگام حمله DOS ، وزنکاری بالایی دارند. در این روش نخست w برای هر میزبان محاسبه میشود و با توجه به مقصد و مبدأ بستههای ارسالی، میزبانها دستهبندی میشوند. وجود چندین میزبان باw بالا، نشانه وجود یک شبکه بات است. این نتایج این روش بر روی باتنتهای مبتنی بر IRC امیدوار کنندهتر بوده است.
اسدهان و همکاران رفتارهای تناوبی موجود در باتنتها را به عنوان نشانهای برای شناسایی این شبکهها در نظر گرفتهاند. اساس این مقاله بر این است که هر بات برای آگاهی از دستور جدید و با اعلام زنده بودن به صورت متناوب پیامهایی را در شبکه منتشر میکند. در نتیجه الگوی منظمی در ترافیک شبکه به وجود می آورد. کشف این الگوی منظم در ترافیک شبکه به شناسایی باتنت منتهی خواهد شد. در این مقاله با استفاده از تحلیل فوریه روی سیگنالی که حاوی فراوانی بستهها در واحد زمان است و بررسی این سیگنال در حوزه فرکانس (که شناسایی سیگنالهای دورهای را آسانتر میکند) فعالیت باتنت در شبکه شناسایی می شود. البته نویسندگان این مقاله این فرض کردهاند که دوره تناوب ارسال بستههای هماهنگی یکسان است و اگر این دوره تناوب متغیر باشد کار بسیار مشکل میشود که به عنوان کار آینده در این مقاله از آن نام برده شده است.
دو رویکرد کلی برای تشخیص botnet وجود دارد:
روشهای نامبرده هرکدام نقاط قوت وضعف خود را دارند. روشهای مبتنی بر امضا الگوریتمهای سادهای دارند ولی از سوی دیگر قادر به شناسایی باتنتهای جدید نمیباشند. روشهای مبتنی بر ناهنجاری گرچه عمومیت دارند، قادر به شناسایی باتنتهای جدید میباشند و در مقابله با ترافیکهای رمزشده مشکلی ندارند ولی سربار محاسباتی بیشتری نسبت به روشهای مبتنی بر امضا دارند و اعلان خطای بالای آنها هم نقطه ضعف اساسی آنها محسوب میشود. روشهای مبتنی بر DNS به عنوان حالت خاصی از روشهای مبتنی بر ناهنجاری، تمام ویژگیهای روشهای فوق الذکر را دارند به علاوه این که چون تمرکز آنها فقط بر ناهنجاریهای DNSاست، پیادهسازی سادهتری دارند. روشهای مبتنی بر دادهکاوی هم عموما قادر به شناسایی ترافیکهای جدید میباشند و در برابر ترافیکهای رمز شده نیز مقاومند. این روشها معمولا الگوریتمهای پیچیدهای دارند و سرعت عمل مناسبی از خود نشان نمیدهند.
باتنتها به عنوان تهدید امنیتی مهم دنیای شبکههای کامپیوتری، بخش بزرگی از حملات در این شبکهها را به عهده دارند. گسترده بودن حوزه عملکرد، امکان پنهان بودن عامل انسانی موجد تخریب، باتنتها را به موضوع مورد علاقه خرابکاران حوزه فناوری اطلاعات تبدیل کرده است. از طرف دیگر تنوع زیاد در ساختارها و قراردادهای استفاده شده در باتنتها شناسایی آنها را بسیار دشوار نموده است به طوری که هنوز روشهای شناسایی باتنتها در صورت داشتن دقت مناسب قطعا عمومیت لازم را ندارند و در صورت عمومی بودن دقت کم و خطای بالایی دارند.