Назад | Перейти на главную страницу

Безопасное хранение учетных данных для веб-приложения

Мы запускаем веб-приложение на Python с использованием wsgi с apache2 и должны пройти тест на проникновение. Тестировщики будут изучать возможность нанесения ущерба, если злоумышленники получат доступ к оболочке как пользователь apache.

В настоящее время вероятность повреждения огромна, поскольку у нас есть учетные данные для базы данных, службы s3 и т. Д., Все они хранятся в текстовом файле, доступном для чтения пользователем apache. Кажется, это совет по умолчанию при настройке таких приложений, но есть ли более безопасный способ сделать это?

Я думал об использовании apache (как root) для передачи переменных среды с помощью setenv в приложение wsgi, но действительно ли это более безопасно? Есть какие-нибудь советы по этому поводу?

Спасибо!

Сделайте пользователя apache пользователем без оболочки:

Пример:

chsh -s /sbin/nologin apache

mod_wsgi имеет возможность работать от имени другого пользователя, поэтому реализуйте его и соответствующим образом настройте разрешения файловой системы.

Если apache запускается от имени root, заставьте его также сбросить привилегии и запустить под еще одной учетной записью без доступа к файлам wsgi.

Интересно, нужно ли вам оценивать ущерб, нанесенный mod_wsgi использовать шелушение :)

Изменить: остерегайтесь, chshпользователь apache для nologin воля не предотвратить доступ к оболочке, если процесс Apache будет поражен эксплойтом. Я бы посмотрел в selinux если это серьезная проблема.