Konfigurace a přizpůsobení úloh sestavení
Poznámka
S platností od 31. prosince 2022 je rozšíření Microsoft Security Code Analysis (MSCA) vyřazeno z provozu. MSCA se nahrazuje rozšířením Microsoft Security DevOps Azure DevOps. Postupujte podle pokynů v tématu Konfigurace a nainstalujte a nakonfigurujte rozšíření.
Tento článek podrobně popisuje možnosti konfigurace dostupné v jednotlivých úlohách sestavení. Článek začíná úlohami pro nástroje pro analýzu kódu zabezpečení. Končí úlohami následného zpracování.
Antimalwarový skener – úloha
Poznámka
Úloha sestavení antimalwarového skeneru vyžaduje agenta sestavení s povoleným Windows Defender. Hostovaná sada Visual Studio 2017 a novější poskytují takového agenta. Úloha sestavení se nespustí na agentovi hostovaném v sadě Visual Studio 2015.
I když u těchto agentů není možné podpisy aktualizovat, měly by být vždy starší než tři hodiny.
Podrobnosti o konfiguraci úlohy jsou uvedeny na následujícím snímku obrazovky a v následujícím textu.
V seznamu Typ snímku obrazovky je vybraná možnost Základní . Vyberte Vlastní a zadejte argumenty příkazového řádku, které přizpůsobí kontrolu.
Windows Defender ke stažení a instalaci podpisů používá klienta služba Windows Update. Pokud v agentu sestavení selže aktualizace podpisu, kód chyby HRESULT pravděpodobně pochází z služba Windows Update.
Další informace o služba Windows Update chybách a jejich zmírnění najdete v tématu služba Windows Update kódů chyb podle komponent a v článku služba Windows Update Agent – Kódy chyb na techNetu.
Informace o konfiguraci YAML pro tuto úlohu najdete v našich antimalwarových možnostech YAML.
BinSkim – úloha
Poznámka
Před spuštěním úlohy BinSkim musí sestavení splňovat jednu z těchto podmínek:
- Sestavení vytvoří binární artefakty ze spravovaného kódu.
- Máte potvrzené binární artefakty, které chcete analyzovat pomocí BinSkim.
Podrobnosti o konfiguraci úlohy najdete na následujícím snímku obrazovky a v seznamu.
- Nastavte konfiguraci sestavení na Ladit, aby se vytvořily ladicí soubory .pdb. BinSkim tyto soubory používá k mapování problémů ve výstupních binárních souborech zpět na zdrojový kód.
- Pokud se chcete vyhnout zkoumání a vytváření vlastního příkazového řádku:
- V seznamu Typ vyberte Základní.
- V seznamu Funkce vyberte Analyzovat.
- V části Cíl zadejte jeden nebo více specifikátorů pro soubor, adresář nebo vzor filtru. Tyto specifikátory se přeloží na jeden nebo více binárních souborů, které se mají analyzovat:
- Více zadaných cílů musí být odděleno středníkem (;).
- Specifikátorem může být jeden soubor nebo může obsahovat zástupné znakůé.
- Specifikace adresáře musí vždy končit znakem \*.
- Příklady:
*.dll;*.exe
$(BUILD_STAGINGDIRECTORY)\*
$(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
- Pokud v seznamu Typ vyberete Příkazový řádek, budete muset spustit binskim.exe:
- Ujistěte se, že prvními argumenty, které binskim.exe, jsou příkaz analyze následovaný jednou nebo více specifikacemi cesty. Každá cesta může být úplná nebo relativní cesta ke zdrojovému adresáři.
- Více cílových cest musí být odděleno mezerou.
- Možnost /o nebo /output můžete vynechat. Výstupní hodnota se přidá za vás nebo se nahradí.
- Standardní konfigurace příkazového řádku jsou zobrazeny následovně.
analyze $(Build.StagingDirectory)\* --recurse --verbose
analyze *.dll *.exe --recurse --verbose
Poznámka
Koncový znak \* je důležitý, pokud pro cíl zadáte adresáře.
Další informace o argumentech příkazového řádku BinSkim, pravidlech podle ID nebo ukončovacích kódech najdete v uživatelské příručce k BinSkim.
Informace o konfiguraci YAML pro tuto úlohu najdete v našich možnostech BinSkim YAML.
Úloha skeneru přihlašovacích údajů
Podrobnosti o konfiguraci úlohy najdete na následujícím snímku obrazovky a v seznamu.
Mezi dostupné možnosti patří:
- Zobrazovaný název: Název úlohy Azure DevOps. Výchozí hodnota je Spustit kontrolu přihlašovacích údajů.
- Hlavní verze nástroje: Mezi dostupné hodnoty patří CredScan V2, CredScan V1. Doporučujeme zákazníkům používat verzi CredScan V2 .
- Výstupní formát: Mezi dostupné hodnoty patří TSV, CSV, SARIF a PREfast.
- Verze nástroje: Doporučujeme vybrat nejnovější.
- Prohledat složku: Složka úložiště, která se má zkontrolovat.
- Typ souboru searchers: Možnosti pro vyhledání souboru vyhledávacích souborů, který se používá ke kontrole.
- Soubor potlačení: Soubor JSON může potlačit problémy ve výstupním protokolu. Další informace o scénářích potlačení najdete v části Nejčastější dotazy v tomto článku.
- Podrobný výstup: Vysvětlující.
- Velikost dávky: Počet souběžných vláken použitých ke spuštění kontroly přihlašovacích údajů. Výchozí hodnota je 20. Možné hodnoty jsou v rozsahu od 1 do 2 147 483 647.
- Časový limit shody: Doba v sekundách strávená pokusem vyhledávacího procesu se shoduje, než se šek zruší.
- Velikost vyrovnávací paměti pro čtení kontroly souborů: Velikost vyrovnávací paměti použité při čtení obsahu v bajtech. Výchozí hodnota je 524 288.
- Maximální počet přečtených bajtů kontroly souborů: Maximální počet bajtů, které se mají ze souboru načíst během analýzy obsahu. Výchozí hodnota je 104 857 600.
- Možnosti> ovládacího prvku Spustit tuto úlohu: Určuje, kdy se má úloha spustit. Pokud chcete zadat složitější podmínky, vyberte Vlastní podmínky .
- Verze: Verze úlohy sestavení v rámci Azure DevOps. Tato možnost se často nepoužívá.
Informace o konfiguraci YAML pro tuto úlohu najdete v našich možnostech YAML skeneru přihlašovacích údajů.
Roslyn Analyzers – úloha
Poznámka
Před spuštěním úlohy Roslyn Analyzers musí sestavení splňovat tyto podmínky:
- Definice sestavení zahrnuje integrovanou úlohu sestavení MSBuild nebo VSBuild pro kompilaci kódu jazyka C# nebo Visual Basic. Úloha analyzátorů spoléhá na vstup a výstup předdefinované úlohy ke spuštění kompilace NÁSTROJE MSBuild s povolenými analyzátory Roslyn.
- Agent sestavení, který spouští tuto úlohu sestavení, má nainstalovanou sadu Visual Studio 2017 verze 15.5 nebo novější, takže používá kompilátor verze 2.6 nebo novější.
Podrobnosti o konfiguraci úlohy najdete v následujícím seznamu a v poznámce.
Mezi dostupné možnosti patří:
- Sada pravidel: Hodnoty jsou SDL Povinné, Doporučené SDL nebo Vlastní sada pravidel.
- Verze analyzátorů: Doporučujeme vybrat nejnovější.
- Soubor potlačení upozornění kompilátoru: Textový soubor se seznamem ID upozornění, která jsou potlačena.
- Možnosti> ovládacího prvku Spustit tuto úlohu: Určuje, kdy se má úloha spustit. Pokud chcete zadat složitější podmínky, zvolte Vlastní podmínky.
Poznámka
Analyzátory Roslyn jsou integrovány s kompilátorem a lze je spustit pouze jako součást kompilace csc.exe. Tato úloha proto vyžaduje, aby se příkaz kompilátoru, který byl spuštěn dříve v sestavení, znovu přehrál nebo spustil. Toto přehrání nebo spuštění se provádí dotazováním Azure DevOps (dříve Visual Studio Team Services) na protokoly úloh sestavení MSBuild.
Neexistuje žádný jiný způsob, jak úloha spolehlivě získat příkazový řádek kompilace MSBuild z definice sestavení. Zvažovali jsme přidání textového pole volného tvaru, které uživatelům umožní zadávat příkazové řádky. Pak by ale bylo těžké udržovat tyto příkazové řádky aktuální a synchronizované s hlavním buildem.
Vlastní sestavení vyžadují přehrání celé sady příkazů, ne jenom příkazů kompilátoru. V těchto případech není povolení analyzátorů Roslyn triviální ani spolehlivé.
Analyzátory Roslyn jsou integrované s kompilátorem. Chcete-li vyvolat analyzátory Roslyn, vyžadují kompilaci.
Tato nová úloha sestavení se implementuje rekompilací již vytvořených projektů jazyka C#. Nová úloha používá pouze úlohy sestavení MSBuild a VSBuild ve stejné definici sestavení nebo sestavení jako původní úloha. V tomto případě je ale nová úloha používá s povolenými analyzátory Roslyn.
Pokud nová úloha běží na stejném agentovi jako původní úloha, výstup nové úlohy přepíše výstup původní úlohy ve složce sources. I když je výstup sestavení stejný, doporučujeme spustit nástroj MSBuild, zkopírovat výstup do pracovního adresáře artifacts a pak spustit Roslyn Analyzers.
Další zdroje informací pro úlohu Roslyn Analyzers najdete v analyzátorech založených na Roslynu.
Balíček analyzátoru nainstalovaný a používaný touto úlohou sestavení najdete na stránce NuGet Microsoft.CodeAnalysis.FxCopAnalyzers.
Informace o konfiguraci YAML pro tuto úlohu najdete v možnostech YAML analyzátorů Roslyn.
TSLint – úloha
Další informace o nástroji TSLint najdete v úložišti TSLint Na GitHubu.
Poznámka
Jak možná víte, domovská stránka úložiště TSLint Na GitHubu uvádí, že TSLint bude vyřazen z provozu někdy v roce 2019. Microsoft zkoumá ESLint jako alternativní úlohu.
Informace o konfiguraci YAML pro tuto úlohu najdete v našich možnostech TSLint YAML.
Publikovat protokoly analýzy zabezpečení – úloha
Podrobnosti o konfiguraci úlohy najdete na následujícím snímku obrazovky a v seznamu.
- Název artefaktu: Libovolný identifikátor řetězce.
- Typ artefaktu: V závislosti na vašem výběru můžete publikovat protokoly do Azure DevOps Server nebo do sdíleného souboru, který je přístupný pro agenta sestavení.
- Nástroje: Můžete se rozhodnout zachovat protokoly pro konkrétní nástroje, nebo můžete vybrat Všechny nástroje a zachovat všechny protokoly.
Informace o konfiguraci YAML pro tuto úlohu najdete v našich možnostech YAML pro publikování protokolů zabezpečení.
Úloha sestavy zabezpečení
Podrobnosti o konfiguraci sestavy zabezpečení najdete na následujícím snímku obrazovky a v seznamu.
- Sestavy: Vyberte kterýkoli z formátů Konzola kanálu, Soubor TSV a Soubor HTML . Pro každý vybraný formát se vytvoří jeden soubor sestavy.
- Nástroje: Vyberte nástroje v definici sestavení, pro které chcete zobrazit souhrn zjištěných problémů. U každého vybraného nástroje může být k dispozici možnost vybrat, jestli se v souhrnné sestavě zobrazují jenom chyby, nebo jestli se v souhrnné sestavě zobrazují chyby i upozornění.
- Upřesnit možnosti: Pokud nejsou k dispozici žádné protokoly pro některý z vybraných nástrojů, můžete zvolit protokolování upozornění nebo chyby. Pokud zaznamenáte chybu, úloha selže.
- Základní složka protokolů: Můžete přizpůsobit složku základních protokolů, ve které se mají protokoly najít. Tato možnost se ale obvykle nepoužívá.
Informace o konfiguraci YAML pro tuto úlohu najdete v našich možnostech YAML sestavy zabezpečení.
Úloha po analýze
Podrobnosti o konfiguraci úlohy najdete na následujícím snímku obrazovky a v seznamu.
- Nástroje: Vyberte nástroje v definici sestavení, pro které chcete podmíněně vložit přerušení sestavení. U každého vybraného nástroje může být k dispozici možnost vybrat, jestli chcete chybu přerušit pouze při chybách, nebo u chyb i upozornění.
- Sestava: Volitelně můžete zapsat výsledky, které způsobují přerušení sestavení. Výsledky se zapíšou do okna konzoly Azure DevOps a do souboru protokolu.
- Upřesnit možnosti: Pokud nejsou k dispozici žádné protokoly pro některý z vybraných nástrojů, můžete zvolit protokolování upozornění nebo chyby. Pokud zaznamenáte chybu, úloha selže.
Informace o konfiguraci YAML pro tuto úlohu najdete v našich možnostech YAML po analýze.
Další kroky
Informace o konfiguraci založené na YAML najdete v našem průvodci konfigurací YAML.
Pokud máte další dotazy k rozšíření Analýza bezpečnostního kódu a nabízeným nástrojům, podívejte se na naši stránku s nejčastějšími dotazy.