Mengaktifkan anotasi permintaan pull di GitHub dan Azure DevOps

Keamanan DevOps mengekspos temuan keamanan sebagai anotasi dalam Permintaan Pull (PR). Operator keamanan dapat mengaktifkan anotasi PR di Microsoft Defender untuk Cloud. Setiap masalah yang terekspos dapat diperbaiki oleh pengembang. Proses ini dapat mencegah dan memperbaiki potensi kerentanan keamanan dan kesalahan konfigurasi sebelum memasuki tahap produksi. Keamanan DevOps memberikan anotasi pada kerentanan dalam perubahan yang diperkenalkan dalam pull request, alih-alih pada semua kerentanan yang terdeteksi di seluruh file. Pengembang dapat melihat anotasi dalam sistem manajemen kode sumber mereka dan operator Keamanan dapat melihat temuan yang belum terselesaikan di Microsoft Defender untuk Cloud.

Dengan Microsoft Defender untuk Cloud, Anda dapat mengonfigurasi anotasi PR di Azure DevOps. Anda bisa mendapatkan anotasi PR di GitHub jika Anda adalah pelanggan GitHub Advanced Security.

Note

Anotasi permintaan pull, juga dikenal sebagai anotasi permintaan penggabungan (GitLab), tidak didukung dalam proyek GitLab yang terhubung ke Defender untuk Cloud DevOps.

Defender untuk Cloud akan menyajikan temuan keamanan untuk repositori GitLab yang terhubung. Namun, permintaan penggabungan GitLab tidak menunjukkan temuan ini sebagai anotasi sebaris.

GitHub mendukung anotasi permintaan pull saat Anda mengaktifkan GitHub Advanced Security.

Apa itu anotasi pada pull request

Anotasi permintaan pull adalah komentar yang ditambahkan ke permintaan pull di GitHub atau Azure DevOps. Anotasi ini memberikan umpan balik tentang perubahan kode yang dibuat dan mengidentifikasi masalah keamanan dalam permintaan pull dan membantu peninjau memahami perubahan yang dibuat.

Pengguna dengan akses ke repositori dapat menambahkan anotasi, untuk menyarankan perubahan, mengajukan pertanyaan, atau memberikan umpan balik tentang kode. Anotasi juga dapat digunakan untuk melacak masalah dan bug yang perlu diperbaiki sebelum kode digabungkan ke cabang utama. Keamanan DevOps di Defender untuk Cloud menggunakan anotasi untuk menampilkan temuan keamanan.

Prasyarat

Untuk GitHub:

Untuk Azure DevOps:

Mengaktifkan anotasi permintaan pull di GitHub

Dengan mengaktifkan anotasi pull request di GitHub, pengembang Anda dapat melihat masalah keamanan mereka saat mereka membuat PR langsung ke cabang utama.

Untuk mengaktifkan anotasi permintaan pull di GitHub:

  1. Buka GitHub dan masuk.

  2. Pilih repositori yang telah Anda tambahkan ke Defender untuk Cloud.

  3. Navigasi ke Your repository's home page>.github/workflows.

    Cuplikan layar yang memperlihatkan tempat menavigasi, untuk memilih folder alur kerja GitHub.

  4. Pilih msdevopssec.yml, yang dibuat dalam prasyarat.

    Cuplikan layar yang memperlihatkan tempat pada layar untuk memilih file msdevopssec.yml.

  5. Pilih edit.

    Cuplikan layar yang memperlihatkan seperti apa tombol edit.

  6. Temukan dan perbarui bagian pemicu untuk menyertakan:

    # Triggers the workflow on push or pull request events but only for the main branch
    pull_request:
      branches: ["main"]
    

    Anda juga dapat melihat repositori contoh.

    (Opsional) Anda dapat memilih branch mana yang ingin digunakan agar proses ini dijalankan dengan memasukkan branch tersebut di bawah bagian trigger. Jika Anda ingin menyertakan semua cabang, hapus baris dengan daftar cabang. 

  7. Pilih Mulai penerapan.

  8. Pilih Terapkan perubahan.

    Masalah apa pun yang ditemukan oleh pemindai akan dapat dilihat di bagian File yang diubah dari permintaan pull Anda.

    • Digunakan dalam pengujian - Pemberitahuan tidak ada dalam kode produksi.

Mengaktifkan anotasi permintaan pull di Azure DevOps

