أحداث Kubeaudit في التتبع المتقدم
تتوفر أحداث Kubernetes Kubeaudit (والتدقيق السحابي ل Azure Resource Manager) في التتبع المتقدم في مدخل Microsoft Defender.
يمكنك فرز الحوادث التي حدثت على سطح هجوم وحدة تحكم Kubernetes الخاصة بك وAzure Resource Management والتحقيق فيها. يمكنك أيضا البحث بشكل استباقي عن التهديدات باستخدام التتبع المتقدم.
بالإضافة إلى ذلك، يمكنك إنشاء اكتشافات مخصصة لأنشطة وحدة التحكم في Resource Manager وKubernetes (KubeAudit) المشبوهة.
تغطي هذه الميزة:
أحداث Kubernetes KubeAudit من Azure (Azure Kubernetes Service) وAmazon Web Services (Amazon Elastic Kubernetes Service) وGoogle Cloud Platform (Google Kubernetes Engine) ومحلي
أحداث وحدة التحكم في Resource Manager
للبدء، راجع الجدول الجديد الذي تمت إضافته إلى علامة تبويب المخطط في التتبع المتقدم المسمى CloudAuditEvents.
السيناريوهات وحالات الاستخدام الشائعة
- التحقيق في أنشطة وحدة التحكم في Resource Manager وKubernetes (Kubeaudit) المشبوهة في التتبع المتقدم ل XDR
- إنشاء اكتشافات مخصصة لأنشطة وحدة التحكم في Resource Manager وKubernetes (Kubeaudit) المشبوهة
المتطلبات الأساسية
- بالنسبة لأحداث Kubernetes: تحتاج إلى اشتراك واحد على الأقل مع تمكين خطة Defender for Containers
- بالنسبة لأحداث Azure Resource Manager: تحتاج إلى اشتراك واحد على الأقل مع تمكين خطة Defender for Azure Resource Manager
نماذج الاستعلامات
لعرض نشر حاوية مميزة، استخدم نموذج الاستعلام التالي:
CloudAuditEvents
| where Timestamp > ago(1d)
| where DataSource == "Azure Kubernetes Service"
| where OperationName == "create"
| where RawEventData.ObjectRef.resource == "pods" and isnull(RawEventData.ObjectRef.subresource)
| where RawEventData.ResponseStatus.code startswith "20"
| extend PodName = RawEventData.RequestObject.metadata.name
| extend PodNamespace = RawEventData.ObjectRef.namespace
| mv-expand Container = RawEventData.RequestObject.spec.containers
| extend ContainerName = Container.name
| where Container.securityContext.privileged == "true"
| extend Username = RawEventData.User.username
| project Timestamp, AzureResourceId , OperationName, IPAddress, UserAgent, PodName, PodNamespace, ContainerName, Username
لعرض الأمر exec في مساحة اسم نظام kube، استخدم نموذج الاستعلام التالي:
CloudAuditEvents
| where Timestamp > ago(1d)
| where DataSource == "Azure Kubernetes Service"
| where OperationName == "create"
| where RawEventData.ObjectRef.resource == "pods" and RawEventData.ResponseStatus.code == 101
| where RawEventData.ObjectRef.namespace == "kube-system"
| where RawEventData.ObjectRef.subresource == "exec"
| where RawEventData.ResponseStatus.code == 101
| extend RequestURI = tostring(RawEventData.RequestURI)
| extend PodName = tostring(RawEventData.ObjectRef.name)
| extend PodNamespace = tostring(RawEventData.ObjectRef.namespace)
| extend Username = tostring(RawEventData.User.username)
| where PodName !startswith "tunnelfront-" and PodName !startswith "konnectivity-" and PodName !startswith "aks-link"
| extend Commands = extract_all(@"command=([^\&]*)", RequestURI)
| extend ParsedCommand = url_decode(strcat_array(Commands, " "))
| project Timestamp, AzureResourceId , OperationName, IPAddress, UserAgent, PodName, PodNamespace, Username, ParsedCommand
لتحديد إنشاء ربط دور مسؤول نظام المجموعة، استخدم نموذج الاستعلام التالي:
CloudAuditEvents
| where Timestamp > ago(1d)
| where OperationName == "create"
| where RawEventData.ObjectRef.resource == "clusterrolebindings"
| where RawEventData.ResponseStatus.code startswith "20"
| where RawEventData.RequestObject.roleRef.name == "cluster-admin"
| mv-expand Subject = RawEventData.RequestObject.subjects
| extend SubjectName = tostring(Subject.name)
| extend SubjectKind = tostring(Subject["kind"])
| extend BindingName = tostring(RawEventData.ObjectRef.name)
| extend ActionTakenBy = tostring(RawEventData.User.username)
| where ActionTakenBy != "acsService" //Remove FP
| project Timestamp, AzureResourceId , OperationName, ActionTakenBy, IPAddress, UserAgent, BindingName, SubjectName, SubjectKind