موارد امنیتی SQL Server Managment

 

 

امنیت در زمان استفاده از بانک‌های اطلاعاتی، خصوصا بر بستر اینترنت یکی از موارد مهم این‌روزها است. در این مقاله قصد داریم خلاصه‌ای از بهترین موارد امنیتی که در هنگام استفاده از SQL Server Management می‌توان درنظر گرفت را بیان کنیم:

  • تنهاComponent (کامپوننت‌)ها و Network Libraryهایی که نیاز دارید را نصب کنید.
  • بعد از نصب با استفاده از ابزار SQL Server Configuration Manager، ویژگی‌ها و سرویس‌های غیر ضروری را غیر فعال کنید.
  • حالت Windows Authentication امن‌تر از حالت SQL Authentication و توصیه شده‌است تا حد امکان از حالت Windows Authentication mode  استفاده کنید؛ اگر احتیاج به استفاده از حالت SQL Authentication دارید حتما از رمز عبورهای پیچیده‌ استفاده کنید.

موارد زیر را در انتخاب رمز عبور و نام‌کاربری در نظر بگیرید:

  1.  بهتر است رمز انتخابی ترکیبی از حروف کوچک، بزرگ، سمبل‌ها -کارکترهای غیر الفبایی مانند &, ^,%,*,$- و اعداد باشد.
  2. از نام‌های کاربری شناخته شده، رایج و آسان مانند admin ،password ،sa ،administrator ،sysadmin و امثال آن استفاده نکنید.
  3. از رمز عبورهای طولانی استفاده کنید (حداقل ۸ کاراکتر).
  4. چنانچه نیاز به استفاده از حالت SQL Authentication دارید، حتما از گواهینامه SSL  معتبر استفاده کنید.
  5. SQL Server 2005 اجازه نمی‌دهد که اکانت sa  بدون پسورد باشد، بنابراین رمز عبور اکانت sa را با توجه به موارد گفته شده تنظیم نمائید.

نکته: درصورتیکه در هنگام نصب حالت Authentication mode انتخاب شده‌است بصورت پیش فرض login sa  غیرفعال می‌باشد.اگر حالت Authentication را پس از نصب به SQL Server تغییر دهید، اکانت sa غیر فعال خواهد بود، و باید به صورت دستی فعال شود.

  •  از Mixed Mode Authentication برای برنامه‌های کاربردی Legacy و کاربران غیر ویندوزی استفاده کنید، توجه داشته باشید زمانیکه از Mixed Mode Authentication استفاده می‌کنید، برای امنیت بیشتر اکانت sa را تغییر نام دهید.

تغییر نام اکانت Sa

  • قبل از تغییر نام اکانت sa، بررسی کنید که اکانت دیگری به SQL دسترسی دارد یا خیر.
  • رمز عبور sa را بصورت دوره‌ای و با توجه به توصیه‌های بالا تغییر دهید.
  • تغییر port پیش فرض: پورت پیش فرض اتصال به SQL سرور ۱۴۴۳ می باشد، و برای هکرها شناخته شده‌است، بنابراین این پورت  را تغییر دهید تا از Port scanning هکرها جلوگیری نمائید. مقادیر TCP Dynamic و TCP Port را برای هر IP آدرس بجز  IP all پاک کنید.

امنیت در SQL

  • Instance های SQL Server را مخفی نمائید و یا سرویس SQL Server Browser را غیر فعال کنید.

امنیت در SQL

  • گروه BUILDIN\Administrators را حذف کنید.

به‌کمک Query زیر می‌توانید گروه ویندوز BUILTIN\Administrators  از یک Instance  در  SQL Server  را حذف نمائید، در صورتیکه چندین Instance  وجود دارد باید Query زیر برای هر یک بصورت جداگانه اجرا شود.

امنیت در SQL

  • غیر فعال کردن برخی از Stored Procedures.

Sql Server دارای Stored Procedureهای گوناگونی همچون xp_cmdshell orsp_send_dbmail است که با سیستم‌عامل در تعامل است، این دسته از Stored Procedureها کدهایی خارج از Permitionهای نرمال SQL اجرا می‌کنند که می‌تواند ریسک‌های امنیتی به‌همراه داشته باشد.

در SQL Server 2005 ممکن است Stored Procedures در ابزار Surface Area Configuration  فعال/غیر فعال باشند. این موضوع را می‌توانید در مسیر زیر بررسی و مدیریت نمایید:

Start -> All Programs -> Microsoft SQL Server 2005 -> Configuration Tools -> Surface Area Configuration tool.

توجه داشته باشید که ویژگی های زیر باید غیر فعال بمانند:

  • غیر فعال نمودن xp_cmdshell   در صورت عدم نیاز.
  • غیر فعال کردن کامپوننتهای COM.
  • غیر فعال کردن Procedure  های مربوط به ایمیل (Database Mail and SQL Mail) درصورتیکه نیاز به ارسال ایمیل به‌وسیله‌ی SQL Server ندارید.

نکته: برخی از Stored Procedureها مثل Procedureهایی که در کتابخانه‌های  SQLSMO و SQLDMO استفاده می‌شوند را نمی‌توان به‌وسیله‌ی SQL Server Surface Area  مدیریت نمود.آن‌ها باید به‌صورت مستقیم به‌وسیله‌ی sp_configure یا The SQL Server Management Studio(SSMS) مدیریت شوند.

  • رمزنگاری: اطلاعات حساس مانند شماره کارت اعتباری، سریال‌ها در دیتابیس باید بصورت رمز نگاری شده ذخیره شوند.
  • محدود کردن دسترسی به کامپیوتر SQL سرور، به اشتراک نگذاشتن پوشه‌های پایگاه‌داده در شبکه، حذف دیتابیس‌هایی که به آن‌ها احتیاج ندارید و بستن SQL چنانچه از آن استفاده نمی‌کنید ازجمله مواردی است که می‌توان در زمینه‌ی امنیت فیزیکی اعمال نمود.
  • محدود کردن تعداد یوزرهایی با نقش db_owner   برای هر DataBase.
  • تعریف owner‌های مجزا: توجه داشته باشیدکه دیتابیس ها دارای owner (مالک، مدیر)های مجزا می‌باشند؛ از تعیین نمودن owner  کلیه DataBaseها بصورت SA یا sysadmin یا هر یوزر دیگری خودداری کنید.
  • حذف یوزر  guest از همه دیتابیس ها بجز master، msdb  و tempdb.
  • NTFS File System: سطح امنیتی فایل‌ها و فولدرها یکی از مزایای کلیدی این فایل‌سیستم می‌باشد، که به کاربر امکان تعریف مجوزهای مناسب امنیتی برای کار با فایل‌های مهم را فراهم می‌کند.
  • Patching Server: مایکروسافت بطور منظم Service Packها و بروز رسانی‌های امنیتی جدید منتشر می‌کند، همیشه آخرین Service Packهای SQL و ویندوز را نصب کنید و بدین ترتیب  نرم افزار را بگونه‌ی امن‌تر، قوی، و بدون باگ حفظ نمائید.
  • پس ازنصب فایل‌های setup را حذف نمائید. فایل‌های setup  مانند ایل‌های sqlstp.log ،sqlsp.log ،setup.iss در MSSQL\Install (یا MSSQL$;\Install، شامل متن‌های ساده و گواهینامه‌های رمزنگاری شده هفتگی می‌باشند؛ این فایل‌ها ممکن است در هنگام نصب اطلاعات حساسی از تنظیمات انجام شده را ذخیره نمایند، بنابراین بهتر است پس از نصب آن‌ها را حذف نمایید.
  • Audit: هدف از فعال کردن Audit نظارت بر فعالیت‌های در حال انجام یا انجام شده و ثبت وقایع در یک LogFile (فایل گزارش) است؛ فعال کردن Audit این امکان را به شما می‌دهد تا هر آسیب‌پذیری احتمالی را پیش بینی و از وقوع آن جلوگیری نمائید. چهار سطح امنیتی برای فعال نمودن Audit وجود دارد، توصیه می‌شود گزینه Both Failed and Successful Logins را انتخاب نمائید.

 

امنیت در SQL