بررسی امنیت و قابلیت اطمینان در لینوکس

Description:

گزیده ای از مطالب پروژه بررسی امنیت و قابلیت اطمینان در لینوکس

مزایای لینوکس

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

هنگامی که لینوکس را باسایر سیستم عامل های تجاری موجود در بازار مقایسه می کنیم، بهترین مشخصه های لینوکس قیمت و امنیت و قابلیت اطمینان آن است. بیشتر مردم می دانند که قیمت آن مجانی است. (ﻭ ﻳﺎ ﺣﺪﺍﻗﻞ ﻭﻗﺘﻲ ﺑﺼﻮﺭﺕ ﻳﮏ ﺑﺴﺘﻪ ﺑﻨﺪﻱ ﻭ ﻫﻤﺮﺍﻩ ﮐﺘﺎﺏ ﺍﺭﺍﺋﻪ ﺷﻮﺩ ﺯﻳﺮ ۱۰۰ ﺩﻻﺭ ﻗﻴﻤﺖ ﺩﺍﺭﺩ). ﻣﻌﻤﻮﻻ ﻭﻗﺘﻲ ﻣﺮﺩﻡ ﺩﺭﺑﺎﺭﻩ ﺳﻮﺩ ﻟﻴﻨﻮﮐﺲ ﺻﺤﺒﺖ ﻣﻲﮐﻨﻨﺪ، ﻣﻌﻤﻮﻻ ﻓﻘﻂ ﺩﺭ ﻣﻮﺭﺩ ﮐﺎﻫﺶ ﻣﺠﻤﻮﻋﻪ ﻫﺎ ﻫﺰﻳﻨﻪﮐﻪ ﺷﺎﻣﻞ ﻗﺎﺑﻠﻴﺖ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﺨﺖ ﺍﻓﺰﺍﺭ ﺍﺭﺯﺍﻥ ﻭ ﻧﺮﻡﺍﻓﺰﺍﺭﻫﺎﻱ ﮐﺎﺭﺑﺮﺩﻱ ﺭﺍﻳﮕﺎﻥ ﻣﻲﺷﻮﺩ، ﻓﮑﺮ ﻣﻲﮐﻨﻨﺪ. ﺩﺭ ﻣﻮﺭﺩ ﻗﺎﺑﻠﻴﺖ ﺍﻃﻤﻴﻨﺎﻥ، ﻋﻤﻮﻡ ﺑﺮ این ﻋﻘﻴﺪﻩ ﻫﺴﺘﻨﺪ ﮐﻪ ﻟﻴﻨﻮﮐﺲ ﺩﺭ ﻋﻴﻦ ﺳﺎﺯﮔﺎﺭﻱ ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎﻱ ﻳﻮﻧﻴﮑﺲ، ﺑﺴﻴﺎﺭ ﭘﺎﻳﺪﺍﺭﺗﺮ ﺍﺯ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞﻫﺎﻱ ﺭﻭﻱ ﻣﻴﺰﻱ ﻣﻮﺟﻮﺩ ﺍﺳﺖ ﺍﻳﻦ ﻣﻮﺿﻮﻉ ﻭﻗﺘﻲ ﺑﻴﺸﺘﺮ ﺍﻫﻤﻴﺖ ﭘﻴﺪﺍ ﻣﻲﮐﻨﺪ ﮐﻪ ﺷﻤﺎ ﺍﺯ ﮐﺎﻣﭙﻴﻮﺗﺮﺗﺎﻥ ﺑﻪ ﻋﻨﻮﺍﻥ ﺳﺮﻭﻳﺲﺩﻫﻨﺪﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﮐﻨﻴﺪ ﻭ ﺍﻧﺘﻈﺎﺭ ﻧﺪﺍﺭﻳﺪ ﻫﻨﮕﺎﻡ ﺭﻓﺘﻦ ﺑﻪ ﺧﺎﻧﻪ ﻫﻤﻪ ﭼﻴﺰ ﺩﺭﺳﺖ ﺑﺎﺷﺪ ﻭ ﻓﺮﺩﺍ ﺻﺒﺢ ﻫﻤﻪ ﭼﻴﺰ ﺧﺮﺍﺏ !

