プラグインによってハッキングされました

Discourseフォーラムを再構築したところ、ブラウザで読み込むと、ポップアップに次のメッセージが表示されました。

「プラグインによってハッキングされました! w3shi(Hackerone)-S.Lakshmi Vignesh(RCE-POC)による」

まさか…何が起こっているのですか? 使用しているプラグインの1つが侵害されたのでしょうか?

「いいね!」 3

migrate password プラグイン、または discoursehosting リポジトリの別のプラグインを使用しましたか?

このフォーラムも影響を受けたようです Am I hacked? or not - Forum Management - Suggestions - DxO Forum

「いいね!」 2

はい、リストにあります。そして、discoursehosting からの唯一のものです。

「古い」ユーザーがログインできるようにするには、アクティブである必要があることを覚えていますか?

しかし、今問題となっているのは、インストールが侵害されたのか、それともこのメッセージが表示されているだけなのかということです。念のため、サイトは現在ダウンしています。

そのプラグインと一緒に、使用しているリストを以下に示します。

discoursehostingに関する言及をすべて削除してください

「いいね!」 9

フランスのフォーラム投稿のGoogle翻訳:

Pseudoセキュリティ研究者がフォーラムで使用されているプラグインの古いGitリポジトリを取得し、このメッセージを表示するためだけにそれを乗っ取りました。

問題のリポジトリ(GitHub - discoursehosting/discourse-migratepassword: A touch of security)は検査されましたが、悪意のあるコードは存在しません(単なる概念実証です)。

このリポジトリは実際にURLが変更されていました(現在はGitHub - communiteq/discourse-migratepassword: Support migrated password hashesで利用可能です)。ユーザーは単に以前はcommuniteq/discourse-migratepasswordにリダイレクトされていたdiscoursehosting/discourse-migratepasswordリポジトリを再作成し、無関係なコードをそこに配置しました。私たちは古いURLを使用していたため、影響を受けました。

それが本当なら、まあ…プラグインのURLをcommuniteqに変更し、現在再構築中です。しかし、これをもっと詳しく調べる必要があります(私はプログラマーではないので、100%確信することはできません)。

「いいね!」 5

TL;DR

これは「Repojacking」と呼ばれるエクスプロイトクラスにおけるGithubの脆弱性です。

すべてのユーザーに、GithubプラグインのURLを確認し、discoursehosting のすべてのインスタンスを communiteq に名前変更することを推奨します。

背景:

当社は2019年に Discoursehosting から Communiteq に社名を変更しました。
その場合、GithubはURLを新しい場所に自動的にリダイレクトしますが、誰かが同じ名前のリポジトリを作成するまでです。その時点で、新しいリポジトリが優先されます。

Githubは以前、そのようなリポジトリを「廃止済み」とマークし、同じ名前のリポジトリの作成を禁止していました。

以前のエクスプロイトについてはこちらで説明されています。明らかにその修正はもはや効果がありません。

Githubの利用規約違反レポートを提出し、利用可能なすべての手段でこのリポジトリを削除しようとします。

「いいね!」 16

現時点では、侵害されたプラグインはメッセージを表示するだけで、/tmp に無害なファイルを残します。
したがって、何も悪いことは起こっていません。再構築する前にプラグインの URL を変更することが重要です。

「いいね!」 7

わー、これはエンドユーザーを簡単に騙すことができますね。discourse.org の公式ホスティングを使用しない主な欠点の1つです。

もしどちらかの
angusmcleod (Angus McLeod) · GitHub または merefield (Robert) · GitHub
アカウントが存在しなくなったら、最初のサブパスが公開されるため、再構築が実行するための app.yml にクローンコマンドが配置されることになります。

「いいね!」 3

標準インストールのユーザーへの潜在的な影響を軽減するために、github.com/discoursehosting/ を検出して再構築/アップグレードを中止するコードを追加しました。

エラーは次のようなものになります。

---
ERROR: The configuration file containers/app.yml contains references to a compromised github organization: github.com/discoursehosting
Please remove any references to this organization from your configuration file.
For more information, see https://meta.discourse.org/t/374703/6
---
「いいね!」 31

デイビッド、ありがとう!

「いいね!」 13

こんにちは、Discourseコミュニティの皆さん、

プラグインリポジトリに関する私の行動によって引き起こされた混乱について、心よりお詫び申し上げます。セキュリティ上の問題を指摘しようとする中で、私は行動規範に違反する重大な間違いを犯しました。

今後は、責任ある開示慣行を遵守するよう努めます。この件から学ぶ機会をいただけたことに感謝いたします。

重ねて、混乱を引き起こしたことを心よりお詫び申し上げます。

@w3shi

「いいね!」 20

お詫び申し上げます。

次に無責任だったのは、ハンドルを手放したときに私やCDCKに個人的に連絡しなかったことです。過去3時間で、他の誰かがあなたの投稿を見て登録できた可能性があります。

これで古いGitHubハンドルを再び制御できるようになりました。そして、最終的に正しいことをしてくれたこと、そしてGitHubがリダイレクトを保護しなくなったことを5回目に指摘してくれたことに感謝します(前回は4回目でした:「この発見は、リポジトリジャッキングを実行するための代替方法が特定された4回目のマークです」)。

「いいね!」 12

ご迷惑をおかけして大変申し訳ございません!ご理解いただきありがとうございます @RGJ

「いいね!」 12

コミュニティへようこそ、そしてすべてを修正してくれてありがとう。

「いいね!」 9

基本的に何も安全ではないと想定すべきですが、それはうまく機能しません。

ほんの数日前、ESLint Prettier パッケージの NPM アカウントの背後にある開発者の 1 人が侵害され、いくつかの人気のあるパッケージの侵害された新しいバージョンが公開されたことが明らかになりました。

これらのパッケージは、多くの人が常に最新バージョンに更新すべきだと主張しているため、他のパッケージで参照されていました。

このスレッドを見た後、プラグイン/テーマコンポーネントを更新する際に署名検証を導入する機能を提案しました: Plugin and theme component signing

それは侵害されたキーを停止しませんが、少なくともサプライチェーンの 一部 をより信頼できるようにします。結局のところ、侵害されたサードパーティライブラリが引き込まれる可能性は依然としてあります。追加の依存関係は実際には表示されません。

「いいね!」 4

これがまだ機能するかどうかはわかりません。私は、侵害されたGitHub URLを指すプラグインを持っていましたが、再構築中のエラーメッセージは、gemのバージョンなどに関する詳細とともに、リポジトリのプルに失敗したとだけ述べていました。(後続のビルド中の他のノイズのために、スクロールバックから正確な情報を貼り付けることはできません。)

URL/リポジトリは現在まったく存在しないようですが、これは良いことです(誰かが再作成するまでですが)、エラーメッセージがあれば多くの時間を節約できたでしょう。

「いいね!」 1

はい、@RGJ が GitHub 組織の管理権限を再取得しましたので、一時的なエラーメッセージを削除しました。

「いいね!」 5

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.