مقدمه
در SQL Server مانند هر دیتابیس دیگری که به عنوان پایگاهی برای داده ها تعیین می شود، باید از مواردی مانند سرقت دادهها و دسترسی افراد غیر مرتبط به آن جلوگیری کرد. در صورتیکه از داده هایی که در دسترس هستند به درستی محافظت نشود، این داده ها ممکن است به طور عمدی و یا حتی به صورت اتفاقی خراب شده و یا مورد تغییر قرار بگیرند. همچنین داده های تغییر یافته دیگر ارزش خود را از دست می دهند. به علاوه باید در نظر گرفت که ممکن است در دیتابیس ما داده هایی وجود داشته باشند که محرمانه بوده و باید برای افراد مختلف پنهان باقی بمانند.
تمام این موارد و علت های دیگر تامین امنیت سرور را ضروری می کند. نسخه های مختلف SQL Server مانند هر برنامه دیگر ویژگی های امنیتی مختص به خود را دارند و هر نسخه نسبت به نسخه قبل این ویژگیها در آن ارتقا یافته است. در این مقاله میخواهیم درباره بررسی امنیت SQL Server Express صحبت کنیم.
SQL Server چیست؟
در پاسخ به این سوال که نرم افزار SQL Server چیست، باید گفت که یک بانک اطلاعاتی از نوع دیتابیس های رابطه ای یا Relational Database است که توسط کمپانی Microsoft ارائه شده و وظیفه اصلی آن ذخیره و بازیابی اطلاعات بر اساس درخواست نرم افزارهای دیگر است. این برنامه دارای نسخه های متنوع و متناسب با مخاطبان و محیط های کار مختلف است. حال به صورت مختصر نگاهی به تاریخچه این نرم افزار می اندازیم.
کدهای پایه این برنامه، ابتدا توسط شرکت Sybase SQL Server طراحی شد و بعدها شرکت مایکروسافت، امتیاز کامل آن را خریداری نمود. هدف مایکروسافت از خریداری این نرم افزار، ارتقای آن به سطوح بالاتر و رقابت با دیتابیس های ارائه شده توسط شرکت های Oracle و IBM بود. اولین نسخه از این نرم افزار به نام SQL Server 1.0 برای سیستم عامل OS2 در سال ۱۹۸۹ منتشر گردید. بعدها نسخهMicrosoft SQL Server 4.21 برای سیستم عامل “Windows NT 3.1” منتشر شد و همین موجب محبوبیت بیشتر آن نزد کاربران ویندوز گردید. Microsoft SQL Server 6.0، اولین نسخه این نرم افزار برای سیستم عامل های ویندوز NT بود که در ساخت آن، از هیچ یک از تکنولوژی های Sybase استفاده نشد.
چه نیازی به بررسی امنیت SQL Server Express است؟
حال قصد داریم ببینیم اصلا بررسی امنیت SQL Server Express چه ضرورتی دارد. در مدیریت یک سرور باید حتماً در نظر داشته باشیم که ویژگی های امنیتی خود سرور به تنهایی امنیت داده های آن را تضمین نمی کند و هر سرور بسته به استفاده ای که از آن می شود و افرادی که داده ها در معرض استفاده آنها قرار می گیرد و کاربران سرور، باید سطح قابل قبولی از امنیت را داشته باشد.
بسته به تعداد کاربران سرور و استفاده هایی مانند اتصال به اینترنت و یا استفاده آفلاین، سطحی از امنیت برای سرور ضروری است و این اقدامات امنیتی و تامین امنیت سرور باید در زمان طراحی سرور انجام شوند. همچنین در نظر داشته باشید که ایجاد سطوح امنیتی مختلف در زمان طراحی سرور کافی نیست و ممکن است سرور پس از شروع به کار با باگ های امنیتی مختلفی روبرو شود و نیاز به ارتقا در امنیت آن باشد. پس موضوع امنیت درباره سرور موضوعی است که همیشه باید آن را مدنظر داشته باشید.
بررسی امنیت SQL Server Express
نسخه Microsoft SQL Server Express Edition (SQL Server Express)، مبتنی بر نسخه اصلی آن یعنی، Microsoft SQL Serverاست و اغلب ویژگی های این پایگاه داده را درون خود داشته و از آن ها پشتیبانی می کند. اما SQL Server Express به گونه ای ساخته شده که در آن، کلیه ویژگی های غیرضروری و همچنین ارتباط شبکه به طور پیش فرض غیرفعال هستند.
این خصوصیت سبب می شود که سطح در دسترس برای حملات به صورت قابل ملاحظه ای کاهش یابد. SQL Server Express معمولاً تحت عنوان یک نمونه نام گذاری شده (named instance) نصب می شود. نام پیش فرض این نمونه اولیه، SQL Express است. یک نمونه نام گذاری شده (named instance) توسط نام شبکه سیستم میزبان آن نمونه به اضافه نام نمونهای که شما در طول نصب مشخص می کنید، شناسایی می شود.
همانطور که در بررسی امنیت SQL Server Express گفتیم، به دلایل امنیتی پروتکل های شبکه به طور پیش فرض غیرفعال هستند. این خصوصیت سبب جلوگیری از حملات کاربران بیرونی که ممکن است کامپیوتر میزبان نمونه SQL Server Express را مورد سو استفاده و هدف حملات خود قرار دهند، می شود. برای ایجاد ارتباط در این نسخه نیاز است که شما به طور صریح ارتباط شبکه را فعال کرده و سرویس SQL Server Browser را نیز فعال نمایید، تا بتوانید از یک کامپیوتر دیگر به یک نمونه SQL Server Express متصل شوید. اما هنگامی که ارتباط شبکه فعال می شود، این نسخه از برنامه، دقیقا نمونه ای دارای الزامات امنیتی مشابه با سایر نسخه های SQL Server است.
بررسی امنیت SQL Server Express؛ بررسی سطوح امنیت
در سطح امنیت اولیه کاربر برای اقدام به ارتباط با دیتابیس نیاز به یک آیدی از قبل ثبت شده و یک پسورد مختص به آن را خواهد داشت. اگر کاربری فاقد این موارد باشد در همین سطح امنیت متوقف شده و به سطح بعدی وارد نخواهد شد. مواجه شدن با سطح دوم امنیت به این معنی است که کاربر یک آیدی و یک پسورد ثبت شده مختص آن آیدی را داشته است.
در سطح بعدی یا همان سطح سوم امنیت سرور، آیدی کاربران با سطح دسترسی آنها از قبل مرتبط شده است. یعنی دیگر پسورد معنایی نداشته و توسط مدیر و یا مسئول سرور از قبل سطح دسترسی کاربر تعیین شده است. در سطح چهارم SQL Server آیدی کاربری که به سرور متصل است را کنترل کرده و مجوزهای دسترسی او را مورد بررسی قرار می دهد.
بررسی امنیت SQL Server Express؛ نمونه کاربری
پس از مواردی که تا به اینجا مورد بررسی قرار گرفتند، حال می خواهیم به نقش نمونه کاربری در بررسی امنیت SQL Server Express بپردازیم. یک نمونه کاربری عبارت است از یک نمونه پایگاه داده SQL Server Express که توسط یک نمونه اولیه SQL Server Express تولید شده است. هدف اولیه و اساسی یک نمونه کاربری این است که به کاربرانی که ویندوز را با یک حساب کاربری دارای حداقل دسترسی اجرا می کنند، در سیستم شخصی خود کاربر مجوز دسترسی مدیر سیستم (sysadmin) را بدهد.
به عبارت دیگر می توان گفت که نمونه های کاربری مربوط به کاربرانی که بر روی سیستم های خود مدیر سیستم هستند، نیست. یک نمونه کاربری از یک نمونه اولیه SQL Server یا SQL Server Express و از طرف یک کاربر ایجاد می شود. این نمونه، یک پردازه کاربری را تحت بستر امنیتی ویندوز کاربر اجرا می کند.
در این حالت لاگین های SQL Server غیر مجاز هستند و فقط لاگین های ویندوز پشتیبانی می شوند. این مسأله از ایجاد تغییراتی خارج از مجوزهای کاربری توسط نرم افزاری که بر روی یک نمونه کاربری اجرا می شود، جلوگیری می کند. یک نمونه کاربری همچنین برخی اوقات به عنوان RANU (run as normal user) نیز شناخته می شود.
هر نمونه کاربری از نمونه والد خود و نیز از سایر نمونه های کاربری اجرا شده بر روی همان سیستم، کاملاً جدا است. پایگاه های داده نصب شده بر روی نمونه های کاربری فقط در مود تک کاربره (single-user) باز می شوند و در نتیجه چندین کاربر به طور همزمان نمی توانند به آنها متصل شوند. پرس و جوهای توزیع شده و نیز اتصال از راه دور برای نمونه های کاربری غیرفعال است. کاربران پس از اتصال به یک نمونه کاربری، دارای هیچ حق دسترسی ویژه ای بر روی نمونه SQL Server Express والد نیستند.
بررسی امنیت SQL Server Express؛ ابزارهای امنیتی قابل استفاده
در انتها بررسی امنیت SQL Server Express می خواهیم ابزار هایی را برای تقویت برقراری ارتباط و امنیت در SQL Server نام ببریم.
SQL Critical: این برنامه که توسط شرکت مایکروسافت عرضه شده است، شامل موارد مختلفی است: SQL Critical Update که همواره در این آپدیت ها مواردی امنیتی برای نسخه های قبلی SQL Server به منظور محافظت در برابر برخی ویروس ها قرار داده شده است. SQL Scan برای امکان اسکن در این نرم افزار قرار داده شده است که این امکان هم آن را در برابر موارد مخرب محافظت می کند.
Microsoft Baseline Security Analyzer (MBSA): این ابزار محافظتی باز هم از سوی مایکروسافت ارائه شده است. با استفاده از این ابزار فایل ها و داده های نرم افزارها و ویندوز چک شده و با آخرین موارد امنیتی تطبیق داده می شوند و در صورت وجود اشکال ما را مطلع می کنند.
SQL LiteSpeed: با استفاده از این نرم افزار می توانید از فایل ها و داده های دیتابیس های مختلف در SQL Server بکاپ بگیرید و آن را به صورت فایل رمزگذاری شده نگه دارید.
EnforcePass: آمارها نشان داده اند که هکرها در بسیاری از حملات موفق خود در واقع موفق می شوند کلمات عبور ضعیف کاربران را حدس بزنند و آنها را شناسایی کنند. با استفاده از این نرم افزار می توانید از به کارگیری کلمات عبور ضعیف و قابل حدس توسط کاربران جلوگیری کرده و پسورد های استفاده شده در سرور را قوی کرده و با این راه از نفوذ بیگانگان به آن جلوگیری کنید.