Dengan mengaktifkan anotasi pull request di Azure DevOps, pengembang Anda dapat melihat isu keamanan mereka saat membuat PR langsung ke cabang utama.

Mengaktifkan kebijakan Validasi Build untuk BUILD CI

Sebelum Anda dapat mengaktifkan anotasi pull request, cabang utama Anda harus sudah mengaktifkan kebijakan Build Validation untuk CI Build.

Untuk mengaktifkan kebijakan Validasi Build untuk CI Build:

  1. Masuk ke proyek Azure DevOps Anda.

  2. Buka Setelan proyek>Repositori.

    Cuplikan layar yang memperlihatkan tempat menavigasi, untuk memilih repositori.

  3. Pilih repositori untuk mengaktifkan permintaan pull.

  4. Pilih Kebijakan.

  5. Buka Kebijakan Cabang>Cabang utama.

    Cuplikan layar yang memperlihatkan tempat menemukan kebijakan cabang.

  6. Cari bagian Build Validation.

  7. Pastikan validasi build untuk repositori Anda diatur ke On.

    Cuplikan layar yang memperlihatkan di mana tombol Build CI berada.

  8. Pilih Simpan.

    Cuplikan layar yang memperlihatkan validasi build.

Setelah menyelesaikan langkah-langkah ini, Anda dapat memilih alur build yang Anda buat sebelumnya dan menyesuaikan pengaturannya agar sesuai dengan kebutuhan Anda.

Aktifkan anotasi permintaan penggabungan

Untuk mengaktifkan anotasi permintaan pull di Azure DevOps:

  1. Masuk ke portal Azure.

  2. Buka Defender untuk Cloud>Keamanan DevOps.

  3. Pilih semua repositori yang relevan untuk mengaktifkan anotasi permintaan pull.

  4. Pilih Kelola sumber daya.

    Cuplikan layar yang memperlihatkan kepada Anda cara mengelola sumber daya.

  5. Alihkan anotasi permintaan pull ke Aktif.

    Cuplikan layar yang menunjukkan sakelar dalam posisi aktif.

  6. (Opsional) Pilih kategori dari menu drop-down.

    Note

    Saat ini, hanya hasil miskonfigurasi Infrastructure-as-Code (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Helm Charts, dan lainnya) yang didukung.

  7. (Opsional) Pilih tingkat keparahan dari menu drop-down.

  8. Pilih Simpan.

Semua anotasi pada permintaan pull Anda akan ditampilkan mulai sekarang berdasarkan konfigurasi Anda.

Untuk mengaktifkan anotasi permintaan pull untuk Proyek dan Organisasi saya di Azure DevOps:

Anda dapat melakukannya secara terprogram dengan memanggil API Update Azure DevOps Resource yang disediakan oleh Microsoft. Penyedia Sumber Daya Keamanan.

Informasi API:

Metode Http: PATCH URL:

  • Pembaruan Proyek Azure DevOps: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>/projects/<adoProjectName>?api-version=2023-09-01-preview
  • Pembaruan Azure DevOps Org]: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview

Isi Permintaan:

{
   "properties": {
"actionableRemediation": {
              "state": <ActionableRemediationState>,
              "categoryConfigurations":[
                    {"category": <Category>,"minimumSeverityLevel": <Severity>}
               ]
           }
    }
}

Parameter / Opsi Tersedia

<ActionableRemediationState> Deskripsi: Status Konfigurasi Anotasi PR Opsi: Diaktifkan | Dinonaktifkan

<Category> Deskripsi: Kategori Temuan yang dianotasi pada permintaan pull. Opsi: IaC | Kode | Artefak | Dependensi | Catatan Kontainer: Hanya IaC yang didukung saat ini

<Severity> Deskripsi: Tingkat keparahan minimum temuan yang dipertimbangkan saat membuat anotasi PR. Opsi: Tinggi | Sedang | Rendah

Contoh mengaktifkan Anotasi PR Azure DevOps Org untuk kategori IaC dengan tingkat keparahan minimum Medium menggunakan alat az cli.

Perbarui Organisasi:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'Medium'}]}}}

Contoh cara mengaktifkan Anotasi PR pada Proyek Azure DevOps untuk kategori IaC dengan tingkat keparahan minimum Tinggi menggunakan alat az cli.

Perbarui Proyek:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg/projects/testProject?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'High'}]}}}"

Pelajari lebih lanjut

Langkah berikutnya

Sekarang pelajari selengkapnya tentang keamanan DevOps.