Mengonfigurasi ekstensi Microsoft Security DevOps Azure DevOps

Microsoft Security DevOps adalah aplikasi baris perintah yang mengintegrasikan alat analisis statis ke dalam siklus hidup pengembangan. Microsoft Security DevOps menginstal, mengonfigurasi, dan menjalankan versi terbaru alat analisis statis (termasuk, tetapi tidak terbatas pada, alat SDL/keamanan dan kepatuhan). Microsoft Security DevOps digerakkan oleh data dengan konfigurasi portabel yang memungkinkan eksekusi deterministik di beberapa lingkungan.

Microsoft Security DevOps menggunakan alat Sumber Terbuka berikut:

Nama Bahasa Lisensi
Antimalware Perlindungan AntiMalware di Windows dari Microsoft Defender untuk Titik Akhir, yang memindai malware dan merusak build jika malware telah ditemukan. Alat ini memindai secara default pada agen windows-terbaru. Bukan Sumber Terbuka
Bandit Python Lisensi Apache 2.0
BinSkim Biner--Windows, ELF Lisensi MIT
ESlint JavaScript Lisensi MIT
IaCFileScanner Terraform, CloudFormation, Templat ARM, Bicep Bukan Sumber Terbuka
Penganalisis Templat Templat ARM, Bicep Lisensi MIT
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Lisensi Apache 2.0
Trivy gambar kontainer, Infrastruktur sebagai Kode (IaC) Lisensi Apache 2.0

Catatan

Mulai 20 September 2023, alat pemindaian rahasia (CredScan) dalam Ekstensi Microsoft Security DevOps (MSDO) untuk Azure DevOps telah ditolak. Pemindaian rahasia MSDO akan diganti dengan GitHub Advanced Security untuk Azure DevOps.

Prasyarat

  • Hak istimewa Administrator Koleksi Proyek untuk organisasi Azure DevOps diperlukan untuk menginstal ekstensi.

Jika Anda tidak memiliki akses untuk menginstal ekstensi, Anda harus meminta akses dari administrator organisasi Azure DevOps Anda selama proses penginstalan.

Mengonfigurasi ekstensi Microsoft Security DevOps Azure DevOps

Untuk mengonfigurasi ekstensi Microsoft Security DevOps Azure DevOps:

  1. Masuk ke Azure DevOps.

  2. Navigasikan ke ekstensi Kelola Tas>Belanja.

    Cuplikan layar yang memperlihatkan cara menavigasi ke layar kelola ekstensi.

  3. Pilih Dibagikan.

    Catatan

    Jika Anda telah menginstal ekstensi Microsoft Security DevOps, ekstensi tersebut akan tercantum di tab Terinstal.

  4. Pilih Microsoft Security DevOps.

    Cuplikan layar yang memperlihatkan tempat untuk memilih Microsoft Security DevOps.

  5. Pilih Instal.

  6. Pilih organisasi yang sesuai dari menu dropdown.

  7. Pilih Instal.

  8. Pilih Lanjutkan ke organisasi.

Mengonfigurasi alur Anda menggunakan YAML

Untuk mengonfigurasi alur Anda menggunakan YAML:

  1. Masuk ke Azure DevOps

  2. Pilih proyek Anda.

  3. Menavigasi ke Alur

  4. Pilih Pipa baru.

    Cuplikan layar memperlihatkan tempat untuk menemukan buat alur di DevOps.

  5. Pilih Git Repositori Azure.

    Cuplikan layar yang memperlihatkan tempat untuk menavigasi ke, untuk memilih Azure repo git.

  6. Pilih repositori yang relevan.

    Cuplikan layar memperlihatkan tempat untuk memilih repositori Anda.

  7. Anda dapat memilih Alur pemula.

    Cuplikan layar memperlihatkan tempat untuk memilih alur pemula.

  8. Tempelkan YAML berikut ke dalam alur:

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger: none
    pool:
      # ubuntu-latest also supported.
      vmImage: 'windows-latest'
    steps:
    - task: MicrosoftSecurityDevOps@1
      displayName: 'Microsoft Security DevOps'
      inputs:    
      # command: 'run' | 'pre-job' | 'post-job'. Optional. The command to run. Default: run
      # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig').
      # policy: 'azuredevops' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy. If no configuration file or list of tools is provided, the policy may instruct MSDO which tools to run. Default: azuredevops.
      # categories: string. Optional. A comma-separated list of analyzer categories to run. Values: 'code', 'artifacts', 'IaC', 'containers'. Example: 'IaC, containers'. Defaults to all.
      # languages: string. Optional. A comma-separated list of languages to analyze. Example: 'javascript,typescript'. Defaults to all.
      # tools: string. Optional. A comma-separated list of analyzer tools to run. Values: 'bandit', 'binskim', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'.
      # break: boolean. Optional. If true, will fail this build step if any error level results are found. Default: false.
      # publish: boolean. Optional. If true, will publish the output SARIF results file to the chosen pipeline artifact. Default: true.
      # artifactName: string. Optional. The name of the pipeline artifact to publish the SARIF result file to. Default: CodeAnalysisLogs*.
    
    

    Catatan

    ArtifactName 'CodeAnalysisLogs' diperlukan untuk integrasi dengan Defender untuk Cloud. Untuk opsi konfigurasi alat tambahan dan variabel lingkungan, lihat wiki Microsoft Security DevOps

  9. Untuk menerapkan alur, pilih Simpan dan jalankan.

    Alur akan berjalan selama beberapa menit dan menyimpan hasilnya.

    Catatan

    Instal ekstensi Tab Pemindaian SARIF SAST pada organisasi Azure DevOps untuk memastikan bahwa hasil analisis yang dihasilkan akan ditampilkan secara otomatis di bawah tab Pemindaian.

Mengunggah temuan dari alat keamanan pihak ketiga ke Defender untuk Cloud

Meskipun Defender untuk Cloud menyediakan MSDO CLI untuk fungsionalitas standar dan kontrol kebijakan di sekumpulan penganalisis keamanan sumber terbuka, Anda memiliki fleksibilitas untuk mengunggah hasil dari alat keamanan pihak ketiga lainnya yang mungkin telah Anda konfigurasi dalam alur CI/CD untuk Defender untuk Cloud untuk kontekstualisasi kode-ke-cloud yang komprehensif. Semua hasil yang diunggah ke Defender untuk Cloud harus dalam format SARIF standar.

Pertama, pastikan repositori Azure DevOps Anda di-onboarding ke Defender untuk Cloud. Setelah Anda berhasil melakukan onboarding Defender untuk Cloud, ia terus memantau artefak 'CodeAnalysisLogs' untuk output SARIF.

Anda dapat menggunakan tugas 'PublishBuildArtifacts@1' untuk memastikan output SARIF diterbitkan ke artefak yang benar. Misalnya, jika penganalisis keamanan menghasilkan 'results.sarif', Anda dapat mengonfigurasi tugas berikut dalam pekerjaan Anda untuk memastikan hasil diunggah ke Defender untuk Cloud:

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'results.sarif'
    ArtifactName: 'CodeAnalysisLogs'

Findings from third-party security tools will appear as 'Azure DevOps repositories should have code scanning findings resolved' assessments associated with the repository the secuirty finding was identified in.