De buildtaken configureren en aanpassen
Notitie
Met ingang van 31 december 2022 is de MSCA-extensie (Microsoft Security Code Analysis) buiten gebruik gesteld. MSCA wordt vervangen door de Microsoft Security DevOps Azure DevOps-extensie. Volg de instructies in Configureren om de extensie te installeren en configureren.
In dit artikel worden de configuratieopties die beschikbaar zijn in elk van de buildtaken gedetailleerd beschreven. Het artikel begint met de taken voor hulpprogramma's voor het analyseren van beveiligingscode. Het eindigt met de naverwerkingstaken.
Antimalwarescannertaak
Notitie
Voor de buildtaak antimalwarescanner is een buildagent vereist waarvoor Windows Defender ingeschakeld. Gehoste Visual Studio 2017 en hoger bieden een dergelijke agent. De build-taak wordt niet uitgevoerd op de door Visual Studio 2015 gehoste agent.
Hoewel handtekeningen niet kunnen worden bijgewerkt op deze agents, moeten handtekeningen altijd minder dan drie uur oud zijn.
Details van de taakconfiguratie worden weergegeven in de volgende schermopname en tekst.
In de keuzelijst Type van de schermopname is Basic geselecteerd. Selecteer Aangepast om opdrachtregelargumenten op te geven waarmee de scan wordt aangepast.
Windows Defender gebruikt de Windows Update-client om handtekeningen te downloaden en te installeren. Als het bijwerken van de handtekening op uw buildagent mislukt, is de HRESULT-foutcode waarschijnlijk afkomstig van Windows Update.
Zie Windows Update foutcodes per onderdeel en het TechNet-artikel Windows Update Agent - Foutcodes voor meer informatie over Windows Update fouten en de beperking ervan.
Raadpleeg onze YAML-opties voor antimalware voor informatie over YAML-configuratie voor deze taak
BinSkim-taak
Notitie
Voordat u de BinSkim-taak kunt uitvoeren, moet uw build aan een van deze voorwaarden voldoen:
- Uw build produceert binaire artefacten op basis van beheerde code.
- U hebt binaire artefacten vastgelegd die u wilt analyseren met BinSkim.
Details van de taakconfiguratie worden weergegeven in de volgende schermopname en lijst.
- Stel de buildconfiguratie in op Foutopsporing, zodat .pdb-foutopsporingsbestanden worden geproduceerd. BinSkim gebruikt deze bestanden om problemen in de binaire uitvoerbestanden weer toe te wijzen aan broncode.
- Ga als volgt te werk om te voorkomen dat u uw eigen opdrachtregel moet onderzoeken en maken:
- Selecteer Basic in de lijst Type.
- Selecteer Analyseren in de lijst Functie.
- Voer in Doel een of meer aanduidingen in voor een bestand, map of filterpatroon. Deze aanduidingen worden omgezet in een of meer binaire bestanden die moeten worden geanalyseerd:
- Meerdere opgegeven doelen moeten worden gescheiden door een puntkomma (;).
- Een aanduiding kan één bestand zijn of jokertekens bevatten.
- Directoryspecificaties moeten altijd eindigen op \*.
- Voorbeelden:
*.dll;*.exe
$(BUILD_STAGINGDIRECTORY)\*
$(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
- Als u Opdrachtregel selecteert in de lijst Type , moet u binskim.exe uitvoeren:
- Zorg ervoor dat de eerste argumenten om te binskim.exe het werkwoord analyseren zijn, gevolgd door een of meer padspecificaties. Elk pad kan een volledig pad of een pad ten opzichte van de bronmap zijn.
- Meerdere doelpaden moeten worden gescheiden door een spatie.
- U kunt de /o of /output optie weglaten. De uitvoerwaarde wordt voor u toegevoegd of vervangen.
- Standaard opdrachtregelconfiguraties worden als volgt weergegeven.
analyze $(Build.StagingDirectory)\* --recurse --verbose
analyze *.dll *.exe --recurse --verbose
Notitie
De afsluitende \* is belangrijk als u mappen voor het doel opgeeft.
Zie de BinSkim-gebruikershandleiding voor meer informatie over BinSkim-opdrachtregelargumenten, regels op id of afsluitcodes.
Raadpleeg onze BinSkim YAML-opties voor informatie over YAML-configuratie voor deze taak
Referentiescannertaak
Details van de taakconfiguratie worden weergegeven in de volgende schermopname en lijst.
Beschikbare opties zijn onder meer:
- Weergavenaam: de naam van de Azure DevOps-taak. De standaardwaarde is Referentiescanner uitvoeren
- Primaire versie van hulpprogramma: Beschikbare waarden zijn CredScan V2, CredScan V1. We raden klanten aan de CredScan V2-versie te gebruiken.
- Uitvoerindeling: Beschikbare waarden zijn TSV, CSV, SARIF en PREfast.
- Hulpprogrammaversie: u wordt aangeraden Meest recente te selecteren.
- Scanmap: de opslagplaatsmap die moet worden gescand.
- Bestandstype zoeken: de opties voor het zoeken naar het zoekbestand dat wordt gebruikt voor het scannen.
- Onderdrukkingsbestand: een JSON-bestand kan problemen in het uitvoerlogboek onderdrukken. Zie de sectie Veelgestelde vragen van dit artikel voor meer informatie over onderdrukkingsscenario's.
- Uitgebreide uitvoer: spreekt voor zich.
- Batchgrootte: het aantal gelijktijdige threads dat wordt gebruikt om Credential Scanner uit te voeren. De standaardwaarde is 20. Mogelijke waarden variëren van 1 tot en met 2.147.483.647.
- Overeenkomsttime-out: de hoeveelheid tijd in seconden die moet worden besteed aan het proberen van een zoekactie voordat de controle wordt afgezien.
- Grootte van de leesbuffer voor bestandsscans: de grootte in bytes van de buffer die wordt gebruikt tijdens het lezen van inhoud. De standaardwaarde is 524.288.
- Maximum aantal leesbytes voor bestandscontrole: het maximum aantal bytes dat uit een bestand moet worden gelezen tijdens inhoudsanalyse. De standaardwaarde is 104.857.600.
- Besturingsopties>Deze taak uitvoeren: hiermee geeft u op wanneer de taak wordt uitgevoerd. Selecteer Aangepaste voorwaarden om complexere voorwaarden op te geven.
- Versie: de versie van de buildtaak in Azure DevOps. Deze optie wordt niet vaak gebruikt.
Voor informatie over YAML-configuratie voor deze taak raadpleegt u onze YAML-opties voor referentiescanner
Roslyn Analyzers-taak
Notitie
Voordat u de Roslyn Analyzers-taak kunt uitvoeren, moet uw build aan de volgende voorwaarden voldoen:
- Uw builddefinitie bevat de ingebouwde MSBuild- of VSBuild-buildtaak voor het compileren van C# of Visual Basic-code. De analysetaak is afhankelijk van de invoer en uitvoer van de ingebouwde taak om de MSBuild-compilatie uit te voeren met Roslyn Analyzers ingeschakeld.
- Visual Studio 2017 versie 15.5 of hoger is geïnstalleerd op de buildagent waarop deze buildtaak wordt uitgevoerd, zodat deze compilerversie 2.6 of hoger gebruikt.
Details van de taakconfiguratie worden weergegeven in de volgende lijst en opmerking.
Beschikbare opties zijn onder meer:
- Regelset: waarden zijn SDL vereist, SDL aanbevolen of uw eigen aangepaste regelset.
- Versie van analyzers: u wordt aangeraden Meest recente te selecteren.
- Compilerwaarschuwingen onderdrukkingsbestand: een tekstbestand met een lijst met waarschuwings-id's die worden onderdrukt.
- Besturingsopties>Deze taak uitvoeren: hiermee geeft u op wanneer de taak wordt uitgevoerd. Kies Aangepaste voorwaarden om complexere voorwaarden op te geven.
Notitie
Roslyn Analyzers zijn geïntegreerd met de compiler en kunnen alleen worden uitgevoerd als onderdeel van csc.exe compilatie. Daarom moet deze taak de compileropdracht die eerder in de build is uitgevoerd, opnieuw worden afgespeeld of opnieuw worden uitgevoerd. Deze herhaling of uitvoering wordt uitgevoerd door een query uit te voeren op Azure DevOps (voorheen Visual Studio Team Services) voor de MSBuild-taaklogboeken.
Er is geen andere manier voor de taak om op betrouwbare wijze de MSBuild-compilatie-opdrachtregel uit de builddefinitie op te halen. We hebben overwogen om een tekstvak voor vrije vorm toe te voegen, zodat gebruikers hun opdrachtregels kunnen invoeren. Maar dan is het moeilijk om deze opdrachtregels up-to-date en synchroon te houden met de hoofdversie.
Voor aangepaste builds moet de volledige set opdrachten opnieuw worden afgespeeld, niet alleen compileropdrachten. In dergelijke gevallen is het inschakelen van Roslyn Analyzers niet eenvoudig of betrouwbaar.
Roslyn Analyzers zijn geïntegreerd met de compiler. Roslyn Analyzers moeten worden aangeroepen als compilatie.
Deze nieuwe buildtaak wordt geïmplementeerd door C#-projecten die al zijn gemaakt, opnieuw te compileren. De nieuwe taak gebruikt alleen de MSBuild- en VSBuild-buildtaken in dezelfde build- of builddefinitie als de oorspronkelijke taak. In dit geval gebruikt de nieuwe taak deze echter met Roslyn Analyzers ingeschakeld.
Als de nieuwe taak wordt uitgevoerd op dezelfde agent als de oorspronkelijke taak, overschrijft de uitvoer van de nieuwe taak de uitvoer van de oorspronkelijke taak in de bronmap. Hoewel de build-uitvoer hetzelfde is, raden we u aan MSBuild uit te voeren, de uitvoer te kopiëren naar de map fasering van artefacten en vervolgens Roslyn Analyzers uit te voeren.
Raadpleeg de op Roslyn gebaseerde analyses voor aanvullende resources voor de taak Roslyn Analyzers.
U vindt het analysepakket dat door deze buildtaak is geïnstalleerd en gebruikt op de NuGet-pagina Microsoft.CodeAnalysis.FxCopAnalyzers.
Voor informatie over YAML-configuratie voor deze taak raadpleegt u onze YAML-opties voor Roslyn Analyzers
TSLint-taak
Ga voor Meer informatie over TSLint naar de TSLint GitHub-opslagplaats.
Notitie
Zoals u misschien weet, wordt op de startpagina van de TSLint GitHub-opslagplaats aangegeven dat TSLint ergens in 2019 wordt afgeschaft. Microsoft onderzoekt ESLint als een alternatieve taak.
Voor informatie over YAML-configuratie voor deze taak raadpleegt u onze TSLint YAML-opties
Taak Beveiligingsanalyselogboeken publiceren
Details van de taakconfiguratie worden weergegeven in de volgende schermopname en lijst.
- Naam van artefact: elke tekenreeks-id.
- Type artefact: afhankelijk van uw selectie kunt u logboeken publiceren naar uw Azure DevOps Server of naar een gedeeld bestand dat toegankelijk is voor de buildagent.
- Hulpprogramma's: U kunt ervoor kiezen om logboeken voor specifieke hulpprogramma's te behouden of u kunt Alle hulpprogramma's selecteren om alle logboeken te behouden.
Raadpleeg de YAML-opties voor het publiceren van beveiligingslogboeken voor informatie over YAML-configuratie voor deze taak
Beveiligingsrapporttaak
Details van de configuratie van het beveiligingsrapport worden weergegeven in de volgende schermopname en lijst.
- Rapporten: selecteer een van de bestandsindelingen Pijplijnconsole, TSV-bestand en HTML-bestandsindelingen . Er wordt één rapportbestand gemaakt voor elke geselecteerde indeling.
- Hulpprogramma's: selecteer de hulpprogramma's in uw builddefinitie waarvoor u een overzicht van gedetecteerde problemen wilt. Voor elk geselecteerd hulpprogramma kan er een optie zijn om te selecteren of u alleen fouten ziet of zowel fouten als waarschuwingen in het overzichtsrapport ziet.
- Geavanceerde opties: Als er geen logboeken zijn voor een van de hulpprogramma's die zijn geselecteerd, kunt u ervoor kiezen om een waarschuwing of een fout te registreren. Als u een fout opgeeft, mislukt de taak.
- Map basislogboeken: u kunt de map met basislogboeken aanpassen waarin de logboeken zich bevinden. Maar deze optie wordt meestal niet gebruikt.
Voor informatie over YAML-configuratie voor deze taak raadpleegt u de YAML-opties voor beveiligingsrapport
Taak na analyse
Details van de taakconfiguratie worden weergegeven in de volgende schermopname en lijst.
- Hulpprogramma's: Selecteer de hulpprogramma's in uw builddefinitie waarvoor u voorwaardelijk een build-einde wilt invoegen. Voor elk hulpmiddel dat is geselecteerd, is er mogelijk een optie om te selecteren of u alleen fouten of waarschuwingen wilt onderbreken.
- Rapport: u kunt desgewenst de resultaten schrijven die de build-onderbreking veroorzaken. De resultaten worden naar het Azure DevOps-consolevenster en logboekbestand geschreven.
- Geavanceerde opties: Als er geen logboeken zijn voor een van de hulpprogramma's die zijn geselecteerd, kunt u ervoor kiezen om een waarschuwing of een fout te registreren. Als u een fout opgeeft, mislukt de taak.
Raadpleeg onze YAML-opties na analyse voor informatie over YAML-configuratie voor deze taak
Volgende stappen
Raadpleeg onze YAML-configuratiehandleiding voor informatie over op YAML gebaseerde configuratie.
Als u meer vragen hebt over de uitbreiding voor beveiligingscodeanalyse en de hulpprogramma's die worden aangeboden, raadpleegt u onze pagina met veelgestelde vragen.