X
تبلیغات
وکیل جرایم سایبری

IDS: Intrusion Detection System

استفاده از الگوریتم ژنتیک برای حل یک معادله ساده ریاضی

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

راه حلی که توسط الگوریتم های ژنتیک تولید می‌شود یک کروموزوم نامیده می‌شود و  مجموعه از کروموزم ها ، جمعیت population نامیده می شوند.کروموزم ها از ژنها تشکیل شده‌اند و مقدار آن می‌تواند عددی ، دودویی ، سمبل ها یا کاراکتر ها باشد که وابسته به مسائله است که قصد حل نمودن آن را داریم.شایان ذکر است نحوه نمایش کروموزوم ها و مقادیر ژنها یکی از اساسی ترین  قسمت های حل یک مسائله با استفاده از الگوریتم ژنتیک است و دیگر قسمت بسیار مهم در این الگوریتم ها تعریف تابع برازش است که در قسمت بعدی به ٔآن پرداخته می شود.
ارزش و بهای هر کروموزم توسط تابعی تحت نام برازش اندازه گیری می شود ، در واقع تابع برازش میزان مفید و مناسب بودن راه حل برای مسائله مورد نظر را اندزه گیری می نماید.پس ‌از هر مرحله ای که الگوریتم ژنتیک تکرار شد برازش هر یک از راه حل های تولید شده ( کروموزوم ها ) اندزه گیری می شود.برخی از کروموزم ها درون جمعیت تحت پروسه‌ای به نام crossover با یکدیگر ترکیب می‌شوند و بدین صورت کروموزم های جدیدی که فرزند نامیده می‌شود تولید می‌کنند که ترکیب ژن این کروموزم های جدید ترکیبی از ژنهای والدین آنهاست.در یک نسل تعدای از کروموزومها نیز در ژنهای خود دچار جهش mutation می شوند.
تعداد کروموزوم هایی که تحث تأثیر crossover و جهش mutation قرار میگیرند بوسیله نرخ برش و نرخ جهش کنترل می شوند.کروموزومی در جمعیت که برای نسل بعدی حفظ و نگاهداری می‌شود بوسیله قانون تکامل داروین انتخاب می شود.کروموزمی که مقدار برازش بالاتری دارد از احتمال بالاتری برای انتخاب دوباره در نسل بعدی برخوردار است.بعد از چندین نسل ، مقدار کروموزم به یک مقدار خاص که بهترین راه حل برای مسائله است همگرا می شود.
مراحل الگوریتم ژنتیک
۱: در الگوریتم ژنتیک فرآیند به شرح ذیل است
قدم ۱ : تعداد کروموزوم ها ، نسل ها و نرخ جهش و نرخ برش  معیین می شود
قدم ۲: بر اساس تعداد جمعیت کروموزوم – کروموزوم   ایجاد می شود و ژنهای کروموزوم –   با یک مقدار تصادفی مقدار دهی اولیه می شوند.
قدم ۳ : قدم‌های ۴-۷ را تا زمانی که تعداد نسل ها برآورده شود ( تأمین شود) انجام می شود
قدم ۴ :مقدار برازش کروموزوم  بوسیله محاسبه تابع هدف objective function مورد ارزیابی قرار می گیرد
قدم ۵ : انتخاب کرموزوم
قدم ۵ : برش
قدم ۶:جهش
قدم ۷: کرموزم جدید (فرزند)
قدم ۸ :راه حل( بهترین کرموزوم ها)
فلوچارت الگوریتم را می‌توان در شکل زیر مشاهده نمود :


مثال عددی
در اینجا یک مثال از کاربردی که از الگوریتم ژنتیک برای حل نمودن یک مسائله ترکیبی استفاده می‌کند را توضیح می دهیم.فرض کنیم که تساوی زیر را داریم
a+db+3c+4d=30
از الگوریتم ژنتیک برای بدست آوردن مقادیر a,b,c,d تا برای حل تساوی ذکر شده استفاده می کنیم.
.در ابتدا باید تابع هدف را فرمول کنیم ، برای این مسائله هدف مینیمم نمودن مقدار تابع f(x)  جایی که
 f (x) = ((a + 2b + 3c + 4d) – 30)
از آنجا که چهار متغیر در تساوی وجود دارد ، یعنی a,b,c,d می‌توانیم کروموزوم ها را به صورت زیر شکل دهیم


dcba

برای افزودن سرعت محاسبات ، می‌توانیم مقدار متغیر ها a,b,c,d را به اعداد صحیح بین ۰ تا ۳۰ محدود نماییم.
قدم اول: مقدار دهی اولیه
برای نمونه تعداد کروموزوم ها درون جمعیت را ۶ عدد تعریف می‌کنیم ، سپس مقادیر تصادفی را برای ژنهای a,b,c و d که تشکیل‌دهنده کروموزم مورد نظر ما هستند تولید می کنیم.پس همانطور که ملاحظه می شود ۶ کروموزمی را که در اختیار داریم به صورت زیر با اعداد تصادفی مقدار دهی می نماییم

Chromosome[1] = [a;b;c;d] = [12;05;23;08]

Chromosome[2] = [a;b;c;d] = [02;21;18;03]
Chromosome[3] = [a;b;c;d] = [10;04;13;14]
Chromosome[4] = [a;b;c;d] = [20;01;10;06]
Chromosome[5] = [a;b;c;d] = [01;04;13;19]
Chromosome[6] = [a;b;c;d] = [20;05;17;01]

قدم دوم : ارزیابی راه حل ها ( کروموزوم ها)

در این مرحله مقدار تابع هدف برای هر کروموزمی که در مرحله مقدار دهی جمعیت اولیه تولید شده است محسابه می شود

F_obj[1] = Abs(( 12 + 2*05 + 3*23 + 4*08 ) - 30)= Abs((12 + 10 + 69 + 32 ) - 30)= Abs(123 - 30)= 93

F_obj[2] = Abs((02 + 2*21 + 3*18 + 4*03) - 30)= Abs((02 + 42 + 54 + 12) - 30)= Abs(110 - 30)= 80
F_obj[3] = Abs((10 + 2*04 + 3*13 + 4*14) - 30)= Abs((10 + 08 + 39 + 56) - 30)= Abs(113 - 30)= 83
F_obj[4] = Abs((20 + 2*01 + 3*10 + 4*06) - 30)= Abs((20 + 02 + 30 + 24) - 30)= Abs(76 - 30)= 46
F_obj[5] = Abs((01 + 2*04 + 3*13 + 4*19) - 30)= Abs((01 + 08 + 39 + 76) - 30)= Abs(124 - 30)= 94
F_obj[6] = Abs((20 + 2*05 + 3*17 + 4*01) - 30)= Abs((20 + 10 + 51 + 04) - 30)= Abs(85 - 30)= 55

مرحله سوم : انتخاب

با ارزشترین کروموزوم از شانس و احتمال بیشتری برای برای انتخاب شدن به منظور تولید نسل بعدی دارد.برای محاسبه احتمال برازش باید برازش هر کروموزم محاسبه شود. برای جلوگیری از مشکل تقسیم بر صفر مقدار تابع هدفی که برای هر کرموزم در مرحله قبل بدست آمد با عدد ۱ جمع می شود :

Fitness[1] = 1 / (1+F_obj[1])= 1 / 94= 0.0106

Fitness[2] = 1 / (1+F_obj[2])= 1 / 81= 0.0123
Fitness[3] = 1 / (1+F_obj[3])= 1 / 84= 0.0119
Fitness[4] = 1 / (1+F_obj[4])= 1 / 47= 0.0213
Fitness[5] = 1 / (1+F_obj[5])= 1 / 95= 0.0105
Fitness[6] = 1 / (1+F_obj[6])= 1 / 56= 0.0179
Total = 0.0106 + 0.0123 + 0.0119 + 0.0213 + 0.0105 + 0.0179= 0.0845

احتمال مربوط به هر کروموزم را بو سیله فرمول P[i] = Fitness[i] / Total محاسبه می نماییم :

P[1] = 0.0106 / 0.0845= 0.1254
P[2] = 0.0123 / 0.0845= 0.1456
P[3] = 0.0119 / 0.0845= 0.1408P
[4] = 0.0213 / 0.0845= 0.2521
P[5] = 0.0105 / 0.0845= 0.1243P
[6] = 0.0179 / 0.0845= 0.2118


با توجه به احتمالاتی که در بالا محاسبه شده است مشاهده می وشد که کروموزوم ۴ بیشترین برازش را دارا می باشد و بنابراین احتمال انتخاب شدن آن برای نسل بعدی کروموزوم ها بسیار بالاست.برای فرآیند انتخاب از روش چرخ رولت استفاده می کنیم که بدین منظور ابتدا باید مقادیر احتمال تجمعی ( cumulative probability) را محاسبه کنیم:

C[1] = 0.1254

C[2] = 0.1254 + 0.1456= 0.2710
C[3] = 0.1254 + 0.1456 + 0.1408= 0.4118
C[4] = 0.1254 + 0.1456 + 0.1408 + 0.2521= 0.6639
C[5] = 0.1254 + 0.1456 + 0.1408 + 0.2521 + 0.1243= 0.7882
C[6] = 0.1254 + 0.1456 + 0.1408 + 0.2521 + 0.1243 + 0.2118= 1.0


با داشتن مقادیر احتمال تجمعی استفاده از چرخ رولت در فرآیند انتخاب امکان پذیر می گردد.فرآیند بعدی تولید یک عدد تصادفی در محدوده ۰ تا ۱ است که آن را R نامیم :

R[1] = 0.201, R[2] = 0.284, R[3] = 0.099, R[4] = 0.822, R[5] = 0.398, R[6] = 0.501
اگر برای مثال عدد تصادفی R[1]  بزرگتر از C[1] و کوچکتر از C[2] بود در این صورت     Chromosome [2] به عنوان یک کروموزوم در جمعیت جدید برای تولید نسل بعدی مورد استفاده قرار می گیرد. با توجه به مقادیر نمونه های بالا  خواهیم داشت :

NewChromosome[1] = Chromosome[2]

NewChromosome[2] = Chromosome[3]
NewChromosome[3] = Chromosome[1]
NewChromosome[4] = Chromosome[6]
NewChromosome[5] = Chromosome[3]
NewChromosome[6] = Chromosome[4]


و کروموزوم ها در جمعیت به صورت زیر خواهند شد :

Chromosome[1] = [02;21;18;03]

Chromosome[2] = [10;04;13;14]
Chromosome[3] = [12;05;23;08]
Chromosome[4] = [20;05;17;01]
Chromosome[5] = [10;04;13;14]
Chromosome[6] = [20;01;10;06]

مرحله ۴ : برش (Crossover)

در این مثال از برش یک نقطه ای(one cut point) استفاده می نماییم.به صورت تصادفی یک محل در کروموزم والدین انتخاب شده و سپس زیر کرموزوم هایی که از این نقطه بدست آمده اند در دو واحد تعویض می شود.کروموزم های والدینی که با همدیگر جفت شده اند به صورت تصادفی انتخاب می شوند و تعداد کروموزوم هایی که جفت می شوند توسط پارامتری به نام نرخ برش (Crossover rate ρc ) معین می شود.شبه کد فرآیند برش در ذیل آورده شده است :

begin

k← 0;
while(k<population) do
          R[k] ← random(0-1);
        if (R[k] < ρc ) then
                 select Chromosome[k] as parent;
         end;
          k = k + 1;
end;
end;


اگر  R [k] <ρc باشد کروموزوم K به عنوان یکی از والدین انتخاب می شود.فرض کنیم که نرخ برش را ۲۵٪ در نظر گرفته باشیم ، در این صورت کروموزم شماره k در صورتی

برای برش انتخاب می شود اگر مقدار عدد تصادفی تولید شده برای کروموزوم k کمتر از ۰.۲۵ باشد. فرآیند  را به صورت زیر ادامه می دهیم.ابتدا به تعداد جمعیتی که داریم عدد تصادفی R را تولید می نماییم:

R[1] = 0.191, R[2] = 0.259, R[3] = 0.760, R[4] = 0.006, R[5] = 0.159, R[6] = 0.340


با توجه به اعداد نمونه تصادفی که در بالا آورده شده است ، والدین  Chromosome [1], Chromosome [4] و Chromosome [5] برای عملگرد برش انتخاب می شوند.حالا با توجه این والدین ترکیب همه آنها را بدست می آوریم که بصورت زیر خواهد بود


Chromosome[1] >< Chromosome[4]

Chromosome[4] >< Chromosome[5]

Chromosome[5] >< Chromosome[1]

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

C[1] = 1,C[2] = 1,C[3] = 2

و کروموزم ها  به صورت زیر تحت تاثیر عملگر برش قرار می گیرند.همانگونه که ملاحظه می شود ژنهای والدین به ترتیب در ژن های شماره ۱، شماره ۱ و شماره ۲ برش داده می شوند.

Chromosome[1] = Chromosome[1] >< Chromosome[4]

= [02;21;18;03] >< [20;05;17;01]
= [02;05;17;01]
Chromosome[4] = Chromosome[4] >< Chromosome[5]
= [20;05;17;01] >< [10;04;13;14]
= [20;04;13;14]
Chromosome[5] = Chromosome[5] >< Chromosome[1]
= [10;04;13;14] >< [02;21;18;03]
= [10;04;18;03]


بعد از انجام اولین فرآیند برش در الگوریتم ژنتیک مورد نظرمان جمعین ما به صورت زیر خواهد بود:


Chromosome[1] = [02;05;17;01]
Chromosome[2] = [10;04;13;14]
Chromosome[3] = [12;05;23;08]
Chromosome[4] = [20;04;13;14]
Chromosome[5] = [10;04;18;03]
Chromosome[6] = [20;01;10;06]


مرحله ۵  جهش
تعداد کروموزوم هایی که جمعیت مورد جهش قرار می گیرند توسط پارامتر نرخ جهش مشخص می شوند.فرآیند جهش با تعویض تصادفی مقدار یک ژن که در یک موقعیت تصادفی قرار دارد با مقدار جدید انجام می شود.برای انجام این فرآیند مراحل که در ادامه گفته می شود را انجام می دهیم.ابتدا باید مجموع کل ژنهای موجود در جمعیت را محاسبه نماییم.که در مثال ما از فرمول زیر بدست می آید
تعداد کل ژنها=تعداد ژنهای هر کروموزوم*تعداد جمعیت =۴*۶=۲۴
فرآیند جهش با تولید یک عدد تصادفی بین ۱ و تعداد کل ژنها (۱ تا ۲۴ در مثال ما) انجام می شود.اگر مقدار عدد تصادفی تولید شده کمتر از نرخ جهش (mutaion_rate ρm) باشد در این صورت موقعیت این ژن در کروموزم نشان گذاری می شود.فرض کنیم که نرخ جهش را ۱۰٪  در نظر بگیریم ، که در این صورت انتظار داریم که ۱۰٪ ( ۰.۱) کل ژنها در جمعیت جهش داده شوند.
تعداد کل جهش ها = ۰.۱*۲۴=۲.۳≈۲
حالا اگر فرض کنیم که اعداد تصادفی که تولید شده است ۱۲ و ۱۸ باشند در این صورت کروموزم هایی که جهش دارند کروموزم شماره ۳ در ژن شماره ۴ آن و کروموزوم شماره ۵ در ژن شماره ۲ آن خواهند بود.مقدار ژنهای جهش یافته در نقطه جهش بوسیله اعداد تصادفی بین ۰ تا ۳۰ عوض می شوند.اگر اعداد تصادفی تولید شده ۲ و ۵ باشند سپس ترکیب کروموزوم ها بعد از جهش به صورت زیر است :


