نکات امنیتی در SQL Server | با ۱۵ نکته برتر برای امنیت SQL Server آشنا شوید

نکات امنیتی در SQL Server | با ۱۵ نکته برتر برای امنیت SQL Server آشنا شوید

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۰۳ شهریور ۱۴۰۰
آخرین بروزرسانی: ۲۷ خرداد ۱۴۰۳
زمان مطالعه: 10 دقیقه
۳.۹
(۱۱)

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

نکات امنیتی در SQL Server

متداول‌ترین نکات امنیتی در SQL Server در این بخش شرح داده می‌شوند:

۱- پیاده سازی احراز هویت (Authentication) قدرتمند

یکی از نکات امنیتی در SQL Server ، استفاده از شیوه‌های احراز هویت قابل اکتفا است. توصیه می‌شود درصورت امکان، از احراز هویت ویندوز (Windows Authentication) استفاده کنید؛ زیرا این روش، از اکانت‌ها و گروه‌های موجود ویندوز استفاده می‌کند و با بهره‌گیری از مکانیزم‌های امنیتی ویندوز، یک لایه امنیتی اضافی را برای شما فراهم می‌‌کند. اگر با مفهوم احراز هویت ویندوز و کانفیگ کردن آن آشنا نیستید، می‌توانید از مقاله پیکربندی Authentication و Authorization به‌عنوان راهنما استفاده کنید. در سناریوهایی که باید از احراز هویت SQL Server استفاده کنید، به اعمال سیاست‌های قوی برای رمز عبور بپردازید. همچنین اطمینان حاصل کنید که رمزها پیچیده باشند، به‌طور مرتب تغییر یابند و در حساب‌های کاربری مختلف تکرار نشوند.

۲- اعمال اصل حداقل امتیازات (Least Privilege)

برای کاربران (Users)، نقش (Role) و سطح دسترسی (مجوز | Permission) را با کم‌ترین میزان حق دسترسی لازم برای انجام وظایفشان اختصاص دهید. از اعطای دسترسی‌های گسترده که فراتر از نیازهای شغلی افراد است، خودداری کنید. علاوه‌براین، به‌عنوان یکی از نکات امنیتی در SQL Server باید توجه داشته باشید که به‌صورت منظم، سطح دسترسی کاربران را بررسی و حسابرسی کنید تا مطمئن شوید با نقش‌ها و مسئولیت‌های فعلی آن‌ها در سازمان، دقیقاً همخوانی داشته باشد.

۳- به روز نگه داشتن SQL Server

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

۴- استفاده از Transparent Data Encryption

در مقاله آموزش رمزگذاری اطلاعات در SQL Server ، به بررسی چیستی و دلایل اهمیت روش رمزگذاری TDE یا همان Transparent Data Encryption پرداختیم. TDE داده‌ها را در حالت «ایستا» (Rest) روی پایگاه داده رمزگذاری می‌کند و این داده‌ها بدون دسترسی به کلید رمزگذاری صحیح، غیرقابل‌خواندن خواهند شد. این موضوع درصورت رخداد دسترسی غیرمجاز به فضای ذخیره‌سازی فیزیکی، از داده‌های شما محافظت می‌کند که یکی از مهم‌ترین نکات امنیتی در SQL Server محسوب می‌شود. توجه کنید که از کلیدهای رمزگذاری به‌طور مرتب و در مکان‌های امنی جدا از Backup های پایگاه داده، پشتیبانی بگیرید.

۵- فعال سازی SQL Server Audit

از قابلیت SQL Server Audit برای پیگیری و ثبت فعالیت‌های پایگاه داده استفاده کنید تا گزارشی از اینکه چه کسی، چه کاری و چه زمانی انجام داده است را در اختیار داشته باشید. مشخصات حسابرسی را متناسب با نیازهای امنیتی خود و با تمرکز بر رویدادهای مهم مانند خرابی ورود به سیستم، تغییرات مجوز و همچنین تغییرات داده تعریف کنید.

۶- امنیت اتصالات شبکه SQL Server

برای محدودکردن دسترسی به SQL Server، قوانین Firewall را اجرا کنید. این کار با محدودکردن Connection ها، فقط به منابع قابل اعتماد صورت می‌گیرد. از VPN یا IPsec به‌منظور ایمن‌سازی ارتباطات بین SQL Server و کلاینت‌ها استفاده کنید، به‌خصوص اگر اتصالات ازطریق شبکه‌های عمومی (Public) یا غیرقابل اعتماد برقرار شود.

۷- غیرفعال سازی سرویس ها و ویژگی های بلااستفاده

یکی دیگر از نکات امنیتی در SQL Server این است که شما باید هرگونه قابلیت و سرویس SQL Server که برای عملیات شما ضروری نیست را غیرفعال کنید. این کار سطوح بالقوه حمله‌های مخرب را به حداقل می‌رساند. به‌طور منظم قابلیت‌ها و سرویس‌های نصب‌شده را بررسی کنید و مطمئن شوید که فقط اجزای ضروری فعال هستند.

۸- رمزگذاری داده های در حال انتقال

برای رمزگذاری داده‌هایی که بین SQL Server و کلاینت‌ها منتقل می‌شوند، از SSL یا TLS استفاده کنید. این کار از صحت و محرمانه‌ماندن داده‌ها در طول انتقال محافظت می‌کند. ضمن اینکه اطمینان حاصل کنید که کلاینت‌ها برای جلوگیری از حمله man-in-the-middle، اعتبارسنجی Certificate مربوط به SSL/TLS سرور SQL را انجام می‌دهند.

۹- پشتیبان گیری مستمر از پایگاه داده

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

۱۰- اعمال ممیزی های امنیتی منظم

به‌عنوان یکی از نکات امنیتی در SQL Server و برای اطمینان از انطباق با سیاست‌های امنیتی و شناسایی آسیب‌پذیری‌های بالقوه، به‌طور مرتب، ممیزی‌های امنیتی انجام دهید. پیکربندی‌های SQL Server، سطوح دسترسی کاربران و تنظیمات امنیتی خود را به‌صورت دوره‌ای بررسی و ارزیابی کنید.

۱۱- خاموش کردن سرویس مرورگر SQL Server

سرویس مرورگر SQL Server به مدیران SQL و کاربران مجاز اجازه می‌دهد تا نمونه‌های پایگاه داده را در شبکه کشف کنند و نیازی به اختصاص شماره پورت به نمونه‌ها ندارد. با این وجود، این موضوع به برخی اجازه می‌دهد که از منابع موجود SQL Server اطلاعاتی کسب کنند. بنابراین، هنگام اجرای نمونه پیش‌فرض SQL Server، باید سرویس SQL Server Browser را خاموش کرده یا اینکه پورت دیگری را برای استفاده از آن در برقراری ارتباط پیکربندی کنید.

۱۲- استفاده از پسوردهای قوی

باید برای همه حساب‌های مدیر پایگاه داده ، یک رمز عبور قوی داشته باشند تا دربرابر حملات Brute-Force مقاوم شوند.

نکات امنیتی در SQL Server که برای انتخاب گذرواژه باید به آن‌ها دقت کنید عبارتند از:

  • گذرواژه‌ها باید حاوی حداقل ۱۰ نویسه، شامل حروف بزرگ و کوچک، اعداد و کاراکترهای خاص باشند. از رمزهای عبور آسان برای حدس‌زدن، مانند «password» ،«qwerty» یا نام و تاریخ تولد همسرتان خودداری کنید.
  • از استفاده رمز عبور مشابه برای چندین سیستم خودداری کنید.
  • پسورد خود را به‌صورت دوره‌ای تغییر دهید.
  • از ابزارهای مدیریت رمز عبور با یک کلید اصلی (Master Key) قوی، برای ذخیره چندین گذرواژه استفاده کنید.
  •  درمورد غیرفعال‌کردن و حذف Login ها آگاه باشید.

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

۱۳- جداسازی سرور پایگاه داده

از مهم‌ترین نکات امنیتی در SQL Server این است که سرورهای پایگاه داده تولید باید تا حد امکان از سایر برنامه‌ها و خدمات جدا شوند. سیستم‌عامل‌ها باید به تعداد اندک باشند و فقط سرویس‌های لازم نصب و اجرا شوند. بنابراین، برنامه‌های اضافی دیگری را نصب نکنید، مگر اینکه آن برنامه خاص، موردنیاز سرور پایگاه داده باشد. براساس اندازه محیط، باید SQL Server خود را در یک بخش شبکه محدود VLAN قرار دهید تا فقط ترافیک مجاز بتواند به آن منتقل شود. به‌طور معمول، فقط یک سرور برنامه یا وب‌سرور، مستقیماً با پایگاه داده ارتباط برقرار می‌کند؛ از این رو، می‌توان سیاست‌های شبکه نسبتاً محدودکننده‌ای را برای جلوگیری از اتصالات غیرقانونی اعمال کرد. اما شما هرگز نباید سرور پایگاه داده خود را به اینترنت در پورت‌های ۱۴۳۳/۱۴۳۴ (MSSQL) و ۳۳۰۶/۳۳۰۷ (MySQL) باز کنید.

۱۴- محدودسازی ترافیک SQL

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

در مواردی که نیاز به اتصال مستقیم مشتریان به پایگاه داده وجود دارد، باید همین رویکرد امنیتی را به کار گرفت و دسترسی را به آدرس‌های IP مشخص یا حداقل به یک زیرشبکه معین محدود کرد. توجه داشته باشید که این نقاط پایانی باید به دقت محافظت شوند تا از اسکن یا حملات بدافزاری به سرورهای SQL جلوگیری شود. محافظت از این نقاط می‌تواند ازطریق استفاده از ابزارهای امنیتی مانند iptables در سیستم‌عامل لینوکس، فایروال ویندوز، یا به‌طور ایده‌آل، با استفاده از دستگاه‌های فایروال اختصاصی انجام شود. این رویکردها به اطمینان از یک محیط امن و قابل اعتماد برای داده‌ها و ترافیک شبکه کمک می‌کنند.

۱۵- محافظت در برابر SQL Injection

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

برای کاهش خطر حملات SQL Injection ، روش‌های متعددی وجود دارد که شامل محدودکردن امکانات کاربران برای انجام عملیات‌های نامتعارف است. یکی از این راهکارها به‌عنوان یکی از نکات امنیتی در SQL Server، استفاده از استور پروسیجر (Stored Procedures) به جای کوئری‌های مستقیم SQL است. استور پروسیجرها تنها پارامترهای ازپیش‌تعیین‌شده‌ای را می‌پذیرند و فقط اجازه اجرای تعداد محدودی از عملیات‌های خاص را می‌دهند. این ویژگی‌ها به جلوگیری از ورود داده‌های مخرب به پرس‌وجوهای SQL خام کمک می‌کنند. با توجه به اینکه حملات SQL Injection همچنان یکی از شایع‌ترین و خطرناک‌ترین آسیب‌پذیری‌ها در وب‌اپلیکیشن‌ها به‌شمار می‌آیند، ضروری است که توسعه‌دهندگان و مدیران سیستم از روش‌های جامع و به‌روز امنیتی استفاده کنند تا از این تهدید به‌طور مؤثر محافظت نمایند.

جمع بندی : دلایل اهمیت نکات امنیتی در SQL Server

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

چه رتبه ای می‌دهید؟

میانگین ۳.۹ / ۵. از مجموع ۱۱

اولین نفر باش

title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
402 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
title sign
دیدگاه کاربران