فصل ۱كليات
امنیت اطلاعات یکی از مهمترین مفاهیم ،از آغاز زندگی بشر تاکنون بوده است. انسان‌های ادوار گذشته از اهمیت این موضوع مطلع بودند و بسیاری از شکست‌های انسان‌های گذشته در جنگ‌ها فاش شدن اطلاعات مهم و سری بوده است. در ضمن آنها اطلاعات حساس را به رمز تبدیل کرده و برای رد و بدل کردن این اطلاعات از زبان رمزی استفاده می‌کردند.
با پیشرفت علم و جوامع بشری اهمیت این موضوع بیش از پیش آشكار شده و فاش شدن اطلاعات نظامی و یا سیاسی ممکن است منجر به نابودی یک جامعه بیانجامد. سرقت‌های میلیاردی که گاها از بانک‌ها می‌شود مثالی دیگر از اهمیت این موضوع است.
برای امن کردن جامعه مدرن باید از امکانات مدرن نیز استفاده شود زیرا سارقان اطلاعات از امکانات پیشرفته برای دستیابی به اطلاعات استفاده می‌کنند. در این پایان نامه به بررسی امنیت در محیط پایگاه داده می‌پردازیم. این محیط بر مشکلاتی نظیر افزونگی داده و ناسازگاری داده که در سیستم فایل مشکل ساز بوده ، فائق آمده و با به اشتراک گذاشتن داده‌ها ، امکان استفاده بیشتر از اطلاعات را مهیْا ساخته است. در این محیط امکان مدیریت تعداد زیادی کاربر تعبیه شده است. کاربر زیاد مساوی است با درد سر زیاد ! ممکن است کاربری عمدی یا غیر عمدی به داده های محرمانه دست یابد و سیستم را مختل سازد. برای تامین امنیت در چنین محیط‌هایی که همواره با پیچیدگی‌های زیادی نیز برخوردار است لازم است در ابتدا موضوع امنیت را بصورت کلاسیک بررسی کنیم. آشنایی با مفاهیمی همچون تهدید ، صحت داده و انتشار داده ، ما را در شناخت مدل‌های امنیت یاری می‌کند. تامین امنیت در پایگاه داده با شناسایی تهدید آغاز می‌شود. از دیگر واژه‌های مهم در این موضوع کنترل دسترسی است. هدف کنترل دسترسی محدود کردن فعالیت‌هایی است که کاربر مجاز می‌تواند بر روی سیستم‌های کامپیوتری انجام دهد. کنترل دسترسی شامل سیاست‌های مختلفی است. سیاست‌های تشخیص ، اجباری و مبتنی بر نقش از آن جمله هستند. این سیاست‌ها هر يك با اعمال محدودیتی خاص دسترسی کاربر را محدودتر می‌کنند و در تناقض با یکدیگر نیستند ،به عبارت دیگر جهت حرکت همه آنها یکی است.
امنیت کلاسیک را در فصل ۲ بررسی می کنیم. سپس به بررسی امنیت در نرم افزار SQLServer2005 می‌پردازیم. رنگ امنیت کلاسیک در تمامی مولفه‌های امنیتی SQLServer2005 به چشم می‌خورد. در این فصل با مفاهیمی همچون مدل هویت شناسی و تفویض اختیار در SQLServer2005 آشنا می شویم. انواع کنترل دسترسی ، انواع نقش ها ، شما و بسیاری دیگر از واژه‌ها و مفاهیم را در فصل ۳ بررسی می‌کنیم. رمز نگاری که در نسخه SQLServer2000 نبوده به SQLServer2005 اضافه شده و این نرم افزار را از لحاظ امنیت بسیار پرقدرت ساخته است. در واقع در فصل ۳ مدل امنیتی SQLServer2005 به طور کامل بررسی شده است. در فصل ۴ یک محیط عملی طراحی و پیاده سازی شده است. در فصل ۵ بامشکلاتی که در حین پیاده سازی چنین سیستمی با آن مواجه هستیم را بررسی می‌کنیم. اهمیت این پایان نامه از این جهت است که تعداد بسیار کمی از افراد متخصص این موضوع را در SQLServer2005 بررسی کرده و آن را بصورت عملی پیاده سازی کرده‌اند. بسياري از سيستم‌هاي طراحي شده از لحاظ امنيتي ناكارامد هستند و مکانیزم‌‌هاي امنيتي به كار رفته در اين سيستم‌ها داراي نواقص و كمبودهاي بسياري است.

فصل ۲ امنيت كلاسيك

۲-۱ مقدمه
در محیط پایگاه‌داده ، برنامه‌ها و کاربران مختلف سازمان به یک مجموعه اطلاعات واحد و یکپارچه در DBMS دسترسی دارند. مشکلاتی نظیر ناسازگاری و افزونگی داده‌ها که در سیستم‌های گذشته نمایان بودند از بین رفته و در عوض مسأله تامین امنیت در پایگاه‌داده اهمیت بسیاری پیدا کرده ‌است. تامین امنیت در محیط پایگاه ‌داده یعنی شناسایی تهدید‌هایی که امنیت آن را به خطر می‌اندازند و همچنین انتخاب سیاست‌ها و مکانیسم‌های مناسب برای مقابله با آن. یکی از راههای مبارزه با تهدید‌ها ، کنترل دسترسی است. هدف كنترل دسترسي ، محدود كردن اعمال و فعاليت‌هايي است كه كاربر مجاز ، مي‌تواند بر روي سيستم كامپيوتري انجام دهد. كنترل دسترسي ، آنچه را كه كاربر و يا برنامه تحت كنترل او مي‌تواند انجام دهد را كنترل مي‌كند. در اين راستا ، كنترل دسترسي ، مانع از انجام فعاليت‌هايي مي‌شود كه امنيت سيستم را تهدید مي‌كنند.
در اين فصل پس از بیان چند مفهوم پایه در رابطه با امنیت پایگاه‌داده ، به بررسي كنترل دسترسي و رابطه آن با ساير سرويس‌‌هاي امنيتي از جمله سرويس هویت شناسی ، سرويس حسابرسي و سرويس مديريت مي‌پردازیم. سپس ماتريس دسترسي و چگونگي پياده‌سازي آن در محيط‌هاي كاربردي را بررسي مي‌كنیم. در پايان به مطالعه سياست‌هاي كنترل دسترسي و مختصري درباره چگونگي مديريت آنها مي‌پردازد.
۲-۲ امنیت پایگاه‌ داده
امنیت اطلاعات در پایگاه‌داده دارای سه بخش اصلی است :
محرمانگی : تضمین محرمانگی اطلاعات شامل جلوگیری از فاش شدن غیر مجاز اطلاعات و شناسایی و تحذیر عوامل آن می‌باشد.
صحت : تضمین صحت اطلاعات شامل جلوگیری از تغییر غیر مجاز اطلاعات و شناسایی وتحذیر عوامل آن می‌باشد.
دسترس پذیری : تضمین در دسترس پذیری اطلاعات شامل جلوگیری از رد غیر مجاز دسترسی به سرویس‌های ارائه شده توسط سیستم و شناسایی و تحذیر عوامل آن می‌باشد.

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

