Condividi tramite


Configurare e personalizzare le attività di compilazione

Nota

A partire dal 31 dicembre 2022, l'estensione Microsoft Security Code Analysis (MSCA) viene ritirata. MSCA viene sostituito dall'estensione Microsoft Security DevOps di Azure DevOps. Seguire le istruzioni in Configurare per installare e configurare l'estensione.

Questo articolo descrive in dettaglio le opzioni di configurazione disponibili in ognuna delle attività di compilazione. L'articolo inizia con le attività per gli strumenti di analisi del codice di sicurezza. Termina con le attività di post-elaborazione.

Attività di Scansione Antimalware

Nota

L'attività di compilazione Anti-Malware Scanner richiede un agente di compilazione con Windows Defender abilitato. Visual Studio 2017 ospitato e versioni successive forniscono un agente di questo tipo. L'attività di compilazione non verrà eseguita nell'agente ospitato di Visual Studio 2015.

Anche se le firme non possono essere aggiornate su questi agenti, le firme devono essere sempre più recenti di tre ore.

I dettagli della configurazione delle attività sono illustrati nello screenshot e nel testo seguenti.

Configurazione dell'attività di build dello scanner anti-malware

Nella casella di riepilogo Tipo dello screenshot, è selezionata Basic. Selezionare Personalizza per fornire argomenti della riga di comando che personalizzano l'analisi.

Windows Defender usa il client Windows Update per scaricare e installare le firme. Se l'aggiornamento della firma non riesce nell'agente di compilazione, è probabile che il codice di errore HRESULT provenirà da Windows Update.

Per altre informazioni sugli errori di Windows Update e sulla relativa mitigazione, vedere codici di errore di Windows Update per componente e l'articolo TechNet Agente di Windows Update - Codici di errore.

Per informazioni sulla configurazione YAML per questa attività, consultare le opzioni antimalware YAML .

Attività BinSkim

Nota

Prima di poter eseguire l'attività BinSkim, il build deve soddisfare una di queste condizioni:

  • La compilazione produce artefatti binari dal codice gestito.
  • Disponi di artefatti binari che sono stati commessi e che vuoi analizzare con BinSkim.

I dettagli della configurazione delle attività sono visualizzati nello screenshot e nell'elenco seguenti.