Chromosome[1] = [02;05;17;01]

Chromosome[2] = [10;04;13;14]
Chromosome[3] = [12;05;23;02]
Chromosome[4] = [20;04;13;14]
Chromosome[5] = [10;05;18;03]
Chromosome[6] = [20;01;10;06]

بعد از پایان فرآیند جهش یک تکرار یا یک نسل از الگوریتم ژنتیک داریم که باید این نسل جدید  را مجددا توسط تابع هدف مورد ارزیابی قرار دهیم که ارزیابی آن مانند آنچه قبلا گفته شد انجام می شود :


Chromosome[1] = [02;05;17;01]
F_obj[1] = Abs(( 02 + 2*05 + 3*17 + 4*01 ) - 30)
= Abs((2 + 10 + 51 + 4 ) - 30)
= Abs(67 - 30)
= 37
Chromosome[2] = [10;04;13;14]
F_obj[2] = Abs(( 10 + 2*04 + 3*13 + 4*14 ) - 30)
= Abs((10 + 8 + 33 + 56 ) - 30)
= Abs(107 - 30)
= 77
Chromosome[3] = [12;05;23;02]
F_obj[3] = Abs(( 12 + 2*05 + 3*23 + 4*02 ) - 30)
= Abs((12 + 10 + 69 + 8 ) - 30)
= Abs(87 - 30)
= 47
Chromosome[4] = [20;04;13;14]
F_obj[4] = Abs(( 20 + 2*04 + 3*13 + 4*14 ) - 30)
= Abs((20 + 8 + 39 + 56 ) - 30)
= Abs(123 - 30)
= 93
Chromosome[5] = [10;05;18;03]
F_obj[5] = Abs(( 10 + 2*05 + 3*18 + 4*03 ) - 30)
= Abs((10 + 10 + 54 + 12 ) - 30)
= Abs(86 - 30)
= 56
Chromosome[6] = [20;01;10;06]
F_obj[6] = Abs(( 20 + 2*01 + 3*10 + 4*06 ) - 30)
= Abs((20 + 2 + 30 + 24 ) - 30)
= Abs(76 - 30)
= 46

همانگونه که از ارزیابی کروموزوم ها در جمعیت جدید مشاهده می شود تابع هدف کاهش یافته است که به این معناست که ما کروموزومها یا راه حل های بهتری نسبت هب کروموزومهای نسل قبل داریم.بنابراین کروموزومها برای تکرار بعدی به صورت زیر خواهد بود :

Chromosome[1] = [02;05;17;01]

Chromosome[2] = [10;04;13;14]
Chromosome[3] = [12;05;23;02]
Chromosome[4] = [20;04;13;14]
Chromosome[5] = [10;05;18;03]
Chromosome[6] = [20;01;10;06]

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

Chromosome = [07; 05; 03; 01]

که بدان معناست که a=7,b=5,c=3,d=1 که اگر این اعداد را در معادله این که در ابتدا داشتیم قرار دهیم خواهیم داشت

a +2 b +3 c +4 d = 30

7 + (2 * 5) + (3 * 3) + (4 * 1) = 30

در این مثال ساده به خوبی کارایی و قدرت الگوریتم ژنتیک در حل مسائل بهینه سازی مشاهده می شود.

منبع : Genetic Algorithm for Solving Simple Mathematical Equality Problem

مفهوم 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

<< 1 2 3 4 5 ... 9 >>