Борьба с утечками приватной информации в публичные репозитории

185 views
Skip to first unread message

Anton Koldaev

unread,
Jul 31, 2014, 10:47:17 AM7/31/14
to devo...@googlegroups.com
Привет,

Какие методы борьбы с появлением приватных данных в опубликованных коллегами репозиториях вы знаете?

Я начну с простых правил:
  • никаких приватных данных в открытом виде в любых репозиториях;
  • периодическое обновление ключей и паролей;
  • внимательная проверка приватного репозитория, включая всю историю изменений на наличие актуальных приватных данных перед конвертацией его в публичный;
  • мониторинг своих репозиториев на присутствие приватных данных (есть готовые решения?)
  • еще?

--
Best regards,
Koldaev Anton

Кирилл Ширинкин

unread,
Aug 1, 2014, 5:01:44 AM8/1/14
to devo...@googlegroups.com
В контексте chef - храню всё в encrypted data bag, в репозитории ничего таким образом не появляется впринципе

четверг, 31 июля 2014 г., 16:47:17 UTC+2 пользователь iRoller написал:

Timur Batyrshin

unread,
Aug 2, 2014, 4:29:23 PM8/2/14
to devo...@googlegroups.com
Помимо всего прочего, есть такой вариант:
Код пишет один человек или группа (в т.ч. и рецепты, например), а пользуется ей другая.
Но это, наверное, внутри одной организации не очень хорошо работать будет, нужно какое-то логическое разделение.

четверг, 31 июля 2014 г., 18:47:17 UTC+4 пользователь iRoller написал:

Дмитрий Цап

unread,
Aug 13, 2014, 3:43:18 AM8/13/14
to devo...@googlegroups.com
В качестве альтернативы и для удобства шифрования, также используем git-crypt

Ilya Zharskiy

unread,
Aug 19, 2014, 2:37:44 PM8/19/14
to devo...@googlegroups.com


четверг, 31 июля 2014 г., 18:47:17 UTC+4 пользователь iRoller написал:
Привет,

Это похоже на лечение симптомов, вместо профилактики болезни.

Самое простое и изящное решение - не хранить в репе с сырцами никакую auth-информацию.
Дисциплинировать разработчиков помогает использование фреймворков - там все конфиг-файлы жёстко регламентированы.
.gitignore и хуки - в качестве страховки.

Конфигами должны управлять другие инструменты - Config Management, которые в идеале отделены от Source Code Management.

Софт ставится через пакетный менеджер, пакет собирается с неизменным (gitignore) skeleton-конфигом.
Конфиги test/dev/production серверов никуда не уходят с серверов, т.к. лежат в другой папке файловой системы (/etc)
и версионируются в другую репу (в простейшем случае - etckeeper).

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

Это прямо во второй главе Continuous Delivery (за авторством Jez Humble и David Farley) написано:

___________________________________________________
Chapter 2 Configuration Management
Don’t Check Passwords into Source Control or Hard-Code Them
in Your Application
Operations staff will remove your eyes with a spoon if they catch you doing this.
Don’t give them the pleasure. If you must store your password somewhere other than the inside of your head, you could try putting them in your home directory in an encrypted form.
One egregious variation of this technique is to have the password for one layer of your application stored somewhere in the code or filesystem in the layer that accesses it. Passwords should always be entered by the user performing the deployment. There are several acceptable ways to handle authentication for a multilayer system. You could use certificates, a directory service, or a single sign-on system.
___________________________________________________

упомянуто вот это: https://github.com/rtyley/bfg-repo-cleaner

Сергей Пермяков

unread,
Jun 10, 2015, 12:51:51 PM6/10/15
to devo...@googlegroups.com
Используем сhef-vault для хренения секретов.

четверг, 31 июля 2014 г., 17:47:17 UTC+3 пользователь iRoller написал:

Max Voloshin

unread,
Jun 11, 2015, 4:16:14 AM6/11/15
to devo...@googlegroups.com
+ есть новый проект от HashiCorp: https://vaultproject.io/
Reply all
Reply to author
Forward
0 new messages