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 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à Anti-Malware Scanner

Nota

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

Le firme, anche se non possono essere aggiornate in questi agenti, devono sempre essere state create da meno di tre ore.

I dettagli della configurazione dell'attività vengono visualizzati nello screenshot e nel testo seguenti.

Configurazione dell'attività di compilazione anti-malware scanner

Nella casella di riepilogo Tipo dello screenshot è selezionata Basic . Selezionare Personalizzato 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 ha esito negativo nell'agente di compilazione, il codice di errore HRESULT potrebbe derivare da Windows Update.

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

Per informazioni sulla configurazione YAML per questa attività, controllare le opzioni YAML anti-malware

Attività BinSkim

Nota

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

  • La compilazione produce elementi binari dal codice gestito.
  • Si dispone di artefatti binari che si desidera analizzare con BinSkim.

I dettagli della configurazione delle attività vengono 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 nuovamente al codice sorgente.
  • Per evitare ricerche e creare una riga di comando personalizzata:
    • Nell'elenco Tipo selezionare Basic.
    • Nell'elenco Funzioni selezionare Analizza.
  • In Destinazione immettere uno o più identificatori per un file, una directory o un modello di filtro. Questi identificatori vengono risolti 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 l'analisi del verbo seguita da una o più specifiche del percorso. Ogni percorso può essere un percorso completo o un percorso relativo alla directory di origine.
    • È necessario separare più percorsi di destinazione in base a uno spazio.
    • È possibile omettere l'opzione /o/output . Il valore di output viene aggiunto per l'utente o sostituito.
    • Le configurazioni della riga di comando standard vengono visualizzate come indicato di seguito.
           analyze $(Build.StagingDirectory)\* --recurse --verbose
           analyze *.dll *.exe --recurse --verbose

Nota

L'elemento finale \* è importante se si specificano directory per la destinazione.

Per altre informazioni sugli argomenti della riga di comando BinSkim, le regole per ID o i codici di uscita, vedere la Guida dell'utente binSkim.

Per informazioni sulla configurazione YAML per questa attività, controllare le opzioni BINSkim YAML

Attività Scanner credenziali

I dettagli della configurazione delle attività vengono 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à 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, SARIF e PREfast.
  • Versione dello strumento: è consigliabile selezionare Più recente.
  • Cartella di analisi: cartella del repository da analizzare.
  • Tipo di file cercatori: le opzioni per individuare il file di ricerca usato per l'analisi.
  • Elimina 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: spiegazione automatica.
  • Dimensioni batch: numero di thread simultanei usati per eseguire Credential Scanner. Il valore predefinito è 20. I valori possibili vanno da 1 a 2.147.483.647.
  • Timeout corrispondenza: quantità di tempo in secondi per dedicare un tentativo di corrispondenza del cercatore prima di abbandonare il controllo.
  • Dimensioni del buffer di lettura analisi file: dimensioni in byte del buffer usato durante la lettura del contenuto. Il valore predefinito è 524.288.
  • Numero massimo di byte di lettura analisi file: numero massimo di byte da leggere da un file durante l'analisi del contenuto. Il valore predefinito è 104.857.600.
  • Opzioni> di controllo Eseguire questa attività: specifica quando verrà eseguita l'attività. Selezionare Condizioni personalizzate per specificare condizioni più complesse.
  • Versione: versione dell'attività di compilazione all'interno di Azure DevOps. Questa opzione non viene usata di frequente.

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

Attività di Roslyn Analyzers

Nota

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

  • La definizione di compilazione include l'attività di compilazione MSBuild o VSBuild predefinita per compilare codice C# o Visual Basic. L'attività analizzatori si basa sull'input e sull'output dell'attività predefinita per eseguire la compilazione DI MSBuild con analizzatori Roslyn abilitati.
  • L'agente di compilazione che esegue questa attività di compilazione include Visual Studio 2017 versione 15.5 o successiva installata, in modo che usi il compilatore versione 2.6 o successiva.

I dettagli della configurazione dell'attività vengono visualizzati nell'elenco seguente e nota.

Le opzioni disponibili includono:

  • Set di regole: i valori sono SDL Required, SDL Recommended o il proprio set di regole personalizzato.
  • Versione analizzatori: è consigliabile selezionare Più recente.
  • Avvisi del compilatore Elimina file: file di testo con un elenco di ID avvisi eliminati.
  • Opzioni> di controllo Eseguire 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 eseguendo query su Azure DevOps (in precedenza Visual Studio Team Services) per i log attività di compilazione di MSBuild.

    Non esiste alcun altro modo per l'attività di ottenere in modo affidabile la riga di comando di compilazione MSBuild dalla definizione di compilazione. È stata considerata l'aggiunta di una casella di testo freeform per consentire agli utenti di immettere le righe di comando. Tuttavia, sarebbe difficile mantenere aggiornate le righe di comando e in sincronizzazione con la compilazione principale.

    Le compilazioni personalizzate richiedono la ripetizione 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 richiamato, Roslyn Analyzers richiede la compilazione.

    Questa nuova attività di compilazione viene implementata ricompilazione dei progetti C# già compilati. La nuova attività usa solo le attività di compilazione MSBuild e VSBuild nella stessa definizione di compilazione o compilazione dell'attività originale. Tuttavia, in questo caso la nuova attività li usa con Roslyn Analyzers abilitato.

    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 origini dell'attività . Anche se l'output della compilazione è lo stesso, è consigliabile eseguire MSBuild, copiare l'output nella directory di gestione temporanea degli artefatti e quindi eseguire Roslyn Analyzers.

Per altre risorse per l'attività Roslyn Analyzers, esaminare gli analizzatori basati 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à, controllare le opzioni YAML di Roslyn Analyzers

Attività TSLint

Per altre informazioni su TSLint, passare al repository GitHub TSLint.

Nota

Come si potrebbe notare, il repository GitHub TSLint dice che TSLint sarà deprecato nel 2019. Microsoft sta esaminando ESLint come attività alternativa.

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

Pubblicare l'attività Log di analisi della sicurezza

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

Configurazione dell'attività di compilazione Pubblica log di analisi della sicurezza

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

Per informazioni sulla configurazione YAML per questa attività, vedere le opzioni Pubblica log di sicurezza YAML

Attività Report di sicurezza

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

Configurazione dell'attività di compilazione report di sicurezza

  • Report: selezionare uno dei formati della console della 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 esserci un'opzione per selezionare se vengono visualizzati solo errori o visualizzati sia errori che 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à ha esito negativo.
  • Cartella log di base: è possibile personalizzare la cartella dei log di base in cui sono disponibili i log. Questa opzione in genere non viene usata.

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

Attività post-analisi

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

Configurazione dell'attività di compilazione post-analisi

  • Strumenti: selezionare gli strumenti nella definizione di compilazione per cui si vuole inserire in modo condizionale un'interruzione di compilazione. Per ogni strumento selezionato, potrebbe esserci un'opzione per selezionare se si desidera interrompere solo gli errori o gli avvisi.
  • Report: è possibile scrivere facoltativamente 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à ha esito negativo.

Per informazioni sulla configurazione YAML per questa attività, controllare le opzioni POST Analysis YAML

Passaggi successivi

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

Per ulteriori domande sull'estensione Analisi codice di sicurezza e sugli strumenti offerti, vedere la pagina delle domande frequenti.