Пришлите ответы на вопросы в личном кабинете на сайте netology.ru.
Домашнее задание — лабораторная работа, в которой вы по инструкциям выполните действия.
Это домашнее задание не обязательно для выполнения, так как для него нужна регистрация на стороннем сервисе.
В этом задании применяется сервис GitLab — один из комплексных и самых популярных решений для поддержки DevOps и DevSecOps.
Вы будете использовать пробную версию из облака для упрощения настройки и развёртывания.
Командой GitLab уже подготовлены и настроены инструменты, которые позволяют выполнять действия:
- Анализировать код на уязвимости — SAST, включая зависимости — SCA или Dependency Scanning.
- Анализировать контейнеры на уязвимости — Container Scanning.
- Анализировать используемые в проекте лицензии — License Scanning.
- Проверять секреты — Secret Detection.
Список всех проверок доступен по адресам:
- https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates/Security;
- https://docs.gitlab.com/ee/user/application_security/ (документация).
1. Перейдите по ссылке и зарегистрируйте новую учётную запись. Попросит подтвердить почтовый ящик, поэтому указываем действую почту.
2. Установите значения, как на скриншоте, и нажмите кнопку Continue
. (В полях надо указать любую страну и любой номер телефона.)
3. Заполните данные для продолжения.
4. Введите название для группы проектов.
5. Дождитесь перехода на главную страницу.
6. Проверьте свой email, указанный при регистрации, и подтвердите регистрацию.
7. Нажмите на кнопку Create new project
для создания нового проекта.
8. Выберите Import project
для импорта готового проекта.
9. Нажмите на кнопку Repository By URL
и заполните поле Git repository URL ссылкой https://github.com/netology-code/ib-devsecops-app.git
.
10. Оставьте остальные поля заполненными по умолчанию и нажмите Create project
.
11. Настройте локальные раннеры
После регистрации, для работы с пайплайнами безопасности, необходимо поставить локальные раннеры на свой компьютер
Раннер нужен для сборки и проведения проверок безопасности.
Откройте настройки проекта, а именно настройки CI/CD.
Подсказка: адрес имеет вид https://gitlab.com/<название группы>/<название проекта>/-/settings/ci_cd
Внутри настроек переходим к настройкам Runners
, и нажимем New project Runner
. Следуем инструкции по настройке раннера windows/linux/macos (в зависимости от вашей ОС). Можно использовать docker (на свой страх и риск)
После установки раннера, его надо запустить командой gitlab-runner run
.
Однако, раннер нужно зарегистрировать. Токен будет указан на странице gitlab (надо скопировать и указать в команде):
gitlab-runner register --name my-runner --url "http://gitlab.example.com" --registration-token <тут токен со страницы регистрации/создания раннера>
При успешной настройке, в настройках отобразится локальный раннер.
При этом, необходимо откючить Group runners и Shared runners.
11.1. Docker runner
для использования докера в качестве раннеров, нужно иметь запущенный на компьютере докер, и выполнить неколько простых команд:
docker pull gitlab/gitlab-runner
docker run -d --name gitlab-runner --restart always -v /Users/Shared/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
docker run --rm -it -v /Users/shared/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
При регистрации будут поля для заполнения (в командной строке после запуска последней команды):
GitLab instance URL
- https://gitlab.com
registration token
который отображается на странице регистрации раннера
Enter a name for the runner
- название раннера (любое)
Enter an executor:
- просто указать docker
default Docker image
- указываем стандартный образ python
12. Зайдите в пункт меню Build
— Pipelines
и нажмите на кнопку Run Pipeline
.
13. На странице снова нажмите на кнопку Run Pipeline
.
14. Дождитесь окончания процесса анализа.
Примечание. В списке задач вы увидите упавшую задачу с retire-js
. Это нормально.
15. Перейдите в раздел Security & Compliance
.
16. Изучите внимательно разделы:
- Vulnerability Report (отчёт об уязвимостях).
- Dependency List.
- License Compliance.
Важно: после окончания проверки подождите пару минут и несколько раз обновите страницу через Shift
+ F5
. Иногда не все данные по проверкам подтягиваются сразу. Убедитесь, что уязвимости точно найдены для приложения, зависимостей и контейнера.
Вопросы для домашнего задания.
1. Сколько уязвимостей и какого уровня значимости найдено (Severity)?
2. Сколько из них:
- в самом приложении (SAST);
- в контейнерах (Container Scanning);
- в зависимостях (Dependency Scanning);
- секретов (Secret Detection).
3. Какая уязвимость найдена в самом приложении? 4. Сколько зависимостей в приложении? 5. Сколько различного рода лицензий используется в приложении и его зависимостях?
Пришлите в личном кабинете ответы на вопросы из раздела «Ответьте на следующие вопросы» и скриншот статистики со всеми найденными уязвимостями. Нужны только числа в секциях Critical
, High
, Medium
, Low
.
Не удаляйте свою учётную запись после завершения работы. Она вам понадобится на следующей лекции.