X
تبلیغات
رایتل

IDS: Intrusion Detection System

مفهوم Honeynet چیست ؟

مفهوم Honeynet چیست ؟

گروهی از متخصصین امنیت  مفهوم Honeypot را توسعه و گسترش داده و پروژه ای را ایجاد نمودند که به یادگیری تاکتیک‌ها ، ابزارها و انگیزه‌های هکرهای کلاه سیاه می‌پردازد و اطلاعاتی را که بدست آورده می شود را به اشتراک می گذارند.این پروژه به عنوان پروژه Honeynet نشاخته می‌شود ( Honeynet Project ) که می‌توان اطلاعات بیشتر در خصوص آن را در این صفحه http://honeynet.org یافت نمود.
در حالی که Honeypot می‌تواند یک ماشین یکتا باشد ، honeynet یک شبکه است ، جایی که داده ورودی و خروجی آنالیز و جمع آوری میشود. در این شبکه ، داخل این شبکه ، یک طیف گسترده از محصولات سیستمی استاندارد تعریف شده اند. این سیستم‌ها سرویس های واقعی را که به طور قابل ملاحظه ای به موقعیت های واقعی نزدیک هستند و در اغلب سازمانها امروز یافت می‌شوند را فراهم می نماید
و همین ویژگی باعث می‌شود که شناسایی Honeynet ها بسیار سخت از Honeypot ها باشد .طرحهای ها بیشتر نیز وجود در خصوص توسعه این ابزار وجود دارد مثل ترکیب honeynet ها با محصولات سیستمی زنده که این شناسایی آن‌ها را سخت‌تر می نماید.در واقع honeynet ها شبکه ای گسترده از honeypot ها می‌باشند
هدف نهایی این پروژه در دو زمینه می‌باشد
۱- افزایش آگاهی در خصوص تهدیدات و آسیب‌پذیری های اینترنت
۲- آموزش امنیت اطلاعات به متخصصین امنیتی در سطح بالا و کارآمد
سایتی که در بالا معرفی شد حاوی اطلاعات فراوان در خصوص مقالات معتبر در زمینه  پروژه ، داده‌های جمع آوری شده و تجزیه و تحلیل شده و سناریوهای مختلف نفوذ می باشد

Honeypot ها چه هستند و چگونه به امنیت سیستم‌های کامپیوتری کمک می‌کنند

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

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

*Honeypot تحقیقی (Research Honeypot  ):

یک Honeypot تحقیقی برای مطالعه و تحقیق در باره تاکتیک‌ها و تکنیهای مورد استفاده نفوذگران مورد استفاده قرار می گیرد.در واقع از آن‌ها به عنوان یک پست دیده بانی برای مشاهده اینکه چگونه یک حمله کننده سد های امنیتی یک سیستم را در همی می شکند.
*محصول و ابزار Honeypot ( Production Honeypot  ) :
این نوع از Honeypot ها اساساً برای تشخیص و محافظت از سازمانها مورد استفاده قرار می گیرند.هدف اصلی از یک محصول Honeypot  کمک به کاهش ریسک در یک سازمان می باشد.


چرا Honeypot

ارزش و کارآمدی یک Honeypot با استفاده از اطلاعاتی که می‌توان از آن بدست آورد ارزیابی می گردد.مانیتور نمودن اطلاعاتی که به یک honeyhpot وارد و از آن خارج می‌شود به کاربر اجازه می‌دهد تا اطلاعاتی را که در صورت استفاده ننمودن از Honeypot در دسترس نیستند را جمع آوری نماید. دو دلیل اصلی  برای استفاده از یک Honeypot وجود دارد
1- افزایش فهم و ادراک
فهم چگونگی عمل‌کرد هکرها و تلاشهای آن‌ها برای بدست آوردن دسترسی به سیستم‌های شما.ایده سراسری و کلی حفظ و نگاهداری مسیر ها و فعالیت‌های مجرمان است ، تا یک فهم  و ادراک بهتر برای شناسایی متدلوژی های آن‌ها بدست آید  و از این فهم و ادراک برای محافظت بهتر سیستم‌های و محصولات واقعی استفاده شود.
۲- جمع آوری اطلاعات
جمع آوری اطلاعات و مدارک قانونی برای کمک به دستگیری و یا تعقیب قانونی هکرها. این مجموعه از اطلاعات اغلب اوقات برای تعقیب قانونی مجرم با جزییات لازم مورد نیاز هستند.


چگونه Honeypot ها به امنیت سیستم‌های کامپیوتری کمک می‌کنند :

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


Honeypot های با تعامل بالا و تعامل کم

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


مزایای استفاده از Honeypot ها
جمع آوری داده‌های واقعی :
در حالی که Honeypot ها یک بخش کوچی از داده را جمع آوری می نمایند اما تقریباً همه این داده حملات واقعی یا فعالیت‌های غیر مجاز می‌باشد
کاهش False Positive
اعلب تکنولوژهای تشخیص ( IDS,IPS  ) تعدای زیادی هشدار های اشتباه و غیر واقعی دارند در حالی که این در مورد Honeypot صادقی نیست
مقرون به صرفه بودن
Honeypot با فعالیت‌های مخرب در تعامل است و نیاز به منابع با کارایی بالا ندارد
رمز نگاری :
با استفاده از Honeypot مهم نیست که هکر از رمز نگاری استفاده کند در هر صورت فعالیت‌های او ضبط خواهد شد
سادگی :
فهم ، توسعه و نگاهداری Honeypot ها بسیار ساده است

منبع

http://www.thewindowsclub.com/what-are-honeypots

اعتبار سنجی ضربدری k-fold (K-Fold Cross Validation )

اعتبار سنجی ضربدری (Cross Validation) یکی از مهمترین تکنیک هایی است که به طور گسترده توسط دانشمندان علم داده مورد استفاده قرار می گیرد.مسائله ای که در هنگام کار  با مدل های یادگیری ماشین (machine learning model ) وجود دارد این است که شما می نمی توانید کارایی مدل خود را تا زمانی که کارایی آن را بر روی یک مجموعه داده مستقل تست نکرده اید بدست آورید ( مجموعه داده ای که برای آموزش training مدل یادگیری ماشین مورد استفاده قرار نگرفته باشد).
اعتبار سنجی ضربدری برای کمک به تخمین کارایی مدل یادگیری ماشین می باشد و یکی از معروف ترین انواع اعتبار سنجی ضربدری اعتبار سنجی k-fold می باشد.
اعتبار سنجی ضربدری چیست ؟
اعتبار سنجی ضربدری یک تکنیک بسیار مفید برای ارزیابی کارایی مدل های یادگیری ماشین است.این روش کمک می کند متوجه شویم  به چه صورت  مدل یادگیری ماشین که ایجاد کرده ایم  به یک مجموعه داده مستقل تعمیم داده می شود.ممکن است شما از این تکنیک برای پیش بینی و تخمین زدن دقت و کارایی مدل خود در دنیای واقعی  استفاده کنید.زمانی که یک  مسائله یادگیری ماشین به ما داده می شود ، معمولا با دو مجموعه داده سر کار داریم که داده های شناخته شده (training data set  ) و داده های ناشناخته (test data set ) می باشند.با استفاده از ارزیابی ضربدری Cross Validation می توانیم مدل یادگیری ماشین خود  را در فاز آموزش (training ) برای چک نمودن کارایی و بدست آوردن یک ایده و نظر از چگونگی تعمیم مدل یادگیری ماشین خود به داده های مستقل تست نماییم ( testing ).در واقع ارزیابی و صحت مدل یادگیری ماشین خود را در همان مرحله آموزشی انجام می دهیم.
در اعتبار سنجی ضربدری ابتدا مجبور هستیم تا مجموعه داده آزمایشی اصلی را به دو بخش تقسیم کنیم :
  •     مجموعه آموزشی اعتبار سنجی ضربدری Cross validation training set
  •     مجموعه آزمایشی اعتبار سنجی ضربدری یا مجموعه اعتبار سنجی Cross validation testing set
در این روش مدل یادگیری ماشین ما در مجموعه آموزشی اعتبار سنجی ضربدری آموزشی می بیند و پیشبینی ها و کارایی مدل در  برابر مجموعه اعتبار سنجی validation set مورد ارزیابی قرار می گیرد. شما نسبت به اینکه دقت و کارایی پیش بینی های مدل یادگیری ماشینتان چقدر دقیق است آگاه می شوید. در واقع پیش بینی های مدل شما در مجموعه ارزیابی و برچسب های واقعی داده در مجموعه اعتبارسنجی validation set. مورد ارزیابی قرار می گیرد. برای کاهش واریانس ، چندین مرحله اعتبار سنجی ضربدری با استفاده  از مجموعه های آموزشی (training ) اعتبار سنجی ضربدری و مجموعه های آزمایشی ( testing ) اعتبار سنجی ضربدری انجام می گیرد.در نهایت نتیجه همه مراحل میانگینی برای تخمین صحت و کارایی مدل یادگیری ماشین ما خواهد بود

اعتبار سنجی ضربدری k-fold
اعتبار سنجی ضربدری k-fold یکی از عمومی ترین انواع اعتبار سنجی ضربدری می باشد که به طور گسترده ای در یادگیری ماشین مورد استفاده می باشد. اعتبار سنجی ضربدری k-fold با استفاده از گام های زیر انجام می شود.

۱- مجموعه داده اصلی را به k زیر مجموعه مساوی تقسیم می کنیم.هر زیر مجموعه یک fold نامیده می شود.اجازه بدهید که فولدها را به صورت f1,f2,….,fk نام گذاری نماییم.

    ۱-    For i=1 to i=k

    فولد fi  را به عنوان مجموعه اعتبارسنجی نگاه می داریم و همه k-1 فولد باقی مانده را  در مجموعه آموزشی اعتبار سنجی ضربدری Cross validating training set نگاه داری می کنیم.
    ۲- مدل یادگیری ماشین خود با استفاده از مجموعه آموزشی اعتبارسنجی ضربدری آموزش می دهیم و سپس دقت و کارایی مدل خود را با استفاده از  اعتبار سنجی نتایج پیشبینی در مقابل مجموعه اعتبار سنجی Validation sert محاسبه می نماییم
۲-حالا دفت و کارایی مدل یادگیری ماشین خود را با استفاده از بدست آوردن میانگین همه دقت هاو صحت های بدست آمده از همه موارد k از اعتبار سنجی ضربدری تخمین می زنیم
در متد اعتبار سنجی ضربدری k-fold ، همه ورودی ها در محموعه داده آموزشی برای هم آموزش و همچنین اعتبار سنجی validating به کار می رود ، هر ورودی تنها یک بار برای اعتبار سنجی مورد استفاده قرار می گیرد.
نکته اینکه معمولا برای k عدد ۱۰ در نظر گرفته می شود ، اما این یک قانون نیست و k می تواند هر عددی در نظر گرفته شود

منبع :

ارزیابی دسته بندی ها ( Classifier Evaluation )

