Aracılığıyla paylaş


Bağlı GitHub deponuzu veya Azure DevOps projenizi tarama

Bağlı GitHub deponuzu veya Azure DevOps projenizi taramak için Microsoft Security DevOps ayarlayabilirsiniz. Microsoft Security DevOps'u yalnızca Kod Olarak Altyapı (IaC) kaynak kodunuzda çalıştırmak ve işlem hattı çalışma zamanınızı azaltmaya yardımcı olmak için GitHub eylemini veya Azure DevOps uzantısını kullanın.

Bu makalede, Microsoft Güvenlik DevOps kurallarını kullanarak bağlı deponuzu veya projenizi özellikle IaC güvenlik sorunlarına karşı taramak için şablon YAML yapılandırma dosyasının nasıl uygulanacağı gösterilmektedir.

Önkoşullar

  • Microsoft Security DevOps için GitHub eylemini veya Azure DevOps uzantısını kaynak kod yönetim sisteminize göre ayarlayın:
    • Deponuz GitHub'daysa Microsoft Security DevOps GitHub eylemini ayarlayın.
    • Kaynak kodunuzu Azure DevOps'ta yönetiyorsanız Microsoft Security DevOps Azure DevOps uzantısını ayarlayın.
  • Deponuzda bir IaC şablonu olduğundan emin olun.

Bağlı IaC kaynak kodunuzu taramak için GitHub eylemi ayarlama ve çalıştırma

GitHub'da bir eylem ayarlamak ve tarama sonuçlarını görüntülemek için:

  1. GitHub'da oturum açma.

  2. Deponuzun ana sayfasına gidin.

  3. Dosya dizininde msdevopssec.yml .github>iş akışları'nı> seçin.

    GitHub'da bir eylemle çalışma hakkında daha fazla bilgi için bkz . Önkoşullar.

  4. Bu dosyayı düzenle (kalem) simgesini seçin.

    msdevopssec.yml dosyasının Bu dosyayı düzenle simgesini vurgulayan ekran görüntüsü.

  5. YAML dosyasının Çözümleyicileri çalıştır bölümüne şu kodu ekleyin:

    with:
        categories: 'IaC'
    

    Not

    Değerler büyük/küçük harfe duyarlıdır.

    Bir örnek aşağıda verilmiştir:

    YAML dosyasına eklenecek bilgileri gösteren ekran görüntüsü.

  6. Değişiklikleri işle 'yi seçin . . . . .

  7. Değişiklikleri işle'yi seçin.

    GitHub sayfasında Değişiklikleri işle'nin seçileceği yeri gösteren ekran görüntüsü.

  8. (İsteğe bağlı) Deponuza bir IaC şablonu ekleyin. Deponuzda zaten bir IaC şablonunuz varsa bu adımı atlayın.

    Örneğin, temel bir Linux web uygulaması dağıtmak için kullanabileceğiniz bir IaC şablonu işleyin.

    1. azuredeploy.json dosyasını seçin.

      azuredeploy.json dosyasının bulunduğu yeri gösteren ekran görüntüsü.

    2. Ham'ı seçin.

    3. Aşağıdaki örnekte olduğu gibi dosyadaki tüm bilgileri kopyalayın:

      {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
          "webAppName": {
            "type": "string",
            "defaultValue": "AzureLinuxApp",
            "metadata": {
              "description": "The base name of the resource, such as the web app name or the App Service plan."
            },
            "minLength": 2
          },
          "sku": {
            "type": "string",
            "defaultValue": "S1",
            "metadata": {
              "description": "The SKU of the App Service plan."
            }
          },
          "linuxFxVersion": {
            "type": "string",
            "defaultValue": "php|7.4",
            "metadata": {
              "description": "The runtime stack of the current web app."
            }
          },
          "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
              "description": "The location for all resources."
            }
          }
        },
        "variables": {
          "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]",
          "appServicePlanName": "[concat('AppServicePlan-', parameters('webAppName'))]"
        },
        "resources": [
          {
            "type": "Microsoft.Web/serverfarms",
            "apiVersion": "2020-06-01",
            "name": "[variables('appServicePlanName')]",
            "location": "[parameters('location')]",
            "sku": {
              "name": "[parameters('sku')]"
            },
            "kind": "linux",
            "properties": {
              "reserved": true
            }
          },
          {
            "type": "Microsoft.Web/sites",
            "apiVersion": "2020-06-01",
            "name": "[variables('webAppPortalName')]",
            "location": "[parameters('location')]",
            "kind": "app",
            "dependsOn": [
              "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
            ],
            "properties": {
              "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
              "siteConfig": {
                "linuxFxVersion": "[parameters('linuxFxVersion')]"
              }
            }
          }
        ]
      }
      
    4. GitHub deponuzda .github/workflows klasörüne gidin.

    5. Dosya ekle Yeni dosya> oluştur'u seçin.

      Yeni bir dosyanın nasıl oluşturulacağını gösteren ekran görüntüsü.

    6. Dosya için bir ad girin.

    7. Kopyalanan bilgileri dosyaya yapıştırın.

    8. Yeni dosya işle'yi seçin.

    Şablon dosyası deponuza eklenir.

    Oluşturduğunuz yeni dosyanın deponuza eklendiğini gösteren ekran görüntüsü.

  9. Microsoft Güvenlik DevOps taramasının tamamlandığını doğrulayın:

    1. Depo için Eylemler'i seçin.

    2. Eylem durumunu görmek için iş akışını seçin.

  10. Taramanın sonuçlarını görüntülemek için gitHub'da yerel olarak Bulut için Defender> DevOps güvenliği (GHAS önkoşulu yok) veya Güvenlik>Kodu tarama uyarılarına gidin (GHAS lisansı gerekir).

