سطح مطلب: تخصصی //
پیشنیاز: آشنایی ضمنی با تجهیزات امنیتی IDS/IPS و مفهوم پایهای signature //
قبل از آنکه یک دیوایس IDS خریداری کنید، مهم است که نسبت به آنچه قصد خرید آن را دارید، آگاهی کامل داشته باشید و دقیقا آن چیزی را که نیاز شما را برطرف میکند، بخرید. محصولات مختلف ممکن است در ارائه قابلیتهایی یکسان باشند اما به علت آنکه فرهنگ واژگان آنها صنعتی و استاندارد نیست، این احتمال وجود دارد که با وجود مشابهت- های دو محصول اما آنها با دو لفظ بسیار متفاوت تبلیغ و یا بشما پیشنهاد شوند. در فصل دوم از کتاب ” Intrusion Prevention Fundamentals ” خصوصیات مختلفی برای signature های IPS ذکر شده که آن را در این مقاله مرور خواهیم کرد. در این مقاله گزیدهای از مفاهیم مرتبط با signature های atomic و stateful را بررسی خواهیم نمود.
انواع Signature
Signature ها بر حسب نوع عملکردشان در یکی از دو دستهبندی زیر قرار خواهند گرفت:
Atomic signatures
Stateful signatures
در این بخش به بررسی دقیقتر این دو نوع signature خواهیم پرداخت. مهمترین اختلاف بین این دو دستهبندی از signature ها، اینست که فرایند بازرسی و جستجوی ترافیک نیازمند نگهداری و ثبت وضعیت (State ) بازرسیهای قبلی و اکشنهای متناسب با هریک از آنها است یا خیر.
۱٫ Atomic Signatures
این نوع signature ها معرف سادهترین نوع signature هستند. برای یک atomic signature ، یک پاکت، فعالیت یا رخدادی به تنهایی میتواند باعث عکسالعمل signature و صدور اکشن متناسب با آن گردد. به علت آنکه صدور فرمان اجرای اکشن بر روی یک رخداد تنها اتفاق افتاده است، سیستم تشخیص نفوذ، نیازی به نگهداری وضعیت آن ندارد. در یک سیستم atomic ، بازرسی کامل ترافیک نیازی به آگاهی از فعالیتهای قبلی و حتی بعدی فعالیتهای صورت گرفته توسط سیستم تشخیص نفوذ ندارد.
State
این واژه به حالتی اشاره داد که شما نیاز به تحلیل بخشهای مختلف اطلاعاتی دارید که همگی آنها در یک زمان موجود نیستند. این واژه علاوه بر این به ردیابی کانکشنهای TCP برقرار شده (طی فرایند TCP 3-way handshake) نیز اشاره میکند. ترافیک معتبر TCP ، به ترافیکی اطلاق میشود که به ازای یک کانکشن برقرار شده، sequence number های صحیحی داشته باشد. اما در مورد IPS های شبکه، state signature ها معمولا به signature هایی گفته میشوند که برای آنالیز ترافیک به پاکتهای مختلفی نیازمند باشند.
ملاحظات موجود در رابطه با Atomic Signature ها
یکی از اشکالاتی که در رابطه با atomic signature ها وجود دارد، اینست که شما به عنوان تحلیلگر باید تمام atomic event هایی که بدنبال آن هستید را بشناسید. برای هرکدام از این event ها، شما باید signature مناسب آن را ایجاد نمایید. در نتیجه همانطور که تعداد atomic signature ها زیاد میشود، مدیریت آنها سختتر خواهد شد. یکی دیگر از معایب این دسته از signature ها، اینست که آنها فقط در موقعیتهایی قابل پیادهسازی و اجرا هستند که محتوای event مهم نباشد. برای مثال، فرض کنید signature ای را در غالب تشخیص وجود یک رشته ساده تعریف کردهاید؛ بصورتی که این signature در هر زمان، اگر ترافیکی را آنالیز کند که شامل رشته /etc/passwd باشد، دستور صادر شدن یک alert را میدهد. اگر شما این signature ساده را بر روی ترافیکهای TCP عملیاتی کنید، مهاجم میتواند alert هایی را بوسیله ارسال جریانی عظیم از پاکتهایی شامل رشته /etc/passwd در پیلودشان، ایجاد کند. Alert ها در صورتی ایجاد خواهند شد که کانکشن موجود بخشی از یک کانکشن معتبر TCP نباشد ( بخاطر آنکه در کانکشنهای TCP بحث سگمنتها و متعاقبا state آنها مطرح است که در اینصورت atomic signature ها از تحلیل ترافیک ناتوان هستند).
علاوه بر این، تحلیل اینگونه آلارمها زمانی را که کارمندان امنیت میتوانند صرف رسیدگی و تحلیل حملات جدیتر و به اصطلاح واقعی شبکه نمایند را به حداقل خواهد رسانید. حال در این وضعیت اگر مهاجم بتواند مقدار بسیار زیادی آلارمهای جعلی و ساختگی ایجاد کند، علاوه بر مورد قبل، تاثیر بسزایی بر روی کاهش کارایی اپلیکیشنها و تجهیزات مانیتورینگ خواهد گذاشت. با وجود تمام معایبی که گفته شد، atomic signature ها مزایایی هم دارند. اول آنکه این signature ها از لحاظ مصرف منابع (مانند مموری) بر روی دیوایس IDS/IPS ، بسیار کم مصرف و همچنین بعلت آنکه در ترافیک بدنبال رخداد خاصی میگردند، بسادگی قابل فهم هستند. در نهایت آنالیز ترافیک توسط atomic signature ها معمولا بسیار سریع و با کیفیت بالایی صورت میگیرد.
مثالهایی از Host-Based IPS
Host-Based IPS بر روی سیستم وظایف مختلفی را از جمله فراخوانی توابع، دسترسی فایلها و … بر عهده داشته و زیر نظر میگیرد. یکی از روشهای معمول برای تشخیص رفتار غیرعادی اینست که IPS برای اعمالی که کاربر بطور عادی روی سیستم انجام میدهد، یک مبنا و معیاری را در نظر میگیرد. پس از آن، ترافیک را بر مبنای این خط معیار مانیتور کرده و میسنجد. بنابراین انحراف از آن را براحتی تشخیص داده و شما میتوانید هرگونه فعالیت مخرب را بصورت بالقوه شناسایی نمایید. برای مثال اگر فراخوانی یک تابع با مشکل مواجه شود و دیگر بصورت نرمال اجرا نگردد (به جز در کانکشنهای مخرب)، هر زمان که این تابع فراخوان شود، signature مورد نظر، اکشن تعریف شده را اجرا و اعمال خواهد نمود. یا به عنوان نمونه دیگر، میتوان از اپلیکیشنی نام برد که مانند مثال بالا آنهم به مشکل خورده است؛ در
اینصورت اجرای این اپلیکیشن نیز باعث عکس العمل atomic signature خواهد شد. در مثال متفاوت دیگری اگر signature ای را نسبت به اجرای کامندشل در سیستم تعریف کرده باشیم، در اینصورت هرزمان که کامند شل-ی- بر سیستم اجرا شود، باعث عکس العمل و اجرای اکشن signature مورد نظر خواهد شد. به چنین IPS هایی که رفتار غیرمعمول را بر روی سیستم تشخیص داده و اکشن اعمال میکنند، Host-Based گویند.
نکته: در اکثر سیستمهای عامل، کامندشلها برای دسترسی به اینترفیس کامندلاین استفاده میشوند. دسترسی به اینترفیس کامندلاین یکی از رایجترین مکانیزمهای هموار کردن اجرای حمله علیه سیستم است. روی هر سیستم عاملی مانند ویندوزکه بشدت بر قدرت گرافیکی خود تکیه دارد، استفاده از کامندشل برای پیکربندی سیستم، یک رفتار غیرعادی تلقی میشود.
مثالهایی از Network-Based IPS
یک مثال خوب از atomic signature های network-based ، حمله معروف به ” Land Attack ” است. با بازرسی یک پاکت، IPS براحتی ( network-based/ host-based ) میتواند متوجه وجود این حمله شود. بخاطر آنکه در این نوع حمله همه ابعاد و پارامترهای حمله در داخل همان یک پاکت جایگذاری شده است، برای تشخیص آن نیازی به سابقه و state نمیباشد.
Land Attack: نوعی از حمله منع سرویس ( DoS ) است که در آن مهاجم پاکت TCP ای ( SYN Request ) را بسمت سیستم ارسال میکند که مشخصات مبداء و مقصد آن یکی است.
۲٫ Stateful Signatures
بر خلاف signature های atomic ، دسته دیگر یعنی stateful ها بر حسب ترتیبی از رخدادهای خاصی حساس هستند که این خود مستلزم اینست که IPS وضعیت ( state) ترافیکها را در خود ذخیره کند. بازه زمانی که signature ها باید state خود را نگهداری کنند، ” event horizon ” نام دارد. پیکربندی بازه event horizon ، بر مبنای نسبت مصرف منابع سیستم و میزان توانایی شناسایی حملات در بازههای زمانی بلند مدت، محاسبه خواهد شد.
EVENT HORIZON: این رشته از signature ها معمولا برای تطبیق الگوی خود با یک attack signature ، به چندین قطعه از دیتا احتیاج دارند. حداکثر بازه زمانی که در طول آن یک attack signature قابل شناسایی شدن باشد (از اولین قطعه دیتا تا آخرین قطعه دیتای آنالیز شده برای کامل شدن حمله)، ” event horizon ” نامیده میشود. سیستم IDS/IPS باید اطلاعات مربوط به state را در بازه زمانی event horizon درخود نگهداری کند. طول event horizon به ازای هر signature با signature دیگر، متفاوت است. مهمترین نکتهای که باید به ان دقت داشت اینست که یک IPS فقط به تناسب منابعی که در اختیارش است، میتواند اطلاعات state ها را در خود نگهداری کند. بنابراین IPS ها برای آنکه بدانند برای یک attack signature خاص چقدر زمان در اختیار خواهد داشت، غالبا بصورت پیش فرض با event horizon های از پیش پیکربندی شده عرضه میشوند.
ملاحظات موجود در رابطه با Stateful Signature ها
مهمترین محدودیتی که در رابطه با Stateful signature ها وجود دارد اینست که فرآیند نگهداری state ها، مصرف مموری را برای دیوایس IDS/IPS افزایش میدهد. اما معمولا این موضوع بسیار حائز اهمیت نیست بخاطر آنکه دیوایس IPS طوری طراحی میشود که باتوجه به این وضعیت از منابعش بهینه مصرف کند. با این وجود اگر دیوایس IPS نتواند بصورت بهینه در چنین حالتی منابعش را مصرف کند، مصرف بالای منابع (مانند CPU و مموری) میتواند سرعت پاسخگویی را کاهش داده و علاوه بر آنکه پاکتها را از بین میبرد، نتواند با دقت signature ها را با ترافیک موجود تطابق دهد؛ که در نهایت کارایی IPS را بشدت تحت تاثیر خود قرار خواهد داد. محدود کردن رویدادهای خاصی به signature های مشخص (مانند atomic signature ها) احتمال وجود ترافیکهای false-positive را در شبکه افزایش خواهد داد که استفاده از stateful signature ها باعث بهبود و کاهش این موضوع خواهد شد.
مثالهایی از Host-Based IPS
برای نشان دادن مثالی از IPS های host-based ، از کامندشل مرسوم ویندوزی یعنی cmd.exe استفاده میکنم. برخلاف آن چیزی که در مورد atomic signature ها بیان شد، در اینجا signature طوری تعریف نمیشود که به محض اجرا شدن cmd.exe ، از خود واکنش نشان دهد (بعلت آنکه کاربران از این برنامه بصورت متناوب استفاده میکنند) و این در حالیست که بسیاری از حملات از طریق فراخوانی cmd.exe از راه دور(ریموت) خود را نشان میدهند. برای آنکه بتوان از طریق ریموت cmd.exe را اجرا کرد، اتکر باید یک ارتباط شبکهای با سیستم برقرار کند. همین توضیح کوچک بما کمک خواهد کرد تا atomic signature موجود را با اضافه کردن state به آن، مجددا تعریف کنیم. در تعریف جدید، stateful signature زمانی موقع فراخوانی cmd.exe از خود واکنش نشان میدهد که اپلیکیشن فراخوان کننده cmd.exe پیش از فراخوانی، یک کانکشن شبکهای موفق داشته باشد. Host-base IPS باید آمار اپلیکیشنهایی که تحت شبکه و از طریق ارتباط شبکهای فعالیت میکنند را در خود داشته باشد.
مثالهایی از Network-Based IPS
Network-based signature ها غالبا از نوع stateful ها هستند. علت این است که اطلاعات مورد نیاز برای تشخیص حمله معمولا در چندین پاکت پخش شده است. برای مثال signature ای که به رشتهای خاص حساس است، باید از نوع stateful انتخاب شود چرا که رشته میتواند در طول چندین پاکت اتفاق بیافتد ) بخاطر آنکه IPS باید تمام پاکتها را تا تطبیق کامل signature با رشته مورد نظر، بررسی کند). برای مثال اگر بخواهید رشته /etc/passwd را در یک http url جستجو کنید، ممکن است لازم باشد تا چندین پاکت را بررسی کنید بخاطر آنکه ممکن است رشته در طول چندین پاکت بجای یک پاکت توزیع شده باشد (هرچند که ممکن است تمام رشته در یک پاکت هم باشد).
مثالهای دیگری از stateful signature ها وجود دارند که شامل signature هایی میشوند که در مانیتور ترافیک TCP استفاده شدهاند. برای جلوگیری از کاهش توانایی اتکر در تولید آلارمهای جعلی به مقدار زیاد، اکثر TCP attack signature ها زمانی معتبر خواهند بود که signature مورد نظر خود را فقط بر روی یک کانکشن معتبر TCP مشاهده کنند. در این صورت است که تشخیص حمله داده و واکنش نشان خواهند داد. برای مثال فرض کنید که signature مورد نظر شما بر روی رشته /etc/passwd و روی یک کانکشن تلنت از خود واکنش نشان داده است. تلنت از TCP و پورت ۲۳ استفاده میکند؛ بنابراین IPS باید برقراری کانکشن با پورت ۲۳ از TCP را رصد کند. پس تنها چیزی که IPS باید انجام دهد، ردگیری sequence number های موجود در برای کانکشنهای برقرار شده تلنت است. در نهایت هرگاه رشته /etc/passwd بر روی یک کانکشن TCP با sequence number های صحیح مشاهده شد، آنزمان signature عکسالعمل نشان داده و اکشن مورد نظر را اعمال میکند. توجه داشته باشید که بدون نگهداری state کانکشن مورد نظر، مهاجم میتواند جریان عظیمی از آلارمهای جعلی را با ارسال سیلی از پاکتهای TCP (حاوی رشته /etc/passwd ) به پورت ۲۳ ایجاد کند و تمام این در حالی است که در تمام این مدت هیچ کانکشن TCP معتبری بطور واقعی به پورت
۲۳ برقرار نشده است.
مانا باشید
احسان امجدی / کارشناس و مدرس دورههای تحلیل امنیت
“اگر بر این باورید که با نقض قانون کپی رایت، وضعیتی بهتر در انتظارمان خواهد بود، بدون ذکر نام نویسنده و منبع، مجاز به انتشار مطالب هستید. “