Как запустить сканирование кода безопасности в конвейере GitLab?

Я пытаюсь интегрировать сканирование кода безопасности с Gitlab CI. Я прочитал документацию, но все же не могу понять, как именно нужно писать команды для SCS в yml-файле (исходный файл: предупреждение SCS[идентификатор правила]: [описание предупреждения] [файл_проекта]). Мой Gitlab размещен на машине с Windows 10 без контейнера. Это .NET Framework 4.6.2, и я использую Visual Studio 2019. Я уже получил пакет SCS от NuGet. Кроме того, я читал о Fortify, но столкнулся с той же проблемой.

2 ответа

Решение

Согласно документации GitLab , вы действительно просто добавляете это включение в свой основной .gitlab-ci.yml файл.

      include:
  - template: Security/SAST.gitlab-ci.yml

Шаблон определяет задание, которое использует настраиваемый образ Docker и оболочку Go вокруг пакета сканирования кода безопасности. Фактически он динамически добавляет пакет SCS к обнаруженным проектам, запускает сборку, захватывает и анализирует выходные данные для создания отчета о безопасности.

Это происходит так, потому что проект сканирования кода безопасности запускается как анализатор во время сборки ... это не обычное приложение CLI, хотя в большинстве случаев игнорируются проблемы, требующие этой опции.


Обновление: вы можете просто добавить пакет сканирования кода безопасности в свой проект (ы)

      $ dotnet add package SecurityCodeScan --version 3.5.3

И запустите обычную сборку в своем конвейере GitLab, читая предупреждения, которые создаются в журналах конвейера.

      build:
  stage: build
  image: mcr.microsoft.com/dotnet/core/sdk:3.1
  script:
    - dotnet build

Вы можете включить TreatWarningsAsErrors чтобы сломать и сборку.

      dotnet build /p:TreatWarningsAsErrors=true
      <PropertyGroup>
  <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<PropertyGroup>

Таким образом вы не получите хороший отчет MR, только логи конвейера. В любом случае интерактивный отчет по конвейеру не появится, если у вас нет плана Gold.

С GitLab 13.9 (февраль 2021 г.) это также будет работать для нескольких проектов:

Поддержка нескольких проектов для сканирования .NET SAST

Сканирование безопасности GitLab автоматически определяет язык кода и запускает соответствующие анализаторы.

С монорепозиториями, микросервисами и многопроектными репозиториями в одном репозитории GitLab может существовать более одного проекта. Ранее наш инструмент .NET SAST мог обнаруживать только отдельные проекты в репозиториях.

В этом выпуске наш анализатор .NET SAST теперь может интеллектуально обнаруживать несколько файлов решений (.sln) в проектах .NET и сообщать об уязвимостях в них.
Это упростит и упростит использование нашего SAST-сканирования для пользователей с репозиториями .NET с несколькими проектами.

См. Документацию и проблему .

И это более заметно (все еще с GitLab 13.9, февраль 2021 г.)

Страница настройки безопасности для всех пользователей

С SAST и Secret Detection, доступными для всех клиентов GitLab , мы хотели улучшить опыт разработчиков, включив доступные проверки безопасности. У нас был опыт управляемой настройки для пользователей Ultimate, и теперь упрощенная версия этого интерфейса доступна всем пользователям. Этот новый интерфейс настройки упрощает разработчикам понимание доступных им сканирований безопасности, поиск соответствующей документации и предоставление простых инструментов включения. В этом начальном выпуске мы поддерживаем кнопку для создания запроса на слияние для SAST. В следующем выпуске мы добавим дополнительные кнопки, чтобы легко включить другие типы сканирования.

- Страница конфигурации безопасности для всех пользователей

См. Документацию и Epic .

Другие вопросы по тегам