سری امنیت 4

0 views
Skip to first unread message

mohammad lotfi

unread,
Nov 24, 2011, 4:51:25 AM11/24/11
to gostaresh-an...@googlegroups.com
دوباره سلام


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




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

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

در این مقاله سعی بر ارائه مطالبی در خصوص ویروسهای کامپیوتری و امنیت دو سیستم عامل ویندوز و لینوکس داریم

.

ویروس کامپیوتری چیست؟

همانگونه که از نامش پیداست و همگان میدانند، ویروس کامپیوتری یک برنامه مخرب است (البته شاید هم غیر مخرب!) که دو خاصیت اساسی دارد:

الف) بطور خودکار و بدون اجازه و خواست کاربر اجرا می شود

ب) بطور خودکار و بدون اجازه و خواست کاربر تکثیر می شود

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

.

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

ـ مرحله ۱) سیستم عامل در ابتدا نوع پرونده ی مورد نظر را از نظر اجرائی بودن بررسی می کند.

ـ مرحله ۲) مجوزهای اجرای پرونده توسط کاربر، بوسیله سیستم بررسی می شود.

ـ مرحله ۳) در صورت اجرائی بودن پرونده و داشتن مجوز اجرا توسط کاربر، فرآیند اجرای آنرا به انجام می رساند.

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


الف) ویندوز:


ـ مرحله ۱) نحوه شناسائی پرونده های اجرائی در ویندوز، «پسوند» آنهاست. یعنی ویندوز یک پرونده را که پسوند exe یا com یا bat داشته باشد اجرائی فرض کرده و در صورتی که exe یا com باشد آنرا بصورت دودوئی(binary) و اگر bat باشد آنرا بصورت فرمانهای اجرائی اعلان دستور سیستم، اجرا می نماید


ـ مرحله ۲) در حالت پیش فرض همه پرونده ها برای همه کاربران در ویندوز مجوز اجرا دارند. البته این موضوع به نوع سیستم پرونده نیز وابسته است و در صورتی که شما از سیستم پرونده امن ویندوز(مانند NTFS) استفاده نکنید اصلا هیچ نوع مجوزی وجود ندارد که بررسی شود! یعنی همه مجازند هرکاری بکنند


ـ مرحله ۳) اگر یک پرونده از دو مرحله فوق رد شود و به این مرحله برسد، حال تمام سیستم اعم از سخت افزار، نرم افزار، سرویسها و ... در اختیار او خواهند بود تا اجرا شده و خدمات مورد نیاز کاربر را ارائه نماید. در واقع ویندوز از اینجا به بعد هرچه برنامه اجرائی بخواهد در اختیارش قرار میدهد. به این دلیل است که بعضی پرونده ها و برنامه های غیر مخرب نیز بعد از اجرا ممکن است عملکرد سیستم را متوقف نمایند. البته در نسخه های جدید ویندوز (از ۲۰۰۰ به بعد) یک برنامه امنیتی در سیستم عامل و در لایه Application آن، قرار داده شده که از خرابکاری پرونده های اصلی سیستم عامل جلوگیری بعمل آورد. اما اکثر مواقع این برنامه امنیتی در محافظت از سیستم پرونده ناموفق عمل نموده است.

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


ب) لینوکس:


ـ مرحله ۱) لینوکس پرونده های اجرائی را از روی سرنام داخل پرونده ها شناسائی میکند که قابل تغییر توسط کاربر نیستند

در واقع داشتن یا نداشتن پسوند هیچ تغییری در رفتار لینوکس برای یک پرونده اجرائی نخواهد داشت. چرا که یک پرونده اجرائی در لینوکس حتماً اجرائی است حتی اگر پسوند آن jpg یا wav باشد!


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


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

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


نتیجه : یک برنامه اجرائی امکان اجرا و همچنین تکثیر خودکار در سیستم عامل لینوکس را نخواهد داشت.

نگاهی گذرا به ساختار داخلی سیستمهای عامل ویندوز و لینوکس:

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

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

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

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


اما مبحث آخر، برخی می گویند «چون لینوکس به اندازه زیاد استفاده نمی شود هنوز برای آن ویروس نوشته نشده است»! نظر این افراد را به برخی آمارهای جهانی که به راحتی از طریق اینترنت قابل دسترس می باشند جلب می نمایم:

پایداری و قابلیت اطمینان این سیستم عامل به حدی است که بیش از ۷۰ درصد سرویس دهنده های جهان بر روی آن کار میکنند (www.netcraft.com)

دلایل فوق و همچنین سرعت و انعطاف پذیری لینوکس باعث شده است تا بیش از ۷۵ درصد از برترین سوپرکامپیوترهای
از این سیستم عامل استفاده می کنند


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


{باتشکر}
 
Reply all
Reply to author
Forward
0 new messages