Bağlı IaC kaynak kodunuzu taramak için bir Azure DevOps uzantısı ayarlama ve çalıştırma

Azure DevOps'ta bir uzantı ayarlamak ve tarama sonuçlarını görüntülemek için:

  1. Azure DevOps'te oturum açın.

  2. Projenizi seçin.

  3. İşlem Hatları'ı seçin.

  4. Microsoft Güvenlik DevOps için Azure DevOps uzantınızın yapılandırıldığı işlem hattını seçin.

  5. İşlem hattını düzenle'yi seçin.

  6. İşlem hattı YAML yapılandırma dosyasında, MicrosoftSecurityDevOps@1 görevinin satırının altına displayName şu kodu ekleyin:

    inputs:
        categories: 'IaC'
    

    Bir örnek aşağıda verilmiştir:

    İşlem hattı yapılandırma YAML dosyasında IaC kategorileri satırının nereye ekleneceğini gösteren ekran görüntüsü.

  7. Kaydet'i seçin.

  8. (İsteğe bağlı) Azure DevOps projenize bir IaC şablonu ekleyin. Projenizde zaten bir IaC şablonunuz varsa bu adımı atlayın.

  9. Doğrudan ana dala mı yoksa işleme için yeni bir dal mı oluşturulacağını seçin ve ardından Kaydet'i seçin.

  10. IaC taramasının sonuçlarını görüntülemek için İşlem hatları'nı ve ardından değiştirdiğiniz işlem hattını seçin.

  11. Daha fazla ayrıntıya bakın, belirli bir işlem hattı çalıştırması seçin.

Uygulanan IaC kuralları için ayrıntıları ve düzeltme bilgilerini görüntüleme

Microsoft Güvenlik DevOps'un içerdiği IaC tarama araçları Şablon Çözümleyicisi 'dir (PSRule, Şablon Çözümleyicisi'ne dahildir), Checkov ve Terrascan'dır.

Şablon Çözümleyicisi, Azure Resource Manager şablonları (ARM şablonları) ve Bicep şablonları üzerinde kurallar çalıştırır. Daha fazla bilgi için bkz . Şablon Çözümleyicisi kuralları ve düzeltme ayrıntıları.

Terrascan, CloudFormation, Docker, Helm, Kubernetes, Kustomize ve Terraform için ARM şablonları ve şablonları üzerinde kurallar çalıştırır. Daha fazla bilgi için bkz . Terrascan kuralları.

Chekov, CloudFormation, Docker, Helm, Kubernetes, Kustomize ve Terraform için ARM şablonları ve şablonları üzerinde kurallar çalıştırır. Daha fazla bilgi için bkz . Checkov kuralları.

Microsoft Güvenlik DevOps'un içerdiği IaC tarama araçları hakkında daha fazla bilgi edinmek için bkz:

Bu makalede, IaC güvenlik yanlış yapılandırmalarını taramak ve sonuçları görüntülemek için Bir GitHub eylemi ve Microsoft Security DevOps için Azure DevOps uzantısı ayarlamayı öğrendiniz.

Daha fazla bilgi edinmek için: