پاسخ به:آموزش های تخصصی شبکه و امنیت و ضد امنیت
شنبه 28 مرداد 1391 1:56 AM
چگونه نفوذگران را فريب دهيم؟
در جنگ بين نفوذگران و مديران امنيت شبکه، داشتن اطلاعات نشانة قدرت است. به عنوان يک مدير امنيت شبکه، هر چه بيشتر در مورد دشمنتان و روشهاي حمله او بدانيد بهتر ميتوانيد از خودتان در مقابل او دفاع کنيد.
استفاده از Honeypotها يکي از روشهايي است که ميتوانيم اطلاعاتي در مورد دنياي نفوذگران به دست آوريم.
Honeypot چيست؟
Honeypot يک ماشين ويژه در شبکه است که به عنوان طعمه براي نفوذگران استفاده ميشود. به طور عمدي بر روي آن سيستم عامل آلوده به يک اسب تروا[1]، درپشتي[2] يا سرويسدهندههاي ضعيف و داراي اشکال نصب ميشود تا به عنوان يک ماشين قرباني، نفوذگران را به خود جذب کرده و مشغول نگه دارد. همچنين ممکن است بر روي چنين ماشيني اطلاعات غلط و گمراهکنندهاي براي به اشتباه انداختن نفوذگر نيز گذاشته شود.
يک سيستم Honeypot عملاً هيچ فايدهاي براي مقاصد سرويس دهي ندارد بلکه ماشين فداکاري است که با جذب نفوذگران و گمراه کردن آنها با اطلاعات غلط، از دسترسي به سرويس دهندههاي حساس جلوگيري ميکند. اطلاعات غلط ممکن است ساعتها يک نفوذگر را معطل کند. در ضمن تشخيص اين نکته که سيستم موردنظر آيا واقعاً ضعف دارد يا آنکه يک Honeypot است براي نفوذگر چندان ساده نيست.
Honeynet شبکهاي از Honeypotهاست که به گونهاي تنظيم ميشوند که شبيه يک شبکة واقعي به نظر برسند.
دلايل استفاده از Honeypot
Honeypotها به دو دليل استفاده ميشوند :
اول اين که نقاط ضعف سيستم را بشناسيم. مدير سيستم ميتواند با مشاهدة تکنيکها و روشهاي استفاده شده توسط نفوذگر بفهمد سيستم چگونه شکسته ميشود و نقاط آسيبپذير سيستم را شناسايي و نسبت به ترميم آنها اقدام کند.
دليل دوم جمعآوري اطلاعات لازم براي تعقيب و ردگيري نفوذگران است. با توجه به آنکه نفوذگر يک سيستم ضعيف و آسيبپذير را در شبکه کشف ميکند بنابراين تمام تلاشهاي بعدي او پيرامون سيستم Honeypot (که يک هدف قلابي است) متمرکز ميشود. ميتوان يک سيستم تشخيص نفوذ[3] (IDS) را در کنار اين سيستم نصب کرد تا تلاشهاي نفوذگران براي حمله به اين هدف قلابي را گزارش دهد و شما بتوانيد اين موضوع و مبدا آن را پيگيري کنيد.
اين در حالي است که Honeypot همزمان از شبکة واقعي در برابر حملات مراقبت ميکند.
هدف اصلي يک Honeypot شبيهسازي يک شبکه است که نفوذگران سعي ميکنند به آن وارد شوند. اطلاعاتي که بعد از حمله به يک Honeypot به دست ميآيد، ميتواند براي کشف آسيبپذيريهاي شبکة فعلي و رفع آنها استفاده شود.
Honeypot چه کارهايي ميتواند انجام دهد؟
با توجه به اين که از يک Honeypot چه ميخواهيم، Honeypot ميتواند کارهاي زير را انجام دهد :
همچنين Honeypot مانع انجام کارهاي زير توسط نفوذگر ميشود :
با استفاده از مهندسي اجتماعي[4] ميتوان Honeypot را جالبتر کرد. هرچه Honeynet شما به شبکة سازمان شما شبيهتر باشد، محيط واقعيتر است و باعث ميشود نفوذگران آن را بيشتر باور کنند و حتي نفوذگران حرفهاي هم به راحتي فريب بخورند. يک پيشنهاد خوب اين است که تعدادي حساب کاربري تعريف کرده و به آنها يک سري دايرکتوري و اسناد اختصاص بدهيد، برايشان پست الکترونيکي تعريف کنيد، آنها را به ليستهاي پستي اضافه کنيد، ...
همچنين ميتوان توسط اين سيستم نفوذگران را فريفت. به عنوان مثال وقتي نفوذگر يک ابزار استراق سمع[5] روي هدف قلابي(سيستم Honeypot) نصب ميکند اطلاعات غلط و بيهوده براي او ارسال ميشود و او به خيال آن که نفوذش در شبکه واقعي است، ساعتها وقت تلف ميکند تا اين اطلاعات غلط را تحليل کند.
به ياد داشته باشيد که Honeypotاي که مورد حمله واقع نشود به هيچ دردي نميخورد. بنابراين بايد آن را تا حد امکان براي نفوذگر جذاب کنيد، البته تا حدي که شک نفوذگران حرفهاي را برنينگيزد..
هرچقدر يک نفوذگر دفعات بيشتري به Honeypot وصل شود، شما بيشتر به اهداف خود دست مييابيد.
محل قرار گرفتن Honeypot در شبکه
يک Honeypot ميتواند در هرجايي که يک سرويس دهنده قادر است قرار بگيرد، واقع شود ولي مطمئناً برخي جاها بهتر از بقيه است.
يک Honeypot با توجه به سرويسهاي مورد استفاده ميتواند در اينترنت يا اينترانت مورد استفاده قرار گيرد. اگر بخواهيم فعاليتهاي خرابکارانة اعضاي ناراضي را در شبکة خصوصي کشف کنيم قرار دادن Honeypot در اينترانت مفيد است. در اينترانت Honeypot پشت ديوارة آتش قرار ميگيرد.
در شبکة اينترنت يک Honeypot ميتواند در يکي از محلهاي زير قرار گيرد :
1-جلوي ديوارة آتش
2-درون [6]DMZ
شکل فوق قرار گرفتن Honeypot را در محلهاي گفته شده نشان ميدهد.
هر کدام از اين دو مزايا و معايبي دارد که به آن ميپردازيم.
با قرار گرفتن Honeypot در جلوي ديوارة آتش، خطر داشتن يک سيستم تحت سيطرة نفوذگر در پشت ديوارة آتش از بين ميرود و هيچ خطر اضافي (منتج از نصب Honeypot) متوجه شبکة داخلي نميشود.
يک Honeypot مقداري ترافيک ناخواسته مثل پويش درگاه يا الگوهاي حمله را ايجاد و جذب ميکند که با قرار دادن Honeypot در بيرون از ديوارة آتش چنين وقايعي توسط ديوارة آتش ثبت نميشود و سيستم تشخيص نفوذ داخلي (که در حالت عادي در مواجهه با چنين رخدادهايي هشدار توليد ميکند) پيغام هشدار توليد نميکند.
عيب قرار گرفتن Honeypot جلوي ديوارة آتش اين است که نفوذگران داخلي به راحتي فريب نميخورند، مخصوصاً اگر ديوارة آتش ترافيک خروجي و در نتيجه ترافيک دريافتي Honeypotرا محدود کند.
قرار گرفتن Honeypot درون يک DMZ يک راهحل خوب به نظر ميرسد به شرطي که امنيت ديگر سيستمهاي درون DMZ در برابر Honeypot برقرار شود. از آنجايي که فقط سرويسهاي مورد نياز اجازة عبور از ديوارة آتش را دارند، دسترسي کامل به اغلب DMZها ممکن نيست. به اين دليل و با توجه به اينکه تنظيم قوانين مرتبط روي ديوارة آتش کاري زمانبر و مخاطرهآميز است، در چنين حالتي قرار دادن Honeypot جلوي ديوارة آتش مورد توجه قرار ميگيرد.
قرار دادن Honeypot پشت ديوارة آتش، ميتواند باعث بروز خطرات امنيتي جديدي در شبکة داخلي شود، مخصوصاً اگر شبکة داخلي توسط ديوارههاي آتش اضافي در برابر Honeypotايمن نشده باشد. توجه داشته باشيد که اگر Honeypot را پشت يک ديوارة آتش قرار ميدهيد، بايد قوانين ديوارة آتش را طوري تنظيم کنيد که دسترسي از اينترنت مجاز باشد.
بزرگترين مشکل وقتي به وجود ميآيد که يک نفوذگر خارجي کنترل Honeypot داخلي را در اختيار ميگيرد. در اين صورت نفوذگر امکان دسترسي به شبکة داخلي را از طريقHoneypot به دست ميآورد. زيرا اين ترافيک، به عنوان ترافيک ورودي به Honeypot در نظر گرفته ميشود و از آنجايي که ترافيک ورودي به Honeypot مجاز است، ديوارة آتش جلوي عبور اين ترافيک را نميگيرد. بنابراين ايمن کردن Honeypot داخلي ضروري است. دليل اصلي قرار گرفتن Honeypot پشت ديوارة آتش شناسايي نفوذگران داخلي است.
بهترين راهحل قرار دادن يک Honeypot درون DMZ به همراه يک ديوارة آتش است. بسته به اينکه هدف شناسايي نفوذگران داخلي يا خارجي است، ديوارة آتش ميتواند به اينترنت يا اينترانت وصل شود.
در حقيقت شما ميخواهيد از طريق Honeypot يک مانور ترتيب بدهيد و به يک دشمن فرضي حمله کنيد يا در مقابل يک دشمن فرضي بايستيد. لذا شرايط را به صورت واقعي تنظيم کنيد.
تقسيمبندي Honeypotها از نظر کاربرد
از ديدگاه کاربرد و استفادهاي که قرار است از سيستم شود Honeypotها به دو دسته تقسيم ميشوند :
بسته به هدف سازمان و اين که از يک Honeypot چه ميخواهيد، ميتوانيد يکي از دو نوع Honeypot ذکر شده را انتخاب کنيد.
تقسيمبندي Honeypotها از نظر ميزان تعامل با نفوذگر
Honeypotها از لحاظ ميزان تعامل و درگيري با نفوذگر به سه دسته تقسيم ميشوند :
Honeypot با تعامل کم
در دستة اول، بر روي ماشين سرويسهاي جعلي و ابتدايي مشخصي مثل Telnet و Ftp نصب ميشود. اين سرويسها با استفاده از پروسهاي که روي درگاه مشخصي گوش ميکند، پيادهسازي ميشوند. نفوذگر فقط قادر است با اين سرويسها ارتباط برقرار کند. به عنوان مثال يک Honeypot با تعامل کم ميتواند شامل يک Windows 2000 Server به همراه سرويسهايي مثل Telnet و Ftp باشد. يک نفوذگر ميتواند ابتدا با استفاده از Telnet روي Honeypot نوع سيستم عامل آن را تشخيص دهد، سپس با يک صفحة ورود روبرو ميشود. نفوذگر دو راه براي دسترسي به Honeypot دارد يکي ورود به زور[4] و ديگري حدس زدن کلمة عبور[5]. Honeypot ميتواند تمام تلاشهاي نفوذگر را جمعآوري کند.
در اين حالت نفوذگر نميتواند هيچگونه ارتباطي با سيستم عامل برقرار کند و ارتباط نفوذگر فقط به تلاش براي ورود به سيستم محدود ميشود. اين مساله ميزان خطر را کاهش ميدهد چون پيچيدگيهاي سيستم عامل حذف ميشود. به عبارت ديگر اين يک عيب است چرا که نميتوانيم ارتباطات نفوذگر با سيستمعامل را که مورد علاقة ماست ببينيم.
Honeypotهاي دستة اول با کم کردن تعامل خود با نفوذگر ميزان خطر را به حداقل کاهش ميدهد و پايينترين ميزان خطرپذيري را داراست.
به کمک اين ماشينها اطلاعات محدودي مثل زمان نفوذ، پروتکل مورد استفاده، آدرس IP مبدا و مقصد، ... را ميتوان به دست آورد.
يک Honeypot با تعامل کم ميتواند با يک سيستم تشخيص نفوذ passive مقايسه شود. هيچ کدام نميتواند تغييري در ترافيک بدهد يا با نفوذگر يا جريان ترافيک ارتباط برقرار کند. فقط براي ايجاد گزارش[6] استفاده ميشوند و اگر ترافيک ورودي با الگوهاي از قبل تعيين شده مطابقت کند، هشدار ميدهند.
اين دسته از Honeypotها فقط براي شناسايي حملههاي شناخته شده خوب است ولي براي کشف حملههاي ناشناخته هيچ ارزشي ندارد.
Honeypot با تعامل متوسط
دستة دوم در مقايسه با دستة اول امکان بيشتري براي تعامل با نفوذگر فراهم ميکند ولي هنوز هم مثل دستة اول نفوذگر هيچ ارتباطي با سيستمعامل ندارد. دايمون[7]هاي جعلي فراهم شده پيشرفتهترند و دانش بيشتري راجع به سرويسهاي ارائه شده دارند.
در اين حالت ميزان خطر افزايش مييابد. احتمال اين که نفوذگر يک حفرة امنيتي يا يک آسيبپذيري پيدا کند بيشتر است زيرا پيچيدگي Honeypot افزايش مييابد.
نفوذگر امکان بيشتري براي ارتباط با سيستم و بررسي آن دارد و راحتتر فريب ميخورد.
همچنين با توجه به تعامل بيشتر، امکان انجام حملههاي پيچيدهتري وجود دارد که ميتوان با ثبت و آناليز کردن آنها به نتايج دلخواه دست يافت.
همان طور که گفته شد نفوذگر هيچ ارتباطي با سيستم عامل ندارد و در سطح برنامههاي کاربردي فعاليت ميکند.
توسعة يک Honeypot با تعامل متوسط کاري پيچيده و زمانبر است. بايد دقت شود که تمام دايمونهاي جعلي تا جايي که ممکن است ايمن شوند. نسخههاي توسعه يافته اين سرويسها نبايد داراي همان آسيبپذيريهاي همتاهاي (نسخههاي) واقعي باشند زيرا اين اصليترين دليل جايگزيني آنها با نسخههاي جعلي است.
کسي که ميخواهد چنين سيستمي را طراحي و پيادهسازي کند، بايد از دانش خوبي در مورد پروتکلها، سرويسها و برنامههاي کاربردي ارائه شده برخوردار باشد.
از اين Honeypotها ميتوان هم براي اهداف دستة research و هم براي اهداف دستة production استفاده کرد.
Honeypot با تعامل زياد
هرچه ميزان تعامل Honeypot با نفوذگر افزايش مييابد، ميزان پيچيدگي و خطر هم افزايش مييابد ولي به همان نسبت نتايجي که حاصل ميشود نيز بهتر است.
آخرين و پيشرفتهترين دسته از Honeypotها دستة سوم است. طراحي، مديريت و نگهداري اين Honeypotها کاري واقعاً زمانبر است. در ميان سه نوع Honeypot اين Honeypotها داراي خطر زيادي هستند ولي اطلاعات واسناد زيادي براي تحليل جمع ميشود.
در اين نوع Honeypot نفوذگر ارتباط کاملي با سيستمعامل دارد.
يکي از اهداف نفوذگر به دست آوردن دسترسي در بالاترين سطح (root يا superuser) ماشيني که به اينترنت وصل است ميباشد. اين Honeypot چنين امکاني را در اختيار نفوذگر قرار ميدهد. به محض اين که نفوذگر اين امکان را پيدا کند کار اصلي او شروع ميشود.
با استفاده از اين نوع Honeypot ميتوانيم به اطلاعاتي نظير اين که نفوذگران بيشتر از چه ابزارها و exploitهايي استفاده ميکنند، از چه کشورهايي هستند، به دنبال چه نقاط آسيبپذيري هستند، ميزان دانش آنها در مورد نفوذگري و .... دست پيدا کنيم.
نفوذگر پس از اين که دسترسي سطح root روي سيستم را به دست آورد، قادر است هرکاري که بخواهد روي سيستم تحت کنترل انجام دهد. اين سيستم فينفسه ايمن نيست بنابراين هيچ سيستمي روي شبکه را نميتوان امن در نظر گرفت.
بايد قبل از اين گونه Honeypotها يک ديوارة آتش نصب کنيم، زيرا در غير اين صورت نفوذگر پس از اين که کنترل کاملي بر ماشين به دست آورد ميتواند از آن براي طراحي حملاتي مثل[8]DDoS عليه ماشينهاي ديگر استفاده کند. براي جلوگيري از اين مساله بايد ديوارة آتش به گونهاي تنظيم شود که فقط ترافيک ورودي به سيستم مجاز باشد و ترافيک خروجي آن را مسدود کند.
همچنين ميبايست سطح دسترسي اين سيستم به شبکة داخلي محدود شود تا نفوذگر نتواند با استفاده از آن به ديگر سيستمهاي موجود در شبکة داخلي آسيبي برساند.
کنترل و نگهداشت چنين Honeypotاي کاري فوقالعاده زمانبر است. سيستم دائماً بايد تحت نظر باشد. Honeypotاي که تحت کنترل نباشد نه تنها هيچ کمکي نميکند بلکه خودش به عنوان يک نقطة خطر يا حفرة امنيتي مطرح میشود.
با فراهم کردن امکان ارتباط کامل نفوذگر با سيستمعامل، او ميتواند فايلهاي جديدي را روي سيستم نصب کند. اين جاست که اين نوع Honeypot با ثبت کردن و آناليز اين فعاليتها قدرت خود را نشان ميدهد. جمعآوري اطلاعات در مورد گروههاي نفوذگري هدف اصلي اين دسته از Honeypotها است و همين امر خطرپذيري بيشتر را توجيه ميکند.
از اين نوع Honeypot فقط براي اهداف دستة research استفاده ميشود.
جدول زير کاربرد هر کدام از Honeypotها را با توجه به ميزان تعامل آن با نفوذگر نشان ميدهد :
مزايا و معايب هر کدام از انواع Honeypot در جدول زير آمده است:
با توجه به عوامل ذکر شده و اين که در سازمان شما ميزان اهميت هر کدام از اين عوامل چه اندازه است و نتايجي که ميخواهيد از يک Honeypot به دست آوريد، ميتوانيد يکي از سه نوع Honeypot ذکر شده را براي سازمان خود انتخاب کنيد.
** دارالولایه **