Поскольку ответственность за безопасность приложений переходит в руки разработчиков, обеспечение безопасности во время работы становится все более важным. Когда безопасность автоматизирована и внедрена на раннем этапе, Вы можете поддерживать быструю разработку и быструю доставку программного обеспечения.
Эти советы помогут повысить безопасность на ранних этапах и на протяжении всей работы, без прерывания рабочего процесса.
Никогда не храните учетные данные в виде кода / конфигурации
Пароли в общедоступном коде могут легко попасть в чужие руки, поэтому лучше вообще не помещать учетные данные в свой репозиторий. Если некоторые все же пробираются, есть множество отличных инструментов, которые отклоняют коммиты, если инструмент соответствует любому из настроенных шаблонов регулярных выражений, указывающих на неправильное хранение конфиденциальной информации, используют аудит и сканирование кодовой базы для поиска конфиденциальной информации, которая могла проникнуть через сопоставление с образцом.
Удалите конфиденциальные данные из файлов и истории
Лучше не помещать конфиденциальные данные в репозиторий, чтобы другие не могли их увидеть. Но если это все же произойдет, нужно будет сделать несколько вещей, чтобы исправить ситуацию. Во-первых, сделайте недействительными токены и пароли, которые были раскрыты. Как только они становятся общедоступными в Интернете, Вы должны предположить, что он находится в руках злоумышленников, и отреагировать соответствующим образом. Затем удалите конфиденциальные данные из репозитория и истории.
Контролируйте доступ
Мы часто сосредотачиваемся на сложных векторах атак, но при защите приложений совершенно не справляемся с некоторыми из простейших. Например, достаточно одного разработчика, чтобы оставить свой пароль на бумажке, который висит на мониторе, чтобы злоумышленник мог получить доступ. Важно обеспечить соблюдение основных настроек и практик. Поручите своим участникам следующие практики:
Требовать двухфакторную аутентификацию для каждой учетной записи.
Никогда не позволяйте пользователям делиться учетными записями / паролями.
Любые ноутбуки / устройства с доступом к исходному коду должны быть должным образом защищены.
Администраторы репозитория должны управлять доступом группы к данным. Предоставляйте участникам доступ только к тем данным, которые им необходимы для работы.
Учетные записи могут быть личными учетными записями и не исчезают естественным образом, когда пользователи уходят из компании. Убедитесь, что Вы старательно отменяете доступ для пользователей, которые больше не работают с Вами.
Позаботьтесь о каждой мелочи в доступах
Политика раскрытия информации: процесс, с помощью которого пользователи могут сообщать о проблемах безопасности, например с кем связаться, где открыть тикет, какую информацию включить в тикет и тому подобное
Политика обновления безопасности: объясните, как будете делиться подробностями о новых уязвимостях. Это важно для тех, кто использует Ваш проект для запуска критически важных приложений.
Конфигурации безопасности: предоставьте пользователям проекта предлагаемые настройки, которые следует использовать с кодом, например https, добавление уровня авторизации, сброс паролей по умолчанию.
Быстро находите уязвимости в рабочем процессе
Проводите сканирование всех открытых запросов на вытягивание, чтобы убедиться, что они не вносят новых уязвимостей с открытым исходным кодом.
При обнаружении новой уязвимости займитесь её устранением, больше интересной ифнормации можно прочитать в блоге.