Пришлите ответы на вопросы в личном кабинете на сайте 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/ (документация).
В тестовом виде запустили свой GitLab по адресу. Открыта регистрация. Нужен апрув от администратора - niyazkashapovexpertib в discord. Остальные шаги те же что и ниже. Так же нужен свой раннер и настроить свой проект под свои нужды.
1. Перейдите по ссылке на глобальный гитлаб или ссылке на локальный гитлаб и зарегистрируйте новую учётную запись.
Для регистрации вам будет доступно 2 варианта.
Вариант 1. Если у вас есть аккаунт GitHub или Google.
Выберите один из вариантов: GitHub или Google.
Если вы выбрали GitHub, подтвердите свой выбор и нажмите кнопку Authorize gitlabhq
:
Если вы выбрали Google, в окне кликните на свой аккаунт для подтверждения:
Вариант 2. Если у вас нет аккаунта GitHub или Google, зарегистрируйте свой аккаунт на email.
В окне укажите действующую почту:
Установите значения, как на скриншоте, и нажмите кнопку Continue
(в полях укажите любую страну и любой номер телефона):
2. Проверьте свой email
, указанный при регистрации, и подтвердите регистрацию.
3. Заполните данные для продолжения.
4. Введите название для группы проектов.
5. Дождитесь перехода на главную страницу.
6. Нажмите на кнопку Create new project
для создания нового проекта.
7. Выберите Import project
для импорта готового проекта.
8. Нажмите на кнопку Repository By URL
и заполните поле Git repository URL
ссылкой: https://github.com/netology-code/ib-devsecops-app.git
9. Оставьте остальные поля заполненными по умолчанию и нажмите Create project
.
10. Настройте локальные раннеры
После регистрации, для работы с пайплайнами безопасности, необходимо поставить локальные раннеры на свой компьютер Раннер нужен для сборки и проведения проверок безопасности. Откройте настройки проекта, а именно настройки 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. 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
.
Не удаляйте свою учётную запись после завершения работы. Она вам понадобится на следующей лекции.