Paramètres et plugins installés exposés sur la page de connexion

Bonjour à tous,

Je cherche à résoudre un problème sur la page de connexion de nos serveurs Discourse. Cette page expose actuellement les paramètres du serveur ainsi que les plugins installés. Cela est visible si vous examinez le code source de la page ou si vous inspectez la page de connexion. Comment pouvons-nous supprimer ou masquer ces informations ?

Exemple de code de plugin exposé :

<link href="[/stylesheets/poll_desktop_2_aaf730f938a1162e369c60cef250ac2b3bf97c05.css?__ws=discourse.bob.host](https://discourse.bob.host/stylesheets/poll_desktop_2_aaf730f938a1162e369c60cef250ac2b3bf97c05.css?__ws=discourse.bob.host)" media="all" rel="stylesheet" data-target="poll_desktop" data-theme-id="3"/>

Exemple de paramètres exposés :

<div class="hidden" id="data-preloaded" data-preloaded="{&quot;site&quot;:&quot;{\&quot;periods\&quot;:[\&quot;all\&quot;,\&quot;yearly\&quot;,\&quot;quarterly\&quot;,\&quot;monthly\&quot;,\&quot;weekly\&quot;,\&quot;daily\&quot;],\&quot;filters\&quot;:[\&quot;latest\&quot;,\&quot;unread\&quot;,\&quot;new\&quot;,\&quot;read\&quot;,\&quot;posted\&quot;,\&quot;bookmarks\&quot;],\&quot;user_fields\&quot;:[],\&quot;auth_providers\&quot;:[]}&quot;,&quot;siteSettings&quot;:&quot;{\&quot;default_locale\&quot;:\&quot;en\&quot;,\&quot;title\&quot;:\&quot;bobDiscourse\&quot;,\&quot;short_site_description\&quot;:\&quot;bob Integration Discourse\&quot;,\&quot;contact_email\&quot;:\&quot;infrastructure@bob.com\&quot;,\&quot;contact_url\&quot;:\&quot;https://bob.com\&quot;,\&quot;logo\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;logo_small\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;digest_logo\&quot;:\&quot;\&quot;,\&quot;mobile_logo\&quot;:\&quot;\&quot;,\&quot;large_icon\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;favicon\&quot;:\&quot;/uploads/default/original/1X/96eba37e4fb0f19f8f04e09ad31d1bf14111e122.png\&quot;,\&quot;apple_touch_icon\&quot;:\&quot;\&quot;,\&quot;allow_user_locale\&quot;:false,\&quot;support_mixed_text_direction\&quot;:false,\&quot;suggested_topics\&quot;:5,\&quot;ga_universal_tracking_code\&quot;:\&quot;\&quot;,\&quot;ga_universal_domain_name\&quot;:\&quot;auto\&quot;,\&quot;gtm_container_id\&quot;:\&quot;\&quot;,\&quot;top_menu\&quot;:\&quot;categories|latest|new|unread|top\&quot;,\&quot;post_menu\&quot;:\&quot;read|like|share|flag|edit|bookmark|delete|admin|reply\&quot;,\&quot;post_menu_hidden_items\&quot;:\&quot;flag|bookmark|edit|delete|admin\&quot;,\&quot;share_links\&quot;:\&quot;twitter|facebook|email\&quot;,\&quot;desktop_category_page_style\&quot;:\&quot;categories_with_featured_topics\&quot;,\&quot;category_colors\&quot;:\&quot;BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|E45735\&quot;,\&quot;category_style\&quot;:\&quot;bullet\&quot;,\&quot;enable_mobile_theme\&quot;:true,\&quot;relative_date_duration\&quot;:30,\&quot;fixed_category_positions\&quot;:false,\&quot;fixed_category_positions_on_create\&quot;:false,\&quot;enable_badges\&quot;:true,\&quot;enable_badge_sql\&quot;:false,\&quot;enable_whispers\&quot;:false,\&quot;push_notifications_prompt\&quot;:true,\&quot;vapid_public_key_bytes\&quot;:\&quot;4|170|50|111|127|76|83|223|177|204|254|218|146|40|188|175|8|235|76|71|207|133|49|159|219|30|44|72|138|250|138|188|150|192|11|194|246|81|233|148|144|142|143|243|38|251|133|5|10|219|95|160|9|246|246|186|2|162|200|182|219|187|92|28|26\&quot;,\&quot;invite_only\&quot;:true,\&quot;login_required\&quot;:true,\&quot;must_approve_users\&quot;:false,\&quot;enable_local_logins\&quot;:true,\&quot;enable_local_logins_via_email\&quot;:true,\&quot;allow_new_registrations\&quot;:true,\&quot;enable_signup_cta\&quot;:true,\&quot;enable_sso\&quot;:false,\&quot;sso_overrides_email\&quot;:false,\&quot;sso_overrides_avatar\&quot;:false,\&quot;min_username_length\&quot;:3,\&quot;max_username_length\&quot;:20,\&quot;unicode_usernames\&quot;:false,\&quot;min_password_length\&quot;:10,

Tous ces paramètres sont nécessaires côté client et peuvent de toute façon être déduits, ils ne sont donc guère un secret.

Quel est exactement votre problème avec cela ?

Merci Richard,

À en juger par votre réponse, il s’agit d’une configuration standard et le risque a été évalué et jugé non problématique.

Je pensais que c’était un problème, car :

Lorsqu’un adversaire recherche des failles dans des sites web et explore les moyens potentiels de les exploiter, il commence par rassembler le maximum d’informations possible. Les informations présentes dans le code du site permettent à un adversaire de passer de zéro connaissance à une connaissance plus approfondie sans déployer beaucoup d’efforts.

Par exemple, les paramètres fournissent à un attaquant des indications très claires sur la manière dont le modèle de sécurité a été configuré, ce qui lui permet ensuite de cibler une attaque. La longueur minimale du nom d’utilisateur, la longueur maximale du nom d’utilisateur et la longueur minimale du mot de passe sont toutes utiles pour restreindre les vecteurs d’attaque possibles. Le SSO est-il activé ? La 2FA est-elle activée ou non ?

Ces informations sont également utiles pour identifier des serveurs Discourse en ligne qui auraient pu être mal configurés. Une recherche Google Dork pourrait être utilisée pour trouver des serveurs Discourse potentiellement non sécurisés ou facilement compromis.

Si ces informations n’avaient pas été disponibles au format JSON dans le code source, il aurait probablement fallu environ une heure pour écrire un script permettant d’extraire ces données de toute façon. Après tout, en tentant de s’inscrire, un validateur de formulaire vous fournirait également des informations telles que les longueurs des noms d’utilisateur et des mots de passe.

Je ne pense pas que l’une de ces informations révèle le moindre type de problème de mauvaise configuration ou de mise en place peu sécurisée.

Discourse est open source et les paramètres par défaut sont de toute façon documentés publiquement.

Ce n’est clairement pas un avantage suffisant pour gagner une prime de hacker.

Je ne sais pas comment nous en sommes arrivés de ma question initiale, où je souhaitais réduire la quantité d’informations affichées sur la page de connexion de nos sites Discourse, à une prime pour les pirates. Ce dont je parle n’est pas une vulnérabilité dans le code. Il s’agit simplement de plus d’informations que je ne me sens pas à l’aise d’avoir sur une page de connexion, et je voulais trouver un moyen de les supprimer.

Veuillez rester dans le sujet.

Bonjour Richard,

Je ne partage pas votre point de vue sur ce sujet, mais c’est mon opinion et je comprends que d’autres personnes puissent avoir une approche différente. J’ai l’impression que nous nous sommes un peu éloignés de la demande initiale en discutant de menaces potentielles qui peuvent ou non constituer un risque.

Existe-t-il un moyen de réduire la visibilité de ces informations, ou cela n’est-il pas possible ? Si ce n’est pas possible, je passerai à autre chose et nous pourrons clôturer cette demande d’assistance.