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 bantu mengurangi waktu eksekusi jalur pengembangan 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

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 .github>workflows>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'
    

    Nota

    Nilai bersifat peka terhadap huruf besar/kecil.

    Berikut adalah sebuah contoh:

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

  6. Pilih Terapkan perubahan . . .

  7. Pilih Commit changes.

    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 Raw.

    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, bukaKeamanan DevOps> (Tidak ada prasyarat GHAS) ataupemberitahuan pemindaian Kode> 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 Pipeline.

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

  5. Pilih Edit alur.

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

    inputs:
        categories: 'IaC'
    

    Berikut adalah sebuah contoh:

    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. Untuk melihat lebih banyak detail, pilih jalur pipe tertentu.

Menampilkan detail dan informasi pemecahan masalah 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 ARM serta templat untuk CloudFormation, Docker, Helm, Kubernetes, Kustomize, dan Terraform. Untuk informasi selengkapnya, lihat aturan Terrascan.

Chekov menjalankan aturan pada templat ARM dan templat 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: