5/5 - (1 голос)

1. Конфиденциальные данные

Никогда не храните учетные данные в виде кода / конфигурации в GitHub.
Некоторые хорошие практики:

  • Блокируйте конфиденциальные данные, передаваемые в GitHub с помощью git-secrets  или им подобных, в качестве git pre-commit hook.
  • Разбейте сборку, используя те же инструменты.
  • Аудит скрытых secret с помощью GitRob или TruffleHog.
  • Используйте переменные ENV для секретов в CI / CD и secret менеджеры, как Vault в продуктиве.

2. Удаление конфиденциальных данных

Если конфиденциальные данные сделаны для репо:

  • Измените токены и пароли.
  • Удалить информацию и очистить историю GitHub (принудительная перезапись истории).
  • Оцените влияние утечки частной информации.

3. Контроль доступа

Неудачи в безопасности часто происходят с людьми, забывающими про безопасность.
Используйте следующие меры:

  • Рекомендовано двухфакторная аутентификация для всех ваших учетных записей GitHub.
  • Никогда не позволяйте пользователям делиться учетными записями / паролями GitHub.
  • Любые ноутбуки / устройства с доступом к вашему исходному коду должны быть должным образом защищены.
  • Не забывайте отозвать доступ у пользователей, которые больше не работают с вами.
  • Управляйте доступом команды. Предоставляйте только необходимый доступ для работы, не более.

4. Добавьте файл SECURITY.md

Вы должны включить файл SECURITY.md, который содержит информацию о безопасности вашего проекта. Он должен содержать:

Политика раскрытия информации.

Определите порядок действий репортера, который обнаружит проблему безопасности, чтобы полностью раскрыть проблему, включая информацию о том, с кем связаться и как. Подумайте об настройке отправки уведомления по электронной почте «security @».

Политика обновления безопасности.

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

Конфигурация, связанная с безопасностью.

Пользователи должны учитывать настройки, которые могут повлиять на состояние безопасности при развертывании этого проекта, такие как HTTPS, авторизация и многие другие.

Известные пробелы в безопасности и будущие улучшения.

Улучшения безопасности, которые вы еще не применили.
Проинформируйте пользователей о том, что эти меры безопасности отсутствуют, и, возможно, предложите внести свой вклад в реализацию!

Примеры файлов SECURITY.md можно найти в Apache Storm и TensorFlow.

5. GitHub Apps

Помните, что эти приложения написаны сторонними разработчиками, а не GitHub. Проверка:

  • Права доступа к приложению.
  • Автор / организация авторитет.
  • Какая безопасность приложения — их нарушение дает злоумышленникам доступ к вашему коду!

6. Добавить тестирование безопасности в PRs

Используйте GitHub hooks, чтобы убедиться, что ваши PR не содержат новых уязвимостей

  • SonarCloud — тестирование качества кода.
  • CodeClimate — автоматизированная проверка кода.
  • Snuk — Зависимость vuln тестирования.

7. Используйте правильное предложение GitHub

Если вы не хотите, чтобы кто-либо имел доступ к вашему коду (даже GitHub),  воспользуйтесь предложением GitHub Enterprise.

8. Изменяйте ключи SSH и токены личного доступа

Доступ к GitHub обычно осуществляется с использованием ключей SSH или личных токенов пользователя (вместо пароля, потому что вы включили 2FA!). Но что произойдет, если эти токены украдены, а вы не знали?

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

9. Создавайте новые проекты думая о безопасности

Создавая любой проект, развивайте его как проект с открытым исходным кодом. Не пускайте безопасность на самотек. Вы можете:

  • Писать более осторожно, когда вы выполняете push code/date, имейте ввиду, что кто-то их увидет
  • Найти его просто, если вы решите открыть исходный код проекта.

10. Импорт проектов

Прежде чем импортировать проект в общедоступное хранилище GitHub, полностью проверьте историю на наличие конфиденциальных данных и удалите ее перед добавлением в GitHub.