۲-۴ کنترل امنیت پایگاه داده
امنیت پایگاه‌داده از طریق کنترل انتشار ، کنترل استنباط و کنترل دسترسی اعمال می‌شود که به بررسی آنها می‌پردازیم :
۲-۴-۱ کنترل انتشار
کنترل انتشار ، انتقال اطلاعات میان منابع را کنترل می‌کند. یک انتشار میان منابع X و Y هنگامی‌رخ می‌دهد که اطلاعاتی از X خوانده شده و در Y نوشته شود. کنترل انتشار ، از انتقال داده‌های موجود در منابع سطح بالا به منابع سطح پایین جلوگیری می‌کند.
۲-۴-۲ کنترل استنباط
منظور از استنباط یعنی دستیابی به اطلاعات محرمانه از روی داده‌های غیر محرمانه است. مسأله استنباط از داده‌ها بیشتر در پایگاه‌داده‌های آماری اتفاق می‌افتد. در این نوع پایگاه‌داده‌ها کاربر باید از بازگشت به عقب و نتیجه‌گیری از روی داده‌های آماری بر حذر داشته شود. به عنوان مثال فرض کنید کاربری طی یک پرس و جو متوسط حقوق کارمندان زن را در سازمان رویت کند. سپس این کاربر، تعداد کارمندان زن را در سازمان مورد پرس و جو قرار می‌دهد. اگر نتیجه بدست آمده از آخرین پرس و جو عدد یک باشد ، این کاربر قادر خواهد بود حقوق این کارمند زن را استنباط کند.
۲-۴-۳ کنترل دسترسی
مسئولیت کنترل دسترسی در قبال داده‌های موجود در سیستم این است که تمام دسترسی‌های مستقیم به منابع سیستم منحصرا بر اساس مد‌ها و قانون‌های تعیین شده توسط سیاست‌های امنیتی انجام پذیرد. در یک سیستم کنترل دسترسی(شکل ۲-۱) ، درخواست‌کننده (کاربر ، فرایند) به منابع (داده ، برنامه) از طریق اعمالی نظیر خواندن ، نوشتن و یا اجرا دسترسی پیدا می‌کند.

شکل ۲-۱ : سیستم کنترل دسترسی
از لحاظ عملکرد این سیستم از دو قسمت تشکیل شده است :
• مجموعه ای از سیاست‌ها و قانون‌ها : اطلاعات ذخیره شده در سیستم بیانگر مد دسترسی می‌باشد که کاربر به هنگام دسترسی به منابع ملزم به پیروی از آنها است.
• مجموعه ای از رویه‌های کنترلی (مکانیسم‌های امنیت): این رویه‌ها درخواست دسترسی را بر اساس قوانین یاد شده بررسی می‌کنند. درخواست‌ها ممکن است مورد پذیرش ، رد و یا تغییر قرار گیرند و داده‌های غیر مجاز سانسور شوند.
سیاست‌های امنیتی: سیاست‌های امنیتی سیستم ، راهبردهایی هستند که با طراحی امنیت سیستم و مدیریت اختیارهای افراد در سیستم ، مرتبط هستند. این سیاست‌ها بیانگر اصولی هستند که بر اساس آنها دسترسی ، اعطا و یا رد می‌شوند. قوانین دسترسی بیانگر سیاست‌های امنیتی هستند و رفتار سیستم را در زمان اجرا مشخص می‌کنند.
سوالی که در اینجا مطرح است این است که چه مقدار از اطلاعات باید در دسترس هر درخواست‌کننده باشد؟ برای پاسخ به این سوال به بررسی محدودیت‌های دسترسی و دو سیاست پایه می‌پردازیم:
سیاست کمترین اختیار : بر اساس این سیاست به درخواست‌کننده‌گان سیستم کمترین مقدار اطلاعاتی را که برای انجام فعالیت‌های آنها مورد نیاز است ، در اختیار آنها می‌گذارند. در این سیاست فرض بر این است که امکان تعریف این حد پایین وجود دارد(در اکثر مواقع این کار با دشواری‌های بسیاری همراه است). ایراد این سیاست این است که ممکن است منجر به محدودیت‌های بزرگ برای بعضی از درخواست‌کننده‌گان شده و مانع فعالیت آنها شود.
سیاست بیشترین اختیار : این سیاست برای محیط‌هایی مانند دانشگاه‌ها و مراکز تحقیقاتی که محافظت از داده‌ها اهمیت چندانی ندارد مناسب است. در این محیط‌ها کاربران قابل اعتماد هستند و در ضمن داده‌ها باید بین افراد رد و بدل شوند. پس غالبا افراد به بیشتر داده‌های مورد نیاز خود دسترسی دارند.
از نظر کنترل دسترسی سیستم‌ها به دو دسته تقسیم می‌شوند : سیستم‌های باز و سیستم‌های بسته.