با حضور ابزاری به نام کامپیوتر در چندین دههی گذشته دنیای امروز با انفجار حجم عظیمی از اطلاعات مواجه شده است، ازین رو امنیت این اطلاعات نیز غیر قابل انکار است، اطلاعات میتواند شامل هرچیزی باشد، تمام مواردی که یک شخص حقیقی و یا یک سازمان با آن در ارتباط است، امنیت یعنی با استفاده از یک سری فرآیندها از دسترسی غیر مجاز به اطلاعات و یا محصولات، و اعمال تغییرات یا حذف کردن آنها جلوگیری کنیم.
امنیت دارای سه بخش اصلی میباشد :
۱- رعایت اصول محرمانگی ۲- صحت و یکپارچگی اطلاعات ۳- قابلیت دسترسی صحیح
ازین رو شرکتهای سازنده سیستمعاملها سطح مطلوب امنیت مورد نظر کاربران را با سناریوهای خاص خود و یا مشترک به کاربران عرضه نمودهاند که در این مقاله به بررسی دو مورد خاص و متفاوت خواهیم پرداخت
امنیت پیشفرض سیستمعامل ویندوز و سیستمعامل لینوکس
مثلث امنیت
این مثلث دارای سه رکن اصلی زیر میباشد :
رعایت اصول محرمانگی - Confidentiality :
به این معنی که اطلاعات فقط برای اشخاص مجاز قابل دسترس باشد.
صحت و یکپارچگی اطلاعات - Integrity :
یکپارچه بودن یعنی جلوگیری از تغییر دادهها بطور غیرمجاز و تشخیص تغییر در صورت دستکاری غیر مجاز آنها.
قابلیت دسترسی صحیح – Availability :
اطلاعات باید زمانی که مورد نیاز توسط افراد مجاز هستند در دسترس باشند، این مورد شامل موارد مختلفی میباشد :
۱-Identification-تشخیص هویت ۲-Authentication-احراز هویت ۳-Authorization-سطح دسترسی
به تصویر زیر توجه بفرمائید
مثلث هکرها
این مثلث دقیقأ در نقطهی مقابل با مثلث امنیت قرار دارد و هدف آن رسیدن به سه مورد زیر میباشد :
افشاگری - Disclosure :
در نقطهی مقابل با محرمانگی ِ اطلاعات قرار دارد و در واقع به فاش شدن اطلاعات میانجامد.
تخریب - Destruction :
در نقطهی مقابل با یکپارچگی قرار گرفته و عملأ عدم ِ صحت و سلامت اطلاعات را شامل میشود.
انکار Denial :
در نقطهی مقابل با در دسترس بودن قرار میگیرد و سعی در نفی یا نقض این امکان ( دسترس صحیح ) را دارد.
به تصویر زیر توجه بفرمائید
مفهوم کلی امنیت سیستمعامل
با توجه به موارد مذکور در بخشهای قبلی، سیستمعاملها در تلاشند علاوه بر ارائهی بستری برای انجام عملیات کاربر، امنیت مربوطه را نیز فراهم کنند، به این معنی که سعی در حفظ سه اصل مذکور در مثلث امنیت را داردند، هرکدام از این دو سیستمعامل سناریوهای خاص و متدولوژیهای خاص خود و در برخی موارد متدولوژیهای مشترک از شرکتهای دیگر را استفاده میکنند.
در حالت کلی مدیریت سطح دسترسیها در مقولهای تحت عنوان ACL مدیریت میشود
در بخش امنیت یا سطوح دسترسی به فایلها، سه نوع دسترسی خواندن-نوشتن-اجراء یا Run کردن وجود دارد.
در بخش امنیت یا سطح دسترسی به پروسهها یا Taskهای در حال اجراء نیز دو حالت دسترسی برای اجرا یا متوقف کردن و حالت دوم عدم دسترسی برای اجراء یا متوقف کردن پروسهها وجود دارد، همچنین مقولهی تحت عنوان FG یا BG وجود دارد که نوع اجرای یک پروسه را تعیین میکند، به این معنی که پروسه در پیشزمینه Foreground اجرا شود یا در پسزمینه Background
امنیت سیستمعامل ویندوز از بُعد Local Access
تا اواخر سال ۲۰۰۶ میلادی که ویندوز ویستا هنوز ارائه نشده بود، سطوح دسترسی پیشفرض در ویندوز فقط با ACL مدیریت میشده است، در اواخر ماه اول سال ۲۰۰۷ که ویندوز ویستا معرفی شد مفهومی تحت عنوان UAC در ویندوز اضافه شده بود که تا به امروز نیز به قوهی خود باقی است، که مخفف کنترل حسابهای کاربری میباشد.
UAC برای بررسی ACL مربوط به Proccessهای سیستمعامل ویندوز طراحی و معرفی شده است و مکانیزم کلی آن بر این اساس است که تمام کاربران با سطح دسترسی استاندارد یا محدود شده، فعالیتهای خود را انجام دهند تا در مواقع ضروری از حساب Administrator استفاده شود، UAC دارای چهار حالت متفاوت میباشد که سطح حساسیت اجرای فایلهای اجرائی را بررسی میکند.
در رابطه با سطح دسترسی فایلها در ویندوز دو مورد اصلی Read و Write تعریف شده است که در مورد Execute با توجه به ماهیت و فرمت فایل میتوان این دسترسی را به یک فایل اعمال کرد
به تصویر زیر توجه بفرمائید
مباحث امنیت سیستمعامل ویندوز از بُعد External Access
در مورد دسترسی خارج از خود سیستم ( از طریق شبکه (داخلی یا خارجی) و پروتکلهای متفاوت شبکه )، میحثی تحت عنوان دیوار آتش نرمافزاری یا همان Firewall نرمافزاری ،به صورت پیشفرض در ویندوز وجود دارد که وظیفهی بررسی ارتباطات شبکهای سیستمعامل ویندوز و Packetهای تبادل شده را بر عهده دارد.
پس از بررسیهای انجام شده در رابطه با دسترسیها توسط فایروال، میرسیم به بررسی Local Access که در بخش قبل توضیح داده شد.
به تصویر زیر در مورد FireWall توجه بفرمائید
مباحث کلی امنیت سیستمعامل لینوکس Local Access
لینوکس به خودی ِ خود یک سیستمعامل نیست، بلکه فقط یک Kernel یا هسته میباشد که با کنار هم قرار گرفتن برخی ابزارها و برنامهها تبدیل به یک سیستمعامل میشود، تمام فعالیتهای سیستمعامل مانند مدیریت منابع سختافزاری و ارتباط بین سختافزار و نرمافزار سیستمعامل توسط همین هسته مدیریت میشوند، لینوکس مکانیزم متفاوتی در ارتباط با سطح دسترسی دارد، لینوکس با فرمت فایل کاری ندارد، همچنین تمام اجزای موجود از جمله فایلها و ابزارهای متصل شده به سیستم را به عنوان فایل میشناسد، ازین رو برای تعریف دسترسیها از سه حالت خواندن-نوشتن و اجراء استفاده میکند که این سه مورد با DAC مدیریت میشود و شامل دو بخش Class و Permission میباشد، کلاسها برای مدیریت کاربران و پرمیژنها نوع و سطح دسترسی کاربران را نشان میدهد.
Discretionary Access Control به معنی کنترل دسترسی احتیاطی میباشد، همانطور که گفته شد مکانیزم آن با کلاسها و دسترسیها پیاده شده است، کلاسها شامل سه نوع متفاوت مالک-گروه وغیره(غیر از این دو) را شامل میشوند و دسترسیها میتواند سه حالت خواندن-نوشتن و اجراء شدن را شامل شوند، به این صورت که هر کلاس میتواند بصورت جداگانه دسترسی متفاوتی داشته باشند و با عدد سه رقمی تعیین میشوند که یکان آن مربوط به کاربران نامرتبط- دهگان آن مربوط به گروه و صدگان آن مربوط به مالک میباشد که میتواند از یک تاهفت را شامل باشد، فرمت کلی آن به صورت زیر است :
rwx-rwx-rwx به معنی read/write/execute میباشد، بعنوان مثال فرمت عدد ۷۵۵ به صورت زیر میباشد :
rwx r-x r-x ،یعنی مالک دسترسی کامل دارد ولی دو کلاس بعدی دسترسی نوشتن ندارند
5 |
5 |
7 |
world |
group |
owner |
r+x |
r+x |
r+w+x |
4+0+1 |
4+0+1 |
4+2+1 |
به تصویر زیر توجه فرمائید
مباحث کلی امنیت سیستمعامل لینوکس External Access
در مورد دسترسی خارج از خود سیستم ( از طریق شبکه( داخلی یا خارجی ) و پروتکلهای متفاوت شبکه )، ماژول netfilter در کرنلینوکس وجود دارد که یکی از آنها دیوار آتش یا همان Firewall است که تحت عنوان iptables وظیفهی بررسی ارتباطات شبکهای سیستمعامل لینوکس و Packetهای تبادل شده را بر عهده دارد.
iptable دارای جداولی برای نگهداری از تنظیمات امنیتی شبکه را در خود دارد که هر کدام ازین جداول دارای chainهای خاص با رولهای تعریف شده میباشند که درواقع مشخصات رولهای امنیتی شبکه درون آنها نوشته/تعریف میشود.
پس از بررسیهای انجام شده توسط فایروال یا همانiptables، میرسیم به بررسی Local Access که در بخش قبل توضیح داده شد.
به تصویر زیر در مورد iptables توجه فرمائید
ویندوز یا لینوکس.؟
نهایتأ میرسیم به جمع بندی و انتخاب میان ویندوز و یا لینوکس.؟
در این مورد که آیا ویندوز امنتر است یا لینوکس، بهتر است قضاوت را بر عهدهی خود خواننده بگذاریم، ولی فراموش نکنیم که ویندوز توسط شرکت عظیمی مثل مایکروسافت پشتیبانی میشود و لینوکس توسط برنامهنویسان متفاوت در سطح دنیا و با دانشهای متفاوت پشتیبانی و به روزرسانی میشود، در این میان شرکتهای عظیم دیگری نیز وجود دارند که نسخههای تجاری لینوکس را با توجه به نیاز خود یا جوامع تجاری طراحی و پیاده سازی نمودهاند.