Безопасен ли мой TOTP-ключ на сервере бесплатного хостинг-провайдера с ограничениями FTP и .htaccess?

Вопрос или проблема

Я хостингую веб-сайт на сервере бесплатного хостинг-провайдера, который использует PHP для аутентификации на основе OTP. Вот как это работает:

  1. Если на сайт заходит незарегистрированный IP-адрес, он показывает сообщение “Неавторизовано”.

  2. Для зарегистрированных IP-сайтов он запрашивает OTP, предоставляя пользователям три попытки ввести его правильно. Результат – либо “УСПЕХ”, либо “НЕУДАЧА” в зависимости от введенных данных.

  3. OTP генерируется каждые 30 секунд с использованием библиотеки PHPGangsta/GoogleAuthenticator (ссылка на GitHub).

  4. Ключ TOTP хранится в зашифрованном файле на сервере, а PHP-файл расшифровывает его для генерации OTP.

  5. PHP-файл также обрабатывает OTP и отправляет соответствующее сообщение на индексную HTML-страницу.

  6. Оба PHP-файла (генерирующий OTP и содержащий зашифрованный ключ) имеют установленные права доступа к файлам 600.

  7. Я также настроил .htaccess для блокировки доступа ко всем IP-адресам, кроме нескольких доверенных.

  8. Мне предоставили учётные данные FTP (имя пользователя и пароль) для доступа к серверу.

Учитывая права доступа к файлам и ограничения .htaccess, безопасен ли мой TOTP-ключ на сервере? Могут ли PHP-файлы все ещё быть доступны из интернета, если мои FTP-учетные данные остаются в безопасности? Какие другие проблемы безопасности следует учитывать в этой настройке?

Безопасен ли мой TOTP-ключ на сервере?

От других пользователей, которые (предположительно) используют HTTPS? Возможно, это в значительной степени зависит от вашего кода и того, можно ли его эксплуатировать.

От администратора бесплатного хостинг-провайдера? Нет.

От злоумышленников, которые могут найти уязвимость в услугах вашего бесплатного хостинг-провайдера (ftp или других)? Нет.

Могут ли PHP-файлы всё ещё быть доступны из интернета, если мои FTP-учетные данные остаются в безопасности?

Да. Поскольку вы не знаете, как настроен сервер или как на нем сконфигурированы услуги… есть ненулевой шанс, что он может быть уязвим для множества атак, которые могут сделать ваши меры безопасности в PHP бесполезными.

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

  • Администратор сервера с доступом root
  • Потенциальные уязвимости в вашем коде
  • Потенциальные уязвимости в самом PHP
  • Потенциальные уязвимости в HTTP(s) сервере, работающем с PHP
  • Потенциальные уязвимости в FTP-сервисе
  • Потенциальные уязвимости в услугах, работающих на сервере, о которых вы не знаете
  • Сторонние сервисы, которые может использовать этот бесплатный хостинг
  • Неправильное утилизация физических дисков серверов

Кратко: Это ужасная идея.

Я был бы очень обеспокоен, если бы ваш механизм аутентификации защищал что-то чувствительное.

Похоже, вы храните секреты на сервере (пароль, используемый для получения ключа шифрования), что является плохой идеей. Секреты обычно следует хранить в каком-то безопасном хранилище.

Тот факт, что это (предположительно) общий сервер, также является проблемой. Уязвимость или неправильная конфигурация где-либо на этом сервере могут привести к тому, что кто-то сможет получить доступ к вашему TOTP-ключу.

Также похоже, что у вас есть один TOTP-ключ? Так что все пользователи используют один и тот же ключ? Это еще один путь к компрометации.

Ответ или решение

Ваш вопрос касается безопасности ключа TOTP на сервере бесплатного хостинг-провайдера с использованием FTP и ограничений .htaccess. Давайте разберем все аспекты, касающиеся вашего решения.

Безопасность ключа TOTP

  1. Доступ извне: Даже если вы настроили ограничения доступа через .htaccess и выставили permissions для файлов на уровне 600, не стоит забывать, что ваш сервер является общим, и у администраторов провайдера хостинга есть полный доступ к серверу. Это означает, что они могут получить доступ к вашему зашифрованному файлу и использовать ваши шифровальные ключи.

  2. Уязвимости сервера: Ваша система может быть уязвима из-за недостатков в коде, используемом вами PHP, или в самой библиотеке, которая генерирует OTP. Если в ваших скриптах есть ошибки, такие как SQL-инъекции или другие уязвимости, это может дать злоумышленникам возможность получить доступ к вашим данным, включая ключ TOTP.

  3. FTP-доступ: Если ваши FTP-учетные данные будут скомпрометированы, это может означать, что злоумышленник получит полный доступ к вашему серверу и сможет изменить или удалить ваши файлы. Даже если вы считаете, что ваши учетные данные надежны, они всегда подвержены риску, особенно на бесплатных хостингах, где часто не предусмотрено надлежащее управление безопасностью.

Доступность PHP-файлов

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

Другие соображения безопасности

  1. Администраторы сервера: Учитывайте, что у администраторов вашего хостинга есть неограниченные права доступа, и они могут просматривать любые файлы на сервере.

  2. Уязвимости кода: Следите за тем, чтобы ваш код был безопасен и не содержал уязвимостей, которые могут быть использованы злоумышленниками.

  3. Использование одного ключа TOTP: Если все пользователи используют один и тот же ключ, это создает дополнительный риск. Если злоумышленник получит доступ к этому ключу, он сможет генерировать OTP-коды для всех пользователей.

  4. Хранение секретов: Лучше всего хранить критически важные данные и ключи в специализированных системах управления секретами, а не на открытых хостингах, где они могут быть уязвимы.

  5. Шифрование: Убедитесь, что вы используете надежные алгоритмы шифрования для защиты ваших ключей и данных.

Заключение

В общем, хранение ключа TOTP в окружении бесплатного хостинга несет с собой множество рисков. Несмотря на настройки безопасности, таких как ограничение доступа по IP и установка прав на файлы, вы все равно подвергаетесь множеству уязвимостей и рисков. Я рекомендую рассмотреть возможность использования более безопасного хостинга с увеличенными мерами безопасности или управляемых сервисов, специально предназначенных для хранения критически важных данных и обеспечения защиты ваших приложений.

Оцените материал
Добавить комментарий

Капча загружается...