تنفيذ عناصر التحكم في التوافق للبيانات الحساسة

مكتمل

يعد تنفيذ عناصر التحكم في التوافق بعد ترحيل قاعدة البيانات أمرا مهما لضمان بقاء بياناتك آمنة ومتوافقة مع اللوائح ذات الصلة. يقدم الترحيل إلى بيئة جديدة، مثل Azure SQL، قدرات وميزات أمان جديدة.

استكشاف تدقيق الخادم وقاعدة البيانات

يتعقب تدقيق Azure SQL أحداث قاعدة البيانات، ويسجلها في سجل تدقيق مخزن داخل حساب Azure Storage أو مساحة عمل Log Analytics أو مراكز الأحداث. وعلاوة على ذلك، فإنه يسهل الحفاظ على الامتثال التنظيمي، وتحليل أنماط النشاط، واكتشاف الانحرافات التي يمكن أن تشير إلى انتهاكات أمنية.

يمكنك تعريف النهج على مستوى الخادم وقاعدة البيانات. تغطي نهج الخادم تلقائيا قواعد البيانات الجديدة والحالية في Azure.

  • يؤدي تمكين تدقيق الخادم إلى تشغيل التدقيق لقاعدة البيانات، بغض النظر عن إعدادات التدقيق الفردية الخاصة بها.
  • يمكنك تمكين التدقيق على مستوى قاعدة البيانات، ما يسمح لكل من نهج الخادم وقاعدة البيانات بالتعايش في وقت واحد.
  • يتم تمكين التدقيق على النسخ المتماثلة للقراءة فقط تلقائيا.

من الأفضل عدم تمكين كل من تدقيق الخادم وتدقيح قاعدة البيانات معا، باستثناء السيناريوهات التالية.

  • تحتاج إلى حساب تخزين مميز أو فترة استبقاء أو مساحة عمل Log Analytics لقاعدة بيانات معينة.

  • مطلوب تدقيق لقاعدة بيانات معينة مع أنواع أحداث فريدة أو فئات مميزة عن الفئات الأخرى على الخادم.

في جميع الحالات الأخرى، نوصي بتمكين التدقيق على مستوى الخادم فقط والاحتفاظ بتعطيل التدقيق على مستوى قاعدة البيانات لجميع قواعد البيانات.

يتضمن نهج التدقيق الافتراضي لقاعدة بيانات SQL مجموعة من مجموعات الإجراءات التالية:

مجموعة الإجراءات التعريف
BATCH_COMPLETED_GROUP تدقيق جميع الاستعلامات والإجراءات المخزنة المنفذة مقابل قاعدة البيانات.
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP يشير هذا إلى نجاح كيان في تسجيل الدخول إلى قاعدة البيانات.
FAILED_DATABASE_AUTHENTICATION_GROUP يشير هذا إلى فشل أساسي في تسجيل الدخول إلى قاعدة البيانات.

لتمكين التدقيق لجميع قواعد البيانات على خادم Azure SQL، حدد Auditing في قسم Security في الجزء الرئيسي للخادم الخاص بك.

لقطة شاشة لخيار التدقيق في قسم الأمان لخادم SQL.

تسمح لك صفحة Auditing بتعيين وجهة سجل التدقيق واختيار ما إذا كنت تريد تعقب عمليات مهندس دعم Microsoft على نفس وجهة السجل مثل Azure SQL Auditing أو تحديد واحدة مختلفة.

لقطة شاشة لصفحة التدقيق لخادم SQL.

يمكنك مراجعة سجلات التدقيق لعمليات دعم Microsoft في مساحة عمل Log Analytics، عن طريق تشغيل الاستعلام التالي:

AzureDiagnostics
| where Category == "DevOpsOperationsAudit"

هام

تم ضبط خدمات تدقيق Azure SQL Database وAzure SQL Managed Instance للحصول على التوفر والأداء الأمثل. ومع ذلك، تجدر الإشارة إلى أنه في ظل ظروف النشاط العالي بشكل استثنائي أو ازدحام كبير في الشبكة، قد لا يتم تسجيل بعض الأحداث المدققة.

تدقيق التسميات الحساسة

عند دمجها مع تصنيف البيانات، يمكنك أيضا مراقبة الوصول إلى البيانات الحساسة. تم تحسين تدقيق Azure SQL لتضمين حقل جديد في سجل التدقيق يسمى data_sensitivity_information.

من خلال تسجيل تسميات الحساسية للبيانات التي تم إرجاعها بواسطة استعلام، يوفر هذا الحقل طريقة أسهل لتتبع الوصول إلى الأعمدة المصنفة.

لقطة شاشة تعرض صفحة «Information Protection» من مدخل Azure.

يتكون التدقيق من تعقب وتسجيل الأحداث التي تحدث في محرك قاعدة البيانات. يعمل تدقيق Azure SQL على تبسيط خطوات التكوين المطلوبة لتمكينه، مما يسهل تعقب أنشطة قاعدة البيانات لقاعدة بيانات SQL والمثيل المدار SQL.

إخفاء البيانات الديناميكي

يعمل إخفاء البيانات الديناميكية عن طريق تعتيم البيانات من أجل الحد من تعرضها. يسمح للمستخدمين الذين لا يحتاجون إلى الوصول إلى المعلومات الحساسة برؤية العمود ولكن ليس البيانات الفعلية. يعمل إخفاء البيانات الديناميكي في طبقة العرض التقديمي، وتظل البيانات غير المقنعة مرئية للمستخدمين المميزين للغاية.

يوفر Dynamic Data Masking ميزة طلب الحد الأدنى من التعديل على التطبيق أو قاعدة البيانات. يمكنك تكوينه بشكل ملائم من خلال مدخل Microsoft Azure أو باستخدام T-SQL.

لقطة شاشة لأوامر T-SQL لإخفاء البيانات الديناميكية.

يتم إخفاء كل من عمودي PhoneNumberEmailAddress من مستخدم DDMDemo، الذي لديه إذن SELECT فقط على الجدول. يسمح للمستخدم برؤية الأرقام الأربعة الأخيرة من رقم الهاتف لأنه مخفي باستخدام وظيفة جزئية تحل محل جميع الأرقام الأربعة السابقة في العمود ما عدا الأرقام الأربعة الأخيرة. يعتبر هذا الإخفاء دالة مخصصة. بالإضافة إلى T-SQL، إذا كنت تستخدم قاعدة بيانات Azure SQL، يمكنك إنشاء قواعد إخفاء ديناميكية في مدخل Microsoft Azure.

لقطة شاشة لكيفية إضافة قاعدة الإخفاء في مدخل Azure.

لإضافة قاعدة إخفاء، انتقل إلى قاعدة البيانات الخاصة بك في مدخل Microsoft Azure وحدد Dynamic Data Masking في قسم Security من الجزء الرئيسي لقاعدة البيانات الخاصة بك.

يدعم "Dynamic Data Masking" أنماط الإخفاء التالية التي يمكن استخدامها:

دالة الإخفاء التعريف مثال T-SQL
الإعداد الافتراضي إخفاء البيانات الموجودة في العمود دون الكشف عن أي جزء من القيم للمستخدم. قد يرى المستخدم XXXX لقيم السلسلة و0 للأرقام و01.01.1900 لقيم التاريخ. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'default()')
بطاقة الائتمان إخفاء جميع الأحرف باستثناء الأحرف الأربعة الأخيرة، ما يسمح للمستخدمين بمشاهدة الأرقام الأربعة الأخيرة. يمكن أن يكون هذا الإخفاء مفيدا لوكلاء خدمة العملاء الذين يحتاجون إلى عرض الأرقام الأربعة الأخيرة من رقم بطاقة الائتمان ولكن الذين لا يحتاجون إلى رؤية الرقم بأكمله. وتظهر البيانات في بالتنسيق المعتاد لرقم بطاقة الائتمان XXXX-XXXX-XXXX-1234. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'partial(0,"XXXX-XXXX-XXXX-",4)')
البريد الإلكتروني لا يتم إخفاء الحرف الأول ولاحقة المجال اللاحقة فقط؛ على سبيل المثال، "aXXX@XXXXXXX.com" ALTER TABLE [Customer] ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
الرقم‬ يجب استخدام تنسيق الإخفاء هذا على الأعمدة الرقمية. إنه يعرض رقمًا عشوائيًا كقيمة مخفية بدلاً من القيمة الفعلية. يُعرض رقم مختلف مع كل استعلام. ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
سلسلة مخصصة يسمح هذا الخيار بإخفاء النص بأي قيمة، وعرض عدد مخصص من الأحرف في أي من طرفي القيمة المخفية. إذا كان طول القيمة التي يتم إخفاءها مساويا لعدد الأحرف أو أقل منه، والذي يحدده القناع ليتم عرضه، عرض الأحرف المقنعة فقط. ALTER TABLE [Customer] ALTER COLUMN [PhoneNumber] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

لتمكين المستخدمين من استرداد البيانات غير المقنعة من الأعمدة التي تم تعريف الإخفاء لها، تحتاج إلى منح إذن UNMASK بشكل صريح.

ملاحظة

من الممكن تحديد البيانات التي تُخفى باستخدام الاستدلال استنادًا إلى النتائج. إذا كنت تستخدم إخفاء البيانات، يجب عليك أيضًا الحد من قدرة المستخدم على تشغيل الاستعلامات المخصصة.

ولهذا السبب، نوصي بدمج إخفاء البيانات الديناميكي مع ميزات الأمان الأخرى مثل التدقيق والتشفير والأمان على مستوى الصف لتحسين حماية البيانات الحساسة.

حالة الاستخدام

يعد إخفاء البيانات ميزة بسيطة وخفيفة الوزن، وهو مثالي للعديد من السيناريوهات، بما في ذلك:

  • إخفاء البيانات من مستخدمي التطبيق الذين ليس لديهم وصول مباشر إلى قاعدة البيانات.

  • تقييد المعلومات الخاصة لمجموعة من المستخدمين.

  • توفير بيانات مخفية للموردين الخارجيين، حيث تحتاج إلى حماية المعلومات الحساسة مع الحفاظ على العلاقات بين العناصر في البيانات.

  • تصدير نسخة من قاعدة بيانات الإنتاج إلى بيئة أقل لأغراض التطوير، باستخدام مستخدم يفتقر إلى إذن UNMASK. البيانات المصدرة بتنسيق مقنع.

استيراد البيانات وتصديرها

نسخ البيانات من عمود مخفي إلى جدول آخر باستخدام SELECT INTO أو INSERT INTO يؤدي إلى بيانات مخفية في الجدول الهدف.

عندما يقوم مستخدم بدون امتياز UNMASK بتشغيل SQL Server Import and Export، يحتوي ملف البيانات المصدر على بيانات مخفية، وستحتوي قاعدة البيانات المستوردة على بيانات مخفية بشكل غير نشط.