مقدمه

داده ها یک دارایی مهم برای هر سازمانی هستند و در مسئله نقض امنیت، معمولا دلیل اصلی آن ضعیف بودن پایگاه های اطلاعاتی می باشد. امنیت اغلب جزو مهم ترین وظایف مدیر پایگاه داده محسوب می شود. SQL Server ویژگی های قدرتمند زیادی برای امنیت و حفاظت از داده ها دارد، اما برای پیاده سازی صحیح آن ها برنامه ریزی و تلاش لازم است. این مقاله به بررسی امنیت پایگاه داده SQL Server و ملاحظات اساسی امنیتی برای محافظت از داده ها در برابر حملات مخرب را توضیح می دهد.
امنیت داده ها از سه رکن اساسی: محرمانه بودن، یکپارچگی و در دسترس بودن (CIA) تشکیل شده است و با فرایند های خاصی برای محافظت از داده ها در برابر دسترسی عمدی و تصادفی سروکار دارد.

امنیت داده چیست؟

Microsoft SQL Server چندین ویژگی داخلی را ایجاد می کند که امنیت را فعال می کند، از جمله ارتباطات رمزگذاری شده بر روی SSL/TLS ، API حفاظت از داده های Windows (DPAPI) که برای رمزگذاری داده ها در زمان استراحت، احراز هویت و صدور مجوز استفاده می شود. هر یک از مدیران پایگاه داده می توانند این ویژگی ها را پیکربندی کرده یا در صورت لزوم به تنظیم و تدوین پروتکل های امنیتی اضافی بپردازند.

بهترین شیوه های تامین امنیت پایگاه داده SQL Server

  1.  از امنیت فیزیکی SQL Server خود اطمینان حاصل کنید
    وقتی صحبت از امنیت پایگاه داده SQL Server می شود، نمی توان امنیت فیزیکی را نادیده گرفت. امنیت فیزیکی به محدود کردن دسترسی غیر مجاز به مراکز داده یا سایر اجزای سرور فیزیکی اشاره دارد. به عنوان مثال: می توانید با استفاده از کارت هوشمند، اثر انگشت یا تشخیص چهره، یک اتاق قفل شده با دسترسی محدود را پیاده سازی کنید. همچنین می توانید یک بخش شبکه محدود برای SQL Server پیکربندی نمایید.
    مراکز داده زیر ساخت های یک سازمان مانند: روترها، سوئیچ ها، سرور ها، فایروال ها و دستگاه های ذخیره سازی را در خود جای داده است. امنیت فیزیکی با حفاظت از سخت افزار، نرم افزار و شبکه در برابر هرگونه دسترسی غیر مجاز یا بلایای طبیعی سروکار دارد که می تواند شامل موارد زیر باشد:
    •  ایمن سازی محل و تجهیزات و دسترسی به آن ها فقط برای افراد مجاز
    •  حفظ سیستم های کنترل دسترسی
    •  هوشیاری 24x7x365 با استفاده از نگهبانان امنیتی محل یا نظارت دوربین مدار بسته
    •  منبع تغذیه بدون وقفه (UPS)
    •  دارا بودن سیستم اعلام حریق و سیستم تشخیص دود آسپیراتور
    •  دارا بودن پنل فعال نشت یاب آب
    •  سیستم های دفع جوندگان
    •  سیستم های مهار آتش
    • کنترل و نظارت بر دما و رطوبت
    •  نگهداری دوره ای سخت افزار
  •  از سیستم عامل خود محافظت کنید

SQL Server بر روی یک سیستم عامل موجود مانند Windows یا Linux نصب شده است. بنابراین، امنیت سیستم عامل نقش مهمی برای تامین امنیت پایگاه داده SQL Server ایفا می کند. در ادامه چند توصیه برای محافظت از سیستم عامل آورده ایم:

  •  از وصله های امنیتی و سرویس پک های منظم سیستم عامل استفاده کنید.
  •  همیشه از نسخه های سیستم عامل محصول پایدار و پشتیبانی شده استفاده کنید. به عنوان مثال: مایکروسافت پشتیبانی از Windows Server 2003 را متوقف کرده. بنابراین، شما نباید از آن برای میزبانی پایگاه داده استفاده نمایید.
  • اجازه دسترسی به اینترنت در سرورهای پایگاه داده خود را ندهید.
  •  برای اطمینان از راه های کمتر برای حملات احتمالی، باید برنامه ها و درایوهای بلااستفاده حذف، متوقف یا غیرفعال شوند.
  •  پیاده سازی یک فایروال با دسترسی محدود به سرورهای پایگاه داده، به طوری که فقط سرورهای برنامه ای که نیاز به دسترسی به سرور پایگاه داده دارند؛ باید اجازه عبور از دیوارهای آتش را داشته باشند.
  •  پورت های خاصی را در فایروال باز کنید. به عنوان مثال: به طور پیش فرض، SQL Server روی پورت 1433 اجرا می شود. بنابراین،

