Microsoft Defender for Cloud'de özel standartlar ve öneriler oluşturma

Güvenlik önerileri Microsoft Defender for Cloud güvenlik duruşunuzu geliştirmenize ve sağlamlaştırmanıza yardımcı olur. Öneriler, Azure abonelikleri, Amazon Web Services (AWS) hesapları ve Defender for Cloud etkinleştirilmiş Google Cloud Platform (GCP) projeleri için tanımlanan güvenlik standartlarına yönelik değerlendirmeleri temel alır.

Bu makalede, aşağıdakilerin nasıl yapılacağı açıklanmaktadır:

  • Kusto Sorgu Dili (KQL) sorgusuyla tüm bulutlar (Azure, AWS ve GCP) için özel öneriler oluşturun.
  • Özel güvenlik standardına özel öneriler atayın.

Prerequisites

Özel öneriler veya standartlar oluşturmadan önce, aşağıdaki gereksinimleri karşıladığınızdan emin olun:

Özel öneriler ve KQL sorguları yazma hakkında daha fazla bilgi edinmek için Defender for Cloud bu bölümünü sahada izlemenizi öneririz.

Özel öneri oluşturma

Düzeltme adımları, önem derecesi ve önerinin atanması gereken standartlar da dahil olmak üzere özel öneriler oluşturun. KQL ile öneri mantığı eklersiniz. Gerektiğinde ince ayar yapabileceğiniz yerleşik sorgu şablonlarıyla basit bir sorgu düzenleyicisi kullanabilir veya KQL sorgunuzu sıfırdan yazabilirsiniz.

Özel öneri oluşturmak için:

  1. Azure portalınaoturum açın.

  2. Microsoft Defender for Cloud>Environment settings> ilgili aboneliğe gidin.

  3. Güvenlik ilkeleri>+ Özel öneri oluştur'u seçin.

     Özel öneri oluştur eylemi vurgulanmış Microsoft Defender for Cloud Güvenlik ilkeleri sayfasının ekran görüntüsü.

  4. Ayrıntıları girin: Gerekli: Ad, Kapsam, Önem Derecesi ve Güvenlik sorunu. İsteğe bağlı: Açıklama, Düzeltme.

  5. sonrakiseçin.

  6. Bir KQL sorgusu girin veya Sorgu düzenleyicisini aç'ı seçin.

    KQL düzenleyicisini başlatmak için kullanılan Sorgu düzenleyicisini aç eylemiyle özel öneri akışının ekran görüntüsü.

  7. sonrakiseçin.

  8. Öneri için ilgili standartları seçin.

    Ad, önem derecesi ve atanan standartlar alanlarını gösteren Microsoft Defender for Cloud Öneri ayrıntıları bölmesinin ekran görüntüsü.

  9. sonrakiseçin.

  10. Atanacak özel standartları seçin.

  11. Gözden geçir ve oluştur'u seçin.

  12. Öneri ayrıntılarını gözden geçirin.

  13. Oluştur'i seçin.

    Microsoft Defender for Cloud Göndermeden önce öneri özetini gösteren sayfayı gözden geçirme ve oluşturma ekran görüntüsü.

Sorgu düzenleyicisini kullanma

Öneri sorgusu oluşturmak için sorgu düzenleyicisini kullanmanızı öneririz. Ayrıca, sağlanan sorgu şablonlarını ve örnekleri kullanarak örnek sorguları görüntüleyebilir ve kendi sorgunuzu nasıl oluşturacağınızı öğrenebilirsiniz.

  • Düzenleyiciyi kullanmak, sorgunuzu kullanmaya başlamadan önce oluşturmanıza ve test etmeye yardımcı olur.
  • Nasıl yapılır seçeneğini belirleyerek sorgunun yapılandırılmasıyla ilgili yardımın yanı sıra ek yönergelere ve bağlantılara ulaşabilirsiniz.
  • Düzenleyici, kendi sorgunuzu oluşturmanıza yardımcı olmak için kullanabileceğiniz yerleşik öneri sorgusu örnekleri içerir. Veriler API'dekiyle aynı yapıda görünür.
  1. Yeni sorgu'yu seçin.

    Öneri sorgusu yazmaya başlamak için Yeni sorgunun seçili olduğu sorgu düzenleyicisinin ekran görüntüsü.

  2. Başlamak için örnek sorgu şablonunu yönergeleriyle birlikte kullanın veya sayfanın alt kısmından örnek bir yerleşik öneri sorgusu seçin.

  3. Oluşturduğunuz sorguyu test etmek için Sorguyu çalıştır'ı seçin.

  4. Sorgu hazır olduğunda düzenleyiciden kesip Öneri sorgu bölmesine yapıştırın.

  5. Sonra seçin, öneri için ilgili standartları seçin, atamak için özel standartları seçin ve ardından İncele ve oluştur seçeneğini seçin.

  6. Öneri detaylarını gözden geçirin ve Oluştur'u seçin.

Sorgu şablonları ve örnekler

Sorgu düzenleyicisi yerleşik örnekler içerir ve bu bölümdeki şablonlar ortak güvenlik denetimlerinin nasıl yapılandırılıp yapılandırılmayeceğini gösterir. Her şablon kapsamdaki kaynakları döndürür ve uyumlu olmayan kaynakları olarak UNHEALTHYişaretler. Bu şablon deseninde yalnızca condition ifadesini düzenleyin ve HealthStatus satırını değiştirmeden bırakın.

Note

Bu bölümdeki şablonlar Azure kaynak türlerini kullanır. AWS ve GCP kaynakları için Environment == 'Azure' değerini Environment == 'AWS' veya Environment == 'GCP' olarak değiştirin ve Identifiers.Type ortamınızdaki kaynak türüyle eşleşecek şekilde güncelleştirin.

Maliyet merkezi veya sahip bilgileri gibi zorunlu idare etiketlerinin eksik olduğu sanal makineleri belirleyin.

RawEntityMetadata
| where Environment == 'Azure' and Identifiers.Type =~ 'Microsoft.Compute/virtualMachines'
| extend condition = (isnull(Record.tags["CostCenter"]) or isnull(Record.tags["Owner"]))
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
| project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus

Çıkış sütunları:Id, Name, Environment, Identifiers, AdditionalData, , RecordHealthStatus

Değerlendirme mantığı: Gerekli etiketleri eksik olan makinelerde HealthStatusUNHEALTHY olarak ayarlanır ve bu makineler uyumsuz bulgular olarak görünür. Her iki etiketi de ayarlanmış makinelerde HealthStatus, HEALTHY olarak ayarlanmıştır.

KQL çıktı şeması gereksinimleri

Sorgunuzu yazmadan önce gerekli çıkış şemasını anlayın. Microsoft Defender for Cloud sonuçlarınızı bu şekilde yorumlar ve bulguları kaynaklara eşler.

Gerekli çıkış sütunları:

Column Type Purpose
Id Dize (gerekli) Defender for Cloud tarafından kaynağa başvurmak için kullanılan kaynak tanımlayıcısı.
Name Dize (gerekli) Bulgularda insan tarafından okunabilir kaynak adı görüntülenir.
Environment Dize (gerekli) Bulut ortamı: Azure, AWS veya GCP.
Identifiers Dinamik (gerekli) Kaynak kayıttan aktarılan kaynak türü ve tanımlayıcılar.
AdditionalData Dinamik (gerekli) Kaynak kayıttan aktarılan ek kaynak meta verileri.
Record Dinamik (gerekli) Tüm özellikleri içeren tam kaynak kaydı.
HealthStatus Dize (gerekli) Değerlendirme sonucu: UNHEALTHY (uyumlu değil) veya HEALTHY (uyumlu).

Sorgunuzu her zaman şu şekilde sonlandır: | project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus

Değerlendirme eşlemesi:

Her sorgu her kaynak için bir HealthStatus değer ayarlamalıdır. Özel öneri sorunuzda temel sağlık değerlendirme mantığı olarak aşağıdaki deseni kullanın, yer tutucu koşulu kendi testinizle değiştirin:

| extend condition = (your condition here)
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')

Bu kalıpta yalnızca condition ifadesini düzenleyin. Aşağıdaki HealthStatus ifadeyi sorguda değiştirmeden tutun ki Defender for Cloud eşleşen kaynakları uyumlu veya uyumsuz olarak sınıflandırabilsin:

| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')

HealthStatus değeri UNHEALTHY olan kaynaklar, Defender for Cloud'da uyumlu olmayan bulgular olarak görünür. HealthStatus öğesinin HEALTHY olduğu kaynaklar uyumludur ve bulgularda görünmez.

Önemli

