Последствия для безопасности бэкдора пирамиды /wsgi os.environ?
В моем приложении пирамиды полезно иметь возможность войти в систему как любой пользователь (для тестирования / отладки, а не в производстве). Мой обычный процесс входа в систему - это простая проверка bcrypt на хешированный пароль.
При репликации пользовательских отчетов об ошибках мне показалось полезным просто клонировать базу данных sqlite и запустить простой скрипт, который изменит пароль каждого пользователя на фиксированную строку (только для локального тестирования). Теперь, когда я переключаюсь на postgresql, это менее удобно, и я думаю об установке бэкдора для моей функции входа в систему.
В основном я хочу проверить os.environ (установленный из файла debug.wsgi, который загружается apache через mod_wsgi) для определенной переменной 'debug'. Если он существует, я разрешу вход в систему с использованием любого пароля (для любого пользователя), минуя проверку пароля.
Каковы последствия этого для безопасности? Насколько я понимаю, файл wsgi создается один раз при загрузке apache, поэтому, если файл production.wsgi не устанавливает эту конкретную переменную, какова вероятность того, что злоумышленник (или некомпетентный пользователь) подделает его?
1 ответ
Чтобы создать экземпляр серверного приложения с этой функцией отладки в среде, злоумышленнику потребуется передать ваш веб-сервер, скорее всего, с правами администратора.
Из внешнего процесса злоумышленник не может изменить среду работающего сервера, который загружается в память, по крайней мере без возможности отладки и хорошей полезной нагрузки для перезаписи памяти. Было бы проще просто перезагрузить сервер или попробовать выполнить скрипт на нем.
Я думаю, что вы в безопасности, как вы идете. Если вы параноик, убедитесь, что изолировали (удалили) бэкдор от сборок до производства.