この記事は 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 分、GitHub ユーザー xqzi が HMCL の公式オープンソースリポジトリに Issue を提出しました。その内容は、xqzi 自身が HiPer を模倣して類似のツールを実装し、HiPer の中継サーバーの代わりに 2C?G4M のアリババクラウドを調達したというものでした。
正直なところ、あなたを嘲笑するつもりはありませんが、当時 HiPer は主にその企業製品 Matrix のバックボーンラインサーバーに依存していました。私たちが 8C16G12M のテンセントクラウドで構築した中継ノードは、バックボーンネットワークに接続されていない状態でもほぼ爆発寸前でした。あなたのような小さなサーバーが、少なくとも数百万人が同時に使用するツールを支えることは本当に無謀です。
私は 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
バージョンでテストしました。二つのサーバーのシステムはどちらも 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/
この記事はここでアーカイブされ、以後は修正されません。