امروز: جمعه 7 دی 1403
دسته بندی محصولات
بخش همکاران
بلوک کد اختصاصی

مهمترین نقاط آسیب پذیر یونیکس و لینوکس14

مهمترین نقاط آسیب پذیر یونیکس و لینوکس14دسته: کامپیوتر و IT
بازدید: 38 بار
فرمت فایل: docx
حجم فایل: 128 کیلوبایت
تعداد صفحات فایل: 167

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

قیمت فایل فقط 3,900 تومان

خرید

مقدمه

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

تمام کامپیوترها از سیستم عامل استفاده نمی نمایند. مثلا" اجاق های مایکرویو که در آشپزخانه استفاده شده دارای نوع خاصی از کامپیوتر بوده که از سیستم عامل استفاده نمی نمایند. در این نوع سیستم ها بدلیل انجام عملیات محدود و ساده، نیازی به وجود سیستم عامل نخواهد بود. اطلاعات ورودی و خروجی با استفاده از دستگاههائی نظیر صفحه کلید و نمایشگرهای LCD ، در اختیار سیستم گذاشته می گردند. ماهیت عملیات انجام شده در یک اجاق گاز مایکروویو بسیار محدود و مختصر است، بنابراین همواره یک برنامه در تمام حالات و اوقات اجراء خواهد شد.

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

سیستم عامل با ساده ترین تحلیل و بررسی دو عملیات اساسی را در کامپیوتر انجام می دهد :

- مدیریت منابع نرم افزاری و سخت افزاری یک سِستم کامپیوتری را برعهده دارد. پردازنده ، حافظه، فضای ذخیره سازی نمونه هائی از منابع اشاره شده می باشند .

- روشی پایدار و یکسان برای دستیابی و استفاده از سخت افزار را بدو ن نیاز از جزئیات عملکرد هر یک از سخت افزارهای موجود را برای برنامه های کامپیوتری فراهم می نماید

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

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

سیستم های عامل را از بعد نوع کامپیوترهائی که قادر به کنترل آنها بوده و نوع برنامه های کاربردی که قادر به حمایت از آنها می باشند به چهار گروه عمده تقسیم می نمایند.

- سیستم عامل بلادرنگ (RTOS). از این نوع سیستم های عامل برای کنترل ماشین آلات صنعتی ، تجهیزات علمی و سیستم های صنعتی استفاده می گردد. یک سیستم عامل بلادرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامه های کاربردی مختص کاربران می باشند. یکی از بخش های مهم این نوع سیستم های عامل ، مدیریت منابع موجود کامپیوتری بگونه ای است که یک عملیات خاص در زمانی که می بایست ، اجراء خواهند شد.

- تک کاربره - تک کاره . همانگونه که از عنوان این نوع سیستم های عامل مشخص است، آنها بگونه ای طراحی شده اند که قادر به مدیریت کامپیوتر بصورتی باشند که یک کاربر در هر لحظه قادر به انجام یک کار باشد. سیستم عامل Palm OS برای کامپیوترهای PDA نمونه ای مناسب از یک سیستم عامل مدرن تک کاربره و تک کاره است .

- تک کاربره - چندکاره . اکثر سیستم های عامل استفاده شده در کامپیوترهای شخصی از این نوع می باشند. ویندوز 98 و MacOS نمونه هائی در این زمینه بوده که امکان اجرای چندین برنامه بطور همزمان را برای یک کاربر فراهم می نمایند. مثلا" یک کاربر ویندوز 98 قادر به تایپ یک نامه با استفاده از یک واژه پرداز بوده و در همان زمان اقدام به دریافت یک فایل از اینترنت نموده و در همان وضعیت محتویات نامه الکترونیکی خود را برای چاپ بر روی چاپگر ارسال کرده باشد.

- چندکاربره . یک سیستم عامل چند کاربره ، امکان استفاده همزمان چندین کاربر از منابع موجود کامپیوتر را فراهم می آورند. منابع مورد نیاز هر یک از کاربران می بایست توسط سیستم عامل بدرستی مدیریت تا در صورت بروز اشکال در منابع تخصیص یافته به یک کاربر، بر روند استفاده سایر کاربران از منابع مورد نظر اختلالی ایجاد نگردد. یونیکس، VMS و سیستم های عامل کامپیوترهای بزرگ نظیر MVS نمونه هائی از سیستم های عامل چندکاربره می باشند.

در اینجا لازم است که به تفاوت های موجود سیستم های عامل " چند کاربر " و " تک کاربر" در رابطه با امکانات شبکه ای اشاره گردد. ویندوز 2000 و ناول قادر به حمایت از صدها و هزاران کاربر شبکه می باشند این نوع سیستم های عامل بعنوان سیستم عامل چند کاربره واقعی در نظر گرفته نمی شوند.

در ادامه با توجه به شناخت مناسب بوجود آمده در دررابطه با انواع سیستم های عامل به عملیات و وظایف سیستم عامل اشاره می گردد.

وظایف سیستم عامل

پس از روشن نمودن کامپیوتر، لولین برنامه ای که اجراء می گردد ، مجموعه دستوراتی می باشند که در حافظه ROM ذخیره و مسئول بررسی صحت عملکرد امکانات سخت افزاری موجود می باشند. برنامه فوق (POST) ، پردازنده ، حافظه و سایر عناصر سخت افزاری را بررسی خواهد کرد . پس از بررسی موفقیت آمیز برنامه POST ، در ادامه درایوهای ( هارد ، فلاپی ) سیستم فعال خواهند شد. در اکثر کامپیوترها ، پس از فعال شدن هارد دیسک ، اولین بخش سیستم عامل با نام Bootstrap Loader فعال خواهد شد. برنامه فوق صرفا" دارای یک وظیفه اساسی است : انتقال ( استقرار ) سیستم عامل در حافظه اصلی و امکان اجرای آن . برنامه فوق عملیات متفاوتی را بمنظور استفرار سیستم عامل در حافظه انجام خواهد داد.

سیستم عامل دارای وظایف زیر است :

مدیریت پردازنده

مدیریت حافظه

مدیریت دستگاهها ( ورودی و خروجی )

مدیریت حافظه جانبی

اینترفیس برنامه های کاربردی

رابط کاربر

وظایف شش گانه فوق ، هسته عملیات در اکثر سیستم های عامل است . در ادامه به تشریح وظایف فوق اشاره می گردد :

مدیریت پردازنده

مدیریت پردازنده دو وظیفه مهم اولیه زیر را دارد :

ایجاد اطمینان که هر پردازه و یا برنامه به میزان مورد نیاز پردازنده را برای تحقق عملیات خود ، اختیار خواهد کرد.

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

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

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

پردازنده ، با توجه به سیاست های اعمال شده سیستم عامل و بر اساس یک الگوریتم خاص ، در اختیار پردازه های متفاوت قرار خواهد گرفت . در چنین مواردی پردازنده مشغول بوده و برای اجراء ، پردازه ای را در اختیار دارد. در زمانیکه پردازنده درگیر یک پردازه است ، ممکن است وقفه هائی از منابع متفاوت نرم افزاری و یا سخت افزاری محقق گردد. در چنین وضعیتی با توجه به اهمیت و جایگاه یک وقفه ، پردازنده برخی از آنها را نادیده گرفته و همچنان به فعالیت جاری خود ادامه داده و در برخی موارد با توجه به اهمیت وقفه ، فعالیت جاری متوقف و سرویس دهی به وقفه آغاز خواهد شد.

در سیستم های عامل " تک - کاره " ، وجود وقفه ها و نحوه مدیریت آنها در روند اجرای پردازه ها تاثیر و پیچیدگی های خاص خود را از بعد مدیریتی بدنبال خواهد داشت . در سیستم های عامل |"چند - کاره " عملیات بمراتب پیچیده تر خواهد بود. در چنین مواردی می بایست این اعتقاد بوجود آید که چندین فعالیت بطور همزمان در حال انجام است . عملا" پردازنده در هر لحظه قادر به انجام یک فعالیت است و بدیهی است رسیدن به مرز اعتقادی فوق ( چندین فعالیت بطور همزمان ) مستلزم یک مدیریت قوی و طی مراحل پیچیده ای خواهد بود. در چنین حالتی لازم است که پردازنده در مدت زمان یک ثانیه هزاران مرتبه از یک پردازه به پردازه ه دیگر سوئیچ تا امکان استفاده چندین پردازه از پردازنده را فراهم نماید . در ادامه نحوه انجام عملیات فوق ، تشریح می گردد :

یک پردازه بخشی از حافظه RAM را اشغال خواهد کرد

پس از استفرار بیش از یک پردازه در حافظه ، پردازنده بر اساس یک زمانبندی خاص ، فرصت اجراء را به یکی از پردازه ها خواهد داد.

پردازنده ، بر اساس تعداد سیکل های خاصی پردازه را اجراء خواهد کرد .

پس ازاتمام تعداد سیکل های مربوطه ، پردازنده وضعیت پردازه ( مقایر ریجسترها و ...) را ذخیره و به پردازه اتمام زمان مربوطه را اعلام می نماید.

پردازنده در ادامه اطلاعات ذخیره شده در رابطه با پردازه دیگر را فعال ( ریجسترها و ...) و زمینه اجرای پردازه دوم فراهم می گردد.

پس ازاتمام تعداد سیکل های مربوطه ، پردازنده وضعیت پردازه ( مقایر ریجسترها و ...) را ذخیره و به پردازه اتمام زمان مربوطه را اعلام و مجددا" پردازه اول جهت اجراء فعال خواهد گردید.

تمام اطلاعات مورد نیاز بمنظور مدیریت یک پردازه در ساختمان داده ای خاص با نام PCB)Process Control Block) ، نگهداری می گردد. پردازنده در زمان سوئیچ بین پردازه ها ، از آخرین وضعیت هر پردازه با استفاده از اطلاعات ذخیره شده در PCB آگاهی پیدا کرده و در ادامه زمینه اجرای پردازه مورد نظر بر اساس تعداد سیکل های در نظر گرفته شده فراهم خواهد شد. برای هر پردازه یک PCB ایجاد و اطلاعات زیر در آن ذخیره خواهد گردید :

یک مشخصه عددی (ID) که نمایانگر پردازه خواهد بود .

اشاره گری که نشاندهنده آخرین محل اجرای پردازه است

محتویات ریجستر ها

وضعیت سوئیچ ها و متغیرهای مربوطه

اشاره گره هائی که حد بالا و پایین حافظه مورد نیاز پردازه را مشخص خواهد کرد.

اولویت پردازه

وضعیت دستگاههای ورودی و خروجی مورد نیاز پردازه

هر زمان که اطلاعات مربوط به پردازه ای تغییر یابد ، ( پردازه از حالت "آماده " تبدیل به حالت "اجراء " و یا از حالت " اجراء " به حالت "انتظار" و یا "آماده " سوئیچ نماید ) اطلاعات ذخیره شده در PCB استفاده و بهنگام خواهند شد.

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

یکی از روش هائی که طراحان سیستم عامل از آن استفاده تا امکان ( شانس) تحقق Thrashing را کاهش دهند ، کاهش نیاز به پردازه های جدید برای انجام فعالیت های متفاوت است . برخی از سیستم های عامل ازیک " پردازه -lite " با نام Thread استفاده می نمایند. Thread از لحاظ کارآئی همانند یک پردازه معمولی رفتار نموده ولی نیازمند عملیات متفاوت ورودی و خروجی و یا ایجاد ساختمان داده PCB مشابه یک پردازه عادی نخواهد بود. یک پردازه ممکن است باعث اجرای چندین Threads و یا سایر پردازه های دیگر گردد. یک Thread نمی تواند باعث اجرای یک پردازه گردد.

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

مدیریت حافظه و فضای ذخیره سازی

سیستم عامل در رابطه با مدیریت حافظه دو عملیات اساسی را انجام خواهد داد :

هر پردازه بمنظور اجراء می بایست دارای حافظه مورد نیاز و اختصاصی خود باشد .

از انواع متفاوتی حافظه در سیستم استفاده تا هر پردازه قادر به اجراء با بالاترین سطح کارآئی باشد.

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

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

حافطه های ذخیره سازی دیسکی ، یکی از انواع متفاوت حافظه موجود بوده که می بایست توسط سیستم عامل مدیریت گردد. حافطه های با سرعت بالای Cache ، حافظه اصلی و حافظه های جانبی نمونه های دیگر از حافظه بوده که توسط سیستم عامل مدیریت گردند.

مدیریت دستگاهها

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

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

یکی از دلایلی که درایورها از سیستم عامل تفکیک شده اند ، ضرورت افزودن عملیات و خواسته ای حدید برای درایورها است . در چنین حالتی ضرورتی بر اصلاح و یا تغییر سیستم عامل نبوده و با اعمال تغییرات لازم در درایورها می توان همچنان از قابلیت های آنها در کنار سیستم عامل موجود استفاده کرد.

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

مدیریت تمام منابع موجود در یک سیستم کامپیوتری ، یکی از مهمترین و گسترده ترین وظایف یک سیستم عامل است .

ارتباط سیستم با دنیای خارج

اینترفیس برنامه ها

سیستم عامل در رابطه با اجرای برنامه های کامپیوتری خدمات فراوانی را ارائه می نماید. برنامه نویسان و پیاده کنندگان نرم افزار می توانند از امکانات فراهم شده توسط سیستم های عامل استفاده و بدون اینکه نگران و یا درگیر جزئیات عملیات در سیستم باشند ، از خدمات مربوطه استفاده نمایند. برنامه نویسان با استفاده از API)Application program interface) ، قادر به استفاده از خدمات ارائه شده توسط سیستم های عامل در رابطه با طراحی و پیاده سازی نرم افزار می باشند. در ادامه بمنظور بررسی جایگاه API به بررسی مثالی پرداخته خواهد شد که هدف ایجاد یک فایل بر روی هارد دیسک برای ذخیره سازی اطلاعات است .

برنامه نویسی ، برنامه ای را نوشته که بکمک آن قادر به ذخیره سازی داده های ارسالی توسط یک دستگاه کنترل علمی است . سیستم عامل یک تابع API با نام MakeFile را بمنظور ایجاد فایل در اختیار برنامه نویس قرار می دهد. برنامه نویس در زمان نوشتن برنامه از دستوری مشابه زیر استفاده می نماید :

 MakeFile [1,%Name,2]

دستورالعمل فوق به سیستم عامل خواهد گفت که فایلی را ایجاد که شیوه دستیابی به داده های آن بصورت تصادفی ( عدد یک بعنوان اولین پارامتر ) ، دارای نام مشخص شده توسط کاربر (Name%) و دارای طولی متغیر است . ( عدد 2 ، بعنوان سومین پارامتر) سیستم عامل دستور فوق را بصورت زیر انجام خواهد داد :

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

با توجه به اطلاعات ارسالی ، سیستم عامل یک entry در سیستم فایل مربوطه ایجاد و ابتدا و انتهای فایل ، نام فایل ، نوع فایل ، تاریخ و زمان ایجاد فایل و سایر اطلاعات ضروری را ذخیره خواهد کرد.

سیستم عامل اطلاعاتی را در ابتدای فایل بمنظور مشخص کردن فایل ، تنظیمات مربوط به شیوه دستیابی به فایل و سایر اطلاعات مورد نیاز را خواهد نوشت .

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

امکانات ارائه شده توسط سیستم های عامل در قالب مجموعه ای از توابع و امکانات API یکی از موارد بسیار مهم استفاده از سیستم عامل از دیدگاه طراحان و پیاده کنندگان نرم افزار است .

اینترفیس کاربر

API یک روش یکسان برای برنامه های کامپیوتری بمنظور استفاده از منابع موجود در یک سیستم کامپیوتری را فراهم می نماید. بخش رابط کاربر (UI) ، یک ساختار مناسب ارتباطی بین کاربر و کامپیوتر را فراهم می آورد. اکثر سیستم های عامل از رابط های گرافیکی در این زمینه استفاده می نمایند. بخش رابط کاربر هر سیستم عامل شامل یک و یا مجموعه ای از برنامه های کامپیوتری است که بصورت یک لایه در بالاترین سطح یک سیستم عامل و در ارتباط با کاربر مستقر می گردند. برخی از سیستم های عامل از رابط های گرافیکی ( نظیر ویندوز ) و برخی دیگر از رابط های مبتنی بر متن ( نظیر سیستم عامل DOS ) استفاده می نمایند.

در این تحقیق سعی شده است که  نقاط آسیب پذیر سیستم عاملهایی یونیکس و ویندوز

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

مهمترین نقاط آسیب پذیر یونیکس و لینوکس

مقدمه

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

اکثر کرم ها و سایر حملات موفقیت آمیز در اینترنت ، بدلیل وجود نقاط آسیب پذیر در تعدادی اندک از سرویس های سیستم های عامل متداول است . مهاجمان ، با فرصت طلبی خاص خود از روش های متعددی بمنظور سوء استفاده از نقاط ضعف امنیتی شناخته شده ، استفاده نموده و در این راستا ابزارهای متنوع ، موثر و گسترده ای را بمنظور نیل به اهداف خود ، بخدمت می گیرند . مهاجمان ، در این رهگذر متمرکز بر سازمان ها و موسساتی می گردند که هنوز مسائل موجود امنیتی ( حفره ها و نقاط آسیب پذیر ) خود را برطرف نکرده و بدون هیچگونه تبعیضی آنان را بعنوان هدف ، انتخاب می نمایند . مهاجمان بسادگی و بصورت مخرب ، کرم هائی نظیر : بلستر ، اسلامر و Code Red را در شبکه منتشر می نمایند. آگاهی از مهمترین نقاط آسیب پذیر در سیستم های عامل ، امری ضروری است . با شناسائی و آنالیز اینگونه نقاط آسیب پذیر توسط کارشناسان امنیت اطلاعات ، سازمان ها و موسسات قادر به استفاده از مستندات علمی تدوین شده بمنظور برخورد منطقی با مشکلات موجود و ایجاد یک لایه حفاظتی مناسب می باشند.

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

نقاط آسیب پذیر موجود در هر سیستم عامل که در ادامه به آنان اشاره می گردد ، سندی پویا و شامل دستورالعمل های لازم بمنظور برخورد مناسب با هر یک از نقاط آسیب پذیر و لینک هائی به سایر اطلاعات مفید و تکمیلی مرتبط با ضعف امنیتی است .

مهمترین نقاط آسیب پذیر یونیکس:

یونیکس ، یکی از سیستم های عامل رایج در جهان بوده که امروزه در سطح بسیار وسیعی استفاده می گردد . تا کنون حملات متعددی توسط مهاجمین متوجه سیستم هائی بوده است که از یونیکس ( نسخه های متفاوت ) بعنوان سیستم عامل استفاده می نمایند . با توجه به حملات متنوع و گسترده انجام شده ، می توان مهمترین نقاط آسیب پذیر یونیکس را به ده گروه عمده تقسیم نمود :

  • BIND Domain Name System
  • Remote Procedure Calls (RPC)
  • Apache Web Server
  • General UNIX Authentication Accounts with No Passwords or Weak Passwords
  • Clear Text Services
  • Sendmail
  • Simple Network Management Protocol (SNMP)
  • Secure Shell (SSH)
  • Misconfiguration of Enterprise Services NIS/NFS
  • Open Secure Sockets Layer (SSL)

اولین نقطه آسیب پذیر : BIND Domain Name System

نرم افزار BIND( Berkeley Internet Name Domain) ، در مقیاس گسترده ای و بمنظور پیاده سازیDNS)Domain Name Service) ، استفاده می گردد. BIND ، سیستمی حیاتی است که از آن بمنظور تبدیل اسامی میزبان  به آدرس IP ریجستر شده ،استفاده می گردد .با توجه به استفاده وسیع از BIND و جایگاه حیاتی آن در یک شبکه کامپیوتری ، مهاجمان آن را بعنوان یک هدف مناسب بمنظور انجام حملات ، خصوصا" از نوع DoS)Denila Of Service) انتخاب و حملات متنوعی را در ارتباط با آن انجام داده اند. حملات فوق،از کارافتادن سرویس DNS و عدم دستیابی به اینترنت برای سرویس های مربوطه و میزبانان را می تواند بدنبال داشته باشد. با اینکه پیاده کنندگان BIND ، تلاشی مستمر را از گذشته تا کنون بمنظور برطرف نمودن نقاط آسیب پذیر انجام داده اند ، ولی هنوز تعداد زیادی از نقاط آسیب پذیر قدیمی ، بدرستی پیکربندی نشده و سرویس دهندگان آسیب پذیر در آن باقی مانده است .

عوامل متعددی در بروز اینگونه حملات نقش دارد: عدم آگاهی لازم مدیران سیستم در خصوص ارتقاء امنیتی سیستم هائی که بر روی آنان Bind deamon بصورت غیر ضروری اجراء می گردد و پیکربندی نامناسب فایل ها ، نمونه هائی از عوامل فوق بوده و می تواند زمینه یک تهاجم از نوع DoS ، یک Buffer Overflow و یا بروز اشکال در DNS Cache را بدنبال داشته باشد.از جمله مواردیکه اخیرا" در رابطه با ضعف امنیتی BIND کشف شده است مربوط به یک تهاجم از نوع DoS است . مقاله CERT Advisory CA-2002-15 جزئیات بیشتری را در این رابطه ارائه می نماید. از دیگر حملات اخیر ، تهاجمی از نوع Buffer Overflow است . مقاله CERT Advisory CA-2002-19 جزئیات بیشتری را در این رابطه در اختیار قرار می دهد. درتهاجم فوق ، یک مهاجم از نسخه آسیب پذیر پیاده سازی توابع Resolver مربوط به DNS استفاده و با ارسال پاسخ های مخرب به DNS و اجرای کد دلخواه ، امکان سوء استفاده از نقطه آسیب پذیر فوق را فراهم و حتی دربرخی موارد می تواند زمینه بروز یک تهاجم از نوع DoS را باعث گردد .

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

سیستم های عامل در معرض تهدید :

تقریبا" تمامی سیستم های عامل یونیکس و لینوکس بهمراه یک نسخه از BIND ارائه شده اند .در صورت پیکربندی میزبان بعنوان سرویس دهنده ، نسخه ای از BIND بر روی آن نصب خواهد شد.

نحوه تشخیص آسیب پذیری سیستم

در صورت دارا بودن نسخه خاصی از BIND که بهمراه سیستم عامل ارائه و بر روی سیستم نصب شده است ، می بایست عملیات بهنگام سازی آن را با استفاده از آخرین Patch های ارائه شده توسط تولید کننده ( عرضه کننده ) انجام داد. در صورت استفاده از نسخه BIND مربوط به ISC: Internet Software Consortium ، می بایست از نصب آخرین نسخه BIND ، اطمینان حاصل نمود . در صورتیکه BIND نصب شده بر روی سیستم ، نسخه ای قدیمی بوده و یا بطور کامل Patch نشده باشد ، احتمال آسیب پذیری سیستم وجود خواهد داشت . در اکثر سیستم ها ، دستور : "named - v " ، اطلاعات لازم در خصوص نسخه BIND نصب شده بر روی سیستم را بصورت X.Y.Z نمایش خواهد داد . X ، نشاندهنده نسخه اصلی ، Y ،نشاندهنده جزئیات نسخه و Z نشاندهنده یک Patch Level است . پیشنهاد می گردد ، آخرین نسخه BIND ارائه شده توسط ISC را دریافت و آن را بر روی سیستم نصب نمود. آخرین نسخه موجود Version 9.2.2 بوده و می توان آن را از سایت ISC دریافت نمود. یکی دیگر از رویکردهای کنشگرایانه مرتبط با نگهداری امنیت BIND ، عضویت در گروه های خبری نظیر Symantec برای آگاهی از آخرین هشدارهای امنیتی است . در این راستا می توان از یک برنامه پویشگر بهنگام شده که قادر به بررسی دقیق سیستم های DNS بمنظور تشخیص نقاط آسیب پذیراست ، نیز استفاده گردد .

نحوه حفاظت در مقابل نقطه آسیب پذیر

بمنظور حفاظت در مقابل نقاط آسیب پذیر مرتبط با BIND موارد زیر پیشنهاد می گردد :

  • غیر فعال نمودن BIND deamon ( به آن named نیز اطلاق می گردد ) بر روی سیستم هائی که بعنوان یک سرویس دهنده DNS در نظر گرفته نشده اند . بمنظور پیشگیری ازاعمال برخی تغییرات خاص ( نظیر فعال نمودن مجدد آن ) ، می توان نرم افزار BIND را از روی اینگونه سیستم ها حذف نمود.
  • بمنظور بهنگام سازی سرویس دهنده DNS ، از تمامی Patch های ارائه شده توسط تولید کنندگان استفاده و در صورت امکان آن را به آخرین نسخه موجود ارتقاء دهید . برای دریافت اطلاعات تکمیلی در رابطه با نصب مطمئن تر BIND ، از مقالات ارائه شده درسایت CERT و بخش UNIX Security Checklist ، استفاده نمائید .
  • بمنظور پیچیده تر نمودن حملات اتوماتیک و یا پویش سیستم مورد نظر ، Banner مربوط به " Version String " را از BIND حذف و نسخه واقعی BIND را با یک شماره نسخه غیرواقعی در فایل named.conf ، جایگزین نمائید .
  • امکان ارسال انتقالات Zone را صرفا" برای سرویس دهندگان ثانویه DNS در Domain فراهم نمائید ( secondary DNS servers) . امکان انتقالات Zone در ارتباط با Domain های Parent و Child را غیر فعال و در مقابل از امکان Delegation ( واگذاری مسئولیت ) و فورواردینگ ( Forwarding ) استفاده نمائید .
  • امکان Recursion و glue fetching را بمنظور حفاظت در مقابل عماکرد ناصحیح DNS Cache ، غیر فعال نمائید .
  • برای آگاهی و استفاده از پیشنهادات لازم بمنظور نصب ایمن تر BIND بر روی سیستم های سولاریس ، می توان از آدرس : Running the BIND9 DNS Server Securely و آرشیو مقالات ارائه شده در آدرس Afentis استفاده نمود.

دومین نقطه آسیب پذیر : ( Remote Procedure Calls (RPC

با استفاده از RPC برنامه های موجود بر روی یک کامپیوتر قادر به اجرای روتین هائی در کامپیوتر دوم از طریق ارسال داده و بازیابی نتایج می باشند . با توجه به جایگاه عملیاتی RPC ، استفاده از آن بسیار متداول بوده و درموارد متعددی از آن بمنظور ارائه سرویس های توزیع شده شبکه نظیر مدیریت از راه دور ، اشتراک فایل NFS و NIS استفاده می گردد.وجود ضعف های امنیتی متعدد در RPC باعث بهره برداری مهاجمان بمنظور انجام حملات مختلفی شده است .دراکثر موارد ، سرویس های RPC با مجوزهای بیش از حد معمول ، اجراء می گردند . بدین ترتیب یک مهاجم غیر مجاز قادر به استفاده از سیستم های آسیب پذیر در جهت اهداف خود خواهد بود.اکثر حملات از نوع DoS در سال 1999 و اوایل سال 2000 در ارتباط با سیستم هائی بود که دارای ضعف امنیـتی و نقظه آسیب پذیر RPC بودند. مثلا" حملات گشترده و موفقیت آمیز در رابطه با سیستم های نظامی امریکا ، بدلیل نقطه آسیب پذیر RPC کشف شده در صدها دستگاه کامپیوتر مربوط به وزارت دفاع امریکا بوده است . اخیرا" نیز وجود یک ضعف امنیتی DCOM RPC در ویندوز ، باعث انتشار گسترده یک کرم در سطح اینترنت گردید .

سیستم های عامل در معرض تهدید :

تمامی نسخه های یونیکس و لینوکس که بر روی آنان سرویس های RPC نصب شده است در معرض این آسیب می باشند .

نحوه تشخیص آسیب پذیری سیستم :

با استفاده از یک پویشگر نقاط آسیب پذیر و یا دستور " rpcinfo" ، می توان از اجراء یکی از سرویس های متداول RPC بر روی سیستم آگاه گرید :

سرویس های RPC ، عموما" از طریق حملات buffer Overflow ، مورد سوء استفاده قرار می گیرند .علت این امر ، عدم انجام بررسی لازم و کافی در خصوص خطاها و یا اعتبار داده های ورودی توسط برنامه های RPC است . نقاط آسیب پذیر Buffer overflow ، این امکان را برای یک مهاجم فراهم می نماید که داده غیر قابل پیش بینی را ( اغلب بصورت کد مخرب ) به درون حافظه برنامه ، ارسال نماید . با توجه به ضعف موجود در رابطه با بررسی خطاء و صحت داده ، داده ارسالی مکان هائی حساس و کلیدی که مورد استفاده پردازنده می باشند را بازنویسی می نماید.در یک تهاجم موفقیت آمیز Overflow ، کد مخرب ارسالی ،در ادامه توسط سیستم عامل اجراء می گردد . با توجه به اینکه تعداد زیادی از سرویس های RPC ، با مجوزهای بیش از حد معمول ، اجراء می گردند ، استفاده موفقیت آمیز از نقاط آسیب پذیر فوق می تواند امکان دسـیابی غیر مجاز و از راه دور را به سیستم فراهم می نماید.

نحوه حفاظت در مقابل نقطه آسیب پذیر :

بمنظور حفاظت سیستم در مقابل حملات مبتنی بر RPC ، موارد زیر پیشنهاد می گردد :

  • غیر فعال نمودن و یا حذف هر یک از سرویس های RPC که ضرورتی به استفاده از آن بر روی شبکه نمی باشد . نصب آخرین Patch ارائه شده در رابطه با سرویس هائی که امکان حذف آنان وجود دارد.
  •  عملیات جستجو بمنظور آگاهی و نصب آخرین Patch  مربوطه می بایست بصورت مستمر انجام شود.
  • پورت 111 ( TCP و UDP ) مربوط به RPC portmapper  و پورت 135 ( TCP و UDP ) مربوط به  Windows RPC را در سطح روتر و یا فایروال بلاک نمائید .
  •  پورت های Loopback  32770 ، 32789  مربوط بهTCP و UDP را بلاک نمائید .
  • فعال نمودن یک پشته غیراجرائی  بر روی سیستم های عاملی که از ویژگی فوق ، حمایت می نمایند. استفاده از یک پشته غیراجرائی ، لایه ای حفاظتی در مقابل تمامی حملات Buffer overflows نبوده ولی می تواند عاملی موثر در جهت مقابله با برخی از حملات استاندارد گردد.
  • در ارتباط با سیستم های فایل NFS صادراتی  ، مراحل زیر می بایست دنبال گردد :
    - استفاده از میزبان /
    IP   مبتنی بر لیست های صادراتی
    - پیکربندی سیستم های  فایل صادراتی بصورت فقط خواندنی
    - استفاده از "
    nfsbug" برای پویش نقاط آسیب پذیر  .

سومین نقطه آسیب پذیر : Apache Web Server :

آپاچی ( Apache) یکی از متداولترین سرویس دهندگان وب بر روی اینترنت است . در مقایسه با سرویس دهنده وب مایکروسافت ( IIS ) ، آپاچی مسائل و مشکلات امنیتی کمتری را داشته  ولی همچنان دارای آسیب پذیری خاص خود است  .
علاوه بر وجود نقاط آسیب پذیر در ماژول ها و کد آپاچی ( CA-2002-27  و CA-2002-17 ) ، تکنولوژی های
CGI و PHP نیز دارای نقاط آسیب پذیری خاص خود بوده که ضعف های امنیتی آنان به سرویس دهنده وب نیز سرایت می گردد.  در صورت وجود نقاط آسیب پذیر در سرویس دهنده آپاچی و یا عناصر مرتبط به آن  ، زمینه تهدیدات زیر فراهم می گردد :

  • غیر فعال نمودن سرویس ( DoS )
  • نمایش و بمخاطره انداختن  فایل ها و داده های حساس
  • دستیابی به سرویس دهنده از راه دور
  • بمخاطره افتادن سرویس دهنده ( دستکاری و خرابی سایت )

سیستم های عامل در معرض تهدید

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

نحوه حفاظت در مقابل نقطه آسیب پذیر :

بمنظور حفاظت یک سرویس دهنده وب آپاچی ، پیشنهادات زیر ارائه می گردد :  

  • اطمینان از نصب آخرین patch  ارائه شده 
  • - در این رابطه می توان از آدرس http://httpd.apache.org/   بمنظور آگاهی  از آخرین  وضعیت نسخه ها و Patch levels  استفاده نمود.
    - بمنظور دستیابی به
    Source code  اکثر نسخه های آپاچی، می توان از آدرس   http://httpd.apache.org/download.cgi  استفاده نمود.
    - بمنظور آگاهی و دریافت آخرین
    Patch های ارائه شده می توان از آدرس  http://www.apache.org/dist/httpd/patches/  استفاده نمود.
  • اطمینان از patching عناصر کلیدی سیستم عامل که آپاچی بعنوان مرجع از آنان استفاده می نماید .در این رابطه لازم است که صرفا" ماژول های ضروری بمنظور صحت عملکرد سرویس دهنده ، در آپاچی کمپایل گردند .لازم است به این نکته اشاره گردد که  کرم(  mod_ssl ( CA-2002-27  نمونه ای کامل در این زمینه بوده که از نقاط آسیب پذیر در( OpenSSL ( CA-2002-23 استفاده نموده است .
  • از اجرای  آپاچی بعنوان ریشه ، اجتناب و می بایست بدین منظور ، کاربر و یا گروهی  خاص با حداقل مجوز ایجاد گردد.  سایر پردازه های سیستم ضرورتی به اجراء تحت کاربر و یا گروه فوق را نخواهند داشت .
  • Chroot ، پتانسیلی است  که باعث تعریف مجدد محدوده یک برنامه می گردد . در حقیقت chroot ، باعث تعریف مجدد دایرکتوری ROOT"  و یا "/"  برای یک برنامه و یا یک Login session می گردد .chroot می تواند بعنوان یک لایه تدافعی استفاده گردد . مثلا" در صورتیکه فردی به کامپیوتر شما دستیابی پیدا نماید ، قادر به مشاهده تمامی فایل های موجود بر روی سیستم نخواهد بود . علاوه بر محدودیت فوق ، محدودیت هائی در خصوص اجرای برخی از دستورات نیز بوجود می آید.در این رابطه یک دایرکتوری با نام chroot/ ، ایجاد و تمامی سرویس های مورد نطر با یک انظباط خاص در آن مستقر می گردند . مثلا" سرویس دهنده آپاچی در chroot/httpd / قرار می گیرد. با توجه به موارد فوق ، می بایست آپاچی را در یک  محیط chroot اجراء نمود . درصورتیکه آپاچی بصورت chrooted اجراء و فعالیت خود را  آغاز نماید ، امکان دستیابی آن به سایر بخش های موجود در  ساختار دایرکتوری سیستم عامل و  خارج از chroot وجود نخواهد داشت . بدین ترتیب یک لایه تدافعی مناسب در خصوص سوء استفاده های احتمالی ایجاد می گردد. بعنوان نمونه ، ممکن است یک shell فراخوانده شده  و با توجه به اینکه  bin/sky / در chroot قرار ندارد ، می تواند زمینه سوء استفاده احتمالی را فراهم نماید. لازم است به این نکته مهم نیز اشاره گردد که Chrooting آپاچی می تواند اثرات جا نبی نامطلوبی را در ارتباط با CGI,PHP ، بانک های اطلاعاتی و سایر ماژول ها و یا ارتباطاتی که محیط سرویس دهنده وب بمنظور سرویس دهی به آنان نیازمند دستیابی به توابع کتابخانه ای خارجی است را بدنبال داشته باشد .روش های متعددی بمنظور chrooting  وجود داشته و می بایست از مستندات نرم افزار مورد نظر ، بعنوان یک منبع اطلاعاتی مناسب در خصوص ارائه راهکارهای مربوطه ، استفاده گردد
  • بمنظور مدیریت یک سرویس دهنده وب ، لازم است فیدبک های لازم در خصوص فعالیت و کارآئی سرویس دهنده و سایر مسائلی که ممکن است یک سرویس دهنده با آنان برخورد نماید را اخذ و در ادامه با آنالیز آنان تمهِیدات لازم در خصوص مسائل موجود را بکار گرفت . سرویس دهنده آپاچی ، قابلیت ها و پتانسیل های انعطاف پذیری را در خصوص logging ارائه می نماید . بنابراین لازم است عملیات logging با دقت نظر بالا بصورت موثر و موشکافانه انجام تا امکان ردیابی هر نوع فعالیت امنیتی غیر مجاز و یا رفتار غیر منطقی سرویس دهنده ، فراهم گردد .پیشنهاد می گردد که با یک نظم خاص از اطلاعات موجود در فایل های لاگ ، آرشیو تهیه شود . بدین ترتیب ، امکان مدیریت فایل های لاگ و بررسی آنان فراهم خواهد شد. در موارد متفاوتی و با توجه به شرایط پیش آمده ممکن است محتوی فایل های لاگ بتنهائی کافی نباشد . وضعیت فوق در مواردیکه از  PHP ، CGI و یا سایر تکنولوژی های مبتنی بر اسکریپت استفاده می گردد ، تشدید و می توان بمنظور افزایش توان آنالیز یک تهاجم و سوءاستفاده از یک ضعف امنیتی ، اقدام به ثبت لاگ های مربوط به  GET و POST  نمود.لاگ نمودن عملیات مرتبط به GET و POST می تواند از طریق mod_Security صورت پذیرد. ModSecurity یک سیستم تشخیص مزاحمین ( Intruder detection ) یوده و پیشگیری های لازم در خصوص یک برنامه وب را ارائه می نماید . سیستم فوق بهمراه سرویس دهنده وب مستقر و یک پوشش امنیتی مناسب را در جهت پیشگیری از یک تهاجم در ارتباط با برنامه های وب فراهم می نماید . ModSecurity   ، از سرویس دهنده آپاچی حمایت می نماید .
  • PHP، CGI،SSI و سایر اسکریپت ها . در این رابطه موارد زیر پیشنهاد می گردد :
    -
    PHP,CGI,SSI و سایر زبان های اسکریپت را غیر فعال نمائید ( مگر اینکه ضرورتی جدی در رابطه با آنان وجود داشته باشد ).
    -
    SSI  یا Server Side Includes را  که می تواند زمینه مساعدی بمنظور سوء استفاده از  سرویس دهنده و الزام آن در جهت اجرای کد ناخواسته گردد را غیر فعال نمائید .

- در صورتیکه ضروری است که  از PHP,CGI,SSI و یا سایر زبان های اسکریپت استفاده گردد ، می بایست  از SuEXEC استفاده شود. suEXEC ، امکان  اجرای اسکریپت ها تحت آپاچی  بهمراه یک User Id در مقابل یک Apache User Id را فراهم می نماید در حقیقت suEXEC این امکان را برای کاربران آپاچی فراهم می نماید  که قادر به اجرای برنامه های SSI و CGI تحت یک User Id متفاوت نسبت به User Id مربوط به فراخوانی سرویس دهنده وب باشند.بدین ترتیب تهدیدات امنیـتی کاهش و امکان نوشتن و اجرای برنامه های SSI و CGI اختصاصی نوشته شده توسط مهاجمان ، حذف خواهد شد . استفاده از  suEXEC ،می بایست توام با آگاهی و دانش لازم باشد چراکه در صورت استفاده نادرست و یا عدم پیکربندی مناسب و شناخت نسبت به مدیریت setupid Root ،  خود باعث بروز حفره های امنیتی دیگر خواهد شد
- بررسی لازم در خصوص محتوی دایرکتوری
cgi-bin و سایر دایرکتوری های شامل اسکریپت ها انجام و لازم است تمامی اسکریپت های پیش فرض نمونه ، حذف گردند.
- ایمن سازی
PHP . پرداختن به موضوع فوق با توجه به گستردگی مطالب از حوصله این مقاله خارج بوده و صرفا" به دو نمونه مهم در اینخصوص اشاره می گردد :
- غیر فعال نمودن پارامترهائی که باعث ارائه اطلاعات در
HTTP header می گردد .
- حصول اطمینان از اجرای 
PHP در حالت safe

-  استفاده از ماژولهای اضافه بمنظوربهبود وضعیت امنیتی. مثلا"ماژول mod_Security می تواند باعث حفاظت در مقابل Cross Site ScriptingXSS  ،  شود . برای آشنائی و مشاهده اطلاعات تکمیلی در این خصوص می توان  از آدرس  http://www.modsecurity.org/  استفاده نمود.
- ممیزی و بررسی اسکریپت ها برای نقاط آسیب پذیر شامل
XSS & SQL Injection نیز حائز اهمیت است . در این رابطه می توان از ابزارهای متعددی استفاده نمود. نرم افزار Nikto  یکی از مناسبترین ابزارهای پویش و بررسی CGI  است .

چهارمین نقطه آسیب پذیر : account

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

  • Account  تعریف شده  دارای رمز عبور ضعیف و یا فاقد رمز عبور است .
  •  عدم حفاظت مناسب کاربران از رمزهای عبور ،صرفنظر از استحکام رمزهای عبور تعریف شده .
  •  سیستم عامل و یا سایر نرم افزارهای موجود ، امکان ایجاد account مدیریتی ضعیف  و فاقد رمز عبور را فراهم می نمایند .
  • الگوریتم های Hashing رمز عبور( رمزنگاری مبتنی بر کلید عمومی بر پایه یک مقدار hash ، استوار بوده و بر اساس یک مقدار ورودی که دراختیار الگوریتم hashing گذاشته می گردد ، ایجاد می گردد. در حقیقت مقدار hash ، فرم خلاصه شده و رمز شده ای  از مقدار اولیه خود است  ) ، شناخته شده بوده و در اغلب موارد مقدار Hashe بدست آمده ، بگونه ای ذخیره می گردد که امکان مشاهده آن توسط سایرین وجود خواهد داشت. مناسبترین نوع حفاظت در این راستا ، تبعیت از یک سیاست رمز عبور قدرتمند بوده  که در آن دستورالعمل ها ی لازم برای تعریف یک رمز عبورمناسب مشخص و در ادامه با استفاده از ابزارهای موجود، بررسی لازم در خصوص  استحکام و بی نقص بودن رمز عبور صورت گیرد.

سیستم ها ی در معرض آسیب پذیر:

هر سیستم عامل و یا برنامه ای که فرآیند تائید کاربران آن براساس یک User ID و رمز عبور باشد ، در معرض این تهدید خواهد بود.

نحوه تشخیص آسیب پذیری سیستم

در صورتیکه از account هائی استفاده می شود که بین کاربران متعدد و یا کارکنان موقت  یک سازمان به اشتراک  گذاشته شده و یا کاربران از رمزهای عبور بدرستی حفاظت ننمایند، پتانسیل نفوذ به شبکه توسط یک مهاجم فراهم می گردد.پیکربندی account های جدید کاربران با یک رمز عبور مشابه و یا رمز عبوری که بسادگی قابل حدس باشد نیز  فرصتی مناسب را در اختیار مهاجمان بمنظور دستیابی به منابع اطلاعاتی  موجود در یک سازمان قرار خواهد داد .

لازم است در خصوص ذخیره سازی رمز عبور hashes تصمیم گیری و مشخص شود که محل استقرار و ذخیره سازی آنان در etc/passwd /  و یا etc/shadow / می باشد.قابلیت خواندن فایل etc/passwd /، می بایست توسط تمامی کاربران شبکه وجود داشته تا زمینه و امکان تائید کاربران فراهم گردد. در صورتیکه فایل فوق ، شامل رمزعبور hashed نیز باشد ،  در ادامه و پس از دستیابی کاربران به سیستم ، امکان خواندن مقادیر hash فراهم و مهاجمان می توانند با استفاده از یک برنامه cracker ، تلاش خود را جهت شکستن و تشخیص رمز عبور آغاز و به سرانجام برسانند . فایل etc/shadow/  ، صرفا" برای root قابل خواندن بوده و مکانی مناسب بمنظور ذخیره نمودن مقادیر hashes است . در صورتیکه account های محلی ، توسط /etc/shadow حفاظت نشود ، ریسک رمزهای عبور افزایش خواهد یافت . اکثر سیستم های عامل جدید بصورت پیش فرض از  etc/shadow / بمنظور ذخیره سازی رمز عبور hashes استفاده می نمایند ( مگر اینکه شرایط فوق توسط نصب کننده تغییر یابد ). در این رابطه می توان از الگوریتم MD5 بمنظور hash نمودن رمزهای عبور نیز استفاده نمود. الگوریتم فوق،  بمراتب از الگوریتم قدیمی crypt ایمن تر است .
NIS)Network Information System) ، یک بانک اطلاعاتی توزیع شده بمنظور مدیریت یک شبکه است . در حقیقت  NIS ، استانداردی برای اشتراک فایل ها بین سیستم های کامپیوتری متعدد را فراهم و شامل مجموعه ای از سرویس هائی است که بمنزله یک بانک اطلاعاتی از سرویس ها عمل نموده و اطلاعات مربوط به مکان سرویس ( Mapping ) را در اختیار سایر سرویس های شبکه نظیر( Network File System (NFS) ، قرار می دهد. با توجه به ماهیت طراحی بعمل آمده  ، فایل های پیکربندی NIS ، شامل رمزهای عبور hash  بوده و این امر می تواند امکان خواندن آنان را برای تمامی کاربران فراهم و عملا" رمزهای عبور در معرض تهدید قرار گیرند .نسخه های جدید پیاده سازی شده  از NIS ، نظیر +NIS و یا LDAP عموما" دارای استحکام لازم در ارتباط با رمزهای عبور hashes می باشند( مگر اینکه شرایط فوق توسط نصب کننده تغییر یابد). تنظیم و پیکربندی نسخه های فوق ( نسخه های جدید ) ، مشکل تر بوده و همین امر می تواند استفاده از آنان را با تردید و مشکل مواجه نماید . 

حتی اگر رمزهای عبور hashes توسط /etc/shadow و یا امکانات پیاده سازی شده ، محافظت گردند ، امکان حدس و تشخیص رمزهای عبور توسط سایر افراد وجود خواهد داشت . در این رابطه می توان به موارد متعدد دیگری نظیر : ضعف رمز عبور ، وجود account های غیر استفاده مربوط به کارکنانی که سازمان خود را ترک نموده اند ، اشاره نمود .سازمان ها معمولا" در رابطه با غیر فعال نمودن account مربوط به کاربران قدیمی کوتاهی نموده و لازم است در این رابطه از روش های خاصی استفاده گرد.
نصب های پیش فرض سیستم های عامل و یا شبکه توسط سازندگان و یا مدیران  سیستم و یا شبکه ، می تواند نصب مجموعه ای از سرویس های غیرضروری را  نیز بدنبال داشته باشد.  رویکرد فوق،با اینکه عملیات نصب سیستم عامل و سرویس ها ی مربوطه را تسهیل می نماید ولی  مجموعه ای از سرویس های غیر ضروری و
account هائی که بصورت پیش فرض ضعیف ویا فاقد رمز عبور می باشند را بهمراه بر روی سیستم مستقر و پیکربندی می نماید.

نحوه حفاظت در مقابل نقطه آسیب پذیر :

بهترین و مناسبترین دفاع در مقابل ضعف رمزهای عبور ، تبعیت از یک سیاست امنیتی مستحکم بوده که دستورالعمل های لازم  کهه موجب می شود رمزهای عبور مناسب و مستحکمی توسط کاربران تعریف و توسط مدیران سیستم بصورت مستمر پیوستگی و استحکام آنان بررسی می گردد با حمایت کامل سازمان . مراحل زیر توصیه های لازم برای ارائه یک سیاست امنیتی مناسب می باشد :

  • اطمینان ازاستحکام و انسجام  رمز های عبور . با استفاده از سخت افزار مناسب و اختصاص زمان کافی ، می توان هر رمز عبوری را  crack نمود. در این راستا می  توان با استفاده ازروش های ساده و در عین حال موفقیت آمیز، عملیات تشخیص رمز عبور را انجام داد . اغلب برنامه های تشخیص دهنده رمزعبوراز روشی موسوم به "حملات مبتنی بر سبک دیکشنری " ، استفاده می نمایند. با توجه به اینکه روش های رمز نگاری تا حدود زیادی شناخته شده می باشند  ، برنامه های  فوق ، قادر به مقایسه  شکل  رمز شده یک رمز عبور در مقابل شکل  های رمز شده کلمات دیکشنری می باشند( در زبان های متعدد و استفاده از اسامی مناسب بهمراه جایگشت های مختلف آنان  ) . بنابراین ، رمز عبوری  که ریشه آن در نهایت یک کلمه شناخته شده باشد ، دارای استعداد ذاتی در رابطه با این نوع از حملات خواهد بود . تعداد زیادی از سازمان ها ، آموزش های لازم در خصوص نحوه تعریف رمزهای عبور را به کارکنان خود داده و به آنان گفته شده است  که رمزهای عبور مشتمل بر ترکیبی از حروف الفبائی و کاراکترهای ویژه را برای خود تعریف نمایند.متاسفانه اکثر کاربران این موضوع را رعایت ننموده و  بمنظور تعریف یک رمز عبور با نام "password" ، صرفا" اقدام به تبدیل حروف به اعداد و یا حروف ویژه می نمایند ( pa$$w0rd) . چنین جایگشت هائی نیز قادر به  مقاومت در مقابل یک تهاجم مبتنی بر دیکشنری نبوده و  "pa$$w0rd" به روش مشابهی که "password" تشخیص داده می شود ، crack خواهد شد .

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

پس از ارائه دستورالعمل ها ی لازم و مناسب برای ایجاد رمزهای عبور ، روتین های تکمیلی خاصی  می بایست ایجاد تا این اطمینان حاصل گردد که کاربران پایبند به دستورالعمل های ارائه شده بوده اند. بهترین روش در این زمینه ، بررسی صحت اعتبار رمزهای عبور پس  از اعمال تغییرات توسط کاربران است . اکثر نمونه های یونیکس و لینوکس می توانند از Npasswd بمنظور بررسی رمز عبور در مقابل سیاست امنیتی موجود استفاده نمایند. سیستم های PAM-Enabled  نیز می توانند از Cracklib ( کتابخانه لازم بمنظور هماهنگی با  Crack ) بمنظور بررسی رمزهای عبور ایجاد شده ، استفاده نمایند.اکثر سیستم های PAM-enabled را می توان بگونه ای پیکربندی نمود که رمزهای عبوری  را که با سیاست های مشخص شده مطابقت ندارد ، رد نمایند .
درمواردیکه امکان استفاده از ابزارهائی نظیر
Npasswd و یا کتابخانه های PAM-Enabled ، وجود ندارد، مدیران سیستم و شبکه می توانند از برنامه های کاربردی Cracking  در حالت stand-alone و بعنوان یک روتین کنشگرایانه مستمر، استفاده نمایند. LC4 )l0phtcrack version 4) و John the Ripper  ، نمونه هائی از برنامه های فوق ، می باشند.  لازم است مجددا" به این موضوع اشاره گردد که بدون کسب مجوز لازم از مدیران ارشد سیستم در سازمان ، نمی بایست از برنامه های cracking استفاده گردد.پس از کسب مجوزهای  لازم ، می توان عملیات فبررسی رمزهای عبور  را بر روی یک ماشین حفاظت شده انجام داد. به کاربرانی که رمزهای عبور آنان crack می گردد، بصورت محرمانه وضعیت فوق گزارش و دستورالعمل های لازم در خصوص نحوه انتخاب یک رمز عبور مناسب نیز به آنان ارائه گردد .اخیرا" و در پاسخ به رمزهای عبور ضعیف ، استفاده از روش هائی دیگر بمنظور تائید کاربران،  نظیر بیومتریک (زیست سنجی )  ، نیز مورد توجه  واقع شده است .

  • حفاظت رمزهای عبور مستحکم . در صورتیکه رمزهای عبور hashes در etc/passwd /  ذخیره می گردند ، سیستم را بهنگام نموده تا از  /etc/shadow استفاده گردد . در صورتیکه بر روی  سیتستم  NIS و یا LDAP اجراء که امکان حفاظت hashes وجود نداشته باشد ، هر کاربری قادر به خواندن رمزهای عبور hashes و تلاش بمنظور cracking  آنان ، خواهد بود.در این رابطه  می بایست بررسی لازم در خصوص استفاده از گزینه های ایمن تری از نسخه های NIS و LDAP را انجام داد. تا زمانیکه این نوع برنامه های غیر ایمن وجود داشته و با نمونه های ایمن جایگزین نشده اند، می بایست  مجوزهای مربوطه را ایمن و از ابزارهای کنشکرایانه بصورت مستمر استفاده گردد.در این رابطه پیشنهاد می گردد که در مقابل استفاده از الگوریتم قدیمی Crypt بمنظورhash نمودن رمزهای عبور از الگوریتم  MD5 استفاده گردد.

حتی اگر رمزهای عبور ، مستحکم و قدرتمند باشند ، در صورت عدم حفاظت آنان توسط کاربران ، سیستم های موجود در یک سازمان در معرض تهدید قرار خواهند گرفت .  یک سیاست امنیتی مناسب ، می بایست شامل دستورالعمل های لازم بمنظور آموزش کاربران در رابطه با حفاظت رمزهای عبور می باشد.عدم ارائه رمز عبور به افراد دیگر، عدم نوشتن رمز عبور در محلی که امکان خواندن آن برای دیگران وجود داشته باشد و حفاظت اتوماتیک فایل  هائی که رمزهای عبور در آن ذخیره شده اند ، از جمله مواردی می باشند که می بایست به کاربران آموزش داده شود. اغلب کاربران در مواجهه با پیامی مشابه "Your password has expired"  که نشاندهنده اتمام عمر مفید یک رمز عبور است ، یک رمز عبور ضعیف را برای خود انتخاب می نمایند ، بنابراین لازم است در فرصت مناسب و قبل از برخورد با اینچنین پیام هائی ، به کاربران آموزش های لازم ارائه گردد.

  • کنترل دائم و پیوسته accounts . هر account مدیریتی و یا مبتنی بر سرویس که از آن استفاده نمی گردد، می بایست غیر فعال و یا در صورت امکان از روی سیستم حذف گردد. هر account مدیریتی و یا مبتنی بر سرویس که از آن استفاده می گردد ، می بایست دارای رمزعبورجدید و مستحکمی باشد. پیکربندی account های جدید کاربران  با رمزهای عبور اولیه (تولیده شده بصورت تصادفی)  و ضرورت تغییر رمزهای عبور توسط کاربران و در اولین log in  نیز می تواند در این زمینه مفید واقع شود. ممیزی account ها بر روی سیستم را انجام  و لازم است در این رابطه یک لیستی اصلی ایجاد گردد .در این رابطه می بایست رمزهای عبور در ارتباط با سیستم هائی نظیر روترها ، چاپگرهای دیجیتالی متصل شده به اینترنت و سایر موارد دیگر نیز مورد بررسی قرار گرفته و روتین هائی خاص بمنظور افزودن account های تائید شده  به لیست و یا حذف  account هائی که ضرورتی به استفاده از آنان نمی باشد ، پیاده سازی و همواره خود را پایبند به آن بدانیم .اعتبار لیست را در فواصل زمانی خاصی بررسی تا از بهنگام بودن آن اطمینان حاصل گردد.از روتین های  خاصی بمنظورحذف account متعلق به کارکنان و یا پیمانکارانی که سازمان را ترک نموده اند ، استفاده گردد .

پنجمین نقطه آسیب پذیر : :Clear Text Services

تعداد زیادی از سرویس های شبکه استفاده شده توسط سیستم های مبتنی بر یونیکس ، بصورت  plain text بوده و  از رمزنگاری خاصی استفاده نمی نمایند. ضعف در رمزنگاری ، امکان شنود اطلاعاتی ( مشاهده ترافیک شبکه )  را فراهم و مهاجمان در ادامه امکان دستیابی به محتویات ارتباط ایجاد شده و یا اطلاعات حساس کاربران نظیر داده های مرتبط با رمز عبور را بدست خواهند آورد.  مثلا" بمنظور تشخیص  اطلاعات مرتبط با FTP و یا telnet ( اطلاعات login ) ، یک مهاجم ، می تواند  یک  sniffer  را در شبکه  و در محلی بین مسیر ارتباطی، مستقر نماید (بعنوان سرویس دهنده FTP و یا یا Client LAN ) . تبادل اطلاعات بین دستورات ورودی توسط سرویس گیرندگان و پاسخ های ارائه شده توسط سرویس های موجود بر روی سرویس دهنده ، بصورت plain-text خواهد بود. بدین ترتیب ،امکان ردیابی ( رهگیری ) داده و یا کلیدهای فشرده شده توسط کاربر بسادگی فراهم می گردد. اغلب مهاجمان در حملات اخیر خود از برنامه های مختص شنود اطلاعاتی استفاده و عمدتا" اینگونه برنامه ها را  بر روی دستگاهها ی  آسییب پذیر نصب می نمایند. در چنین مواردی ، تشخیص نام و رمز عبور کاربر در داده های جمع آوری شده ( شنود اطلاعاتی ) ، بسادگی میسر خواهد شد.جدول زیر،  لیست برخی از سرویس های شبکه یونیکس را که اطلاعات را بصورت Clear Text  ، مبادله می نمایند ، نشان می دهد :

سرویس هائی نظیر Telnet و FTP که شامل اطلاعات  مربوط به تائید هویت کاربران می باشند ، اطلاعات مورد نظر را بصورت متن  ارسال  که  بالاترین ریسک را بدنبال خواهد داشت . در چنین مواردی مهاجمان می توانند با استفاده مجدد از داده های حساس کاربران نظیر نام و رمز عبور، با خیال راحت ! به سیستم دستیابی نمایند .علاوه براین ، اجرای دستورات  بصورت clear text می تواند توسط مهاجمان استفاده تا با استفاده از آنان دستورات دلخواه خود را بدون الزامی برای تائید ، اجراء نمایند. سرویس های Clear text  ، می توانند زمینه تهدیدات مختلفی نظیر  :  تسهیل در انجام  حملات  ، دستیابی از راه دور ، اجرای دستورات بر روی یک سیستم مقصد ، شنود و تشخیص اطلاعات را بدنبال داشته باشد

سیستم های عامل در معرض تهدید :

تمامی  نمونه های یونیکس  ارائه شده ، از سرویس ها ی Clear text استفاده می نمایند. ( telnet و FTP دو نمونه متدواول در این زمینه می باشند ) . تمامی  نمونه نسخه های  ارائه شده یونیکس و  لینوکس ( تنها استنثاء در این  رابطه، مربوط به آخرین ویرایش  Free/OpenBSD  می باشد ) ، بصورت پیش فرض ، برخی از سرویس های فوق را نصب می نمایند .

نحوه تشخیص آسیب پذیری سیستم :

موثرترین و مطمئن ترین روش بمنظور تشخیص نقطه آسیب پذیر فوق (سرویس های clear text )  ، بکارگیری  نرم افزاری مشابه با  ابزارهای استفاده شده (sniffer) توسط مهاجمان است. متداولترین برنامه موجود در این زمینه ،  tcpdump می باشد. برای دریافت برنامه "tcpdump " می توان از آدرس  http://www.tcpdump.org/  ،  استفاده نمود . نحوه فعال نمودن برنامه فوق،بمنظور تشخیص هر گونه ارتباط clear text ،  بصورت زیر است :

  # tcpdump -X -s 1600

دراین راستا می توان از برنامه های دیگر نظیر : "ngrep" نیز استفاده نمود. برنامه فوق،امکان جستجوی الگوئی خاص نظیر "sername " و یا " assword " را در شبکه فراهم می نماید.  ( اولین حروف، بمنظور سازگاری با حروف بزرگ احتمالی ، در نظر گرفته نشده است ) نحوه فعال نمودن برنامه فوق ،  بصورت زیر است :

  # ngrep assword

در این رابطه می توان از ابزارهای متنوع  دیگری بمنظور تشخیص داده های حساس کاربران ( نام و رمز عبور )  استفاده نمود . Dsniff ، متداولترین ابزار در این زمینه است . برنامه فوق ، بررسی لازم در خصوص تمامی زوج نام و رمزعبور بر روی پروتکل های Plain text حجیم، نظیر FTP ، Telnet و POP3 را انجام و پس از تشخیص، آنان را نمایش خواهد داد. برای بدست آوردن برنامه فوق می توان از آدرس  http://www.monkey.org/~dugsong/dsniff/   استفاده نمود . نحوه فعال نمودن برنامه فوق ،  بصورت زیر است :

 # /usr/sbin/dsniff

نحوه حفاظت در مقابل نقطه آسیب پذیر :


استفاده از رمزنگاری
End-To-End و یا حداقل رمزنگاری Link-level می تواند در این زمینه مفید واقع گردد. برخی پروتکل ها از لحاظ رمزنگاری معادل یکدیگر می باشند( نظیر : POP3S و HTTPS ) . برای پروتکل هائی که دارای قابلیت ها  و امکانات  , ذاتی رمزنگاری نمی باشند ، می توان آنان را از طریق  SSH : Secure Shell ، و یا  SSL connection انجام داد( tunneling ) .

OpenSSH یک نمونه پیاده سازی شده متداول و انعطاف پذیر ازSSH  است.( قابل دسترس در آدرس  http://www.openssh.org/  ) . برنامه فوق، در اکثر نسخه های یونیکس اجراء و می توان از آن بمنظور ارتباطات از راه دور ( replaces telnet ,rlogin ,rsh ) و tunneling ( پروتکل هائی نظیر POP3,SMTP و X11 )   استفاده گردد .
دستور زیر نحوه
tunnel نمودن POP3 را بر روی SSH connection  نشان می دهد. بر روی  سرویس دهنده POP3 ، می بایست سرویس دهنده SSH نیز اجراء گردد. در ابتدا آن را بر روی ماشین سرویس گیرنده اجراء می نمائیم.

در ادامه ، برنامه سرویس گیرنده پست الکترونیکی را به localhost اشاره می دهیم ، پورت TCP 110  ( برخلاف روال معمول که بصورت : pop3.mail.server.com ، پورت 110 است )  . بدین ترتیب ، تمامی ارتباطات بین ماشین و سرویس دهنده پست الکترونیکی بصورت رمز شده انجام خواهد شد ( tunneled over SSH  ) .
یکی دیگر از راه حل های متداول رمزنگاری مبتنی بر
tunneling ، استفاده از stunnel است . روش فوق ، پروتکل SSL را پیاده سازی( با استفاده از OpenSSL Toolkit ) و می توان آن را  بمنظور tunel نمودن پروتکل های متفاوت plain text بخدمت گرفت . برای دریافت برنامه فوق ، می توان از آدرس  http://www.stunnel.org/  استفاده نمود.

ششمین نقطه آسیب پذیر : : Sendmail

Sendmail ، برنامه ای است که از آن بمنظور ارسال ، دریافت و فوروارد نمودن  نامه های الکترونیکی در اغلب سیستم های یونیکس و لینوکس استفاده می گردد. Sendmail ، یکی از متداولترین MTA : Mail Transfer Agent  در اینترنت بوده که بطور گسترده ای از آن بعنوان "آژانش توزیع نامه های الکترونیکی" بهمراه سرویس دهندگان پست الکترونیکی ، استفاده می گردد  . Sendmail ، یکی از اهداف اولیه مهاجمان  در سالیان اخیر بوده و تاکنون حملات متعددی را در ارتباط با آن شاهد بوده ایم. اکثر حملات انجام شده بدلیل قدیمی بودن  و یا عدم patch مناسب نسخه های نصب شده ، با موفقیت همراه بوده است .در این رابطه  می توان به چندین نمونه از حملات اخیر اشاره نمود :

- CERT Advisory CA-2003-12 Buffer Overflow in Sendmail 
- CERT Advisory CA-2003-07 Remote Buffer Overflow in Sendmail 
خطرات و تهدیدات مرتبط با Sendmail را می توان به دو گروه عمده  تقسیم نمود :  از دست رفتن امتیازات که علت  آن buffer overflow  خواهد بود و پیکربندی نادرست سیستم که می تواند تبعات منفی را بدنبال داشته باشد ( مثلا" تبدیل یک سیستم به مرکزی آلوده برای توزیع نامه های الکترونیکی ) .عامل اصلی در بروز تهدیدات نوع اول ، عمدتا" به استفاده از نسخه های قدیمی و یا عدم  patching مناسب سیستم برمی گردد.علت اصلی تهدیدات نوع دوم ، به استفاده از فایل های پیکربندی پیش فرض و نادرست برمی گردد .

سیستم های عامل در معرض تهدید :

تقریبا" تمامی نسخه های لینوکس و یونیکس بهمراه یک نسخه نصب شده از Sendmail عرضه می گردند. سرویس فوق،  بصورت پیش فرض فعال می باشد .

نحوه تشخیص آسیب پذیری سیستم

Sendmail ، در گذشته دارای نقاط آسیب پذیر فراوانی بوده که بتدریج  وبا ارائه نسخه های جدیدتر و patch های مربوطه ، میزان  آسیب پذیری آن کاهش یافته است .هر نسخه قدیمی و یا Patch نشده نرم فزار فوق در معرض آسیب قرار خواهد داشت .

مسیر مشخص شده sendmail  در دستور فوق ، با توجه به پیکربندی سیستم ، می تواند متفاوت باشد. برای آگاهی از آخرین نسخه ارائه شده Sendmail می توان از آدرس  http://www.sendmail.org/current-release.html  استفاده نمود .

نحوه حفاظت در مقابل نقطه آسیب پذیر:

مراحل زیر بمنظور ایمن سازی و حفاظت Sendmail پیشنهاد می گردد :

  •  نسخه موجود را به آخرین نسخه ارتقاء و از آخرین patch های موجود ، استفاده گردد . برای دریافت source code می توان از آدرس http://www.sendmail.org/  استفاده نمود. در صورتیکه نسخه sendmail بهمراه سیستم عامل ارائه شده است  ( یک Package ) ، می توان برای دریافت patch مربوطه به سایت عرضه کنندگان سیستم عامل مراجعه نمود.
  • برنامه sendmail عموما" بصورت پیش فرض در اکثر سیستم های یونیکس و لینوکس ( حتی آنانی که بعنوان سرویس دهنده mail  مورد نظر نبوده و فعالیت آنان در ارتباط با  mail نخواهد بود) نصب می گردد. برنامه Sendmail را در حالت daemon بر روی ماشین های فوق ، اجراء ننمائید ( غیر فعال نمودن سوئیچ  bd -  ) . امکان ارسال نامه الکترونیکی توسط سیستم های فوق ، همچنان وجود خواهد داشت . در این رابطه می بایست پیکربندی سیستم بگونه ای انجام شود که به یک mail relay در فایل پیکربندی sendmail ، اشاره گردد.فایل پیکربندی،  sendmail.cf نام داشته و معمولا" در آدرس  etc/mail/sendmail.cf  قرار دارد .
  • در صورتیکه  لازم است sendmail در حالت daemon اجراء گردد، می بایست از صحت پیکربندی انجام شده اطمینان حاصل گردد.
  • در نسخه  Sendmail 8.9.0 ، امکان open relay  بصورت پیش فرض غیرفعال می باشد.تعداد زیادی از عرضه کنندگان سیستم های عامل ، مجددا" آن رادر پیکربندی پیش فرض خود فعال می نمایند. در صورت استفاده از نسخه  Sendmail  ارائه شده بهمراه سیستم عامل ، می بایست دقت لازم در اینخصوص را انجام داد ( عدم استفاده سرویس دهنده برای  realying  ).
  • در زمان استفاده از نسخه جدید sendmail ( سوئیچ نمودن به یک نسخه دیگر ) ،  لازم است تدابیر لازم در خصوص تغییر فایل های پیکربندی ارائه شده توسط نسخه قدیمی ، اندیشیده گردد .
  •  در مواردیکه برنامه  Sendmail  از منابع موجود بر روی اینترنت Download  می گردد ، می بایست  بمنظور اطمینان از مجاز بودن نسخه تکثیری  از  PGP signature  استفاده نمود. در این رابطه لازم است به این نکته دقت شود که بدون بررسی integrity مربوطه به source code  برنامه Sendmail ، نمی بایست از آن استفاده شود. در گذشته ، نسخه هائی از Trojan ها در Sendmail  مستقر تا در زمان مناسب حرکت مخرب خود را آغاز نمایند

هفتمین نقطه آسیب پذیر : ( Simple Network Management Protocol (SNMP
از پروتکل
SNMP بمنظور کنترل ، مانیتورینگ از راه دور و پیکربندی  تمامی دستگاه های پیشرفته مبتنی بر TCP/IP  در ابعاد گسترده ای  استفاده می شود.با اینکه  استفاده از SNMP در بین پلات فرم های متفاوت شبکه استفاده می گردد، ولی در اغلب موارد از آن  بمنظور پیکربندی و مدیریت دستگاههائی نظیر چاپگر ، روترها ، سوئیچ ها ، Access point ها  و دریافت داده های مورد نیاز دستگاههای مانیتورینگ شبکه ، استفاده می شود
SNMP ، از روش های متفاوتی بمنظور مبادله پیام بین ایستگاههای مدیریت SNMP و دستگاههای شبکه ای  استفاده می نماید . روش های استفاده شده بمنظور برخورد با پیام های مبادله شده و مکانیزم تائید و معتبر سازی پیا م ها،  از جمله عوامل اصلی در رابطه با  نقاط آسیب پذیر SNMP می باشند

نقاط آسیب پذیر مرتبط با روش های استفاده شده در SNMP ( نسخه یک )  بهمراه جزئیات مربوطه را می توان در آدرس  CERT - 2002 - 03  ، مشاهده نمود . نقاط آسیب پذیر متعددی در SNMP متاثر از روش برخورد با پیام ها توسط ایستگاه های مدیریتی است . نقاط آسیب پذیر فوق، به نسخه ای خاص  از SNMP محدود نبوده و محصولات متعدد ارائه شده توسط تولید کنندگان را نیز شامل می گردد . مهاجمان با استفاده از نقاط آسیب پذیر فوق ، قادر به انجام حملات متفاوت از نوع DoS ( از کار افتادن یک سرویس ) تا پیکربندی و مدیریت ناخواسته ماشین آلات و تجهیزات مبتنی بر SNMP  ، می باشند .
برخی از نقاط آسیب پذیر در ارتباط با
SNMP متاثر از روش های استفاده شده بمنظور تائید و معتبر سازی پیام ها در نسخه های قدیمی SNMP  است ( توارث مشکلات ) . نسخه های یک و دو SNMP ، از یک " رشته  مشترک " غیررمز شده بعنوان  تنها  گزینه موجود  برای تائید پیام ها استفاده می نمایند . عدم استفاده از روش های مناسب رمزنگاری ، می تواند عاملی مهم در پیدایش نقاط آسیب پذیر باشد. نگرش پیش فرض  نسبت به  " رشته مشترک  " که  توسط تعداد زیادی از دستگاههای SNMP استفاده می گردد ، از ذیگر عوامل مهم در ارتباط با عرضه نقاط آسیب پذیر است( برخی از تولید کنندگان بمنظور افزایش سطح ایمنی مربوط به داده های حساس ، رشته را بصورت "اختصاصی " تغییر و استفاده می نمایند ) .  شنود اطلاعاتی و ترافیک SNMP ، می تواند افشاء  اطلاعات و ساختار شبکه ( سیستم ها و دستگاههای متصل شده به آن  )  را بدنبال داشته باشد . مهاجمین با استفاده از اطلاعات فوق ، قادر به انتخاب مناسب و دقیق هدف خود بمنظور برنامه ریزی حملات خود می باشند .
اکثر تولید کنندگان بصورت پیش فرض نسخه یک
SNMP را فعال و تعدادی  دیگر،  محصولاتی را ارائه می نمایند که  قادر به استفاده ازمدل های امنیتی نسخه شماره سه SNMP  نمی باشند. ( با استفاده از مدل های امنیـی ارائه شده در نسخه شماره سه SNMP ، می توان پیکربندی لازم در خصوص روش های تائید را بهبود بخشید ) .
SNMP ، مختص یونیکس نمی باشد و  در ابعاد وسیعی در ویندوز ، در تجهیزات شبکه ای ، در چاپگرها ، access point ها و Bridges ، استفاده می گردد. با توجه به  نتایج حاصل از آنالیز حملات مبتنی بر SNMP  ، مشخص شده است که اکثر حملات در این رابطه بدلیل ضعف در پیکربندی SNMP در سیستم های یونیکس است .

سیستم های عامل در معرض تهدید

تقریبا"  بر روی تمامی سیستم های یونیکس و لینوکس  یک نسخه SNMP نصب و بهمراه آن عرضه می گردند. در اغلب موارد پروتکل فوق ، بصورت پیش فرض فعال می باشد. اکثر دستگاه ها و سیستم های عامل شبکه ای مبتنی بر SNMP دارای نقطه آسیب پذیر فوق بوده و در معرض تهدید قرار خواهند داشت .

نحوه تشخیص آسیب پذیری سیستم

بمنظور بررسی نصب SNMP  بر روی دستگاههای موجود و متصل شده در شبکه ، می توان از یک برنامه کمکی و یا روش دستی استفاده نمود در مواردیکه امکان استفاده از ابزارهای  پویشگر وجود ندارد ، می توان بررسی لازم در خصوص نصب و اجراء SNMP  را بصورت دستی انجام داد. در این راستا می توان به مستندات سیستم عامل مربوطه مراجعه تا پس از آگاهی از نحوه پیاده سازی SNMP  ، عملیات لازم بمنظور تشخیص فعال بودن SNMP را انجام داد . در این رابطه می توان ، جستجوی لازم در لیست پردازه ها برای یافتن "snmp" در حال اجراء بر روی پورت های 161 و 162 را انجام داد .  وجود صرفا " یک نمونه SNMP  ، دلیلی بر آسیب پذیری سیستم است . بمنظور آگاهی از جزیئات لازم در اینخصوص می توان از آدرس  CERT - 2002 - 03 استفاده نمود . در صورت تحقق یکی از شرایط زیر و نصب  SNMP ،  سیستم در معرض آسیب  و تهدید قرار خواهد داشت :

  • وجود اسامی SNMP Community پیش فرض و یا خالی ( اسامی استفاده شده بعنوان رمزهای عبور )
  • وجود اسامی SNMP Community  قابل حدس
  • وجود رشته های مخفی SNMP Community

نحوه حفاظت در مقابل نقطه آسیب پذیر :

بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ،در دو زمینه می توان اقدامات حفاظتی را سازماندهی نمود .

حفاظت در مقابل درخواست های آسیب رسان و تهدید کننده :

  • غیر فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن
  • استفاده از یک مدل امنیتی مبتنی بر کاربر SNMPv3 ،  بمنظور تائید پیام ها و رمزنگاری داده ها ( در صورت امکان ) 
  • در صورت استفاده از SNMP نسخه یک و یا دو ، می بایست آخرین نسخه Patch ارائه شده توسط تولید کننده ، نصب گردد برای آگاهی از مشخصات تولیدکننگان، می توان به  بخش ضمیمه  CERT Advisory CA-2002-03 ، مراجعه نمود .
  • SNMP را در گلوگاه های ورودی شبکه فیلتر نمائید ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP )  . عملیات فوق را در مواردیکه ضرورتی به مدیریت دستگاهها بصورت خارجی وجود ندارد ، می بایست انجام داد .
  • از  کنترل دستیابی مبتنی بر میزبان بر روی سیستم های SNMP agent استفاده گردد . ویژگی فوق ممکن است توسط SNMP agent سیستم های عامل دارای محدودیت هائی باشد ، ولی می توان کنترل لازم در خصوص پذیرش درخواست ها توسط agent مربوطه را انجام داد. در اکثر سیستم های یونیکس ، می توان عملیات فوق را توسط  یک TCP-Wrapper و یا پیکربندی Xined انجام داد . استفاده از یک فایروال فیلترینگ بسته های اطلاعاتی مبتنی بر agent  بر روی یک میزبان  نیز می تواند در بلاک نمودن درخواست های ناخواسته SNMP موثر واقع شود .

حفاظت در مقابل رشته های قابل حدس :

  • غیر فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن
  • استفاده از یک مدل امنیتی مبتنی بر کاربر SNMPv3 ،  بمنظور تائید پیام ها و رمزنگاری داده ها ( در صورت امکان ) 
  • در صورت استفاده از SNMP نسخه یک و یا دو ، می بایست از یک سیاست خاص بمنظور اسامی community ( استفاده شده بعنوان رمزهای عبور ) استفاده گردد. در این راستا لازم است اسامی بگونه ای انتخاب گردند که  غیر قابل حدس بوده و بصورت ادواری و در محدوده های خاص زمانی نیز تغییر داده شوند .
  • SNMP را در گلوگاه های ورودی شبکه فیلتر نمائید ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP )  . عملیات فوق را در مواردیکه ضرورتی به مدیریت دستگاهها بصورت خارجی وجود ندارد ، می بایست انجام داد . پیکربندی فیلترینگ را صرفا" بمنظور ترافیک مجاز SNMP بین subnet های ممیزی شده ، انجام دهید.


هشتمین نقطه آسیب پذیر :( Secure Shell (SSH

SSH ، یک سرویس عمومی برای ایمن سازی Login ، اجرای دستورات و ارسال فایل در یک شبکه است .اکثر سیستم های مبتنی بر یونیکس از بسته نرم افزاری OpenSSH  ( نسخه فوق بصورت open-source  است ) و یا نسخه تجاری  SSH Communication Security ، استفاده می نمایند . با اینکه SSH دارای ایمنی مناسبتری نسبت به telnet,ftp و برنامه های R-Command  می باشد ، ولی همچنان  در هر دو نسخه اشاره شده ، ضعف های امنیتی متعددی وجود دارد . اکثر ضعف های موجود صرفا" اشکالات جزئی بوده و تعداد اندکی از آنان ، حائز اهمیت بوده و می بایست بلافاصله نسبت به برطرف نموودن آنان اقدام گردد . مهمترین تهدید مرتبط با ضعف های امنیتی SSH ، امکان دستیابی (سطح ریشه)  به ماشین آسیب پذیر توسط مهاجمان است . با توجه به  رشد چشمگیر استفاده از سرویس گیرندگان و سرویس دهندگان  SSH  در محیط های ویندوز،  اکثر اطلاعات ارائه شده در رابطه با نقطه آسیب پذیر فوق ، به نسخه های پیاده سازی شده  SSH در  ویندوز و  (یونیکس ، لینوکس  )  بر می گردد .عدم مدیریت مناسب SSH ، خصوصا" در ارتباط با پیکربندی و بکارگیری patch ها و بهنگام سازی لازم ، می تواند مسائل و مشکلات خاص خود را  بدنبال داشته باشد .

SSH2 ، ابزاری قدرتمند تعداد زیادی از نقاط آسییب پذیر تشخیص داده شده   در پروتکل هائی نظیر POP3 ( جایگزین با SSH2 SFTP ) ، برنامه Telnet ، سرویس HTTP ,  و ابزارهای مبتنی بر rhost ( نظیر : روش های تائید ,rsh ,   rlogin ,rcp ) باعث ارسال اطلاعات بصورت clear text  و یا عدم پردازش مناسب session های سرویس گیرنده - سرویس دهنده می گردد. پروتکل SSH1 ، دارای  پتانسیل آسیب پذیری  بالائی خصوصا" در ارتباط با session  موقتی رمزنشده می باشد . بدین دلیل  مدیران سیستم و شبکه ، استفاده از پروتکل SSH2  را  گزینه ای شایسته در اینخصوص می دانند( در مواردیکه امکان آن وجود دارد) . لازم است به این نکته مهم  اشاره گردد که SSH1 و SSH2 با یکدیگر سازگار نبوده  و لازم است  نسخه SSH بر روی سرویس گیرنده و سرویس دهنده یکسان باشند (در این رابطه موارد استثنا ء نیز وجود دارد ) .

کاربران OpenSSH می بایست به این نکته توجه نمایند که کتابخانه های OpenSSH در مقابل پتانسیل های ایجاد شده توسط OpenSSH ، دارای نرم افزارهای آسیب پذیر مختص خود می باشند. بمنظور آگاهی از جزئیات مربوطه ، می توان از آدرس  CERT Advisory 2002-23 استفاده  نمود .در سال 2002 یک نسخه آلوده از OpenSSH  ( نسخه فوق دارای یک trojan-horse  بود ) در زمان کوتاهی گسترش و باعث آسیب های فراوانی گردید.

سیستم های عامل در معرض تهدید

هر نسخه یونیکس و یا لینوکس که بر روی آن OpenSSH 3.3 و یا بعد از آن ( نسخه  ارائه شده در سال 2003 ،version 3.6.1)  و یا SSH Communication Security's SSH 3.0.0  و یا بعد از آن ( نسخه ارائه شده در سال 2003 شماره version 3.5.2 ) نصب واجراء می گردد ،  در معرض این آسیب قرار خواهد داشت .

نحوه تشخیص آسیب پذیری سیستم

با استفاده از یک پویشگر مناسب ، می توان بررسی لازم در خصوص آسیب پذیری یک نسخه را انجام داد . در این رابطه می توان با اجرای دستور " ssh   -V " ، از شماره نسخه نصب شده بر روی سیستم آگاه گردید.  ScanSSH ، ابزاری مفید  بمنظور تشخیص  از راه دور سرویس دهندگان SSH  آسیب پذیر بدلیل عدم Patching ، می باشد. دستور خطی ScanSSH ، لیستی از آدرس های شبکه را برای سرویس دهندگان  پویش و گزارشی در ارتباط با شماره نسخه های آنان را ارائه می نماید .

نحوه حفاظت در مقابل نقطه آسیب پذیر

بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، موارد زیر پیشنهاد می گردد :

  •  نسخه  SSH   و یا  OpenSSH  را به آخرین نسخه موجود ارتقاء دهید . درصورتیکه SSH و یا OpenSSH بهمراه سیستم عامل ، نصب شده باشد ، می بایست  آخرین Patchمربوطه را از سایت ارائه دهنده سیستم عامل دریافت و آن را برروی سیستم نصب نمود. در صورت استفاده  از OpenSSL  ، از نصب آخرین نسخه آن مطمئن شوید .
  • حتی المقدور سعی گردد، نسخه SSH1 به SSH2 ارتقاء یابد .در رابطه با توسعه SSH1  در آینده تصمیم خاصی وجود نداشته و توسعه SSH2 مورد نظر می باشد .
  •  دو نسخه پیاده سازی شده SSH ، دارای مجموعه ای از گزینه های انتخابی بوده  که مدیران سیستم با استفاده از آنان و با توجه به سیاست های موجود می توانند پیکربندی مناسبی در اینخصوص را انجام دهند.  امکان محدودیت در دستیابی به ماشین مورد نظر و اتصال به آن ، روش های تائید کاربران و ماهیت کاربران مجاز ، نمونه هائی از گزینه های انتخابی بوده که می توان از آنان بمنظور پیکربندی مطلوب استفاده گردد.
  • پیکربندی مناسب  سرویس گیرندگان SSH  در زمان اتصال به سرویس دهنده ای که SSH را حمایت نمی نماید . در چنین مواردی سرویس گیرنده ممکن است به عقب برگشته و استفاده از rsh را در این رابطه مفید تشخیص دهد . بمنظور پیشگیری از مواردی اینچنین می بایست  به کلید FallBackToRsh  در فایل پیکربندی SSH ، مقدار NO را نسبت داد .
  •  از رمزنگاری blowfish در مقابل 3DES استفاده گردد (روش 3DES ، ممکن است بصورت پیش فرض در نسخه مربوطه در نظر گرفته شده باشد ). بدین ترتیب علاوه بر افزایش سرعت در عملیات ، رمزنگاری انجام شده نیز از استحکام مناسبی برخوردار خواهد بود.

نهمین نقطه آسیب پذیر : عدم پیکربندی مناسب سرویس های NIS/NFS

Network File System)NFS) و Network Information Service )NIS) ، دو سرویس مهم استفاده شده در شبکه های یونیکس می باشند. NFS ، سرویسی است که توسط شرکت Sun Microsystems بمنظور اشتراک فایل ها بین سیستم های موجود در یک شبکه یونیکس ، طراحی و پیاده سازی گردیده است . با استفاده از سرویس فوق امکان اشتراک و دستیابی به فایل های موجود بر روی کامپیوترهای شخصی و کامپیوترهای بزرگ فراهم می گردد . NFS ، روش استاندارد اشتراک فایل بین سیستم های کامپیوتری متفاوت است . NIS ، یک سرویس بانک اطلاعاتی توزیع شده را برای مدیریت اکثر فایل های مدیریتی مهم نظیر فایل های passwd و hosts فراهم می نماید .مدیریت متمرکز NIS ، امکان اعمال تغییرات مورد نظر را از یک نقطه ( بانک اطلاعاتی ) فراهم می نماید.(عدم ضرورت اعمال تغییرات بر روی هر سیستم موجود در شبکه ) . مهمترین هدف  NIS  ، ارائه اطلاعات مربوط به مکان یابی ( Maps نامیده می شود ) به سایر سرویس های شبکه نظیر NFS است .فایل های passwd و group ، نمونه هائی  در این زمینه ( Maps ها مورد نظر ) بوده که از آنان بمنظور تمرکز در تائید کاربران  استفاده می گردد. سرویس های NIS و NFS ، دارای ضعف های امنیتی متعددی ( مثلا" ضعف در سیستم تائید کاربران ) بوده و در سالیان اخیر مهاجمان با استفاده از آنان ، حملات متعددی را سازماندهی و به سرانجام رسانده اند .اکثر حملات انجام شده از نوع buffer overflows  ، DoS  می باشد . با توجه به آسیب پذیری سرویس های فوق ، مهاجمان  همواره از آنان بعنوان هدفی مناسب در جهت حملات خود استفاده نموده اند .

درصورت عدم پیکربندی مناسب سرویس های NFS و NIS و Patching مناسب ، سیستم های کامپیوتری در معرض تهدید جدی بوده و مهاجمان با سوءاستفاده از حفره های امنیـتی موجود قادر به دستیابی  سیستم از راه دور و یا بصورت محلی خواهند بود. مکانیزم استفاده شده توسط NIS برای تائید کاربران دارای ضعف های خاص خود بوده و مهاجمان با استفاده از نرم افزارهائی نظیر ypcat  قادر به نمایش مقادیر و داده موجود در  بانک اطلاعاتی NIS بمنظور بازیابی فایل رمزعبور می باشند.

سیستم های عامل در معرض تهدید :

تقریبا" تمامی سیستم های یونیکس و لینوکس بهمراه یک نسخه از NFS و NIS ارائه می گردند. سرویس های فوق،  بصورت پیش فرض فعال می باشند .

نحوه تشخیص آسیب پذیری سیستم :

 بمنظور تشخیص آسیب پدیری سیستم در رابطه با سرویس های NIS و NFS موارد زیر پیشنهاد می گردد :  

  • ·  بررسی و اطمینان از نصب آخرین Patch ارائه شده توسط تولید کننده . تمامی نسخه هائی که بهنگام نشده و یا آخرین Patch موجود بر روی آنان نصب نشده باشد در معرض تهدید و آسیب قرار خواهند داشت . در اکثر نسخه ها  با استفاده از دستور rpc.mountd -version  می توان از شماره نسخه NFS  نصب شده آگاهی یافت . بمنظور آگاهی از شماره نسخه NIS  می توان از دستور  ypserv -version   استفاده نمود ( دستور فوق شماره نسخه NFS را نیز نمایش خواهد داد ) .
  • ·  بمنظور تشخیص آسیب پذیری نرم افزار، می توان  از یک پویشگر نقاط آسیب پذیر بهنگام شده بصورت مستمر استفاده تا بررسی لازم در خصوص ضعف های جدید صورت پذیرد.

بمنظور برخورد با عدم پیکربندی مناسب NIS موارد زیر پیشنهاد می گردد : 

  • اطمینان از عدم نگهداری Root Password در یک NIS map
  • سازگاری رمزهای عبور تعریف شده با سیاست های امنیتی موجود. در این راستا می توان از یک برنامه Cracker  بمنظور بررسی استحکام رمزهای عبور تعریف شده،استفاده نمود.

بمنظور برخورد با عدم پیکربندی مناسب NFS موارد زیر پیشنهاد می گردد : 

  • بررس لازم در خصوص بهنگام بودن میزبانان ، netgroups و مجوزها در فایل etc \ exports \ .
  • اجرای دستور Showmount e بمنظور مشاهده عناصر export شده و بررسی سازگاری آنان با سیاست های امنیتی .

نحوه حفاظت در مقابل نقطه آسیب پذیر

موارد زیر در ارتباط با پیکربندی NIS ، پیشنهاد می گردد:

  • مشخص نمودن صریح سرویس دهندگان NIS  بر روی سرویس گیرندگان ( پیشگیری لازم در خصوص  تظاهر سایر سیستم ها بعنوان یک سرویس دهنده NIS ) .
  • ·  در زمان ایجاد فایل های DBM ، ویژگی YP_SECURE  فعال گردد . بدین ترتیب ،سرویس دهنده صرفا" به درخواست های ارسالی توسط یک سرویس گیرنده و از طریق پورت های مجاز ، پاسخ خواهد بود . در این رابطه می توان از سوئئچ S بهمراه دستور makedbm استفاده نمود .
  • درج میزبانان مورداعتماد و شبکه ها در var/yp/securenets / که توسط پردازه های  ypserv و  ypxfrd  استفاده می گردد.
  • درج    ::: 0:0 : * :+   در password map بر روی سرویس گیرندگان NFS

موارد  زیر در ارتباط با پیکربندی NFS  پیشنهاد می گردد:

  • ·   استفاده از آدرس های عددی IP و یا FQDN) fully qualified domain names)  در مقابل اسامی مستعار (زمانیکه به سرویس گیرندگان در فایل etc / exports اجازه داده می شود) .
  • ·   بمنظوربررسی پیکربندی سیستم می توان از برنامه ای با نام NFSBug ، استفاده نمود.برنامه فوق امکانات متنوعی را بمنظور تست پیکربندی سیستم ارائه می نماید . برای دریافت برنامه NFSBug ، می توان از آدرس ftp://coast.cs.purdue.edu/pub/tools/unix/nfsbug/   استفاده نمود .
  • ·  اسفاده از فایل etc\exports بمنظور اعمال محدودیت در رابطه با دستیابی به سیستم فایل NFS با افزودن  پارامترهای زیر :
    - ممانعت کاربران معمولی از
    mounting یک سیستم فایل NFS با افزودن یک پارامتر ایمن پس از آدرس IP و یا نام Domain مربوط به سرویس گیرنده NFS .
    مثلا" : (
    home 10.20.1.25(secure /
    -
    export نمودن سیستم فایل NFS با مجوزهای مناسب .عملیات فوق را می توان با افزودن مجوزهای لازم ( ro برای فقط خواندنی و یا rw برای خواندن و نوشتن ) پس از آدرس IP مربوط به نام domain  سرویس گیرنده NFS  در فایل etc\export  انجام داد.

در صورت امکان ، از پارامتر root_squash  بعد از آدرس IP و نام Domain مربوط به سرویس گیرنده NFS استفاده گردد . در صورتیکه پارامتر فوق فعال شده باشد ،  superuser ID root  بر روی سرویس گیرنده NFS با کاربر ID nobody  در سرویس دهنده NFS جایگزین می گردد. بدین ترتیب root user  بر روی سرویس گیرنده ، قادر به دستیابی و یا تغییر فایل ها  بر روی root نخواهند بود.
مثلا" : (
home 10.20.1.25(root_squash / .

  • ·  بر روی سیستم عامل سولاریس ، مانیتورینگ پورت فعال گردد. عملیات فوق را می توان با افزودن  Line set nfssrv:nfs_portmon = 1  در فایل etc/system / ، انجام داد .

موارد زیر در  ارتباط با NFS و NIS  پیشنهاد می گردد :

  • ·   بازنگری و بررسی  سیاست های فایروال بمنظور اطمینان از بلاک شدن تمامی پورت های غیر ضروری(  مثلا" پورت 111 ( portmap ) و پورت 2049 ( Rpc.nfsd ) ) .امکان دستیابی به سرویس دهندگان NFS و NIS ، می بایست صرفا" از طریق سرویس گیرندگان مجاز انجام شود.
  • ·  بررسی لازم در خصوص استفاده از NFS بر روی یک پروتکل ایمن نظیر SSH .
  • ·  نصب تمامی patch های ارائه شده توسط تولید کنندگان و یا ارتقاء  سرویس دهندگان NIS و  NFS به آخرین نسخه موجود. برای آگاهی از اطلاعات  مربوط به نصب و  پیکربندی یونیکس با لحاظ نمودن مسائل امنیتی مضاعف ، می توان از آدرس UNIX Security Checklist  استفاده نمود.
  • ·  غیر فعال نمودن NFS و NIS مربوط به deamons بر روی سیستم هائی که مختص یک سرویس دهنده NFS و یا NIS طراحی و تائید نشده اند . بمنظور پیشگیری لازم در اینخصوص می توان سرویس های  NIS و یا NFS ( و یا هر دو آنان ) را  از روی سیستم حذف نمود.

دهمین نقطه آسیب پذیر : ( Open Secure Sockets Layer (SSL

کتابخانه OpenSSL  ( بصورت Open source است ) ، نرم افزاری رایج  بمنظور افزدون امنیت رمزنگاری به برنامه ها ئی است که از طریق شبکه با یکدیگر ارتباط برقرار می نمایند .سرویس دهنده  آپاچی ، مهمترین وشناخته ترین برنامه استفاده کننده از  پکیج فوق می باشد ( بمنظور حمایـت از  hhtps ، ارتباط بر روی پورت 443 ) . برنامه های متعدد دیگر با انجام برخی تغییرات ، استفاده از  OpenSSL بمنظور افزایش امنیـت اطلاعات مبادله شده در یک شبکه را در دستور کار خود قرار داده اند .

برنامه های متعددی بمنظور ارائه امنیت رمزنگاری در ارتباط با یک Connection از OpenSSL استفاده می نمایند . مهاجمان در اغلب موارد در مقابل هدف قرار دادن مستقیم OpenSSL ، برنامه هائی را برای حملات خود انتخاب می نمایند که از OpenSSL  استفاده می نمایند . یکی از اهداف مهاجمین در این رابطه ، سرویس دهنده آپاچی است که از OpenSSL استفاده می نماید . برنامه هائی دیگر نظیر: mail ، openldap,CUPS     که از OpenSSL استفاده می نمایند نیز در معرض تهاجم قرار خواهند داشت .

OpenSSL دارای نقاط آسیب پذیر متعددی بوده که می توان به چهار نمونه مهم آنان اشاره نمود :   مورد اول ، مورد دوم ، مورد سوم ، مورد چهارم  . مهاجمان با  استفاده از نقاط آسیب پذیر فوق، قادر به اجرای کد دلخواه بعنوان کاربر کتابخانه OpenSSL می باشند.

سیستم های عامل در معرض تهدید

هر یک از سیستم های یونیکس و یا لینوکس که بر روی آنان نخسه OpenSSL 0.9.7 و یا  قبل از آن اجراء می گردد، در معرض این آسیب قرار خواهند داشت .

نحوه تشخیص آسیب پذیری سیستم

در صورتیکه نسخه version 0.9.7a و یا قبل از آن  نصب شده باشد ، سیستم در معرض تهدید و آسیب قرار خواهد داشت . در این رابطه می توان از دستور OpenSSL version ، بمنظور آگاهی از شماره نسخه نرم افزار نصب شده ، استفاده نمود.

نحوه حفاظت در مقابل نقطه آسیب پذیر

بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، موارد زیر پیشنهاد می گردد :

  • ارتقاء به آخرین و جدیدترین نسخه OpenSSL  . در صورتیکه OpenSSL بهمراه سیستم عامل نصب شده است ، از تولیدکننده سیستم عامل مربوطه می بایست آخرین نسخه مربوطه را  دریافت و آن را  بر روی سیستم  نصب نمود.
  • در صورت امکان ، از ipfilter و سایر ابزارهای موجود در این زمینه  بمنظور اعمال محدودیت در رابطه با  سیستم هائی که می بایست به سرویس دهنده  OpenSSL متصل گردند ،استفاده شود .

توصیه های مهم امنیتی در مورد یونیکس و لینوکس

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

لینوکس و یونیکس ، از سیستم های عامل رایج در جهان بوده که امروزه در سطح بسیار وسیعی استفاده می گردد . تا کنون حملات متعددی توسط مهاجمین متوجه سیستم هائی بوده است که از یونیکس ( نسخه های متفاوت )  بعنوان سیستم عامل استفاده می نمایند . با توجه به حملات متنوع و گسترده انجام شده ، بایستی نحوه مقابله با این حملات و تهدیدات شناخته شده و راههای نفوذ سریعا ترمیم گردد و کاملا مسدود گردد .

عوامل متعددی در بروز اینگونه حملات نقش دارد: عدم آگاهی لازم مدیران سیستم در خصوص ارتقاء امنیتی سیستم هائی که بر روی آنان نرم افزارهای مدیریت اطلاعات شبکه نصب یا بصورت غیر ضروری  اجراء می گردد و پیکربندی نامناسب برنامه ها ، نمونه هائی از عوامل فوق بوده و  می تواند زمینه  یک تهاجم از نوع DoS  ، یک Buffer Overflow را فراهم سازد .

بمنظور حفاظت سیستم و ترمیم سریعتر نقاط آسیب پذیر موارد زیر پیشنهاد می گردد :

  • همیشه آخرین نسخه نرم افزارها  ارائه شده  را دریافت و آن را  بر روی سیستم نصب نمائید.
  • بمنظور بهنگام سازی سیستم بایستی  از تمامی Patch های ارائه شده توسط تولید کنندگان استفاده و در صورت امکان آن نرم افزار را به آخرین نسخه موجود ارتقاء دهید . برای دریافت اطلاعات تکمیلی از مقالات ارائه شده درسایت امنیتی CERT و بخش UNIX Security Checklist ، استفاده نمائید .
  • فایروال موجود برروی سیستم را دقیقا نصب و با توجه به نیازهای امنیتی خود در سطح مناسب پیکربندی نمائید .
  • پورت های غیر ضروری یا در معرض تهدید را در سطح روتر و یا فایروال با توجه به توصیه های امنیتی موجود در رفرانسهای امنیتی بلاک block نمائید .
  • آندسته از نرم افزارهای غیر ضروری که بصورت پیش فرض هنگام نصب سیستمهای عامل نصب میگردند  و هیچ گونه استفاده عملی ندارند را غیر فعال نمائید. 
  • بمنظور پیچیده تر نمودن حملات اتوماتیک و یا جلوگیری از پویش غیر مجاز سیستم توسط مهاجمین ، به توصیه های امنیتی تهیه کنندگان نرم افزارها در سایتهای مربوطه یا سایر سایتهای امنیتی لینوکس و یونیکس دقیقا عمل کنید و هیچ نکته ای را از قلم نیندازید.
  • اکیدا استفاده از account هائی با رمز عبور ضعیف و یا فاقد رمز عبور را مسدود کنید . چون رمز عبور دارای نقشی حیاتی و اساسی در ایجاد اولین سطح دفاع در یک سیستم اطلاعاتی بوده  و از دست رفتن رمز عبور و یا  ضعف آن می تواند سیستم را در معرض تهدیدات جدی قرار دهد . مهاجمان پس از دستیابی به رمز عبور کاربران تائید شده ( استفاده از مکانیزم های متفاوت ) قادر به دستیابی منابع سیستم و حتی تغییر در تنظیمات سایر account های تعریف شده و موجود بر روی سیستم خواهند بود،عملیاتی که می تواند پیامدهای بسیار منفی را بدنبال داشته باشد .

در صورتیکه از account هائی استفاده می شود که بین کاربران متعدد و یا کارکنان موقت  یک سازمان به اشتراک  گذاشته شده و یا کاربران از رمزهای عبور بدرستی حفاظت ننمایند، پتانسیل نفوذ به شبکه توسط یک مهاجم فراهم می گردد.

  • از یک برنامه پویشگر بهنگام شده  که قادر به بررسی دقیق سیستم های رایانه ای بمنظور تشخیص نقاط  آسیب باشد استفاده کنید. ( استفاده از نرم افرارها یا سایتهای خاص )
  • با عضویت در گروه های خبری نظیر Symantec  برای آگاهی از آخرین هشدارهای امنیتی اطلاعات خود را بهنگام نگاه دارید .
  • پیاده سازی و استفاده از امکانات رمزنگاری نظیر OpenSSH درسرویسهای شبکه نظیر telnet ، SMTP ، POP3، IMAP ، rlogin ، HTTP ، و ....

معرفی ویندوز 2000 و 2003

ماکروسافت و سیستم عامل ویندوز دارای یک تاریخچه طولانی می باشند . ویندوز در ابتدا  بعنوان یک محیط گرافیکی عملیاتی ارائه گردید . مهمترین ویژگی ویندوز در آن دوران ،  ارائه پتانسیل ها ی لازم بهمراه  انعطاف مناسب در مقایسه با سیستم عامل  MS-DOS ، بود . ویندوز ، بسرعت رشد و درادامه نسخه های متفاوتی از آن در اختیار کاربران قرار گرفت . ماکروسافت ، اولین نسخه مبتنی بر سرویس دهنده ویندوز را در سال 1990 و با نام Windows NT 3.1 ؛ ارائه نمود.  بتدریج و طی سالیان بعد ( تقریبا" هر دو سال یک نسخه ) ، نسخه های متفاوتی از ویندوز عرضه گردید . در حال حاضر ما شاهد نسخه های متفاوت سرویس دهنده 2000 ویندوز و نسخه های بعد از آنان یعنی خانواده سرویس دهنده Windows .NET ، می باشیم .

 در طی سالیان گذشته ، ماکروسافت نسخه های متفاوتی از سیستم های عامل سرویس دهنده را بمنظور تامین نیاز های کاربران طراحی و ارائه نموده است . اولین نسخه جدید در این رابطه به  معرفی نسخه Windows NT Server 4.0 ( نسخه Enterprise ) بر می گردد . بدعت ماکروسافت در ارائه  ویرایش های متفاوت برای محیط های خاص ادامه یافت و وهمانگونه  که می دانید  در ویندوز 2000 ، ما شاهد ارائه سه نسخه متفاوت ( نسخه سرویس دهنده )  و در Windows .NET Server 2003 ، ما شاهد ارائه چهار نسخه  متفاوت در این زمینه می باشیم . شناخت پتانسیل های هر نسخه بهمراه تفاوت موجود بین هریک از آنان ،  در زمان طراحی و بکارگیری هر محیطی که از سرویس دهندگان NET Enterprise. ، استفاده می کند ، بسیار حائز اهمیت خواهد بود.  سرویس دهندگان NET Enterprise . ، که تعداد آنان به ده می رسد ، مسئول ارائه سرویس های اساسی در محیط های مبتنی بر ویندوز می باشند . هر یک از نسخه های ویندوز 2000 و NET Server . ، مجموعه ای از تکنولوژی های اساسی را ارائه داده که سرویس دهندگان NET Enterprise ، با آنان مرتبط خواهند شد ( از خدمات آنان بنوعی استفاده  و خود مظهر یک سرویس و خدمات جدید برای کاربران خواهند بود) . در این راستا لازم است که در ابتدا با ماهیت و توانائی های هر یک از نسخه های ویندوز که بنوعی زیربناء اولیه را برای سرویس دهندگان NET Enterprise . ، ارائه می دهند آشنا و در مرحله بعد با سرویس ها و تکنولوژی های اساسی ارائه شده توسط سسیتم عامل ویندوز ( نسخه های  سرویس دهنده 2000 , 2003 ) نیز آشنا و در نهایت نحوه استفاده و ارتباط سرویس دهندگان NET Enterprise. با پتانسیل های ارائه شده توسط ویندوز را مورد مطالعه و بررسی قرار دهیم . در اولین بخش از مقالات فوق ، به بررسی توانائی و تفاوت بین هر یک از نسخه های ویندوز ( خانواده سرویس دهندگان 2000 و خانواده  NET Server 2003 . ) ، خواهیم پرداخت .

خانواده Windows 2000 Server

سرویس دهندگان NET Enterprise . ، بر خلاف نام خود که ممکن است این تصور را ایجاد نمایند که صرفا" نیازمند استفاده از Windows .NET Server 2003 می باشند ، می توانند بر روی  خانواده بزرگ Windows 2000 Server اجراء گردند. لازم به یادآوری است که  برخی از سرویس دهندگان NET Enterprise . ، نظیر Exchange Server 2000 ، بر روی نسخه های Windows .NET Server 2003 ، اجراء نخواهند شد.  برخی از سرویس دهندگان موجود NET Enterprise . ، همچنان بر روی نسخه ویندوز NT server 4.0  اجراء می گردند ، این نوع سرویس دهندگان دارای ویرایش های خاصی می باشند که امکان استفاده از Active Directory را برای آنان فراهم می نماید . تعداد نرم افزارها و محصولاتی که می توان آنها را بر روی Windows NT اجراء نمود ، بتدریج به سمت صفر میل خواهد کرد. در این مقاله فرض می شود که شما حداقل از نسخه Windows 2000 Server ، استفاده می نمائید.

ویندوز 2000 دارای  سه نسخه متفاوت سرویس دهنده است . تعداد نسخه های فوق  را می توان از لحاظ فنی به چهار نسخه نیز تعمیم داد .( در صورتیکه سیستم عامل سرویس گیرنده Windows 2000 Professional را نیز در نظر بگیریم ) . هر نسخه بمنظور اهدافی خاص طراحی و دارای  مجموعه ای ازپتانسیل ها و قابلیت های مختص بخود است .  سه نسخه متفاوت سرویس دهنده 2000 ،  بشرح زیر می باشند :

  • ·  نسخه استاندارد سرویس دهنده 2000 ،  " Windows 2000 Server " ، نامیده می شود. نسخه فوق ، نسخه پایه سیستم عامل بوده و شامل تمامی قابلیت ها و پتانسیل های لازم و مورد نیاز سرویس دهندگان NET Enterprise . ، است . هر کامپیوتر مبتنی بر سیستم عامل Windows 2000 Server  دارای ویژگی هائی نظیر : یک کنترل کننده Domain مربوط به Active Directory و سرویس های ارتباطی شبکه است . نسخه فوق ، دارای محدودیت های مختص بخود است . حمایت از حداکثر چهار پردازنده و چهار گیگا بایت حافطه اصلی (RAM) ، نمونه هائی از محدودیت های نسخه فوق ، می باشد . زمانیکه برنامه ها اجراء می گردند به آنها یک فضاء ثابت حافظه  و بمیزان دو گیگا بایت نسبت داده می شود . در صورتیکه کامپیوتر دارای حافظه  فیزیکی کمتری باشد ، سیستم عامل از فضائی بر روی دیسک که Swap file و یا page file نامیده می شود برای ایجاد حافظه مجازی، استفاده می نماید .
  • ·  نسخه دوم ،  Windows 2000 Advanced Server است. این نسخه، شامل تمامی ویژگی ها و پتانسیل های نسخه Windows 2000 Server  بعلاوه امکانات اضافه دیگری است .  نسخه فوق ،  نیز دارای محدودیت های خاص خود است . حمایت از حداکثر هشت پردازنده و هشت گیگابایت حافظه ، نمونه هائی در این زمینه می باشند . این نسخه ، تغییراتی را درارتباط با  مدل حافظه استفاده شده توسط برنامه ها، ایجاد نموده است . در این راستا سه گیگابایت ارائه و صرفا" از یک گیگا بایت برای سیستم عامل ، استفاده  می شود . بدین ترتیب ، برنامه های بزرگی نظیر SQL Serevr ، از مزایای حافظه RAM بخوبی بهره مند خواهند شد . نسخه فوق ، همچنین دارای امکاناتی نظیر : کلاسترینگ (Clustering )  و Network Load Balancing Service  ،  است . با اینکه اکثر سرویس دهندگان NET Enterprise . ، بصورت نسخه Enterprise Edition در دسترس می باشند ، ولی این بدین مفهوم نیست که آنان نیازمند استفاده از نسخه Advanced Server می باشند . مثلا" Exchange Sever Enterprise Edition ، قادر به اجراء بر روی Windows 2000 Server است ( در چنین حالتی ، نمی توان از امکان  کلاسترینگ Exchange استفاده گردد ، مگر اینکه آن را بر روی نسخه Advanced Server نصب نمود ) .
  • ·  نسخه جامع و بسیار بزرگ ویندوز 2000 ، Windows 2000 Datacenter Server نامیده می شود. این نسخه حداکثر شصت و چهار گیگابایت حافظه اصلی (RAM) و سی و دو پردازنده را حمایت می نماید.  نسخه فوق دارای تمامی قابلیت های  کلاسترینگ نسخه Advanced Server و سایر پتانسیل های استاندارد می باشد. از نسخه فوق ،در محیط هائی با قابلیت های محاسباتی و عملیاتی بسیار بالا، استفاده می گردد .  علاوه بر آمار شگفت انگیز نسخه فوق در رابطه با میزان حافظه و تعداد پردازنده ، ماکروسافت ادعا نموده است که زمان مفید ( Uptime ) سیستم عامل فوق ، 99.999 % است . در صورتیکه قصد تهیه این نسخه ویندوز را داشته باشید ( بصورت قانونی ! ) و بدنبال قیمت آن می باشید ، هرگز در این راه  موفق نخواهید شد. چون شما نمی توانید نسخه ای از آن را خریداری نمائید . ماکروسافت،  صرفا" نسخه فوق را به تولید کنندگان سخت افزار سرویس دهنده ( معمولا" OEM نامیده شده و اقتباس شده از Original Equipment Manufactures  است)  عرضه می نماید . شرکت های تولید کننده ، پیکربند های خاصی را در رابطه با سخت افزار سرویس دهنده انجام و بمنظور سازگاری با DataCenter Server  آن را بررسی ، تست و در ادامه سرویس دهندگان فوق ، به شرکت های متقاضی  بهمراه سیستم عامل  Datacenter Server فروخته می گردد .

سیستم و نحوه  پشتیبانی Datacenter ، نسبت به سایر نسخه های ویندوز نیز متفاوت است . ماکروسافت حمایت فنی مستقیمی در رابطه با نسخه فوق را ارائه نمی دهد. در مقابل ، OEM ، کانال ارتباطی و پشتیبانی لازم را  با مشتریان مربوطه ، برقرار خوادهد کرد. یکی از نکات  مهم پشتیبانی Datacenter ،  عدم مجاز بودن اعمال تغییرات  و اصلاح پیکربندی سخت افزار سرویس دهنده ،  بدون کسب مجوز لازم از OEM  است .

خانواده Windows .NET Server 2003

Windows .NET Server 2003 ، آخرین نسخه های تولید شده در رابطه با محصولات ویندوز شرکت ماکروسافت ، بوده و نسخه بعدی خانواده Windows 2000 ، می باشند. تمام نسخه های Windows .NET Server 2003 ، شامل گزینه های رابط کاربرWindows XP  و یا themes نمی باشند . این بدین علت است که themes نیازمند منابع اضافه ای است و برای یک سرویس دهنده مناسب بنظر نمی رسد ، منابع را صرف انجام چنین عملیاتی آنهم در رابطه با بخش رابط کاربر بر روی سرویس دهنده نماید . بنابراین زمانیکه سیستم را با استفاده از ویندوز 2003 ، برای اولین مرتبه راه اندازی می نمائید ، از اینترفیس آن تعجب نکنید .( اینترفیس ویندوز 2000 را  در مقابل اینترفیس جدید XP مشاهده ، خواهید کرد) .  خانواده Windows .NET Sever  2003 دارای چهار نسخه متفاوت است :

  • ·  Windows .NET Server 2003 ,Web Edition ، یک نسخه مناسب ، سریع و ارزان ! برای پلات فرم مبتنی بر سرویس دهنده وب است .
  • ·  Windows .NET Server 2003 ,Standard Edition ، که معادل Windows 2000 Server است .
  • ·  Windows .NET Server 2003 ,Enterprise Edition . که معادل Windows 2000 Advanced Sever است .
  • ·  Windows .NET Server 2003 ,Datacenter Edition . که معادل Windows 2000 Datacenter Server است .

ماکروسافت ، نام Windows .NET Server 2003 را دو مرتبه قبل از عرضه آن تغییر داده است . ( Windows 2002 به Windows .NET Server و سپس به Windows .NET Server 2003  ) .  در ادامه ما همچنان از اسامی کوتاه  نظیر Windows .NET Standard Server نسبت به نام رسمی Windows .NET Server 2003 Standard Edition ، استفاده خواهیم کرد. 

با معرفی  Windows .NET Web Server 2003 ، ماکروسافت قانون ( بدعت )  مربوط به انتخاب یک نسخه  بمنظور یک کار خاص را تغییر داده است . Windows .NET Standard Sever ، همچنان اولین گزینه برای اکثر برنامه ها است . Enterprise Server ، امکانات مناسبی  را در رابطه با  حافظه و  کلاسترینگ ، اضافه نموده است .نسخه Datacenter همچنان در اختیار OEM گذاشته می شود(همانطور که دررابطه با ویندوز 2000 عمل می گردید) . Windows .NET Web Server  ، یک ایده جدید بوده و هدف آن رقابت در جهت ارائه یک سرویس دهنده وب با قیمت مناسب!  با سایر تولیدکنندگانی است که محصولات  خود را نظیر  سیستم عامل و یا سرویس دهنده وب،  بصورت رایگان در اختیار کاربران قرار می دهند ( لینوکس و Apache نمونه هائی در این زمینه می باشند) . قطعا" رقابت با تولیدکنندگانی که محصول خود را بصورت رایگان در اختیار قرار می دهند ، کار بیسار مشکلی ! بوده و می بایست برای آن تدابیر خاصی اندیشیده گردد . مثلا"  قیمت 1,199 دلار برای هر نسخه از سرویس دهنده Windows 2000 Server ( شامل ده مجوز دستیابی کاربران ) ، یک قیمت رقابتی نمی باشد . Windows .NET Web Server ،  بدنبال پرکردن این خلاء رقابتی است . نسخه فوق در عین حالیکه برخی از ویژگی های ویندوز را ندارد ولی تمامی ویژگی ها و امکانات لازم و مورد نیاز یک سرویس دهنده وب را بخوبی  و با قیمت پائین ! ارائه می نماید. 
با اینکه تعدادی از سرویس دهندگان
NET Enterprise . ، بصورت Enterprise Edition  در دسترس می باشند ولی این بدان مفهوم نیست که آنان به  Enterprise Server نیاز خواهند داشت . مثلا" SQL Server 2000 Enterprise Edition ، می تواند بر روی Windows .NET Standard Server ، نصب و اجراء گردد . در این راستا امکان استفاده از  SQL Server Clustering ، وجود نخواهد داشت ، مگر اینکه  نسخه Windows .NET Enterprise Server ، نصب گردد .

Windows .NET Server ، نسخه های شصت و چهار بیتی خود را بمنظور حمایت از پردازنده جدید Itanium ، شرکت اینتل نیز ارائه نموده است . صرفا" نسخه های Enterprise و Datacenter بصورت 64 بیتی ، ارائه شده اند . کامپیوترهای Itanium که بر روی آنها Windows .NET Enterprise Server اجراء می گردد ، قادر به حمایت از شصت و چهار گیگابایت حافظه اصلی می باشند . بر روی کامپیوترهای فوق در صورتیکه نسخه Datacenter نصب شده باشد ، امکان استفاده از حداکثر 128 گیگابایت حافطه وجود خواهد داشت .

مهمترین نقاط آسیب پذیر ویندوز :

مقدمه

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

اکثر کرم ها و سایر حملات موفقیت آمیز در اینترنت ، بدلیل وجود نقاط آسیب پذیر در تعدادی اندک از سرویس های سیستم های عامل متداول است . مهاجمان ، با فرصت طلبی خاص خود از روش های متعددی بمنظور سوء استفاده از نقاط ضعف امنیتی شناخته شده ، استفاده نموده و در این راستا ابزارهای متنوع ، موثر و گسترده ای را بمنظور نیل به اهداف خود ، بخدمت می گیرند . مهاجمان ، در این رهگذر متمرکز بر سازمان ها و موسساتی می گردند که هنوز مسائل موجود امنیتی ( حفره ها و نقاط آسیب پذیر ) خود را برطرف نکرده و بدون هیچگونه تبعیضی آنان را بعنوان هدف ، انتخاب می نمایند . مهاجمان بسادگی و بصورت مخرب ، کرم هائی نظیر : بلستر ، اسلامر و Code Red را در شبکه منتشر می نمایند. آگاهی از مهمترین نقاط آسیب پذیر در سیستم های عامل ، امری ضروری است . با شناسائی و آنالیز اینگونه نقاط آسیب پذیر توسط کارشناسان امنیت اطلاعات ، سازمان ها و موسسات قادر به استفاده از مستندات علمی تدوین شده بمنظور برخورد منطقی با مشکلات موجود و ایجاد یک لایه حفاظتی مناسب می باشند.

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

مهمترین نقاط آسیب پذیر ویندوز :

ویندوز ، یکی از سیستم های عامل رایج در جهان بوده که امروزه در سطح بسیار وسیعی استفاده می گردد . تا کنون حملات متعددی توسط مهاجمین متوجه سیستم هائی بوده است که از ویندوز ( نسخه های متفاوت ) بعنوان سیستم عامل استفاده می نمایند . با توجه به حملات متنوع و گسترده انجام شده ، می توان مهمترین نقاط آسیب پذیر ویندوز را به ده گروه عمده تقسیم نمود :

  • Internet Information Services (IIS)
  • Microsoft SQL Server (MSSQL )
  • Windows Authentication
  • Internet Explorer (IE )
  • Windows Remote Access Services
  • Microsoft Data Access Components (MDAC)
  • Windows Scripting Host (WSH)
  • Microsoft Outlook Outlook Express
  • Windows Peer to Peer File Sharing (P2P)
  • Simple Network Management Protocol (SNMP)

اولین نقطه آسیب پذیر : ( Internet Information Services (IIS

نصب برنامه IIS با تنظیمات و پیکربندی پیش فرض ، آسیب پذیری خود را در موارد متعددی به اثبات رسانده و می تواند زمینه تهدیدات زیر را فراهم نماید :

  • غیر فعال نمودن سرویس ( DoS )
  • نمایش و بمخاطره انداختن فایل ها و داده های حساس
  • اجراء دستورات خودسرانه ( اختیاری )
  • بمخاطره انداختن کامل سرویس دهنده

IIS از پتانسل شناخته شده ISAPI ( فایل هائی با انشعاب DLL که به آنان فیلترهای ISAPI هم گفته می شود ) بمنظور همبستگی و ارتباط با فایل هائی که دارای انشعاباتی خاص می باشند ، استفاده می نماید . پیش پردازنده هائی نظیر ColdFusion و PHP از ISAPI استفاده می نمایند.IIS ، از فیلترهای ISAPI دیگر برای انجام عملیات مرتبط با ASP)Active Server Pages ، ( SSI)Server Side Includes) و اشتراک چاپ مبتنی بر وب ، استفاده می نماید.تعداد زیادی از فیلترهای ISAPI ، مستلزم عملیات خاص و جداگانه ای برای نصب نبوده و عملا" بصورت پیش فرض و در زمان نصب IIS بر روس سیستم مستقر ( نصب ) می گردند . اکثر فیلترهای فوق ، قابل سوء استفاده توسط مهماجمان می باشند. Code red و Code Red 2 ، نمونه هائی از برنامه های مخرب می باشند که از ضعف فوق در جهت پیشبرد اهداف خود استفاده نموده اند .
IIS نیز نظیر سایر سرویس دهندگان وب ، شامل برنامه های نمونه ای است که بمنظور اثبات توانائی سرویس دهنده وب ، طراحی شده اند . در طراحی برنامه های فوق ، عملکرد آنان با لحاظ نمودن مسائل امنیتی در یک محیط عملیاتی و تولیدی مورد توجه قرار نگرفته است . برخی ازنمونه برنامه های ارائه شده بهمراه IIS ، امکان مشاهده و بازنویسی فایل های دلخواه ویا دستیابی از راه دور به اطلاعات حساس نظیر رمز عبور مدیریت سیستم را فراهم می نمایند .

عدم بهنگام سازی و نگهداری مناسب IIS پس از نصب اولیه ، از دیگر مواردی است که زمینه تهاجم برای مهاجمان را فراهم می آورد .مثلا" نقاط آسیب پذیر WebDAV ntdll.dll در IIS 5.0 ، امکان حملات از نوع DoS ( غیرفعال نمودن سرویس ) را فراهم و مهاجمان در ادامه قادر به ایجاد و اجرای اسکریپت های مورد نظر خود بر روی سرویس دهنده می گردند . در مواردی دیگر و با توجه به نقاط آسیب پذیر موجود ، مهاجمان قادر به اجرای دستورات دلخواه خود بر روی سرویس دهنده می باشند ( درخواست دقیق و ماهرانه آدرس های URL ) .

امکانات و پتانسیل هائی که در ادامه و با توجه به ضرورت بر روی IIS نصب می گردند ( نظیر ColdFusion و PHP ) نیز می تواند زمینه بروز نقاط آسیب پذیر جدیدی را فراهم نماید .اینگونه نقاط آسیب پذیر، می تواند بدلیل عدم پیکربندی صحیح و یا وجود ضعف و اشکال امنیتی در محصول نصب شده ای باشد که به IIS نیز سرایت می نماید ( توارث مشکلات و ضعف های امنیتی از یک محصول به محصول دیگر) .
سیستم های عامل در معرض تهدید :

  • ویندوز NT 4.0 که از IIS 4.0 استفاده می نماید .
  • ویندوز 2000 سرویس دهنده که از IIS 5.0 استفاده می نماید .
  • ویندوز XP نسخه Professional که از نسخه IIS 5.1 استفاده می نماید .

در رابطه با نقطه آسیب پذیر فوق بر روی ویندوز 2003 که از IIS 6.0 استفاده می نماید ، تاکنون گزارشی ارائه نشده است .

نحوه تشخیص آسیب پذیری سیستم

در صورتیکه برنامه IIS بصورت پیش فرض و استاندارد نصب و یا Patch های مربوطه بر روی آن نصب نشده باشند ، آسیب پذیری برنامه فوق در مقابل حملات قطعی خواهد بود . مدیران سیستم وشبکه که مسئولیت نصب ، نگهداری و بکارگیری IIS را بر عهده دارند ، می بایست خود را با جدیدترین ابزارهای مایکروسافت و مستندات امنیتی ارائه شده در رابطه با مدیریت مناسب IIS ، بهنگام نمایند. در این رابطه می توان بمنظور دستیابی به مستندات امنیتی مرتبط با IIS از  مرکز امنیتی IIS شرکت مایکروسافت استفاده نمود. پیشنهاد می گردد ، برنامه Microsoft BaseLine Security Analyzer را که شامل روتین های حفاظتی مناسب و مرتبط به IIS می باشد را دریافت و از آن بمنظور بررسی وضعیت امنیتی IIS استفاده بعمل آید . مدیران شبکه ، می بایست با استفاده از منابع اطلاعاتی متعدد ارائه شده نظیر : Checklists ، مستنداتی  که توصیه های لازم در جهت ارتقاء سطح امنیتی را ارائه و مستندات آموزشی نقاط آسیب پذیر که توسط مایکروسافت ارائه شده است ، دانش خود را بهنگام و با دنبال نمودن فرآیندهای مناسب فنی ، از صحت عملکرد امنیتی IIS بر روی سیستم های سازمان خود اطمینان حاصل نمایند.مقایسه وضعیت موجود IIS با وضعیت مطلوب ، یکی از روش هائی است که می تواند در این زمینه مفید واقع گردد .

نحوه حفاظت در مقابل نقطه آسیب پذیر

نصب آخرین Patch ارائه شده : در اولین مرحله ، می بایست سیستم را با استفاده از Patch های ارائه شده ، بهنگام نمود. Patching یک سرویس دهنده نصب شده ، امری ضروری است ولی بتنهائی کافی نخواهد بود . بموازات کشف نقاط ضعف جدید در IIS ، می بایست از Patch مربوطه بسرعت استفاده گردد. Windows Update و AutoUpdate گزینه هائی مناسب بمنظور بهنگام سازی IIS با توجه به آخرین Patch های ارائه شده است .

برنامه ( HFNetChk ( Network Security Hotfix Checker ، به مدیران سیستم کمک لازم در پویش و بررسی محلی و یا از راه دور سیستم ها برای Patch های موجود را ارائه می نماید . ابزار فوق ، قابل استفاده بر روی ویندوز NT 4.0 ، ویندوز 2000 و ویندوز XP می باشد . آخرین نسخه ابزار فوق را می توان از آدرس http://www.microsoft.com/technet/security/tools/hfnetchk.asp

دریافت کرد.

در صورتیکه از برنامه های اضافه شده ای نظیر CouldDusion ،PerlIIS و یا PHP بهمراه IIS استفاده می گردد ، لازم است به سایت های عرضه کنندگان هر یک از محصولات فوق مراجعه و نسبت به آخرین patch ارائه شده در رابطه با هر محصول آگاه و آنان را با توجه به توصیه های انجام شده بر روی سیستم نصب نمود . امکان Windows Update و سایر سرویس های بهنگام سازی ارائه شده توسط مایکروسافت ، شامل Patch های لازم و مرتبط با محصولات اضافه شده سایر شرکت ها در برنامه IIS مایکروسافت نبوده و لازم است مدیران سیستم بهنگام سازی محصولات اضافه شده ( غیر مایکروسافت ) در IIS را خود راسا" انجام دهند .

استفاده از برنامه کمکی IIS Lockdown بمنظورنصب مطمئن تر : مایکروسافت ، ابزاری ساده بمنظور ایمن سازی نصب IIS را ارائه که ویزارد IIS Lockdown نامیده می شود. با اجرای برنامه فوق در حالت " Custom " و یا " Expert" ، می توان تغییرات مورد نظر خود را در ارتباط با نصب IIS مشخص نمود. بدین ترتیب ، امکان اعمال تغییرات زیر در رابطه با نصب IIS ، فراهم می گردد :

  • غیر فعال نمودن WebDAV ( مگر اینکه محیط مورد نظر شما به وجود آن برای نشر محتوی وب ، نیاز داشته باشد )
  • غیر فعال نمودن ISAPI extensions های غیر ضروری ( نظیر : htr، .idq , .ism ، .printer . )
  • حذف نمونه برنامه های ارائه شده بهمراه IIS
  • منع سرویس دهنده وب از اجراء دستورات سیستمی متداول که عموما" توسط مهاجمان استفاده می گردد( نظیر cmd.exe و یا tftp.exe ) .

استفاده از URLScan بمنظور فیلتر نمودن درخواست های HTTP : تعدادی زیادی از حملات مرتبط با نقاط آسیب پذیر IIS نظیر Code Blue و خانواده Code Red ، از کدهای مخربی که بصورت درخواست های HTTP سازماندهی می شوند،استفاده می نمایند( حملاتی از نوع Buffer Overflow ) . فیلتر URLScan را می توان بگونه ای پیکربندی نمودکه باعث عدم پذیرش اینچنین درخواست هائی قبل از پردازش آنان توسط سرویس دهنده باشد.برنامه فوق،بهمراه ویزارد IIS Lockdown ارائه ولی می توان آن را از آدرس : http://www.microsoft.com/technet/security/tools/urlscan.asp نیز دریافت کرد .

دومین نقطه آسیب پذیر : ( Microsoft SQL Server (MSSQL

سرویس دهنده SQL مایکروسافت ( MSSQL ) ، دارای چندین نقطه آسیب پذیر جدی است که امکان دریافت اطلاعات حساس، تغییر در محتویات بانک اطلاعاتی وبمخاطره انداختن حیات سرویس دهندگان SQL توسط مهاجمان را فراهم می نماید . در برخی موارد خاص و بدلیل عدم پیکربندی صحیح سیستم ، میزبانان سرویس دهنده نیز ممکن است در معرض تهدید و آسیب قرار گیرند . نقاط آسیب پذیر MSSQL ، مورد توجه خاص عموم مهاجمان بوده و آنان بسرعت از ضعف های امنیتی کشف شده در جهت اهداف خود استفاده می نمایند. دو کرم SQLSnake/Spida و SQL-Slammer/SQL-Hell/Sapphire در سالیان اخیر ( سال های 2002 و 2003 ) از نقاط ضعف شناخته شده MSSQL استفاده و توانستند در مدت زمان کوتاهی حملات گسترده ای را با توجه به نقظه آسیب پذیر فوق ،انجام دهند. میزبانان آلوده به کرم ها ی فوق ، بمنظور گسترش آلودگی و جستجو جهت یافتن سایر سیستم های آسیب پذیر ، ترافیک شبکه را در حد بالائی افزایش داده بودند( اشغال درصد بسیار بالائی از پهنای باند محیط انتقال ). برای دریافت اطلاعات تکمیلی در رابطه با کرم های فوق ، می توان از منابع و آدرس های زیر استفاده نمود :

اطلاعات تکمیلی در رابطه با کرم SQLSnake/Spida ( فعال شده در May 2002 ) :

اطلاعات تکمیلی در رابطه با کرم SQL-Slammer/SQL-Hell/Sapphire ( فعال شده در تاریخ January 2003 ) :

براساس گزارش ارائه شده توسط Internet Storm Center ، پورت های 1433 و 1434 ( پورت های پیش فرض سرویس دهنده MSSQL ) ، از جمله پورت هائی می باشند که بصورت دائم توسط مهاجمین مورد بررسی ( نگاه موشکافانه ) قرار می گیرد.
نحوه عملکرد کرم SQLSnake ، به account مدیریتی پیش فرض ( sa" account" که دارای یک رمز عبور Null می باشد ) بستگی دارد.در این رابطه لازم است پیکربندی سیستم بطرز صحیحی انجام و هر یک از سیستم های موجود بمنظور حصول اطمینان از دارا بودن رمز عبور مرتبط با account مربوطه بررسی و بدرستی حفاظت گردند . در صورتیکه از account خاصی استفاده نمی شود ، می بایست نسبت به غیر فعال نمودن آنان اقدام گردد.. بمنظوردریافت اطلاعات تکمیلی در رابطه تنظیم و مدیریت sa Account ، می توان از مستندات ارائه شده در آدرس " Changing the SQL Sever Administrator Login " استفاده نمود . sa Account ، می بایست دارای یک رمز عبور پیچیده بوده که حدس و تشخیص آن مشکل باشد( حتی اگر از آن بمنظور اجراء SQL/MSDE استفاده نمی شود ) .

نحوه عملکرد کرم SQL Slammer ، بر اساس یک Buffer Overflow در SQL Server Resolution Service است . Buffer Overflow فوق ، موجب گسترش ( حمل ) مشکل از سیستمی به سیستم دیگر شده و در این راستا امنیت میزبان زمانیکه کرم اقدام به ارسال بسته های اطلاعاتی تهدید آمیز خود به پورت 1434 سیستم های مقصد آسیب پذیر می نماید، در معرض تهدید و آلودگی قرار می گیرد. در صورتیکه بر روی یک ماشین ، سرویس هائی از SQL اجراء که مرتبط با این نوع Stack Buffer Overflow می باشند و بسته های اطلاعاتی خود را بر اساس واقعیت فوق دریافت می نماید ، تمامی سیستم ها و سرویس دهندگان در معرض تهدید قرار خواهند گرفت .موثرترین روش دفاع در مقابل کرم فوق، Patching مستمر ، اقدامات لازم در جهت پیکربندی سیستم بصورت کنشگرایانه ، پیشگیری سیستم بصورت پویش های ادواری و فیلترینگ پورت 1434 مربوط به UDP در gatway های شبکه است ( اجازه ورود و خروج بسته های اطلاعاتی مرتبط با پورت اشاره شده ) .

عملکرد Microsoft Server 2000 Desktop Engine ) ، MSDE 2000)، را می توان بعنوان " SQL Server Lite" ( زیر بناء سرویس دهنده SQL ) در نظرگرفت . تعداد زیادی از صاحبان سیستم حتی نسبت به این موضوع که بر روی سیستم آنان MSDE اجراء و آنان دارای یک نسخه از SQL Server نصب شده بر روی سیستم می باشند ، آگاهی و شنخت مناسبی را ندارند. MSDE 2000 ، بعنوان یکی از اجزاء اساسی بهمراه محصولات زیر نصب می گردد :

  • SQL/MSDE Server 2000 (Developer, Standard and Enterprise Editions) 
  • Visual Studio .NET (Architect, Developer and Professional Editions)
  • ASP.NET Web Matrix Tool
  • Office XP
  • Access 2002
  • Visual Fox Pro 7.0/8.0  

علاوه بر موارد فوق،نرم افزارهای متعدد دیگری وجود دارد که از MSDE 2000 استفاده می نمایند . باتوجه به اینکه، نرم افزارهای فوق ، از MSDE بعنوان هسته اساسی بانک اطلاعاتی استفاده می نمایند ، آنان نیز دارای نقاط آسیب پذیر مشابه سرویس دهنده SQL/MSDE خواهند بود.پیکربندی MSDE 2000 را می توان بگونه ای انجام داد که با استفاده از روش های مختلف به درخواست های اتصال به بانک اطلاعاتی توسط سرویس گیرندگان،گوش داده شود. مثلا" پیکربندی فوق را می توان بصورتی انجام داد که سرویس گیرندگان قادر به استفاده از named pipes بر روی یک NetBIOS Session ( پورت 139/445 پورت TCP ) بوده و یا از سوکت هائی که سرویس گیرندگان با استفاده از پورت 1433 مربوط به TCP به آن متصل می گردند ( امکان استفاده از هر دو رویکرد اشاره شده نیز وجود دارد ) . صرفنظر ازروش انتخابی ، سرویس دهنده SQL و MSDE همواره به پورت 1434 مربوط به UDP گوش خواهند داد . پورت فوق بعنوان یک پورت هماهنگ کننده طراحی شده است . سرویس گیرندگان یک پیام را برای پورت فوق ارسال تا نحوه اتصال سرویس گیرنده به سرویس دهنده ، مشخص گردد .
هسته
MSDE 2000 ،در مواردیکه با یک بسته اطلاعاتی تک بایتی 0x02 ، بر روی پورت 1434 مربوط به UDP مواجه گردد ، اطلاعاتی در رابطه با خود را برمی گرداند . سایر بسته های اطلاعاتی تکی بایت بدون اینکه الزامی به تائید آنان برای سرویس دهنده وجود داشته باشد،باعث بروز یک Buffer overflow می گردند .با توجه به اینکه سازماندهی حملات ازاین نوع بر اساس UDP انجام خواهد شد ، وضعیت تهاجم فوق وخیم تر خواهد شد . (صرفنظر از اینکه پردازه های MSDE 2000 در یک بافتار امنیتی مربوط به یک Domain User و یا account مربوط به Local System اجراء می گردند). استفاده موفقیت آمیز از حفره های امنیتی موجود ، می تواند سیستم مقصد را در معرض مخاطره و تهدید قرار دهد .

با توجه به اینکه SQL Slammer از یک Buffer overflow بر روی سیستم مقصد استفاده می نماید ،استفاده مستمر از Patching و پیکربندی دقیق سیستم ، کمک لازم در جهت کاهش تهدید فوق را ارائه می نماید . با دریافت و استفاده از ابزارهای دفاعی نظیر : Microsoft SQL Critical Update Kit ، می توان تمام Domain و یا شبکه های شامل سیستم های آسیب پذیر را بررسی و بصورت فایل های متاثر را بهنگام نمود. برای آشنائی و آنالیز جزیئات مربوط به کرم اسلامر SQL/MSDE ، می توان از آدرس Incidents.org استفاده نمود .

سیستم های عامل در معرض تهدید :

هر یک از نسخه های ویندوز که بهمراه آنان SQL/MSDE Server 7.0 ، SQL/MSDE Server 2000 و یا Microsoft SQL/MSDE Desktop Engine 2000 نصب شده باشد و هر سیستم نرم افزاری دیگری که بصورت جداگانه از موتور MSDE 2000 استفاده می نماید، در معرض این تهدید و آسیب قرار خواهد شد .

نحوه تشخیص آسیب پذیری سیستم

شرکت مایکروسافت مجموعه ای از ابزارهای امنیتی را در این رابطه ارائه که می توان از طریق آدرس http://www.microsoft.com/sql/downloads/securitytools.asp به آنان دستیابی پیدا نمود . Toolkit ارائه شده ،SQL Critical Update Kit نامیده شده و شامل ابزارهائی نظیر SQL Scan و SQL Critical Update است . سایت SqlSecurity.com نیز در این رابطه ابزاری با نام SQLPingv2.2 را ارائه داده است .ابزار فوق ، یک بسته اطلاعاتی UDP تک بایتی ( مقدار بایت 0X02 ) را به پورت 1434 مربوط به یک میزبان و یا تمامی Subnet ارسال می نماید .سرویس دهندگان SQL که به پورت UDP 1434 گوش می دهند ، به آن پاسخ لازم را داده و اطلاعاتی در ارتباط با سیستم نظیر شماره نسخه و سایر موارد مربوطه را اعلام می نماید . عملکرد نرم افزار فوق مشابه Microsoft SQL Scan است .

نحوه حفاظت در مقابل نقطه آسیب پذیر :

بمنظور حفاظت سیستم ها در مقابل نقطه آسیب پذیر فوق ، عملیات زیر را دنبال می نمائیم :

  • غیر فعال نمودن SQL/MSDE Monitor Service در پورت UDP 1434 . بمنظورانجام خواسته فوق، می توان اقدام به نصب و استفاده از قابلیت های ارائه شده بهمراه SQL Server 2000 Service Pack 3a نمود. موتور MSDE 2000 دارای دو نقطه آسیب پذیر Buffer Overflow است که می تواند توسط یک مهاجم استفاده و از راه دور و بدون هیچگونه الزامی جهت تائید کاربر، به سرویس دهنده متصل و یک تهاجم از طریق UDP را باعث شود. صرفنظر از اینکه پردازه های MSDE 2000 در بافتار امنیتی یک Domain User و یا account مربوط به Local System اجراء می گردند ، استفاده موفقیت آمیز از حفره های امنیتی موجود، ممکن است سیستم مقصد را در معرض مخاطره و تهدید قرار دهد . کرم MS-SQL/MSDE Slammer یک بسته اطلاعاتی شامل 376 بایت را از طریق پورت UDP 1434 برای مقصد مورد نظر خود که بصورت تصادفی انتخاب می گردد، ارسال می نماید. سیستم های در معرض تهاجم پس از آلودگی ، اقدام به ارسال بسته های اطلاعاتی مشابه 376 بایتی می نمایند . کرم فوق ، ترافیک موجود در شبکه را افزایش خواهد داد .آدرس های IP که بصورت تصادفی انتخاب می گردند ، از نوع multicast بوده و در نهایت یک تهاجم از نوع DoS ( غیر فعال نمودن یک سرویس ) بر روی شبکه مقصد، محقق خواهد شد. بر اساس گزارشات ثبت شده ، یک ماشین آلوده بیش از پنجاه MB/Sec از ترافیک شبکه رابخود اختصاص و عملا" امکان انجام سایر عملیات بر روی شبکه سلب می گردد.
  • بکارگیری آخرین Patch ارائه شده پس از آخرین Service Pack . بمنظور آگاهی از آخرین Patch های ارائه شده برای تمامی نسخه های سرویس دهنده SQL/MSDE/MSDE می توان از بولتن امنیتی ارائه شده توسط مایکروسافت استفاده نمود . بمنظور اطمینان از نصب آخرین Patch موجود در رابطه با سرویس دهنده SQL/MSDE می توان از آدرس های زیر استفاده کرد :
    - Microsoft SQL/MSDE Server 7.0

- Microsoft SQL Server 2000

- MSDE Server Desktop Engine 2000 (MSDE 2000)

  • بکارگیری Patch های خاص و جداگانه ای که پس از آخرین Patch مربوطه ارائه شده اند .پس از معرفی MS02-061 Elevation of Privilege in SQL/MSDE Server Web Tasks ، تاکنون Patch مربوطه ای در این زمینه ارائه نشده است . بمنظور اطمینان و آگاهی از اخرین Patch ارائه شده می توان از آدرس های زیر استفاده نمود :

- Microsoft SQL/MSDE Server 7.0

- Microsoft SQL Server 2000

- MSDE Server Desktop Engine 2000 (MSDE 2000)

  • فعال نمودن SQL Server Authentication Logging . امکان فوق عموما" غیر فعال است . بمنظور فعال نمودن آن می توان از طریق برنامه Enterprise Manager اقدام نمود( Server Properties|Tab Security )
  • ایمن سازی سرویس دهنده در سطح سیستم و شبکه . یکی از متداولترین حملات MSSQL/MSDE ، برخاسته از account مدیریتی پیش فرض ( شناخته شده با نام "sa" ) بوده که دارای یک رمز عبور تهی ( blank ) است. در صورتیکه sa Account مربوط به SQL/MSDE دارای رمز عبور حفاظت شده ای نمی باشد ، سیستم در معرض تهدید جدی قرار خواهد داشت . لازم است در این راستا از پیشنهادات ارائه شده در بخش System Administrator(SA) Login مربوط به SQL/MSDE Server Book Online استفاده تا اطمینان لازم در خصوص مطمئن بودن رمز عبور sa Account حاصل گردد . ( حتی اگر سرویس دهنده SQL/MSDE مربوطه از account فوق استفاده نمی نماید، نیز می بایست اقدامات امنیـتی لازم ضورت پذیرد ) . با استفاده از مستندات ارائه شده در MSDN مایکروسافت و در بخش Changing the SQL Server Administrator Login ، و Verify and Change the System Administrator Password by Using MSDE می توان از آخرین امکانات و توصیه های ارائه شده بمنظور پیکربندی و تنظیم مناسبsa Account ، استفاده نمود .
  • به حداقل رساندن امتیازات مربوط به سرویس MSSQL/MSDE و سرویس دهنده SQL/MSDE Server Agent . در این رابطه پیشنهاد می گردد که سرویس MSSQL/MSDE سرویس دهنده و SQL/MSDE Server Agent ، تحت یک Valid Domain account با حداقل امتیازات مربوط اجراء گردد( نه بعنوان یک domain administrator و یا SYSTEM ( در ویندوز NT ) و یا LocalSystem ( در ویندوز 2000 و یا XP ) ) . یک سرویس در معرض آسیب که بهمراه امتیازات محلی و یا Domain اجراء می گردد ،به یک مهاجم امکان کنترل کامل سیستم و یا شبکه را خواهد داد . در این رابطه موارد زیر پیشنهاد می گردد :
    - فعال نمودن
    Windows NT Authentication و auditing برای Login های موفقیت آمیز و یا با شکست مواجه شده ، در ادامه سرویس MSSQL/MSDEServer رامتوقف و مجددا" آنان را فعال نمائید . در صورت امکان ، پیکربندی سرویس گیرندگان را بگونه ای انجام دهید که از NT Authentication استفاده نمایند .

فیلترینگ بسته های اطلاعاتی می بایست در محدوده های مرزی شبکه انجام تا پیشگیری و ممانعت لازم در خصوص اتصالات ورودی و خروجی غیر مجاز به MSSQL و مرتبط با سرویس های خاص صورت پذیرد . فیلترینگ نقطه ورود و خروج پورت های 1434 و 1433 مربوط به TCP/UDP می تواند باعث ممانعت مهاجمان داخلی و یا خارجی از پویش و آلودگی سرویس دهندگان SQL/MSDE که دارای پتانسیل آسیب پذیری می باشند، گردد .

- درصورتیکه لازم است از پورت های 1433 و 1434 مربوط به TCP/UDP استفاده گردد ، می بایست فیلترینگ مناسبی در ارتباط با استفاده نادرست از پورت های فوق را انجام داد .

بمنظور آگاهی از ایمن سازی سرویس دهنده SQL/MSDE ، می توان از آدرس های زیر استفاده نمود :

مهمترین نقاط آسیب پذیر ویندوز

در بخش اول این مقاله به بررسی دو مورد از نقاط آسیپ پذیر ویندوز پرداخته گردید . در این بخش به بررسی سومین نقطه آسیب پذیر ویندوز ، اشاره می گردد.

سومین نقطه آسیب پذیر :
Windows Authentication

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

  • Account تعریف شده دارای رمز عبور ضعیف و یا فاقد رمز عبور است .
  • عدم حفاظت مناسب کاربران از رمزهای عبور ،صرفنظر از استحکام رمزهای عبور تعریف شده .
  • سیستم عامل و یا سایر نرم افزارهای موجود ، امکان ایجاد account مدیریتی ضعیف و فاقد رمز عبور را فراهم می نمایند .
  • الگوریتم های Hashing رمز عبور( رمزنگاری مبتنی بر کلید عمومی بر پایه یک مقدار hash ، استوار بوده و بر اساس یک مقدار ورودی که دراختیار الگوریتم hashing گذاشته می گردد ، ایجاد می گردد. در حقیقت مقدار hash ، فرم خلاصه شده و رمز شده ای از مقدار اولیه خود است ) ، شناخته شده بوده و در اغلب موارد مقدار Hashe بدست آمده ، بگونه ای ذخیره می گردد که امکان مشاهده آن توسط سایرین وجود خواهد داشت. مناسبترین نوع حفاظت در این راستا ، تبعیت از یک سیاست رمز عبور قدرتمند بوده که در آن دستورالعمل ها ی لازم برای تعریف یک رمز عبورمناسب مشخص و در ادامه با استفاده از ابزارهای موجود، بررسی لازم در خصوص استحکام و بی نقص بودن رمز عبور صورت گیرد.

ویندوز، رمزهای عبور را بصورت متن شفاف ذخیره و یا ارسال نمی نماید و در این راستا از یک مقدار Hash متناظر با رمزعبور ، بمنظور تائید کاربران ، استفاده می نماید . یک مقدار Hash دارای طولی ثابت است که توسط بکارگیری یک تابع ریاضی ( الگوریتم hashing ) بر روی حجم دلخواهی از داده ( message digest نامیده می شود) ایجاد می شود.در وینوز سه نوع الگوریتم تائید وجود دارد :

  • LM ( ایمنی کمتر و سازگاری بیشتر )
  • NTLM
  • NTLMv2 ( ایمنی بیشتر و سازگاری کمتر )

با اینکه اکثر محیط های فعلی ویندوز ، ضرورتی به حمایت از (Lan Manager (LM را ندارند، ولی ویندوز بصورت محلی رمز های عبور Hash شده مربوط به LM را ( LANMAN Hashes نیز نامیده می شود ) بصورت پیش فرض در ویندوز NT ، 2000 و XP ( در ویندوز 2003 وضعیت بدین شکل نیست ) ذخیره می نماید. با توجه به اینکهLM از یک مدل رمزنگاری بمراتب ضعیف تر نسبت به رویکردهای فعلی مایکروسافت ( NTLM,NTLMv2 ) ، استفاده می نماید، رمزهای عبور LM می توانند در مدت زمانی کوتاه شکسته گردند. حتی رمزهای عبوری که دارای قدرت و استحکام مناسبی می باشند ، در کمتر از یک هفته با استفاده از روش هائی خاص و با اتکاء به قدرت سخت افزارهای موجود ، شکسته خواهند شد

ضعف LM hashes بدلایل زیر است :

  • رمزهای عبور محدود به چهارده کاراکتر می باشند .
  • رمزهای عبور با استفاده از فضای خالی ، به چهارده کاراکتر تبدیل می شوند .
  • رمزهای عبور تماما" به حروف بزرگ تبدیل می گردند .
  • رمزهای عبور به دو بخش هفت کاراکتری مجزا تقسیم می گردند .

با توجه به ماهیت فرآیند hashing ،یک مهاجم صرفا" می بایست عملیات تشخیص رمز عبور( cracking) را محدود به دو مجموعه نماید که هر یک دارای هفت کاراکتر بوده که به حروف بزرگ تبدیل شده اند . با تکمیل عملیات فوق و اخد نتایج مثبت ، یک مهاجم قادر به تشخیص رمز عبور یک کاربر تائید شده می گردد وبدین ترتیب ، امکان دستیابی وی به منابع سیستم فراهم خواهد شد. پیچیدگی عملیات تشخیص Hashe ، متنا سب با طول Hash افزایش می یابد ، بنابراین رشته هائی که صرفا" شامل هفت کاراکتر می باشند ، بمراتب راحت تر نسبت به رشته هائی که دارای چهارده کاراکتر می باشند ، تشخیص داده و اصطلاحا" شکسته می گردند. با توجه به این موضوع که تمامی رشته ها شامل هفت کاراکتر بوده و تمامی آنان به حروف بزرگ نیز تبدیل می گردند ، یک تهاجم به "سبک - دیکشنری" ( dictionary-style ) نیز بسادگی محقق و موفقیت آن تضمین شده خواهد بود. بنابراین، روش LM hashing ، آسیبی جدی را متوجه سیاست های امنیتی رمز عبور نموده و سیستم را در معرض تهدید قرار خواهد داد .

علاوه بر تهدید و خطر ذخیره سازی LM hashes در SAM ، فرآیند تائید Lan Manager ، اغلب و بصورت پیش فرص بر روی سرویس گیرندگان فعال و توسط سرویس دهنده پذیرفته می گردد . لازم است به این نکته اشاره گردد که ، ماشین هائی که بر روی آنان ویندوز نصب شده است ، قادر به استفاده از الگوریتم های hash بمراتب قویتر در مقابل روش ضعیف LM hashes بمنظور ارسال داده های حساس نظیر رمز عبور می باشند .حداقل پیامد منفی استفاده از روش LM hashes ، آسیب پذیری سیستم تائید کاربران در ویندوز بوده و قطعا" در چنین مواردی نمی توان به فرآیند تائید کاربران ، اعتماد نمود چراکه در این وضعیت عملا" امکان استراق سمع ( شنود اطلاعاتی ) فراهم و یک مهاجم قادر به تشخیص و بدست آوردن رمزهای عبور خواهد بود.

سیستم های عامل در معرض تهدید :

تمامی نسخه های ویندوز در معرض این تهدید قرار دارند .

نحوه تشخیص آسیب پذیری سیستم

با اینکه دلایل و علل متفاوتی می تواند در در رابطه با ضعف رمز عبور مورد توجه قرار گیرد ، مثلا" وجود Account های فعال برای کاربرانی که سازمان خود را ترک نموده ویا سرویس هائی که اجراء نشده اند، ولی یکی از مناسبترین روش ها بمنظور آگاهی از استحکام یک رمز عبور ، بررسی و تست تمامی آنان در مقابل نرم افزارهای cracking رمزهای عبور استفاده شده توسط مهاجمان است . لازم است به این نکته مهم اشاره گردد که از برنامه های تشخیص دهنده رمز عبور بر روی سیستم هائی که حتی مجوز دستیابی به آنان را دارید ، بدون اخذ مجوزهای لازم از مدیران ارشد سیستم ، نمی بایست استفاده نمود. برای دریافت نمونه برنامه هائی در این زمینه می توان از LC4 )l0phtcrack version 4) و John the Ripper استفاده کرد . صرفنظر از رویکرد ذخیره سازی محلی LAN Manager hash ، موارد زیر می بایست موردتوجه قرار گیرد :

  • در صورتیکه ویندوز NT ، 2000 و یا XP بصورت پیش فرض نصب شده اند،سیستم در معرض آسیب خواهد بود. در چنین مواردی Lan Manager hashes بصورت پیش فرض و محلی ذخیره می گردد.
  • در صورتیکه ، بدلایلی نیازمند تائید مبتنی بر LM در یک سازمان بمنظور ارتباط با سرویس دهنده وجود داشته باشد ، سیستم مجددا" در معرض آسیب قرار خواهد گرفت .چراکه این نوع از ماشین ها اقدام به ارسال LM hashes نموده و پتانسیل شنود اطلاعاتی در شبکه را ایجاد خواهند کرد.

نحوه حفاظت در مقابل نقطه آسیب پذیر :

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

  • اطمینان ازاستحکام و انسجام رمز های عبور . با استفاده از سخت افزار مناسب و اختصاص زمان کافی ، می توان هر رمز عبوری را crack نمود. در این راستا می توان با استفاده ازروش های ساده و در عین حال موفقیت آمیز، عملیات تشخیص رمز عبور را انجام داد . اغلب برنامه های تشخیص دهنده رمزعبوراز روشی موسوم به "حملات مبتنی بر سبک دیکشنری " ، استفاده می نمایند. با توجه به اینکه روش های رمز نگاری تا حدود زیادی شناخته شده می باشند ، برنامه های فوق ، قادر به مقایسه شکل رمز شده یک رمز عبور در مقابل شکل های رمز شده کلمات دیکشنری می باشند( در زبان های متعدد و استفاده از اسامی مناسب بهمراه جایگشت های مختلف آنان ) . بنابراین ، رمز عبوری که ریشه آن در نهایت یک کلمه شناخته شده باشد ، دارای استعداد ذاتی در رابطه با این نوع از حملات خواهد بود . تعداد زیادی از سازمان ها ، آموزش های لازم در خصوص نحوه تعریف رمزهای عبور را به کارکنان خود داده و به آنان گفته شده است که رمزهای عبور مشتمل بر ترکیبی از حروف الفبائی و کاراکترهای ویژه را برای خود تعریف نمایند.متاسفانه اکثر کاربران این موضوع را رعایت ننموده و بمنظور تعریف یک رمز عبور با نام "password" ، صرفا" اقدام به تبدیل حروف به اعداد و یا حروف ویژه می نمایند ( pa$$w0rd) . چنین جایگشت هائی نیز قادر به مقاومت در مقابل یک تهاجم مبتنی بر دیکشنری نبوده و "pa$$w0rd" به روش مشابهی که "password" تشخیص داده می شود ، crack خواهد شد .

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

ویندوز 2000 ، XP و 2003 دارای ابزارهای قدرتمندی بمنظورافزایش توان سیاست های امنیتی می باشند . در اکثر نسخه های ویندوز بمنظور مشاهده سیاست تعریف شده در رابطه با رمز می توان از مسیر زیر استفاده و برنامه Local Security Policy را فعال نمود.

  • برنامه Local Security Policy دارای تنظیمات زیر است :
    Password must meet complexity requirements ، با فعال نمودن سیاست فوق ، رمزهای عبور ملزم به رعایت استانداردهای موجود بمنظور استحکام و پیچیدگی بیشتر در زمان ایجاد و یا تغییر می باشند. در چنین حالتی ، رمزهای عبور تعریف شده می بایست با لحاظ نمودن موارد زیر ایجاد گردند:

    رمز عبور، نمی بایست شامل تمام و یا بخشی از نام account کاربر باشد .
    رمز عبور می بایست دارای حداقل شش کاراکتر باشد .
    رمز عبور می بایست شامل کاراکترهائی از سه گروه از چهار مجموعه زیر باشد :
    ●  حروف بزرگ الفبای انگلیسی ( A تا Z )

حروف کوچک الفبای انگلیسی ( a تا z )

● ارقام پایه دهدهی ( رقم های 0 تا 9 )

کاراکترهای غیر الفبائی ( مثلا" ! ، $ ، # ، % )

( Enforce password history (range: 0-24 . اغلب کاربران تمایل دارند که پس از انقضاء تاریخ استفاده از رمز عبور خود ، مجددا" همان رمز عبور قبلی را تعریف و از آن استفاده نمایند . با استفاده از سیاست فوق ، می توان مشخص نمود که در چه زمانی و پس از چندین رمز عبور تعریف شده جدید ، کاربران مجاز به استفاده از رمزهای عبور قبلی خود برای وضعیت جدید می باشند .بدین ترتیب ،مدیران شبکه اطمینان لازم در خصوص عدم استفاده مستمر و دائمی یک رمز عبور توسط کاربران را بدست آورده و این موضوع می تواند از زوایای مختلفی بهبود وضعیت امنیتی شبکه را بدنبال داشته باشد . بمنظور نگهداری موثر تاریخچه رمز عبور، نمی بایست امکان تغییر رمزهای عبور بلافاصله پس از پیکربندی سیاست minimum password age ، وجود داشته باشد .

( Maximum password age (range: 0-999 days . سیاست فوق ، حداکثر عمر( اعتبار) یک رمز عبور را بر حسب روز ، مشخص می نماید.( قبل از اینکه سیستم کاربر را ملزم به تغییر رمز عبور نماید) . با در نظر گرفتن مقدار صفر ، رمز عبور دارای عمری جاودانه خواهد شد !

(Minimum password age (range: 0-999 days . سیاست فوق ، حداقل عمر( اعتبار) یک رمز عبور را بر حسب روز ، مشخص می نماید( قبل از اینکه کاربر قادر به تغییر رمزعبور گردد) . با در نظر گرفتن مقدار صفر ، به کاربران اجازه داده خواهد شد که بلافاصله رمز عبور خود را تغییر دهند. minimum password age می بایست کمتر از maximum password age باشد . پیکربندی minimum password age می بایست بگونه ای انجام شود که دارای مقداری بیش از صفر باشد تا سیاست password history نیز لحاظ شده باشد. بدون وجود یک minimum password age ، کاربران قادر به تغییر ادواری و زمانبندی نشده رمزهای عبور شده و امکان استفاده مجدد از رمزهای عبور قدیمی در یک محدوده زمانی کمتر برای آنان فراهم می گردد.مقادیر پیش فرض تامین کننده اهداف و خواست های امنیتی در یک سازمان نبوده و لازم است مدیران سیستم در ابتدا یک رمز عبور مناسب را برای کاربر تعریف و پس از سپری شدن مدت زمان مشخصی ( مدت زمان فوق را minimum password age مشخص می نماید ) کاربر را ملزم به تعریف ( تغییر ) رمز عبور تعریف شده توسط مدیریت شبکه نمایند. زمانیکه کاربران ،عملیات Log on را انجام و در صورتیکه password history مقدار صفر را دارا باشد ، الزامی در رابطه با انتخاب یک رمز عبور جدید برای کاربران وجود نخواهد داشت . بدین دلیل password history دارای مقدار پیش فرض یک است .

(Minimum password length (range: 0-14 characters ، سیاست فوق ، حداقل تعداد کاراکتر لازم برای تعریف یک رمز عبور را مشخص می نماید( حداقل طول یک رمز عبور) می توان در این رابطه حداقل طول یک رمز عبور را بین یک تا چهارده کاراکتر در نظر گرفت . با اختصاص مقدار صفر ، ضرورت وجود رمز عبور حذف می گردد. حداقل طول رمز عبور، می بایست متناسب و سازگار با سیاست های امنیتی سازمان باشد. در صورتیکه در این رابطه سیاست مشخص و شفافی وجود ندارد می توان مقدار هشت را در نظر گرفت .برخی از سازمان های امنیت اطلاعات شبکه ، مقدار دوازده را در این رابطه پیشنهاد داده اند .

Store password using reversible encryption for all users in the domain . سیاست فوق ، مشخص می نماید که می بایست رمزعبور با استفاده از رمزنگاری وارونه ، ذخیره گردد . در این رابطه ، امکانات حمایتی لازم درخصوص برنامه هائی که از پروتکل هائی بمنظور آگاهی از رمز عبور کاربر بمنظور انجام فرآیند تائید کاربران استفاده می نمایند، نیز ارائه شده است . ذخیره سازی رمزهای عبوری که از رمزنگاری وارونه استفاده می نمایند ، مشابه رمزهای عبورمعمولی است ( رمز عبور بصورت متن ذخیره می گردد). بنابراین فعال شدن سیاست فوق می بایست با لحاظ نمودن پارامترهای متعددی نظیر الزام یک برنامه بمنظور استفاده از یک رمز عبور حفاظت شده ، صورت پذیرد .

یکی از روش هائی که می توان از آن بمنظور ایجاد اتوماتیک و نسبت دهی رمزهای عبور پیچیده به هر یک از account های کاربران استفاده نمود ، اجرای دستورالمل زیر از طریق خط دستور است :

  • با اجرای دستورالعمل فوق ، رمزهای عبور تصادفی و پیچیده (همواره هشت کاراکتر طول ) به یک account نسبت داده شده و در ادامه رمزعبور مورد نظر بر روی صفحه نمایش داده می شود. روش فوق ، امکانی مناسب بمنظور نسبت دهی رمزهای عبوردر ارتبط با Service accounts بوده و کمتر در ارتباط با کاربران واقعی استفاده می گردد.
  • بهترین روش برای ممیزی کیفیت رمزهای عبور ، اجرای برنامه های cracking رمز عبور در وضعیتStand-alone است (بخشی از فرآیند بررسی رمزهای عبور) . لازم است مجددا" به این موضوع اشاره گردد که بدون کسب مجوز لازم از مدیران ارشد سیستم در سازمان ، نمی بایست از برنامه های cracking استفاده شود.پس از کسب مجوز لازم بمنظور اجرای برنامه های cracking رمز عبور ، می بایست عملیات فوق را بر روی یک ماشین حفاظت شده انجام داد.کاربرانی که رمزهای عبور آنان crack می گردد، می بایست موضوع بصورت محرمانه به اطلاع آنان رسیده و دستورالعمل های لازم در خصوص نحوه انتخاب یک رمز عبور مناسب ، در اختیار آنان قرار داده شود.اخیرا" و در پاسخ به رمزهای عبور ضعیف ، استفاده از روش هائی دیگر بمنظور تائید کاربران، نظیر بیومتریک (زیست سنجی ) ، نیز مورد توجه واقع شده است .
  • حفاظت رمزهای عبور مستحکم . حتی اگر رمزهای عبور ، مستحکم و قدرتمند باشند ، در صورت عدم حفاظت آنان توسط کاربران ، سیستم های موجود در یک سازمان در معرض تهدید قرار خواهند گرفت . یک سیاست امنیتی مناسب ، می بایست شامل دستورالعمل های لازم بمنظور آموزش کاربران در رابطه با حفاظت رمزهای عبور می باشد.عدم ارائه رمز عبور به افراد دیگر، عدم نوشتن رمز عبور در محلی که امکان خواندن آن برای دیگران وجود داشته باشد و حفاظت اتوماتیک فایل هائی که رمزهای عبور در آن ذخیره شده اند ، از جمله مواردی می باشند که می بایست به کاربران آموزش داده شود. اغلب کاربران در مواجهه با پیامی مشابه "Your password has expired and must be changed," که نشاندهنده اتمام عمر مفید یک رمز عبور است ، یک رمز عبور ضعیف را برای خود انتخاب می نمایند ، بنابراین لازم است در فرصت مناسب و قبل از برخورد با اینچنین پیام هائی ، به کاربران آموزش های لازم ارائه گردد.
  • کنترل مستمر account ها . مدیران سیستم و شبکه می بایست حضوری موثر و مستمر در ارتباط با مدیریت account های موجود داشته باشند .
    - هر گونه
    account مبتنی بر سرویسی خاص و یا مدیریتی که از آن استفاده نمی گردد، می بایست حذف گردد .

ممیزی account ها بر روی سیستم را انجام داده و لازم است در این رابطه یک لیست اصلی ایجاد گردد .در این رابطه می بایست رمزهای عبور در ارتباط با سیستم هائی نظیر روترها ، چاپگرهای دیجیتالی متصل شده به اینترنت و سایر موارد دیگر نیز مورد بررسی قرار گیرد.

روتین هائی خاص بمنظور افزودن account های تائید شده به لیست و یا حذف account هائی که ضرورتی به استفاده از آنان نمی باشد ، پیاده سازی و همواره خود را پایبند به آن بدانیم .

اعتبار لیست را در فواصل زمانی خاصی بررسی تا از بهنگام بودن آن اطمینان حاصل گردد.

- از روتین های خاصی بمنظورحذف account متعلق به کارکنان و یا پیمانکارانی که سازمان را ترک نموده اند ، استفاده گردد .

  • نگهداری و پشتیبانی از سیاست رمزعبور . بمنظور پشتیبانی و نگهداری مناسب رمز عبور، می توان علاوه بر استفاده از امکانات کنترلی ارائه شده توسط سیستم عامل و یا سرویس های شبکه ، از ابزارهای گسترده ای که در این رابطه ارائه شده است ،نیز استفاده گردد . بدین ترتیب ،نگهداری سیاست رمز عبور ، مبتنی بر آخرین تکنولوژی های موجود خواهد بود.
  • غیر فعال نمودن تائید LM در شبکه . بهترین گزینه بمنظور جایگزینی با Lan Manager ، استفاده از روش NT LAN Manager version 2)  NTLMv2) است . متدهای چالش / پاسخ NTLMv2 ، با استفاده از رمزنگاری مستحکم تر و بهبود مکانیزم های تائید ، اکثر صعف های LM را برطرف نموده است
  • پارامتر فوق ، نوع و روش تائید را مشخص و می تواند مقداری بین صفر تا پنج را دارا باشد :

0 - ارسال پاسخ بر اساس روش LM و NTLM ، هرگز از امکانات امنیتی NTLMv2 استفاده نمی شود .

1 - استفاده از امکانات امنیتی NTLMv2

2 - ارسال بر اساس روش تائید NTLM

3 - ارسال بر اساس روش تائید NTLMv2

4 - DC باعث رد تائید LM می گردد

5 - DC باعث رد تائید LM و NTLM شده و صرفا" تائید NTLMv2 پذیرفته می گردد .

  • در ویندوز 2000 ، 2003 و XP نیز امکاناتی ارائه شده است که می توان با استفاده از آنان اقدام به پیکربندی تنظیمات مورد نظر در ارتباط با سطح تائید Lan Manager نمود . در این رابطه لازم است برنامه Local Security Policy فعال و در ادامه گزینه های Local Policies و Security Options بترتیب انتخاب گردند . در ویندوز 2000 سیاست LAN Manager authentication level ، و در ویندوز XP و 2003 سیاست Network security: LAN Manager authentication level ، بمنظور پیکربندی ومقداردهی مناسب انتخاب گردند .
    در صورتیکه بر روی تمامی سیستم ها ، ویندوز
    NT SP4 و یا بعد از آن نصب شده باشد ، می توان مقدارپارامتر فوق را بر روی تمامی سرویس گیرندگان سه و بر روی Domain Controllers مقدار پنج درنظر گرفت (پیشگیری از ارسال LM hashes بر روی شبکه ) . سیستم هائی نظیر ویندوز 95 و 98 از NTLMv2 بصورت پیش فرض بهمراه Microsoft Network Client استفاده نمی نمایند ، بنابراین لازم است بمنظور استفاده از قابلیت های NTLMv2 ، برنامه Directory Services Client بر روی آنان نصب گردد. پس از نصب سرویس فوق ، مقدار ریجستری با نام LMCompatibility می تواند مقدار صفر و یا سه را دارا باشد .در صورتیکه نمی توان سرویس گیرندگان قدیمی ( ویندوز 95 و یا ویندوز 98 ) را ملزم به استفاده از NTLMv2 نمود ، می توان تغییر مورد نظر را در رابطه با LM hashing نسبت به استفاده از NTLM (NT Lan Manager, version ) در Domain Controller اعمال نمود.در این رابطه می توان مقدار LMCompatibilityLevel را چهار در نظر گرفت . درصورت استفاده از ابزاری نظیر Local Security Policy،می بایست مقدار LAN Manager authentication level را Send NTLMv2 Response only\Refuse LM درنظر گرفت . لازم است به این نکنه اشاره گردد که ایمن ترین گزینه در این رابطه، اعمال محدودیت برروی سرویس گیرندگان است .
  • ممانعت از ذخیره سازی LM hash . یکی از مسائل اصلی در ارتباط با حذف LM hashes در شبکه ، ذخیره سازی آنان در SAM و یا اکتیو دایرکتوری است .مایکروسافت دارای مکانیزمی بمنظور غیرفعال نمودن ایجاد LM hashes بوده ولی امکان استفاده از آن صرفا" در سیستم های ویندوز 2000 ( SP2 و یا بعد بر روی آنان نصب شده است ) ، 2003 و XP بوجود دارد. کلید ریجستری زیر، کنترل عملیات فوق راانجام می دهد. در صورتیکه بر روی Windows 2000 Domain Controller کلید فوق ایجاد شده باشد ، LanMan hashes ، در ادامه ایجاد نخواهد شد و در اکتیو دایرکتوری نیز ذخیره نمی گردد. در ویندوز 2003 و XP ، می توان با فعال نمودن گزینه Network security: Do not store LAN Manager hash value on next password change به اهداف موردنظر در رابطه با ذخیره سازی LM hash دست یافت . در این رابطه لازم است برنامه Local Security Policy فعال و در ادامه گزینه های Local Policies و Security Options بترتیب انتخاب گردند . پس از اعمال تغییرات فوق ، می بایست سیستم راه اندازی شده تا تغییرات ایجاد شده ، موثر واقع شوند . لازم است به این نکته مهم اشاره گردد که روش های ارائه شده ، صرفا" پیشگیری لازم در خصوص ایجاد LM hashes جدید راانجام داده و LM hashes موجود بصورت انفرادی و در زمانیکه کاربر رمز عبور خود را تغییر دهد ، حذف خواهند شد .
  • ممانعت و پیشگیری از تکثیر Hash و بانک های اطلاعاتی SAM
    ابزارهای
    cracking رمزعبور، بمنظور بدست آوردن رمزهای عبور hashes از روش های زیر استفاده می نمایند :
  • - کشف رمزهای عبور از شبکه . بدین منظور موارد زیر پیشنهاد می گردد :
    - استفاده از شبکه های سوئیچ شده .
    - تشخیص و حذف کارت های شبکه بی هدف موجود در شبکه (در این رابطه می توان از ابزارهای امنیتی خاصی نظیر ethereal
    استفاده کرد) .
    - تکثیر فایل
    SAM . فایل فوق در ویندوز NT4 و 2000 در فولدر SystemRoot%\System32\Config% (عموما" در مسیر C:\Winnt\System32\Config ) و در ویندوز XP و یا 2003 در فولدر C:\Windows\System32\Config مستقرمی باشد.، فایل فوق ، توسط سیستم عامل ویندوز Lock و صرفا" زمانی امکان تکثیرآن وجود خواهد داشت که ماشین با یک سیستم عامل دیگر راه اندازی شده باشد. فایل SAM را می توان با استفاده از فایل Backup مربوطه نیز بدست آورد.
    بمنظور پیشگیری از تکثیر فایل
    SAM و افزایش سطح امنیتی سیستم لازم است دستیابی فیزیکی به سیستم های موجود خصوصا" Domain Controllers محدود و همواره از اطلاعات Backup گرفته شده و دیسک Repair نیز بمنظور برخورد با مشکلات آتی ایجاد گردد .

چهارمین نقطه آسیب پذیر: (Internet Explorer (IE

IE ، مرورگر وب پیش فرض نصب شده در پلات فرم ویندوز مایکروسافت است .در صورتیکه نسخه های نصب شده IE در ادامه Patch و بهنگام نگردند ، تمامی آنان دارای نقاط آسیب پذیر خواهند بود . تاکنون حملات متعددی بر اساس نقاط آسیب پذیر در مرورگرهای IE توسط مهاجمان انجام شده است . نقاط آسیب پذیر در IE را می توان به گروههای متفاوتی نظیر : صفحات وب ، بروز اشکال در اینترفیس ویندوز ، کنترل های اکتیو ایکس ، اسکریپت های فعال ، تفسیر نادرست محتوی و نوع MIME و سرریز بافر تقسیم بندی نمود. مهاجمان با استناد به نقاط آسیب پذیر فوق می تواند حملاتی راانجام دهند که پیامد آن افشاء کوکی ها ، دستیابی به فایل های محلی و داده ، اجراء برنامه های محلی ، دریافت و اجرای کد های دلخواه و یا کنترل کامل سیستم آسیب پذیر است .

سیستم های عامل در معرض تهدید

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

نحوه تشخیص آسیب پذیر ی سیستم

در صورتیکه بر روی سیستمی مرورگر IE وجود داشته وهنوز آخرین و جدیدترین Patch های امنیتی نصب نشده باشند ، سیستم در معرض تهدید و آسیب قرار خواهد داشت . در صورتیک سرویس Windows Update بر روی سیستم فعال باشد با مشاهده سایت http://windowsupdate.microsoft.com/ ، می توان بررسی لازم در خصوص IE و Patch های نصب شده و مورد نیاز را انجام داد. در صورتیکه سرویس Windows Update فعال نشده باشد ، می توان از برنامه HFNetChk و یا Microsoft BaseLine Security Analyzer استفاده نمود. در این راستا می توان از برنامه های Online موجود در اینترنت ( ابزارهای آنالیز مرورگر وب ) نظیر : Qualys Browser Check که دارای توانائی بسیار بالا و مطلوبی می باشند در جهت بهبود وضعیت امنیتی IE ، استفاده نمود.

نحوه حفاظت در مقابل نقطه آسیب پذیر

Patch های لازم برای نقاط آسیب پذیر اشاره شده بمنظور استفاده در مرورگر IE نسخه شش موجود و قابل استفاده است . نسخه های اولیه IE نیز آسیب پذیر بوده و متاسفانه Patch های لازم در اینخصوص اغلب موجود نمی باشند. در صورتیکه بر روی سیستمی از نسخه IE 5.5 استفاده می گردد، پیشنهاد می گردد نسخه فوق به شش ، ارتقاء یابد . علت این امر ، عدم وجود patch های لازم در اینخصوص است . در صورتیکه از نسخه IE 6.0 استفاده می گردد ، آن را با آخرین Service Pack ارائه شده ، ارتقاء و بهنگام نمائید . برای دریافت Service Pack های می توان از آدرس : Internet Explore 6 SP1 استفاده نمود . در این رابطه لازم است که آخرین Patch جامع امنیتی ( 822925 ) که باعث اصلاح نقاط آسیب پذیر اضافه دیگری می گردد را نیز بر روی سیستم نصب نمود.

ایمن سازی IE

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

  • انتخاب گزیته Options از طریق منوی Tools
  • انتخاب گزینه Security Tab و فعال نمودن Custom Level مرتبط با Inetnet Zone .
    اکثر حملات مبتنی بر نقاط آسیب پذیر
    IE ، بدلیل سوء استفاده از پتانسیل های Active Scripting و ActiveX Controls ، محقق می گردند. بنابراین لازم است ، فعال شدن و بهره برداری از پتانسیل های فوق با نظارت و آگاهی کاربر انجام شود :
  • دربخش Scripting ، گزینه Prompt for Allow paste operations via script را انتخاب تا یشگیری لازم درخصوص محتوی موردنظر از طریق Clipboard انجام شود. ( لازم است به این نکته اشاره گردد که Active Scripting نمی بایست غیر فعال گردد ،چراکه تعداد زیادی از وب سایت ها از پتانسیل فوق ، استفاده می نمایند ) .
  • انتخاب گزینه Prompt برای Download signed ActiveX Controls
  • انتخاب گزینه Disable برای Download unsigned ActiveX Controls
  • انتخاب گزینه Disable برای Initialize and script ActiveX Controls not marked as safe
    اپلت های جاوا دارای قابلیت های بمراتب بیشتری نسبت به اسکریپت ها می باشند:
  • در بخش Microsoft VM ، گزینه High safety for Java permissions را در ارتباط با مجوزهای لازم بمنظور اجرای صحیح اپلت های جاوا و پیشگیری دستیابی به سیستم ، انتخاب گردد.
  • در بخش Miscellaneous ، گزینه Access to data sources across domains ، بمنظور ممانعت از حملات مبتنی بر Cross-site scripting ، غیر فعال گردد.

پنجمین نقطه آسیب پذیر : Windows Remote Access Services

نسخه های متفاوت ویندوز ، امکانات و تکنولوژی های متفاوتی را در ارتباط با شبکه ارائه و حمایت می نمایند .در این رابطه برخی از امکانات و پتانسیل های ارائه شده در ارتباط با اکثر پروتکل های شبکه ای استاندارد و توانائی های ارائه شده مربوط به تکنولوژی های شبکه ای مختص ویندوز ، مورد حمایت ذاتی ویندوز قرار می گیرند. پیکربندی غیر ایمن و نادرست مواردی همچون اشتراک های شبکه NETBIOS ، جلسات Anonymous Logon NULL ، دستیابی راه دور به ریجستری و فراخوانی از راه دور روتین ها ( RPC ) ، زمینه تهاجمات متعددی را در ارتباط با ویندوز و با استناد به امکانات و قابلیت های شبکه ای آن ، فراهم نموده است . در ادامه به تشریح هر یک از موارد فوق ، خواهیم پرداخت :

NETBIOS : عدم حفاظت مناسب از منابع اشتراکی

سیتم عامل ویندوز ، امکان اشتراک فایل و یا فولدرهائی را برای یک ماشین فراهم و بدین ترتیب سایر میزبانان موجود در شبکه قادر به استفاده از منابع به اشتراک گذاشته شده توسط سایر میزبانان بوده و خود نیز می توانند ، منابع موجود بر روی سیستم را با سایرین به اشتراک گذاشته تا زمینه استفاده از منابع فوق برای سایر میزبانان شبکه نیز فراهم گردد . مکانیزم فوق مبتنی بر پروتکل Server Message Block)SMB) و یا Common Internet File System)CIFS) می باشد. پروتکل های فوق ، امکان انجام عملیات بر روی فایل ها را از راه دور برای یک میزبان فراهم می نمایند. ( دقیقا" مشابه وضعیتی که عملیات بر روی یک کامپیوتر محلی انجام می گیرد ) .پتانسیل فوق یکی از امکانات برجسته و قدرتمند ویندوز بوده ولی بدلیل عدم پیکربندی صحیح اشتراک شبکه، می تواند سوءاستفاده از فایل های حیاتی سیستم و کنترل یک میزبان توسط یک مهاجم را بدنبال داشته باشد. برخی از کرم ها و ویروس ها ( نظیر نیمدا که در سال 2001 حیات خود را آغاز و در مدت زمانی کوتاه توانست بسرعت درشبکه منتشر شود ) با استناد و بهره برداری از نقاط ضعف فوق و عدم حفاظت مناسب اشتراک شبکه ، توانستند نسخه هائی از خود را بر روی میزبانان ، مستقر نمایند. بسیاری از استفاده کنندگان کامپیوتر بدلیل عدم پیکربندی مناسب اشتراک منابع در شبکه ، پتانسیل لازم در خصوص یک تهاجمم و بهره برداری از آن توسط مهاجمان را بصورت ناآگاهانه ایجاد می نمایند. کاربران فوق با اهداف مثبت و تسهیل در ارائه امکان دستیابی سایر همکاران خود ، برخی از منابع موجود بر روی سیتسم ( نظیر درایو ها و یا برخی فولدرها و یا فایل ها ) را به اشتراک گذاشته تاامکان خواندن و نوشتن برای سایر کاربران شبکه فراهم گردد.در صورتیکه پیکربندی مناسبی از منابع به اشتراک گذاشته شده در شبکه انجام شود، ریسک و خطر سوء استفاده و یا تهدیدات بطرز محسوسی کاهش خواهد یافت .

Anonymouse Logon
Null Session ، عملا" به یک Session ایجاد شده بدون اعتبارنامه ( نام و رمز عبور خالی ) ، اطلاق می گردد. از یک Null Session بمنظور نمایش اطلاعات مرتبط با کاربران ، گروه ها ، منابع اشتراکی و سیاست های امنیتی استفاده می گردد . سرویس های ویندوز NT ،بعنوان Local System account بر روی کامپیوتر محلی اجراء و با سایر سرویس ها ی شبکه از طریق ایجاد یک null Session ارتباط برقرار می نمایند. ویندوز 2000 و سرویس های مرتبط ، که بعنوان Local System account بر روی Local Computer اجراء می گردند ، از Local computer account بمنظور تائید سایر سرویس دهندگان، استفاده می نمایند. اکتیو دایرکتوری در مواردیکه بصورت native اجراء می گردد ، قادربه پذیرش درخواست های Null Session نخواهد بود. در حالت ترکیبی ، اکتیو دایرکتوری ، امکان دستیابی را برای نسخه های قبل از ویندوز 2000 فراهم و قادر به پذیرش درخواست های Null Session خواهد بود . بدین ترتیب با اینکه ویندوز 2000 ونسخه های بعد از آن امکان درخواست های مبتنی برNull Session را فراهم نمی نمایند ولی بدلیل سازگاری و پاسخگوئی به نسخه های قبل از ویندوز 2000 ، امکان تغییر در سیاست فوق در رابطه با اکتیو دایرکتوری فراهم و این مشکل امنیتی ( Null Session ) می تواند به ویندوز 2000 نیز سرایت نماید .

دستیابی از راه دور به ریجستری ویندوز

ویندوز 98 ، CE ، NT ، 2000 ، ME و XP از یک بانک اطلاعاتی مرکزی سلسله مراتبی ، که ریجستری نامیده می شود بمنظور مدیریت نرم افزار ، پیکربندی دستگاهها و تنظیمات کاربر استفاده می نمایند. مجوزهای نادرست و یا تنظیمات اشتباه امنیتی می تواند زمینه دستیابی از راه دور به ریجستری را توسط مهاجمان فراهم و آنان در ادامه قادر به سوء استفاده از وضعیت فوق و بمخاطره انداختن سیستم و اجرای کدهای مخرب خواهند بود.

فراخوانی از راه دور (Remote Procedure Calls: RPC )
تعداد زیادی از نسخه های ویندوز ( NT ، 2000 ، XP ، 2003 ) از یک مکانیزم ارتباطی Inter-Process استفاده می نمایند. درچنین مواردی یک برنامه در حال اجراء بر روی یک کامپیوتر میزبان ، قادر به فراخوانی کد موجود در میزبان دیگر و از راه دور می باشد .تاکنون حملات متعددی با استفاده از نقطه آسیب پذیر فوق ، صورت گرفته است . در چنین مواردی یک مهاجم قادر به اجرای کد دلخواه خود بر روی یک میزبان از راه دور می گردد. (بهمراه مجوزهای مشابه سیستم محلی ) . کرم های Blaster/MSblast/LovSAN و Nachi/Welchia از نقطه آسیب پذیر فوق استفاده کرده اند. در برخی موارد با استفاده از سایر نقاط آسیب پذیر یک مهاجم قادر به انجام حملات از نوع DoS ، در ارتباط با عناصر RPC است .

سیستم های عامل در معرض آسیب

تمامی نسخه های ویندوز در معرض این تهدید قرار دارند .

نحوه تشخیص آسیب پذیری سیستم

نحوه تشخییص آسیب پذیری سیستم در رابطه با مسائل NETBIOS : در این رابطه می توان از تعداد زیادی ابزار بمنظور تشخیص اشکالات امنیتی مرتبط با NETBIOS استفاده نمود.NAT که از کلمات NetBIOS Auditing Tool اقتباس شده است ،یک محصول نرم افزار در اینخصوص و ارائه شده توسط Afentis Security می باشد . NAT ، بررسی لازم در خصوص سرویس اشتراک فایل مربوط به NETBIOS را بر روی سیستم های مقصد ،انجام و از یک رویکرد مرحله ای بمنظور جمع آوری اطلاعات قبل از تلاش در جهت امکان دستیابی به سیستم فایل، استفاده می نماید . برای آگاهی از نحوه عملکرد برنامه فوق ، می توان از آدرس http://www.afentis.com/resources/win32/nat/ استفاده نمود.

کاربران ویندوز 95 و 98 ، می توانند از Legion v2.11 ( آخرین نسخه پویشگر اشتراک فایل Legion ارائه شده توسط Rhino9 ) بمنظور بررسی وضعیت اشتراک شبکه استفاده نمایند. کابران ویندوز 2000 ، می توانند از برنامه Security Fridays Share Password Checker ) SPC) بمنظور بررسی اشتراک فایل سرویس گیرندگان ویندوز (نسخه های 95 ، 98 و CE )استفاده نمایند. برنامه فوق ، امکان تشخیص آسیب پذیری سیستم در ارتباط با Share Level password را فراهم می نماید. کاربران ویندوز NT ( که بر روی آنان SP4 نصب شده باشد ) ، 2000 ، XP و 2003 ، می توانند از برنامه BaseLine Security Advisor استفاده و با اخذ گزارش لازم در خصوص میزبانان آسیب پذیر در رابطه با SMB ، اقدام به برطرف نمودن مشکل فوق نمایند.
بررسی و تست سیستم های آسیب پذیر را می توان بر روی میزبانان محلی و یا میزبانان از راه دور انجام داد . کاربران ویندوز
NT ، 2000 ، XP و 2003 می توانند با استفاده از دستور net Share و از طریق خط دستور، لیست منابع اشتراکی را مشاهده نمایند (برای آگاهی از اطلاعات تکمیلی در ارتباط با دستور فوق ، می توان از ? / Net Share ، استفاده نمود ) .
در این مقاله اطلاعاتی در رابطه با تغییر و اصلاح منابع اشتراکی ارائه شده است . بنابراین لازم است ، قبل از انجام هر گونه تغییرات در ارتباط با منابع اشتراکی ، دانش کافی در خصوص برگرداندن منابع به حالت اولیه وجود داشته باشد ( انجام هر گونه تست و اعمال تغییرات می بایست بصورت کاملا" آگاهانه انجام شود ) .
بمنظور کسب اطلاعات بیشتر در رابطه با منابع اشتراکی ، می توان از مقالات زیر استفاده کرد:

-       ذخیره و بازیابی منابع اشتراکی  ویندوز

-       منابع اشتراکی خاص

نحوه تنظیم ، مشاهده ، تغییر و یا حذف مجوزهای خاصی در ارتباط با فایل و فولدرها در ویندوز XP

نحوه غیر فعال نمودن اشتراک ساده شده و حفاظت رمز عبور یک فولدر اشتراکی در ویندوز XP

نحوه کپی فایل ها و نگهداری مجوزهای اشتراک NTFS

مجوزهای پیش فرض در ارتباط با منابع اشتراکی در هر یک از نسخه های ویندوز بصورت زیر است :

ویندوز NT ، ویندوز 2000 و ویندوز XP ( قبل از نصب SP1 ) ، دارای مجوز Everyone و بصورت Full Control می باشند .

ویندوز XP که بر روی آنان SP1 نصب شده است ، دارای مجوز Everyone و بصورت Read می باشد .

ویندوز XP بصورت پیش فرض دارای یک دایرکتوری اشتراکی با نام " ShareDocs " است (C:\Documents and Settings\All Users\Documents ) که دارای مجوز Everyone و بصورت Full Control می باشد .

اغلب پویشگرهای موجود، بمنظور بررسی وضعیت منابع استراکی قادر به تشخیص Open Share می باشند ( برخی از برنامه ها رایگان نمی باشند) . یکی از برنانه تست رایگان ،ایمن و سریع بمنظوربررسی وضعیت SMB مربوط به File Sharing و مسائل آسیب پذیر مرتبط با آن که قابل استفاده در تمامی نسخه های ویندوز است را می توان از سایت Gibson Research Corporation دریافت نمود . در این رابطه می توان از ابزارهای پویش اتوماتیک بمنظور تشخیص نقاط آسیب پذیر مرتباط با منابع اشتراکی نیز استفاده نمود :

- NesSus : یک ابزار پویش رایگان ، بهنگام شده و ساده بمنظوراستفاده از راه دور .
- Winfingerprint : پویشگر
Win32 Host/Network Enumeration

نحوه تشخیص آسیب پذیری سیستم در مقابل Anonymouse Logon و مسائل مرتبط با آن . بمنظور بررسی آسیب پذیری سیستم در رابطه با Anonymouse Logon ، یک null Session را با استفاده از دستور زیر و از طریق خط دستور ، فعال می نمائیم .

دستور فوق ، باعث ایجاد یک اتصال به منبع اشتراکی $IPC در IPaddress مشخص شده و بعنوان کاربر anonymouse ( نام آن در نظر نگرفته شده است "": user / ) و با یک رمز عبور Null می گردد( ایجاد hidden interprocess communications ) .در صورتیکه پس از اجرای دستور فوق ، System error 5 محقق گردد، نشاندهنده عدم وجود مجوز لازم بمنظور انجام این کار بوده و سیستم در معرض نقطه آسیب پذیر فوق ، قرار نخواهد داشت .در صورتیکه پس از اجرای دستور فوق ، پیامی مبنی بر اجرای موفقیت آمیز دستور بر روی صفحه نمایش داده شود ، نشاندهنده آسیب پذیری سیستم در مقابل این ضعف امنیتی خواهد بود. از نزم افزارهای معرفی شده در بخش قبل ( Nessus و Winfingerprint ) نیز می توان بمنظور تشخیص Null Session ،استفاده نمود .

نحوه تشخییص آسیب پذیری سیستم در مقابل دستیابی از راه دور به ریجستری ، برنامه NT Resource Kit)NTRK) ، قابل دسترس از طریق مایکروسافت، شامل یک فایل اجرائی با نام regdump.exe بوده که بصورت غیر فعال مجوزهای دستیابی به ریجستری را  از طریق یک میزبان ویندوز NT در مقابل سایر میزبانان ویندوز نظیر  XP ، 2000 و یا NT  بر روی اینترنت و یا شبکه داخلی ، بررسی می نماید .

نحوه تشخیص آسیب پذیری  سیستم  در مقابل RPC و مسائل مربوطه  : مایکروسافت در این رابطه یک ابزار hotfix و Patch-cheking  را  با نام Microsoft Baseline Security Analyzer ، ارائه داده است . استفاده از برنامه فوق ، بهترین روش بمنظور تشخیص آسیب پذیری سیستم است.

 نحوه حفاظت در مقابل نقاط آسیب پذیر

نحوه حفاظت در مقابل حملات مرتبط با NETBIOS  : 

در این رابطه می توان از راهکارهای متعددی بمنظور کاهش تهدیدات مربوطه  استفاده نمود :

غیر فعال نمودن  sharing  در مواردیکه ضرورتی به استفاده از آن نمی باشد .

- پیشنهاد می گردد سرویس گیرندگان ویندوز 95 ، 98 و CE که بعنوان بخشی از Domain ویندوز NT می باشند ، بصورت User-Level share access control پیکربندی گردند.

- غیر فعال نمودن sharing بر روی میزبانان اینترنت .اشتراک فایل ها با میزبانان اینترنت می بایست از طریق FTP و یا HTTP صورت پذیرد.
- در صورت ضرورت استفاده از
sharing ، امکان دستیابی به منابع  به اشتراک گذاشته شده را فقط از طریق کاربران تائید شده و مجاز انجام دهید .بدین ترتیب ، بمنظور استفاده از منبع اشتراکی ، درج  رمز عبور الزامی خواهد بود.
-
sharing را صرفا"  محدود به فولدر نمائید .بدین ترتیب ، sharing صرفا" در رابطه با یک فولدر انجام و در صورت ضرورت، می توان  فولدرهای دیگری را درآن ایجاد و آنان را به اشتراک گذاشت .
- بمنظور افزایش ضریب امنیتی ،  می توان امکان
sharing را محدود به آدرس های IP نمود. ( امکان دستکاری اسامی DNS می تواند وجود داشته باشد ) .

نحوه حفاظت درمقابل مسائل Anonymouse logon .

در این مقاله ، اطلاعاتی در رابطه با تغییر ریجستری ارائه شده است ، لذا لازم است قبل از اعمال هرگونه تغییر در ریجستری ، از آن Backup گرفته شده تا در صورت ضرورت ، امکان بازیابی مجدد ( Restore ) آنان وجود داشته باشد.در این رابطه می توان از منابع اطلاعاتی زیر استفاده نمود :

تشریح ریجستری ویندوز

- نحوه Backup ، ویرایش ، و Restore نمودن ریجستری در ویندوز NT 4.0
- نحوه Backup ، ویرایش و Restore نمودن ریجستری در ویندوز 2000
- نحوه Backup ، ویرایش و Restore نمودن ریجستری در ویندوز XP و ویندوز 2003

کامپیوترهائی که بصورت ویندوز NT Domain Controllers پیکربندی شده اند ، نیازمند یک  Null sessions بمنظور ارتباطات مورد نیاز خود خواهند بود . بنابراین در صورتیکه از یک Windows NT Domain ویا اکتیو دایرکتوری ویندوز 2000 / 2003 که در حالت ترکیبی اجراء شده است ( امکان دستیابی نسخه های قبل از ویندوز 2000 را نیزفراهم می نماید ) ، استفاده می گردد ،  می توان میزان اطلاعاتی را که ممکن است توسط مهاحمان استفاده گردد را کاهش ولی نمی بایست این انتظار وجود داشته باشد که با تنظیم ریجستری  RestrictAnonymouse به مقدار یک ، تمامی زمینه ها و پتانسیل های مربوطه حذف گردند. راه حل ایده آل  در مواردیکه از یک اکتیو دایرکتوری ذاتی ویندوز 2000 , 2003 استفاده می گردد ، مقداردهی RestrictAnonymouse به دو خواهد بود . بمنظور اخذ اطلاعات بیشتر در رابطه با اعمال محدودیت بر اساس null sessions ، می توان از مجموعه مقالات زیر استفاده نمود:

اعمال محدودیت در ارائه اطلاعا ت  به کاربران Anonymouse  در ویندوز NT
نحوه استفاداره از مقدار ریجستری RestrictAnonymouse در ویندوز 2000
مقدار ریجستری ResteictAnonymous ممکن است باعث شکستن Trust در یک Domain ویندوز 2000 گردد .

نحوه حفاظت در مقابل دستیابی به ریجستری سیستم

بمنظور برخورد با تهدید فوق، می بایست دستیابی و مجوزهای مرتبط به کلیدهای  مهم و حیاتی ریجستری ، بررسی و درصورت لزوم بازنویسی گردند . کاربران ویندوز NT 4.0 ، می بایست از نصب  Service Pack 3 بر روی سیستم خود  قبل از انجام تغییرات مورد نیاز در ریجستری ، مطمئن شوند . در این مقاله ، اطلاعاتی در رابطه با تغییر ریجستری ارائه شده است ، لذا لازم است قبل از اعمال هرگونه تغییر در ریجستری ، از آن Backup گرفته شده تا در صورت ضرورت ، امکان بازیابی مجدد ( restore ) آنان وجود داشته باشد.در این رابطه می توان از منابع اطلاعاتی زیر استفاده نمود :


- تشریح ریجستری ویندوز

- نحوه Backup ، ویرایش ، و Restore نمودن ریجستری در ویندوز NT 4.0

- نحوه Backup ، ویرایش و Restore نمودن ریجستری در ویندوز 2000

- نحوه Backup ، ویرایش و Restore نمودن ریجستری در ویندوز XP و ویندوز 2003

محدودیت دستیابی  شبکه : بمنظور اعمال محدودیت دستیابی به ریجستری از طریق شبکه ، مراحل زیر را بمنظور ایجاد یک کلید ریجستری دنبال می نمائیم :

مجوزهای امنیتی  کلید فوق ، کاربران و گروههائی را که دارای مجوز دستیابی از راه دور به ریجستری می باشند را مشخص می نماید . در زمان نصب ویندوز ، تنظیمات پیش فرض کلید فوق ، Access Control List بوده که امتیازات و مجوزهای کاملی را در اختیار مدیریت سیستم و گروههای مدیریتی ( Backup Operators در ویندوز 2000 ) قرار می دهد . برای ایجاد یک کلید بمنظور اعمال محدودیت در دستیابی به ریجستری ، مراحل زیر را دنبال می نمائیم :

- اجرای برنامه ریجستری ( Regedit32.exe و یا Regedit.exe )

- جستجو جهت یافتن  کلید :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
- انتخاب گزینه
Add Key از طریق  منوی Edit
-
جستجو جهت یافتن کلید :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers
-
انتخاب گزینه Add Key از طریق منوی Edit

درج مقادیر زیر :

 - جستجو جهت یافتن  کلید :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ SecurePipeServers\winreg
- انتخاب گزینه
Add Key از طریق  منوی Edit
- درج مقادیر زیر :

 - جستجو جهت یافتن  کلید :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ SecurePipeServers\winreg
- انتخاب 
winreg ، کلیک بر روی Security و در ادامه Permissions . در این حالت می توان کاربران و گروه های مجاز بمنظور اعطاء مجوز دستیابی به ریجستری را اضافه نمود .
- از برنامه
Registry Editor خارج و بمنظور فعال شدن تنظیمات انجام شده ، سیستم را راه اندازی نمائید .

در صورتیکه در ادامه قصد تغییر لیست کاربران مجاز دستیابی به ریجستری وجود داشته باشد ، می توان آخرین مرحله اشاره شده را تکرار نمود.

اعمال محدودیت دستیابی از راه دور تائید شده  : اعمال محدودیت  صریح در ارتباط با ریجستری،  می تواند اثرات جانبی ناسازگاری را در رابطه با سریس های وابسته نظیر Directory Replicator و printer Spooler service ، بدنبال داشته باشد . در این رابطه می توان سطح خاصی از مجوزهای لازم  را با افزودن account name مربوط به سرویس در حا ل اجراء به لیست دستیابی کلید winreg ، و یا با پیکربندی ویندوز بمنظور عدم اعمال محدودیت دستیابی به کلیدهای خاصی  را تعریف نمود ( مشخص نمودن آنان در کلید  AllowedPaths  مربوط به Machine و یا Users ) :

نحوه حفاظت سیستم در مقابل مسائل مرتبط با RPC

 بهترین روش در این رابطه نصب Patch های ارائه شده توسط  MBSA  و یا Windows Update می باشد. در این رابطه روش های متعددی بمنظور غیرفعال نمودن و یا اعمال  محدودیت درارتباط با عملکرد RPC وجود دارد . استفاده از آدرس http://www.ntbugtraq.com/dcomrpc.asp  در این رابطه می تواند مفید باشد . لازم است به این نکته مهم اشاره گردد که غیرفعال نمودن و یا اعمال محدودیت در رابطه با نحوه عملکرد RPC ، می تواند باعث  از کار افتادن برخی سرویس ویندوز گردد ، بنابراین پیشنهاد می گردد که در ابتدا  تغییرات  مورد نظر خود را یک سیستم غیرعملیاتی انجام و پس از اطمینان از صحت عملکرد ، آنان را بر روی سیستم اصلی اعمال نمود.در صورتیکه امکان  Patch نمودن سیستم وجود نداشته باشد ، می بایست پورت های مرتبط با  RPC در ویندوز ( پورت های 135 و139 و 445 و 593  مربوط به TCP و پورت های 135 ، 137 ، 138 ، و 445 مربوط به UDP) را  بلاک نمود.

بمنظور آشنائی با نحوه  اعمال محدودیت دستیابی به ریجستری ویندوز و سایر موارد اشاره شده در رابطه با نقطه آسیب پذیر Windows Remote Access Services ، می توان از منابع اطلاعاتی زیر استفاده نمود:

 - Microsofts HotFix & Security Bulletin Service

- نحوه استفاده از ویندوز XP و Windows Server 2003 Registry Editor

- Network access: Remotely accessible registry paths and subpaths

- Windows Server 2003 Security Guide

ششمین نقطه آسیب پذیر : ( Microsoft Data Access Components (MDAC

MDAC ، شامل مجموعه ای از تکنولوژی های مرتبط با بانک اطلاعاتی است که در تعدادی از نسخه های اخیر ویندوز، بکارگرفته شده است . مهاجمان با استفاده از نقاط آسیب پذیر MDAC ، تاکنون حملات متعددی را  در این رابطه سازماندهی و توانسته اند از سیستم های آسیب پذیر در جهت اهداف خود ( اجراء کد و دستورات مخرب )  استفاده نمایند . حملات فوق ، می تواند دلایل متعددی داشته باشد ولی می توان به دو عامل اصلی در این زمینه اشاره نمود : استفاده از رویکردهای قدیمی ( نظیر RDS  )  و وجود مسائل جدید در محصولات ارائه شده که یک مهاجم را قادر می سازد با ایجاد یک buffer overflow ، تمامی سیستم را بمخاطره اندازد .

RDS که از کلمات Remote Data Services اقتباس شده است ، نسخه قدیمی MDAC بوده و دارای یک ضعف امنیتی است که کاربران از راه دور را قادر می سازد ، دستوراتی را بصورت محلی بهمراه مجوزها و امتیازات مدیریتی، اجراء نمایند.با ترکیب ضعف فوق بهمراه ضعف امنیتی موجود در Microsoft Jet Database Engine 3.5 ( بخشی از MS Access  ) ، آسیب پذیری سیستم افزایش و زمینه تهدیدات متعددی فراهم می گردد( دستیابی به بانک های اطلاعاتی ) .ضعف ها و مشکلات فوق ، بطور کامل شناخته شده و بیش از سه سال است که مستندات لازم بمنظور مقابله با آنان تهیه و ارائه شده است . وجود سیستم های قدیمی که هنوز خود را با آخرین وضعیت موجود بهنگام نکرده و یا عدم پیکربندی مناسب سیستم ها ، از دلایل اصلی آسیب پذیری سیستم ها ی موجود می باشد  .   
 مهاجمان تاکنون با استفاده از ضعف فوق ،حملات متنوعی را سازماندهی و به سرانجام رسانده اند . یکی ازحملات اخیر در این رابطه ،  بدلیل
Buffer Overflow در MDAC بوده که در بولتن ( خبرنامه )  امنیتی شماره MS03-033 مایکروسافت   به آن  اشاره شده است . نسخه MDAC  در ویندوز 2003 ، دارای این نقطه آسیب پذیر نمی باشد . 

سیستم های عامل در معرض تهدید

اکثر سیستم های ویندوز NT 4.0 که بر روی آنان نسخه های  سه  و یا چهار برنامه IIS ، ویژوال استودیو شش  و یا  RDS 1.5  ، نصب شده باشد ، دارای  ضعف امنیتی فوق می باشند. ویندوز 2000 و XP همانند سیستم هائی که بر روی آنان آفیس 2000 ( بهمراه SP1 ) ، نسخه SQL Server 7  ( که بر روی آنان SP2 و به بعد نصب شده است ) ، SQL Server 2000  از MDAC  استفاده می نمایند . همانگونه که مشاهده می شود، اکثر نسخه های ویندوز دارای نقطه آسیب پذیر فوق می باشند .    

نحوه تشخیص آسیب پذیر ی سیستم

درصورتیکه بر روی کامپیوتری  ویندوز NT 4.0  بهمراه  IIS نسخه سه ویا چهار نصب شده باشد ، می بایست بررسی لازم  در خصوص وجود فایل "msadcs.dll" انجام شود( فایل فوق،عموما" در آدرس    C:\Program Files\Common Files\System\Msadc\msadcs.dll ، قرار دارد، آدرس فوق ممکن است با توجه به پیکربندی سیستم متفاوت باشد). در صورتیکه  سیستم مورد نظر شامل فایل فوق باشد ، بهنگام سازی و یا Patching سیستم ، منطقی ترین کاری است که می توان انجام داد.در صورت وجود نرم افزارهای قدیمی و سیستم های عامل اشا ره شده، سیستم در معرض تهدید و آسیب قرار خواهد داشت. بمنظور آگاهی از جزیئات لازم در خصوص نقاط آسیب پذیر اخیر MDAC  می توان از  بولتن امنیتی شماره MS03-033مایکروسافت  استفاده نمود . در ایـن رابطه می توان از  Windows Update   نیز بمنظور تشخیص آسیب پذیری سیستم ، استفاده نمود. امکان فوق ، بررسی لازم در خصوص نرم افزارهای نصب شده بر روی ماشین را انجام و متناسب با شرایط موجود اقدام به بهنگام سازی نرم افزارها خواهد نمود.

نحوه حفاظت در مقابل نقطه آسیب پذیر

در رابطه با ضعف های RDS ، Jet  و نحوه تصحیح و مقابله با آنان می توان از آدرس http://www.wiretrip.net/rfp/txt/rfp9907.txt  استفاده نمود. مایکروسافت نیز در این رابطه چندین بولتن ( خبرنامه ) امنیتی را منشتر که در آنان نحوه برخورد وحفاظت در مقابل این نقطه آسیب پذیر نشریح شده است .

http://support.microsoft.com/support/kb/articles/q184/3/75.asp
http://www.microsoft.com/technet/security/bulletin/ms98-004.asp
http://www.microsoft.com/technet/security/bulletin/ms99-025.asp
http://www.microsoft.com/security/security_bulletins/ms03-033.asp
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS03-033.asp
http://support.microsoft.com/default.aspx?scid=kb;en-us;823718

 بمنظور برخورد با ضعف امنیتی فوق ، می توان MDAC موجود را به نسخه MDAC ver 2.8 ، ارتقاء داد . آخرین نسخه MDAC و سایر عناصر مرتبط با بانک های اطلاعاتی را میتوان از طریق آدرس

http://msdn.microsoft.com/library/default.asp?url=/downloads/list/dataaccess.asp  مشاهده و دریافت نمود. در ایـن رابطه می توان  از  Windows Update     نیز استفاده نمود.

هفتمین نقطه آسیب پذیر : (Windows Scripting Host (WSH

WSH ، تکنولوژی ارائه شده توسط مایکروسافت بمنظور افزایش عملکرد  وتوانائی های ویندوز می باشد .تکنولوژی فوق ، از جاوا اسکریپت و VBScript حمایت و اولین مرتبه بهمراه IEنسخه پنج ارائه ودرادامه بعنوان یک استاندارد بهمراه سایر نسخه های سیستم عامل ویندوز ارائه گردید( آغاز آن با ویندوز 98 همراه بوده است ) . تکنولوژی WSH ،  امکان دستیابی به پوسته ویندوز ، سیستم فایل ، ریجستری و سایر موارد دیگر را با استفاده از کدهای ساده اسکریپت فراهم می نماید( پتانسیل های فوق در جهت اتوماسیون عملیات ویندوز ارائه شده است ) . اسکریپت ها می توانند مستقیما" از طریق Desktop و با کلیک نمودن بر روی یک فایل اسکریپت و یا از طریق یک برنامه اجراء گردند ( نظیر یک برنامه سرویس گیرنده پست الکترونیکی ) .

ویژگی اجراء اتوماتیکWSH ، عامل اصلی عرضه و انتشار کرم  ILOVEYOU ( کد نوشته شده توسط VBScript ) در سالیان گذشته بوده که  باعث میلیونها دلار خسارت گردید.کرم فوق و سایر کرم هائی که پس از آن مطرح گردیدند ، بمنظور نیل به اهداف مخرب خود  از مزایای WSH  استفاده  نموده اند . بدین ترتیب ، امکان اجرای هر نوع  فایل متنی با  انشعاب  vbs,.vbe, .js, .jse . وwsf . ،بعنوان یک اسکریپت ویژوال بیسیک و یا Jscript  با مجوزهای سطح سیستم و یا برنامه  ، فراهم می گردد .

سیستم های عامل در معرض تهدید

WSH ، می تواند بصورت دستی و یا از طریق   IE( نسخه پنج به بعد )  ،  بر روی ویندوز NT و 95 نصب گردد .درویندوز ME , 98 , 98SE , 2000 , XP و 2003  ، WSH  بصورت پیش فرض نصب می گردد . برای دریافت آخرین نسخه Windows Scrpt  می توان از آدرس Download Windows Script  استفاده نمود .

نحوه تشخیص آسیب پذیر ی سیستم  

  • سیستم هائی  که بر روی آنان ویندوز 95 و یا NT بهمراه نسخه IE 5.5 نصب شده است .
  • سیستم هائی که بر روی آنان ویندوز 98 ، ME ، 2000,XP و یا 2003 نصب شده است.

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

نحوه حفاظت در مقابل نقطه آسیب پذیر

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

غیرفعال نمودن WSH

تکنولوژی WSH ، بخشی اختیاری از سیستم عامل ویندوز بوده و می توان با اطمینان و بدون نگرانی خاصی  آن را  در موارد متعددی از روی  کامپیوترها ، حذف و یا غیر فعال نمود.پیشنهاد می گردد ،  بمنظور حفاظت در مقابل حملات و مسائل امنیتی مرتبط با  WSH ، پتانسیل فوق غیر فعال گردد (در مواردیکه به عملکرد آن بر روی سیستم نیاز نمی باشد ).


برنامه
Noscript.exe ، ارائه شده توسط Symantec ، سرویس WSH را با تغییر نام فایل کلاس های مربوط به هر کلاسی که دارای Wscript.exe و یا Cscript.exe در کلید های  ریجستری Shell\Open2\Command و یا Shell\Open\Command است ، غیر فعال می نماید.بدین ترتیب ، پیشگیری لازم در خصوص اجرای تمامی اسکریپت ها صرفنظر از اهداف مثبت و یا منفی آنان  ، انجام خواهد شد . بمنظور نصب  برنامه Noscript.exe  مراحل زیر را دنبال می نمائیم :

  • دریافت برنامه  Noscript.exe  از سایت Symantec
  • پس از  اجراء برنامه Noscript ( برنامه Norton Script Disabler/Enabler ، نمایش داده می شود) با توجه به آخرین وضعیت WSH ( فعال و یا غیر فعال ) ، امکان فعال و یا غیر فعال نمودن آن فراهم می گردد.

تغییر در رفتار پیش فرض WSH

بمنظور حفاظت و پیشگیری لازم در خصوص عملکرد WSH  در جهت انجام  پردازش های اتوماتیک Desktop و مدیریتی با لحاظ نمودن تهدیدات و مسائل ایمنی ، می توان  رفتار پیش فرض ویندوز را در ارتباط با فایل های اسکریپت ( فایل هائی با انشعاب vbs, .vbe, .js, jse, .wsf . ) ، تغییر داد. . نحوه برخورد پیش فرض ویندوز با فایل ها ی اسکریپت ، مشابه فایل های استاندارد اجرائی ویندوز بوده  ( فایل های با انشعاب EXE. و یا COM. )  و بلافاصله آنان اجراء خواهند شد . با تغییر تنظیمات و پیکربندی انجام شده می توان امکان اجرای اتوماتیک اسکریپت های WSH را حذف تا اطمینان لازم در خصوص عدم فعال شدن اسکریپت های غیر مجاز ، فراهم نمود .در چنین مواردی پس از فعال شدن فایل حاوی اسکریپت ، فایل مورد نظر در مقابل اجرای اتوماتیک در یک ادیتور متنی نمایش داده خواهد شد . بدین ترتیب ، کاربران می توانند پس از اطمینان از صحت اسکریپت های نوشته شده ، تصمیم لازم در خصوص اجرای آنان را اتخاذ نمایند . بنابراین ، عرصه برای اسکریپت هائی که سعی در تهدید و آسیب سیستم را دارند ، محدود و در عین حال کنترل شده می گردد. اسکریپت های مجاز WSH ، همچنان امکان اجراء را خواهند داشت . بدین منظور می توان نام فایل حاوی اسکریپت را بعنوان آرگومان برنامه های cscript.exe و یا wscript.exe  تعریف و مشخص نمود .

cscript.exe myscript.vbs
wscript.exe myscript.vbs

آنتی ویروس ها

پیشنهادمی گردد که برنامه آنتی ویروس بهنگام شده ای  در gatways ، سرویس دهندگان و میزبانان ، نصب گردد.(علاوه بر غیر فعال نمودنWSH ) . بدین ترتیب،  می توان  با استفاده از پتانسیل های ارائه شده توسط نرم افزارهای فوق ، برخورد لازم در ارتباط با  نامه های الکترونیکی که دارای ضمائم حاوی اسکریپت های مخرب  بمنظور انتشار ویروس ها و کرم ها  می باشند را انجام داد( نظیر فایل های vbs, .vbe, .js, .jse, .wsf, .bat, .exe, .pif and .scr .) .مثلا" برنامه Norton AntiVirus 2001 به بعد،  امکان Script Blocking را ارائه که می تواند میزبانان را در مقابل ویروسهای مبتنی بر WSHحفاظت نماید .

بهنگام سازی موتور ( هسته ) اسکریپت WSH طی سالیان اخیر ، بدفعات ارتقاء یافته است .آخرین نسخه آن  را می توان از آدرس  Download Windows Script   دریافت نمود .

مجوزهای                NTFS

از مجوزهای دستیابی NTFS می توان بمنظور تعریف سطح دستیابی قابل دسترس برای wscript.exe  و jscript.exe  در ارتباط با کاربران و یا گروه هائی ازکاربران بهمراه account های معتبر ویندوز،استفاده نمود . زمانیکه یک دایرکتوری و یا فایل به اشتراک گذاشته می شود ، تنظیمات پیش فرض دستیابی  برای دایرکتوری ها و فایل های NTFS ، بصورت  Full Control و برای گروه Everyone که شامل تمامی کاربران می باشد ، در نظر گرفته می شود. بدین ترتیب ، تمامی کاربران دارای مجوز لازم در خصوص اصلاح ، انتقال وحذف فایل ها و یا دایرکتوری ها ، می باشند.تنظیمات پیش فرض فوق برای wscript.exe و cscript.exe مناسب نمی باشند . ایمن سازی فایل ها و فولدرها شامل حذف کاربران و گروه هائی است که ضرورتی در رابطه با دستیابی به منابع را ندارند . بمنظور تغییر مجوزهای NTFS در ارتباط با یک دایرکتوری و یا فایل مراحل زیر را دنبال می نمائیم :

  • فعال نمودن My Computer ، انتخاب درایو ، دایرکتوری و یا فایلی که قصد ایمن سازی آن وجود داشته باشد.
  • فعال نمودن صفحه Property مربوط به شی انتخاب شده ( درایو ، دایرکتوری ، فایل ) 
  • در بخش Security صفحه خصایص ،  Account مورد نظری که قصد تغییر مجوزهای مرتبط با آن وجود دارد را انتخاب می نمائیم .
  • در بخش  Permission ، نوع دستیابی را برای کاربر و یا گروه مربوطه مشخص می نمائیم  .گزینه Allow امکان  دستیابی و Deny عدم دستیابی در ارتباط با یک مجوز ( خواندن ، نوشتن و ... ) را مشخص می نماید .

در صورتیکه در صفحه Property مربوط به فایل ، درایو و یادایرکتوری ، Security tab مشاهده نمی گردد ، سیستم فایل کامپیوتر میزبان بصورت NTFS پیکربندی نشده است . بمنظور تبدیل سیستم فایل به NTFS ، می توان از دستور Convert استفاده نمود (  convert drive_letter: /fs:ntfs ).

هشتمین نقطه آسیب پذیر : Microsoft Outlook ,Outlook Express

برنامه Outlook ( بخشی از مجموعه نرم افزارهای آفیس )، یک مدیر اطلاعات شخصی و سرویس گیرنده پست الکترونیکی ارائه شده توسط مایکروسافت است . برنامه فوق ، علاوه بر ارائه خدمات اولیه مرتبط با یک برنامه پست الکترونیکی ، امکان مدیریت تماس ها ، فعالیت ها و زمان را نیز فراهم می نماید .در صورت ارتباط Outlook با برنامه Exchange Server ( سرویس دهنده پست الکترونیکی ارائه شده توسط مایکروسافت ) ، توانائی و پتانسیل های آن مضاعف می گردد. حمایت از چندین کاربر ، ارائه تسهیلات لازم در  خصوص تنظیم قرار ملاقات ، زمان ، اشتراک تقویم و صندوق پستی ، نمونه هائی از پتانسیل های موجود در این زمینه می باشند .

Outlook Express) OE) ، نخسه ای رایگان و با قابلیت های کمتر نسبت به Outlook بوده که همزمان با ارائه IE نسخه یک ، بهمراه آن بر روی سیستم نصب می گردد( از زمان معرفی ویندوز 95 ، همواره بعنوان یک بخش لاینفک مطرح بوده است ) . با تلفیق محصولاتی نظیر IE و OE در سایر نرم افزارهای تولیدی مایکروسافت نظیر Backoffice ، آفیس و سایر نسخه های سیستم عامل ویندوز ، امکان استفاده از تکنولوژی های متداول و کد مربوطه بین پلات فرم، فراهم می گردد . بعنوان نمونه ، برنامه OutLook 98 مشابه Outlook Express از پارسینگ HTML مربوط به IE و موتور rendering استفاده می نماید . بنابراین در صورت نصب Outlook 98 (بدون نسخه چهار و یا بالاتر) ،امکان نصب برنامه IE نیز فراهم خواهد شد . استفاده از رویکرد فوق ، دستاوردهای مثبتی همچون :استفاده موثرتر از کد را بدنبال خواهد داشت ولی با توجه به استفاده مشترک از عناصر موجود ، در صورت بروز اشکال در یک نقطه ، دامنه آن گریبانگیر محصولات متعددی خواهد شد. مثلا" در صورت وجود یک ضعف امنیتی در یک عنصر خاص ، ضعف موجود بسرعت گسترش و زمینه سوء استفاده از آن در یک محدوده وسیعتر در اختیار مهاجمان قرار خواهد گرفت .قطعا" در چنین شرایطی نگهداری یک محیط عملیاتی ایمن و مطمئن ، چالش های خاص خود را بدنبال خواهد داشت . یکی از اهداف مایکروسافت  ، پیاده سازی یک راه حل مناسب بمنظور مدیریت اطلاعات و نامه های الکترونیکی  با قابلیت استفاده مجدد بوده است. ویژگی های اتوماتیک ارائه شده با کنترل های امنیتی ایجاد شده در تعارض بوده و این موضوع می تواند زمینه بروز تهدیدات و خطراتی را از ناحیه  ویروس های مبتنی بر نامه های الکترونیکی ، کرم ها  و کدهای مخرب بدنبال داشته باشد .

سیستم های عامل در معرض تهدید

OE ، سرویس گیرنده نامه های الکترونیکی رایگان ارائه شده بهمراه تمامی نسخه های IE و ویندوز  است . بمنظور آگاهی از نسخه نرم افزار OE ، پس از اجرای برنامه IE ، با فعال نمودن گزینه About از طریق منوی Help ، می توان از شماره نسخه نرم افزار فوق بر روی سیستم آگاهی یافت . نسخه های پایئن تر از پنج می بایست بلافاصله به نسخه جدید ارتقاء داده شوند.

OutLook ، یک مدیر اطلاعاتی با قابلیت های فراوان است که هم  بعنوان یک برنامه جداگانه و هم بعنوان عضوی از خانواده آفیس ارائه می گردد . برنامه فوق بصورت اتوماتیک بر روی یک سیستم نصب نخواهد شد و می بایست در خصوص نصب آن ، تصمیم گیری گردد.( نصب پیش فرض جایگاهی ندارد) .

برنامه Outlook دارای نسخه های متعددی است : 

  • Outlook 95
  • Outlook 97
  • Outlook 2000 ( به آن  Outlook 9 نیز گفته می شود )
  • Outlook XP ( که به آن Outlook 10 و یا Outlook 2002  نیز گفته می شود )

با فعال نمودن گزینه About از طریق منوی Help ، ( پس از اجرای برنامه IE  ) می توان از شماره نسخه برنامه OE نصب شده بر روی سیستم ، آگاهی یافت . نسخه های پائین تر از 2000 می بایست بسرعت patch و بهنگام گردند . در این رابطه می توان از منابع اطلاعاتی زیر استفاده  نمود :

- http://www.microsoft.com/windows/oe/
- http://www.microsoft.com/office/outlook/

نحوه تشخیص آسیب پذیر ی سیستم

تمامی کامپیوترهائی که بر روی آنان سیستم های عامل ویندوز نصب و یا دارای یک نسخه از IE می باشند که بهمراه آن برنامه Outlook Express نیز نصب شده است ، در معرض آسیب قرار خواهند داشت . با استفاده از برنامه نصب مجموعه برنامه های آفیس ، می توان اقدام به نصب برنامه Outlook نمود . نسخه های ارائه شده OE و Outlook برای مکینتاش نیز دارای مسائل امنیتی خاص خود می باشند.  در صورت عدم بهنگام سازی نسخه نصب شده و یا عدم رعایت تنظیمات امنیتی مربوطه ، سیستم در معرض تهدید قرار خواهد داشت .

نحوه حفاظت در مقابل نقطه آسیب پذیر

بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق  و کاهش تهدیدات موجود در این زمینه می باسیت عملیات مختلفی را انجام داد: 

ایمن سازی Outlook و Outlook Express

نصب و تنظیمات پیش فرض برنامه های Outlook و Outlook Express دارای ضعف امنیتی است . در این رابطه می بایست بررسی لازم در خصوص تنظیمات امنیتی  انجام و از بهنگام بودن نسخه نصب شده مطمئن گردید. در اینخصوص موارد زیر پیشنهاد می گردد :

  • استفاده مستمر از سایت  http://windowsupdate.microsoft.com/   و نصب تمامی Patch های ارائه شده خصوصا" Critical ( بحرانی )
  • غیر فعال نمودن پانل نمایش اولیه (Preview ) . با انتخاب گزینه Layout از طریق منوی  View زمینه غیر فعال نمودن گزینه  Show preview pane  فراهم می گردد.
  •  مستحکمتر نمودن تنظیمات ناحیه امنیتی (Security zone) مرتبط با نامه های الکترونیکی  . در این  رابطه از طریق منوی Tools گزینه Options انتخاب و پس از کلیک نمودن  بر روی Security Tab ،  گزینه( Restricted sites zone(More secure انتخاب و مقدار موردنطر High در نظر گرفته شود.

آموزش کاربران

با توجه به نقش بسیار مهم عوامل انسانی در ارتباط با فرآیند ایمن سازی اطلاعات ، می بایست کاربران در رابطه با استفاده از نامه های الکترونیکی بدرستی آموزش و توصیه های امنیتی لازم به آنان ارائه گردد. ذکر موارد زیر به کاربران ضروری می باشد :

  • در زمان دریافت یک فایل ضمیمه ، حتی اگر منبع ارسال کننده آن مطمئن باشد ، می بایست در ابتدا و قبل از فعال نمودن آن ، بررسی لازم در خصوص ویروس های کامپیوتری انجام شود .
  • در زمان دریافت یک فایل ضمیمه ، لازم است در ابتدا آن را در یک فولدر ( غیر از My Documents ) ذخیره نمود . ( آدرس فوق ، توسط تعداد زیادی از ویروس ها بعنوان نقطه شروع یک تهاجم انتخاب می گردد ) .در این راستا می توان  فولدر دیگری و یا حتی ماشینی دیگر را انتخاب نمود(تفکیک مناسب فیل های ضمیمه دریافتی از سایر فایل های موجود بر روی کامپیوتر) .
  • از فعال نمودن فایل های ضمیمه همراه یک نامه الکترونیکی  خودداری شود. لازم است به این نکته مهم اشاره گردد که حتی  فایل های DOC و یا XSL می توانند شامل کدهای مخربی باشند که سیستم را در معرض تهدید و آسیب قرار دهد.
  • درصورتیکه لازم است فایل دریافتی با استفاده از سایر محصولات مایکروسافت فعال گردد (نظیر Word ) ، می بایست مقدار High برای گزینه Disable macro  درنظر گرفته شود.

آنتی ویروس

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

 بهنگام سازی Outlook و Outlook Express .

برنامه Outlook Express طی سالیان اخیر بدفعات ارتقاء یافته است ( با هدف افزایش قابلیت ها و ایمنی بالاتر ) . بمنظور دریافت آخرین نسخه  برنامه فوق، می توان از آدرس  http://www.microsoft.com/windows/oe ، استفاده نمود. بمنظور اطمینان ازبهنگام بودن Outlook و سایر برنامه های آفیس می توان از آدرس  Office Product Updates page استفاده نمود . سایت فوق بصورت اتوماتیک موارد بحرانی را تشخیص و بهنگام سازی لازم وضروری را پیشنهاد می نماید .  بمنظور آگاهی از جزئیات مربوط به سایر موارد ایمنی و تنطیمات مرتبط به نسخه آفیس XP ، می توان از آدرس   Office XP Security white paper استفاده نمود . لازم است به این نکته مهم اشاره گردد که در صورتیکه سیستم شما بخشی از یک شبکه می باشد ، می بایست قبل از اعمال هر گونه تغییرات بر روی سیستم ، موضوع به اطلاع مدیریت سیستم رسانده شود. مدیران سیستم می توانند بمنظور آشنائی با جزئیات مربوط به بهنگام سازی امنیتی نامه های الکترونیکی در Outlook ، از Office Resource Kit  استفاده نمایند .

Uninstall نمودن Outlook و Outlook Express   در صورتیکه از یک برنامه خاص دیگر بمنظور نامه های الکترونیکی و یا سرویس گیرنده مدیریت اطلاعات استفاده می گردد ، می توان اقدام به Uninstall نمودن برنامه های Outlook و Outlook Express از روی سیستم نمود:

  •  در صورت نصب Outlook  بر روی تمامی نسخه های ویندوز می توان با استفاده از گزینه Add/Remove Program  اقدام به Uninstall نمودن برنامه نمود.
  • در صورت نصب Outlook Express بر روی ویندوز 98 و یا ME ، می توان با انتخاب آیکون Add/Remove Program  و گزینه Windows Setup و انتخاب Outlook Express امکان حذف آن رافراهم نمود .
  •  در صورت نصب Outlook Express بر روی ویندوز 2000 و یا XP  ، می توان با توجه به پیچیدگی عملیات مربوطه از آدرس های زیر استفاده نمود : 
    - کاربران ویندوز 2000 که از نسخه
    Outlook Express Version 5.x/6.0 استفاده می نمایند
  •  کاربران ویندوز 98 و یا ME که از نسخه Outlook Expree Version 5.x/6.0 استفاده می نمایند ، می توانند از آدرس http://support.microsoft.com/default.aspx?scid=kb;EN-US;q256219   استفاده نمایند .

نهمین نقطه آسیب پذیر : (Windows Peer to Peer File Sharing (P2P

نقطه آسیب پذیر فوق ، با سایر موارد اشاره شده متفاوت بوده و این امکان را فراهم می نماید که برنامه های نظیر به نظیر ، بمنزله برنامه های User mode در نظر گرفته شوند .این نوع از برنامه ها در سالیان اخیر بسرعت رشد و مورد استفاده قرار می گیرند. از برنامه های فوق ، بمنظور Download و توزیع انواع متفاوتی از داده ( موزیک ، ویدئو ، گرافیک ، متن ، Source code برنامه ) استفاده می گردد . داده های مبادله شده از طریق برنامه های فوق اغلب مشکوک و دراکثر موارد قوانین کپی رایت بین المللی را نقص می نمایند. بر اساس گزارشات ارائه شده توسط Napster ، برنامه های فوق اغلب بصورت یک برنامه سرویس گیرنده توزیع و زمینه اشتراک فایل ها ، دایرکتوری ها و حتی تمامی فضای ذخیره سازی هارد دیسک را فراهم می نماید . کاربران با استفاده از برنامه های سرویس گیرنده ، پارامتر مورد نظر خود برای جستجو را مشخص و در ادامه یک و یا چندین کانال ارتباطی بین  شرکت کنندگان بعنوان نرم افزار سرویس گیرنده و ارتباط با سایر شرکت کنندگان در شبکه های دیگر بمنظور مکان یابی فایل های  مورد نظر ایجاد می گردد. سرویس گیرندگان قادر به دریافت فایل از سایر کاربران بوده و می توانند داده های موجود بر روی سیستم خود را برای استفاده دیگران به اشتراک گذارند.

فرآیند ارتباطات نظیر به نظیر شامل دریافت درخواست ها ، پاسخ به آنان و ارسال فایل ها می باشد . یک سرویس گیرنده (شرکت کننده)  می تواند بطور همزمان چندین download را انجام و  در همان زمان اقدام به انجام چندین upload نماید . جستجو برای یافتن محتوی می تواند شامل هر نوع رشته حرفی مورد نظر کاربر باشد . اکثر برنامه های فوق در حال حاضر از پورت های پیش فرض استفاده می نمایند ولی می توان بصورت اتوماتیک و یا دستی آن را بمنظور استفاده از پورت  دیگر تنظیم نمود . سمت و سوی این تکنولوژی  بسمت  استفاده از http wrappers بوده که با ارائه تسهیلات لازم محدودیت های اعمال شده در سطح یک سازمان بمنظور استفاده از اینترنت را نادیده خواهد گرفت . با توجه به ماهیت multithread  برنامه های فوق در ارتباط با جستجو و انتقال فایل ها ، ترافیک شبکه های LAN افزایش و حتی  در موارد خاص امکان اشباع  کامل لینک های WAN نیز وجود خواهد داشت .  در زمان استفاده از برنامه های P2P ، سیتستم ها در معرض آسیب و تهدید جدی قرار خواهند گرفت . تهدیدات فوق ، می تواند باعث حملاتی از نوع   DoS  ،  دستیابی غیر مجاز به تمامی شبکه ( بدلیل ضعف در پیکربندی سرویس گیرنده P2P ) و بمخاطره انداختن اطلاعات محرمانه ( هیچگونه محدودیتی دررابطه با  نوع فایلی که به اشتراک گذاشته می شود ، وجود ندارد )  گردد .در این رابطه مسائل قانونی ( کپی رایت ) مربوطه نیز وجود داشته که بطور جدی توسط شرکت های ارائه دهنده محصولات ( صوتی ، تصویری ، نرم افزارهای کاربردی و ... )  دنبال می گردد .محتوی ارائه شده از طریق برنامه های P2P شامل قانونی کپی رایت بوده  ( موزیک ، فیلم و برنامه )  و استفاده کنندگان از این نوع برنامه ها می بایست به این موضوع مهم نیز توجه نمایند !

سیستم های عامل در معرض تهدید

از برنامه های  P2P ، می توان در ارتباط با تمامی نسخه های موجود سیستم عامل ویندوز استفاده نمود( نسخه های متعددی بمنظور نصب بر روی ویندوز نوشته شده است ) . البته در این رابطه نسخه های مربوط به سیستم های  عامل  یونیکس و لینوکس نیز وجود داشته و آنان نیز  در معرض این تهدید می باشند .

نحوه تشخیص آسیب پذیر ی سیستم

تشخیص استفاده از برنامه های P2P بر روی شبکه ، چالش های خاص خود را بدنبال خواهد داشت  .دراین رابطه موارد زیر پیشنهاد می گردد :

  • مانیتورینگ ترافیک شبکه بر روی پورت های متداول استفاده  شده توسط این نوع از برنامه ها
  • جستجو ترافیک شبکه برای application layer strings  که عموما" توسط برنامه های P2P استفاده می گردد.
  • بررسی مکان های ذخیره سازی شبکه بمنظور کنترل محتوی download شده توسط کاربر (فایل های    mp3, *.wma, *.avi, *.mpg, *.mpeg, *.jpg, *.gif, *.zip.*  و exe. * )
  • مانیتورینگ فضاء ذخیره سازی شبکه  برای کاهش ناگهانی ظرفیت آزاد دیسک

نحوه حفاظت در مقابل نقطه آسیب پذیر

بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، می بایست عملیات متفاوتی را انجام داد :

سیاست شرکت / سازمان

  • استفاده از یک سیاست معقول در ارتباط با downloading و قانون کپی رایت در هر سازمان
  • استفاده از یک سیاست معقول در ارتباط با  نحوه استفاده از اینترنت در هر سازمان
  • بررسی مستمر فضای ذخیره سازی شبکه و ایستگاههای شبکه برای  محتوی غیر مجاز

محدودیت شبکه

  • کاربران معمولی نمی بایست قادر به نصب نرم افزار خصوصا" نرم افزارهای P2P باشند .
  • استفاده از یک سرویس دهنده پروکسی بمنظور کنترل دستیابی به اینترنت
  • فیلتریتگ ( خروجی / ورودی ) پورت ها ی استفاده شده توسط برنامه های P2P
  • مانیتورینگ شبکه خصوصا" در ارتباط با  ترافیک P2P
  • استفاده روزانه از نرم افزارهای آنتی ویروس بهنگام شده

پورت های متدوال استفاده شده توسط برنامه های P2P :

  • برنامه Napsster ( پورت های TCP شماره : 8888 ، 8875 ، 6699 )
  • برنامه eDonkey ( پورت های TCP شماره 4661 ، 4662 ، 4665 )  
  •  برنامه Gnutella ( پورت های TCP/UDP شماره 6345 ، 6346 ، 6347 )
  • برنامه Kazza   ( پورت TCP شماره هشتاد برای www ، و پورت TCP/UDP شماره 1214 )

دهمین نقطه آسیب پذیر : ( Simple Network Management Protocol (SNMP )

از پروتکل SNMP بمنظور کنترل ، مانیتورینگ از راه دور و پیکربندی  تمامی دستگاه های پیشرفته مبتنی بر TCP/IP استفاده می شود.با اینکه  استفاده از SNMP در بین پلات فرم های متفاوت شبکه استفاده می گردد، ولی در اغلب موارد از آن  بمنظور پیکربندی و مدیریت دستگاههائی نظیر چاپگر ، روترها ، سوئیچ ها ، Access point ها  و دریافت داده های مورد نیاز دستگاههای مانیتورینگ شبکه ، استفاده می شود .

SNMP ، از روش های متفاوتی بمنظور مبادله پیام بین ایستگاههای مدیریت SNMP و دستگاههای شبکه ای  استفاده می نماید . روش های استفاده شده بمنظور برخورد با پیام های مبادله شده و مکانیزم تائید و معتبر سازی پیا م ها،  از جمله عوامل اصلی در رابطه با  نقاط آسیب پذیر SNMP می باشند .

نقاط آسیب پذیر مرتبط با روش های استفاده شده در SNMP ( نسخه یک )  بهمراه جزئیات مربوطه را می توان در آدرس  CERT - 2002 - 03  ، مشاهده نمود . نقاط آسیب پذیر متعددی در SNMP متاثر از روش برخورد با پیام ها توسط ایستگاه های مدیریتی است . نقاط آسیب پذیر فوق، به نسخه ای خاص  از SNMP محدود نبوده و محصولات متعدد ارائه شده توسط تولید کنندگان را نیز شامل می گردد . مهاجمان با استفاده از نقاط آسیب پذیر فوق ، قادر به انجام حملات متفاوت از نوع DoS ( از کار افتادن یک سرویس ) تا پیکربندی و مدیریت ناخواسته ماشین آلات و تجهیزات مبتنی بر SNMP  ، می باشند .
برخی از نقاط آسیب پذیر در ارتباط با
SNMP متاثر از روش های استفاده شده بمنظور تائید و معتبر سازی پیام ها در نسخه های قدیمی SNMP  است ( توارث مشکلات ) . نسخه های یک و دو SNMP ، از یک " رشته  مشترک " غیررمز شده بعنوان  تنها  گزینه موجود  برای تائید پیام ها استفاده می نمایند . عدم استفاده از روش های مناسب رمزنگاری ، می تواند عاملی مهم در پیدایش نقاط آسیب پذیر باشد. نگرش پیش فرض  نسبت به  " رشته مشترک  " که  توسط تعداد زیادی از دستگاههای SNMP استفاده می گردد ، از ذیگر عوامل مهم در ارتباط با عرضه نقاط آسیب پذیر است( برخی از تولید کنندگان بمنظور افزایش سطح ایمنی مربوط به داده های حساس ، رشته را بصورت "اختصاصی " تغییر و استفاده می نمایند ) .  شنود اطلاعاتی و ترافیک SNMP ، می تواند افشاء  اطلاعات و ساختار شبکه ( سیستم ها و دستگاههای متصل شده به آن  )  را بدنبال داشته باشد . مهاجمین با استفاده از اطلاعات فوق ، قادر به انتخاب مناسب و دقیق هدف خود بمنظور برنامه ریزی حملات خود می باشند .
اکثر تولید کنندگان بصورت پیش فرض نسخه یک
SNMP را فعال و تعدادی  دیگر،  محصولاتی را ارائه می نمایند که  قادر به استفاده ازمدل های امنیتی نسخه شماره سه SNMP  نمی باشند. ( با استفاده از مدل های امنیـی ارائه شده در نسخه شماره سه SNMP ، می توان پیکربندی لازم در خصوص روش های تائید را بهبود بخشید ) .

SNMP  ، بصورت پیش فرض در ویندوز فعال نمی گردد .و اغلب بعنوان یک سرویس تکمیلی توسط مدیر یت سیستم و یا شبکه ، نصب می گردد . سایر محصولات مدیریت شبکه ممکن است مستلزم Windows Service و یا نصب مربوط به خود باشند . SNMP  یک روش ارتباطی استفاده شده بمنظور مدیریت چاپگرها ، سیستم های UPS ،  دستگاه های access point  و Bridges   است .  از SNMP اغلب در نسخه های متفاوت یونیکس و لینوکس  نسخه های متفاوت سیستم عامل نت ور ، تجهیزات شبکه ای و دستگاههای embedded  استفاده می شود.  با توجه به  نتایج حاصل از آنالیز حملات مبتنی بر SNMP  ، مشخص شده است که اکثر حملات در این رابطه بدلیل ضعف در پیکربندی SNMP در سیستم های یونیکس است .

سیستم های عامل در معرض تهدید

تقریبا" تمامی نسخه های سیستم عامل ویندوز بهمراه یک گزینه نصب انتخابی در اینخصوص ارائه شده اند .  سرویس فوق بصورت پیش فرض نصب و فعال نمی باشد. اکثر دستگاه ها و سیستم های عامل شبکه ای مبتنی بر SNMP دارای نقطه آسیب پذیر فوق بوده و در معرض تهدید قرار خواهند داشت .

نحوه تشخیص آسیب پذیری سیستم

بمنظور بررسی نصب SNMP  بر روی دستگاههای موجود و متصل شده در شبکه ، می توان از یک برنامه کمکی و یا روش دستی استفاده نمود . در مواردیکه امکان استفاده از ابزارهای  پویشگر وجود ندارد ، می توان بررسی لازم در خصوص نصب و اجراء SNMP  را بصورت دستی انجام داد. در این راستا می توان به مستندات سیستم عامل مربوطه مراجعه تا پس از آگاهی از نحوه پیاده سازی SNMP  ، عملیات لازم بمنظور تشخیص فعال بودن SNMP را انجام داد در این رابطه می توان با بررسی اجراء سرویس در Services applet ،  در لیست پردازه ها نسبت به این موضوع آگاه و یا با دستور  " net stat " در خط دستور و یا با مشاهده و جستجوی سرویس های اجرائی بر روی پورت های 161 و 162 با استفاده از دستور "netstat -an" این عملیات را انجام داد . در صورت تحقق یکی از شرایط زیر و نصب  SNMP ،  سیستم در معرض آسیب  و تهدید قرار خواهد داشت :

  • وجود اسامی SNMP Community پیش فرض و یا خالی ( اسامی استفاده شده بعنوان رمزهای عبور )
  • وجود اسامی SNMP Community  قابل حدس
  • وجود رشته های مخفی SNMP Community

نحوه حفاظت در مقابل نقطه آسیب پذیر

بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ،در دو زمینه می توان اقدامات حفاظتی را سازماندهی نمود .


حفاظت در مقابل درخواست های آسیب رسان و تهدید کننده :

  • غیر فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن
  • استفاده از یک مدل امنیتی مبتنی بر کاربر SNMPv3 ،  بمنظور تائید پیام ها و رمزنگاری داده ها ( در صورت امکان ) 
  • در صورت استفاده از SNMP نسخه یک و یا دو ، می بایست آخرین نسخه Patch ارائه شده توسط تولید کننده ، نصب گردد برای آگاهی از مشخصات تولیدکننگان، می توان به  بخش ضمیمه  CERT Advisory CA-2002-03 ، مراجعه نمود .
  • SNMP را در گلوگاه های ورودی شبکه فیلتر نمائید ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP )  . عملیات فوق را در مواردیکه ضرورتی به مدیریت دستگاهها بصورت خارجی وجود ندارد ، می بایست انجام داد .
  • از  کنترل دستیابی مبتنی بر میزبان بر روی سیستم های SNMP agent استفاده گردد . ویژگی فوق ممکن است توسط SNMP agent سیستم های عامل دارای محدودیت هائی باشد ، ولی می توان کنترل لازم در خصوص پذیرش درخواست ها توسط agent مربوطه را انجام داد. در اکثر نسخه های ویندوز 2000 و به بعد از آن ، می توان عملیات فوق را توسط  یک فیلتر IPSEC  انجام داد . استفاده از یک فایروال فیلترینگ بسته های اطلاعاتی مبتنی بر agent  بر روی یک میزبان  نیز می تواند در بلاک نمودن درخواست های ناخواسته SNMP موثر واقع شود .

حفاظت در مقابل رشته های قابل حدس

  • غیر فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن
  • استفاده از یک مدل امنیتی مبتنی بر کاربر SNMPv3 ،  بمنظور تائید پیام ها و رمزنگاری داده ها ( در صورت امکان ) 
  • در صورت استفاده از SNMP نسخه یک و یا دو ، می بایست از یک سیاست خاص بمنظور اسامی community ( استفاده شده بعنوان رمزهای عبور ) استفاده گردد. در این راستا لازم است اسامی بگونه ای انتخاب گردند که  غیر قابل حدس بوده و بصورت ادواری و در محدوده های خاص زمانی نیز تغییر داده شوند .
  • SNMP را در گلوگاه های ورودی شبکه فیلتر نمائید ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP )  . عملیات فوق را در مواردیکه ضرورتی به مدیریت دستگاهها بصورت خارجی وجود ندارد ، می بایست انجام داد . پیکربندی فیلترینگ را صرفا" بمنظور ترافیک مجاز SNMP بین subnet های ممیزی شده ، انجام دهید.  

قیمت فایل فقط 3,900 تومان

خرید

برچسب ها : یونیکس و لینوکس

نظرات کاربران در مورد این کالا
تا کنون هیچ نظری درباره این کالا ثبت نگردیده است.
ارسال نظر