IDS: Intrusion Detection System

intrusion detection system concepts and techniques

IDS: Intrusion Detection System

intrusion detection system concepts and techniques

معرفی منطق فازی

مقدمه :

سیستم های منطق فازی (fuzzy logic systems -fls) یک خروجی قابل قبول اما قطعی در پاسخ به یک ورودی ناقص ، مبهم ، تحریف شده و یا نادرست (fuzzy) تولید می کنند.

منطق فازی چیست ؟
منطق فازی (Fuzzy Logic -FL) یک نوع مدل  استدلال است که استدلال انسانی را شبیه سازی می کند.شیوه منطق فازی راه حل تصمیم گیری انسانی  را تقلید می‌کند به طوری که همه امکان های میانی بین مقادیری دیجیتال بله یا خیر را  در نظر گرفته و در حل مسائله درگیری می کند.
بلاک منطقی مرسوم که یک کامپیوتر آن را درک می‌کند و متوجه می‌شود یک ورودی قطعی را دریافت می‌کند و یک خروجی صریح را تولید می‌کند که این خروجی صحیح( TRUE ) یا غلط است ( FALSE). این خروجی ها شبیه  بله یا خیر انسانی هستند.مخترع منطق فازی ،پرفسور  لطفی زاده ، کشف نمود که بر خلاف کامپیوتر ها ، تصمیم های گرفته شده توسط بشر شامل یک محدوده از چیز های ممکن  در میان  بله و خیر است.از قبیل :
CERTAINLY YES -قطعا بله
POSSIBLY YES – احتمالاً بله
CANNOT SAY – نمیشه گفت
POSSIBLY NO -احتمالا نه
CERTAINLY NO – قطعاً بله

منطق فازی بر روی همه سطوح موارد(جواب های ) ممکن برای ورودی  به منظور بدست آوردن یک خروجی قطعی عمل می کند.


 پیاده‌سازی و اجرا :

سیستم منطقی فازی می‌تواند در سیستم‌هایی با اندازه ها   و محدوده توانایی متفاوت از میکرو کنترلر های کوچک تا بزرگ ، شبکه ، سیستم‌های کنترلر مبتنی بر ایستگاه کاری  پیاده‌سازی و اجرا شود.
سیستم منطق فازی می‌تواند در سخت‌افزار ها ، نرم‌افزار های و ترکیبی از هر دو پیاده‌سازی و اجرا شود.

چرا منطق فازی ؟
منطق فازی برای اهداف تجاری و علمی و کاربردی مفید است
  • می‌تواند برای کنترل ماشین‌ها و محصولات مصرف کننده به کار گرفته شود
  • ممکن است که استدلال دقیقی در اختیار قرار ندهد ، اما در نهایت یک استدلال قابل قبول تولید می‌کند
  • منطق فازی یکی از روشها یی است که می‌تواند در محیط های غیر قطعی کاربرد داشته باشد
معماری سیستم‌های فازی :

یک سیستم منطق فازی ۴ بخش اصلی دارد که در ذیل به آن می‌پردازیم.


1- ماژول فازی سازی (Fuzzification Module)
این قسمت از سیستم منطق فازی ورودی های سیستم را که اعداد Crisp ( همان مجموعه اعداد معمولی ) را به مجموعه فازی تبدیل می کند. این ماژول سیگنال ورودی را به ۵ مرحله تقسیم می‌کند ، از جمله :
LP     x is Large Positive        X مثبت بزرگ است
MP     x is Medium Positive        X  مثبت متوسط است
S     x is Small            X کوچک است
MN     x is Medium Negative    X متوسط منفی است
LN     x is Large Negative        X بزرگ منفی است

2-پایگاه دانش : Knowledge Base

در پایگاه دانش قوانین IF-THEN هایی که توسط شخص خبره تهیه و تدوین شده‌اند قرار می گیرد.


3- موتور استنتاج (Inference Engine) :

موتور استنتاج پروسه استدلال انسانی را بوسیله ایجاد استنتاج فازی بر روی ورودی و قوانین IF-THEN شبیه سازی می‌کند


4- ماژول غیر فازی ساز (Defuzzification Module ):
ماژول غیر فازی ساز در نهایت مجموعه فازی تولید شده بوسیله موتور استنتاج را به مقداری عددی معمولی (Crisp ) تبدیل می کند.



تابع عضویت بر روی مجموعه های فازی از متغیر ها ،یکسری عملیات  را  انجام می‌دهند.
تابع عضویت :
تابع عضویت به ما اجازه می‌دهد تا که یک مجموعه فازی را به صورت گرافیکی نمایش بدهیم و موارد زبان‌شناسی مربوط به آن را تعیین کنیم.تابع عضویت برای یک مجموعه فازی مثل A بر روی متغیر universe of discourse مثل X به صورت :µA:X → [0,1] تعریف می شود.که در آن هر عنصر از X به مقداری بین ۰ و ۱ نگاشت می شود. که مقدار عضویت یا درجه عضویت نامیده می شود.که درجه عضویت عنصری در X را در مجموعه فازی A معین می کند.
  • محمور X نشان دهنده  universe of discourse است.
  • محور Y نشان دهنده درجه عضویت است که بین   ۰ تا ۱ متغیر است. [0,1 ].
ممکن است که چنید تابع عضویت برای فازی نمودن مقداری عددی به کار برده شود. همه توابع عضویت برای  LP, MP, S, MN و LN در شکل زیر نشان داده شده است .


تابع عضویت مثلثی شکل در میان دیگر شکل‌های تابع عضویت مثل ذوذنقه ای ، تک صفحه (singleton) و گواسین (Gaussian) عمومیت بیشتری دارند.
در این شکل ورودی برای ۵ سطح فازی کننده از -۱۰ ولت تا +۱۰ ولت متغیر است.بنابراین خروجی متناظر نیز متغیر است.

مثالی از یک سیستم منطق فازی :

اجازه بدهید تا یک سیستم تهویه هوا را با پنج سطح سیستم منطق فازی مورد بررسی قرار دهیم.این سیستم دمای سیستم تهویه هوا را با مقایسه دمای اتاق و مقدار دمای مورد نظر ( هدف) تنظیم می کند.

الگوریتم
تعریف متغیر های زبانی و شرایط ( موارد)
ساختن توابع عضویت برای آن‌ها
ساختن پایگاه داده دانش قوانین
تبدیل داده‌های معمولی (Crisp Data ) به مجموعه های داده فازی با استفاده از توابع عضویت ( فازی سازی)
ارزیابی قوانین در پایگاه قانون (موتور استنتاج)
ترکیب نتابج هر یک از قانون ها (موتور استنتاج)
تبدیل خروجی داده به مقادیر غیر فازی (غیر فازی سازی )



توسعه منطق :مرحله اول : تعریف متغیر های زبانی و شرایط ( موارد)
متغیر های زبانی ، متغیر های ورودی و خروجی در شکل کلمات ساده یا جملات هستند.برای دمای اتاق ، سرد ، گرم و غیره و غیره موارد زبانی هستند.
Temperature (t) = {very-cold, cold, warm, very-warm, hot}
هر عضوی از این مجموعه یک مورد زبانی است و می‌تواند بخشی از مقادیر دما را به طور کلی پوشش دهد.

مرحله ۲ : تولید توابع عضویت برای آن‌ها :

توابع عضویت متغیر دما در ذیل نشان داده شده است

مرحله ۳ :
ایجاغد یک ماتریکس از مقادیر دمای اتاق در مقابل مقادیر دمای هدفی که از سیستم تهویه انتظار داریم برای ما فراهم کند
دمای هدف / دمای اتاق
                                      

دمای هدف / دمای اتاق

Very_Cold

Cold

Warm

Hot

Very_Hot

Very_Cold

No_Change

Heat

Heat

Heat

Heat

Cold

Cool

No_Change

Heat

Heat

Heat

Warm

Cool

Cool

No_Change

Heat

Heat

Hot

Cool

Cool

Cool

No_Change

Heat

Very_Hot

Cool

Cool

Cool

Cool

No_Change


مجموعه قوانی را پایگاه دانش به شکل IF-THEN-ELSE تولید و ایجاد می کنیم.

Sr. No.

Condition

Action

1

IF temperature=(Cold OR Very_Cold) AND target=Warm THEN

Heat

2

IF temperature=(Hot OR Very_Hot) AND target=Warm THEN

Cool

3

IF (temperature=Warm) AND (target=Warm) THEN

No_Change



مرحله ۴ : بدست آوردن مقدار فازی
عملیات های مجموعه فازی ارزیابی قوانین را انجام می دهند. عملیات استفاده شده برای OR و AND به ترتیبی بیشینه max و کمینه MIN  می باشد.همه نتایج ارزیابی به شکل نتیجه نهایی ترکیب می شوندواین تنتیجه یک مقدار فازی است.

مرحله ۵ : انجام عملیات غیر فازی نمودن
غیر فازی نمودن انجام عملیات بر اساس تابع عضویت برای متغیر خروجی می‌باشد

مجموعه داده KDD CUP 1999 چیست - کاربرد ویژگی های یک اتصال شبکه برای تشخیص نفوذ

در این پست به معرفی جامع تر مجموعه داده های جمع آوری شده برای تست سیستم هایش تشخیص نفوذ تحت نام KDD CUP 1999 می پردازم و نشان خواهم داد که یک سیستم تشخیص نفوذ چگونه با استفاده از ویژگی های اتصلات شبکه پی به برای تشخیص حمله استفاده می کند  و  آخر نیز لینک  دانلود مجموعه داده KDD CUP 1999 را قرار می دهم.

نرم‌افزار های طراحی شده برای تشخیص نفوذ در شبکه ها ، کامپیوتر را در برابر کاربران غیر مجاز و یا حتی کابران خودی  محافظت می کند.وظیفه یک سیستم خود فراگیر تشخیص نفوذ ایجاد یک مدل احتمالی ( مثلاً طبقه بندی) است که توانایی تشخیص بین اتصلات بد که نفوذ یا حمله نامیده می‌شوند و اتصلات نرمال و خوب را داشته باشند.
برنامه ارزیابی تشخیص نفوذ دارپا 1998 (DARPA 1998) بوسیله آزمایشگاههای  MIT Lincoln تهیه و مدیریت شد.هدف هم بررسی و ارزیابی سیستم‌های تشخیص نفوذ بود. یک مجموعه استاندارد از داده‌ها مورد بررسی قرار گرفت ، که شامل طیف گسترده ای از نفوذ های شبیه سازی شده در یک محیط نظامی می باشد.مجموعه داده  تشخیص نفوذ KDD 1999 از نسخه‌ای از این دیتاست استفاده و بهره برداری می کند.
آزمایش  گاه های لینکولن محیطی را برای بدست آوردن ۹ هفته‌ای داده‌ای خام TCP برای یک شبکه محلی که  شبکه محلی نیروی هوایی آمریکا را شبیه سازی می‌نمود پیاده‌سازی نمودند.این شبکه کاملاً همانند شبکه نیروی هوایی عمل می‌نمود ، اما  توسط چنیدن حمله مورد ارزیابی قرار می گرفت.داده های خام آزمایشی تقریباً ۴ گیگا بایت بود که شامل دادهای خام دودویی TCP بود که از ترافیک ۷ هفته‌ای شبکه بدست آمده بود.که حاصل پردازش ۵ میلیون رکورد های مربوط به اتصلات در این شبکه بودند. به طور مشابه دو هفته داده آزمایشی دو ملیون رکورد اتصال را به همراه داشت. یک اتصال دنباله ای از بسته های TCP است که در زمان های تعریف شده شروع و پایان می یابند و جریان انتقال داده از آدرس آی پی منبع به آدرس آی پی مقصد تحت پروتکل های شناخته شده‌ای انجام میشود.هر اتصال به عنوان نرمال یا حمله برچسب می‌خورد که دقیقاً مشخص کننده یکی از انواع حملات می باشد.هر رکورد اتصال تقریباً  شامل 100 بایت است.


حملات در ۴ دسته اصلی دسته بندی می شوند.

۱- حملات DOS (denial of service) برای مثال  syn flood
۲-R2L: دسترسی غیر مجاز از یک ماشین راه دور .برای مثال حدس زدن رمز عبور
3-U2R : دسرسی غیر مجاز مجاز به دسترسی های کاربر ارشد محلی (ROOT) مثل حملات سر ریز بافر.
۴- نظارت و کاوش برای مثال اسکن نمودن پورت ها

مهم است که یاآوری کنیم که داده‌های آزمایشی(Test Data) از توزیع مشابه داده‌های آموزشی نیستند و ممکن است شامل انواع حملات خاصی باشند که در داده آموزشی( Training Data) وجود ندارد.برخی از متخصصین نفوذ معتقدند که حملات جدید نوعی از  حملات شناخته شده هستند و داشتن ردپایی از حملات شناخته شده برای شناخت انواع جدید آن‌ها کافی است.مجموعه داده شامل ۲۴ نوع حمله آموزشی و مضافا ۱۴ نوع دیگر که تنها در داده آزمایشی وجود داردند.

 انواع ویژگی‌های مشتق شده( derived features)