HealthStatus değerini her zaman 'UNHEALTHY' veya 'HEALTHY' olarak ayarlayın. Kapsam dahilindeki tüm kaynakları döndürün. Defender for Cloud uyumluluğu belirlemek için HealthStatus sütununu kullanır. Sonuç kümesinden kaynakların atlanması, sağlıklı olarak değil, veri yok olarak kabul edilir.

Genel hatalar ve düzeltmeler:

  • Gerekli sütunlar eksik: Gerekli yedi sütundan herhangi biri eksikse sorgu başarısız olur. Her zaman | project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus ile bitirin.
  • Yanlış HealthStatus değerler: Yalnızca 'UNHEALTHY' ve 'HEALTHY' geçerli değerlerdir (büyük/küçük harfe duyarlı). Diğer değerler veya null, ayrıştırma hatalarına neden olur.
  • Yanlış özellik yolları: Özelliklere doğrudan değil, Record.properties.* aracılığıyla erişilir. Örneğin, Record.properties.httpsOnlydeğil properties.httpsOnlykullanın.
  • Kaynak türü büyük/küçük harf duyarlılığı: Karşılaştırmalar için =~ (büyük/küçük harfe duyarsız eşleşme) kullanın Identifiers.Type . Örneğin, Identifiers.Type =~ 'Microsoft.Storage/storageAccounts'.
  • Abonelikler genelinde boş özellikler: Sorgunuzu farklı yapılandırmalara sahip aboneliklerde test edin. Özelliklerin bulunmayabileceği durumlarda isnull() kontrollerini kullanın.

Uygun ölçekte özel öneriler kullanma

Azure portalında özel öneriler oluşturmak çoğu kullanıcı için en iyisidir. Arabirim, kullanışlı bir KQL düzenleyicisi ve yerleşik doğrulama araçları sağlar. Birçok ortamda veya abonelikte öneriler dağıtmanız gerektiğinde programlı bir yaklaşım da yararlı olabilir.

API aracılığıyla otomatikleştirme

KQL sorgularını önceden doğruladıysanız ve özel öneriler oluşturmayı otomatikleştirmek istiyorsanız Microsoft Defender for Cloud API'sini kullanabilirsiniz. Bu yöntem, bulut ortamlarınızda tutarlı ve ölçeklenebilir olduklarından emin olarak önerileri hızla dağıtmanıza olanak tanır.

  • Avantajlar: Özel önerilerin dağıtımını otomatikleştirebilir ve ölçeklendikleyebilirsiniz.
  • Ne zaman kullanılır: Bu yöntem, önerileri birden çok ortamda tutarlı bir şekilde uygulamanız gereken büyük ölçekli uygulamalar için idealdir.

Özel önerileri yönetmek için API'yi kullanma hakkında daha fazla bilgi için bkz. Defender for Cloud Bileşik API başvurusu.

Özel bir standart oluşturun

Özel öneriler bir veya daha fazla özel standarda atanabilir.

Özel bir standart oluşturmak için:

  1. Azure portalınaoturum açın.

  2. Microsoft Defender for Cloud>Environment settings> ilgili aboneliğe gidin.

  3. Güvenlik ilkeleri>+ Oluştur>Standart seçeneğini belirleyin.

  4. Özel standarda eklemek istediğiniz önerileri seçin.

  5. (İsteğe bağlı) Azure abonelikler için Kaynak sütununu gözden geçirin.

    Microsoft Defender for Cloud'da, seçim için kullanılabilir önerilerin listesini gösteren özel standart oluşturma sayfası.

  6. Oluştur'i seçin.

Azure İlkesi (eski) ile özel öneriler oluşturma ve geliştirme

Azure abonelikleri için özel öneriler ve standartlar oluşturabilir ve Azure İlkesi kullanarak bunları geliştirebilirsiniz. Bu eski bir özelliktir ve yeni özel öneriler özelliğini kullanmanızı öneririz.

Özel öneri ve standart (eski) oluşturma

Azure İlkesi’de ilke tanımları ve inisiyatifler oluşturarak ve bunları Defender for Cloud’a dahil ederek, Defender for Cloud içinde özel öneriler ve standartlar oluşturabilirsiniz.

Azure İlkesi (eski) ile özel öneri veya standart oluşturmak için:

  1. Azure İlkesi portalında bir veya daha fazla politika tanımı oluşturun veya politika tanımlarını programatik olarak oluşturun.
  2. Özel ilke tanımlarını içeren bir ilke girişimi oluşturun.

Girişimi özel standart olarak ekleme (eski)

İlke atamaları, azure kaynaklarını bir ilkeye veya girişime atamak için Azure İlkesi tarafından kullanılır.

bir girişimi Defender for Cloud özel bir güvenlik standardına eklemek için, burada gösterildiği gibi istek gövdesine "ASC":"true" eklemeniz gerekir. ASC alanı, girişimi Microsoft Defender for Cloud’a ekler.

Özel bir inisiyatifi sisteme dahil etmek için:

Özel bir girişimi sisteme dahil etme örneği

Özel Defender for Cloud standardınızı destekleyen Azure İlkesi girişimini oluşturmak veya güncellemek için aşağıdaki REST isteğini kullanın:

PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}?api-version=2021-06-01

İstek gövdesi (JSON):

{
    "properties": {
      "displayName": "Cost Management",
      "description": "Policies to enforce low cost storage SKUs",
      "metadata": {
        "category": "Cost Management",
        "ASC":"true"
      },
      "parameters": {
        "namePrefix": {
          "type": "String",
          "defaultValue": "myPrefix",
          "metadata": {
            "displayName": "Prefix to enforce on resource names"
          }
        }
      },
      "policyDefinitions": [
        {
          "policyDefinitionId": "/subscriptions/<Subscription ID>/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1",
          "policyDefinitionReferenceId": "Limit_Skus",
          "parameters": {
            "listOfAllowedSKUs": {
              "value": [
                "Standard_GRS",
                "Standard_LRS"
              ]
            }
          }
        },
        {
          "policyDefinitionId": "/subscriptions/<Subscription ID>/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
          "policyDefinitionReferenceId": "Resource_Naming",
          "parameters": {
            "prefix": {
              "value": "[parameters('namePrefix')]"
            },
            "suffix": {
              "value": "-LC"
            }
          }
        }
      ]
    }
  }

Atamayı kaldırma örneği

Bir abonelikten eski özel standardı kaldırmak için, politika atamasını silmek için aşağıdaki REST isteğini kullanın:

DELETE https://management.azure.com/{subscription}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2018-05-01

Özel önerileri geliştir (eski sürüm)

Bulut için Microsoft Defender ile sağlanan yerleşik öneriler önem derecesi düzeyleri ve düzeltme yönergeleri gibi ayrıntıları içerir. Bu tür bilgileri Azure için özel önerilere eklemek istiyorsanız REST API'sini kullanın.

Ekleyebileceğiniz iki bilgi türü şunlardır:

  • RemediationDescription – Dize
  • Önem Derecesi – Numaralandırma [Düşük, Orta, Yüksek]

Meta veriler, özel girişimin parçası olan bir ilke için ilke tanımına eklenmelidir. Meta veriler, gösterildiği gibi 'securityCenter' özelliğinde olmalıdır:

{
  "metadata": {
    "securityCenter": {
      "RemediationDescription": "Custom description goes here",
      "Severity": "High"
    }
  }
}

Aşağıdaki örnek, metaveri özelliğini iyileştirme ve şiddet detaylarıyla birlikte securityCenter içeren tam bir özel politika tanımını gösterir:

{
"properties": {
"displayName": "Security - ERvNet - AuditRGLock",
"policyType": "Custom",
"mode": "All",
"description": "Audit required resource groups lock",
"metadata": {
  "securityCenter": {
    "RemediationDescription": "Resource Group locks can be set via Azure Portal -> Resource Group -> Locks",
    "Severity": "High"
 }
},
"parameters": {
  "expressRouteLockLevel": {
    "type": "String",
    "metadata": {
      "displayName": "Lock level",
      "description": "Required lock level for ExpressRoute resource groups."
    },
    "allowedValues": [
      "CanNotDelete",
      "ReadOnly"
    ]
  }
},
"policyRule": {
  "if": {
    "field": "type",
    "equals": "Microsoft.Resources/subscriptions/resourceGroups"
  },
  "then": {
    "effect": "auditIfNotExists",
    "details": {
      "type": "Microsoft.Authorization/locks",
      "existenceCondition": {
        "field": "Microsoft.Authorization/locks/level",
        "equals": "[parameters('expressRouteLockLevel')]"
      }
    }
  }
}
}
}

Başka bir securityCenter özellik örneği için bkz. Değerlendirme meta verileri için REST API örnekleri.

Sonraki Adımlar

Kusto sorguları hakkında daha fazla bilgi edinmek için aşağıdaki bağlantıları kullanabilirsiniz: