Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Od 31 grudnia 2022 r. rozszerzenie Microsoft Security Code Analysis (MSCA) zostało wycofane. Narzędzie MSCA jest zastępowane przez rozszerzenie Microsoft Security DevOps dla Azure DevOps. Postępuj zgodnie z instrukcjami w temacie Konfigurowanie , aby zainstalować i skonfigurować rozszerzenie.
W tym artykule opisano szczegółowo opcje konfiguracji dostępne w każdym z zadań kompilacji. Artykuł rozpoczyna się od zadań dotyczących narzędzi do analizy kodu zabezpieczeń. Kończy się on zadaniami przetwarzania końcowego.
Zadanie skanera chroniącego przed złośliwym oprogramowaniem
Uwaga / Notatka
Zadanie kompilacji Skaner ochrony przed złośliwym oprogramowaniem wymaga agenta kompilacji z włączoną usługą Windows Defender. Hostowany program Visual Studio 2017 lub nowszy udostępnia taki agent. Zadanie kompilacji nie zostanie uruchomione na hostowanym agencie programu Visual Studio 2015.
Mimo że sygnatury nie mogą być aktualizowane na tych agentach, sygnatury powinny być zawsze starsze niż trzy godziny.
Szczegóły konfiguracji zadania są wyświetlane na poniższym zrzucie ekranu i tekście.
W polu Typ listy zrzutu ekranu wybrano pozycję Podstawowa . Wybierz Niestandardowy, aby podać argumenty wiersza polecenia dostosowujące skanowanie.
Usługa Windows Defender używa klienta usługi Windows Update do pobierania i instalowania podpisów. Jeśli aktualizacja podpisu zakończy się niepowodzeniem w agencie kompilacji, kod błędu HRESULT prawdopodobnie pochodzi z usługi Windows Update.
Aby uzyskać więcej informacji na temat błędów usługi Windows Update i ich rozwiązywania, zobacz Kody błędów usługi Windows Update według składnika i artykuł Windows Update Agent — kody błędów.
Aby uzyskać informacje o konfiguracji YAML dla tego zadania, zapoznaj się z naszymi opcjami YAML chroniącym przed złośliwym oprogramowaniem
Zadanie BinSkim
Uwaga / Notatka
Przed uruchomieniem zadania BinSkim kompilacja musi spełniać jeden z następujących warunków:
- Kompilacja generuje artefakty binarne z kodu zarządzanego.
- Masz zatwierdzone artefakty binarne, które chcesz przeanalizować za pomocą binSkim.
Szczegóły konfiguracji zadania są wyświetlane na poniższym zrzucie ekranu i liście.
- Ustaw konfigurację kompilacji na Debuguj, aby pliki debugowania .pdb zostały wygenerowane. BinSkim używa tych plików do mapowania problemów w wyjściowych plikach binarnych z powrotem do kodu źródłowego.
- Aby uniknąć przeprowadzania badań i tworzenia własnego wiersza polecenia:
- Na liście Typ wybierz pozycję Podstawowa.
- Na liście Funkcja wybierz pozycję Analizuj.
- W polu Target (Cel) wprowadź co najmniej jeden specyfikator dla pliku, katalogu lub wzorca filtru. Te specyfikatory prowadzą do jednego lub więcej plików binarnych do przeanalizowania.
- Wiele określonych obiektów docelowych musi być rozdzielonych średnikiem (;).
- Specyfikator może być pojedynczym plikiem lub zawierać symbole wieloznaczne.
- Specyfikacje katalogów muszą zawsze kończyć się na \*.
- Przykłady:
*.dll;*.exe
$(BUILD_STAGINGDIRECTORY)\*
$(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
- Jeśli wybierzesz pozycję Wiersz polecenia na liście Typ , musisz uruchomić binskim.exe:
- Upewnij się, że pierwsze argumenty do binskim.exe to czasownik analyze następujący po jednej lub więcej specyfikacjach ścieżki. Każda ścieżka może być pełną ścieżką lub ścieżką względną względem katalogu źródłowego.
- Wiele ścieżek docelowych musi być rozdzielonych spacją.
- Można pominąć /o lub /output opcji. Wartość wynikowa jest dla ciebie dodawana lub zastępowana.
- Standardowe konfiguracje wiersza polecenia są wyświetlane w następujący sposób.
analyze $(Build.StagingDirectory)\* --recurse --verbose
analyze *.dll *.exe --recurse --verbose
Uwaga / Notatka
Końcowy \* jest ważny, jeśli określisz katalogi dla obiektu docelowego.
Aby uzyskać więcej informacji na temat argumentów wiersza polecenia BinSkim, reguł według identyfikatora lub kodów zakończenia, zobacz Podręcznik użytkownika BinSkim.
Aby uzyskać informacje o konfiguracji YAML dla tego zadania, zapoznaj się z naszymi opcjami YAML BinSkim
Zadanie skanera poświadczeń
Szczegóły konfiguracji zadania są wyświetlane na poniższym zrzucie ekranu i liście.
Dostępne opcje obejmują:
- Nazwa wyświetlana: nazwa zadania usługi Azure DevOps. Wartość domyślna to Uruchom skaner poświadczeń
- Wersja główna narzędzia: dostępne wartości to CredScan V2, CredScan V1. Zalecamy klientom korzystanie z wersji CredScan V2 .
- Format danych wyjściowych: dostępne wartości obejmują TSV, CSV, SARIF i PREfast.
- Wersja narzędzia: zalecamy wybranie pozycji Najnowsze.
- Folder skanowania: folder repozytorium do skanowania.
- Typ pliku wyszukiwania: opcje lokalizowania pliku wyszukiwania używanego do skanowania.
- Plik Wykluczeń: plik JSON może tłumić problemy w dzienniku wyjściowym. Aby uzyskać więcej informacji na temat scenariuszy pomijania, zobacz sekcję często zadawanych pytań w tym artykule.
- Szczegółowe dane wyjściowe: samoobjaśniające.
- Rozmiar partii: liczba współbieżnych wątków używanych do uruchamiania skanera poświadczeń. Wartość domyślna to 20. Możliwe wartości wahają się od 1 do 2 147 483 647.
- Limit czasu dopasowania: ilość czasu w sekundach na podjęcie próby dopasowania wyszukiwania przed porzuceniem sprawdzania.
- Rozmiar buforu odczytu skanowania pliku: wielkość buforu w bajtach używanego podczas odczytywania zawartości. Wartość domyślna to 524 288.
- Maksymalna liczba bajtów odczytu skanowania plików: maksymalna liczba bajtów do odczytu z pliku podczas analizy zawartości. Wartość domyślna to 104 857 600.
- Opcje kontrolki>Uruchom to zadanie: określa, kiedy zadanie zostanie uruchomione. Wybierz pozycję Warunki niestandardowe , aby określić bardziej złożone warunki.
- Wersja: wersja zadania kompilacji w usłudze Azure DevOps. Ta opcja nie jest często używana.
Aby uzyskać informacje na temat konfiguracji YAML dla tego zadania, zapoznaj się z naszymi opcjami YAML skanera poświadczeń
zadanie Roslyn Analyzers
Uwaga / Notatka
Przed uruchomieniem zadania Roslyn Analyzers kompilacja musi spełniać następujące warunki:
- Definicja kompilacji obejmuje wbudowane zadanie kompilacji MSBuild lub VSBuild w celu skompilowania kodu C# lub Visual Basic. Zadanie analizatorów opiera się na danych wejściowych i wyjściowych wbudowanego zadania do uruchamiania kompilacji MSBuild z włączonymi analizatorami Roslyn.
- Agent kompilacji, na którym uruchomiono to zadanie kompilacji, ma zainstalowany program Visual Studio 2017 w wersji 15.5 lub nowszej, dzięki czemu używa kompilatora w wersji 2.6 lub nowszej.
Szczegóły konfiguracji zadania są wyświetlane na poniższej liście oraz w notatce.
Dostępne opcje obejmują:
- Zestaw reguł: wartości są wymagane przez protokół SDL, zalecane przez SDL lub własny niestandardowy zestaw reguł.
- Wersja analizatorów: zalecamy wybranie pozycji Najnowsze.
- Plik pomijania ostrzeżeń kompilatora: plik tekstowy z listą identyfikatorów ostrzeżeń, które są pomijane przez kompilator.
- Opcje kontrolki>Uruchom to zadanie: określa, kiedy zadanie zostanie uruchomione. Wybierz pozycję Warunki niestandardowe , aby określić bardziej złożone warunki.
Uwaga / Notatka
Analizatory Roslyn są zintegrowane z kompilatorem i mogą być uruchamiane tylko w ramach kompilacji csc.exe. W związku z tym to zadanie wymaga polecenia kompilatora, które uruchomiono wcześniej w kompilacji, aby było odtwarzane lub uruchamiane ponownie. To odtwarzanie lub uruchamianie odbywa się przez wykonywanie zapytań w Azure DevOps (dawniej Visual Studio Team Services) w celu uzyskania logów zadań kompilacji MSBuild.
Nie ma innego sposobu, aby zadanie mogło niezawodnie pobrać polecenie wiersza dla kompilacji MSBuild z definicji kompilacji. Rozważaliśmy dodanie wolnego pola tekstowego, aby umożliwić użytkownikom wprowadzanie wierszy poleceń. Ale wtedy trudno byłoby zachować te wiersze polecenia up-to-date i zsynchronizować z główną kompilacją.
Kompilacje niestandardowe wymagają ponownego odtworzenia całego zestawu poleceń, a nie tylko poleceń kompilatora. W takich przypadkach włączenie analizatorów Roslyn nie jest proste ani niezawodne.
Analizatory Roslyn są zintegrowane z kompilatorem. Do wywołania analizatory Roslyn wymagają kompilacji.
To nowe zadanie kompilacji jest implementowane przez ponowne kompilowanie projektów języka C#, które zostały już skompilowane. Nowe zadanie używa tylko zadań kompilacji MSBuild i VSBuild w tej samej definicji kompilacji, co zadanie oryginalne. Jednak w tym przypadku nowe zadanie używa ich z włączonymi analizatorami Roslyn.
Jeśli nowe zadanie jest uruchamiane na tym samym agencie co oryginalne zadanie, dane wyjściowe nowego zadania zastępują dane wyjściowe oryginalnego zadania w folderze źródeł. Mimo że dane wyjściowe kompilacji są takie same, zalecamy uruchomienie programu MSBuild, skopiowanie danych wyjściowych do katalogu przejściowego artefaktów, a następnie uruchomienie analizatorów Roslyn.
Aby uzyskać dodatkowe zasoby dla zadania Roslyn Analyzers, zapoznaj się z analizatorami opartymi na platformie Roslyn.
Możesz znaleźć pakiet analizatora zainstalowany i używany przez to zadanie procesu budowania na stronie NuGet Microsoft.CodeAnalysis.FxCopAnalyzers.
Aby uzyskać informacje o konfiguracji YAML dla tego zadania, zapoznaj się z naszymi opcjami YAML analizatorów Roslyn Analyzers
Zadanie TSLint
Aby uzyskać więcej informacji na temat TSLint, przejdź do repozytorium TSLint GitHub.
Uwaga / Notatka
Jak być może wiesz, strona główna repozytorium GitHub TSLint mówi, że TSLint zostanie wycofany w 2019 roku. Firma Microsoft bada ESLint jako alternatywne zadanie.
Aby uzyskać informacje o konfiguracji YAML dla tego zadania, zapoznaj się z naszymi opcjami TSLint YAML
Zadanie Publikowanie dzienników analizy zabezpieczeń
Szczegóły konfiguracji zadania są wyświetlane na poniższym zrzucie ekranu i liście.
- Nazwa artefaktu: dowolny identyfikator ciągu.
- Typ artefaktu: w zależności od wybranego wyboru można publikować dzienniki na serwerze Azure DevOps Server lub w udostępnionym pliku dostępnym dla agenta kompilacji.
- Narzędzia: możesz zachować dzienniki dla określonych narzędzi lub wybrać pozycję Wszystkie narzędzia , aby zachować wszystkie dzienniki.
Aby uzyskać informacje o konfiguracji YAML dla tego zadania, zapoznaj się z naszymi opcjami YAML Publish Security Logs (Publikuj dzienniki zabezpieczeń YAML)
Zadanie Raport zabezpieczeń
Szczegóły konfiguracji raportu zabezpieczeń są wyświetlane na poniższym zrzucie ekranu i na liście.
- Raporty: wybierz dowolny format Konsoli Potoku, Pliku TSV lub Pliku HTML. Jeden plik raportu jest tworzony dla każdego wybranego formatu.
- Narzędzia: wybierz narzędzia w definicji kompilacji, dla których chcesz uzyskać podsumowanie wykrytych problemów. Dla każdego wybranego narzędzia może istnieć opcja wyboru, czy w raporcie podsumowania są widoczne tylko błędy, czy też wyświetlane są błędy i ostrzeżenia.
- Opcje zaawansowane: jeśli nie ma żadnych dzienników dla jednego z wybranych narzędzi, możesz zarejestrować ostrzeżenie lub błąd. W przypadku zarejestrowania błędu zadanie zakończy się niepowodzeniem.
- Folder dzienników podstawowych: możesz dostosować folder dzienników podstawowych, w którym można znaleźć dzienniki. Jednak ta opcja zwykle nie jest używana.
Aby uzyskać informacje o konfiguracji YAML dla tego zadania, zapoznaj się z naszymi opcjami YAML raportu zabezpieczeń
Zadanie po analizie
Szczegóły konfiguracji zadania są wyświetlane na poniższym zrzucie ekranu i liście.
- Narzędzia: Wybierz narzędzia w definicji kompilacji, dla których chcesz warunkowo przerwać kompilację. Dla każdego wybranego narzędzia może istnieć opcja wyboru, czy chcesz przerywać tylko na błędach, czy zarówno na błędach, jak i ostrzeżeniach.
- Raport: opcjonalnie możesz napisać wyniki powodujące przerwanie kompilacji. Wyniki są zapisywane w oknie konsoli usługi Azure DevOps i w pliku dziennika.
- Opcje zaawansowane: jeśli nie ma żadnych dzienników dla jednego z wybranych narzędzi, możesz zarejestrować ostrzeżenie lub błąd. W przypadku zarejestrowania błędu zadanie zakończy się niepowodzeniem.
Aby uzyskać informacje o konfiguracji YAML dla tego zadania, sprawdź nasze opcje YAML po analizie
Dalsze kroki
Aby uzyskać informacje na temat konfiguracji opartej na języku YAML, zapoznaj się z naszym przewodnikiem po konfiguracji YAML.
Jeśli masz dodatkowe pytania dotyczące rozszerzenia Analizy kodu zabezpieczeń i oferowanych narzędzi, zapoznaj się z naszą stroną często zadawanych pytań.