
در این بخش از دوره SEC504 از موسسه SANS به آشنایی با Bot ، کنترل آن ها و همچنین نحوه ارتباطت با آن ها خواهیم پرداخت.
Bots
بسیاری از کرمها دارای یک Payload هستند که شامل یک Bot میباشد. Botها برنامههای نرم افزاری هستند که از جانب انسان مامور به انجام اقدامات خاصی میباشند. Botها از نگاهی دیگر، یک درب پشتی یا Backdoor خاص هستند که قابلیت کنترل از راه دور را دارند و از طریق یک مرکز کنترل، فرماندهی میشوند. آنها به طور خودکار عمل نموده و میتوانند جهت اهداف مختلفی استفاده شوند.
برخی از این اهداف عبارتند از:
• حفظ کنترل از راه دور یک ماشین
• کنترل یک کانال IRC که یکی از اولین و محبوب ترین استفادهها از Bot بود
• انجام حملات مربوط به ایمیل
• راه اندازی حملات انکار سرویس
همچنین مجموعهای از این Botها که تحت کنترل یک مهاجم میباشند را Botnet میگویند. با در دست داشتن صدها هزار Bot میتوان خطرات و صدمات جدی را به یک سازمان وارد نمود. امروزه Botهای مختلفی وجود دارد و البته کدهای آنها نیز در دسترس قرار دارد.
گسترش Bot
سوال این جاست که Botها چگونه بر روی یک سیستم قربانی نصب میشوند؟
مهاجمان از روشهای مختلفی برای اضافه کردن سیستمها به شبکه Botهای خود استفاده میکنند. یکی از محبوب ترین راهها برای گسترش Botها، از طریق کرمها میباشد. روش دیگر استفاده از پیوست (Attachment) ایمیل است. در این روش نفوذگر ایمیلی را برای قربانی ارسال مینماید و فرد را ترغیب به باز کردن فایل پیوست آن میکند. با باز کردن فایل پیوست، Bot بر روی سیستم قربانی قرار میگیرد.
در برخی موارد هم Botها از طریق برنامههای به ظاهر کاربردی وارد سیستم میشوند. نمونهای از آن مانند افزونههای سیستم یا بازیها میباشند.
روش دیگر هم استفاده از آسیبپذیریهای مرورگر میباشد که مراحل آن به صورت زیر است:
مرحله اول: نفوذگر یک وب سایت که معمولا از وب سایتهای تجاری میباشد را به هر طریقی در اختیار خود قرار داده است. وی یک کد را بر روی این وب سایت نصب میکند که قابلیت اکسپلویت آسیبپذیریهای مرورگر را دارد.
مرحله دوم: یک قربانی بی گناه، وب سایت آلوده را مشاهده میکند.
مرحله سوم: وب سایت آلوده، یک صفحه وب که قادر به اکسپلویت نمودن مرورگر میباشد را به عنوان پاسخ برای قربانی ارسال مینماید.
بر اساس اکسپلویتی که در مرحله سوم اتفاق افتاده است، مرورگر به سایت نفوذگر وصل شده و برخی کدها را از آن میگیرد که اغلب یک Bot میباشد.
سپس نفوذگر کنترل سیستم قربانی را به دست میگیرد.