اگر هیچ برنامه دیگری بر روی سرور اجرا نمی شود، می توانید پورت TCP 1433 و 3389 را برای دسترسی به سرور از راه دور مجاز نمایید. به طور مشابه، سرویس تجزیه و تحلیل از پورت پیش فرض 2383، به عنوان یک پورت استاندارد استفاده می کند. همچنین می توانید برای اطمینان از دسترسی به SQL Server از گواهینامه های SSL یا TLS استفاده کنید. این گواهی ها می توانند انتقال داده ها را بین SQL Server و برنامه های سرویس گیرنده رمزگذاری کنند.

  •  برای جلوگیری از حمله رله احراز هویت با استفاده از اتصال سرویس و اتصال کانال، از گزینه Extended Protection for Authentication استفاده نمایید. برای فعال کردن حفاظت گسترده، به SQL Server Configuration Manager بروید، صفحه را گسترش دهید، روی Protocols راست کلیک کرده و سپس به Advanced، Extended protection بروید. توجه داشته باشید؛ به طور پیش فرض این حالت خاموش است.
  • سطح خود را کاهش دهید

سطح SQL Server شامل ویژگی های موتور پایگاه داده است که عملکرد های بیشتری مانند ارسال ایمیل را ارائه می دهد. این اجزا ممکن است یک هدف بالقوه برای دسترسی به SQL Server برای فعالیت های مخرب باشند. بنابراین، باید جزء و ویژگی هایی را که در SQL Server استفاده نمی شود غیر فعال کنید، زیرا این امر حملات احتمالی را محدود می کند. اجزای اصلی که می توانید بررسی و غیر فعال کنید در زیر ذکر شده است:

  •  اسکن پروژه های راه اندازی
  •  روش های اتوماسیون OLE
  • CLR فعال است
  •  عبور از زنجیره مالکیت DB
  •  xp_cmdshell
  •  پایگاه داده Mail XPs
  • سرور را برای گوش دادن به پورت دیگر پیکربندی کنید

Microsoft SQL Server از پورت پیش فرض 1433 برای همه اتصالات پایگاه داده استفاده می کند. این یک خطر امنیتی رایج در بسیاری از محیط های پایگاه داده است؛ زیرا متخصصان پایگاه داده معمولاً پورت پیش فرض را تغییر نمی دهند. این پورت کاملا شناخته شده است و مهاجمان می توانند از این فرصت برای دسترسی به SQL Server استفاده نمایند. بنابراین، شما باید از یک پورت غیر پیش فرض برای تقویت امنیت SQL Server خود استفاده کنید. می توانید این مورد را با استفاده از SQL Server Configuration Manager تغییر دهید.

  •  تنظیم احراز هویت SQL Server

حفاظت از داده های شما بستگی به توانایی احراز هویت دسترسی به داده های خاص دارد. SQL Server دو گزینه برای احراز هویت پایگاه داده ارائه می دهد.

  •  احراز هویت ویندوز
  •  احراز هویت Windows و SQL (حالت مختلط)

احراز هویت ویندوز از حساب های فهرست فعال برای احراز هویت استفاده می کند. شما می توانید یک کنترل سیاست متمرکز برای پیچیدگی گذر واژه، انقضای گذر واژه، قفل شدن حساب و گروه های فعال دایرکتوری در فهرست فعال داشته باشید. بنابراین، شما باید به جای احراز هویت SQL Server از احراز هویت ویندوز استفاده کنید.
به اینصورت می باشد که کاربر با استفاده از یک حساب ویندوز متصل خواهد شد و SQL Server اعتبار ها را با استفاده از توکن اصلی ویندوز تأیید می کند. همچنین از پروتکل امنیتی Kerberos برای احراز هویت استفاده می نماید.

 

  • مجوز های حساب خدمات را به خاطر بسپارید

SQL Services از حساب Windows برای اجرای خدمات خود استفاده می کند. شما نباید از حساب های دارای امتیاز بالا و داخلی مانند سرویس شبکه یا سیستم محلی استفاده نمایید. به طور مشابه، برای یک حساب سرویس دامنه، باید امتیازات مربوط به هر نقش تعیین گردد.

بنابراین، توصیه می کنم برای جزئیات بیشتر در مورد مجوز های خدمات سرویس SQL Server، پیکربندی حساب ها و مجوز های سرویس Windows را تنظیم کنید.

  • پشتیبان گیری خود را ایمن کنید

وقتی صحبت از امنیت پایگاه داده SQL Server می شود، امنیت پشتیبان گیری شما بسیار مهم است. به طور معمول، متخصصان پایگاه داده همه الزامات را برای امنیت پشتیبان گیری از پایگاه داده در نظر نمی گیرند. پشتیبان گیری از پایگاه داده به معنی ایجاد یک کپی از حالت عملیاتی، معماری و داده های ذخیره شده در پایگاه داده است. بنابراین، حفاظت از آن به همان اندازه مهم است. این به معنای محدود کردن دسترسی به فایل های پشتیبان و رمزگذاری صحیح آن ها می باشد. وقتی صحبت از ایمن سازی نسخه پشتیبان می شود، چند موضوع برای یادآوری وجود دارد:
• برای ایجاد، مشاهده، اصلاح و حذف فایل های پشتیبان؛ دسترسی های مربوط به پوشه پشتیبان را در اختیار همه قرار ندهید.
• از پشتیبان گیری پایگاه داده با رمزگذاری استفاده نمایید.

 

  • تکنیک های رمز گذاری و پنهان سازی داده های SQL Server را به خاطر بسپارید

یک حوزه کلیدی در امنیت SQL Server رمزگذاری است. می توانید از مکانیزم های مختلف رمزگذاری برای محافظت از داده های حساس در پایگاه داده SQL Server خود استفاده کنید. گزینه های مختلف رمزگذاری به شرح زیر است.

  • همیشه رمزگذاری شده-Always Encrypted: تکنیک همیشه رمزگذاری شده به رمزگذاری داده های حساس در داخل برنامه های

سرویس گیرنده کمک می کند. درایور همیشه فعال با رمزگذاری خودکار، داده های حساس را در برنامه های سرویس گیرنده رمزگذاری و رمزگشایی می کند. کلید های رمزگذاری هرگز به موتور پایگاه داده SQL Server نشان داده نمی شوند و از داده های محرمانه محافظت می کند.

  •  رمزگذاری داده های شفاف – (TDE)Transparent data encryption : داده ها را در حالت استراحت رمزگذاری می کند. این به ایمن سازی پرونده های داده، پرونده های ورود و فایل های پشتیبان کمک می کند.
  •  رمزگذاری در سطح ستون-Column-level Encryption: رمزگذاری در سطح ستون به رمزگذاری داده های یک ستون خاص گفته می شود. به عنوان مثال: شماره کارت اعتباری و شماره های امنیت اجتماعی کمک می کند.
  •  پوشش داده های استاتیک-Static data masking: پوشش داده های استاتیک با استفاده از قوانین تغییر داده های تعریف شده، جایگزین داده های حساس می شود.
  •  پوشاندن داده های پویا-Dynamic data masking: پوشش داده های پویا کمک می کند به محدود کردن دسترسی به داده های حساس برای کاربران غیر ممتاز.
  • امنیت سطح ردیف-Row-level security: امنیت سطح ردیف دسترسی به ردیف داده را محدود می نماید.

نتیجه گیری

همانطور که گفته شد، امنیت پایگاه داده SQL Server فرایندی است که باید بصورت دائمی توسط عوامل و مراحل مختلف انجام گیرد. شما می بایست به طور منظم خط مشی های امنیتی را مرور نموده و آن ها را مرتباً در هر دو سطح سیستم عامل و SQL Server به روز کنید. با استفاده از تمامی این شیوه ها به طور منظم، باعث ایجاد یک پایگاه داده امن تر برای کسب و کارتان کمک خواهید کرد.