Mengonfigurasi dan mengkustomisasi tugas build
Catatan
Berlaku mulai 31 Desember 2022, ekstensi Microsoft Security Code Analysis (MSCA) dihentikan. MSCA digantikan oleh ekstensi Microsoft Security DevOps Azure DevOps. Ikuti instruksi di Mengonfigurasi untuk menginstal dan mengonfigurasi ekstensi.
Artikel ini menjelaskan secara rinci opsi konfigurasi yang tersedia di setiap tugas build. Artikel dimulai dengan tugas untuk alat analisis kode keamanan. Artikel diakhiri dengan tugas pasca-pemrosesan.
Tugas Anti-Malware Scanner
Catatan
Tugas build Anti-Malware Scanner memerlukan agen build dengan Windows Defender yang diaktifkan. Visual Studio 2017 dan lebih baru yang dihosting menyediakan agen serupa. Tugas build tidak dapat dijalankan di agen yang di-hosting Visual Studio 2015.
Meskipun tanda tangan tidak dapat diperbarui pada agen ini, tanda tangan harus selalu berusia kurang dari tiga jam.
Detail konfigurasi tugas ditampilkan dalam cuplikan layar dan teks berikut.
Dalam kotak daftar Jenis pada cuplikan layar, Dasar dipilih. Pilih Kustom untuk menyediakan argumen baris perintah yang mengkustomisasi pemindaian.
Windows Defender menggunakan klien Windows Update untuk mengunduh dan menginstal tanda tangan. Jika pembaruan tanda tangan gagal pada agen build Anda, kode kesalahan HRESULT kemungkinan besar berasal dari Windows Update.
Untuk informasi lebih lanjut tentang kesalahan Windows Update dan mitigasinya, lihat Kode kesalahan Windows Update berdasarkan komponen dan artikel TechNet Windows Update Agent - Kode Kesalahan.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML Anti-Malware kami
Tugas BinSkim
Catatan
Sebelum dapat menjalankan tugas BinSkim, build Anda harus memenuhi salah satu kondisi berikut:
- Build Anda menghasilkan artefak biner dari kode terkelola.
- Anda memiliki artefak biner yang diterapkan yang ingin Anda analisis menggunakan BinSkim.
Detail konfigurasi tugas ditampilkan dalam cuplikan layar dan daftar berikut.
- Atur konfigurasi build ke Debug sehingga file debug .pdb diproduksi. BinSkim menggunakan file ini untuk memetakan masalah dalam biner output kembali ke kode sumber.
- Untuk menghindari meneliti dan membuat baris perintah Anda sendiri:
- Pada daftar Jenis, pilih Dasar. .
- Pada daftar Fungsi, pilih Analisis.
- Pada Target, masukkan satu penentu atau lebih untuk file, direktori, atau pola filter. Penentu ini menyelesaikan satu atau lebih biner yang akan dianalisis:
- Beberapa target yang ditentukan harus dipisahkan oleh titik koma (;).
- Penentu dapat menjadi file tunggal atau berisi kartubebas.
- Spesifikasi direktori harus selalu diakhiri dengan \*.
- Contoh:
*.dll;*.exe
$(BUILD_STAGINGDIRECTORY)\*
$(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
- Jika Anda memilih Baris Perintah pada daftar Jenis, Anda perlu menjalankan binskim.exe:
- Pastikan argumen pertama ke binskim.exe adalah kata kerja analisis diikuti dengan satu jalur spesifikasi atau lebih. Setiap jalur dapat berupa jalur lengkap atau jalur yang relatif ke direktori sumber.
- Beberapa jalur target harus dipisahkan oleh spasi.
- Anda dapat menghilangkan opsi /o atau /output. Nilai output ditambahkan untuk Anda atau diganti.
- Konfigurasi baris perintah standar ditampilkan sebagai berikut.
analyze $(Build.StagingDirectory)\* --recurse --verbose
analyze *.dll *.exe --recurse --verbose
Catatan
\* berikutnya penting jika Anda menentukan direktori untuk target.
Untuk informasi lebih lanjut tentang argumen baris perintah BinSkim, aturan menurut ID, atau kode keluar, lihat Panduan Pengguna BinSkim.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML BinSkim kami
Tugas Credential Scanner
Detail konfigurasi tugas ditampilkan dalam cuplikan layar dan daftar berikut.
Opsi yang tersedia meliputi:
- Nama Tampilan: Nama Tugas Azure DevOps. Nilai default adalah Run Credential Scanner
- Versi Utama Alat: Nilai yang tersedia termasuk CredScan V2, CredScan V1. Kami menyarankan pelanggan untuk menggunakan versi CredScan V2.
- Format Output: Nilai yang tersedia termasuk TSV, CSV, SARIF, dan PREfast.
- Versi Alat: Kami sarankan Anda memilih Terbaru.
- Folder Pindai: Folder repositori yang akan dipindai.
- Jenis File Pencari: Opsi untuk menemukan file pencari yang digunakan untuk pemindaian.
- File Penekanan: File JSON dapat menekan masalah dalam log output. Untuk informasi lebih lanjut tentang skenario penekanan, lihat bagian FAQ di artikel ini.
- Output Verbose: Sudah jelas.
- Ukuran Batch: Jumlah alur serentak yang digunakan untuk menjalankan Credential Scanner. Nilai default adalah 20. Rentang kemungkinan nilai mulai dari 1 hingga 2.147.483.647.
- Batas Waktu Pencocokan: Jumlah waktu dalam detik yang dibutuhkan untuk mencoba pencocokan pencari sebelum meninggalkan pemeriksaan.
- Ukuran Buffer Baca Pemindaian File: Ukuran dalam byte dari buffer yang digunakan saat konten dibaca. Nilai default adalah 524.288.
- Byte Baca Pemindaian File Maksimum: Jumlah maksimum byte untuk dibaca dari file selama analisis konten. Nilai default adalah 104.857.600.
- Opsi Kontrol>Jalankan tugas ini: Menentukan kapan tugas akan berjalan. Pilih Kondisi kustom untuk menentukan kondisi yang lebih kompleks.
- Versi: Versi tugas build dalam Azure DevOps. Opsi ini jarang digunakan.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML Credential Scanner kami
Tugas Roslyn Analyzers
Catatan
Sebelum Anda dapat menjalankan tugas Roslyn Analyzers, build Anda harus memenuhi ketentuan berikut:
- Definisi build Anda menyertakan tugas build MSBuild atau VSBuild bawaan untuk mengompilasi kode C# atau Visual Basic. Tugas penganalisis bergantung pada input dan output tugas bawaan untuk menjalankan kompilasi MSBuild dengan penganalisis Roslyn yang diaktifkan.
- Agen build yang menjalankan tugas build ini terinstal dengan Visual Studio 2017 versi 15.5 atau yang lebih baru, agar agen build menggunakan compiler versi 2.6 atau yang lebih baru.
Detail konfigurasi tugas ditampilkan dalam daftar dan catatan berikut.
Opsi yang tersedia meliputi:
- Ruleset: Nilai adalah SDL Required, SDL Recommended, atau kumpulan aturan kustom Anda sendiri.
- Versi Analyzer: Kami sarankan Anda memilih Terbaru.
- File Penekanan Peringatan Kompilasi: File teks dengan daftar ID peringatan yang ditekan.
- Opsi Kontrol>Jalankan tugas ini: Menentukan kapan tugas akan berjalan. Pilih Kondisi kustom untuk menentukan kondisi yang lebih kompleks.
Catatan
Roslyn Analyzers terintegrasi dengan compiler dan hanya dapat dijalankan sebagai bagian dari kompilasi csc.exe. Oleh karena itu, tugas ini memerlukan perintah compiler yang berjalan lebih awal dalam build untuk diputar ulang atau dijalankan lagi. Pemutaran atau eksekusi ulang ini dilakukan dengan mengkueri Azure DevOps (sebelumnya Visual Studio Team Services) untuk log tugas build MSBuild.
Tidak ada cara lain bagi tugas untuk mendapatkan baris perintah kompilasi MSBuild dengan sigap dari definisi build. Kami mempertimbangkan penambahan kotak teks bentuk bebas untuk memungkinkan pengguna memasukkan baris perintah mereka. Tetapi kemudian akan sulit untuk menjaga baris perintah tersebut terus diperbarui dan selaras dengan build utama.
Build kustom memerlukan pemutaran ulang seluruh rangkaian perintah, bukan hanya perintah compiler. Dalam kasus ini, mengaktifkan Roslyn Analyzers bukan perihal kecil atau dapat diandalkan.
Roslyn Analyzers terintegrasi dengan compiler. Untuk dipanggil, Roslyn Analyzers memerlukan kompilasi.
Tugas build baru ini diterapkan dengan cara mengompilasi ulang proyek C# yang sudah dibangun. Tugas baru tersebut hanya menggunakan tugas build MSBuild dan VSBuild pada build atau definisi build yang sama dengan tugas aslinya. Namun, dalam hal ini tugas baru tersebut menggunakannya dengan Roslyn Analyzers yang diaktifkan.
Jika tugas baru berjalan pada agen yang sama dengan tugas asli, output tugas baru akan menimpa output tugas asli pada folder sumber s. Meskipun output build sama, kami menyarankan agar Anda menjalankan MSBuild, menyalin output ke direktori penahapan artefak, kemudian menjalankan Roslyn Analyzers.
Untuk sumber daya tambahan untuk tugas Roslyn Analyzers, tinjau Penganalisis berbasis Roslyn.
Anda dapat menemukan paket analyzer yang diinstal dan digunakan oleh tugas build ini di halaman NuGet Microsoft.CodeAnalysis.FxCopAnalyzers.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML Roslyn Analyzers kami
Tugas TSLint
Untuk informasi lebih lanjut tentang TSLint, buka repo TSLint GitHub.
Catatan
Seperti yang mungkin Anda ketahui, halaman beranda repo TSLint GitHub menyatakan bahwa TSLint tidak akan digunakan kembali suatu waktu pada tahun 2019. Microsoft sedang menyelidiki ESLint sebagai tugas alternatif.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML TSLint kami
Tugas Log Analisis Keamanan Penerbitan
Detail konfigurasi tugas ditampilkan dalam cuplikan layar dan daftar berikut.
- Nama Artefak:Semua pengidentifikasi string.
- Jenis Artefak: Bergantung pada pilihan Anda, Anda dapat menerbitkan log ke Azure DevOps Server atau ke file bersama yang dapat diakses oleh agen build.
- Alat: Anda dapat memilih untuk mempertahankan log untuk alat tertentu, atau Anda dapat memilih Semua Alat untuk mempertahankan semua log.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML Log Keamanan Penerbitan kami
Tugas Laporan Keamanan
Detail konfigurasi Laporan Keamanan ditampilkan dalam cuplikan layar dan daftar berikut.
- Laporan: Pilih salah satu format Konsol Alur, File TSV, dan File Html. Satu file laporan dibuat untuk setiap format yang dipilih.
- Alat: Pilih alat dalam definisi build untuk ringkasan masalah yang terdeteksi yang Anda inginkan. Untuk setiap alat yang dipilih, terdapat kemungkinan opsi untuk memilih apakah Anda hanya melihat kesalahan atau melihat kesalahan serta peringatan dalam laporan ringkasan.
- Opsi Lanjutan: Jika tidak ada log untuk salah satu alat yang dipilih, Anda dapat memilih untuk mencatat peringatan atau kesalahan. Jika Anda mencatat kesalahan, tugas akan gagal.
- Folder Log Dasar: Anda dapat mengustomisasi folder log dasar tempat log ditemukan. Tetapi opsi ini biasanya tidak digunakan.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML laporan keamanan kami
Tugas Pasca-Analisis
Detail konfigurasi tugas ditampilkan dalam cuplikan layar dan daftar berikut.
- Alat: Pilih alat dalam definisi build yang ingin Anda masuki jeda build secara bersyarat. Untuk setiap alat yang dipilih, terdapat kemungkinan opsi untuk memilih apakah Anda ingin membedah kesalahan saja atau pada kesalahan serta peringatan.
- Laporan: Anda dapat secara opsional menulis hasil yang menyebabkan kerusakan build. Hasilnya ditulis ke jendela konsol Azure DevOps dan file log.
- Opsi Lanjutan: Jika tidak ada log untuk salah satu alat yang dipilih, Anda dapat memilih untuk mencatat peringatan atau kesalahan. Jika Anda mencatat kesalahan, tugas akan gagal.
Untuk informasi tentang konfigurasi YAML untuk tugas ini, periksa opsi YAML Pasca Analisis kami
Langkah berikutnya
Untuk informasi tentang konfigurasi berbasis YAML, lihat Panduan Konfigurasi YAML kami.
Jika ada pertanyaan lebih lanjut mengenai ekstensi Security Code Analysis dan alat yang ditawarkan, lihat halaman FAQ kami.