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.

    Screenshot that highlights the Edit this file icon for the msdevopssec.yml file.

  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:

    Screenshot that shows the information to add to the YAML file.

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

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

    Screenshot that shows where to select Commit changes on the GitHub page.

  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.

      Screenshot that shows where the azuredeploy.json file is located.

    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.

      Screenshot that shows you how to create a new file.

    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.

    Screenshot that shows that the new file you created is added to your repository.

  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 Güvenlik>Kodu tarama uyarıları'na gidin.

    Yalnızca IaC bulgularını görmek için araca göre filtreleyebilirsiniz.

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:

    Screenshot that shows where to add the IaC categories line in the pipeline configuration YAML file.

  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 (PSRule , Şablon Çözümleyicisi'ne dahildir) 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ı.

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: