سیستم عامل بدون شک مهمترین نرم افزار در کامپیوتر است پس از روشن کردن کامپیوتر اولین نرم افزاری که مشاهده می گردد سیستم عامل بوده و آخرین نرم افزاری که قبل از خاموش کردن کامپیوتر مشاهده خواهد شد، نیز سیستم عامل است سیستم عامل نرم افزاری است که امکان اجرای تمامی برنامه های کامپیوتری را فراهم می آورد سیستم عامل با سازماندهی ، مدیریت و کنترل منابع
قیمت فایل فقط 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
نرم افزار 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 موارد زیر پیشنهاد می گردد :
دومین نقطه آسیب پذیر : ( 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 ، موارد زیر پیشنهاد می گردد :
سومین نقطه آسیب پذیر : Apache Web Server :
آپاچی ( Apache) یکی از متداولترین سرویس دهندگان وب بر روی اینترنت است . در مقایسه با سرویس دهنده وب مایکروسافت ( IIS ) ، آپاچی مسائل و مشکلات امنیتی کمتری را داشته ولی همچنان دارای آسیب پذیری خاص خود است .
علاوه بر وجود نقاط آسیب پذیر در ماژول ها و کد آپاچی ( CA-2002-27 و CA-2002-17 ) ، تکنولوژی های CGI و PHP نیز دارای نقاط آسیب پذیری خاص خود بوده که ضعف های امنیتی آنان به سرویس دهنده وب نیز سرایت می گردد. در صورت وجود نقاط آسیب پذیر در سرویس دهنده آپاچی و یا عناصر مرتبط به آن ، زمینه تهدیدات زیر فراهم می گردد :
سیستم های عامل در معرض تهدید
تمامی سیستم های یونیکس قادر به اجراء آپاچی می باشند . آپاچی بصورت پیش فرض بر روی تعداد زیادی از نسخه های یونیکس و لینوکس ، نصب می گردد .علاوه بر امکان فوق ، آپاچی را می توان بر روی میزبانی دیگر که از سیستم عاملی مختلف نظیر ویندوز استفاده می نماید نیز نصب نمود. این نوع از نسخه های آپاچی نیز می تواند دارای نقاط آسیب پذیر خاص خود باشد .
نحوه حفاظت در مقابل نقطه آسیب پذیر :
بمنظور حفاظت یک سرویس دهنده وب آپاچی ، پیشنهادات زیر ارائه می گردد :
- در صورتیکه ضروری است که از 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 Scripting: XSS ، شود . برای آشنائی و مشاهده اطلاعات تکمیلی در این خصوص می توان از آدرس http://www.modsecurity.org/ استفاده نمود.
- ممیزی و بررسی اسکریپت ها برای نقاط آسیب پذیر شامل XSS & SQL Injection نیز حائز اهمیت است . در این رابطه می توان از ابزارهای متعددی استفاده نمود. نرم افزار Nikto یکی از مناسبترین ابزارهای پویش و بررسی CGI است .
چهارمین نقطه آسیب پذیر : account
account هائی با رمز عبور ضعیف و یا فاقد رمز عبور
استفاده از رمزعبور، روش های تائید کاربر و کدهای امنیتی در هر گونه تعامل ارتباطی بین کاربران وسیستم های اطلاعاتی ، امری متداول و رایج است . اکثر روش ها ی تائید کاربران ، نظیر حفاظت فایل و داده ، مستقیما" به رمزهای عبور ارائه شده توسط کاربران ، بستگی خواهد داشت . پس از تائید کاربران ، امکان دستیابی آنان به منابع مشخص شده فراهم و هر یک از آنان با توجه به امتیازات و مجوزهای نسبت داده شده ، قادر به استفاده از منابع موجودخواهند بود. در اغلب موارد ، فعالیت کاربرانی که مجاز بودن آنان برای دستیابی به منابع ، تائید شده است ، لاگ نشده و یا در صورتیکه فعالیت آنان ثبت گردد ، کمتر سوء ظنی به آنان می تواند وجود داشته باشد . ( آنان پس از تائید وارد میدانی شده اند که بدون هیچگونه ردیابی ، قادر به انجام فعالیت های گسترده ای خواهند بود) . بنابراین ، رمز عبور دارای نقشی حیاتی و اساسی در ایجاد اولین سطح دفاع در یک سیستم اطلاعاتی بوده و از دست رفتن رمز عبور و یا ضعف آن می تواند سیستم را در معرض تهدیدات جدی قرار دهد . مهاجمان پس از دستیابی به رمز عبور کاربران تائید شده ( استفاده از مکانیزم های متفاوت ) قادر به دستیابی منابع سیستم و حتی تغییر در تنظیمات سایر account های تعریف شده و موجود بر روی سیستم خواهند بود،عملیاتی که می تواند پیامدهای بسیار منفی را بدنبال داشته باشد . پس می بایست بپذیریم که وجود یک account ضعیف و یا فاقد رمز عبور می تواند تهدیدی جدی در یک سازمان باشد . در این راستا علاوه بر اینکه می بایست از پتانسیل های ارائه شده توسط سیستم عامل با دقت استفاده نمود ، ضروری است ، تابع یک سیاست امنیتی تدوین شده در رابطه با رمز عبور در سازمان متبوع خود باشیم . تعریف و نگهداری یک account بهمراه رمز عبور مربوطه در سازمان ما تابع چه سیاست امنیتی است ؟ مهمترین و متداولترین نقاط آسیب پذیر در ارتباط با رمز عبور شامل موارد زیر است :
سیستم ها ی در معرض آسیب پذیر:
هر سیستم عامل و یا برنامه ای که فرآیند تائید کاربران آن براساس یک 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 هائی که بصورت پیش فرض ضعیف ویا فاقد رمز عبور می باشند را بهمراه بر روی سیستم مستقر و پیکربندی می نماید.
نحوه حفاظت در مقابل نقطه آسیب پذیر :
بهترین و مناسبترین دفاع در مقابل ضعف رمزهای عبور ، تبعیت از یک سیاست امنیتی مستحکم بوده که دستورالعمل های لازم کهه موجب می شود رمزهای عبور مناسب و مستحکمی توسط کاربران تعریف و توسط مدیران سیستم بصورت مستمر پیوستگی و استحکام آنان بررسی می گردد با حمایت کامل سازمان . مراحل زیر توصیه های لازم برای ارائه یک سیاست امنیتی مناسب می باشد :
یک رمز عبور خوب ، نمی بایست از ریشه یک کلمه و یا نام شناخته شده ای اقتباس شده باشد .در این راستا لازم است به کاربران آموزش لازم در خصوص انتخاب و ایجاد رمزهای عبور از موارد تصادفی نظیر یک عبارت ، عنوان یک کتاب ،نام یک آواز و یا نام یک فیلم داده شود. با انتخاب یک رشته طولانی که بر اساس رویکردهای خاصی می تواند انتخاب گردد( گرفتن اولین حرف هر کلمه ، جایگزینی یک کاراکتر خاص برای یک کلمه ، حذف تمامی حروف صدادارو سایر موارد ) ، کاربران قادر به ایجاد رمزهای عبور مشتمل بر ترکیبی از حروف الفبائی و حروف ویژه بوده که در صورت مواجه شدن با حملات مبتنی بر دیکشنری ، تشخیص آنان بسختی انجام می شود. لازم است به این نکته نیز اشاره گردد که رمزعبور می بایست براحتی بخاطر سپرده شده و بازیابی ( یادآوری)آن مشکل نباشد ( هدف از ذخیره سازی ، بازیابی است اگر چیزی را ذخیره نمائیم ولی در زمان مورد نظر قادر به بازیابی آن نباشیم ، سیستم ذخیره و بازیابی ما با اشکال مواجه شده است ! ). پس از تدوین دستورالعمل لازم بمنظور تولید رمزهای عبور مناسب و آموزش کاربران بمنظور پایبندی به اصول امنیتی تعریف شده ، می بایست از روتین ها ی جانبی متعددی بمنظور اطمینان از پیروی کاربران از دستوراالعمل های اعلام شده ، استفاده گردد. بهترین گزینه در این راستا ، بررسی صحت رمزهای عبور پس از اعمال تغییرات توسط کاربران است .
پس از ارائه دستورالعمل ها ی لازم و مناسب برای ایجاد رمزهای عبور ، روتین های تکمیلی خاصی می بایست ایجاد تا این اطمینان حاصل گردد که کاربران پایبند به دستورالعمل های ارائه شده بوده اند. بهترین روش در این زمینه ، بررسی صحت اعتبار رمزهای عبور پس از اعمال تغییرات توسط کاربران است . اکثر نمونه های یونیکس و لینوکس می توانند از Npasswd بمنظور بررسی رمز عبور در مقابل سیاست امنیتی موجود استفاده نمایند. سیستم های PAM-Enabled نیز می توانند از Cracklib ( کتابخانه لازم بمنظور هماهنگی با Crack ) بمنظور بررسی رمزهای عبور ایجاد شده ، استفاده نمایند.اکثر سیستم های PAM-enabled را می توان بگونه ای پیکربندی نمود که رمزهای عبوری را که با سیاست های مشخص شده مطابقت ندارد ، رد نمایند .
درمواردیکه امکان استفاده از ابزارهائی نظیر Npasswd و یا کتابخانه های PAM-Enabled ، وجود ندارد، مدیران سیستم و شبکه می توانند از برنامه های کاربردی Cracking در حالت stand-alone و بعنوان یک روتین کنشگرایانه مستمر، استفاده نمایند. LC4 )l0phtcrack version 4) و John the Ripper ، نمونه هائی از برنامه های فوق ، می باشند. لازم است مجددا" به این موضوع اشاره گردد که بدون کسب مجوز لازم از مدیران ارشد سیستم در سازمان ، نمی بایست از برنامه های cracking استفاده گردد.پس از کسب مجوزهای لازم ، می توان عملیات فبررسی رمزهای عبور را بر روی یک ماشین حفاظت شده انجام داد. به کاربرانی که رمزهای عبور آنان crack می گردد، بصورت محرمانه وضعیت فوق گزارش و دستورالعمل های لازم در خصوص نحوه انتخاب یک رمز عبور مناسب نیز به آنان ارائه گردد .اخیرا" و در پاسخ به رمزهای عبور ضعیف ، استفاده از روش هائی دیگر بمنظور تائید کاربران، نظیر بیومتریک (زیست سنجی ) ، نیز مورد توجه واقع شده است .
حتی اگر رمزهای عبور ، مستحکم و قدرتمند باشند ، در صورت عدم حفاظت آنان توسط کاربران ، سیستم های موجود در یک سازمان در معرض تهدید قرار خواهند گرفت . یک سیاست امنیتی مناسب ، می بایست شامل دستورالعمل های لازم بمنظور آموزش کاربران در رابطه با حفاظت رمزهای عبور می باشد.عدم ارائه رمز عبور به افراد دیگر، عدم نوشتن رمز عبور در محلی که امکان خواندن آن برای دیگران وجود داشته باشد و حفاظت اتوماتیک فایل هائی که رمزهای عبور در آن ذخیره شده اند ، از جمله مواردی می باشند که می بایست به کاربران آموزش داده شود. اغلب کاربران در مواجهه با پیامی مشابه "Your password has expired" که نشاندهنده اتمام عمر مفید یک رمز عبور است ، یک رمز عبور ضعیف را برای خود انتخاب می نمایند ، بنابراین لازم است در فرصت مناسب و قبل از برخورد با اینچنین پیام هائی ، به کاربران آموزش های لازم ارائه گردد.
پنجمین نقطه آسیب پذیر : :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 پیشنهاد می گردد :
هفتمین نقطه آسیب پذیر : ( 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 ، سیستم در معرض آسیب و تهدید قرار خواهد داشت :
نحوه حفاظت در مقابل نقطه آسیب پذیر :
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ،در دو زمینه می توان اقدامات حفاظتی را سازماندهی نمود .
حفاظت در مقابل درخواست های آسیب رسان و تهدید کننده :
حفاظت در مقابل رشته های قابل حدس :
هشتمین نقطه آسیب پذیر :( 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 ، لیستی از آدرس های شبکه را برای سرویس دهندگان پویش و گزارشی در ارتباط با شماره نسخه های آنان را ارائه می نماید .
نحوه حفاظت در مقابل نقطه آسیب پذیر
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، موارد زیر پیشنهاد می گردد :
نهمین نقطه آسیب پذیر : عدم پیکربندی مناسب سرویس های 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 موارد زیر پیشنهاد می گردد :
بمنظور برخورد با عدم پیکربندی مناسب NIS موارد زیر پیشنهاد می گردد :
بمنظور برخورد با عدم پیکربندی مناسب NFS موارد زیر پیشنهاد می گردد :
نحوه حفاظت در مقابل نقطه آسیب پذیر
موارد زیر در ارتباط با پیکربندی NIS ، پیشنهاد می گردد:
موارد زیر در ارتباط با پیکربندی NFS پیشنهاد می گردد:
در صورت امکان ، از پارامتر root_squash بعد از آدرس IP و نام Domain مربوط به سرویس گیرنده NFS استفاده گردد . در صورتیکه پارامتر فوق فعال شده باشد ، superuser ID root بر روی سرویس گیرنده NFS با کاربر ID nobody در سرویس دهنده NFS جایگزین می گردد. بدین ترتیب root user بر روی سرویس گیرنده ، قادر به دستیابی و یا تغییر فایل ها بر روی root نخواهند بود.
مثلا" : ( home 10.20.1.25(root_squash / .
موارد زیر در ارتباط با NFS و NIS پیشنهاد می گردد :
دهمین نقطه آسیب پذیر : ( 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 ، بمنظور آگاهی از شماره نسخه نرم افزار نصب شده ، استفاده نمود.
نحوه حفاظت در مقابل نقطه آسیب پذیر
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، موارد زیر پیشنهاد می گردد :
توصیه های مهم امنیتی در مورد یونیکس و لینوکس
بررسی و آنالیز امنیت در سیستم های عامل می بایست با ظرافت و در چارچوبی کاملا" علمی و با در نظر گرفتن تمامی واقعیت های موجود ، انجام تا امکان نگهداری و پشتیبانی سیستمها با در نظر گرفتن مجموعه تهدیدات موجود و آتی ، بسرعت و بسادگی میسر گردد .
اکثر حملات موفقیت آمیز در اینترنت ، بدلیل وجود نقاط آسیب پذیر در تعدادی اندک از سرویس های سیستم های عامل متداول است . مهاجمان ، با فرصت طلبی خاص خود از روش های متعددی بمنظور سوء استفاده از نقاط ضعف امنیتی شناخته شده ، استفاده نموده و در این راستا ابزارهای متنوع ، موثر و گسترده ای را بمنظور نیل به اهداف خود ، بخدمت می گیرند . مهاجمان ، در این رهگذر متمرکز بر سازمان ها و موسساتی می گردند که هنوز مسائل موجود امنیتی ( حفره ها و نقاط آسیب پذیر ) خود را برطرف نکرده و بدون هیچگونه تبعیضی آنان را بعنوان هدف ، انتخاب می نمایند پس با شناسائی و آنالیز اینگونه نقاط آسیب پذیر توسط کارشناسان امنیت اطلاعات ، سازمان ها و موسسات قادر به استفاده از مستندات علمی تدوین شده بمنظور برخورد منطقی با مشکلات موجود و ایجاد یک دیوار حفاظتی مناسب می باشند.
لینوکس و یونیکس ، از سیستم های عامل رایج در جهان بوده که امروزه در سطح بسیار وسیعی استفاده می گردد . تا کنون حملات متعددی توسط مهاجمین متوجه سیستم هائی بوده است که از یونیکس ( نسخه های متفاوت ) بعنوان سیستم عامل استفاده می نمایند . با توجه به حملات متنوع و گسترده انجام شده ، بایستی نحوه مقابله با این حملات و تهدیدات شناخته شده و راههای نفوذ سریعا ترمیم گردد و کاملا مسدود گردد .
عوامل متعددی در بروز اینگونه حملات نقش دارد: عدم آگاهی لازم مدیران سیستم در خصوص ارتقاء امنیتی سیستم هائی که بر روی آنان نرم افزارهای مدیریت اطلاعات شبکه نصب یا بصورت غیر ضروری اجراء می گردد و پیکربندی نامناسب برنامه ها ، نمونه هائی از عوامل فوق بوده و می تواند زمینه یک تهاجم از نوع DoS ، یک Buffer Overflow را فراهم سازد .
بمنظور حفاظت سیستم و ترمیم سریعتر نقاط آسیب پذیر موارد زیر پیشنهاد می گردد :
در صورتیکه از account هائی استفاده می شود که بین کاربران متعدد و یا کارکنان موقت یک سازمان به اشتراک گذاشته شده و یا کاربران از رمزهای عبور بدرستی حفاظت ننمایند، پتانسیل نفوذ به شبکه توسط یک مهاجم فراهم می گردد.
معرفی ویندوز 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 ، بشرح زیر می باشند :
سیستم و نحوه پشتیبانی 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 را دو مرتبه قبل از عرضه آن تغییر داده است . ( 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
نصب برنامه IIS با تنظیمات و پیکربندی پیش فرض ، آسیب پذیری خود را در موارد متعددی به اثبات رسانده و می تواند زمینه تهدیدات زیر را فراهم نماید :
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 نیز سرایت می نماید ( توارث مشکلات و ضعف های امنیتی از یک محصول به محصول دیگر) .
سیستم های عامل در معرض تهدید :
در رابطه با نقطه آسیب پذیر فوق بر روی ویندوز 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 ، فراهم می گردد :
استفاده از 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 ، بعنوان یکی از اجزاء اساسی بهمراه محصولات زیر نصب می گردد :
علاوه بر موارد فوق،نرم افزارهای متعدد دیگری وجود دارد که از 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 است .
نحوه حفاظت در مقابل نقطه آسیب پذیر :
بمنظور حفاظت سیستم ها در مقابل نقطه آسیب پذیر فوق ، عملیات زیر را دنبال می نمائیم :
- MSDE Server Desktop Engine 2000 (MSDE 2000)
- Microsoft SQL/MSDE Server 7.0
- MSDE Server Desktop Engine 2000 (MSDE 2000)
- فیلترینگ بسته های اطلاعاتی می بایست در محدوده های مرزی شبکه انجام تا پیشگیری و ممانعت لازم در خصوص اتصالات ورودی و خروجی غیر مجاز به MSSQL و مرتبط با سرویس های خاص صورت پذیرد . فیلترینگ نقطه ورود و خروج پورت های 1434 و 1433 مربوط به TCP/UDP می تواند باعث ممانعت مهاجمان داخلی و یا خارجی از پویش و آلودگی سرویس دهندگان SQL/MSDE که دارای پتانسیل آسیب پذیری می باشند، گردد .
- درصورتیکه لازم است از پورت های 1433 و 1434 مربوط به TCP/UDP استفاده گردد ، می بایست فیلترینگ مناسبی در ارتباط با استفاده نادرست از پورت های فوق را انجام داد .
بمنظور آگاهی از ایمن سازی سرویس دهنده SQL/MSDE ، می توان از آدرس های زیر استفاده نمود :
مهمترین نقاط آسیب پذیر ویندوز
در بخش اول این مقاله به بررسی دو مورد از نقاط آسیپ پذیر ویندوز پرداخته گردید . در این بخش به بررسی سومین نقطه آسیب پذیر ویندوز ، اشاره می گردد.
سومین نقطه آسیب پذیر : Windows Authentication
استفاده از رمزعبور، روش های تائید کاربر و کدهای امنیتی در هر گونه تعامل ارتباطی بین کاربران وسیستم های اطلاعاتی ، امری متداول و رایج است . اکثر روش ها ی تائید کاربران ، نظیر حفاظت فایل و داده ، مستقیما" به رمزهای عبور ارائه شده توسط کاربران ، بستگی خواهد داشت . پس از تائید کاربران ، امکان دستیابی آنان به منابع مشخص شده فراهم و هر یک از آنان با توجه به امتیازات و مجوزهای نسبت داده شده ، قادر به استفاده از منابع موجودخواهند بود. در اغلب موارد ، فعالیت کاربرانی که مجاز بودن آنان برای دستیابی به منابع ، تائید شده است ، لاگ نشده و یا در صورتیکه فعالیت آنان ثبت گردد ، کمتر سوء ظنی به آنان می تواند وجود داشته باشد . ( آنان پس از تائید وارد میدانی شده اند که بدون هیچگونه ردیابی ، قادر به انجام فعالیت های گسترده ای خواهند بود) . بنابراین ، رمز عبور دارای نقشی حیاتی و اساسی در ایجاد اولین سطح دفاع در یک سیستم اطلاعاتی بوده و از دست رفتن رمز عبور و یا ضعف آن می تواند سیستم را در معرض تهدیدات جدی قرار دهد . مهاجمان پس از دستیابی به رمز عبور کاربران تائید شده ( استفاده از مکانیزم های متفاوت ) قادر به دستیابی منابع سیستم و حتی تغییر در تنظیمات سایر account های تعریف شده و موجود بر روی سیستم خواهند بود،عملیاتی که می تواند پیامدهای بسیار منفی را بدنبال داشته باشد . پس می بایست بپذیریم که وجود یک account ضعیف و یا فاقد رمز عبور می تواند تهدیدی جدی در یک سازمان باشد . در این راستا علاوه بر اینکه می بایست از پتانسیل های ارائه شده توسط سیستم عامل با دقت استفاده نمود ، ضروری است ، تابع یک سیاست امنیتی تدوین شده در رابطه با رمز عبور در سازمان متبوع خود باشیم . تعریف و نگهداری یک account بهمراه رمز عبور مربوطه در سازمان ما تابع چه سیاست امنیتی است ؟ مهمترین و متداولترین نقاط آسیب پذیر در ارتباط با رمز عبور شامل موارد زیر است :
ویندوز، رمزهای عبور را بصورت متن شفاف ذخیره و یا ارسال نمی نماید و در این راستا از یک مقدار Hash متناظر با رمزعبور ، بمنظور تائید کاربران ، استفاده می نماید . یک مقدار Hash دارای طولی ثابت است که توسط بکارگیری یک تابع ریاضی ( الگوریتم hashing ) بر روی حجم دلخواهی از داده ( message digest نامیده می شود) ایجاد می شود.در وینوز سه نوع الگوریتم تائید وجود دارد :
با اینکه اکثر محیط های فعلی ویندوز ، ضرورتی به حمایت از (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 ، موارد زیر می بایست موردتوجه قرار گیرد :
نحوه حفاظت در مقابل نقطه آسیب پذیر :
بهترین و مناسبترین دفاع در مقابل رمزهای عبور ضعیف ، استفاده از یک سیاست مستحکم مشتمل بر دستورالعمل های لازم بمنظور ایجاد رمز عبور قدرتمند و بررسی مستمر آنان بمنظور اطمینان از استحکام و صحت عملکرد می باشد . در این رابطه موارد زیر پیشنهاد می گردد :
یک رمز عبور خوب ، نمی بایست از ریشه یک کلمه و یا نام شناخته شده ای اقتباس شده باشد .در این راستا لازم است به کاربران آموزش لازم در خصوص انتخاب و ایجاد رمزهای عبور از موارد تصادفی نظیر یک عبارت ، عنوان یک کتاب ،نام یک آواز و یا نام یک فیلم داده شود. با انتخاب یک رشته طولانی که بر اساس رویکردهای خاصی می تواند انتخاب گردد( گرفتن اولین حرف هر کلمه ، جایگزینی یک کاراکتر خاص برای یک کلمه ، حذف تمامی حروف صدادارو سایر موارد ) ، کاربران قادر به ایجاد رمزهای عبور مشتمل بر ترکیبی از حروف الفبائی و حروف ویژه بوده که در صورت مواجه شدن با حملات مبتنی بر دیکشنری ، تشخیص آنان بسختی انجام می شود. لازم است به این نکته نیز اشاره گردد که رمزعبور می بایست براحتی بخاطر سپرده شده و بازیابی ( یادآوری)آن مشکل نباشد ( هدف از ذخیره سازی ، بازیابی است اگر چیزی را ذخیره نمائیم ولی در زمان مورد نظر قادر به بازیابی آن نباشیم ، سیستم ذخیره و بازیابی ما با اشکال مواجه شده است ! ). پس از تدوین دستورالعمل لازم بمنظور تولید رمزهای عبور مناسب و آموزش کاربران بمنظور پایبندی به اصول امنیتی تعریف شده ، می بایست از روتین ها ی جانبی متعددی بمنظور اطمینان از پیروی کاربران از دستوراالعمل های اعلام شده ، استفاده گردد. بهترین گزینه در این راستا ، بررسی صحت رمزهای عبور پس از اعمال تغییرات توسط کاربران است .
ویندوز 2000 ، XP و 2003 دارای ابزارهای قدرتمندی بمنظورافزایش توان سیاست های امنیتی می باشند . در اکثر نسخه های ویندوز بمنظور مشاهده سیاست تعریف شده در رابطه با رمز می توان از مسیر زیر استفاده و برنامه Local Security Policy را فعال نمود.
● حروف کوچک الفبای انگلیسی ( 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 ها بر روی سیستم را انجام داده و لازم است در این رابطه یک لیست اصلی ایجاد گردد .در این رابطه می بایست رمزهای عبور در ارتباط با سیستم هائی نظیر روترها ، چاپگرهای دیجیتالی متصل شده به اینترنت و سایر موارد دیگر نیز مورد بررسی قرار گیرد.
- روتین هائی خاص بمنظور افزودن account های تائید شده به لیست و یا حذف account هائی که ضرورتی به استفاده از آنان نمی باشد ، پیاده سازی و همواره خود را پایبند به آن بدانیم .
- اعتبار لیست را در فواصل زمانی خاصی بررسی تا از بهنگام بودن آن اطمینان حاصل گردد.
- از روتین های خاصی بمنظورحذف account متعلق به کارکنان و یا پیمانکارانی که سازمان را ترک نموده اند ، استفاده گردد .
0 - ارسال پاسخ بر اساس روش LM و NTLM ، هرگز از امکانات امنیتی NTLMv2 استفاده نمی شود .
1 - استفاده از امکانات امنیتی NTLMv2
2 - ارسال بر اساس روش تائید NTLM
3 - ارسال بر اساس روش تائید NTLMv2
4 - DC باعث رد تائید LM می گردد
5 - DC باعث رد تائید LM و NTLM شده و صرفا" تائید NTLMv2 پذیرفته می گردد .
چهارمین نقطه آسیب پذیر: (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 رابهبود بخشید . برای نیل به خواسته فوق ، می توان مراحل زیر را دنبال نمود:
پنجمین نقطه آسیب پذیر : 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 استفاده نمود .
نحوه تشخیص آسیب پذیر ی سیستم
در صورتیکه WSH بر روی سیستم نصب و رفتار آن کنترل شده نباشد ، سیستم در معرض آسیب قرار خواهد داشت . در این رابطه لازم است که بررسی لازم در خصوص سیستم هائی که WSH بر روی آنان نصب شده است را انجام و در ادامه با استفاده از روش هائی که دربخش بعد به آنان اشاره خواهد شد ، از یک راهکار منطقی بمنظور حفاظت در مقابل آن ، استفاده گردد..
نحوه حفاظت در مقابل نقطه آسیب پذیر
در ابتدا لازم است به این نکته مهم اشاره گردد که برخی برنامه ها وعملیات مدیریتی، نیازمند استفاده از WSH بوده و در صورت غیر فعال نمودن و یا حذف پتانسیل فوق ، برنامه های فوق با اشکال مواجه خواهند شد .
غیرفعال نمودن WSH
تکنولوژی WSH ، بخشی اختیاری از سیستم عامل ویندوز بوده و می توان با اطمینان و بدون نگرانی خاصی آن را در موارد متعددی از روی کامپیوترها ، حذف و یا غیر فعال نمود.پیشنهاد می گردد ، بمنظور حفاظت در مقابل حملات و مسائل امنیتی مرتبط با WSH ، پتانسیل فوق غیر فعال گردد (در مواردیکه به عملکرد آن بر روی سیستم نیاز نمی باشد ).
برنامه Noscript.exe ، ارائه شده توسط Symantec ، سرویس WSH را با تغییر نام فایل کلاس های مربوط به هر کلاسی که دارای Wscript.exe و یا Cscript.exe در کلید های ریجستری Shell\Open2\Command و یا Shell\Open\Command است ، غیر فعال می نماید.بدین ترتیب ، پیشگیری لازم در خصوص اجرای تمامی اسکریپت ها صرفنظر از اهداف مثبت و یا منفی آنان ، انجام خواهد شد . بمنظور نصب برنامه Noscript.exe مراحل زیر را دنبال می نمائیم :
تغییر در رفتار پیش فرض 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 در ارتباط با یک دایرکتوری و یا فایل مراحل زیر را دنبال می نمائیم :
در صورتیکه در صفحه 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 دارای نسخه های متعددی است :
با فعال نمودن گزینه 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 دارای ضعف امنیتی است . در این رابطه می بایست بررسی لازم در خصوص تنظیمات امنیتی انجام و از بهنگام بودن نسخه نصب شده مطمئن گردید. در اینخصوص موارد زیر پیشنهاد می گردد :
آموزش کاربران
با توجه به نقش بسیار مهم عوامل انسانی در ارتباط با فرآیند ایمن سازی اطلاعات ، می بایست کاربران در رابطه با استفاده از نامه های الکترونیکی بدرستی آموزش و توصیه های امنیتی لازم به آنان ارائه گردد. ذکر موارد زیر به کاربران ضروری می باشد :
آنتی ویروس
نرم افزارهای آنتی ویروس ، امکانات مناسبی را در خصوص حفاظت کامپیوترها در مقابل اکثر کرم ها ، ویروس ها و سایر کدهای مخرب ، ارائه می نمایند . بانک های اطلاعاتی آنتی ویروس ها حداقل بصورت هفتگی بهنگام می گردند. بمنظور اطمینان از حفاظت در مقابل جدیدترین تهدیدات، اکثر برنامه های پیشرفته آنتی ویروس ، عملیات بهنگام سازی را بصورت اتوماتیک انجام می دهند. برنامه های جدید و پیشرفته آنتی ویروس دارای قابلیت بررسی و پویش تمامی نامه های وارده وصادره بمنظور اطمینان از بلاک نمودن فایل های شامل کد مخرب و یا اسکریپت ، قبل از تهدید سیستم ها توسط آنان می باشند. پیشنهاد می گردد ،ابزارهای حفاظتی آنتی ویروس قبل از استفاده از نامه های الکترونیکی و یا اینترنت ، بهنگام گردند. تعداد زیادی از ویروس ها وکرم ها از طریق سرویس گیرندگان نامه های الکترونیکی بصورت فایل های ضمیمه و یا کد اسکریپت مخرب، در زمان مشاهده 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 از روی سیستم نمود:
نهمین نقطه آسیب پذیر : (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 بر روی شبکه ، چالش های خاص خود را بدنبال خواهد داشت .دراین رابطه موارد زیر پیشنهاد می گردد :
نحوه حفاظت در مقابل نقطه آسیب پذیر
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ، می بایست عملیات متفاوتی را انجام داد :
سیاست شرکت / سازمان
محدودیت شبکه
پورت های متدوال استفاده شده توسط برنامه های P2P :
دهمین نقطه آسیب پذیر : ( 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 ، سیستم در معرض آسیب و تهدید قرار خواهد داشت :
نحوه حفاظت در مقابل نقطه آسیب پذیر
بمنظور حفاظت در مقابل نقطه آسیب پذیر فوق ،در دو زمینه می توان اقدامات حفاظتی را سازماندهی نمود .
حفاظت در مقابل درخواست های آسیب رسان و تهدید کننده :
حفاظت در مقابل رشته های قابل حدس
قیمت فایل فقط 3,900 تومان
برچسب ها : یونیکس و لینوکس