Это сообщение в блоге было опубликовано на сайте PurpleBox 25 апреля, 2022 г.

GitHub является крупнейшим хостом исходного кода в мире и используется более чем 73 миллионами разработчиков и 4 миллионами организаций и содержит более 200 миллионов репозиториев.

В то время как команды организаций растут, безопасность GitHub может быть более сложной и трудной для отслеживания. Кроме того, неправильные настройки безопасности GitHub, общедоступные репозитории и жестко заданные учетные данные могут привлечь злоумышленников. Сегодня мы поговорим о 10 лучших практиках безопасности GitHub и о том, почему мы должны их настраивать. Начнем вместе!

1. Никогда не храните учетные данные в GitHub

Многие разработчики склонны хранить секреты, такие как ключи API, имя пользователя/пароль базы данных и закрытые ключи, в своих репозиториях GitHub. Это самый простой способ решить проблему функционального кодирования, но худшая идея с точки зрения безопасности. Согласно недавнему исследованию, в среднем три из 1000 коммитов на GitHub раскрывали секрет.

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

Кроме того, существует риск утечки исходного кода. Иногда общедоступные репозитории создаются случайно, и злоумышленники любят общедоступные репозитории, чтобы получить секреты. Кроме того, разработчики работают в локальной копии репозитория, и это может привести к утечке из-за вредоносного ПО, взлома или случайного раскрытия. Злоумышленники получают все секреты из локальных копий, это тоже беда.

Чтобы предотвратить случайное добавление секретов в репозиторий GitHub, вы можете использовать некоторые инструменты с открытым исходным кодом, такие как git-secrets. Вам нужен аудит ваших репозиториев с помощью некоторых инструментов, таких как truffleHog для ваших регулярных проверок.

2. Всегда используйте МФА

Как вы знаете, использование только надежных паролей уже недостаточно безопасно. Злоумышленники разработали множество проверенных методов кражи учетных данных, например, для получения несанкционированного доступа к нашим учетным записям. По этой причине стало очень важно включить MFA в наших учетных записях пользователей GitHub, как и в любой другой учетной записи. Помимо включения MFA, вы должны применять MFA для каждого пользователя GitHub в вашей организации. Для принудительного применения выберите Фото профиляВаши организацииНастройкиБезопасностьБезопасность аутентификации. Все подробности можно посмотреть здесь.

3. Создайте файл SECURITY.md

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

  • Политика раскрытия информации. Вам необходимо определить процедуру для лица, обнаружившего проблемы с безопасностью, и контактного лица для решения этих проблем. Вы можете настроить адрес электронной почты «security@».
  • Политика обновлений безопасности: вам необходимо определить, как вы собираетесь информировать пользователей о новых уязвимостях безопасности по мере их обнаружения.
  • Конфигурация, связанная с безопасностью. Эта часть включает в себя параметры, которые пользователи должны учитывать и которые могут повлиять на состояние безопасности при развертывании этого проекта.
  • Известные пробелы в безопасности и будущие улучшения. Эта часть включает улучшения безопасности, которые вы еще не реализовали.

4. Отключить разветвление

Разветвление означает создание копии репозитория, которым мы управляем. Опция fork очень полезна в таких случаях, потому что мы можем вносить изменения в проект, не затрагивая исходный репозиторий. Однако с точки зрения безопасности GitHub разветвление усложняет отслеживание проблем безопасности. Кроме того, пользователи репозитория могут разветвлять все репозитории кода на свои личные учетные записи. Чтобы отключить/включить опцию разветвления, выберите Фото вашего профиляВаши организацииНастройкиПривилегии участника. В репозитории forking part вы можете увидеть опцию отключения/включения.

5. Проверьте свой сторонний доступ и приложения GitHub.

Приложения GitHub очень полезны для добавления множества функций в наши репозитории, но нам нужно быть осторожными. Перед добавлением приложения GitHub вам необходимо проверить приложения и их надежность. Если у приложений есть какие-либо проблемы с безопасностью, негативные комментарии или неизвестные авторы, вам нужно дважды подумать, прежде чем авторизовать свою организацию GitHub. Кроме того, для каждого приложения вам необходимо проверить разрешения, которые им требуются, и вы должны быть уверены, что у них не больше разрешений, чем им нужно. Вам следует регулярно просматривать как «Доступ третьих лиц», так и «Установленные приложения Github», чтобы убедиться, что несанкционированный доступ не предоставлен.

6. Отключить создание общедоступного репозитория

Если вашей организации не нужны общедоступные репозитории, вам необходимо отключить общий доступ, чтобы предотвратить случайное создание общедоступных репозиториев. Для этого выберите Фотография вашего профиля → Ваши организации→ Настройки→ Права доступа. В части создания репозитория вы можете увидеть настройки.

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

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

8. Настройте белый список IP-адресов

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

Также, когда злоумышленник перехватывает пароль пользователя GitHub различными методами, он может получить полный доступ к репозиториям организации. Чтобы предотвратить такие ситуации, вам необходимо использовать белый список IP-адресов для ваших организаций GitHub в качестве дополнительного метода. Для этого вы можете использовать VPN или офисную сеть CIDR.

Примечание. Вам необходимо использовать GitHub Enterprise для включения в белый список IP-адресов.

9. Регулярно сканируйте свои репозитории

Регулярное сканирование кода позволяет обнаруживать уязвимости и устранять их как можно скорее. Для своих репозиториев GitHub вы можете использовать функцию сканирования кода в GitHub или использовать сторонние источники, такие как SonarQube. Регулярное сканирование репозиториев помогает находить и определять приоритеты исправлений для существующих уязвимостей безопасности. Это также не позволяет разработчикам создавать новые проблемы безопасности. Вы можете сделать это, определив новые рабочие процессы и новые механизмы push/pull. Например, когда в коде обнаруживается новая уязвимость, ваш репозиторий не разрешает фиксацию.

10. Просмотрите журналы аудита

Журнал аудита GitHub позволяет организациям быстро просматривать действия, выполненные членами их организации. Он включает такие сведения, как кто выполнил действие, что это было за действие и когда оно было выполнено. Следует периодически просматривать журнал аудита и следить за отсутствием аномальных или подозрительных действий.

Заключение

GitHub — крупнейшая в мире система управления кодом, но все же уверены ли вы, что ваш код надежно хранится? В этом блоге мы собрали для вас 10 лучших практик безопасности GitHub. Мы также поделимся некоторыми полезными шагами, которые вы можете использовать в этих рекомендациях. Надеемся, вам понравилось! Вы можете начать внедрять их сегодня, чтобы оставаться в безопасности на GitHub!

Воспользуйтесь нашими Услугами Devops, чтобы оставаться в безопасности!

Если вы хотите узнать больше по этой теме, не стесняйтесь заглянуть в Раздел блога PurpleBox.