Derleme görevlerini yapılandırma ve özelleştirme
Not
31 Aralık 2022'den itibaren Microsoft Güvenlik Kodu Analizi (MSCA) uzantısı kullanımdan kaldırıldı. MSCA, Microsoft Security DevOps Azure DevOps uzantısıyla değiştirilir. Uzantıyı yüklemek ve yapılandırmak için Yapılandırma başlığındaki yönergeleri izleyin.
Bu makalede, derleme görevlerinin her birinde kullanılabilen yapılandırma seçenekleri ayrıntılı olarak açıklanmaktadır. Makale, güvenlik kodu çözümleme araçlarına yönelik görevlerle başlar. İşlem sonrası görevlerle sona erer.
Kötü Amaçlı Yazılımdan Koruma Tarayıcısı görevi
Not
Kötü Amaçlı Yazılımdan Koruma Tarayıcısı derleme görevi, Windows Defender etkin bir derleme aracısı gerektirir. Barındırılan Visual Studio 2017 ve üzeri böyle bir aracı sağlar. Derleme görevi Visual Studio 2015 barındırılan aracısında çalışmaz.
İmzalar bu aracılarda güncelleştirilemese de, imzalar her zaman üç saatten kısa olmalıdır.
Görev yapılandırmasının ayrıntıları aşağıdaki ekran görüntüsünde ve metinde gösterilmiştir.
Ekran görüntüsünün Tür liste kutusunda Temel seçilidir. Taramayı özelleştiren komut satırı bağımsız değişkenleri sağlamak için Özel'i seçin.
Windows Defender, imzaları indirmek ve yüklemek için Windows Update istemcisini kullanır. Derleme aracınızda imza güncelleştirmesi başarısız olursa HRESULT hata kodu büyük olasılıkla Windows Update geliyordur.
Windows Update hataları ve bunların risk azaltması hakkında daha fazla bilgi için bileşene göre Windows Update hata kodları ve Aracı - Hata Kodları Windows Update TechNet makalesine bakın.
Bu görevin YAML yapılandırması hakkında bilgi için Kötü Amaçlı Yazılımdan Koruma YAML seçeneklerimizi gözden geçirin
BinSkim görevi
Not
BinSkim görevini çalıştırabilmeniz için önce derlemenizin şu koşullardan birini karşılaması gerekir:
- Derlemeniz yönetilen koddan ikili yapıtlar oluşturur.
- BinSkim ile çözümlemek istediğiniz ikili yapıtlarınız var.
Görev yapılandırmasının ayrıntıları aşağıdaki ekran görüntüsünde ve listede gösterilmiştir.
- .pdb hata ayıklama dosyalarının üretilmesi için derleme yapılandırmasını Hata Ayıklama olarak ayarlayın. BinSkim, çıkış ikili dosyalarındaki sorunları kaynak koduna geri eşlemek için bu dosyaları kullanır.
- Kendi komut satırınızı araştırmaktan ve oluşturmaktan kaçınmak için:
- Tür listesinde Temel'i seçin.
- İşlev listesinde Çözümle'yi seçin.
-
Hedef alanına bir dosya, dizin veya filtre deseni için bir veya daha fazla tanımlayıcı girin. Bu tanımlayıcılar çözümlenecek bir veya daha fazla ikili dosyaya çözümlenebilir:
- Belirtilen birden çok hedef noktalı virgülle (;)) ayrılmalıdır.
- Tanımlayıcı tek bir dosya olabilir veya joker karakterler içerebilir.
- Dizin belirtimleri her zaman \* ile bitmelidir.
- Örnekler:
*.dll;*.exe
$(BUILD_STAGINGDIRECTORY)\*
$(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
-
Tür listesinde Komut Satırı'nı seçerseniz binskim.exe çalıştırmanız gerekir:
- binskim.exe için ilk bağımsız değişkenlerin, bir veya daha fazla yol belirtimi tarafından izlenen fiil çözümlemesi olduğundan emin olun. Her yol tam yol veya kaynak dizine göre bir yol olabilir.
- Birden çok hedef yol bir boşlukla ayrılmalıdır.
- /o veya /output seçeneğini atlayabilirsiniz. Çıkış değeri sizin için eklenir veya değiştirilir.
- Standart komut satırı yapılandırmaları aşağıdaki gibi gösterilir.
analyze $(Build.StagingDirectory)\* --recurse --verbose
analyze *.dll *.exe --recurse --verbose
Not
Hedef için dizinler belirtirseniz sondaki \* önemlidir.
BinSkim komut satırı bağımsız değişkenleri, kimliğine göre kurallar veya çıkış kodları hakkında daha fazla bilgi için bkz. BinSkim Kullanıcı Kılavuzu.
Bu görevin YAML yapılandırması hakkında bilgi için BinSkim YAML seçeneklerimizi gözden geçirin
Kimlik Bilgisi Tarayıcısı görevi
Görev yapılandırmasının ayrıntıları aşağıdaki ekran görüntüsünde ve listede gösterilmiştir.
Mevcut seçenekler şunlardır:
- Görünen Ad: Azure DevOps Görevinin adı. Varsayılan değer Kimlik Bilgisi Tarayıcısını Çalıştır'dır
- Araç Ana Sürümü: Kullanılabilir değerler CredScan V2, CredScan V1'i içerir. Müşterilerin CredScan V2 sürümünü kullanmasını öneririz.
- Çıkış Biçimi: Kullanılabilir değerler arasında TSV, CSV, SARIF ve PREfast bulunur.
- Araç Sürümü: En Son seçeneğini belirlemenizi öneririz.
- Tarama Klasörü: Taranacak depo klasörü.
- Arama Yapanlar Dosya Türü: Tarama için kullanılan arama dosyası bulma seçenekleri.
- Gizleme Dosyası: Bir JSON dosyası çıkış günlüğündeki sorunları bastırabilir. Gizleme senaryoları hakkında daha fazla bilgi için bu makalenin SSS bölümüne bakın.
- Ayrıntılı Çıkış: Kendi kendine açıklayıcı.
- Toplu İş Boyutu: Kimlik Bilgisi Tarayıcısını çalıştırmak için kullanılan eşzamanlı iş parçacıklarının sayısı. Varsayılan değer 20'dir. Olası değerler 1 ile 2.147.483.647 arasında değişir.
- Eşleştirme Zaman Aşımı: Denetimi bırakmadan önce bir aramacı eşleştirmesi yapmaya çalışmak için geçmesi gereken saniye sayısı.
- Dosya Tarama Okuma Arabellek Boyutu: İçerik okunurken kullanılan arabelleğin bayt cinsinden boyutu. Varsayılan değer 524.288'dir.
- Okuma Bayt Sayısı Üst Sınırı: İçerik çözümlemesi sırasında bir dosyadan okunacak en fazla bayt sayısı. Varsayılan değer 104.857.600 olur.
- Denetim Seçenekleri>Bu görevi çalıştır: Görevin ne zaman çalıştırılacağını belirtir. Daha karmaşık koşullar belirtmek için Özel koşullar'ı seçin.
- Sürüm: Azure DevOps içindeki derleme görevi sürümü. Bu seçenek sık kullanılmaz.
Bu görevin YAML yapılandırması hakkında bilgi için Kimlik Bilgisi Tarayıcısı YAML seçeneklerimize bakın
Roslyn Çözümleyicileri görevi
Not
Roslyn Çözümleyicileri görevini çalıştırabilmeniz için önce derlemenizin şu koşulları karşılaması gerekir:
- Derleme tanımınız, C# veya Visual Basic kodunu derlemek için yerleşik MSBuild veya VSBuild derleme görevini içerir. Çözümleyiciler görevi, Roslyn çözümleyicileri etkinken MSBuild derlemesini çalıştırmak için yerleşik görevin giriş ve çıkışını kullanır.
- Bu derleme görevini çalıştıran derleme aracısının Visual Studio 2017 sürüm 15.5 veya üzeri yüklü olduğundan derleyici 2.6 veya sonraki bir sürümünü kullanır.
Görev yapılandırmasının ayrıntıları aşağıdaki listede ve notta gösterilmiştir.
Mevcut seçenekler şunlardır:
- Kural kümesi: Değerler SDL Gerekli, SDL Önerilir veya kendi özel kural kümenizdir.
- Çözümleyiciler Sürümü: En Son seçeneğini belirlemenizi öneririz.
- Derleyici Uyarıları Gizleme Dosyası: Gizlenen uyarı kimliklerinin listesini içeren bir metin dosyası.
- Denetim Seçenekleri>Bu görevi çalıştır: Görevin ne zaman çalıştırılacağını belirtir. Daha karmaşık koşullar belirtmek için Özel koşullar'ı seçin.
Not
Roslyn Çözümleyicileri derleyiciyle tümleşiktir ve yalnızca csc.exe derlemesinin bir parçası olarak çalıştırılabilir. Bu nedenle, bu görev derlemede daha önce çalıştırılan derleyici komutunun yeniden oynatılması veya yeniden çalıştırılmasını gerektirir. Bu yeniden yürütme veya çalıştırma, MSBuild derleme görev günlükleri için Azure DevOps (eski adıyla Visual Studio Team Services) sorgulanarak gerçekleştirilir.
Görevin derleme tanımından MSBuild derleme komut satırını güvenilir bir şekilde alması için başka bir yol yoktur. Kullanıcıların komut satırlarını girmesine izin vermek için serbest biçimli bir metin kutusu eklemeyi değerlendirdik. Ancak bu komut satırlarını güncel tutmak ve ana derlemeyle eşitlenmiş durumda tutmak zor olacaktır.
Özel derlemeler, yalnızca derleyici komutlarını değil tüm komut kümesini yeniden yürütmeyi gerektirir. Bu gibi durumlarda Roslyn Çözümleyicileri'ni etkinleştirmek basit veya güvenilir değildir.
Roslyn Çözümleyicileri derleyiciyle tümleşiktir. Roslyn Çözümleyicileri çağrılmak için derleme gerektirir.
Bu yeni derleme görevi, önceden oluşturulmuş olan C# projeleri yeniden derlenerek uygulanır. Yeni görev, özgün görevle aynı derleme veya derleme tanımında yalnızca MSBuild ve VSBuild derleme görevlerini kullanır. Ancak bu durumda yeni görev bunları Roslyn Çözümleyicileri etkin olarak kullanır.
Yeni görev özgün görevle aynı aracıda çalıştırılırsa, yeni görevin çıktısı özgün görevin kaynak klasöründeki çıkışının üzerine yazar. Derleme çıkışı aynı olsa da MSBuild çalıştırmanızı, çıkışı yapıt hazırlama dizinine kopyalamanızı ve ardından Roslyn Çözümleyicileri'ni çalıştırmanızı öneririz.
Roslyn Çözümleyicileri görevine yönelik ek kaynaklar için Roslyn tabanlı çözümleyicileri gözden geçirin.
Bu derleme görevi tarafından yüklenen ve kullanılan çözümleyici paketini Microsoft.CodeAnalysis.FxCopAnalyzers NuGet sayfasında bulabilirsiniz.
Bu görevin YAML yapılandırması hakkında bilgi için Roslyn Çözümleyicileri YAML seçeneklerimizi gözden geçirin
TSLint görevi
TSLint hakkında daha fazla bilgi için TSLint GitHub deposuna gidin.
Not
Bildiğiniz gibi , TSLint GitHub deposu giriş sayfasında TSLint'in 2019'da bir süre kullanım dışı bırakılacağı belirtilir. Microsoft alternatif bir görev olarak ESLint'i araştırıyor.
Bu görevin YAML yapılandırması hakkında bilgi için TSLint YAML seçeneklerimizi gözden geçirin
Güvenlik Çözümleme Günlüklerini Yayımlama görevi
Görev yapılandırmasının ayrıntıları aşağıdaki ekran görüntüsünde ve listede gösterilmiştir.
- Yapıt Adı: Herhangi bir dize tanımlayıcısı.
- Yapıt Türü: Seçiminize bağlı olarak, günlükleri Azure DevOps Server veya derleme aracısı tarafından erişilebilen paylaşılan bir dosyada yayımlayabilirsiniz.
- Araçlar: Belirli araçlar için günlükleri korumayı veya tüm günlükleri korumak için Tüm Araçlar'ı seçebilirsiniz.
Bu görevin YAML yapılandırması hakkında bilgi için Güvenlik Günlüklerini Yayımla YAML seçeneklerimizi gözden geçirin
Güvenlik Raporu görevi
Güvenlik Raporu yapılandırmasının ayrıntıları aşağıdaki ekran görüntüsünde ve listede gösterilmiştir.
- Raporlar: İşlem Hattı Konsolu, TSV Dosyası ve Html Dosyası biçimlerinden herhangi birini seçin. Seçilen her biçim için bir rapor dosyası oluşturulur.
- Araçlar: Derleme tanımınızda algılanan sorunların özetini almak istediğiniz araçları seçin. Seçilen her araç için, yalnızca hataları mı yoksa hem hataları hem de uyarıları özet raporunda mı göreceğinizi seçme seçeneği olabilir.
- Gelişmiş Seçenekler: Seçilen araçlardan biri için günlük yoksa, bir uyarı veya hata kaydetmeyi seçebilirsiniz. Bir hatayı günlüğe kaydederseniz görev başarısız olur.
- Temel Günlükler Klasörü: Günlüklerin bulunacağı temel günlükler klasörünü özelleştirebilirsiniz. Ancak bu seçenek genellikle kullanılmaz.
Bu görevin YAML yapılandırması hakkında bilgi için Güvenlik raporu YAML seçeneklerimizi gözden geçirin
Çözümleme Sonrası görevi
Görev yapılandırmasının ayrıntıları aşağıdaki ekran görüntüsünde ve listede gösterilmiştir.
- Araçlar: Derleme tanımınızda, koşullu olarak derleme sonu eklemek istediğiniz araçları seçin. Seçilen her araç için, yalnızca hatalarda mı yoksa hem hatalarda hem de uyarılarda kesme yapmak isteyip istemediğinizi belirleme seçeneği olabilir.
- Rapor: İsteğe bağlı olarak derlemenin bozulmasına neden olan sonuçları yazabilirsiniz. Sonuçlar Azure DevOps konsol penceresine ve günlük dosyasına yazılır.
- Gelişmiş Seçenekler: Seçilen araçlardan biri için günlük yoksa, bir uyarı veya hata kaydetmeyi seçebilirsiniz. Bir hatayı günlüğe kaydederseniz görev başarısız olur.
Bu görevin YAML yapılandırması hakkında bilgi için Analiz Sonrası YAML seçeneklerimizi gözden geçirin
Sonraki adımlar
YAML tabanlı yapılandırma hakkında bilgi için YAML Yapılandırma kılavuzumuza bakın.
Güvenlik Kodu Analizi uzantısı ve sunulan araçlar hakkında daha fazla sorunuz varsa SSS sayfamıza göz atın.