امنیت اطلاعات یکی از مهمترین مفاهیم ،از آغاز زندگی بشر تاکنون بوده است.
انسانهای ادوار گذشته از اهمیت این موضوع مطلع بودند و بسیاری از شکستهای انسانهای گذشته در جنگها فاش شدن اطلاعات مهم و سری بوده است.
در ضمن آنها اطلاعات حساس را به رمز تبدیل کرده و برای رد و بدل کردن این اطلاعات از زبان رمزی استفاده میکردند.
با پیشرفت علم و جوامع بشری اهمیت این موضوع بیش از پیش آشکار شده و فاش شدن اطلاعات نظامی و یا سیاسی ممکن است منجر به نابودی یک جامعه بیانجامد.
سرقتهای میلیاردی که گاها از بانکها میشود مثالی دیگر از اهمیت این موضوع است.
برای امن کردن جامعه مدرن باید از امکانات مدرن نیز استفاده شود زیرا سارقان اطلاعات از امکانات پیشرفته برای دستیابی به اطلاعات استفاده میکنند.
در این پایان نامه به بررسی امنیت در محیط پایگاه داده میپردازیم.
این محیط بر مشکلاتی نظیر افزونگی داده و ناسازگاری داده که در سیستم فایل مشکل ساز بوده ، فائق آمده و با به اشتراک گذاشتن دادهها ، امکان استفاده بیشتر از اطلاعات را مهیْا ساخته است.
در این محیط امکان مدیریت تعداد زیادی کاربر تعبیه شده است.
کاربر زیاد مساوی است با درد سر زیاد !
ممکن است کاربری عمدی یا غیر عمدی به داده های محرمانه دست یابد و سیستم را مختل سازد.
برای تامین امنیت در چنین محیطهایی که همواره با پیچیدگیهای زیادی نیز برخوردار است لازم است در ابتدا موضوع امنیت را بصورت کلاسیک بررسی کنیم.
آشنایی با مفاهیمی همچون تهدید ، صحت داده و انتشار داده ، ما را در شناخت مدلهای امنیت یاری میکند.
تامین امنیت در پایگاه داده با شناسایی تهدید آغاز میشود.
از دیگر واژههای مهم در این موضوع کنترل دسترسی است.
هدف کنترل دسترسی محدود کردن فعالیتهایی است که کاربر مجاز میتواند بر روی سیستمهای کامپیوتری انجام دهد.
کنترل دسترسی شامل سیاستهای مختلفی است.
سیاستهای تشخیص ، اجباری و مبتنی بر نقش از آن جمله هستند.
این سیاستها هر یک با اعمال محدودیتی خاص دسترسی کاربر را محدودتر میکنند و در تناقض با یکدیگر نیستند ،به عبارت دیگر جهت حرکت همه آنها یکی است.
امنیت کلاسیک را در فصل 2 بررسی می کنیم.
سپس به بررسی امنیت در نرم افزار SQLServer2005 میپردازیم.
رنگ امنیت کلاسیک در تمامی مولفههای امنیتی SQLServer2005 به چشم میخورد.
در این فصل با مفاهیمی همچون مدل هویت شناسی و تفویض اختیار در SQLServer2005 آشنا می شویم.
انواع کنترل دسترسی ، انواع نقش ها ، شما و بسیاری دیگر از واژهها و مفاهیم را در فصل 3 بررسی میکنیم.
رمز نگاری که در نسخه SQLServer2000 نبوده به SQLServer2005 اضافه شده و این نرم افزار را از لحاظ امنیت بسیار پرقدرت ساخته است.
در واقع در فصل 3 مدل امنیتی SQLServer2005 به طور کامل بررسی شده است.
در فصل 4 یک محیط عملی طراحی و پیاده سازی شده است.
در فصل 5 بامشکلاتی که در حین پیاده سازی چنین سیستمی با آن مواجه هستیم را بررسی میکنیم.
اهمیت این پایان نامه از این جهت است که تعداد بسیار کمی از افراد متخصص این موضوع را در SQLServer2005 بررسی کرده و آن را بصورت عملی پیاده سازی کردهاند.
بسیاری از سیستمهای طراحی شده از لحاظ امنیتی ناکارامد هستند و مکانیزمهای امنیتی به کار رفته در این سیستمها دارای نواقص و کمبودهای بسیاری است.
امنیت کلاسیک
در محیط پایگاهداده ، برنامهها و کاربران مختلف سازمان به یک مجموعه اطلاعات واحد و یکپارچه در DBMS دسترسی دارند.
مشکلاتی نظیر ناسازگاری و افزونگی دادهها که در سیستمهای گذشته نمایان بودند از بین رفته و در عوض مسأله تامین امنیت در پایگاهداده اهمیت بسیاری پیدا کرده است.
تامین امنیت در محیط پایگاه داده یعنی شناسایی تهدیدهایی که امنیت آن را به خطر میاندازند و همچنین انتخاب سیاستها و مکانیسمهای مناسب برای مقابله با آن.
یکی از راههای مبارزه با تهدیدها ، کنترل دسترسی است.
هدف کنترل دسترسی ، محدود کردن اعمال و فعالیتهایی است که کاربر مجاز ، میتواند بر روی سیستم کامپیوتری انجام دهد.
کنترل دسترسی ، آنچه را که کاربر و یا برنامه تحت کنترل او میتواند انجام دهد را کنترل میکند.
در این راستا ، کنترل دسترسی ، مانع از انجام فعالیتهایی میشود که امنیت سیستم را تهدید میکنند.
در این فصل پس از بیان چند مفهوم پایه در رابطه با امنیت پایگاهداده ، به بررسی کنترل دسترسی و رابطه آن با سایر سرویسهای امنیتی از جمله سرویس هویت شناسی ، سرویس حسابرسی و سرویس مدیریت میپردازیم.
سپس ماتریس دسترسی و چگونگی پیادهسازی آن در محیطهای کاربردی را بررسی میکنیم.
در پایان به مطالعه سیاستهای کنترل دسترسی و مختصری درباره چگونگی مدیریت آنها میپردازد.
2-2 امنیت پایگاه داده
امنیت اطلاعات در پایگاهداده دارای سه بخش اصلی است :
محرمانگی : تضمین محرمانگی اطلاعات شامل جلوگیری از فاش شدن غیر مجاز اطلاعات و شناسایی و تحذیر عوامل آن میباشد.
صحت : تضمین صحت اطلاعات شامل جلوگیری از تغییر غیر مجاز اطلاعات و شناسایی وتحذیر عوامل آن میباشد.
دسترس پذیری : تضمین در دسترس پذیری اطلاعات شامل جلوگیری از رد غیر مجاز دسترسی به سرویسهای ارائه شده توسط سیستم و شناسایی و تحذیر عوامل آن میباشد.
2-3 تهدید امنیت در پایگاه داده
در اینجا لازم است تا تعریف مناسبی از تهدید در پایگاهداده ارائه شود.
تهدید به معنی تجاوز تصادفی ، یا عمدی و برنامهریزی شده به پایگاهداده ، به منظور فاشسازی و یا تغییر اطلاعات مدیریت شده توسط سیستم میباشد.
تجاوز به پایگاهداده و تهدید امنیت آن شامل خواندن ، تغییر و حذف غیر مجاز و نادرست اطلاعات میباشد.
عوامل ایجاد کننده تجاوز در پایگاهداده تهدید نامیده میشوند.
نتایج تجاوز به پایگاهداده مختصرا در ذیل آورده شده است :
انتشار نامناسب اطلاعات : خواندن عمدی و یا غیر عمدی اطلاعات توسط کاربر غیر مجاز که موجب انتشار غیر مجاز اطلاعات میشود.
تغییر نامناسب داده : تغییر نامناسب داده شامل تمام تجاوزهایی میشود که صحت داده را به خطر میاندازند.
عدم پذیرش سرویسها : عدم پذیرش سرویسها شامل تمام اعمالی است که مانع دسترسی کاربر به دادهها و یا استفاده از منابع میشود.
2-4 کنترل امنیت پایگاه داده
امنیت پایگاهداده از طریق کنترل انتشار ، کنترل استنباط و کنترل دسترسی اعمال میشود که به بررسی آنها میپردازیم :
2-4-1 کنترل انتشار
کنترل انتشار ، انتقال اطلاعات میان منابع را کنترل میکند.
یک انتشار میان منابع X و Y هنگامیرخ میدهد که اطلاعاتی از X خوانده شده و در Y نوشته شود.
کنترل انتشار ، از انتقال دادههای موجود در منابع سطح بالا به منابع سطح پایین جلوگیری میکند.
2-4-2 کنترل استنباط
منظور از استنباط یعنی دستیابی به اطلاعات محرمانه از روی دادههای غیر محرمانه است.
مسأله استنباط از دادهها بیشتر در پایگاهدادههای آماری اتفاق میافتد.
در این نوع پایگاهدادهها کاربر باید از بازگشت به عقب و نتیجهگیری از روی دادههای آماری بر حذر داشته شود.
به عنوان مثال فرض کنید کاربری طی یک پرس و جو متوسط حقوق کارمندان زن را در سازمان رویت کند.
سپس این کاربر، تعداد کارمندان زن را در سازمان مورد پرس و جو قرار میدهد.
اگر نتیجه بدست آمده از آخرین پرس و جو عدد یک باشد ، این کاربر قادر خواهد بود حقوق این کارمند زن را استنباط کند.
2-4-3 کنترل دسترسی
مسئولیت کنترل دسترسی در قبال دادههای موجود در سیستم این است که تمام دسترسیهای مستقیم به منابع سیستم منحصرا بر اساس مدها و قانونهای تعیین شده توسط سیاستهای امنیتی انجام پذیرد.
در یک سیستم کنترل دسترسی(شکل 2-1) ، درخواستکننده (کاربر ، فرایند) به منابع (داده ، برنامه) از طریق اعمالی نظیر خواندن ، نوشتن و یا اجرا دسترسی پیدا میکند.
مسئولیت کنترل دسترسی در قبال دادههای موجود در سیستم این است که تمام دسترسیهای مستقیم به منابع سیستم منحصرا بر اساس مدها و قانونهای تعیین شده توسط سیاستهای امنیتی انجام پذیرد.
در یک سیستم کنترل دسترسی(شکل 2-1) ، درخواستکننده (کاربر ، فرایند) به منابع (داده ، برنامه) از طریق اعمالی نظیر خواندن ، نوشتن و یا اجرا دسترسی پیدا میکند.
شکل 2-1 : سیستم کنترل دسترسی از لحاظ عملکرد این سیستم از دو قسمت تشکیل شده است : مجموعه ای از سیاستها و قانونها : اطلاعات ذخیره شده در سیستم بیانگر مد دسترسی میباشد که کاربر به هنگام دسترسی به منابع ملزم به پیروی از آنها است.
مجموعه ای از رویههای کنترلی (مکانیسمهای امنیت): این رویهها درخواست دسترسی را بر اساس قوانین یاد شده بررسی میکنند.
درخواستها ممکن است مورد پذیرش ، رد و یا تغییر قرار گیرند و دادههای غیر مجاز سانسور شوند.
سیاستهای امنیتی: سیاستهای امنیتی سیستم ، راهبردهایی هستند که با طراحی امنیت سیستم و مدیریت اختیارهای افراد در سیستم ، مرتبط هستند.
این سیاستها بیانگر اصولی هستند که بر اساس آنها دسترسی ، اعطا و یا رد میشوند.
قوانین دسترسی بیانگر سیاستهای امنیتی هستند و رفتار سیستم را در زمان اجرا مشخص میکنند.
سوالی که در اینجا مطرح است این است که چه مقدار از اطلاعات باید در دسترس هر درخواستکننده باشد؟
برای پاسخ به این سوال به بررسی محدودیتهای دسترسی و دو سیاست پایه میپردازیم: سیاست کمترین اختیار : بر اساس این سیاست به درخواستکنندهگان سیستم کمترین مقدار اطلاعاتی را که برای انجام فعالیتهای آنها مورد نیاز است ، در اختیار آنها میگذارند.
در این سیاست فرض بر این است که امکان تعریف این حد پایین وجود دارد(در اکثر مواقع این کار با دشواریهای بسیاری همراه است).
ایراد این سیاست این است که ممکن است منجر به محدودیتهای بزرگ برای بعضی از درخواستکنندهگان شده و مانع فعالیت آنها شود.
سیاست بیشترین اختیار : این سیاست برای محیطهایی مانند دانشگاهها و مراکز تحقیقاتی که محافظت از دادهها اهمیت چندانی ندارد مناسب است.
در این محیطها کاربران قابل اعتماد هستند و در ضمن دادهها باید بین افراد رد و بدل شوند.
پس غالبا افراد به بیشتر دادههای مورد نیاز خود دسترسی دارند.
از نظر کنترل دسترسی سیستمها به دو دسته تقسیم میشوند : سیستمهای باز و سیستمهای بسته.
در یک سیستم بسته فقط دسترسیهایی معتبر هستند که صریحا به درخواستکننده اعطا شده باشند.
در یک سیستم باز دسترسیهایی معتبر هستند که صریحا ممنوع شناخته نشده باشند.
بر اساس سیاستهای یک سیستم بسته برای هر درخواستکننده باید قانونهای دسترسی که بیانگر سطح دسترسی درخواستکننده به منابع سیستم است ، وجود داشته باشند.
این سطوح دسترسی معیّن شده برای هر درخواستکننده تنها حقوقی هستند که در اختیار وی قرار دارند.
بر اساس سیاستهای یک سیستم باز برای هر درخواستکننده باید قانونهای دسترسی وجود داشته باشند که بیانگر دسترسی غیر مجاز برای درخواستکننده هستند.
این دسترسیهای غیر مجاز تنها حقوقی هستند که از وی سلب شدهاست.
سیستمهای باز و بسته در انحصار متقابل با یکدیگر هستند.
تصمیم گیری برای انتخاب یک استراتژی امنیتی ، بر اساس نیازهای پایگاهداده ، کاربران ، برنامهها و سازمان گرفته میشود.
یک سیستم بسته سیاست کمترین اختیار و سیستم باز سیاست بیشترین اختیار را اعمال میکند.
حفاظت در سیستم بسته ، قوی تر است زیرا اشتباه در تعریف قوانین دسترسی ممکن است مانع از یک دسترسی مجاز شود ولی باعث خرابی نمیشود در صورتی که در یک سیستم باز چنین اشتباهی ممکن است منجر به دسترسی غیر مجاز و نتیجتا خرابی شود.
همانطور که گفته شد انتخاب یکی از این دو سیستم به شرایط بستگی دارد.
در محیطهایی که اعطای دسترسی بیشتر از ممنوعیت دسترسی است ، مدیریت سیستمهای بسته دشوار است و بهتر است از سیستم باز استفاده شود.
در شکلهای 1-2 و 1-3 کنترل دسترسی در سیستمهای باز و بسته نشان داده شده اند.
شکل 2-2 : کنترل دسترسی در سیستم بسته اعطا و بازپس گیری اختیارات تنها به عهده یک مدیر نیست.
بعضی مواقع مدیریت تفویض اختیار باید بصورت غیر متمرکز و توسط افراد مختلفی انجام شود.
در سیستمهای توزیع شده که از چندین سیستم محلی تشکیل شدهاند مدیریت باید بصورت غیر متمرکز اعمال شود.
شکل 2-3 : کنترل دسترسی در سیستم باز 2-4-3-1 ارتباط کنترل دسترسی با سایر سرویسهای امنیتی کنترل دسترسی به سایر سرویسهای امنیت متکی است و با آنها نوعی همزیستی دارد.
وظیفه کنترل دسترسی محدود کردن فعالیتهای کاربر مجاز میباشد و بوسیله ناظر مرجع شروع به کار میکند.
ناظر مرجع بصورت یک واسط در بین سیستم و کاربر قرار میگیرد و هر تلاش برای دسترسی کاربر و یا برنامه تحت فرمان او به منابع سیستم ، باید از سد ناظر منابع عبور کند.
این ناظر برای تشخیص اینکه آیا کاربر مورد نظر مجاز به انجام فعالیتی میباشد یا خیر ، با یک پایگاه داده تفویض اختیار مشاوره میکند.
این پایگاه دادهها ، بوسیله یک مدیر امنیت ، مدیریت و نگهداری میشود.
مدیر امنیت ، این اختیارات را براساس سیاستهای موجود در سازمان ، در اختیار افراد مختلف قرار میدهد.
البته کاربران ، قادر به تغییر قسمتی از این پایگاه داده هستند ، برای مثال آنها میتوانند در مورد فایلهای شخصی خود ، اختیارات مرتبط با سایر کاربران را تغییر دهند.
شکل 2-4 ، یک تصویر منطقی از سرویسهای امنیت و ارتباط آنها با یکدیگر است.
این تقسیمبندی سرویسها ، ممکن است تا حدی ایدهآل بنظر برسد و در بسیاری از سیستمها بگونهای که در شکل نشان داده شده است ، پیادهسازی نشود ولی هر چه مدل امنیت سیستم به این تقسیمبندی نزدیک شود ، امنیت سیستم بالا میرود.
حال ، وقت آن فرا رسیده که به بیان تفاوتهای میان کنترل دسترسی و سرویس تعیین اعتبار بپردازیم.
تعریف دقیق و درست اطلاعات کاربر ، وظیفه سرویس تعیین اعتبار است.
کنترل دسترسی فرض میکند که سرویس تعیین اعتبار ، کار خود را بدرستی قبل از اجرایش توسط ناظر منابع انجام داده است.
کارایی کنترل دسترسی ، به درستی تعیین هویت کاربر و همچنین به درستی تفویض اختیار بستگی دارد.
دانستن این نکته ضروری است که کنترل دسترسی راه حل کاملی برای برقراری امنیت نیست و باید با سرویس حسابرس همراه باشد.
سرویس حسابرس به بررسی و آنالیز تمامی فعالیتها و درخواستهای کاربر در سیستم میپردازد و تمامی آنها را برای بررسیهای آینده ثبت میکند.
شکل 2-4 : کنترل دسترسی و سایر سرویسهای امنیتی این سرویس از دو جنبه حائز اهمیت است.
اول به عنوان بازدارنده (تمامی درخواستهای کاربران ثبت و آنالیز میشود و آنهارا از تخطی کردن مایوس میکند) و دوم با توجه به آنالیزهای انجام شده راهها و روزنههای نفوذ تشخیص داده میشوند.
در واقع حسابرسی ، این اطمینان را به ما میدهد که کاربران از امتیازات و اختیارات خود سوء استفاده نکنند.
توجه به این نکته ضروری است که کارایی سرویس حسابرس ، به کیفیت تعیین هویت بستگی دارد.
2-4-3-2 ماتریس دسترسی فعالیتها، در یک سیستم بوسیلۀ موجودیتهایی با عنوان درخواستکننده آغاز به کار می کنند.
درخواستکنندهها کاربران و یا برنامه تحت فرمان کاربران میباشند.در واقع درخواستکنندهها آغازگر فعالیتها بر روی منابع میباشند.
کاربران ممکن است با عناوین متفاوتی ، بسته به اینکه میخواهند از کدامیک از امتیازات خود استفاده کنند ، به سیستم متصل شوند.
به عنوان مثال ، کاربرانی که بر روی دو پروژۀ متفاوت فعالیت میکنند ، ممکن است برای کار بر روی هر یک از این پروژهها به سیستم متصل شوند.
در این حالت دو درخواست کننده ، متناظر با این کاربر وجود دارد.
درک تفاوت میان درخواستکنندهها و منابع بسیار ضروری و مهم است.
درخواستکنندهها آغازگر فعالیتها بر روی منابع میباشند.
این فعالیتها ، با تفویض اختیار به درخواستکنندهها ، داده میشوند.
تفویض اختیار ، تحت عنوان حق دسترسی و یا مد دسترسی بیان میشود.
مفهوم حق دسترسی به نوع منبع مورد نظر بستگی دارد.
به عنوان مثال در فایلها حق دسترسی ، شامل خواندن ، نوشتن ، اجرا کردن و مالک بودن میباشد.
مفهوم سه حق دسترسی اول مشخص میباشد.
مالک بودن به این معنی میباشد که مالک قادر به تغییر دسترسیها میباشد.
ماتریس دسترسی یک مدل مفهومی است که حق دسترسی هر درخواستکننده را به هر یک از منابع موجود در سیستم ، مشخص میکند.
برای هر درخواستکننده یک سطر ، و یک ستون برای هر منبع در این ماتریس وجود دارد.
هر سلول این ماتریس ، نشان دهنده این است که آیا درخواستکننده مورد نظر به منبع مورد نظر دسترسی دارد یا نه.
شکل1-5 ماتریس دسترسی را نشان میدهد.
وظیفه کنترل دسترسی این است که تنها به فعالیتهایی اجازه اجرا دهد که در ماتریس قید شدهاند.
این عمل به کمک ناظر منابع که واسط بین درخواستکننده و منابع میباشد صورت میگیرد.
شکل2-5 : ماتریس دسترسی 2-4-3-3 سیاستهای کنترل دسترسی سیاستهای کنترل دسترسی بیانگر این موضوع هستند که چگونه درخواستکنندهها و منابع را به منظور به اشتراک گذاشتن مد دسترسی بر اساس اختیارات و قوانین حاکم ، گروه بندی شوند.
در ضمن این سیاستها به بررسی چگونگی انتقال حقوق دسترسی میپردازند.
گروه بندی کاربرانی که بعضی از اختیارات و منابع را در دست دارد ، تعیین خصوصیت سیاستها و پیادهسازی مکانیسمهای امنیتی را آسان میکند.
چندین معیار مختلف برای گروهبندی پیشنهاد میشود.
این گروهبندیها مشکلات خاص خود را بوجود میآورد.
در مرحلۀ طراحی ، مشکلات ناشی از عضویت یک کاربر در چندین گروه متفاوت و در مرحله پیادهسازی مشکل چگونگی مدیریت تغییر عضویت در گروهها ، بوجود میآید.
در اینجا به بررسی سه سیاست رایج که در سیستمهای کامپیوتری استفاده میشوند میپردازیم.
این سیاستها عبارتند از: سیاست تشخیص سیاست اجباری سیاست مبتنی بر نقش توجه به این نکته ضروری است که سیاستهای قید شدۀ فوق ، انحصاری نبوده و با سیاستها مختلف دیگری میتوانند همراه باشند تا یک سیستم امنتر را ایجاد کنند.
این مطلب در شکل2-6 نشان داده شده است.
هر یک از دوایر داخلی نشان دهنده یک سیاست است که زیر مجموعهای از مجموعه دسترسیها را ایجاد میکند.
تنها اشتراک این دسترسیها ، دسترسی مجاز را نشان میدهد.
در چنین محیطهایی سیاستها ، همسو هستند.
به این معنی که ناسازگاری وجود ندارد ، بطوری که یک سیاست رویکردی را بپذیرد و سیاست دیگر آن را تحریم کند.
در صورت وجود ناسازگاری ، در یکی از مراحل مدیریت ، به بررسی و حلّ و فصل آن میپردازند.
شکل2-6 : سیاستهای کنترل دسترسی 2-4-3-3-1 سیاست تشخیص سیاست تشخیص نیازمند این است که قوانین تفویض اختیار ، سطح اختیار هر درخواستکننده بر روی منابع سیستمی را مشخص کنند.
درخواست دسترسی بر اساس مکانیسمهای سیاست تشخیص بررسی شده و دسترسی ، تنها برای درخواستکنندههایی مجاز شناخته میشود که برای آنها یک قانون دسترسی موجود باشد(شکل2-7).
سیاست تشخیص بر مبنای اختیارات(قوانین) - که مشخص کننده مد دسترسی(خواندن- نوشتن-اجرا-مالک) هر کاربر به منبع مورد نظر است- و تعیین هویت کاربری که درخواست دسترسی را صادر کرده کار میکند.
تشخیص یعنی اینکه امکانی برای کاربر ایجاد شده است تا بتواند حق دسترسی را اعطا و یا لغو کند.
هر درخواست کاربر ، برای دسترسی به یک منبع، بر مبنای اختیاراتی که به او داده شده است ، مورد بررسی قرار میگیرد.
اگر اختیاری ( کاربرمورد نظر، مجاز به دسترسی به منبع درخواست شده در مد مشخص شده میباشد) ، وجود داشته باشد ، دسترسی مجاز شناخته میشود، در غیر این صورت دسترسی غیر مجاز شناخته شده و کاربر از دسترسی به آن منبع محروم میشود .
انعطاف پذیری سیاست تشخیص ، آنرا برای گستره بزرگی از سیستمها و برنامهها مناسب ساخته است ، به همین دلیل این سیاست در بسیاری از محیطها به خصوص در محیطهای تجاری و صنعتی پیادهسازی میشود.
شکل 2-7 : سیاست تشخیص کنترل دسترسی این سیاست نیازمند سیستم تفویض اختیار پیچیدهای است و در ضمن مانع از دست رفتن اطلاعات هنگام واگذاری اختیارات توسط مدیر به افراد مسئول میشود.
به هر حال سیاست تشخیص کنترل دسترسی ، دارای نقاط ضعف و کمبودهایی نیز است : این سیاست اجازه انتقال اطلاعات از منبع قابل خواندن به هر منبع قابل نوشتن را میدهد و امکان کپی اطلاعات از منبعی به منبع دیگر وجود دارد.
نتیجتا اطمینان کامل ، از درستی انتشار اطلاعاتدر یک سیستم را به ما نمیدهد .
به راحتی میتوان محدودیتهایی را که به وسیلۀ تفویض اختیار به وجود آمده ، نادیده گرفته شوند.
به عنوان مثال کاربری که قادر به خواندن اطلاعات است می تواند بدون اجازۀ مالک ، آن اطلاعات را در اختیار کاربری که مجاز به این عمل نمیباشد قرار دهد .
علت این است که سیاست تشخیص هیچ محدودیتی را برای استفاده از اطلاعاتی که توسط کاربری دریافت شده ، اعمال نمیکند.
به عبارتی دیگر انتشار اطلاعات کنترل نمیشود.
کنترل بر روی انتشار اطلاعات در سیستمهایی که از سیاست اجباری استفاده میکنند ، اعمال میشود.
در این سیستمها با جلوگیری از انتقال اطلاعات موجود در منابع سطح بالا به منابع سطح پایین انتشار کنترل میشود.
2-4-3-3-2 سیاست اجباری در جاهایی که حجم بزرگی از اطلاعات نیاز به امنیت شدید دارد از این سیاست استفاده میشود.
نام دیگر این سیاست ، سیاست کنترل انتشار است زیرا مانع از انتشار اطلاعات از منابع سطح بالا به منابع سطح پایین میشود.
دسترسی به دادهها از طریق کلاسهای امنیتی تعریف شده برای منابع و درخواستکنندهها صورت میگیرد و به هر کاربر و منبع موجود در سیستم ، سطحی از امنیت داده میشود.
سطح امنیت متناظر با یک درخواستکننده نشان دهندۀ درجۀ اعتمادی است که به او وجود دارد و سطح کلاس بندی متناظر با یک منبع نشان دهنده درجۀ اهمیت اطلاعات موجود در آن منبع است و یا به عبارت دیگر نشان دهنده پتانسیل آسیبرسی به سیستم در صورت فاش شدن غیر مجاز اطلاعات آن منبع است.
در ساده ترین حالت ، سطوح امنیت به صورت سلسله مراتبی تعریف میشود.
دو مولفه مهم در کلاس بندی منابع وجود دارد : سطح کلاس بندی : که منعکس کننده سطح اطلاعاتی که آن منبع دارد.
این سطوح عبارنتد از : 0 = غیر محرمانه(U) 1 = محرمانه(C) 2 = سری(S) 3 = فوق سری(TS) طبقه : که منعکس کننده دپارتمانهای یک سازمان و یا حوزههای سیستمی است.
برای مثال در محیطهای نظامی این حوزهها میتوانند شامل هستهای – ناتو – جاسوسی و در محیطهای صنعتی شامل تولید – مهندسی – پرسنل – مدیریت باشد.
تعداد طبقههای قابل استنتاج برای m حوزه ، 2m میباشد.
برای این کلاسهای امنیت رابطههایی بصورت زوج مرتب تعریف میشود که مولفه اول نشان دهنده سطح کلاس و مولفه دوم نشان دهنده طبقه است.
دو زوج مرتب SC1=(A1,C1) و SC2(A2,C2) را در نظر بگیرید.
رابطۀ SC1≤SC2 در صورتی برقرار است که A1≤A2 و C2C1 باشد.
بنابراین رابطۀ ((ناتو ، هستهای) ، 3) ≥ (ناتو ، 2) برقرار است و رابطۀ (ناتو ، 3) ≥ ((ناتو، هستهای) ،2) برقرار نیست.
البته این طبقه بندی(فوق سری ، سری ، محرمانه و غیر محرمانه) در مورد درخواستکنندهها نیز وجود دارد.
رابطه "فوق سری > سری شکل2-8 : کنترل انتشار اطلاعات برای تامین محرمانگی قانون خواندن : سطح امنیت درخواست کننده باید از سطح امنیت منبعی با قابلیت خوانده شدن ، بالاتر باشد.
قانون نوشتن: سطح دسترسی درخواست کننده باید از سطح دسترسی منبعی با قابلیت نوشته شدن ، پایینتر باشد.
ارضا این دو قانون از انتقال اطلاعات موجود در منابع سطح بالا به منابع سطح پایین جلوگیری میکند.
اثر این قوانین در شکل1-8 توضیح داده شده است.
در چنین سیستمی اطلاعات موجود در یک سطح یا در آن سطح منتقل میشوند یا به سطوح بالاتر انتقال مییابند.
در این بخش ضروری است که تفاوت بین درخواست کننده و کاربر را دریابیم.
فرض کنید کاربری با سطح امنیت سری موجود باشد واین کاربر همیشه به سیستم تحت عنوان درخواست کننده سری وارد شود.
این درخواست کننده بر اساس قانون خواندن نمیتواند اطلاعات از نوع فوق سری را بخواند.
قانون نوشتن دو نتیجه دارد که در نگاه اول ممکن است در تناقض با هم بنظر آیند: درخواستکننده سری میتواند یک منبع نوشتنی ایجاد کند(اگرچه قادر به خواندن آن نیست).در واقع این درخواست کننده میتواند بر روی منابع نوشته و آنها را تغییر داده و یا آنها را خراب کند.
به همین دلیل بسیاری از سیستمها اجازه نوشتن در سطوح بالا را به درخواستکنندههای سطوح پایین نمیدهند و آنها تنها مجاز به نوشتن ، در منابع هم سطح با سطح خود میباشند که این نوشتن نیز دارای محدودیتهایی است.
از طرفی این درخواستکنندههای سطح سری میتواند به درخواستکنندههای سطح فوق سری پیغام داده ، با آنها ارتباط برقرار کرده و درخواستهای خود را به آنها ابلاغ کنند و از مزایای این کار بهره گیرد.
درخواست کننده سری ، نمیتواند بر روی دادههای سطوح محرمانه و غیر محرمانه بنویسد ، به این معنی که این درخواست کننده نمیتواند هیچ پیغامی به کاربران سطح محرمانه و غیر محرمانه بدهد و این یک تناقض است و بصورتی که در زیر توضیح داده شده است حل میشود.
به درخواستکننده سری اجازه داده میشود تا به سیستم تحت عنوان کاربر محرمانه و غیر محرمانه وصل شود و به کاربران سطح محرمانه و غیر محرمانه پیغام دهد.
به عبارت دیگر کاربر میتواند به سیستم تحت عنوان کاربرانی که سطح امنیت پایینتری دارند وصل شود.
پس علت استفاده از قانون نوشتن چیست؟
دلیل اصلی این است که مانع نفوذ اطلاعات توسط نرمافزارها از سطوح بالایی امنیت به سطوح پایین و نتیجتا فاش شدن آنها شود.
به کاربران اعتماد شده است تا اطلاعات را فاش نکنند ولی نرمافزارهای تحت فرمان آنها ممکن است مورد سوء استفاده قرار گیرند و شایستگی چنین اعتمادی را ندارند.
به عنوان مثال کاربری با نام یاشار با سطحی به سیستم وصل میشود که قادر به خواندن اطلاعات نیست.
در نتیجه ، نمیتواند اطلاعات را از سطح سری به سطوح پایین تر انتقال دهد.
قانون نوشتن مانع انتقال تصادفی اطلاعات از سطوح بالا به پایین میشود.
سطح صحت میتواند سخت(C) ، مهم (I)و مبهم(U) باشد.
سطح صحت مرتبط با یک منبع ، نشان دهنده درجه اطمینان به اطلاعات موجود در آن منبع و پتانسیل آسیبپذیری آن در صورت تغییر غیر مجاز اطلاعاتش است.
سطح صحت مرتبط با کاربر ، نشان دهنده میزان اطمینان به کاربر در انجام عملیاتی نظیر درج، ذخیره ، حذف و یا تغییر دادهها و برنامههای آن سطح میباشد.
قوانینی نظیر آنچه که درباره امنیت بیان شد ، در اینجا نیز مورد نیاز است تا یکپارچگی حفظ شود : قانون خواندن : سطح صحت درخواست کننده باید از سطح صحت منبع قابل خواندن ، پایینتر باشد.
قانون نوشتن: سطح صحت درخواست کننده باید از سطح صحت منبع قابل نوشتن ، بالاتر باشد.
ارضا این دو قانون امنیت صحت را با مانع شدن از انتقال اطلاعات ذخیره شده در منابع سطح پایین به منابع سطح بالا تضمین میکند(شکل2-9).
شکل 2-9 : کنترل انتشار اطلاعات برای تامین صحت کنترل انتقال اطلاعات یکی از روشهای تامین صحت میباشد و به طور کلی تامین صحت نیازمند مکانیزم گستردهتری است.
تفاوت شکلهای 2-8 و 2-9 در جهت انتقال اطلاعات است.
به عبارت دیگر در هر دو اطلاعات تنها در یک جهت منتقل میشود.
ماهیت سیاست اجباری ، در یکطرفه بودن جهت انتقال اطلاعات در شبکه تامین امنیت است.
شکل 2-10 : کنترل دسترسی اجباری شکل 2-11 : اعمال همزمان دو سیاست تشخیصی و اجباری در سیستم دو سیاست اجباری و تشخیصی در انحصار متقابل با یکدیگر نیستند.
آنها قابل ترکیبند به طوری که سیاست اجباری برای کنترل تفویض اختیار و سیاست تشخیص برای کنترل دسترسی استفاده میشود.
شکل 2-11 همکاری دو سیاست را نشان میدهد.
2-4-3-3-3 سیاست مبتنی بر نقش سیاست تشخیص و اجباری که درباره آنها صحبت شد مباحث کلاسیک در مقوله امنیت میباشند.
تحقیقات نشان می دهد که بسیاری از نیازهای که در عمل با آنها مواجه هستیم در این دو سیاست کلاسیک منظور نشده است.
سیاست اجباری از محیطهای نظامی برخاسته و سیاست تشخیص توسط محققین معرفی شده است.
در هیچیک ، نیازهای محیطهای تجاری در نظر گرفته نشده است.
در نتیجه سیاست جایگزین به جای سیاستهای کلاسیک گذشته ، برای رفع این نیازها ارائه شد.
سیاست مبتنی بر نقش تفویض اختیار برای کاربر یا برای گروه کاربران بر روی منابع را مانند آنچه که در رویکرد تشخیص گفته شد ، ارائه می دهد و نیز مبانی امنیتی که در سیاست اجباری گفته شد را در اختیار قرار می دهد.
این سیاست دسترسی کاربر به اطلاعات را بر مبنای فعالیتی که کاربر بر روی سیستم اجرا می کند، کنترل می کند و نیازمند شناسایی نقشها بر روی سیستم می باشد.
یک نقش بر اساس مجموعه اعمال و مسئولیتهای مرتبط با فعالیتها ، تعریف می شود.
بجای مشخص نمودن تمامی دسترسیها ، اجازه دسترسی به منابع در نقشها گنجانده شده است .
هر کاربر مجاز به اجرا است.
به کاربران اجازه پذیرفتن نقشها داده شده است.
تحقیقات به عمل آمده این حقیقت را که نقشها برای بسیاری از تاسیسات دولتی و تجاری مناسب هستند را ، اثبات می کند.
کاربری که نقشی را ایفا می کند مجاز به اجرای تمام دسترسیهایی است که نقشش ایجاب میکند.
عموما یک کاربر می تواند نقشهای متفاوتی را بپذیرد و همچنین نقشهای یکسان میتواند توسط افراد متفاوتی ایفا شوند.
در بعضی از رویکردها یک کاربر می تواند در یک زمان نقشهای متفاوتی ایفا کند و در بعضی دیگر کاربر ، تنها مجاز به ایفای یک نقش در آن واحد محدود می شود.
به طور کلی استانداردهای متفاوتی وجود دارد و رویکردهای متفاوتی در این زمینه اعمال می شود.
این سیاست چندین مزیت دارد که در ذیل مختصرا در مورد آنها بحث شده است: مدیریت اختیارات : سیاست مبتنی بر نقش از یک استقلال منطقی در تعریف اختیارات کاربران برخوردار است.
با تقسیمبندی عمل انتساب اختیار به دو بخش، که یکی از بخشها کاربران را به نقشها انتساب می دهد و بخش دیگر حق دسترسی منابع به نقشها را معین میکند به این مهم دست مییابد.
این کار به مقدار بسیار زیادی مدیریت امنیت را آسان میکند.
به عنوان مثال فرض کنید مسئولیتهای یکی از کاربران به علت ترفیع درجه تغییر کند.
میتوان نقشهای گذشته را حذف و نقشهای متناسب با مسئولیتهای جدید را به وی انتساب داد.
اگر تمامی اختیارات بین منابع و کاربر برقرار باشد باید تمام حقوق دسترسی قبلی کاربر حذف شده و حق دسترسیهای جدید ایجاد شوند که این کار بسیار وقتگیر است.
استفاده از سلسله مراتب : در بسیاری از سازمانها نقشها بصورت سلسله مراتبی ، بر اساس اصول و مشخصههای سازمان تعریف میشوند.
یک مثال از این نمونه در شکل1-12 آورده شده است.
در این شکل نقشهای مهندسی نرمافزار و سختافزار نمونهای از نقش مهندسی هستند.کاربری که نقش مهندسی نرمافزار( یا سخت افزار) را دارد ، مزایا و اختیارات کلی و عمومی خود را از نقش مهندسی دریافت میکند.
نقش ناظر نیز اختیارات و مزایای عمومی خود را از دو نقش مهندسی نرمافزار و سختافزار دریافت میکند.
نتیجتا تعریف نقشها بصورت سلسله مراتبی باعث ساده شدن مدیریت اختیارات میشود.
شکل 2-12 : نمونهای از ارث بری در نقشها جداسازی وظیفهها: جداسازی وظیفهها به این اصل اشاره دارد که به هیچ کاربری نباید آنقدر اختیارات داده شود که بتواند از آنها به نفع خود سوءاستفاده کند.
جداسازی وظیفهها را میتوان بصورت استاتیک(با تعریف نقشهایی که بوسیله کاربر قابل اجرا نیستند) و یا پویا(با اعمال کنترل بر روی دسترسیها در زمان دسترسی) پیادهسازی کرد.
کلاسبندی منابع: سیاست مبتنی بر نقش کاربران را بر اساس نقشهایی که اجرا میکنند کلاسبندی میکند.
اعمال این کلاسبندی بر روی منابع مزایای بسیاری دارد.به عنوان مثال یک کارمند بانک باید به حسابهای بانکی و یک منشی به نامهها و یادداشتها دسترسی داشته باشد.
منابع باید بر حسب نوعشان( نامهها ، دستورعملها و ...) یا محدوده عملیاتی(نامههای تجاری ، تبلیغاتی و ...)طبقهبندی شوند.
تفویض اختیار به نقشها باید بر اساس طبقهبندی منابع ، صورت گیرد نه بر اساس یک منبع خاص .
به عنوان مثال همانطور که گفته شد منشی نیاز به دسترسی به نامهها دارد.
به جای دادن حق خواندن و نوشتن بر روی تک تک نامهها این اختیارات به کل کلاس نامهها داده میشود.
با توجه به مطالب یاد شده این رویکرد مدیریت تفویض اختیار را آسان و کنترل آن را ساده میکند.
2-5 مدیریت تفویض اختیار مدیریت تفویض اختیار به این معنی است که چه کسی مجاز به تغییر دسترسیهایی است که اعطا شده است.
این مسئله یکی از مهمترین مسائل کنترل دسترسی میباشد.
در سیاست اجباری کنترل دسترسی ، دسترسیهای مجاز ، بر اساس کلاسبندی منابع و درخواستکنندهها مشخص میشوند.
سطوح امنیت، بوسیله مدیر امنیت به کاربر انتساب داده میشوند.
مدیر امنیت در واقع تنها کسی است که میتواند سطوح امنیت مرتبط با درخواستکنندهها و منابع را تغییر دهد.
بنابراین سیاستهای مدیریتی ، بسیار ساده می شوند.
سیاست تشخیص کنترل دسترسی اجازه فعالیت بسیاری از سیاستهای مدیریتی را میدهد که در ذیل به بررسی چند نمونه از آنها میپردازیم: