Aracılığıyla paylaş


Derleme görevlerini yapılandırma ve özelleştirme

Uyarı

31 Aralık 2022'den itibaren Microsoft Güvenlik Kodu Analizi (MSCA) uzantısı kullanımdan kaldırılmıştır. 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 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. Görevlerin işlem sonrası tamamlanmasıyla sona erer.

Kötü Amaçlı Yazılımdan Koruma Tarayıcısı görevi

Uyarı

Kötü Amaçlı Yazılımdan Koruma Tarayıcısı derleme görevi, Windows Defender'ın etkin olduğu 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 acente üzerinde çalışmayacak.

İmzalar bu aracılarda güncelleştirilemese de, imzalar her zaman üç saatten eski olmamalı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.

Kötü Amaçlı Yazılımdan Koruma Tarayıcısı derleme görevini yapılandırma

Ekran görüntüsünün Tür liste kutusunda Temel seçilidir. Komut satırı bağımsız değişkenleri sağlamak ve taramayı özelleştirmek 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'ten 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 Windows Update Aracısı - Hata Kodları 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çeneklerimize bakın

BinSkim görevi

Uyarı

BinSkim görevini çalıştırabilmeniz için önce derlemenizin şu koşullardan birini karşılaması gerekir:

  • Derlemeniz, yönetilen koddan ikili dosyalar üretir.
  • BinSkim ile analiz etmek istediğiniz kaydedilmiş 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.

BinSkim derleme görevini yapılandırma

  • .pdb debug dosyalarının üretilmesi için derleme yapılandırmasını Debug olarak ayarlayın. BinSkim, çıkış ikili dosyalarındaki sorunları kaynak koda 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, analiz edilmesi gereken bir veya daha fazla ikili dosyaya dönüşür.
    • 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 fiil çözümle ve ardından bir veya daha fazla yol belirtimi olduğundan emin olun. Her bir yol, tam bir yol veya kaynak dizine göre göreceli 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

Uyarı

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çeneklerimize bakın

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.

Kimlik Bilgisi Tarayıcısı derleme görevini yapılandırma

Kullanılabilir 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'tir. Müşterilerin CredScan V2 sürümünü kullanmasını öneririz.
  • Çıkış Biçimi: Kullanılabilir değerler TSV, CSV, SARIF ve PREfast'tır.
  • 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ını bulma seçenekleri.
  • Gizleme Dosyası: Bir JSON dosyası çıkış günlüğündeki sorunları gizleyebilir. 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 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.
  • En Fazla Dosya Tarama Okuma Bayt Sayısı: İçerik analizi sırasında bir dosyadan okunacak bayt sayısı üst sınırı. Varsayılan değer 104.857.600'dür.
  • 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

Uyarı

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ümleyici görevi, Roslyn çözümleyicileri etkinken MSBuild derlemesini çalıştırmak için dahili görevin girdi ve çıktısına bağlıdı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ü kullanır.

Görev yapılandırmasının ayrıntıları aşağıdaki listede ve notta gösterilmiştir.

Kullanılabilir 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.

Uyarı

  • Roslyn Çözümleyicileri derleyiciyle tümleştirilir ve yalnızca csc.exe derlemenin 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, yapı tanımından MSBuild derleme komut satırını güvenilir bir şekilde almasının başka bir yolu yoktur. Kullanıcıların komut satırlarını girmesine izin vermek için serbest biçimli bir metin kutusu eklemeyi değerlendirdik. Ancak, up-to-date komut satırlarını ana yapı ile eşitlenmiş durumda korumak 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 derleyici ile entegre edilmiştir. Roslyn Çözümleyicileri çalıştırılmak için derleme gerektirir.

    Bu yeni derleme görevi, önceden oluşturulmuş olan C# projelerini yeniden derleyerek 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 etkinken kullanır.

    Eğer yeni görev özgün görevle aynı etmen üzerinde çalışıyorsa, yeni görevin çıktısı özgün görevin çıktısının üzerine s sources klasöründe yazar. Derleme çıkışı aynı olsa da MSBuild çalıştırmanızı, çıktıyı yapıt hazırlama dizinine kopyalamanızı ve ardından Roslyn Çözümleyicileri'ni çalıştırmanızı öneririz.

Roslyn Çözümleyicileri görevi için 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çeneklerimize bakın

TSLint görevi

TSLint hakkında daha fazla bilgi için TSLint GitHub deposuna gidin.

Uyarı

Bildiğiniz gibi , TSLint GitHub deposu giriş sayfasında TSLint'in 2019'da kullanım dışı bırakılacağı belirtiliyor. 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çeneklerimize bakın

Güvenlik Çözümleme Günlüklerini Yayımla 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.

Güvenlik Çözümleme Günlüklerini Yayımla derleme görevini yapılandırma

  • 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'ınıza veya derleme aracısı tarafından erişilebilen paylaşılan bir dosyaya 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çeneklerimize bakın

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.

Güvenlik Raporu derleme görevini yapılandırma

  • 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 belirleme 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ı kaydederseniz işlem 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çeneklerimize bakın

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

Çözümleme Sonrası derleme görevini yapılandırma

  • 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 veya 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çeneklerimize bakın

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.