چکیده :
پایگاه داده مجموعهای از دادههای بهم مرتبط است که توسط برنامهای که DBMS نامیده میشود، سازماندهی میشود. پایگاه دادهها اطلاعات مهمی را برای کاربراشان مهیا میکنند. بنابراین امنیت و حفاظت از آنها از اهمیت بسیار زیادی برخوردار است. امنیت پایگاه داده ها به حفاظت اطلاعات و کنترل دسترسی کاربران توجه دارد. این مقاله به اصول امنیت و سیاستهای مهم دراین مورد و احتیاجات امنیتی سیستمها میپردازد. همچنین راههایی را برای کنترل دسترسی که از مهمترین احتیاجات هر سیستم پایگاه دادهای است، ارائه میکند.
دراین مقاله با معرفی چند زمینه پیشرفته مطالعاتی امروزی بعضی مشکلات حل نشده دراین زمینه را نیز به خوانند معرفی میکند.
مقدمه :
در طی سه دهه اخیر تعداد پایگاه داده های کامپیوتری افزایش بسیاری داشته است. حضور اینترنت به همراه توانائیهای شبکه، دسترسی به داده و اطلاعات را آسانتر کرده است. به عنوان مثال، کاربران امروزه میتوانند به حجم بالایی از اطلاعات در فاصله زمانی بسیار کوتاهی دسترسی پیدا کنند. به همین نسبتی که ابزارها و تکنولوژی دسترسی و استفاده از اطلاعات توسعه مییابند، نیاز به حفاظت اطلاعات هم بوجود میآید. بسیاری دولتها و سازمانها صنعتی دادههای مهم و طبقه بندی شدهای دارند که باید حفاظت شوند. سازمانهای بسیار دیگری هم مثل مؤسسات دانشگاهی نیز اطلاعات مهمی در مورد دانشجویان و کارمندانشان دارند. در نتیجه تکنیکهایی برای حفاظت داده های ذخیره شده در سیستمهای مدیریت پایگاه داده،[1] اولویت بالایی پیدا کردهاند.
در طول سه دهه اخیر، پیشرفتهای بسیاری در مورد امنیت پایگاه دادهها حاصل شده است. بسیاری از کارهای اولیه روی امنیت پایگاه دادههای آماری انجام شد. در دهه 70، همزمان با شروع تحقیقات روی پایگاه دادههای رابطهای، توجه مستقیماً به سمئله کنترل دسترسی[2] بود و بیشتر از همه، کار روی مدلهای کنترل دسترسی احتیاطی[3] شروع شد؛ ولی در واقع تا مطالعات نیروی هوایی در 1982، که تلاش وسیعی برای DBMSهای امن چند سطحی[4] بود، کار مهمی انجام نشد.
در هزاره جدید با حضور تکنولوژیهای مثل کتابخانههای دیجیتال، شبکه گستره جهانی و سیستمهای محاسباتی اشتراکی، علاقه بسیاری به امنیت نه تنها در بین سازمانهای دولتی، بلکه بین سازمانهای اقتصادی هم وجود دارد. این مقاله مروری به پیشرفتها و محصولات در سیستمهای پایگاه دادهای امن در بر دو زمینه اجباری و احتیاطی دارد.
2 کنترل دسترسی (مفاهیم و سیاستها) :
دراین بخش مفاهیم پایه در کنترل دسترسی معرفی میشوند. سپس در مورد سیاستهای کنترل دسترسی احتیاطی و الزامی بحث میشود و نهایتاً مروری داریم بر سیاستهای سرپرستی.
21 مفاهیم اساسی :
کنترل دسترسی معمولاً در مقابل، مجموعه ای از قوانین اعطای مجوز که توسط مدیران امنیتی یا کاربران براساس بعضی سیاستهای خاص ارائه میشوند، قرار دارد.
قانون اعطای مجوز، در حالت کلی بیان میکند که فرد (Subject) S اجازه دارد که امتیاز P (Priuilege) را بروی شیئی (Object) O بکار ببرد.
اشیاء مجاز[5] : ترکیبات غیرفعال سیستم هستند که باید در مقابل دسترسیهای غیرمجاز محافظت شوند. اشیایی که باید به آنها متوجه شدند به مدل دادهای مورد استفاده بستگی دارند. به عنوان مثال، در یک سیستم عامل فایلها و دایرکتوریها اشیاء هستند. در حالیکه، در یک DBMS منابعی که باید محافظت شوند رابطه ها، دیدها و صفات هستند.
اشخاص مجاز[6] : موجودیتهایی در سیستم هستند که اجازه دسترسی به آنها داده میشود. اشخاص به دستههای زیر تقسیم بندی میشدند :
کاربران : که شخصیتهای مجزا و مشخصی هستند که با سیستم در ارتباطند.
گروهها مجموعه ای از کاربران.
نقشها[7] : مجموعهای نامدار از امتیازها که احتیاج دارند، فعالیت خاصی را در رابطه با سیستم انجام دهند.
سلسله عملیات[8] : که برنامههایی را برای کاربر اجراء میکند. به طور کلی، سلسله عملیات به آدرسهای حافظه، استفاده از CPU ، فراخوانی برنامههای دیگر و عملیات بروی داده اشاره میکند.
امتیازهای مجاز[9] : انواع عملیاتی را که یک فرد میتواند روی یک شیئی در سیستم اجراء کند، بیان میکند. مجموعه این امتیازها به منابعی که باید محافظت شوند، بستگی دارد. به عنوان مثال، در یک سیستم عامل خواندن، نوشتن و اجراء از امتیازها هستند. ولی، دریک DBMS رابطهای، انتخاب، درج، تغییر و حذف از جمله امتیازها به شمار میروند.
22 سیاستهای کنترل دسترسی :
سیاستهای کنترل دسترسی، معیارهایی هستند که براساس آنها تعیین میشود آیا یک درخواست دسترسی باید مجاز شمرده شود یا نه. یک طبقه بندی کلی بین سیاستهای کنترل دسترسی احتیاطی و الزامی است.
221 سیاستهای کنترل دستری احتیاطی :
سیاستهای کنترل دسترسی احتیاطی (DAC) ، دسترسی افراد به اشیاء را براساس شناسه افراد و قوانین و مجوزها کنترل میکند. و قوانین برای هر فرد مجوزهایی را که میتواند برای انجام عملیات روی اشیاء بکار برد، بیان میکند. وقتی تقاضای درخواستی به سیستم میآید، مکانیسم دسترسی مشخصی میکند آیا قانونی برای تأیید این درخواست وجود دارد یا نه. اگر قانونی وجود داشت درخواست مجاز شمرده میشود در غیراین صورت رد میشود. چنین مکانیزمی احتیاطی است و در آن به اشخاص اجازه داده میشود که مجوز دسترسی به دادههایشان را به دیگران بدهند.
سیاستهای دسترسی احتیاطی انعطاف پذیری زیادی دارند. به طوری که، اجازه تعریف محدوده وسیعی از قوانین کنترل دسترسی را با استفاده از انواع مختلف مجوزها را میدهند. مثل مجوزهای مثبت و منفی و مجوزهای قوی و ضعیف. در زیر توضیح مختصری از هر کدام ارائه میشود.
مجوزهای مثبت و منفی :
در سیستمی که مجوز مثبت دارد. هرگاه فردی بخواهد به شیئی خاصی دسترسی داشته باشد، سیستم چک میکند آیا مجوزی وجود دارد و فقط در صورت وجود، به شخص اجازه دسترسی داده میشود. عدم وجود مجوز به معنی رو درخواست است. مشکل این خط مشی این است که، عدم وجود مجوزهای منفی حل شد که به معنی رد قطعی مجوز در چنین مواردی است.
مجوزهای قوی و ضعیف :
بعضی مدلهایی که هر دو مجوز مثبت و منفی را دارند به دو دسته مجوزهای قوی و ضعیف نیز تقسیم میشوند. مجوزهای قوی (چه مثبت و چه منفی) باطل نمیشوند. در حالیکه، مجوزهای ضعیف براساس قوانین خاصی توسط مجوزهای قوی یا ضعیف دیگری میتوانند باطل شوند.
222 سیاستهای کنترل و دسترسی الزامی :
سیاستهای کنترل دسترسی الزامی (MAC) بیان کننده دسترسی است که افراد به اشیاء براساس رده بندی شیئی و فرد، دارند. این نوع از امنیت تحت عنوان امنیت[10] چند لایه هم نام برده میشود. سیستمهای پایگاه دادهای که خصوصیات امنیت چند لایه را تأمین میکنند. DBMS های این چند لایه (MLS/DBMS) یا DBMS های مطمئن نامیده میشوند. بیشتر MLS/DBMSها براساس سیاست Bell و Lapadula ، طراحی و ساخته شدهاند. دراین خطمشیها، افراد به عنوان سطوح مجاز مطرح میشوند و میتوانند در سطح مجاز خود عمل کنند. اشیاء به سطوح مجاز مطرح میشوند و میتوانند در سطوح مجاز خود عمل کنند. اشیاء به سطوح حساسیت ارجاع میشوند. سطوح مجاز حساسیت را سطوح امنیت مینامند. آنچه در زیر میآید، دو قانون مهم این خط مشی است :
ویژگی امنیتی ساده : یک فرد دسترسی خواندن یک شیئی را دارد اگر سطح امنیتی آن بر سطح امنیتی شیئی مسلط باشد.
ویژگی ستاره : یک فرد دسترسی نوشتن یک شیئی را دارد اگر سطح امنیتی شیئی توسط سطح امنیتی فرد پوشانده شود.
در زیر تفاوت بین سیاستهای الزامی و احتیاطی را نشان میدهد. تحت سیاست احتیاطی یک تقاضای دسترسی مجاز شمرده میشود اگر قانونی وجود داشته باشد که دسترسی را مجاز بداند. در مقابل، دو سیاست الزامی یک دسترسی مجاز است، اگر رابطه خاصی بین سطح امنیتی شخصی که تقاضای دسترسی دارد و سطح امنیتی شیئی که مورد تقاضاست، وجود داشته باشد.
23 سیاستهای سرپرستی[11] :
یکی دیگر از ابعادی که می تواند معیاری برای مقایسه مدلهای کنترل دسترسی باشد، سیاستهای سرپرستی است، که حمایت میکند. سرپرستی است. که حمایت میکند. سرپرستی به عملیات اعطا و بازپس گرفتن مجوز اطلاق میشود. ما سیاستهای سرپرستی را به صورت زیر طبقه بندی میکنیم. (5)
سرپرستی DBA : تحت این سیاست، فقط DBA میتواند حق دسترسی بدهد یا تقاضای را برگرداند. این سیاست بسیار متمرکز است و امروزه به ندرت در DBMSها بکار میرود، مگر در ساده ترین آنها.
سرپرستی شیئی - مالک[12] : براساس این سیاست که عمدتاً توسط DBMSها و سیستم عاملها استفاده میشود، بوجود آوردند شیئی مالک آن محسوب میشود و تنها شخص مجاز برای سرپرستی شیئی است. سرپرستی متصدی شیئی[13] ک بر طبق این سیاست، یک شخص، نه الزاماً ایجاد کننده شیئی، مدیر سرپرستی شیئی است. براساس این سیاست حتی ایجاد کننده شیئی هم باید مجوز دسترسی به شیئی را دریافت کند.
دومین و سومین سیاست میتوانند با وکالت سرپرستی و انتقال سرپرستی ترکیب شوند. وکالت سرپرستی به این معناست که مدیر یا سرپرست یک شیئی میتواند اعمال سرپرستی بروی یک شیئی را به شخص دیگری واگذار کند. بیشتر DBMSها سیاست سرپرستی براساس سرپرستی مالک با امکان واگذاری را حمایت میکنند. باید توچه داشت که تحت خط مشی واگذاری سرپرست اولیه شیئی امتیاز سرپرستی خود را از دست نمی دهد.
انتقال سرپرستی مثل واگذاری، سرپرستی را به شخص دیگری میدهد. با این تفاوت که، سرپرست اولیه امتیاز سرپرستی خود را از دست میدهد. برای انتقال سرپرستی دو خط مشی زیر وجو دارد.
ارجاع بازگشتی[14] : تمام مجوزهایی که در توسط سرپرستی پیشین داده شده، به صورت بازگشتی ارجاع داده میشود.
انتقال واگذار کننده[15] : تمام مجوزهای که توسط سرپرستی پیشین صادر شده نگه داشته میشوند علاوه براین انتقال میتواند با پذیرش[16] یا بدون پذیرش به معنای این است که چنین پذیرشی احتیاج نیست. شکل زیر طبقه بندی سیاستهای سرپرستی که دراین بخش در مورد آن بحث شد را نشان میدهد.
3 سیستمها و مدل های کنترل دسترسی احتیاطی :
دراین بخش به بحث در مورد مدلها و سیستمهای DAC میپردازیم. مدلهای احتیاطی براساس معیارهای گوناگونی میتواند طبقه بندی شود. این بخش این مدلها را براساس DBMSهایی که تحت آن این مدلها توسعه مییابند به سه گروه تقسیم بندی میکند : مدلهای اعطای مجوز برای DBMSهای رابطهای، مدلهای اعطای مجوز برای DBMSهای شیئی گرا و مدلهای اعطای مجوز برای DBMSهای فعال.
31 مدلهای اعطای مجوز برای DBMS های رابطه ای :
دراین بخش مروری داریم بر مدلهای اعطای مجوز که برای DBMSهای رابطهای ساخته شدهاند و با شرح مدل System R شروع میکنیم. مدل System R یک حادثه مهم در تاریخ مدلهای اعطای مجوز است. اهمیت مدل سیستمهای R از آنجایی است که بسیاری DBMSهای تجاری مکانیزم اعطای مجوز را براساس آن توسعه دادند.
دراین مدل اشیایی که باید محافظت شوند جدولها و دیدهایی هستند که اشخاص، امتیازهای گوناگون نسبت به آنها دارند. امتیازهایی که این مدل حمایت میکند شامل، انتخاب (Select) برای انتخاب تاپلها از جدول، به روز رسانی (Update) برای تغییر تاپلهای یک جدول، درج و حذف (Delete,insert) برای افزودن یا حذف کردن تاپلهای جدول، حذف جدول (drip) برای پاک کردن کل یک جدول. گروه و نقش دراین مدل حمایت نمیشوند. این مدل امکانات سرپرستی تامتمرکز را حمایت میکند. هرگاه شخصی جدولی را بوجود میآورد. امتیازی را نسبت به آن بدست میآورد. مالک جدول میتواند تمام امتیازها را بر جدول اعمال کند.
این مدل ارجاع بازگشتی دارد، به این معنا که وقتی شخصی مجوز جدولی را از کاربر دیگری میگیرد. تمام مجوزهایی که قبلاً به او داده شده ارجاع میشود.
32 مدلهای اعطای مجوز برای DBMSهای شیئی گرا :
امروزه DBMSهای شیئیگرا و شیئی – رابطهای از مهمترین زمینه های تحقیق در موزه DB هستند. دلیل این اهمیت این است که آنها بسیار مناسب برای کاربردهای پیشرفته مثل CAD/CAM، مولتی مدیا و کاربردهای نقشهکشی هستند. چون این برنامهها احتیاج به مدلهای دادهای غنیتری نسبت به مدلهای رابطهای دارند. احتیاجات سیستمهای DBMSها هم متفاوت از سیستمهای رابطه ای است و این باعث میشود مدلهای سنتی برای DBMSهای رابطهای، برای سیستمهای شیئیگرا کافی نباشد. با وجود رشد علاقه و توجه به ODBMSها، تحقیقات برای مدلهای اعطای مجوز برای ODBMSها هنوز در مراحل اولیه است. اگرچه طرحهای بسیاری وجود دارد. تنها مدلهای Orion و Iris مدلهای قابل مقایسه با مدلهای RDBMSها دارند.
321 مدل Orion :
مدل اعطای مجوز Orion، مجوزهای مثبت و منفی و همچنین قوی و ضعیف را حمایت میکند. مجوز قوی همیشه اولویت بیشتری نسبت به مجوز ضعیف دارد. مجوزها به جای کاربران تکی به نقشها داده میشوند و یک کاربر مجاز است عملی را روی یک شیئی انجام دهد، اگر نفشی وجود داشته باشد که اجازه این کار را داشهژته باشد. نقشها، اشیاء و امتیازها تحت یک سلسله مراتب سازماندهی میشوند و یکسری قوانین انتشار یا تکثیر اعمال میشود :
اگر یک نقش مجوز دسترسی به یک شیئی را داشته باشد تمام نقشهای بالاتر از آن در سلسه مراتب همان مجوز را دارند.
اگر یک نقش مجوز منفی برای دسترسی به یک شیئی را داشته باشد تمام نقشهای بعداز آن همان مجوز منفی را خواهند داشت.
قوانین انتشار یکسانی برای امتیازها هم تعریف میشدند. نهایتاً قوانین انتشار بر یک شیئی اجازه مجوزهایی را میدهد که از مجوزهای شیئی که، منقطاً با آن در ارتباط است، مشتق شده باشد. به عنوان مثال مجوز خواندن یک کلاس، مجوز خواندن تمام نمونههای آن را صادر میکند.
322 مدل Iris :
در مدل Iris ، صفات و متددها هر دو به عنوان تابع تعریف میشدند و تنها امتیازی که توسط مدل حمایت میشود، فراخوانی تابع است. یک فرد که امتیاز فراخوانی یک تابع را دارد مجاز برای فراخواندن آن تابع است. فردی که ایجاد کننده یک تابع است، مالک آن محسوب میشود و به طور خودکار امتیاز فراخوانی آن را دریافت میکند. علاوه براین مالک یک تابع میتواند امتیاز فراخوانی تابع را به افراد دیگر هم بدهد. این اعطای امتیاز میتواند شامل شرایط هم باشد، که به شخصی که امتیاز را میگیرد اجازه میدهد که آن را به دیگران هم بدهد.
این مدل اجازه میدهد که یک امتیاز هم به گروه و هم به کاربر داده شود یا گرفته شود. یک کاربر میتواند متعلق به چندین گروه باشد. توابع مشتق شده تحت عنوان توابع دیگر تعریف میشوند. علاوه براین، گروهها میتوانند تو در تو باشند. مدل Iris دو خط مشی برای حفاظت از توابع مشتق شده دارد.