تنفيذ التدقيق
يوفر التدقيق رؤية لنشاط قواعد البيانات، مما يساعدك على اكتشاف التهديدات الأمنية، وتتبع الامتثال، والتحقيق في الحوادث. من خلال تسجيل من وصل إلى أي بيانات ومتى، يخلق التدقيق مسار للمساءلة يدعم كل من المراقبة الأمنية والمتطلبات التنظيمية.
توفر قواعد بيانات SQL Server وAzure SQL وSQL في Microsoft Fabric قدرات تدقيق مدمجة تلتقط أحداث قاعدة البيانات دون الحاجة إلى تغييرات في التطبيق. فهم كيفية تكوين وإدارة التدقيق يساعدك على الحفاظ على الرقابة المناسبة على بيئات قواعد بياناتك.
فهم خيارات التدقيق
يقوم التدقيق بالتقاط أحداث قاعدة البيانات وكتابتها في سجل التدقيق. الأحداث التي تقوم بتدقيقها، ومكان تخزين السجلات، وكيفية تحليلها تعتمد على متطلبات الأمان والبنية التحتية لديك.
يستخدم تدقيق SQL Server بنية الأحداث الموسعة لتسجيل النشاط. يمكنك كتابة سجلات التدقيق إلى ملفات، أو سجل أمان ويندوز، أو سجل تطبيقات ويندوز. تتيح لك هذه المرونة الاندماج مع أنظمة إدارة السجلات الحالية.
تدقيق Azure SQL Database يكتب إلى Azure Blob Storage أو Log Analytics أو Event Hubs. الخدمة المدارة تتولى البنية التحتية، لذا يمكنك التركيز على تحديد ما ستتدقيقه بدلا من إدارة التخزين.
تستخدم قواعد بيانات SQL في Microsoft Fabric سجل الأنشطة في Fabric وMicrosoft Purview لبيانات التدقيق. هذا التكامل مع Microsoft Purview يمنحك تدقيقا موحدا عبر كامل ممتلكات بياناتك.
تكوين تدقيق SQL Server
يتطلب تدقيق SQL Server إنشاء كائن تدقيق للخادم يحدد مكان كتابة سجلات التدقيق، ثم إنشاء مواصفات تدقيق تحدد ما يجب التقاطه.
ابدأ بإنشاء تدقيق خادم يكتب في ملف:
CREATE SERVER AUDIT SecurityAudit
TO FILE (FILEPATH = 'C:\AuditLogs\', MAXSIZE = 100 MB, MAX_ROLLOVER_FILES = 10)
WITH (QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE);
يحدد المعامل QUEUE_DELAY عدد المللي ثانية التي يجب تخزينها للأحداث قبل الكتابة. القيم المنخفضة توفر تسجيل أطول في الوقت الحقيقي لكنها قد تؤثر على الأداء. الإعداد ON_FAILURE يحدد السلوك عندما تفشل كتابة التدقيق. الاستخدام SHUTDOWN في سيناريوهات الامتثال الحرجة التي يكون فيها فقدان سجلات التدقيق غير مقبول.
الآن فعل التدقيق:
ALTER SERVER AUDIT SecurityAudit WITH (STATE = ON);
بعد ذلك، أنشئ مواصفة تدقيق الخادم لالتقاط أحداث على مستوى الخادم:
CREATE SERVER AUDIT SPECIFICATION ServerAuditSpec
FOR SERVER AUDIT SecurityAudit
ADD (FAILED_LOGIN_GROUP),
ADD (SUCCESSFUL_LOGIN_GROUP),
ADD (SERVER_PERMISSION_CHANGE_GROUP),
ADD (DATABASE_PERMISSION_CHANGE_GROUP)
WITH (STATE = ON);
بالنسبة للأحداث على مستوى قاعدة البيانات، أنشئ مواصفة تدقيق قاعدة البيانات:
USE MyDatabase;
GO
CREATE DATABASE AUDIT SPECIFICATION DatabaseAuditSpec
FOR SERVER AUDIT SecurityAudit
ADD (SELECT, INSERT, UPDATE, DELETE ON dbo.SensitiveData BY public),
ADD (EXECUTE ON SCHEMA::dbo BY public),
ADD (DATABASE_ROLE_MEMBER_CHANGE_GROUP)
WITH (STATE = ON);
تقوم هذه المواصفة بمراجعة جميع الوصول إلى البيانات على SensitiveData الجدول، وتنفيذ الإجراءات المخزنة، وتغييرات عضوية الأدوار.
Configure Azure SQL auditing
يتم تكوين تدقيق قاعدة بيانات Azure SQL على مستوى الخادم أو قاعدة البيانات. تنطبق سياسات مستوى الخادم على جميع قواعد البيانات على الخادم المنطقي.
يمكنك تفعيل التدقيق في بوابة Azure أو باستخدام T-SQL:
-- Enable auditing to blob storage (configured in Azure portal)
ALTER DATABASE AUDIT SPECIFICATION AzureAuditSpec
ADD (SELECT, INSERT, UPDATE, DELETE ON DATABASE::MyDatabase BY public)
WITH (STATE = ON);
للحصول على تحكم أكثر تفصيلا، قم بتكوين التدقيق من خلال قوالب Azure Policy أو ARM. إليك مثالا يحدد حساب التخزين، وفترة الاحتفاظ، ومجموعات إجراءات التدقيق:
{
"properties": {
"state": "Enabled",
"storageEndpoint": "https://myauditlogs.blob.core.windows.net",
"retentionDays": 90,
"auditActionsAndGroups": [
"SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
"FAILED_DATABASE_AUTHENTICATION_GROUP",
"BATCH_COMPLETED_GROUP"
]
}
}
ملاحظة
يتيح تدقيق Azure SQL إلى Log Analytics قدرات قوية للاستعلام والتنبيه باستخدام لغة استعلامات Kusto (KQL). هذا التكامل يبسط مراقبة الأمن وتقارير الامتثال.
إجراءات التدقيق المختارة
اختر إجراءات التدقيق بناء على متطلبات الأمان والامتثال الخاصة بك. تشمل مجموعات العمل الشائعة:
أحداث المصادقة:
-
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP- تسجيل الدخول الناجح -
FAILED_DATABASE_AUTHENTICATION_GROUP- محاولات تسجيل الدخول الفاشلة
تغييرات الأذونات:
-
DATABASE_PERMISSION_CHANGE_GROUP- منح وإلغاء، ورفض العمليات -
DATABASE_ROLE_MEMBER_CHANGE_GROUP- تغييرات في العضوية في الأدوار -
DATABASE_PRINCIPAL_CHANGE_GROUP- إنشاء وتعديل المستخدمين
الوصول إلى البيانات:
-
BATCH_COMPLETED_GROUP- جميع الدفعات المكتملة (بحجم عال) -
SELECTعلى كائنات محددة - مراقبة الوصول إلى القراءة المستهدفة -
INSERT,UPDATE,DELETEعلى كائنات محددة - تتبع تعديل البيانات
تغييرات المخطط:
-
SCHEMA_OBJECT_CHANGE_GROUP- تعديلات الجداول والكائنات -
DATABASE_OBJECT_CHANGE_GROUP- بيانات DDL
مهم
ابدأ بمجموعة مركزة من إجراءات التدقيق بدلا من جمع كل شيء. يؤثر التدقيق الكبير على الأداء ويولد سجلات يصعب تحليلها.
استعلام وتحليل سجلات التدقيق
بالنسبة لتدقيقات ملفات SQL Server، استخدم الوظيفة fn_get_audit_file للاستعلام عن سجلاتك المستخدمة:
SELECT
event_time,
action_id,
succeeded,
session_server_principal_name AS UserName,
database_name,
object_name,
statement
FROM fn_get_audit_file('C:\AuditLogs\*.sqlaudit', DEFAULT, DEFAULT)
WHERE event_time > DATEADD(day, -7, GETUTCDATE())
ORDER BY event_time DESC;
إذا كنت تستخدم Azure SQL Auditing مع Log Analytics، يمكنك الاستعلام باستخدام KQL:
AzureDiagnostics
| where Category == "SQLSecurityAuditEvents"
| where TimeGenerated > ago(7d)
| where action_name_s == "SELECT"
| summarize count() by client_ip_s, server_principal_name_s
| order by count_ desc
يحدد هذا الاستعلام المستخدمين وعناوين IP التي أنشأت أكبر عدد من استعلامات SELECT خلال الأسبوع الماضي، مما يساعد في تحديد أنماط الوصول غير المعتادة.
تنفيذ الاحتفاظ بالتدقيق وحمايته
سجلات التدقيق الخاصة بك تحتاج إلى حماية من العبث، ويجب عليك الاحتفاظ بها وفقا لمتطلبات الامتثال.
بالنسبة ل SQL Server، قم بتكوين التخزين غير القابل للتغيير لملفات التدقيق واستخدم صلاحيات نظام ملفات ويندوز لمنع الحذف. بالنسبة ل Azure SQL، قم بتكوين التخزين باستخدام تخزين blob غير قابل للتغيير وقم بتعيين سياسات الاحتفاظ في إدارة دورة حياة Azure Storage.
مهم
يخزن سجلات التدقيق بشكل منفصل عن قواعد البيانات التي يراقبونها. هذا يضمن أنه حتى لو اخترق المهاجمون قاعدة بيانات، لا يمكنهم العبث بمسار التدقيق.
بالنسبة لسيناريوهات الامتثال، ضع في اعتبارك ممارسات الاحتفاظ هذه:
- حدد فترات الاحتفاظ بناء على المتطلبات التنظيمية (غالبا سبع سنوات للبيانات المالية)
- استخدم التخزين غير القابل للتغيير لمنع حذف السجلات
- تنفيذ أرشفة السجلات إلى التخزين البارد لإدارة التكاليف
- إنشاء عمليات لمراجعة سجلات التدقيق وتنبيه
المراجعة المنتظمة لبيانات التدقيق تساعدك على تحديد المشكلات الأمنية قبل أن تتحول إلى حوادث. أنشئ تنبيهات لمحاولات تسجيل الدخول الفاشلة، وتغييرات الأذونات خارج نوافذ الصيانة، وأنماط وصول غير معتادة للبيانات.