Skip to content

Latest commit

 

History

History

03_cicd

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Домашнее задание к занятию «1.3. Системы контроля версий и CI/CD»

В качестве результата отправьте ответы на вопросы в личном кабинете студента на сайте netology.ru.

Предисловие

Данные ДЗ будут представлять собой лабораторные работы, в рамках которых вы по инструкциям выполните определённые шаги.

Задание truffleHog

Есть замечательный инструмент, который называется truffleHog. Он умеет искать по всей истории вашего проекта «секреты». Конечно же, если ваш проект использует git.

В этой лабораторной работе мы попробуем его в использовании на более-менее реалистичном примере, чтобы вы увидели, что не всё так гладко и достаточно часто бывает много ложных срабатываний, которые приходится «разгребать». Если вы просто отдадите «простыню» логов разработчикам, чтобы они сами разбирались — ничего хорошего из этого не выйдет.

Порядок выполнения

Для truffleHog нужен Python, устанавливается он с помощью Pip — системы управления пакетами для Python.

Вы можете проделать всё с помощью VM, но мы предлагаем рассмотреть возможность использования Docker Container' в качестве «одноразовой машины».

Итак, начнём:

1. Поскольку нам нужен Python, да ещё и с установленным менеджером пакетов Pip, то логично найти уже настроенный образ Python.

2. На момент написания этого ДЗ (2021 г.) в Docker Hub есть три ключевых группы образов: windowsservercore (нам не подходит), buster (на базе Debian Buster) и alpine (на базе Alpine). Мы будем использовать buster, поскольку он содержит уже привычный вам менеджер apt и всё остальное.

3. docker run -it -p 8080:8080 python:buster /bin/bash. Скоро узнаем зачем нам открывать порт.

4. После того как вы попали в терминал контейнера, необходимо установить truffleHog: pip install truffleHog. При этом обратите внимание на регистр.

5. Далее всё достаточно просто: указываем инструменту ссылку или путь к репозиторию. В нашем случае мы воспользуемся специально подготовленным: https://github.com/netology-code/ib-secrets.

Переходим по ссылке и кликаем на кнопке Code:

Важно: убедитесь, что вы выбрали именно HTTPS и скопировали ссылку.

6. Используйте следующую команду для запуска сканирования:

trufflehog https://github.com/netology-code/ib-secrets.git | tee -a log.txt

Обратите внимание на регистр. Да, это не опечатка, теперь hog написано маленькими буквами.

Вы увидите примерно следующий вывод:

Зелёным будет подсвечена метаинформация, а оранжевым — обнаруженный участок кода. В данном случае это ложные срабатывания, поскольку это явно не секреты, а checksum зависимостей нашего проекта.

Повторно запустить лог для просмотра вы можете с помощью команды cat log.txt | more (выход по клавише q).

7. Конечно, вы можете поставить с помощью apt или apt updateкакой-нибудь текстовый редактор и проанализировать log.txt. Но давайте посмотрим, как забрать файл из контейнера.

В Python есть встроенный модуль HTTP-сервера, который запускает HTTP-сервер в текущем рабочем каталоге: python -m http.server 8080:

P. S. В качестве дополнения поищите, как можно обойтись без Python с помощью nc.

Результаты выполнения

Отправьте в личном кабинете студента найденные вами секреты с описанием того, чтобы это могло быть по вашему мнению.

Дополнительно

Можете дополнительно ознакомиться со сравнением коммерческого сервиса GitGuardian c truffleHog.

Задание BFG Repo-Cleaner

Для удаления «чувствительных данных» существуют специальные инструменты. Самые простые:

  1. BFG Repo-Cleaner.
  2. Встроенная в git команда filter-branch.

Порядок выполнения

Разработчики уверяют, что вычистили все найденные вами в предыдущем задании секреты из истории с помощью BFG Repo-Cleaner. Убедитесь, так ли это.

Для этого используйте следующий репозиторий: https://github.com/netology-code/ib-secrets-fixed.git.

Результаты выполнения

Отправьте в личном кабинете студента общее заключение в свободной форме о выполнении разработчиками задачи по вычистке репозитория.