ﻭﻳﮋﮔﻲ ﺩﻳﮕﺮ ﻟﻴﻨﻮﮐﺲ این ﺍﺳﺖ ﮐﻪ ﻫﺮ ﮔﻮﻧﻪ کمک ﻭ ﻣﺴﺘﻨﺪﺍﺕ ﺁﻥ ﺑﻪ ﻓﺮﺍﻭﺍﻧﻲ ﻭ ﺭﺍﻳﮕﺎﻥ، ﻫﻤﻴﺸﻪ ﺩﺭاینترنت ﻣﻮﺟﻮﺩ ﺍﺳﺖ. ﻫﻤﻴﺸﻪ ﮐﺴﺎﻧﻲ ﺩﺭ ﮔﺮﻭﻩﻫﺎﻱ ﺧﺒﺮﻱ ﻟﻴﻨﻮﮐﺲ ﭘﻴﺪﺍ ﻣﻲﺷﻮﻧﺪ ﮐﻪ ﻣﺸﮑﻞ ﺷﻤﺎ ﺭﺍ ﺣﻞ ﮐﻨﻨﺪ. ﭼﻮﻧﮑﻪ ﺷﻤﺎ ﺗﻤﺎﻡ ﮐﺪﻫﺎﻱ ﻣﻨﺒﻊ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺭﺍ ﺩﺭ ﺍﺧﺘﻴﺎﺭ ﺩﺍﺭﻳﺪ اگر ﭼﻴﺰﻱ ﻧﻴﺎﺯ ﺑﻪ ﺗﺼﺤﻴﺢ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ، ﺧﻮﺩﺗﺎﻥ ﻫﻢ ﻣﻲﺗﻮﺍﻧﻴﺪ ﺩﺳﺖ ﺑﻪ ﮐﺎﺭ ﺷﻮﻳﺪ! ﺩﺭ ﻣﻘﺎﺑﻞ، ﺳﺎﺯﻧﺪﮔﺎﻥ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞﻫﺎﻱ ﺗﺠﺎﺭﻱ ﺭﺍ  ﻣﻲﺑﻴﻨﻴﻢ ﮐﻪ ﻣﺎﻩ ﻫﺎ ﻭ ﻣﺎﻩﻫﺎ ﺩﺭ ﻣﻘﺎﺑﻞ ﮔﺰﺍﺭﺷﺎﺕ ﺍﺷﮑﺎﻻﺕ ﻧﺸﺴﺘﻪﺍﻧﺪ! ﺑﻪ ﻳﺎﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﺪ ﮐﻪ ﻓﺮﻫﻨﮓ ﻟﻴﻨﻮﮐﺲ، ﻓﺮﻫﻨﮓ ﮐمک ﺑﻪ ﺩﻳﮕﺮﺍﻥ ﺍﺳﺖ .[2]

[1] مرجع کامل  red hat linux، آلن باغومیان،مترجم مهندس علی ناصح،2003

[2] ﮐﺘﺎﺏ ﺁﻣﻮﺯﺷﻲ ﻟﻴﻨﻮﮐﺲ ﺭﺩﻫت 9،آلن باغومیان، آبان ماه 1382

 

برآورد قابلیت اطمینان و تجزیه و تحلیل از هسته لینوکس[1]

آخرین نسخه از هسته لینوکس قابل استفاده توسط تمامی سیستم عامل های مبتنی بر لینوکس سری 2.6 است. هدف از انجام این مطالعه توسعه یک مدل مناسب برای بهینه سازی قابلیت اطمینان این نسخه از هسته و تجزیه و تحلیل اعتبار آن  با استفاده از یک مدل مناسب است.

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

 

سفارش پروژه دانشجویی

درخواست همکاری با ما برای انجام پروژه دانشجویی

معرفی رشته مهندسی کامپیوتر

تماس با ما

درباره ما بیشتر بدانید

مشاهده نمونه کار های ما

سوالات متداول

 

 

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

هسته لینوکس تحت GNU عمومی منتشر شد و توسط همکاران در سراسر جهان توسعه یافت.

توروالدز لینوکس را زمانی که دانشجوی دانشگاه هلسینکی در سال 1991 بود توسعه داد. نسخه های مختلفی از هسته لینوکس وجود دارد. نسخه 1.0 در 14 مارس 1994 منتشر شد. این نسخه از هسته لینوکس سیستم های کامپیوتری تک پردازنده مبتنی بر I386 را فقط پشتیبانی می کند وتا نسخه 1.2 منتشر شد.

7 مارس 1995پشتیبانی از سیستم های کامپیوتری با پردازنده آلفا، SPARC و معماری MIPS را به دست آورد. نسخه 2.6.0 در تاریخ 18 دسامبر 2003 منتشر شد (5929913 خط کد دارد). سری 2.6 از هسته مجموعه ای فعال و با ثبات از دسامبر 2010. توسعه و به 2.6.x تغییر یافت.

در حال حاضر لینوکس یکی از گسترده ترین هسته سیستم عامل است و در حال اجرا در طیف متنوعی از سیستم ها مثل IPAQ (کامپیوتر دستی)با معماری/  IBM Z (سرور پردازنده مرکزی گسترده است که همزمان می تواند صدها یا حتی هزاران دستور اجرا کند) است. آن را به دستگاه های مختلف دستی از جمله توکس تلفن، آی پاد اپل و آیفون منتقل کرده است. با توجه به قابلیت استفاده بالا از هسته لینوکس به خصوص 2.6 نسخه (با تمام زیر ورژن های آن)، باید قابلیت اطمینان در آن را مورد  مطالعه قرارداد. به دلیل اینکه مطالعات بسیار کمی در قابلیت اطمینان از هسته لینوکس در دسترس هست در نتیجه این تحقیق و تحقیقات دیگر از این نوع برای محققان و دیگر سهامداران سیستم عامل های منبع باز مفید می باشد.

برای سنجش اعتماد دو نوع از داده ها می تواند مورد استفاده قرار گیرد: زمان بین خرابی و تعداد خطاها. پارامتر اصلی سنجش “زمان بین خرابی” فواصل عملیات موفقیت آمیز است.

در مورد “تعداد حفره امنیتی” پارامتر ورودی ، مطالعه تعداد حفره امنیتی در یک دوره مشخص از زمان و نه زمان بین خرابی است. در این مدل به طور معمول میزان شکست، به تعدادی از شکست در هر ساعت تعریف شده است. برای این پارامتر یک تابع توزیع احتمال (PDF) استفاده می شود. با کاهش تعداد حفره امنیتی، قابلیت اطمینان افزایش می یابد.

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

اطلاعات خطا در هسته لینوکس نسخه 2.6 از سال 2004 تا دسامبر 2010 را جمع آوری کرده اند. بسته به روند جمع آوری اطلاعات مدل مناسب ساخته شده است و قابلیت اطمینان با استفاده از این مدل برآورد شده است.

[1] 2011/1Sanjeev Kumar Jha, 2Dr. A.K.D.Dwivedi, 3Dr. Amod Tiwari/Reliability Estimation and Analysis of Linux Kernel

 

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

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

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

خطاهای هفتگانه

۱- انتخاب اسم رمز ساده و یا اسامی رمز پیش فرض

۲- باز گذاشتن درگاه‌های(port) شبکه

۳- استفاده از نرم‌افزارهای قدیمی

۴- استفاده از برنامه‌های نا‌امن و یا پیکربندی شده به‌صورت نادرست

۵- ناکافی بودن منابع و یا نامناسب بودن ارجحیت‌ها

۶- نگهداری UserIDهای قدیمی و غیرلازم و تهیه شناسه‌های عمومی

۷ – به تعویق انداختن فعالیت‌های مهم در زمینه ایجاد امنیت

 

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

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

پارامترهای عینی متعددی برای درجه بندی امنیت وجود دارد که می توان از آن طریق باگ های برطرف شده یک مجموعه نرم افزاری خاص را محاسبه کرد. هنگامی که ویندوز و لینوکس با هم مقایسه می شوند، نقطه ضعف های امنیتی دیگری ظاهر می شوند که در این مقایسه دخیل هستند. اخیرا موسسه CERT گزارشی از اسیب پذیری های استاندارد این دو سیستم عامل را منتشر نمود که طی آن 250 حفره امنیتی حساس برای ویندوز گزارش شده کخ 39 حوزه آن در لیست خطرناک ترین نقاط ضعف امنیتی قرار دارند و برای لینوکس ردهت نیز 46 حفره امنیتی گزارش شده است که سه حفره آن در لیست آسیب پذیری های امنیتی بسیار خطرناک قرار دارند. هزاران گزارش از مقایسه امنیتی میان لینوکس و ویندوز وجود دارد. اما مبنای این تحقیق CERT گزارش هایی بوده که توسط کاربران موسسات دولتی ارائه شده اند و در ان حفره های امنیتی خطرناک مشابهی گزارش شده است. رلایل قانع کننده ای برای ان تفاوت امنیتی میان دو سیستم عامل وجود دارد. به عنوان مثال مدل توسعه اپن سورس برنامه های لینوکس، امکان گزارش . شناسایی باگ های را در فاصله زمانی زودتری امکان پذیر می کند. این مزیتی است که در ویندوز از آن بی بهره است. دیگر پارامترها نامطلوب برای ویندوز، اعتماد بسیاری از کرنل برنامه های کاربردی ویندوز به (RPC )Remote Procedure ،متد توسعه جامعه کامپیوترهای خانواده اینتل،است. نتیجه این رویه،ضعف قوانین دیواره های آتش در مقایسه با سیستم عامل هایی مانند لینوکس است که در سطح بسیار کمتری از RPC استفاده می کنند. میان این دو سیستم عامل، تفاوت های امنیتی دیگر نیز وجود دارد که برای کاربران پایانه ای این سیستم عامل ها بروز خواهد کرد و در حوزه آسیب پذیری های مدیریتی سیستم گنجانده نمی شوند . برای مثال ویندوزها قطعا زمینه مساعدتری برای شیوع ویروس ها در سمت کاربران پایانه ای داراست که ایمنی سیستم به خود کاربر و استفاده از آنتی ویروس ها واگذار شده است. اخیرا ویندوز شاهد ربودن اطلاعات سیستم ها توسط ابزارهایی به نام Spyware یا جاسوس افزار بود که می توانند به صورت محرمانه و پنهانی اطلاعات شخصی شما را در سطح اینترنت پخش کنند که در وبگردی، از روی خطا یا اختیار آن ها را بر روی سیستم فعال می کنید. مایکروسافت جدیدا برای مقابله با این پدیده یک شرکت ضد ویروس و ضد جاسوس افزار را خریداری کرده است. امکان دارد که بتوان توسط مدیر سیستم یا کاربران ارشد، ویندوز لینوکس را به درستی مدیریت کرد. اما بسیاری از برنامه های کاربردی دیگر ویندوز با این سیستم یکپارچه نیستند و نیاز است توسط کاربران، با مجوزدهی صحیح مدیر سیستم، اجرا شوند. اما برنامه های کاربردی لینوکس غالبا نیازمندی های امنیتی را رعایت کرده و در نتیجه کمتر می توانند مورد سوء استفاده قرار گیرند. ویندوز تنها از طرف توسعه دهنده خود دچار مشکل است که دوست دارد یک سیستم ساده را خلق کند که برای استفاده کننده بسیار آسان باشد. اما این سایت با هزینه بسیار زیادی از ناحیه امنیت سیستم همراه است. این امتیاز حتی موجب سست شدن امنیت سیستم نسبت به نسخه های قدیمی تر می شود، ضعفی که لینوکس هنوز با آن مواجه نشده است. لینوکس نیز دارای ضعف های امنیتی است. [2]

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

[1] ماهنامه رایانه و فناوری    شماره 17 ، ص36 گردآورنده : دکتر سید محمد حسین احمدی محقق و استاد دانشگاه تهران 1386

Windows Operating Systems, Lecturer/ Hadeel Tariq Al-Rayes  & Studying Main Differences Between Linux [2]

 

 

دانلود فایل کامل پروژه

 

بالا

با اشتراک گذاری در گوگل پلاس تخفیف بگیرید