بخشی از مقاله
بررسي جامع روش هاي تشخيص حملات باتنت ها و دسته بندي آن ها
چکيده : استفاده از محاسبات توزيع شده توسط هکرها باعث ظهور بدافزارهايي شده است که يکي از نمونه هاي عملي آن باتنت ها ميباشـند. باتنت به گروهي از ماشين هاي آلوده شده در سطح شبکه گفته مي شود که از راه دور توسط يک هکر کنترل مي شوند. امروزه انواع متفاوتي از روش هاي تشخيص باتنت وجود دارند که هر کدام از آنها براساس پروتکل ها و توپولوژيهاي خاص باتنت ها کار ميکنند. هدف تمامي ايـن روش ها اين است که باتنت ها را قبل از اينکه اقدام به حمله کنند شناخته و از بين ببرند يا در بعضي موارد حداقل قدرت حمله ي آن ها را به حداقل برسانند. در اين مقاله ما ابتدا به بررسي اجمالي باتنت ها و توپولوژيهاي مختلف ارتباطي آنها پرداخته ايم و روند تغيير و تکامل آن - ها را بررسي کرده ايم . سپس روش هاي مختلف تشخيص حمله را بررسي و آن ها را بر اساس نحوه ي عملکردشان دسته بندي کرده ايم و مزايا و معايب هرکدام را بيان کرده ايم . روش هاي تشخيص باتنت هنوز در مراحل ابتدايي و اوليه اش قرار دارد و اين حوزه براي متخصصين امنيت جذاب است و جاي بررسي بيشتر دارد.
کلمات کليدي: بدافزار – باتنت – روش هاي تشخيص حمله
١- مقدمه
با پيشرفت پهناي باند شبکه ها و قدرت محاسبات ماشين ها، امروزه محاسبات توزيع شده به وفور مورد استفاده قرار مي گيرد. در اين راسـتا هکرها هم از اين مفهوم براي انجام حملات قدرتمندتري استفاده ميکنند[٤]. باتنت ها نمونه ي عملي ايـن نـوع حمـلات هسـتند. باتنـت مجموعه اي از ماشين هاي آلوده شده در سطح اينترنت مي باشد که توسط مهاجمان براي انجام دادن فعاليت هاي بدخواهانه و غيرقـانوني، از راه دور کنترل ميشوند. به آنها ربات يا به طور کوتاه شده بات ميگويند و اين نامگذاري از رفتار اتوماتيک آن ها سرچشمه ميگيرد. بـر خلاف کرم ها و ويروس ها که اهداف خرابکارانه دارند، هدف از بکارگيري باتنت ها توسط کنترل کننده ١هاي آنـان معمـولا مـالي مـيباشـد.
روش هايي که امروزه براي بدست آوردن سود از باتنت ها وجود دارند عبارتند از اجاره ي باتنت به شخصـي ديگـر بـراي ارسـال نامـه هـاي ناخواسته ، اخاذي از شرکت ها در مقابل حملهات DDoS٢، سرقت اطلاعات شخصي افراد مثل اطلاعات کارت هاي اعتبـاري آن هـا و ...[١].
به علت صرفه ي بسيار زيادي که بات ها داشتند تعداد بسيار زيادي بات جديد و شخصيسازي شده وارد عرصه شدند کـه ايـن باعـث شـد تعداد باتهاي متفاوت تنها براي يک نوع بات تا آگوست ٢٠٠٤ به بيش از ٤٠٠٠ مدل مختلف برسد[٢].
توپولوژيهاي متفاوت باتنت ها براي آناليز ويژگي هاي گسسته ي هر شبکه مناسب است ، اما به ما اجازه ي توصيف قدرتمند باتنـت - هاي پيچيده و ترکيبي را نميدهد. در اصل ما احتياج به تفاوت دهنده هاي کليدي براي بررسي ويژگيهاي باتنت ها داريم مثل سايز، قطر شبکه و افزونگي. منظور از سايز بزرگترين بخش باتنت است که به صورت آنلاين در اختيار است . قطر شبکه به معناي ميانگين فاصله هاي بين هر دو ماشين در شبکه است که اگر زياد باشد نشان دهنده ي سرعت پايين ارتباط اسـت و در آخـر افزونگـي کـه باتنـت را از لحـاظ لينک هاي مشترک ارتباطي و نقطه هاي مشترک ارتباطي بين باتها مورد بررسي قرار ميدهد[١٩]. امـا اگـر بخـواهيم از حيـث روش هـاي متفاوت دسته بندي باتنت هـا، آنهـا را بـر اسـاس توپولـوژي دسـته بنـدي کنـيم ، خـواهيم داشـت :١)سـتاره اي٢)سلسـله مراتبـي٣)چنـد سروري٤)تصادفي يا نظير به نظير٣. در شکل ١ تفاوت ساختاري اين توپولوژيها نشان داده شده است . دسته بندي توپولوژيهاي ارتباطي باتنت ها در جاهاي ديگر به صورت هاي متفاوتي آمده است ، به عنوان نمونه در[١٩,٢] دسته بندي به صـورت تصـادفي، متمرکـز، نظيـر بـه نظير وجود دارد. در جدول ١ نقاط قوت و ضعف هر کدام از اين توپولوژيها بيان شده است [١٨].
هکرها با استفاده از ساليان دراز تجربه در زمينه ي ايجاد بدافزارها باتنت ها را بوجود آوردنـد و ايـن موضـوع باتهـا را بـه مخربتـرين برنامه هاي کاربردي تحت وب تبديل کرده است [١,٣]. در جدول ٢ روند توسعه ي باتها نشان داده شده است [٣,٢٤,٢٥].
ويژگي اصلي که باتنت ها فراهم ميکنند بينامي ٧ و پخشي ٨ است . بينامي حمله کنندگان را غيـرقابـل رديـابي مـيکنـد و خاصـيت پخشي موجب ميشود مهاجمان غير قابل دستيابي باشند و همچنين از بين بردن شبکه ي باتها هم بسيار سخت شود[١].
انواع حملاتي که با استفاده از باتنت ها همانطور که پيشتر نيز ذکر شد براي اهداف مالي و کسب سودمندي انجام مي شود عبارتنـد از ارسال پيام هاي ناخواسته ، حملات DDoS و اخاذي، دزدي هويت ، کليک هاي فريبکارانه ٩[١,٣,١٨].
در ادامه به بررسي روش هاي تشخيص باتنت ها در بخش دوم ميپردازيم و آنها را طبق يک دسته بندي جامع ارائه مي کنـيم روش - هاي مبتني بر Honeypot، سيستم هاي تشخيص نفوذ، روش هاي بيولوژيکي و کشف بلادرنگ باتنت ها به ترتيب در ايـن بخـش بررسـي خواهد شد و در انتها نيز مقايسه اي بر مبناي نقاط قوت و ضعف هر کدام از روش هاي ذکر شده آورده شده است .
٢- روش هاي تشخيص باتنت
روش هاي کشف باتنت ها بستگي بسيار زيادي به توپولوژي مورد استفاده ي آن ها، نحوه ي برقراري ارتباط آن هـا، تکنولـوژي ارتبـاطي کـه استفاده ميکنند (انواع پروتکل هاي متفاوت ...,HTTP,IRC١٠) و روش هاي متفاوتي کـه بـراي پخـش شـدن در نظـر مـيگيرنـد دارد.
بسياري از روش هايي که تا به امروز براي کشف باتنت ها پيشنهاد شده است بر مبناي پروتکل هاي خاص بوده چنانکه در موارد ديگر قـادر به پيدا کردن باتنت ها نميباشند.
Honeypot2-1
Honeypot ها در جامعه ي امنيتي تحت عنوان سيستم هاي کامپيوتري آسيبپذيري شناخته ميشوند که در مکان خاصي از شـبکه قـرار ميگيرند تا حمله کنندگان را تحريک به حمله کنند و بعد از حمله ، پرسنل امنيتي سيستم بـا اسـتفاده از مهندسـي معکـوس اقـدام بـه بررسي کد اجرايي بات و نحوه ي رفتار آن ميکنند[٢٨]. Honeypot ها هيچگونه محصول توليدي ندارند بنابراين هرگونـه ارتبـاط ميـان آن ها و ديگر اعضاي شبکه ، ترافيک مشکوکي است که بايد به دقت بررسي شود[٦,٧]. اين تکنيک نقاط ضعفي دارد که از نظري نميتوان آن را به عنوان یکی از روش های پیشگیری از حملهی باتنت ها در نظر گرفت اما میتوان از این روش استفاده کرد و آن را به صورت ترکیبی با دیگر روش هایی که در ادامه گفته خواهد شد بکار برد تا نتایج دقیقتری و با نرخ خطای کمتری ("FNRFPR) بدست آید. نقاط ضعف این روش عبارتند از: * حوزه ی محدودی از فعالیتهای استخراج شده می تواند تعقیب شود. چون ما به همه ی شبکه ی اینترنت دسترسی نداریم. " این روش نمی تواند باتهایی را شناسایی کند که از روش های پخش شدن دیگری به جای روش SCaling استفاده می کنند مثل پیامهای ناخواسته و دانلود بدافزار ها از وب. * فقط میتواند خبر از آلوده شدن ماشین هایی بدهد که قبلا به عنوان تله در شبکه پیش بینی شده اند. پس یعنی در این سیستم نمی توان ماشینهای دیگری از شبکه را که Honeypot نیستند و توسط باتها آلوده شده اند را پیدا کرد. در ایجاد Honeypot ها توجه به این نکته با اهمیت است که اگر ما از سیستم های ایزوله به عنوان دام برای آلوده شدن استفاده کنیم و بعد از آلوده شدن این سیستم ها ارتباط آن با بقیه سیستم ها قطع باشد موجب این می شود تا خیلی زود با تمستر متوجه HoneyDOt بودن ماشین آلوده شده شود چون عملابات نصب شده روی Honeypot نمی تواند برای آلوده کردن ماشین های دیگر جست و جو انجام دهد و مکانیزم حمله اش را عوض می کند و اطلاعاتی که به این صورت از Honeypot استخراج می شود عملا بلااستفاده خواهد بود.
کشف باتنت ها در این قسمت بر اساسی دو روش مبتنی بر الگو "' و مبتنی بر ناهنجاری" انجام می شود[6]. s Dagon دیگران در تحقیقات خود به این موضوع اشاره کردند که زمانها و مکانها در فرایند پخش بدافزارها تاثیر زیادی دارند [S]. نتیجه می گیریم نوع شبکه ای که در آن هستیم و زمانی که برای بررسی و کشف باتنت ها اقدام می کنیم بسیار مهم است زیرا با توجه به چرخه ی حیات باتنت ها، بین زمانی که ماشینهای آلوده شده ی جدید می خواهند به شبکه ی باتها وصل شوند و زمانی که می خواهند اقدام به حمله کنند ممکن است فاصله زماني زيادي باشد بنابراين بسياري از روش ها براي مقابله با باتنت ها مناسب نيستند که از جمله ي آنها ميتوان به روش هـاي واکنشي اشاره کرد. در اين روش ها منتظر ميمانيم تا حمله صورت بگيرد و بلافاصله آن را تعقيب مي کنيم تا بـه اصـل آن (مبـدا حملـه ) برسيم . اين روش ها براي باتنت ها مستقيما مؤثر نيستند[٩]. در نتيجه زيرمجموعه اي از روش هاي مبتني بر سيسـتمهاي تشـخيص نفـوذ براي کشف باتنت ها قابل استفاده خواهد بود.
روش هاي مبتني بر الگو: در اين روش الگوهاي باتنت هايي که قبلا وجود داشته است بـراي کشـف مـورد اسـتفاده قـرار مـيگيـرد.
همانطور که پيشتر نيز گفته شد Honeypot ها يکي از سيستم هايي هستند که ميتواننـد بـراي بدسـت آوردن الگـوي باتنـت هـا مـورد استفاده قرار بگيرند. در اين روش ميتوان باتنت ها را خيلي سريع و دقيق کشف کرد. مشکل جدي اين روش اين است که فقط براي پيدا کردن باتنت هايي مناسب است که قبلا ديده شده اند. اما بسياري از کنترل کننده هـاي باتنـت تغييراتـي هرچنـد انـدک در سـاختار باتهـا بوجود ميآورند و در اين صورت ديگر سيستم دفاعي مبتني بر الگو بيفايده خواهد بود. ضمن اينکه اگر ترافيک C&C رمز شود که اکثـرا هم اينکار براي امنيت انجام مي شود ديگر اين روش کارآمد نخواهد بود. در [١٠]، snort به عنوان يک سيسـتم کشـف باتنـت پيشـنهاد شده است . snort يک برنامه ي متن باز است که به ٣ روش قابـل تنظـيم است (سيسـتم تشـخيص نفـوذ و Sniffer و Packet Logger).
هسته ي اصلي snort بر پايه ي امضا کار ميکند. چگونگي کارکرد اين روش و معرفي جامع snort در [١٠] آمده است .
روش هاي مبتني بر ناهنجاري: اين تکنيک مشکل اصلي که در روش مبتني بر الگـو يعنـي تشـخيص نـدادن باتنـت هـاي جديـد را برطرف کرده است . اين روش بر اساس بررسي رفتار غيرمعمول و خاص مربوط به باتنت ها کار ميکند. از اينگونه رفتارهاي خاص ميتـوان به فعاليت هاي گروهي، پاسخ هاي آني ، استفاده از پورت هاي غيراستاندارد[٦,١٠] و بسياري ديگر اشاره کرد. ايـن رفتارهـاي خـاص در دو دسته ي مبتني بر ميزبان و مبتني بر شبکه دسته بندي مي شود.
١)مبتني بر ميزبان : در اين روش به جاي اينکه به بررسي ترافيک شبکه بـراي پـي بـردن بـه کانـال C&C١٥ و ارتباطـات بـات هـا بپردازيم به مانيتور و آناليز تعاملات داخل يک سيستم کامپيوتري توجه ميکنيم . تنها کاري را کـه مـيتـوان بـه ايـن زمينـه نسـبت داد بررسي است که Stinson و Mitchell تحت عنوان BotSwat انجام داده اند. کار آن ها بـر مبنـاي تفـاوت قائـل شـدن بـين برنامـه هـاي معمولي که در يک کامپيوتر اجرا ميشوند و فراخوانيهاي سيستمي که با پارامترهاي آلوده انجام ميشود بنا شده اسـت کـه اصـولا ايـن پارامترها از طريق شبکه فرستاده ميشوند. ويژگي کليدي که در پيدا کردن باتها بر آن تأکيد داشته اند توجه داشـتن بـه ماهيـت کنتـرل شوندگي بات ها از راه دور است . در [١١] روند عملياتي اين روش به تفضيل آمده است .
٢)مبتني بر شبکه : روش هاي مبتني بر بررسي ترافيک شبکه مشکلاتي هم دارند که ميتوان به موارد زير اشاره کرد:
• (مخصوصا در مورد باتنت ها با توپولوژي PP٢) معمولا از يک يا چند ديدگاه برتر بررسـي انجـام مـيشـود و نمـيتـوان تصـوير جامعي از رفتارکل شبکه باتنت را به ما بدهد.
• محققاني که به صورت فعال اقدام به بررسي و اندازه گيري باتنت ها مي کنند ممکن است در روند مطالعاتيشان بـا هـم تصـادم داشته باشند و اطلاعات بدست آمده را براي يکديگر تغيير دهند و از داده هاي واقعي دور کنند.
• انجام تحقيق و بررسي روي شبکه در مواردي ممکن است اصول شخصي بودن اطلاعات را نقض کند[١٢,٥].
Zeng و ديگران در [١٢] به مشکلاتي که در دو روش مبتني بر ميزبان و مبتنـي بـر شـبکه وجـود داشـت اشـاره کردنـد و روشـي ترکيبي بر مبناي مشاهدات در سطح شبکه و ميزبان پيشنهاد کردند. چارچوب کاري آن ها بدين شکل بود که ابتدا جريان هاي موجـود در شبکه را مورد بررسي و آناليز قرار ميداد و ميزبان هايي را که ترافيک مشابهي روي شبکه ايجـاد مـيکردنـد را کشـف مـيکـرد و سـپس ميزبان هاي مشکوک را از طريق روش هاي مبتني بر ميزبان مورد بررسي بيشتر قرار ميداد.
روش هاي مبتني بر شبکه را هم مي توان به دو بخش نظارت فعال و غير فعال تقسيم کرد.
١.نظارت فعال : در اين روش بسته هايي براي آزمايش به حجم ترافيک شبکه ، سرورها يا برنامه هاي کاربردي افزوده ميشوند تا پاسخ شبکه را دريافت و آناليز شود. بنابراين اين روش ها حجم ترافيک شبکه را افزايش ميدهند[٦].
١٥ به ارتباطاتي که يک سر آن سرور دستورات باتنت و سر ديگر آن فرمان برنده هاي آن يا همان باتها باشند کانال C&C گفته مي شود در[١٣]Botprobe به عنوان يکي از تکنيک هاي نظارت فعال معرفي ميشود. در اين روش تعدادي بسـته ي سـاختگي و دسـتکاري شده را به ماشين هايي که تحت نظارت هستند وارد ميشود و سپس عکس العمل آنها را مورد بررسي قرار مـيگيـرد. ايـن تکنيـک بـراي شناخت پروتکل هاي به شکل چت ساخته شده است . در اين روش به جاي اينکه چندين دوره از محاوره هاي باتنت ها را ببينيم و الگوهـاي رفتاري را بشناسيم و بعد اقدام به کشف کنيم با يک يا حتي صفر دوره ميتوانيم اينکار را انجام دهيم . اين ايده از دو مطلب برگرفته شده است يکي اينکه در يک باتنت معمولي الگوهاي پاسخ شفاف وجود دارد بنابراين يک بات بيحافظه ١٦ تمايل دارد که بـه صـورت مشـخص عمل کند و پاسخ دهد. دوم اينکه باتها از قبل برنامه ريزي شده اند تا يک مجوعه ي خاص ازدستورات را پاسخ دهند و بر خـلاف انسـان هـا بات ها تحمل خطاهاي نگارشي را در مکالمات خود ندارند.
٢.نظارت غير فعال : در اين روش بار اضافي تحميل نميشود و امروزه بيشتر بر اين اساس است که لااقل يـک دوره رفتـار باتنـت هـا تحت نظر قرار ميگيرد و سپس با استفاده از الگوسازي و تطبيق که بيشتر بر اساس روش هاي آماري است ، شناسايي باتنت ها انجام مـي- شود. اينگونه روش ها معمولا بر اساس آمار و واحتمالات کار ميکنند از اينرو دقت خيلي زيادي را در نتيجه ي حاصـله نمـيتـوان انتظـار داشت . در ادامه به تعدادي از کارهاي انجام شده در اين زمينه اشاره شده است .
Strayer و ديگران در [٩]، استفاده از تکنيک يادگيري ماشيني را براي کشف ترافيک IRC آلوده پيشنهاد کردند. کاري کـه آن هـا انجام دادند در دو لايه خلاصه ميشود، در لايه ي اول ترافيک IRC و غير IRC جدا ميشود و سپس بين ترافيـک باتنـت و قـانوني IRC تفکيک انجام ميشود. يکي از مشکلاتي که با آن در روش يادگيري ماشيني مواجه هستيم استفاده از صحيح پايـه ١٧ اسـت . صـحيح پايـه يک مجموعه داده است که دقيقا به عنوان مجموعه اي که مورد نظر است برچسب خورده اند يعني مثلا در قسـمت اول کـه بايـد ترافيـک IRC را از غير IRC جدا کنيم مجموعه اي که به عنوان ترافيک IRC مشخص ميشود براي قسمت هاي بعدي نمونه صحيح خواهـد بـود.
صحيح پايه ها معمولا در آزمايشگاه يا در محيط هاي واقعي تحت کنترل بدست ميآيند. ازصحيح پايه هم براي تمرين دادن ماشين و هـم تست کردن استفاده ميشود. مجموعه ي صحيح هاي پايه مرتباً به روز رساني ميشوند تا عملکرد روش با دقت بيشتري همراه باشد. بعد از فاز تمرين دادن ماشين ياد ميگيرد که کدام ترافيک IRC است و کدام غير IRC. بـراي تفکيـک ترافيـک هـاي قـانوني IRC از ترافيـک باتنت IRC نيز چنين روال يادگيري و تمريني انجام ميشود.
در [٥]، T.Ha و ديگران روي Kademila(نوعي باتنت PP٢) تمرکز کردند. آن ها ديدگاه تازه اي را در رابطه بـا کشـف باتنـت هـاي PP٢ با با استفاده از پيدا کردن نقاط استراتژيک آن ها بيان کردند. آن ها فاکتورهايي مثل درجـه ي مرکزيـت ، درجـه ي تـراکم ، مرکزيـت بردار Eigen و مرکزيت بر پايه ي مسيريابي را معرفي کردند. به عنوان نمونه مرکزيت بـردار Eigen مـيگويـد تمـامي اتصـالات بـه يـک ميزبان خاص به اندازه هم مهم نيستند بلکه آن هايي مهمتر هستند که به نودهاي مهمتر در شبکه وصل شده اند. بـا مشـخص شـدن ايـن فاکتورها در شبکه ميتوان انتخاب هاي بهتري براي نقاط نظارتي در شبکه انجام داد چون همانطور که پيشتر نيز گفته شد امکان نظـارت بر کل شبکه وجود ندارد. همچنين ميتوان نقاط گلوگاه را که در حيات شبکه ي باتها تأثير بسزايي دارد را تعيين کرد.