همان طور که گفته شد، یک سیستم شناسایی نفوذ با نظارت بر فعالیت های کامپیوتری موجود در محیط و تحلیل آن، قادر به شناسایی فعالیتهای خبیثانه و آگاه کردن مدیر سیستم و یا مقابله با حمله میباشد. این سیستمها را بر اساس معیارهای متفاوتی میتوان دستهبندی کرد [18]:
- منبع اطلاعاتی[1]
بر مبنای محل قرارگیری سیستم تشخیص نفوذ و نوع داده ای که مورد نظارت و بررسی قرار می گیرد، سیستم تشخیص نفوذ را می توان به دو گروه عمده تقسیم کرد:
سیستم تشخیص نفوذ مبتنی بر میزبان[2]
چنانچه اطلاعات مورد بررسی و تحلیل مرتبط با فعالیتهای یک سیستم کامپیوتری -مانند اطلاعات برنامهها، منابع و یا رویدادها- باشد، در این حالت سیستم شناسایی نفوذ مبتنی بر میزبان نامیده می شود. این سیستم ها در قالب یک نرم افزار بر روی سیستم عامل میزبان مورد نظر نصب شده و شناسایی را انجام می دهد. این سیستم ها معمولا دارای یک سرویس میباشند که در پس زمینه فعالیت عادی سیستم عامل انجام میشود. عملکرد سیستم های مبتنی بر میزبان بر مبنای پایش لاگهای ماشین، رویدادهای سیستمی، فعل و انفعالات نرم افزارهای کاربردی و ارتباطات میزبان در شبکه می باشد. این سیستم معمولا در میان سرورهایی که دارای کانالهای رمزنگاری شده هستند و یا دارای ارتباط با سایر سرورها هستند، مورد استفاده قرار میگیرند.
دو مشکل اساسی در سیستم های شناسایی مبتنی بر میزبان وجود دارد که به سادگی قابل برطرف کردن نیستند. اولین مشکل، وابستگی به ساختار سیستم میزبان است، اگر سیستم عامل میزبان شما دچار تغییرات ناگهانی در تنظیمات شود، منابعی که سیستم شناسایی نفوذ از آنها جهت شناسایی استفاده میکند دچار تغییرات می شود. در نتیجه نتایج تولید شده توسط سیستم دارای دقت نمیباشند. این باعث میشود که سیستم شناسایی نفوذ دچار اختلال شده و تصمیماتی که اتخاذ میکند صحیح نباشند. مشکل دیگری که در سیستم های مبتنی بر میزبان وجود دارد این است که بایستی برای تک تک سیستمهایی که نیاز به این سیستم دارند نصب و راه اندازی شود، همین موضوع میتواند مشکلات مدیریتی و دردسرهای نگهداری خاص خود را برای مدیران سیستم ایجاد کند.
یکی از مهمترین و شاید بهترین قابلیتهای سیستم های مبتنی بر میزبان، قابلیت گرفتن کد ایمنی[3] از فایلهای موجود بر روی سیستم است. این قابلیت به مدیر سیستم این امکان را میدهد که متوجه شود که آیا فایلهای روی سیستم دستکاری شدهاند یا خیر. در این حالت بازگردانی اطلاعات کار نسبتا سادهای خواهد بود زیرا مدیر سیستم میداند که کدامیک از فایلها دچار دستکاری و تغییر شدهاند. به خاطر داشته باشید که سیستمهای تشخیص نفوذ تحت میزبان دارای واکنش غیرفعال هستند.
سیستم تشخیص نفوذ مبتنی بر شبکه[4]
در صورتی که سیستم شناسایی نفوذ در بخشی از شبکه نصب گردد و از ترافیک شبکه جهت شناسایی نفوذ استفاده کند، آنگاه سیستم شناسایی نفوذ مبتنی بر شبکه نامیده میشود. سیستم های تشخیص نفوذ مبتنی بر شبکه نیاز به کلمه ی عبور برای برنامه های کاربردی، حقوق مربوط به سیستم عامل شبکه یا اتصالات مربوط به سیستم در هنگام اجرای نرم افزار ندارد. همچنین از آنجا که این سیستم ها در سطح لایه ی شبکه عمل می کنند، به سیستم عامل وابستگی ندارند. ضمناً هیچگونه سربار و تغییری روی سرویس دهنده ها و ایستگاه های کاری به وجود نمی آورند، چرا که برای این سیستم های تشخیص نفوذ نیازی به نصب ابزارهای اضافی نیست .عمدتا سیستمهای تشخیص نفوذ تحت شبکه دارای واکنش فعال هستند.
سیستم های تشخیص نفوذ مبتنی بر شبکه از دو بخش ناظر[5] و عامل[6] تشکیل شده اند. ناظر قطعات و یا ترافیک شبکه را به منظور یافتن بسته های اطلاعاتی مشکوک بررسی می کند. عامل نرم افزاری است که معمولاً به طور جداگانه روی هر یک از کامپیوتر های مورد نیاز قرار می گیرد و نقش ارسال اطلاعات را به صورت بازخوردی به ناظر برعهده دارد. همچنین ممکن است بخش دیگری هم به نام کنسول مدیریت وجود داشته باشد که به شکلی مطمئن (با اعتبار سنجی و رمزنگاری) به ناظر متصل می شود و از آن گزارش دریافت می کند و نیز به تبادل اطلاعات مربوط به تنظیم پیکربندی سیستم می پردازد. این سیستم های تشخیص نفوذ با استفاده از تکنیک هایی مانند شنود بسته ها ، داده ها را از درون بسته های اطلاعاتی شبکه که در حال جریان و نقل و انتقال در شبکه می باشند، استخراج می کنند.
سیستم های شناسایی مبتنی بر شبکه دارای یک سری معایب هستند. به عنوان مثال به دلیل جمع آوری و تجزیه و تحلیل بسته های شبکه، در شبکه هایی با سرعت بالا دچار مشکل شده و قادر به عملکرد صحیح نیستند. به عنوان مثالی دیگر، چنانچه ترافیک شبکه رمز شده باشد، سیستم شناسایی نمی تواند حمله را تشخیص دهد. به طور کلی سیستم های شناسایی مبتنی بر شبکه، در شبکه های سوییچ شده دچار مشکل هستند.
بسته های داده در شبکه دارای دو بخش عنوان[7] و محتوا[8] می باشند. برخی سیستم شناسایی نفوذ تنها از اطلاعات موجود در قسمت عنوان استفاده می کنند که با نام روش های مبتنی بر جریان[9] شناخته می شوند. برخی دیگر از تمامی محتوای بسته اطلاعاتی استفاده می کنند که با نام روش های مبتنی بر بسته[10] شناخته می شوند. این دو روش در فصل 3 به تفصیل بررسی می شوند.
دو رویکرد کلی جهت تحلیل ترافیک مشکوک در سیستمهای اطلاعاتی وجود دارد.
رویکرد مبتنی بر امضا[11]
این رویکرد به دنبال یافتن امضایی از حملات شناخته شده در بستههای شبکه میباشد امضای حملات باید به دقت و توسط افراد متخصص از حملات روی داده شده استخراج و در بانک داده مربوط به سیستم شناسایی ذخیره گردند. تکنیکهایی که از این رویکرد استفاده میکنند، دارای نرخ تشخیص و سرعت بالایی بوده و در کاربردهای تجاری از آنها کمک میگیرند. در عین حال با توجه به رشد انفجاری و ظهور انواع متفاوت حملات، به روز نگه داشتن پایگاه داده امضاها بسیار مشکل است. از این رو قادر به شناسایی حملات جدید نمیباشند.
رویکرد مبتنی بر ناهنجاری[12]
این رویکرد در زمینههای تحقیقاتی بسیار مورد توجه است، یک مدل از ترافیک نرمال شبکه ایجاد میشود و در صورتی که ترافیک دریافتی تفاوت قابل ملاحظه ای با مدل نرمال داشت، آن را به عنوان ترافیک نا بهنجار و نشانه نفوذ، شناسایی میکنند. مزیت اصلی تکنیک های مبتنی بر این روش، قابلیت شناسایی حملات نوظهور می باشد. همچنین نیازی به استفاده از افراد خبره برای تولید مدل نرمال ندارد و این مدل به صورت اتوماتیک تولید می شود. علی رغم قابلیت تطبیقپذیری روشهای مرتبط با این رویکرد، شناسایی رفتار نرمال بسیار چالش برانگیز است. در نتیجه، در شرایطی که رفتار نرمال به صورت صحیح مدل سازی نشود، این رویکرد دارای نرخ خطای قابل ملاحظهای میباشد. به عنوان مثال، تغییرات ناگهانی پیش آمده در سیستم ممکن است به عنوان رفتار ناهنجار شناسایی شوند. از سویی دیگر ممکن است قادر به شناسایی حملات شناخته شده نباشد چرا که برمبنای مدل نرمال تعریف شده، رفتار متفاوتی از خود بروز نمی دهند.
- نحوه نظارت[13]
سیستم شناسایی نفوذ، میتواند به شکل ایستا عمل کرده و به صورت دورهای از محیط، نمونههای تکی[14] تهیه کرده و تحلیل خود را بر اساس آن انجام دهد. این سیستم، همچنین می تواند به صورت برخط[15] از محیط به صورت پیوسته[16] نمونه تهیه کند و به شکل پویا مورد استفاده قرار گیرد.
- روش پاسخگویی[17]
یک سیستم شناسایی نفوذ به دو شیوه در برابر نفوذ شناسایی شده قادر به پاسخگویی است. روش غیرفعال[18]، که در آن سیستم شناسایی، تنها مدیر سیستم را از رویداد امنیتی پیش آمده آگاه میکند. روش فعال[19]، کنترل سیستمی را که مورد حمله قرار گرفته در دست می گیرد و اعمالی از قبیل بیرون کردن کاربر از سیستم، قطع اتصال سیستم با شبکه، خاتمه دادن به پردازش های مشکوک و … را انجام می دهد. در ادامه به چگونگی این عملکرد دو روش به تفصیل آورده شده است:
روش غیرفعال
معمولترین واکنشی است که به بیشتر نفوذها در شبکه انجام میشود. در واقع واکنشهای غیرفعال سادهترین و راحتترین واکنش در برخورد با نفوذها برای پیاده سازی و توسعه هستند. استراتژیهای واکنشهای غیر فعال شامل موارد زیر است:
- ثبت وقایع[20]: این روش شامل ضبط کردن کلیه رویدادهای شبکه است که اتفاق میافتند و همچنین چگونگی رخ دادن آنها را نیز نمایش میدهد. ثبت وقایع بایستی به شکلی اطلاعات را در اختیار مدیران قرار دهند که آنها بتوانند از طریق این دادهها ذات حمله و چگونگی به وقوع پیوستن آن را ارزیابی کنند. این اطلاعات بعدها میتوانند برای طراحی راهکارها برای مقابله با تهدیدات مورد استفاده قرار بگیرند.
- آگاه سازی[21]: آگاه سازی در واقع ارتباطی است که از طریق آن اطلاعات مربوط به رویداد اتفاق افتاده به شخص مسئول آن ارسال میشود. این شامل هرگونه اطلاعاتی است که میتواند به مدیر سیستم کمک کند تا در مورد حادثه درک بهتری داشته باشد. اگر سیستم تشخیص نفوذ بصورت تمام وقت مشغول به فعالیت است، پیامها بر روی کنسول مدیریتی نمایش داده خواهد شد تا زمانیکه مسئول سیستم آنها را مشاهده و نظارت کند.
- چشم پوشی[22]: چشم پوشی از حمله یک واکنش معمول در برابر حملات ناکارآمد است. برای مثال سیستم تشخیص نفوذ شما از بروز حمله از نوع حملات به وب سرور IIS به سیستمی گزارش میدهد که دارای وب سرور آپاچی میباشد، در این حالت نیازی به انجام هیچگونه عمل متقابلی نخواهد بود زیرا حمله بطور یقین ناکارآمد خواهد بود. خوب در چنین شرایطی با توجه که مطمئن هستیم که حملاتی که بر روی IIS انجام میشوند بر روی آپاچی موثر نخواهند بود، نیازی به صرف وقت و هزینه برای مقابله با آن وجود ندارد.
روش فعال
واکنش فعال بدین معناست که سیستم تشخیص نفوذ در مقابل حمله یا تهدید موجود عکس العمل نشان دهد. هدف واکنش فعال انجام دادن سریعترین عمل ممکن در جهت کاهش تاثیرات احتمالی رویدادی است که اتفاق افتاده است. این نوع از واکنشها برای اینکه بتوانند موثر باشند نیازمند طراحی اولیه برای شیوه برخورد با رویدادها، خط مشیهای واضح و صریح تبیین شده و همچنین هوشیاری خاصی میباشند. واکنشهای فعال شامل عکس العملهایی هستند که در ادامه بصورت خلاصه با برخی از آنها آشنا خواهیم شد:
- خاتمه اتصال: در این حالت پس از تشخیص نفوذ اتصال میزبان مشکوک به شبکه را پایان می دهد.
- تغییر تنظیمات شبکه: اگر حملات بصورت دائمی از سمت یک آدرس مشخص انجام شود، سیستم تشخیص نفوذ این توانایی را دارا است که به فایروال یا مسیریاب شبکه دستور دهد که تمامی درخواستهای ارتباط و ترافیکی که از آدرس مشکوک به سمت سرور روانه میشود را قطع ارتباط و رد کند. این نوع دستوراتی که از سمت سیستم تشخیص نفوذ برای فایروالها یا مسیریابها صادر میشود هم میتواند بصورت دائمی اعمال شود و هم اینکه میتواند در دوره های زمانی معین شده اعمال گردند.
- فریب دادن[23]: در این فرآیند به مهاجم اینطور القاء میشود که حمله وی موفقیت آمیز بوده است، در همین حین سیستم در حال نظارت و پایش مهاجم بوده و وی را به سمت یک سیستم که برای هک شدن – ظرف عسل [24]– ساخته شده است هدایت میکند. این روش به مدیر سیستم این امکان را میدهد که بتواند بر روی مهاجم متمرکز شده و روشها و تکنیکهایی که مهاجم در حمله استفاده میکند را شناسایی و چگونگی انجام شدن حمله را بررسی کند. پیاده سازی این فرآیند آسان نیست و همچنین اجازه دادن به یک مهاجم برای ورود به شبکه حتی در حالتی که وی پایش میشود کار بسیار خطرناکی است. لیکن فریب دادن به شما این اجازه را میدهد که براحتی و بدون به خطر انداختن اطلاعات اصلی مستندات بسیار خوبی در خصوص حمله جمع آوری کنید.
تصمیمگیری در مورد اینکه، سیستم شناسایی نفوذگر از چه روشی جهت نظارت، تحلیل و پاسخگویی استفاده کند به عوامل متعددی بستگی دارد. از جمله این عوامل میتوان به ویژگیها و نیازمندیهای کاربرد موردنظر، میزان اهمیت و حساسیت سیستم اطلاعاتی، سیاستهای امنیتی مدیران سیستم اطلاعاتی و … اشاره کرد. در عکس شماره 1 خلاصه ای از دسته بندی ارائه شده از سیستم های شناسایی نفوذ در قالب عکس ارائه شده است.
[1] Audit source location
[2] Host-based IDS (HIDS)
[3] Check-sum
[4] Network-based IDS (NIDS)
[5] Sensor
[6] Agent
[7] Header
[8] Packet
[9] Flow-based IDS
[10] Packet-based IDS
[11] Signature-based
[12] Anomaly-based
[13] Usage frequency
[14] Sporadic
[15] Online
[16] Continuous
[17] Reaction
[18] Passive
[19] Active
[20] Logging
[21] Notification
[22] Shunning
[23] Deception
[24] Honey pot