Configurazione dell'attività di compilazione BinSkim

  • Impostare la configurazione di compilazione su Debug in modo che vengano generati i file di debug con estensione pdb. BinSkim usa questi file per eseguire il mapping dei problemi nei file binari di output al codice sorgente.
  • Per evitare di eseguire ricerche e creare una riga di comando personalizzata:
    • Nell'elenco Tipo di , selezionare Basic.
    • Nell'elenco funzione , selezionare Analizza .
  • In Destinazioneimmettere uno o più identificatori per un file, una directory o un criterio di filtro. Questi identificatori risolvono in uno o più file binari da analizzare:
    • Più destinazioni specificate devono essere separate da un punto e virgola (;).
    • Un identificatore può essere un singolo file o contenere caratteri jolly.
    • Le specifiche della directory devono sempre terminare con \*.
    • Esempi:
           *.dll;*.exe
           $(BUILD_STAGINGDIRECTORY)\*
           $(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
  • Se si seleziona riga di comando nell'elenco Tipo, è necessario eseguire binskim.exe:
    • Assicurarsi che i primi argomenti da binskim.exe siano il verbo analizzare seguito da una o più specifiche di percorso. Ogni percorso può essere un percorso completo o un percorso relativo alla directory di origine.
    • Più percorsi di destinazione devono essere separati da uno spazio.
    • È possibile omettere l'opzione /o o /output. Il valore di output viene aggiunto o sostituito.
    • Le configurazioni della riga di comando standard sono illustrate di seguito.
           analyze $(Build.StagingDirectory)\* --recurse --verbose
           analyze *.dll *.exe --recurse --verbose

Nota

L'asterisco finale \* è importante se si specificano directory per il target.

Per altre informazioni sugli argomenti della riga di comando BinSkim, sulle regole in base all'ID o sui codici di uscita, vedere la guida utente BinSkim.

Per informazioni sulla configurazione YAML per questa attività, vedere le opzioni YAML BinSkim

Attività di Scanner delle Credenziali

I dettagli della configurazione delle attività sono visualizzati nello screenshot e nell'elenco seguenti.

Configurazione dell'attività di compilazione dello scanner di credenziali

Le opzioni disponibili includono:

  • Nome Visualizzato: Nome dell'attività di Azure DevOps. Il valore predefinito è Run Credential Scanner
  • versione principale dello strumento: i valori disponibili includono CredScan V2, CredScan V1. È consigliabile che i clienti usino la versione CredScan V2.
  • Formato di output: i valori disponibili includono TSV, CSV, SARIFe PREfast.
  • Versione dello strumento: è consigliabile selezionare la versione più recente .
  • Scan Folder: la cartella del repository da analizzare.
  • Tipo di file di ricerca: Le opzioni per individuare il file di ricerca utilizzato per la scansione.
  • Eliminazioni file: un file JSON può eliminare i problemi nel log di output. Per altre informazioni sugli scenari di eliminazione, vedere la sezione domande frequenti di questo articolo.
  • output dettagliato: autoesplicativo.
  • Batch Size: numero di thread simultanei usati per eseguire lo scanner di credenziali. Il valore predefinito è 20. I valori possibili sono compresi tra 1 e 2.147.483.647.
  • timeout di corrispondenza: tempo massimo in secondi da dedicare al tentativo di corrispondenza di ricerca prima di interrompere la verifica.
  • Dimensione del buffer di lettura per l'analisi del file: La dimensione in byte del buffer utilizzato durante la lettura del contenuto. Il valore predefinito è 524.288.
  • Numero massimo di byte di lettura del file: Il numero massimo di byte da leggere da un file durante l'analisi del contenuto. Il valore predefinito è 104.857.600.
  • Opzioni di controllo>Esegui questa attività: specifica quando verrà eseguita l'attività. Selezionare Condizioni personalizzate per specificare condizioni più complesse.
  • Versione: versione dell'attività di compilazione in Azure DevOps. Questa opzione non viene usata di frequente.

Per informazioni sulla configurazione YAML per questa attività, vedere le opzioni YAML dello scanner di credenziali

Attività degli Analizzatori Roslyn

Nota

Prima di poter eseguire l'attività di Roslyn Analyzers, la build deve soddisfare queste condizioni:

  • La definizione di compilazione include l'attività di compilazione predefinita di MSBuild o VSBuild per compilare codice C# o Visual Basic. L'attività analizzatori si basa sull'input e sull'output dell'attività predefinita per eseguire la compilazione MSBuild con gli analizzatori Roslyn abilitati.
  • L'agente di compilazione che esegue questa attività di build ha installato Visual Studio 2017 versione 15.5 o successiva, così da utilizzare la versione del compilatore 2.6 o successiva.

I dettagli della configurazione delle attività sono visualizzati nell'elenco seguente e nella nota.

Le opzioni disponibili includono:

  • Set di regole: i valori sono SDL Obbligatorio, SDL Consigliatooppure il proprio set di regole personalizzato.
  • Analyzers Version: è consigliabile selezionare Ultimo.
  • File di soppressioni avvisi del compilatore: un file di testo con un elenco di ID avvisi soppressi.
  • Opzioni di controllo>Esegui questa attività: specifica quando verrà eseguita l'attività. Scegliere Condizioni personalizzate per specificare condizioni più complesse.

Nota

  • Gli analizzatori Roslyn sono integrati con il compilatore e possono essere eseguiti solo come parte della compilazione csc.exe. Di conseguenza, questa attività richiede che il comando del compilatore eseguito in precedenza nella compilazione venga riprodotto o eseguito di nuovo. Questa riproduzione o esecuzione viene eseguita interrogando Azure DevOps (in precedenza Visual Studio Team Services) per i log delle attività di compilazione di MSBuild.

    Non esiste un altro modo per consentire all'attività di ottenere in modo affidabile la riga di comando di compilazione MSBuild dalla definizione di compilazione. È stata presa in considerazione l'aggiunta di una casella di testo a mano libera per consentire agli utenti di immettere le righe di comando. Tuttavia, sarebbe difficile mantenere queste righe di comando up-to-date e sincronizzate con la build principale.

    Le compilazioni personalizzate richiedono la riproduzione dell'intero set di comandi, non solo dei comandi del compilatore. In questi casi, l'abilitazione di Roslyn Analyzers non è semplice o affidabile.

  • Gli analizzatori Roslyn sono integrati con il compilatore. Per essere richiamati, gli analizzatori Roslyn richiedono la compilazione.

    Questa nuova attività di build consiste nella ricompilazione di progetti C# già compilati. La nuova attività utilizza solo i compiti di compilazione MSBuild e VSBuild nella stessa compilazione o definizione di compilazione della attività originale. Tuttavia, in questo caso la nuova attività li usa con gli analizzatori Roslyn abilitati.

    Se la nuova attività viene eseguita nello stesso agente dell'attività originale, l'output della nuova attività sovrascrive l'output dell'attività originale nella cartella s origini. Anche se l'output di compilazione è lo stesso, è consigliabile eseguire MSBuild, copiare l'output nella directory di staging degli artefatti e quindi eseguire Roslyn Analyzers.

Per risorse aggiuntive sull'attività degli Analizzatori Roslyn, esaminare gli analizzatori ebasati su Roslyn.

È possibile trovare il pacchetto analizzatore installato e usato da questa attività di compilazione nella pagina NuGet Microsoft.CodeAnalysis.FxCopAnalyzers.

Per informazioni sulla configurazione YAML per questa attività, consulta le nostre opzioni YAML Roslyn Analyzers.

Attività TSLint

Per altre informazioni su TSLint, puoi visitare il repository GitHub di TSLint.

Nota

Come si può notare, il repository GitHub TSLint home page indica che TSLint sarà deprecato a un certo tempo nel 2019. Microsoft sta esaminando ESLint come attività alternativa.

Per informazioni sulla configurazione YAML per questa attività, vedere le opzioni YAML TSLint

Attività di pubblicazione dei log di analisi della sicurezza

I dettagli della configurazione delle attività sono visualizzati nello screenshot e nell'elenco seguenti.

Configurazione del task di compilazione Pubblicazione dei log di analisi della sicurezza

  • Nome dell'artefatto: una qualsiasi stringa identificativa.
  • tipo di artefatto: a seconda della selezione, è possibile pubblicare i log nel server Azure DevOps o in un file condiviso accessibile all'agente di compilazione.
  • Strumenti: è possibile scegliere di mantenere i log per strumenti specifici oppure selezionare Tutti gli strumenti per mantenere tutti i log.

Per informazioni sulla configurazione YAML per questa attività, consultare le opzioni YAML per la pubblicazione dei log di sicurezza

Attività Report di sicurezza

I dettagli della configurazione del report di sicurezza sono visualizzati nello screenshot e nell'elenco seguenti.

Configurazione dell'attività di compilazione report di sicurezza

  • Report: selezionare uno dei formati Console pipeline, file TSV, e file HTML. Viene creato un file di report per ogni formato selezionato.
  • Strumenti: selezionare gli strumenti nella definizione di compilazione per cui si vuole un riepilogo dei problemi rilevati. Per ogni strumento selezionato, potrebbe essere disponibile un'opzione per selezionare se vengono visualizzati solo gli errori o visualizzare sia gli errori che gli avvisi nel report di riepilogo.
  • Opzioni avanzate: se non sono presenti log per uno degli strumenti selezionati, è possibile scegliere di registrare un avviso o un errore. Se si registra un errore, l'attività non riesce.
  • Cartella log di base: è possibile personalizzare la cartella dei log di base in cui sono disponibili i log. Questa opzione, tuttavia, in genere non viene usata.

Per informazioni sulla configurazione YAML per questa attività, vedere le opzioni YAML del report di sicurezza

Attività post-analisi

I dettagli della configurazione delle attività sono visualizzati nello screenshot e nell'elenco seguenti.

Configurazione del compito di costruzione post-analisi

  • Strumenti: selezionare gli strumenti nella definizione di compilazione per cui si vuole inserire in modo condizionale un'interruzione di compilazione. Per ciascuno strumento selezionato, potrebbe essere disponibile un'opzione per scegliere se interrompere solo in caso di errori o sia in caso di errori che di avvisi.
  • Report: facoltativamente è possibile scrivere i risultati che causano l'interruzione di compilazione. I risultati vengono scritti nella finestra della console di Azure DevOps e nel file di log.
  • Opzioni avanzate: se non sono presenti log per uno degli strumenti selezionati, è possibile scegliere di registrare un avviso o un errore. Se si registra un errore, l'attività non riesce.

Per informazioni sulla configurazione YAML per questa attività, consultare le opzioni YAML post-analisi

Passaggi successivi

Per informazioni sulla configurazione basata su YAML, vedere la guida alla configurazione di YAML .

Per altre domande sull'estensione Security Code Analysis e sugli strumenti offerti, vedere pagina domande frequenti.