この記事は、MainTest233 による知乎のコラム記事 https://zhuanlan.zhihu.com/p/675492255 から転載したもので、許可を得ています。転載時は CC BY-NC-SA ライセンスに従ってください。
この記事に関する知乎プラットフォームでのいくつかの注記:
この記事は元々 V2EX に投稿されていましたが、一部のユーザーがアクセスできないため、知乎に転載されました。
知乎は一部の Markdown 構文を認識できない可能性があるため、レイアウトに異常が生じる場合がありますので、ご了承ください。
原文は GitHub リポジトリを画像ホスティングとして使用しており、中国国内の一部ユーザーはアクセスできない可能性があるため、この記事のほとんどの画像はミラー置き換え処理を行っています。画像が失われた場合はコメントでお知らせください。すぐにミラーリンクを変更します。
皆さん、こんにちは。ここは MainTest233 で、かつて HiPer 関連の事件で HiPer 側のスポークスマンを務めていました。
皆さんはおそらく、この 1 年前の事件をほとんど忘れていないでしょう。
PS: もしこの事件を忘れたか、知らない場合は、以下のいくつかの記事を見てください。
新年が近づいているこの時期に、皆さんにこの非常に煩わしい事を思い出させることをお詫び申し上げますが、今日はこの事について触れざるを得ません。
いくつかの噂を通じて、HiPer が最近リブランドに成功し、再び登場する準備をしていることを知りました。
現在、私は Minecraft のコミュニティにはもはや参加していませんが、いくつかの理由から、以前の活動に対する微々たる償いとして、HiPer 共同開発チームで知っていたいくつかの表面的な情報を開示し、皆さんに警鐘を鳴らすことにします。HiPer の復活をある程度抑制するために (もちろん、猫猫がこれを理由にあきらめることはないと知っていますが、アンチも流量です)
この記事では、できるだけ Markdown 構文を使用して美化し、以前の投稿のレイアウトの混乱や論理の不整合を修正するために何度も検証と修正を行いました。
皆さんには、イライラを忘れ、この記事を最後まで忍耐強く読んでいただければと思います。
注意してください。私はすでに HiPer 関連の事から退いており、ランチャー関連の事にも参加していません。したがって、この記事は何の立場も代表するものではなく、最近のいくつかの状況に対する個人的なまとめと懸念に過ぎません。
以前、各ランチャーの作者の記事が過去の事件を適切にまとめており、私自身が持っている以前の事に関する証拠がすでに不完全であるため、ここでは最近起こった新しい事についてのみ議論します。
起因#
2023 年 12 月 29 日夜 11 時 24 分、xqziという名前の GitHub ユーザーがHMCLの公式オープンソースリポジトリにIssueを提出しました。その内容は、xqzi 本人が HiPer を模倣して似たようなツールを実装し、HiPer の中継サーバーの代わりに 2C?G4M のアリババクラウドを調達したというものでした。
正直に言うと、あなたを嘲笑するつもりはありませんが、当時 HiPer は主にその企業製品 Matrix のバックボーンラインサーバーに依存していました。私たちが 8C16G12M の Tencent Cloud で構築した中継ノードは、バックボーンネットワークに接続されていない状態でほぼ爆発寸前でした。あなたのような小さなサーバーが、少なくとも数百万人が同時に使用するツールを支えることができるとは本当に思えません。
私は HiPer が以前に開発者やユーザーに与えた影響を知っているため、この問題が再び公の場に現れることを望まず、また、この人が提供したリソースがあまりにも少ないため、私はこの人にこの件についての提案をしないことをお勧めしましたが、明らかに、私は失敗しました
この時点では問題はそれほど深刻ではなく、すぐに HMCL のコード提出者であるburningtntがこの Issue に気付き、Issue を操作する権限を持つ人に連絡を取りました。リポジトリの管理者が来て Issue をロックし、最終的な返信をするのを待つだけで、この問題は終わるはずでした。
しかし、この時、すべての原因となる人物が現れました。
おなじみの口調、セクシーなアイコン、短い名前、彼だ、彼だ、彼こそが私たちの猫猫
このffipは HiPer の作者、阿猫です。
これ以降、Issue は制御不能な方向に進展し始めました。
おなじみの言葉が悪い思い出を呼び起こします。明らかに、猫猫は再び彼の誘惑の技を使って一人の駒を欺こうとしており、それを利用して HiPer の復活を果たそうとしています。その際に、いくつかの侮辱を忘れずに投げかけています。
しかし、私は理解できません。あなたがまだ学業を終えていない高校生を欺くことは、良心を無視してできることだと思います。結局、私は何の負担もありません。たとえ捨てても、あなたの後のビジネスに何の影響も与えることはできません。
しかし、これはすでに仕事を持っている中年の人です。 前述の xqzi も確かに言っていましたが、もし見つかれば私的な仕事として扱われると、非常に深刻な結果が生じるでしょう。そして、あなたの今の行動は、彼を誤った道に導き、さらには彼の人生を台無しにすることではないでしょうか?
私はまだ学業を終えていないため、中年の人々のプレッシャーや負担を完全には理解できませんが、私の家庭の状況を考えると、もし両親が突然仕事を失った場合、その結果は家庭が完全に崩壊することになります。これは単に自分の利益のために他人を駒や踏み台として扱うという単純なことではありません。
しかし、明らかに、猫猫は HiPer の再登場の機会を放棄するつもりはありません。結局、彼にとって、自分の利益ほど重要なものはないのです。
ちなみに、あなたのこのプロジェクトの名前はまた被ってしまいました。しかも、6 年前のプロジェクトです。
こうして、私はもはや傍観者として楽しむことはできなくなりました。
しかし、前述のように、私は HiPer に対抗する強力な能力は持っていませんが、HiPer が公に発表したことのないものを持っています。今こそ、それを皆さんに見せる時です。
ここで小さな余談ですが、いくつかの偶然により、この記事を公開する前に、ある猫猫の内部者がいるグループチャットに情報が漏れてしまいました。現在、猫猫はこの設定をすべての人に公開しています(後で提供します)が、皆さんにお伝えしたいのは、このものには依然として大きな安全リスクがあるということです。詳細は以下をご覧ください。
奇妙なポート#
ここで余談ですが、再度改名され、現在 HiPer は VLAN に改名されています。
実際、この問題は非常に単純で、特に大きな問題ではありません。
皆さんは HiPer が起動する際に非常に奇妙なリスニングを作成することに気づいたことがありますか?
図に示すように、38154 (UDP)
は STUN 専用のポートで、6699 (TCP)
は P2P 接続用のポートです。
(PS: この時点では、私は単にnmap
でざっとスキャンしただけで、WireShark
を使って具体的にパケットをキャプチャしたわけではなく、記憶に頼っているだけです。この 2 つのポートが正常であることを知っていれば大丈夫です。)
しかし、図の中には非常に奇妙な22222 (TCP)
ポートがあります。これは一体何に使われているのでしょうか?
lsof
やnetstat
ではこのポートの機能を認識できないため、nmap
を使用してこのポートを迅速にスキャンしてみましょう。
本当に見なければよかった、見たら驚きました。私は SSH ポートを間違えて設定したのかと思いました!
しかし、このfingerprint-strings
もまた、これがまさにHiPer
によるものであることを証明しています。ここには、私が見たことのない SSH 公開鍵ペアが含まれています。そのため、私は自分の SSH 公開鍵ファイルを一度確認しましたが、何もありませんでした。
そのため、私は猫猫にこれが何か尋ねたことがあります。猫猫はこれを「エッジコントロール」と呼びました。どう言えばいいのか、このネーミング方法はさすが猫猫です~~(もちろん、私はこのチャットの記録のスクリーンショットを持っていませんので、私を中傷するのは自由です)~~
信じてください、エッジコントロールが何かを検索しないでください。そうしないと、私と同じように驚くことになるでしょう。
簡単に言うと、当時猫猫が私に言ったことによれば、この SSH は「バックアッププラン」であり、特定のユーザーがToSに違反したり、法律に違反した場合、猫猫はこれを利用して関連証拠を収集し、警察の執行に使用することができるということです。
このものが本当に警察の執行に使用されるのであれば、確かに素晴らしいものですが、もし本当にそうなのでしょうか?
ポータルが開かれた#
皆さんはこれで終わりだと思っているのですか?とんでもない。
私はこのものが中控サーバーだけがアクセスできると思っていましたが、もしこのネットワークが隔離されていなかったらどうでしょうか?
この時、私は以前の頑固さと粗野さに対して TT702 に謝罪し、最も誠実な敬意を表します。彼が以前HiPer
について持っていた見解は、この瞬間に完全に検証されました。
HiPer のエッジコントロール機能には、追加の認証は行われておらず、ネットワークに参加し、正しい秘密鍵を持っているだけで、彼はファイアウォールが設定されていないネットワーク内の任意のユーザーのデバイスにアクセスできるのです。
あなたは「このものはファイアウォールを開ければ遮断できるのでは?」と思うかもしれませんが、実際にそうです。しかし、もし私が言ったらどうでしょうか、中国のほとんどの家庭用デバイスはファイアウォールを開けていないのです。もし彼が自動的にファイアウォールの開放権限を申請するが、その目的を教えない場合、そしてある初心者がこのものを使ってオンラインに接続しようとしたり、あまり理解していない人がそれを使ってネットワークを構築しようとした場合、彼らがファイアウォールに阻まれたとき、彼はファイアウォールのルールを真剣に考えるでしょうか、それともファイアウォールを直接オフにするでしょうか?
あなたは「このものはただの SSH に過ぎない。彼には何の権限もない。彼は何をすることができるのか?」と思うかもしれませんが、別の簡単な実験を使って、このものがなぜこんなに危険なのかをお教えします。
図のように、私はテスト用の権限のないアカウントを作成し、HiPer
を再実行しようとしました。あなたは明らかに見ることができます。HiPer
は特定の操作を実行するために管理者権限を使用する必要があります。これは理解しやすいことです。なぜなら、TUN を使用したネットワーク転送は管理者権限を使用せずに実現することはほぼ不可能だからです。つまり、私のサーバー上では現在、管理者権限を持つ SSH サービスが実行されており、SSH 鍵ファイルを持つ誰でもログインできる状態です。
もしあなたが理解できないのであれば、簡単な例を挙げましょう。これはまるであなたの家の大門を開けたまま、貴重品をすべて外に並べているようなものです。
さらに、この機能は公式のチュートリアルにおいて無効化方法が示されていません。私の設定にはこの機能は有効になっていません。
もしHiPer
の公式チュートリアルに従って、ssh
部分を追加してこのサービスのポートを変更し、自分の鍵に変更することができたとしても、私はこの機能を完全に無効にすることはできません。この部分の設定を削除すると、SSH は再びその公開鍵を持つ SSH に戻ります。さらに、この機能を削除するには、図に示すsync
部分も削除する必要があります。この部分の内容は、上のpoint.yml
と公式リポジトリの内容を同期するものであり、これはネットワーク全体に接続する主要な中継ノードであり、定期的に動的に更新されます。この部分を削除しない限り、あなたの変更はすべてリセットされます。削除すると、ネットワークとの安定した迅速な接続を保証する中継ノードの更新権限を失います。なんて素晴らしい二者択一でしょう!
(ああ、もし事前に情報が漏れていなければ、恐らくこのssh
部分のヒントは今も出てこなかったでしょう。)
さらに、この機能は、当初三つのランチャーがHiPer
と対立し、HiPer
を完全に排除していなかった時点ですでに存在していました。
さらに、遠くを見れば、私はHiPer
の以前のフォーラム公式サイトが現在、いくつかの政府関連の内容を持っているのを見ました。明らかに、猫猫はHiPer
のビジネスを BG 端に押し込もうとしているか、すでに押し込んでいる可能性があります。恐らく、どの企業や政府も、自分たちが使用しているネットワーク構築ツールにこのような重大なバックドアが残ることを望んでいないでしょう。
猫猫がある時、私にこのことを話してくれたことがあり、彼はこのことを利用して圧倒的な状況を得る可能性を表現していました。真実は誰にもわかりませんが、おそらく猫猫だけが知っているのでしょう。
後記#
この記事はここでほぼ終了です。この問題をCVE
公式プラットフォームおよびCNNVD
に提出しようとしましたが、こうしたものが収録される可能性はほぼゼロですので、皆さんは楽しんでください。
この記事を読んだ後、皆さんはHiPer
について新たな理解を得たことでしょう。
この記事で開示された内容はそれほど深刻ではありませんが、皆さんはHiPer
およびその作者阿猫に対して十分に注意してください。これはおそらくHiPer
の氷山の一角に過ぎません。
現在の状況に対して私が提供できるアドバイスはあまりありません。結局、私の知識は非常に限られています。
- 阿猫の作品をあまり使用しないこと
- ファイアウォールを開け、すべてを確認すること
- 権限管理をしっかり行い、ソフトウェアに管理者権限を与えないこと
私が言いたいことはすべて言いました。もし私を批判したいのであれば、この投稿の下に自由にコメントしてください。この投稿はコメント削除を行いませんし、誰が私に対して個人的な攻撃をしても気にしません。結局、アンチも流量です。
ああ、もしこの投稿が削除された場合、私は引き続き投稿します。ダメなら、別のプラットフォームで投稿します。私たちはあなたの通報が多いのか、私のアカウントが多いのかを競い合うことができます。
もちろん、あなたはお金を使って私を全プラットフォームで封じ込めることもできますが、そうなると、皆さん、誰が黒で誰が白かは明らかになるでしょう。
この記事の見解はすべて皆さんに判断していただきます。私はただ事実を客観的に記述しただけです。もし私が偽情報を流している可能性があると思ったら、私の投稿の下にコメントして教えてください。
私が使用したバージョンはVLAN (1.15.1.0)
のLinux_x86-64
バージョンで、2 つのサーバーのシステムはDebian 12 (Bookwarm)
です。このバイナリファイルはずっと保管しており、すでに異地での多重バックアップを行っています。もしあなたが望むなら、ED25516
、OneDrive
、群晖 NAS
、LUKS
などを一つずつ攻撃し、私の個人住所を追跡し、私が隠している最後のファイルを見つけて削除することができますが、私はあなたがそれを気にしないと思います。結局、これはほんの少しのものに過ぎないのですから。
ああ、あなたはWayback Machineが好きではありませんか?この記事を書いている時に、あなたの主な使用方法とリポジトリのホームページのスナップショットを取っておきました。あなたが SSH 設定を書いていなかった時のものはキャッチできませんでしたが、あなたがその後どれだけの未記載の設定を公開するのか、また、私が上記の問題に対してどれだけの変更を行うのか、楽しみにしています。
皆さんが信じないのであれば、リポジトリのコミット履歴を見てください。すでに1.15.1.0
バージョンに更新されていますが、リポジトリのコミットはわずか 2 つです。この間にどれだけのgit pull
とgit push
があったのか、非常に考えさせられます。
関連リンク:
- 公式チュートリアル:https://docs.qq.com/aio/DTEpsR1lmbnZLQmln?p=gbkSEKVrKc6kV7qa6SLZ0y
WayBack Machine:https://web.archive.org/web/20231231141501/https://docs.qq.com/web/20231231141501/https://docs.qq.com/aio/DTEpsR1lmbnZLQmln?p=gbkSEKVrKc6kV7qa6SLZ0y - 公式バイナリファイルリポジトリ:https://gitcode.net/to/vlan
WayBack Machine: https://web.archive.org/web/20231231142556/https://gitcode.net/to/vlan - 公式バイナリファイルリポジトリのコミットページ:https://gitcode.net/to/vlan/-/commits/master/
WayBack Machine:https://web.archive.org/web/20231231142645/https://gitcode.net/to/vlan/-/commits/master/ - CVE 紹介 Gist: https://gist.github.com/FunnyShadow/ba8177d50f146034b47de296e514f5de
そういえば、ここには実際に解決策があります。あなたは猫猫にお金を払って、管理者権限を必要としないカスタムバージョンのHiPer
インターネットツールを入手することができます。あなたはどう思いますか?
最後に、xqziが私に答えを求めています。あなたがこの事に参加することを阻止する理由を理解するために、これがその理由です。さらにはそれだけではありません。
「言えることは痛みではない」
最後の一言、この記事のすべての画像は GitHub の個人リポジトリからのものであり、したがって、GitHub リポジトリの内容が変更されると、ここも動的に変更されます。
誠意を表すために、画像ストレージリポジトリのコミットも WayBack Machine で処理しました。以下はリンクです。
- 画像リポジトリのコミットページ: https://github.com/FunnyShadow/some-backups-of-hiper/commits/main/
WayBack Machine: https://web.archive.org/web/20231231143949/https://github.com/FunnyShadow/some-backups-of-hiper/commits/main/
この記事はここでアーカイブされ、以後は修正されません。