جلسه ششم حفاظت در سیستم عامل Chapter 4, Security in computing; 4th edition, By Charles P.Pfleeger et al. ارائه دهنده: حسین محمدحسن زاده 3 اردیبهشت 1392 H.M.Hassanzade, Hassanzade@Gmail.com
مقدمه در سال های نخستین استفاده از کامپیوتر سیستم عامل وجود نداشت کاربران برنامه های خود را به صورت کدهای باینری و به کمک سوییچ، در سیستم وارد می کردند ورود کدهای باینری در ابتدا با جابجایی فیزیکی سوییچ ها و سپس با کیبورد صورت می گرفت هر سیستم در هر زمان تنها به یک کاربر سرویس می داد کاربران برای استفاده از یک کامپیوتر، آن را در طول زمان به اشتراک می گذاشتند (اشتراک زمانی). H.M.Hassanzade, Hassanzade@Gmail.com
مقدمه (ادامه) اولین سیستم های عامل بسیار ساده بودند به کمک برنامه نویسان آمدند امکان انتقال از یک کاربر به یک کاربر دیگر را فراهم آوردند آسانی دسترسی به کامپایلر و اسمبلر را فراهم آوردند فراخوانی اتوماتیک توابع از کتابخانه را فراهم آوردند سیستم های عامل جدید اجرای هم زمان چندین برنامه توسط چندین کاربر را فراهم آورده اند (Multiprogramming) پس حفاظت از داده ها و برنامه های یک کاربر در مقابل کاربر دیگر، به امری حیاتی تبدیل شد H.M.Hassanzade, Hassanzade@Gmail.com
روش های حفاظتی در سیستم عامل اصل حفاظت در سیستم عامل به کمک جداسازی (Separation) صورت می گیرد موارد متعلق به یک کاربر را از دسترس کاربر دیگر دور نگه دار! جداسازی در سیستم عامل به کمک روشهای مختلف صورت می پذیرد: جداسازی فیزیکی (Physical) فرآیندهای مختلف از اقلام فیزیکی جدا مانند پرینتر استفاده می کنند جداسازی زمانی (Temporal) فرآیندهایی که نیاز به الزامات امنیتی دارند، در بازه های زمانی متفاوت اجرا می شوند جداسازی منطقی (Logical) کاربر با این تصور کار می کند که انگار هیچ فرآیند دیگری وجود ندارد پنهان سازی (Cryptographic) فرآیندها، داده ها و محاسبات خود را به گونه ای پنهان می کنند که برای فرآیندهای دیگر قابل فهم و لمس نباشد H.M.Hassanzade, Hassanzade@Gmail.com
اشتراک به همراه جداسازی در سیستم عامل، افزون بر جداسازی کاربران، نیاز است که اقلامی را نیز به اشتراک بگذارند. کاربران بایستی قادر باشند، از الگوریتم ها و توابع یکدیگر، بدون نقض امنیت طرف مقابل استفاده کنند سیستم عامل می تواند اشتراک و جداسازی را در سطوح مختلف ارائه دهد: عدم محافظت وقتی فرآیندها در بازه های زمانی متفاوت اجرا شوند، نیاز به حفاظت ندارند ایزوله سازی فرآیندها از اجرای یکدیگر خبر ندارند اشتراک همه یا اشتراک هیچی بدین طریق صاحب شئ (object) عمومی یا خصوصی بودن آن را تعیین می کند اشتراک از طریق دسترسی محدود سیستم عامل دسترس پذیری شئ را برای کاربران مختلف کنترل می کند اشتراک به کمک قابلیت (Capability) نوعی از اشتراک محدود، که سطح اشتراک به صاحب شئ، نوع شئ و یا محاسبات آن بستگی دارد محدودیت در استفاده از شئ افزون بر محدودیت در دسترسی به شئ یا فایل، نحوه استفاده از آن نیز کنترل می شود H.M.Hassanzade, Hassanzade@Gmail.com
حفاظت در سیستم عامل به دو بخش کلی تقسیم می شود: حفاظت از حافظه و آدرس حفاظت از برنامه ها و داده ها در مقابل یکدیگر در حافظه کنترل دسترسی به شئ حفاظت از فایل ها در مقابل دسترسی کاربران H.M.Hassanzade, Hassanzade@Gmail.com
حفاظت از حافظه و آدرس حصار: محدودسازی برنامه های کاربر به یک طرف محدوده 1. پیاده سازی سخت گیرانه تعیین آدرسی از حافظه که غیر قابل تغییر است و سیستم عامل در یک سمت، و برنامه های کاربر در سمت دیگر قرار می گیرند 2. حصار با قابلیت تغییر آدرس تعیین کننده حصار قابل تغییر و در یک ثبات ذخیره می شود H.M.Hassanzade, Hassanzade@Gmail.com
حفاظت از حافظه و آدرس (ادامه) 3. حصار با قابلیت تغییر و پشتیبانی چند کاربر ثبات پایه (Base) آدرس حصار میان حافظه سیستم عامل و حافظه کاربران را مشخص می کند ثبات های مرزی (Bound) بخش بندی حافظه تخصیصی به کاربران را مشخص می کنند روش های پیچیده تر حفاظت آدرس و حافظه: بخش بندی صفحه بندی روش های ترکیبی و غیره H.M.Hassanzade, Hassanzade@Gmail.com
کنترل دسترسی به شئ (Object) اصل حداقل امتیاز (least privilege) یک کاربر تنها به تعداد اقلامی دسترسی داشته باشد که برای انجام کار / فرآیند مورد نظرش بدان نیاز دارد نمادها شئ (فایل) -> Object کاربر، استفاده کننده از شئ -> Subject صاحب فایل -> Owner حقوق دسترسی -> Access Rights خواندن -> (r) Read نوشتن -> Write (w) اجرا -> Execute (x) مالکیت -> Owner (o) H.M.Hassanzade, Hassanzade@Gmail.com
پیاده سازی کنترل دسترسی به شئ (Object) 1. دایرکتوری (Directory) ساده ترین راه برای حفاظت و کنترل دسترسی هر فایل، یک صاحب (Owner) دارد که کنترل حقوق دسترسی فایل (خواندن، نوشتن) را در اختیار دارد، و می تواند آن حقوق را به هر کس بدهد یا پس بگیرد هر کاربر یک دایرکتوری فایل دارد که فایل هایی که به آن ها دسترسی دارد در آن دایرکتوری لیست شده است معایب بزرگ شدن لیست در صورت وجود تعداد زیاد فایل مزایا پیاده سازی آسان: درج رکورد در لیست برای اعطای دسترسی و حذف رکورد از لیست برای بازپس گیری دسترسی H.M.Hassanzade, Hassanzade@Gmail.com
پیاده سازی کنترل دسترسی به شئ (Object) 2. لیست کنترل دسترسی (Access Control List) هر فایل یک لیست متناظر دارد لیست، تمامی کاربرانی را که به فایل مورد نظر دسترسی دارند را به همراه نوع دسترسی شامل می شود معایب بزرگ شدن لیست در صورت وجود تعداد زیاد کاربران مزایا پیاده سازی با راحتی متوسط: درج رکورد در لیست برای اعطای دسترسی و حذف رکورد از لیست برای بازپس گیری دسترسی H.M.Hassanzade, Hassanzade@Gmail.com
پیاده سازی کنترل دسترسی به شئ (Object) 3. ماتریس کنترل دسترسی (Access Control Matrix) یک جدول که هر سطر، یک کاربر (Subject) و هر ستون یک فایل (Object) را نمایندگی می کند خانه های جدول، حقوق دسترسی کاربر به فایل متناظر را نشان می دهند مزایا راحتی در درج و حذف حقوق دسترسی راحتی افزودن و حذف Subject یا Object جدید معایب ممکن است بسیاری از خانه ها خالی باشند H.M.Hassanzade, Hassanzade@Gmail.com
پایان H.M.Hassanzade, Hassanzade@Gmail.com