Описание проблемы
В ходе проверки безопасности нашего кастомизированного развертывания Discourse мы обнаружили потенциальную утечку конфиденциальной информации в интерфейсе Администрирование > Настройки, касающуюся секретов клиента OAuth2.
Детали
-
На странице конфигурации администратора секрет клиента OAuth2 (а также, возможно, другие конфиденциальные токены/ключи) отображается в открытом виде, а не маскируется (например, звездочками).
-
Администраторам требуется вводить секрет напрямую в открытом виде в настройки. Любой, у кого есть доступ к интерфейсу администратора, может увидеть весь секрет.
-
Если злоумышленник получит доступ (даже временно) к сессии администратора, он сможет легко получить секрет клиента и использовать его для несанкционированных запросов токенов OAuth2 или для подделки запросов к сторонним сервисам.
Влияние на безопасность
-
Отображение секретов в открытом виде в интерфейсе администратора повышает риск утечки учетных данных.
-
Отсутствие маскирования не соответствует лучшим практикам безопасности при работе с секретами.
-
Секреты/токены могут быть использованы для повышения привилегий, имперсонации или для дальнейших атак на интегрированные сервисы.
Вопросы
-
Планируется ли маскирование конфиденциальных полей, таких как секреты OAuth2, в интерфейсе настроек администратора (например, отображение как ****** с возможностью раскрытия при необходимости)?
-
Существуют ли рекомендуемые подходы или плагины для усиления защиты конфиденциальных учетных данных в развертываниях Discourse?
-
Обсуждалась ли эта проблема ранее? Существуют ли какие-либо временные решения до официального исправления?
Благодарим вас за внимание к этой важной проблеме безопасности!