Открытый код, закрытые секреты: Растущая проблема утечек конфиденциальных данных в разработке ПО

Открытый код, закрытые секреты: Растущая проблема утечек конфиденциальных данных в разработке ПО

Почему специалисты пренебрегают основами безопасности и почему ситуация не меняется с годами?

image

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

Проблема возникает из-за незрелых практик кодирования, когда разработчики встраивают ключи шифрования, токены безопасности, пароли и другие учётные данные непосредственно в исходный код, чтобы упростить разработку и облегчить программам доступ к базам данных или облачным сервисам. Тем не менее, такой подход делает программные продукты уязвимыми для внешних атак.

Так, ещё в далёком 2013 году одним из независимых исследователей безопасности было обнаружено , что обычный поиск в Интернете выявляет десятки учётных записей с открытыми учётными данные. Один из таких уязвимых аккаунтов давал привилегированный доступ к репозиториям Chromium.org, где хранится исходный код одноимённого открытого браузера.

А в 2015 году компания Uber на собственном горьком опыте убедилась , насколько разрушительной может быть эта практика. Один или несколько разработчиков сервиса Ride в то время внедрили в исходный код проекта уникальный ключ безопасности, а затем без задней мысли опубликовали этот код на общедоступной странице GitHub. Когда хакеры обнаружили, что в коде содержится ключ, они скопировали его и использовали для доступа к внутренней базе данных Uber. Злоумышленникам тогда удалось похитить множество конфиденциальной информации, принадлежащей 50 тысячам водителей Uber.

На этой неделе исследователи из компании GitGuardian сообщили о нахождении почти 4000 уникальных секретов в 450 тысячах проектах, отправленных в PyPI, официальный репозиторий кода для языка программирования Python. В их числе были ключи к API Azure Active Directory, учётные данные GitHub OAuth, ключи Dropbox, учётные данные SSH и многие другие. Отмечается, что количество таких утечек лишь растёт с течением времени.

Исследование показывает, что утечки происходят в различных типах файлов, включая основные «.py»-файлы, файлы README и тестовые папки. Специалисты GitGuardian протестировали утечки и обнаружили, что 768 из них остаются активными, что дополнительно увеличивает риски.

Для безопасного доступа к базам данных и облачным ресурсам теперь существуют различные механизмы, такие как файлы «.env», хранимые в частных средах, вне открытых репозиториев кода, а также инструменты, такие как AWS Secrets Manager, Google Cloud’s Secret Manager или Azure Key Vault. Разработчики также могут использовать разнообразные сканеры для проверки кода на случайно включенные учётные данные перед его публикацией.

Исследование GitGuardian ограничивается PyPI, одним из многих открытых репозиториев, но нет оснований полагать, что проблема не распространена и в других репозиториях.

Ученые доказали: чтение нашего канала продлевает жизнь!

Ладно, не доказали. Но мы работаем над этим

Поучаствуйте в эксперименте — подпишитесь