اگر شما با مسائل مربوط به تجزیه و تحلیل داده ها سر و کار دارید احتمالا با دسته بندی های مختلف classifier ، مجموعه های ویژگی مختلف و حتی شاید مجموعه های پارامتر متفاوت دست و پنجه نرم می کنید و در نهایت به جایی می رسید که باید درباره ارزیابی کارهای خود فکر کنید.دسته بندی که من ایجاد کرده ام چقدر خوب کار می کند ؟ چیزی که قرار است به آن بپردازیم این عبارت است که چگونه باید کارایی دسته بندی خود را اندازه گیری کنیم
یک جواب آشکار برای این سوال استفاده از صحت و درستی accuracy دسته بندی ماست.تعداد نمونه هایی که به درستی دسته بندی شده اند.ما یک دسته بند داریم که نمونه هایی آزمایشی را دریافت می کند و یک دسته را برای هر کدام از نمونه ها فرض می کند(قرار می دهد) در واقع به هر یک از داده هایی که داریم یک دسته در نظر می گیرد و آنها را در یک گروه قرار می دهد.در هر نمونه آزمایشی حدسی که دسته بند زده است یا صحیح است یا اشتباه.ما به سادگی تعداد تصمیمات صحیحی که دسته بند مان گرفته است را شماره می کنیم و بر تعداد کل نمونه های آزمایشی تقسیم می کنیم و نتیجه حاصل دقت دسته بند ما خواهد بود.این خیلی ساده است ، اکثر غریب به اتفاق نتایج تحقیقاتی دقت accuracy را گزارش می دهند و بسیار از پروژه های عملی نیز به همین صورت عمل می کند.این یک رویه و معیار پیش فرض است.
اشتباه این روش کجاست ؟ دقت و کارایی یکی از ساده ترین روش های اندازه گیری است که باعث سردرگرمی و اشتباه در بسیاری از مسائل دنیای واقعی است.در حقیقت بهترین راه حل استفاده از دقت و کارایی و یک معیار فراگیری برای ارزیابی است.

اشتباه روش دقت و کارایی در کجاست ؟
برای نشان دادن مسائل ، اجازه بدهید با یک مثال با دو کلاس و دسته شروع کنیم.هر دسته بند برای  حوزه این مسائله نمونه ایی از دو کلاس را مشاهده میک ند و خروجی نیز یکی از دو امکان Y یا N است صرف نظر از مجموعه آزمایشی و دسته بندی خاص مسائله شما می توانید هر یک از تصمیمات زیر را بگیرید :
۱- نمونه های مثبتی که به عنوان مثبت دسته بندی شده اند( نمونه های صحیحی که به درستی دسته بندی شده اند ) که true positive نامیده می شوند
۲- نمونه های مثبتی که به اشتباه ، منفی دسته بندی شده اند(نمونه های صحیحی که به اشتباه به صورت اشتباه دسته بندی شده اند) false negative
۳-یک نمونه  منفی که به عنوان منفی دسته بندی شده  ( نمونه های اشتباهی که به درستی به صورت اشتباه دسته بندی شده اند)
true negative
۴-یک نمونه منفی به صورت نادرست به عنوان مثبت دسته بندی شده است( نمونه اشتباهی که به اشتباه به عنوان صحیح  دسته بندی شده است)false  positive
 می توانیم یک ماتریکس ۲×۲ با ستونهای با عنوان دسته های صحیح ( واقعی) و سطرحهایی به عنوان دسته های فرض شده ( آنهایی که حد زده ایم و به نمونه آزمایشی نسبت داده ایم)ایجاد کنیم.این ماترکیس معروف به confusion matrix یا contingency table (جدول احتمال) می باشد.نمونه آن ار در زیر می بینیم :بدنه ماریکس شامل شمارش تعداد دسته بندی های صحیح و شمارش تعداد دسته بندی های ناصحیح می باشد.
از طریق این جدول دقت و کارایی به راحتی با جمع قطرها و تقسیم آن بر کل مقادیر جدول  بدست می آید :
Accuracy=True Positive+true negative/True Positive+True Negative+False positive+False Negative


مشکل با عدم تعادل دسته(کلاس ، طبقه )
دقت و کارایی با همه نمونها رفتار مشابهی دارد و تنها درصدی از پاسخ های صحیح را گزارش می دهد. دقت و کارایی زمانی می تواند مفید باشد که ما با مجموعه های داده متعادل ( یا تقریبا متعادل) سر و کار داشته باشیم.چیزی مثل 50/50 و اگر بیشتر از این بود و تعادلی وجود نداشت دقت و کارایی  accuracyما را گمراه می کنند.مجموعه داده ای را فرض می کنیم که با نسبت 99:1 از منفی ها و مثبت ها تشکیل شده است.به سادگی می توان حدس زد که دسته ای را که 99٪ دقت و کارایی را در بر دارد چه دسته است.
در دنیای واقعی ، حوزه مسائل غیر متعادل یک قانون و واقعیت است تا یک استثنا. خارج از محیط آکادمیک هرگز با یک مجموعه داده متعادل برخورد نخواهید کرد.دلیل آن هم بسیار آشکار و سر راست است.در بسیاری از موارد ، یادگیری ماشین برای پردازش جمعیت هایی شامل تعداد زیادی نمونه منفی ( ناخوشایند) و تعداد کمتری نمونه مثبت ( مورد دلخواه خوشایند )مورد استفاده قرار میگیرد.نمونه ای برای چنین حوزه هایی تشخیص تقلب هستند  ( ۱٪ تقلب یک مسائله و مشکل خیلی بزرگ است ) ، غربالگری HIV (در آمریکا حدود 0.4٪ است) ، پیش بینی تشخیص خرابی دیسک درایو (تقریبا 1٪ در سال )، نرخ خرابی دستگاه ههای یک کارخانه ( 0.1٪) و موارد بسیاری دیگر که در اینجا آورده نشده است.همانطور که در مثال ها می بینید عدم تعادل در هر کجا وجود دارد پس تقریبا با هیچ مجموعه داده ای روبه رو نخواهیم بود که در آن تعادل وجود داشته باشد .
چگونه این عدم تعادل در مجموعه های داده ارزیابی دسته بندی ما را پیچیده می کند. در ادامه با یک مثال مسائله را روشنتر می نماییم. می خواهیم کدام بدانیم که احتمالا کدام یک از مشتریان به زودی قرارداد خود را کنسل می نماید. نیمه بالایی دیاگرام جمعیت آموزشی Training population را نشان می دهد.ما جمعیت را به دو نیمه یکی مثبت و دیگری منفی متعادل نموده ایم و در نهایت دو دسته A و B را آموزش می دهیم.هر کدام از آنها میزان درصد خطای مشابهی را ایجاد می کند ، بنابراین در این مجموعه داده خاص دقت و کارایی آنها یکسان است، همانگونه که بوسیله ناحیه قرمز در نیمه بالایی نمایش داده شده است.
دیاگرام نیمه پایینی دو دسته مشابه در محیط آزمایشی testing را نمایش می دهد که در آن جمعیت از مردم که انصراف می دهند ۱۰ ٪ و جمعیتی که انصراف نمی دهند ۹۰٪ می باشد.این نمونه بسیار به واقعیت نزدیک تر است.توجه کنید که حالا A از وضعیت بسیار بدتری برخوردار است زیرا خطاهای مربوط به آن False Positive هستند.( مقادیری که صحیح نیستند ولی به اشتباه مثبت ارزیابی شده اند).دو درس از این مثال می توان گرفت.اول اینکه باید در مورد دسته بندی خود بیشتر از آنچه دقت accuracy به ما می گوید بدانیم و دوم اینکه صرف نظر از جمعیتی که شما عملیات آموزش را در آن انجام داده اید ، باید همیشه در یک جمعیت واقعی نیز آزمایش انجام داده و دسته بندی های خود را مورد امتجان قرار دهید.
مسائله با هزینه های خطا ( اشتباه ) :
مسائله دومی نیز وجود دارد.فرض کنید بر روی دامنه مسائله کلیک بر روی آگهی های تبلیغاتی مطالعه انجام می دهیم. نرخ مورد اتظار ( دسته پیشین class prior ) کلیک تقریبا 0.09٪ است. این بدان معناست که دسته بندی که بدون قید شرط می گوید نه کاربر کلیک نخواهد کرد دارای دقت 99.91٪ است.چه چیزی در خصوص این تفسیر اشتباه است. به طور جدی هیچ چیز .این کارایی بسیار عالی است البته اگر دقت و کارایی accuracy همان چیز باشد که گفته شد و مورد توجه ماست.اما مسائله این است که ما به بعضی از کلاس ها توجه بیشتری نسبت به بقیه داریم.در این مورد به آن 0.09٪ درصدی از مردمی که روی پیام های تبلیغی کلیک می کنند خیلی بیشتر از آن 99.91٪ درصدی که کلیک نمی کنند توجه داریم. برای اینکه در خصوص این موضوع دقیقتر شویم در خصوص اشتباهاتی که ممکن است انجام دهیم بیشتر دقت می کنیم.یک پیام تبلیغاتی را به مردمی نمایش می دهیم که روی آن کلیک نمی کنند  ( False Positive در ماتریکس بالا ) خیلی بد نیست اما نمایش تبلیغات به مردمی که روی آن کلیک خواهند کرد (False Negative ) خیلی بدتر است.هدف قرار دادن صحیح مردم برای یک پیام تبلیغاتی هدف نهایی ما برای ساخت یک دسته بند در اولین قدم است.
هزینه های خطای مختلف در اغلب حوزه ها وجود دارد.در تشخیص دارو ، هزینه تشخیص سرطان هنگامی که موجود نبودن آن( واقعی نبودن آن) نسبت به از دست دادن یک نمونه درست متفاوت است.در دسته بندی اسناد ، هزینه بازیابی یک سند غیر ضروری از هزینه از دست دادن یک سند مرتبط و مورد نظر ما متفاوت است.
در مورد مجموعه های داده عمومی چطور ؟ ( مجموعه داده هایی که برای منظور یادگیری ماشین تهیه شده اند)
اگر شما با پایگاه داده هایی شبیه مجموعه داده های UCI کار کنید ،ممکن است متوجه شوید که مجموعه های داده مشکلاتی را که تا کنون ذکر شد را ندارند ، دسته ها معمولا متعادل هستند و ههنگامی که اطلاعات مربوط به هزینه خطا تهیه می شود ، ه نظر می رسد که دقیق و بدون مشکل هستند.در حالی که این مجموعه های داده از مسائل واقعی بدست آمده اند و تولید شده اند ، در اغلب اوقات قبل از نهایی شدن پاک سازی شده اند و به طور مصنوعی متعادل گردیده و دارای هزینه های خطای دقیق هستند.
معیار های ارزیابی دیگر
در این نقطه قانع شده ایم که بدست آوردن دقت و کارایی دسته بندی با روش های ساده ای که ذکر شد معیار اندازه گیری ضعیفی برای حوزه ها مسائل  در دنیای واقعی هستند پس به همین دلیل معیارهای ارزیابی دیگری بدین منظور توسعه داده شد و این نکته مهم را به خاطر می سپاریم که همه چیز به سادی روشی که در confusion matrix گفته شد نیست.
در ذیل به چند معیار که ممکن است با آن برخورد داشته باشیم ذکر می شود :
true positive rate = TP/(TP+FN) = 1 − false negative rate
false positive rate = FP/(FP+TN) = 1 − true negative rate
sensitivity = true positive rate
specificity = true negative rate
positive predictive value = TP/(TP+FP)
recall = TP / (TP+FN) = true positive rate
precision = TP / (TP+FP)
F-score (میانگین هارمونیک)precision and recall -
F=2*( precision * recall / precision + recall)
G-score (میانگین هندسی-گئومتریک)precision and recall -
در این قسمت مثال هایی از false positive و false negative می آوریم.
امنیت فرودگاه : یک false poitive هنگامی رخ می دهد که تعدادی آیتم مثل کلید و یا سکه به اشتباه به عنوان سلاح در نظر گرفته شد و دستگاه امنیتی شروع به بوق زدن می کند.
کنترل کیفیت : false positive زمانی رخ می هد که یک آیتم با کیفیت خوب دور انداخته شود و false negative هنگامی است که آیتم با کیفیت پایین پذیرش شود
یک نرم افزار آنتی ویروس : false positive زمانی رخ می دهد که فایل های نرمال به عنوان ویروس در نظر گرفته شوند
غربالگری پژشکی : انجام یک تست پزشکی کم هزینه برای گروه بزرگی ازمردم می تواند false positive های بسیاری را رقم بزند ( به شما بگوید بیمار هستید در صورتی که نیستید ) و از شما بخواهد که تست های بیشتری را انجام بدهید.

آنها می گویند که شما انجام داده اید آنها می گویند که شما انجام داده اید
False Negativeآنها صحیح می گویندشما واقعا انجام داده اید
آنها صحیح می گویندfalse positiveشما واقعا انجام نداده اید

معرفی Snort به عنوان یک نرم افزار تشخیص نفوذ پر پایه شبکه

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

۱- Snort قابلیت شخصی سازی و تنظیم دارد.همه عملکردهای داخلی snort ، فایل‌های مربوط به تنظیمات و قوانین مربوط به شناسایی تشیخص نفوذ قابل شخصی سازی می‌باشد و این قابلیت را به کاربر می‌دهد تا snort را بر اساس نیاز های خاص خود و ساختار شبکه خود تنظیم نماید.حتی کاربر می‌تواند در نهایت با استفاده از قابلیت تعریف قوانینی که خود بوجود می‌آورد با حملات جدید نیز مقابله نماید.
۲- گستردگی استفاده از آن. بسیار زیاد  است به طوری که آمار ماهانه دانلود آن به دهها هزار می رسد.
۳- snort یک نرم‌افزار چند سیستم عاملی است و به راحتی بر روی سیستم عامل های مختلف اجرا می شود.

۴-snort به طور مداوم در حال به روز رسانی است.نسخه های جدید ، قوانین حدید برای شناسایی حملات جدید همگی به طور مداوم از طریق وب سایت www.snort.org قابل بارگزاری هستند.


قسمت‌های تشکل دهنده Snort
هدف طراحان Snort تولید یک نرم‌افزار متن باز با کیفیت بالا بوده است که به نظر بسیاری از کارشناسان در این امر موفق بوده اند.در پروسه طراحی Snort توسعه دهندگان انرژی خود را برای استفاده از ابزارهای موجود و توسعه توانایی‌های این ابزارهای برای تولید چیزهای جدید متمرکز نموده اند.حالا فکر می‌کنید مثلاً کدام ابزار موجود.یکی از ابزارهای بسیار کابردی درسیستم های مبتنی بر یونیکس و لینوکس TcpDump می باشد.که وظیفه آن دریافت بسته های داده در شبکه می باشد.خالق snort آقای Marty Roesch از این قابلیت Tcp Dump برای گرفتن بسته ها استفاده نمود و قابلیت آنالیز این بسته ها برای مجموعه‌ای از امضاهای حملات را به آن اضافه نمود.snort از اجزای مختلفی تشکیل شده است که هر جزء وظایف مربوط به خود را انجام می‌دهد که در شکل زیر اجزای آن را مشاهده می نمایید.

قوانین Snort برای خلاف بسیاری از محصولات تجاری مشابه بسیار انعطاف پذیر هستند و کاربر به راحتی می تواند قوانین دلخواه خود را برای شناسایی حملات مورد نظرش تعریف نماید .برای مثال در ذیل  قانون تعریف شده برای شناسایی تروجان SubSeven آورده می شود :
alert tcp $EXTERNAL_NET 27374 -> $HOME_NET any (msg:"BACKDOOR subseven 22"; flags: A+; content: "|0d0a5b52504c5d3030320d0a|"; reference:arachnids,485; reference:url,www.hackfix.org/subseven/; sid:103; classtype:misc-activity; rev:4;)
محتویات قبل از پرانتر به عنوان rule header شناخته می شود و محتویات داخل پرانتر به عنوان انتخاب های قانون Rule Options شناخته می شود.