ログインページに設定とインストール済みプラグインが露出

皆様、こんにちは。

Discourse サーバーのログインページで発生している問題の解決を図りたいと考えています。現在、このログインページにはサーバーの設定やインストールされているプラグインの情報が露呈しています。これはページソースを確認するか、ログインページを検証することで閲覧可能です。この情報をページから削除、または非表示にする方法をご教示ください。

露呈しているプラグインコードの例:

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

露呈している設定の例:

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

これらすべての設定はクライアント側で必要であり、いずれにせよ推測可能です。そのため、機密情報とは言い難いでしょう。

これに対して、具体的にどのような問題がありますか?

リチャード、ありがとうございます。

ご返信から判断すると、これは標準的な設定であり、リスクは考慮された上で問題ないと判断されたもののようです。

しかし、私はこれを問題だと考えています。その理由は以下の通りです。

攻撃者がウェブサイトの脆弱性を探し、どのように悪用できるかを検討する際、まずは可能な限り多くの情報を収集することから始めます。ウェブサイトのコードに含まれる情報は、攻撃者がゼロ知識の状態から、さほど労力をかけずにより多くの知識を得ることを可能にします。

例えば、設定情報は攻撃者に対してセキュリティモデルの構成方法について非常に明確な指針を与え、それによって攻撃の標的を絞り込むことを可能にします。最小ユーザー名長さ、最大ユーザー名長さ、最小パスワード長さは、攻撃の手段を絞り込むのに役立ちます。SSO は有効ですか?2FA は有効ですか、それとも無効ですか?

この情報は、誤設定されている可能性のある Discourse サーバーをオンライン上で発見するためにも役立ちます。Google Dork を使用すれば、潜在的に insecure な、あるいは容易に突破可能な Discourse サーバーを見つけることができます。

もしこの情報がソースコード内の JSON 形式で利用可能でなかった場合、この情報を抽出するスクリプトを作成するには、おそらく約 1 時間程度かかっただろうと思います。結局のところ、サインアップを試みると、フォームバリデータがユーザー名やパスワードの長さなどの情報を教えてくれるからです。

これらの情報のいずれも、設定ミスや不安全な構成に関する情報を漏らしているとは思いません。

Discourse はオープンソースであり、デフォルトの設定はともかく公開されています。
明らかに、ハッカーバウンティを獲得するほどのメリットはありません。

なぜ、Discourse サイトのログインページに表示される情報を減らしたいという私の最初の質問から、ハッカーバウンティの話にすり替わってしまったのか分かりません。私が聞いているのはコードの脆弱性ではありません。単に、ログインページにこれ以上多くの情報を表示するのは気が進まないため、それを削除する方法を探りたいだけなのです。

話題から逸れないでください。

リチャードさん、こんにちは。

この件については私の見解はあなたとは異なりますが、それが私の考えです。また、他の人々が異なる見解を持つことも理解しています。私たちは当初の要望からやや逸脱し、あるかもしれないし、ないかもしれない潜在的な脅威について議論してきていると感じています。

この情報の表示を減らす方法はありますか?もしそれが不可能であれば、このサポートリクエストは終了とし、次の件に進みます。