Любой суперпользователь, имеющий доступ к Jenkins, работающему на сервере Linux, может легко отключить аутентификацию безопасности из файла config.xml; затем войти в систему и расшифровать конфиденциальные пароли из консоли.
Как разработчик приложения может защитить Jenkins (или любое другое программное обеспечение) от администраторов сервера, на котором размещено приложение?
Есть ли способ отслеживать изменения в файле, чтобы защититься от суперпользователей?
решение1
Короткий ответ - не можете. У них есть доступ к консоли, физическим дискам и т. д.
Длинный ответ: Вам нужно ограничить доступ администраторов к этим машинам, более детальные политики, аудит. Что это значит? Вы даете root-доступ только администраторам, подписавшим NDA, вы разрешаете некоторым из них только определенные операции на машине через sudo, вы регистрируете весь доступ к удаленной syslog
машине. Вы ограничиваете то, что установлено. Вы можете проводить аудит доступа к файлам с помощью auditd
и auditctl
. На ext4 вы можете сделать файл неизменяемым с помощьюchattr +i <filename>
Другой альтернативой является использование очень простой ОС, в которой есть только приложение и нет доступа по SSH или консоли.