Configurações e plugins instalados expostos na página de login

Olá a todos,

Estou procurando resolver um problema na página de login dos nossos servidores Discourse. A página de login está atualmente expondo configurações do servidor, bem como os plugins instalados. Isso é visível se você examinar o código-fonte da página ou inspecionar a página de login. Como podemos remover essas informações da página ou escondê-las?

Exemplo de código de plugin exposto:

<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"/>

Exemplo de configurações expostas:

<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,

Todas essas configurações são necessárias no cliente e podem ser deduzidas de qualquer forma, então dificilmente são um segredo.

Qual é exatamente o seu problema com isso?

Obrigado, Richard,

Pela sua resposta, parece que esta é uma configuração padrão e que o risco foi considerado e julgado não ser um problema.

Eu pensei que fosse um problema, porque:

Quando um adversário procura por fraquezas em sites e como poderiam explorá-las, ele começa coletando o máximo de informações possível sobre eles. As informações presentes no código do site permitem que o adversário passe de zero conhecimento para um conhecimento mais amplo, sem gastar muito esforço.

Como exemplo, as configurações fornecem ao atacante orientações muito claras sobre como o modelo de segurança foi configurado, o que permite que ele direcione um ataque. O tamanho mínimo do usuário, o tamanho máximo do nome de usuário e o tamanho mínimo da senha são todos úteis para reduzir as possíveis vias de ataque. O SSO está habilitado? O 2FA está ou não habilitado?

Essas informações também são úteis para encontrar servidores Discourse online que podem estar mal configurados. Um Google Dork pode ser usado para localizar servidores Discourse que sejam potencialmente inseguros ou facilmente violados.

Se essas informações não estivessem disponíveis em formato JSON no código-fonte, provavelmente levaria cerca de uma hora para escrever um script que extraísse essas informações de qualquer forma. Afinal, ao tentar se cadastrar, um validador de formulário também forneceria informações como os comprimentos de nome de usuário e senha.

Não acho que qualquer uma dessas informações revele qualquer tipo de informação sobre uma má configuração ou configuração insegura.

O Discourse é de código aberto e as configurações padrão são documentadas publicamente de qualquer forma.

Claramente, isso não é uma vantagem suficiente para ganhar uma recompensa para hackers.

Não tenho certeza de como chegamos da minha pergunta original, em que eu queria reduzir a quantidade de informações na página de login dos nossos sites Discourse, a uma recompensa para hackers? O que estou perguntando não é uma vulnerabilidade no código. É simplesmente mais informações do que me sinto confortável em ter em uma página de login, e eu queria encontrar uma maneira de removê-las.

Por favor, mantenham-se no tópico.

Olá Richard,

Eu tenho uma visão diferente da sua sobre isso, mas essa é a minha opinião e entendo que outras pessoas podem ter uma interpretação distinta. Sinto que nos afastamos um pouco da solicitação inicial ao discutir ameaças potenciais que podem ou não representar um risco.

Existe alguma maneira de eu reduzir a visibilidade dessas informações ou isso não é possível? Se não for, seguirei em frente e podemos encerrar este chamado de suporte.