این روش به ویژه مهلک تر خواهد بود اگر مهاجم یک وب سایت تبلیغاتی مبتنی بر وب را تسخیر کرده باشد، در این صورت با تزریق کد در تبلیغات، تعداد افرادی که قربانی این حمله میشوند بسیار افزایش مییابد.
چگونگی ارتباط با Botها
نفوذگران برای ارسال اطلاعات کنترل به بات نت، از پروتکلهای مختلفی استفاده میکنند. یکی از رایج ترین ابزارها، استفاده از یک کانال IRC با پورت 6667 TCP است.
نفوذگران کانالهای IRC را دوست دارند زیرا این ابزار اجازه ارتباط یک به همه (one-to-many) را میدهد. همچنین ارتباط از ماشین آلوده شده به Bot با کانال IRC از طریق اتصال خروجی (outbound connection) انجام میشود. بنابراین اگر سیاست خاصی برای پورتهای خروجی از شبکه وجود نداشته باشد، این ارتباط به راحتی انجام خواهد شد.
از آنجا که برخی از سازمانها پورتهای استاندارد IRC را در خروجی شبکه مسدود میکنند، نفوذگران به پروتکلهای دیگر برای ارتباط با بات نت استفاده مینمایند. نمونه ای از آن استفاده از IRC در پورتهای غیر استاندارد مانند TCP 3000 یا TCP 3333 میباشد.
همچنین برخی از نفوذگران از وب سایتهای Third-party برای ارسال دستورات به بات نت استفاده میکنند. در این حالت تمامی باتها تنظیم شده اند تا به یک وب سایت به صورت معین مراجعه نمایند. نفوذگر در این وب سایت دستورات مورد نظر خود را قرار داده است.
یکی از روشهای دیگر برای ارتباط باتها، شامل استفاده از یک پروتکل توزیع شده با نام Waste است که در اصل توسط AOL ایجاد شده است.
روش دیگر استفاده از شبکههای اجتماعی و استفاده از یک پروفایل خاص برای ارتباط و اجرای فرامین میباشد.
هم اکنون به برخی از ویژگیها و قابلیتهای باتها میپردازیم:
بسیاری از باتها امروزه کدهای خود را تغییر میدهند تا از شناسایی توسط آنتی ویروسها در امان باشند.
هنگامیکه یک بات با مجوزهای مناسب نصب شده باشد، به نفوذگر اجازه میدهد تا دستورات خود را با دسترسی SYSTEM اجرا نماید.
نفوذگر حتی میتواند یک Shell گوش به فرمان یا Listening Shell را بر روی ماشین قربانی با دسترسی SYSTEM اجرا نماید. نفوذگر همچنین میتواند از بات به منظور حذف یا اضافه نمودن مورد مد نظر خود از FTP یا Share Folderها در ماشین قربانی استفاده نماید.
نفوذگر همچنین میتواند از بات برای اضافه نمودن یک اسکریپت در فرآیند بوت سیستم استفاده نماید.
باتها میتوانند برای انجام حملات انکار سرویس توزیع شده نیز به کارگیری شده و اقدام به ارسال بستههای SYN ، UDP و یا HTTP نمایند.
برخی از باتها یک HTTP Proxy ایجاد نموده که نفوذگر میتواند از آن برای گشت و گذار ناشناس استفاده نماید. این پروکسی قبل از فرستادن درخواست HTTP به یک سرور وب، تمام اطلاعات شناسایی مرتبط به نفوذگر مانند IP، User-Agent و موارد دیگر را از بین میبرد.
برخی از باتها میتوانند یک تکنیک مسیریابی GRE را راه اندازی نمایند تا نفوذگر بتواند بستههای IP خود را در داخل تونل GRE به سیستم آلوده انتقال دهد. به این ترتیب نفوذگر میتواند موقعیت خود در شبکه را مبهم سازد.
برخی از باتها میتوانند با استفاده از APIها، ویژگیهای جدید را به خود اضافه نمایند. بیشتر باتها میتوانند از راه دور سیستم را خاموش نموده و یا خودشان را حذف نمایند.
ویژگی دیگر که بسیار مفید هم میباشد، استفاده از بات برای اسکن سیستمهای آسیبپذیر دیگر است که بات میتواند در آن نصب شود.
نکته جالب این است که بسیاری از نویسندگان باتها متوجه هستند که برخی گروههای تحقیقاتی سعی در دنبال نمودن آنها و انجام فرآیندهای تحقیقاتی به منظور شناسایی باتها دارند. به همین جهت برای خنثی نمودن این تحقیقات و مهندسی معکوس، برخی از باتها قابلیت شناسایی و تشخیص مجازی سازی را دارند.
اگر بات متوجه شود که بر روی Vmware یا سایر ماشینهای مجازی نصب شده است، رفتار خود را تغییر داد و یا خود را از بین میبرد.
مقابله با باتها و کرمها
اولین نکتهای که باید برای مقابله با حملات باتها و کرمها در نظر داشته باشید، Hardening سیستمعامل است. همچنین اکثر باتها و کرمها از آسیبپذیری سرریز بافر برای آسیب رساندن به سیستمها استفاده میکنند. به همین منظور اگر وصلهها (Patch) بر روی سیستم نصب شده و سیستم بروزرسانی گردد، امکان استفاده از چنین آسیبپذیریهایی کاهش مییابد.
علاوه بر بروزرسانی، استفاده از سیستم تشخیص نفوذ مبتنی بر میزبان یا HIPS هم برای جلوگیری از اکسپلویت نمودن سرریز بافر مفید میباشد.
یکی دیگر از راههای مقابله با این حملات، استفاده از رمزنگاری هارد دیسک با استفاده از ابزارهای رمزنگاری سیستم فایل است، با این کار اگر اطلاعات شما توسط کرم یا بات به سرقت برود، نفوذگر قادر به خواندن آن نمیباشد، مگر اینکه اطلاعات کلید رمزگشایی را نیز به سرقت برده باشد.
استفاده از آنتی ویروس هم میتواند به شما کمک بسیاری نماید. درست است که برخی کدهای مربوط به کرمها و باتها ناشناخته میباشد ولی آنتی ویروس دست کم قادر به شناسایی باتها و کرمهای شناخته شده میباشد.