Мы запускаем веб-приложение на 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
если это серьезная проблема.