Bagikan melalui


Memindai repositori GitHub atau proyek Azure DevOps yang terhubung

Anda dapat menyiapkan Microsoft Security DevOps untuk memindai repositori GitHub atau proyek Azure DevOps yang terhubung. Gunakan tindakan GitHub atau ekstensi Azure DevOps untuk menjalankan Microsoft Security DevOps hanya pada kode sumber Infrastructure as Code (IaC) Anda, dan membantu mengurangi runtime alur Anda.

Artikel ini memperlihatkan kepada Anda cara menerapkan file konfigurasi YAML templat untuk memindai repositori atau proyek yang terhubung khusus untuk masalah keamanan IaC dengan menggunakan aturan Microsoft Security DevOps.

Prasyarat

  • Untuk Microsoft Security DevOps, siapkan tindakan GitHub atau ekstensi Azure DevOps berdasarkan sistem manajemen kode sumber Anda:
    • Jika repositori Anda berada di GitHub, siapkan tindakan GitHub Microsoft Security DevOps.
    • Jika Anda mengelola kode sumber di Azure DevOps, siapkan ekstensi Microsoft Security DevOps Azure DevOps.
  • Pastikan Anda memiliki templat IaC di repositori Anda.

Menyiapkan dan menjalankan tindakan GitHub untuk memindai kode sumber IaC yang terhubung

Untuk menyiapkan tindakan dan melihat hasil pemindaian di GitHub:

  1. Masuk ke GitHub.

  2. Buka halaman utama repositori Anda.

  3. Di direktori file, pilih alur>kerja .github>msdevopssec.yml.

    Untuk informasi selengkapnya tentang bekerja dengan tindakan di GitHub, lihat Prasyarat.

  4. Pilih ikon Edit file ini (pensil).

    Cuplikan layar yang menyoroti ikon Edit file ini untuk file msdevopssec.yml.

  5. Di bagian Jalankan penganalisis dari file YAML, tambahkan kode ini:

    with:
        categories: 'IaC'
    

    Catatan

    Nilai peka huruf besar/kecil.

    Berikut contohnya:

    Cuplikan layar yang memperlihatkan informasi yang akan ditambahkan ke file YAML.

  6. Pilih Terapkan perubahan . . .

  7. Pilih Terapkan perubahan.

    Cuplikan layar yang memperlihatkan tempat untuk memilih Terapkan perubahan di halaman GitHub.

  8. (Opsional) Tambahkan templat IaC ke repositori Anda. Jika Anda sudah memiliki templat IaC di repositori Anda, lewati langkah ini.

    Misalnya, terapkan templat IaC yang dapat Anda gunakan untuk menyebarkan aplikasi web Linux dasar.

    1. Pilih file azuredeploy.json.

      Cuplikan layar yang memperlihatkan tempat file azuredeploy.json berada.

    2. Pilih Mentah.

    3. Salin semua informasi dalam file, seperti dalam contoh berikut:

      {
        "$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. Di repositori GitHub Anda, buka folder .github/workflows .

    5. Pilih Tambahkan file>Buat file baru.

      Cuplikan layar yang memperlihatkan kepada Anda cara membuat file baru.

    6. Masukkan nama untuk file tersebut.

    7. Tempelkan informasi yang disalin dalam file.

    8. Pilih Terapkan file baru.

    File templat ditambahkan ke repositori Anda.

    Cuplikan layar yang menunjukkan bahwa file baru yang Anda buat ditambahkan ke repositori Anda.

  9. Verifikasi bahwa pemindaian Microsoft Security DevOps selesai:

    1. Untuk repositori, pilih Tindakan.

    2. Pilih alur kerja untuk melihat status tindakan.

  10. Untuk melihat hasil pemindaian, buka keamanan Defender untuk Cloud> DevOps (Tidak ada prasyarat GHAS) atau pemberitahuan pemindaian Kode Keamanan>secara asli di GitHub (Memerlukan lisensi GHAS).

Menyiapkan dan menjalankan ekstensi Azure DevOps untuk memindai kode sumber IaC yang terhubung

Untuk menyiapkan ekstensi dan melihat hasil pemindaian di Azure DevOps:

  1. Masuk ke Azure DevOps.

  2. Pilih proyek Anda.

  3. Pilih Alur.

  4. Pilih alur tempat ekstensi Azure DevOps Anda untuk Microsoft Security DevOps dikonfigurasi.

  5. Pilih Edit alur.

  6. Dalam file konfigurasi YAML alur, di bawah displayName baris untuk tugas MicrosoftSecurityDevOps@1 , tambahkan kode ini:

    inputs:
        categories: 'IaC'
    

    Berikut contohnya:

    Cuplikan layar yang memperlihatkan tempat untuk menambahkan baris kategori IaC dalam file YAML konfigurasi alur.

  7. Pilih Simpan.

  8. (Opsional) Tambahkan templat IaC ke proyek Azure DevOps Anda. Jika Anda sudah memiliki templat IaC di proyek Anda, lewati langkah ini.

  9. Pilih apakah akan berkomitmen langsung ke cabang utama atau membuat cabang baru untuk penerapan, lalu pilih Simpan.

  10. Untuk melihat hasil pemindaian IaC, pilih Alur, lalu pilih alur yang Anda ubah.

  11. Lihat lihat detail selengkapnya, pilih eksekusi alur tertentu.

Melihat detail dan informasi remediasi untuk aturan IaC yang diterapkan

Alat pemindaian IaC yang disertakan dengan Microsoft Security DevOps adalah Penganalisis Templat (PSRule disertakan dalam Penganalisis Templat), Checkov , dan Terrascan.

Penganalisis Templat menjalankan aturan pada templat Azure Resource Manager (templat ARM) dan templat Bicep. Untuk informasi selengkapnya, lihat aturan Penganalisis Templat dan detail remediasi.

Terrascan menjalankan aturan pada templat dan templat ARM untuk CloudFormation, Docker, Helm, Kubernetes, Kustomize, dan Terraform. Untuk informasi selengkapnya, lihat aturan Terrascan.

Chekov menjalankan aturan pada templat dan templat ARM untuk CloudFormation, Docker, Helm, Kubernetes, Kustomize, dan Terraform. Untuk informasi selengkapnya, lihat aturan Checkov.

Untuk mempelajari selengkapnya tentang alat pemindaian IaC yang disertakan dengan Microsoft Security DevOps, lihat:

Dalam artikel ini, Anda mempelajari cara menyiapkan tindakan GitHub dan ekstensi Azure DevOps untuk Microsoft Security DevOps untuk memindai kesalahan konfigurasi keamanan IaC dan cara melihat hasilnya.

Untuk mendapatkan informasi selengkapnya: