در قسمت اول از مقالهی «ایمن نگاه داشتن دادهها با SQL Server 2016» علاوه بر معرفی این سیستم مدیریت دیتابیس و ویژگیهای امنیتی آن، به لایهی حفاظت از برنامه کاربردی نیز پرداخته شد. در بخش دوم، لایهی حفاظت از شبکهی داده و در بخش سوم، لایهی حفاظت از دیتابیس مورد بررسی قرار گرفت. در بخش چهارم و آخر به بررسی لایهی محافظت از Host دیتابیس پرداخته میشود.
محافظت از سرورهای دیتابیسی
غالبا در مبحث محافظت از دیتابیس، حفاظت از داده در مقابل کسانی که به ماشین میزبان و یا سیستم عامل آن دسترسی دارند و یا به صورت فیزیکی به سختافزار دسترسی دارند، قابل توجه میباشد. محافظت از دیتابیس شدیداً متکی به رمزگذاری و همچنین تفکیک Roleها میباشد. SQL Server 2016 چندین ویژگی رمزگذاری ارائه میدهد که میتوان بعضی از آنها را Stack نمود تا ریسک بُروز نقضهای امنیتی به شدت کاهش یابد. به علاوهی ویژگیهای مختص به SQL Server، ویژگیهای در سطح Host، مانند Bitlocker Drive Encryption (که از درایو فیزیکی محافظت میکند) و Extensible Key Management (که Storage کلیدی رمزگذاری Off-Host و یا حتی Off-Site را فراهم میآورد) حفاظت از دادههای حساس را به سطح بالاتری میبرند. به علاوه، Policy قدرتمندی از تفکیک Role در Host با دسترسی به JEA و Database Engine، سطح دیگری از حفاظت را فراهم مینماید.
سناریوی بعدی که مورد بررسی قرار میدهیم، در مورد یک دپارتمان تحقیق و توسعه، با ذخیرهی گستردهای از طراحیهای اختصاصی و دادههای آزمایشی میباشد که میتواند به یک قرارداد دولتی اعمال گردد. به دلایل متعددی، دادههای پژوهشی باید On-Site بمانند و در مقابل دسترسی غیرمجاز از آنها محافظت گردد. این امر شامل مدیران سیستمی میشود که دارای دسترسی سطح بالا به سیستمها هستند و یا به این دسترسی نیاز دارند و همچنین احتمال دزدی هارد درایوهای فیزیکی را نیز دربر میگیرد.
Always Encrypted برای این سناریو نیز قابل اعمال است، زیرا دادهها در حالت رمزگذاریشده خود ذخیره میگردند. از آنجایی که برنامههای کاربردی Client که از این دادهها استفاده میکنند، مسئول فرایند رمزگشایی میباشند و کلیدهای رمزگذاری به طور جداگانه از موتور دیتابیس ذخیره میگردند، Always Encrypted میتواند از دادهها هم در حالت In-Motion و هم At-Rest شامل هر عمل مخربی از مدیران دیتابیس، محافظت نماید.
به علاوهی استفاده از Always Encrypted برای رمزگذاری دادهای End-to-End، برای محافظت از دادههای On-Disk و همچنین Backupها از TDE استفاده میگردد. با EKM، کلیدهای رمزگذاری که در Smart Cardهای مجزا ذخیره شدهاند، براساس نیازهای آنان به DBAها توانایی Backup یا Restore و یا مدیریت داده به شکلی دیگر را میدهد. مدیران سیستم یا سیستم عامل، توانایی ورود به سیستمها برای اجرای Taskهای مدیریت و نگهداری را دارند، اما توانایی رمزگشایی فایلهای دیتابیس را ندارند. این امر از دادهها در مقابل اعمال مخرب مدیران متخلف محافظت مینماید.
مایکروسافت جهت کاهش بیشتر ریسک در مورد نقضهای امنیتی در ویندوزهای سرور، Just Enough Administration یا به اختصار JEA را معرفی نمود. مفهوم JEA این است که مدیران اکثر زمان خود را در Logonهای استاندارد، بدون اجازههای سطح بالا سپری نمایند. JEA به طور موقت برای کاربر مجاز، اجازهی سطح بالایی را برای اجرای مجموعهای از Taskها که نیازمند اجازهی سطح بالا هستند، فراهم مینماید. این عمل بهشدت Log و مانیتور میگردد و در نتیجه بیش از پیش در مقابل فعالیت مخرب از سیستمها محافظت میشود. JEA یک ابزار (Toolkit) متعلق به Windows PowerShell است که میتواند برای اعمال اجازهی سطح بالای موقت به Instanceهای SQL Server و کاربردهای مدیریتی Windows Server، مورد استفاده قرار بگیرد. JEA روی Windows Server 2008 R2 به بالا پشتیبانی میگردد و در Windows Server 2016 به صورت Built-In موجود است. Privileged Access Management یا به اختصار PAM به JEA مرتبط است و بیش از پیش از گروههای کاربری که دسترسی به کامپیوترها را در یک دامین کنترل میکنند، محافظت مینماید. PAM نیز مانند JEA، نظارت و کنترل بیشتری را بر روی فعالیتهای مدیران با دسترسی سطح بالا فراهم مینماید. PAM حسابهای دارای دسترسی سطح بالا را به یک دامین مجزا (پایه و اساس) و قابل اعتماد تفکیک مینماید.
اکانتهای دامین، از طریق یک پروسهی تایید ایجاد میگردند و دارای عضویتهایی با محدودیت زمانی میباشند. این امر به کاربران این توانایی را میدهد که براساس نیاز خود، با سطحی بالا از مسئولیت و بدون نیاز به اجازههای سطح بالای دائمی، درخواست دسترسی ویژه بدهند.
Bitlocker Drive Encryption نیز لایهی حفاظتی دیگری را اضافه مینماید. با فعال بودن Bitlocker، تمامی حجمهای روی دیسک رمزگذاری میشوند و کلیدها روی TPM سرور ذخیره میشوند و یا به HSM متصل میگردند. در صورتی که هارد درایوی به صورت فیزیکی جدا شده و با هدف دزدیدن اطلاعات به رایانهی دیگری متصل گردد، حجمهای رمزگذاریشده روی درایو همچنان به صورت رمزگذاریشده باقی میمانند و بدون داشتن TPM/HSM Key Store اصلی، قابل رمزگشایی نخواهند بود.
محافظت از سرور، از Database Engine Instance فراتر رفته و وارد محیط و سختافزار سرور (Host) میگردد. با رمزگذاری، در چندین سطح از دادههای At Rest محافظت میشود و کلیدهای آنها را میتوان در یک کلید ذخیرهسازی خارجی نگهداری نمود. فایلها و Backupهای دیتابیس به صورت Transparent رمزگذاری میگردند. تفکیک Roleها مدیران را از قابلیتهای Read یا Write داده تفکیک نموده و JEA این تفکیک را بیش از پیش بهبود میبخشد. Bitlocker Drive Encryption نیز یک لایهی حفاظتی دیگر را اضافه کرده و حتی در صورت بروز نقض امنیتی فیزیکی، از فایلهای دادهها محافظت مینماید. با فراتر رفتن از Database Engine، مدیران میتوانند دادهها را قفل نموده و آنها را ایمن نگاه دارند.
نتیجه اینکه SQL Server به شیوهای کاملا ایمن طراحی شده است و به صورت پیشفرض ریسکهای امنیتی بالقوه را کاهش دهد. با تکامل چشمانداز دادهها، حجم، دسترسپذیری و تهدیدات بالقوه، نیازمندیهای امنیتی دائماً درحال تغییر هستند. SQL Server 2016 ویژگیهایی را ارائه مینماید که به طور قابلملاحظهای استانداردهای امنیت داده را بالا برده و به توسعهدهندگان و مدیران راهی برای محافظت از داده در مقابل تهدیدات مختلف ارائه مینماید.
با هدف سهولت درک امنیت داده برای توسعهدهندگان و مدیران، در این مقاله ویژگیهای امنیتی و بهترین راهکارهای ارائه شده برای SQL Server و Windows Server سازماندهی شدند. با این چارچوب برای لایههای حفاظتی و ویژگیهای مختلف، سازمانها میتوانند راهکارهای ایمنتری را پیادهسازی نمایند و در نتیجه با تزریق اعتماد به نفس به کاربران، Clientها و مشتریان در مورد امنیت اطلاعات حساس و حیاتی خود، به صورت End-To-End از دادهها محافظت نمایند.
ـــــــــــــــــــــــــــــــــــــــــــــ
بررسی امنیت دادهها در SQL Server 2016 – قسمت اول
بررسی امنیت دادهها در SQL Server 2016 – قسمت دوم
بررسی امنیت دادهها در SQL Server 2016 – قسمت سوم
بررسی امنیت دادهها در SQL Server 2016 – قسمت چهارم (پایانی)