Как запустить сканирование кода безопасности в конвейере 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 .