Stolfo et al ویژگی‌های سطح بالاتری را که برای تشخیص اتصال های نرمال از اتصلات غیر نرمال( حملات) به ما کمک  می نماید را تعریف می کند.چندین دسته بندی برای ویژگی‌های مشتق شده وجود دارد.ویژگی Same Host تنها اتصالاتی  را که  در دو ثانیه قبل  مقصد مشابهی در اتصال جاری داشته‌اند را مورد آزمایش قرار می‌دهد و آمار های وابسته به پروتوکل رفتاری آن را محاسبه می نماید.به شکل مشابهی ویژگی Same Service تنها اتصالات در دو ثاینه قبل را که سرویس مشابهی در اتصال جاری داشته‌اند را مورد آزمایش قرار می دهد.ویژگی های same host و same service در کنار یکدیگر ویژگی‌های ترافیکی مبتنی بر زمان (Time Based) از رکورد های اتصال نامیده می شوند.
برخی از حملات نظارت و کاوش (probing) هاست ها ( یا پورتها) را با استفاده از فاصله زمانی بزرگ‌تر از دو ثاینه اسکن می‌کنند ، برای مثال یک بار در دقیقه.بنابراین رکورد های اتصال براساس هاست مقصد نیز مرتب می‌شوند ، و بدین صورت ویژگی‌ها با استفاده از یک پنجره از ۱۰۰ اتصال که هاست مشابهی دارند ساخته می‌شوند و از پنجره زمانی استفاده نمی شود. این مجموعه  ویژگی‌های ترافیکی بر پایه هاست نیز نامیده می شود. بر عکس حملات DOS و نظارت و کاوش هیچ الگوی ترتیبی  در رکوردهای  مربوط به حملات R2L و U2R مشاهده نمی شود.و علت آن این است که حملات DOS و نظارت وکاوش درگیری تعدای زیادی اتصلات به تعدادی هاست در یک بازه زمانی کوتاه هستند ولی حملاتR2L و U2R در قسمت داده بسته ها خود را جاسازی می‌کنند و تنها درگیر  یک اتصال خواهند بود.
در زیر لیست کاملی از رکورد های یک اتصال را در سه جدول مشاهده می کنیم.


ویژگی های ترافیکی محاسبه شده با استفاده از پنجره زمان دو ثانیه ای

نام ویژگیشرح نوع
count  تعداد اتصلات به هاست مشابه در  اتصال حاری در دو دقیقه قبل continuous

Note: The following  features refer to these same-host connections.
نکته : ویژگیهای زیر به اتصلات same host ارجاع داده می شوند

serror_rate  % of connections that have ``SYN'' errors  continuous
rerror_rate  % of connections that have ``REJ'' errors  continuous
same_srv_rate  % of connections to the same service  continuous
diff_srv_rate  % of connections to different services  continuous
srv_count  number of connections to the same service as the current connection in the past two seconds  continuous

Note: The following features refer to these same-service connections.
srv_serror_rate  % of connections that have ``SYN'' errors  continuous
srv_rerror_rate  % of connections that have ``REJ'' errors  continuous
srv_diff_host_rate  % of connections to different hosts  continuous 


ویژگی های محتوایی یک اتصال که پیشنهاد داده شده اند

نام ویژگیشرح نوع
hot  تعداد شاخص های hot continuous
num_failed_logins  تعداد تلاش های برای ورود که با شکست مواجه شده اند continuous
logged_in  اگر با موفقیت وارد شده باشد مقدار ۰ در غیر اینصورت ۱ discrete
num_compromised  تعداد شرایط در معرض خطر continuous
root_shell  اگر پوسته روت بدست آمده باشد ۰ در غیر اینصورت ۱ discrete
su_attempted  اگر دستور su root به کار گرفته شده باشد ۰ در غیر اینصورت ۱ discrete
num_root  تعداد دسترسی های root continuous
num_file_creations  تعداد عملیات های ایجاد فایل continuous
num_shells  number of shell prompts  continuous
num_access_files  تعداد عملیات های دسترسی کنترل فایل ها continuous
num_outbound_cmds تعداد دستورات خارجی در یک نشست ftp continuous
is_hot_login  اگر ورود متعلق به لیست hot باشد ۰ در غیر اینصورت ۱ discrete
is_guest_login  1 if the login is a ``guest''login; 0 otherwise
اگر ورود میهمان باشد  ۰ در غیر اینصورت ۱
discrete


 ویژگی های پایه یک اتصال منحصر به فرد TCP

نام ویژگیشرح نوع
duration  طول اتصال ( تعداد ثانیه ها) continuous
protocol_type  نوع پروتوکل مثل TCP , UDP و غیره discrete
service  سرویس شبکه در مقصد برای مثال http , telnet و غیره discrete
src_bytes  تعداد بایت های داده از منبع به مقصد continuous
dst_bytes  تعداد بایت های داده از مقصد به منبع continuous
flag  حالت نرمال یا خطای یک اتصال discrete 
land  اگر اتصال از /به هاست مشابهی بود آنگاه پورت ۰ در غیر اینصورت پورت ۱ discrete
wrong_fragment  تعداد فرگمنت های اشتباه continuous
urgent  تعداد بسته های فوری conti


برای دانلود فایل های مربوط به مجموعه داده KDD CUP 1999  به لینک زیر مراجعه نمایید :

KDD CUP 1999

استفاده از الگوریتم های ژنتیک برای تشخص نفوذ در شبکه

مقاله ای که معرفی خواهد شد یکی از مقالات بسیار خوب در  خصوص کاربرد الگوریتم های ژنتیک در  سیستم های تشخیص نفوذ می باشد.با خواندن پنج صفحه اول این مقاله یک دید خوب در خصوص نحوه به کارگیری الگوریتم های ژنتیک در سیستم های تشخیص نفوذ بدست آورده میشه. کل متن این مقاله به صورت زیر سازمان دهی میشود.بخش دوم یک مقدمه مختصر در خصوص الگوریتم های ژنتیک است ، بخش سوم یک توضیح همراه با جزییات در خصوص به کارگرفتن الگوریتم ژنتیک در تشخص نفوذ ، بخش چهار ساختار مطرح برای پیاده‌سازی را مورد بحث قرار می‌دهد و بخش پنجم نتیجه‌گیری و کارهای آینده .

چکیده :
این متن تکنیک اعمال نمودن الگوریتم ژنتیک را در سیستم‌های تشیخص نفوذ شرح می دهد.یک مرور کلی و خلاصه از سیستم‌های تشخیص نفوذ و تکنیک های تشخیص و الگوریتم های ژنتیک نیز آورده خواهد شد.پارامتر ها و پروسه تکامل الگوریتم ژنتیک نیز به صورت تشریحی و با جزییات مورد بحث قرار داده می شود.بر عکس دیگر مسایل مشابه ، این پیاده‌سازی هر دو نوع اطلاعات زمانی و فضایی از اتصال شبکه را به صورت رمز نمودن اطلاعات اتصال شبکه به قوانین در سیستم تشخیص نفوذ مورد بحث قرار می دهد.این شیوه برای تشخیص رفتار های ناهنجار پیچیده مفید است.این پرژه بر روی پروتوکل های شبکه TCP/IP متمرکز شده است.

مقدمه :
در سال‌های اخیر سیستم‌های تشخیص نفوذ (IDS) به یکی از داغترین زمینه‌های تحقیقاتی در بحث امنیت کامپیوتر تبدیل شده اند. این شیوه یک تکنوإوژ‌ی مهم تشخیص است و یک راه مقابله برای حفظ جامعیت داده‌ها و در در دسترسی بودن سیستم در خلال یک عملیات نفوذ می باشد.
هنگامی که یک نفوذ کرد تلاش می‌کند به یک سیستم اطلاعاتی را هم بشکند و یا یک عمل غیر قانونی را که مجاز نیست انجام بدهد ،  این فعالیت به عنوان یک نفوذ در نظر گرفته می شود.نفوذگرا را می‌توان در دو گروه قرار داد داخلی و خارجی که اشاره به آن‌هایی دارد که دسترسی مجاز(تصویب شده) به سیستم دارند و آن‌هایی که با استفاده از یکسری تکنیک های نفوذ به سیستم حمله می کنند.
تشخیص نفوذ می‌تواند با استفاده از اشکالات نرم‌افزار ، تنظیمات نادرست ، در هم شکستن رمز عبور ، مانیتور نمودن ترافیک شبکه ای غیر ایمن شده و یا بهره برداری از عیب های طراحی پروتوکل ی معین انجام شود
یک سیستم تشخیص نفوذ سیستمی است برای تشخیص نفوذ و گزارش آن‌ها با دقت کامل به فرد مناسب.
سیستم‌های تشخیص نفوذ معمولاً به سیستم‌های اطلاق می‌شوند که به عنوان ابزاری مهم در همه امور مربوط به خط مشی امنیتی یک سازمان عمل می‌کنند و عمل‌کرد سازمان را بوسیله تعریف قوانین مربوطه برای فراهم آوردن امنیت ، مدیریت نفوذ و بازیابی آسیب های ایجاد شده بوسیله نواقص امنیتی را منعکس می نماید.
دو شاخه اصلی از تکنیک های مربوط به تشخص نفوذ وجود دارند که مورد تأیید عمومی می باشد.
تشخص سو استفاده (misuse) و تشخیص ناهنجاری (anomaly) .تشخیص سوء‌استفاده به تکنیک های اطلاق می‌شود که متد های شناخته شده برای نفوذ به یک سیستم را مشخص می کند. این نفوذ ها به عنوان الگو(pattern) یا امضا(signature) مشخص می‌شوند که سیستم تشخیص نفوذ به دنبال آن است.امضا/الگو ممکن است که یک رشته ایستا باشند (static string) یا دنباله ای از عملیات هاست و پاسخ سیستم بر اساس نفوذ تشخیص داده شده می باشد.تشخیص ناهنجاری به تکنیک هایی اطلاق می‌شود که رفتار های قابل قبول و نرمال یک سیستم را تعریف و مشخص می‌کنند ( برای مثال میزان مصرف پردازنده ، زمان اجرا ، فراخوانی های سیستم) و رفتار هایی که از رفتار های نرمال و مورد انتظار سیستم خارج می‌شوند به عنوان نفوذ مورد بررسی قرار می گیرند.
 سیستم‌های تشخیص نفوذ را می‌توان با توجه به مکانی که برای جستجوی رفتار های نفوذی قرار می‌گیرند را به دو گروه تقسیم نمود. سیستم‌های تشخیص نفوذ بر پایه شبکه (NIDS) و سیستم‌های تشخیص نفوذ بر پایه هاست (HIDS) .سیستم های تشخیص نفوذ بر پایه شبکه به سیستم‌های اطلاق می‌شوند که نفوذ را بوسیله نظارت بر ترافیک ورودی و خروجی دستگاههای شبکه انجام می دهند(برای مثال کارت رابط شبکه NIC) .سیستم های تشخیص نفوذ بر پایه هاست فایل‌ها و پردازش های  فعال یک محیط نرم افزاری که مربوط به یک میزبان خاص می‌باشد را مورد نظارت قرار می دهند.برخی از سیستم‌های تشخیص نفوذ بر پایه هاست علاوه بر عمل‌کرد نرم افزاری به ترافیک شبکه برای تشخیص حملات به میزبان خود نیز توجه دارند . البته تکنیک های در حال ظهور و تکامل دیگری نیز وجود دارند.برای مثال سیستم‌های تشخیص نفوذی که به Blocking IDS معروف هستند که سیستم‌های تشخیص نفوذ بر پایه هاست را با توانایی ویرایش قوانین دیوار آتش ترکیب می کنند. نمونه دیگر که HoneyPot نامیده می‌شود که به عنوان یک طعمه هدف برای شخص مزاحم در نظر گرفته می‌شود و مشخصاً برای تلگه گذاری برای مزاحم طراحی شده‌اند و با استفاده از آن‌ها می‌توان محل مزاحم را تشخیص و به حملات او پاسخ داد.
سیستم‌های تشخیص نفوذ هوشمند (IIDS) نیز از پروژه های در حال انجام در مرکز تحقیقات کامپیوتری (Center for Computer SecurityResearch (CCSR)) در دانشگاه ایالتی می سی سی پی است.که در آن شیوه‌های مختلف برای مسائله سیستم تشخیص نفوذ با یکدیگر ترکیب می‌شوند و شامل تکنیک های مختلف هوش مصنوعی برای کمک به تشخیص رفتار نفوذگرانه .در این روش از تکنیک های تشخیص ناهنجاری و تشخیص سوء‌استفاده و هم از سیستم‌های تشخیص نفوذ بر پایه شبکه و بر پایه هاست استفاده می شود.بعضی از نرم‌افزار های تشخیص نفوذ متن باز که شامل همه این امکانات نیز هستند برای استفاده به عنوان سنسور های امنیتی مجتمع شده اند.مثل Bro و Snort .تکنیک هایی که در ادامه خواهیم دید قسمتی از تحقیقات در خصوص سیستم‌های تشخیص نفوذ هوشمند می باشد.
الگوریتم های ژنتیک به روش‌های مختلفی در سیستم‌های تشخیص نفوذ مورد استفاده قرار می گیرند.بر پایه تحقیقی که در دانشگاته تگزاس انجام گرفته است(Sinclair, Pierce, and Matzner 1999) از تکنیک های مختلف یادگیری ماشین مثال  finite state machine ،درخت تصمیم گیری و الگوریتم ژنتیک برای تولید قوانین هوشمند برای سیستم‌های تشخیص نفوذ استفاده می کند.یک اتصال شبکه و رفتار های وابسته به آن می‌توانند به نحوی ترجمه شوند تا قوانینی را به نمایش بگذارند که  بتوان با استفاده از آن‌ها در خصوص اینکه آیا این اتصال در لحظه ( بهنگام) real-time به عنوان یک نفوذ در نظر گرفته شود قضاونت نمود.قوانین می‌توانند به عنوان کروموزم های داخل جمعیت مدل شوند.این جمعیت تاز زمانی که معیاری های ارزیابی بر آورده شوند تکامل(evolves) می یابند.مجموعه قوانین تولید شده به عنوان دانش درونی یک سیستم تشخیص نفوذ برای قضاونت در مورد اینکه آیا اتصال شبکه و رفتار های مربوط به آن بصورت بالقوه نفوذگرانه هستند یا خیر.
آزمایشگاه COAST در دانشگاه Purdue(Crosbie and Spafford, 1995) سیستم تشخیص نفوذی را ایجاد نمودند که از عامل های مستقل (autonomous agents) -سنسورهای امنیتی- و اعمال هوش مصنوعی برای تکامل الگوریتم های ژنتیک استفاده نموده است.عامل ها به عنوان کروموزوم ها مدل شده‌اند و یک ارزیابی داخلی نیز درون هر عامل مورداستفاده قرار گرفته است.(Crosbie and Spafford, 1995).
در روش‌های که در بالا شرح داده شد ، سیستم تشخص نفوذ را می‌توان به عنوان سیستم بر پایه قانون (RBS) تصور نمود و الگوریتم ژنتیک به عنوان یک ابزار برای کمک به تولید دانش برای این سیستم بر پایه قانون در نظر گرفته می شود.این شیوه دارای معایبی است .به منظور تشخیص رفتار های نفوذگرانه برای یک شبکه محلی ، اتصال شبکه باید برای تعریف و مشخص نمودن رفتار های نرمال و عادی و غیر طبیعی مورد استفاده قرار گیرد.گاهی اوقات یک مله می‌تواند  اسکن ساده  پورت های در دسترس یک سرور باشد یا یک طرح برای حدس زدن رمز عبور.اما به صورت معمول این حملات بسیار پیچیده‌تر هستند و بعضا نیز بوسیله ابزار های اتوماتیک که در اینترنت هم به صورت مجانی در دسترس هستند تولید می شوند.
یک مثال می‌تواند اسبهای تروا و یا backdoor ها باشند که می‌توانند برای مدت طولانی اجرا شوند ، یا از مکانهای مختلفی آغاز شوند.برای تشخیص چنین نفوذ هایی هم  اطلاعات زمانی و مکانی ترافیک شبکه باید در مجموعه قانون موجود باشد.کاربردهای فلعی الگوریتم ژنتیک این موضوع را پشتیبانی نمی کنند(temporal and spatial information. ). در ادامه نشان می‌دهیم چگونه اطلاعات اتصال شبکه می‌تواند به عنوان کروموزوم ها مدل شوند و چگونه می‌توان  پارامتر های درون الگوریتم ژنتیک در این رابطه تعریف نمود.مثال هایی برای نشان دادن این موضوع آورده خواهد شد.
برای مشاهده کامل این مقاله می توانید از لینک زیر استفاده کنید:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.3125&rep=rep1&type=pdf