1 ポイント 投稿者 GN⁺ 2025-10-23 | 1件のコメント | WhatsAppで共有
  • 最近、Google Safe Browsing サービスの影響で、Immich 関連のすべてのサイトに危険警告が表示された
  • immich.cloud ドメイン全体が影響を受け、ほとんどのブラウザで事実上アクセスがブロックされた
  • 原因は、Preview 環境などの内部デプロイ URL が自動でクロールされ、誤検知 として扱われたため
  • Google Search Console で異議申し立てを行って短期的には復旧したが、新しい Preview が作成されるたびに問題が繰り返し発生する
  • オープンソース・セルフホスティング サービスの特性上の構造的な問題であり、今後は Preview 環境を別ドメインに分離する予定

GoogleがImmichサイトを危険なサイトとして表示した事件

2025年10月20日
By Jason Rasmussen

概要

  • 今月初め、*.immich.cloud のすべてのウェブサイトが危険なサイトに分類され、ユーザーはブラウザでセキュリティ警告(いわゆる "red-screen-of-death")画面を見ることになった
  • チーム内の誰も、このブラウザ機能がどのように動作するのか明確には理解していなかったが、今ではこの関連知識が "cursed knowledge" の一覧に加わった

背景

  • Google は Safe Browsing サービスを無料で提供しており、これはマルウェア、望ましくないソフトウェア、ソーシャルエンジニアリングによる欺きの有無を判断することを目的としている
  • Chrome、Firefox などの主要ブラウザがこのサービスを連携している
  • サービスが実際にどのように危険判定を行っているかは不明瞭である
  • サイトが危険として分類されると、ほとんどのユーザーがそのサイトを利用できなくなる問題が発生する
  • ごく一部のユーザーだけが「詳細を表示」および「安全でないサイトにアクセスする」リンクを通じてのみ入ることができる

フラグ付けされた状況の認識

  • 今月初め、immich.cloud ドメイン上の多数のサイトに「危険」表示が付き、ユーザーからは自己ホストされた Immich インスタンスもフラグ付けされたという不満が寄せられた
  • 内部で使用している Preview 環境など、すべての内部サイトでも同様に警告が発生した
  • 毎回「安全でないサイト」表示を経由しなければならない不便が続いた

Google Search Console を通じた対応

  • 数日たっても警告が解除されなかったため、正式な対応経路である Google Search Console を利用することにした

  • このサービスでは、Google アカウントの作成、Search Console の利用、フラグ付けされたサイトに対するレビュー依頼が必須となる

  • Search Console は危険判定の理由について一部説明を提供する

    • 「Google が、あなたのサイトの一部ページで有害なコンテンツを検出しました」
    • 「これらのページには、望ましくないソフトウェアのインストールを促したり、個人情報を露出させたりする危険要素があります」
  • 問題として指摘された URL の一覧を確認したところ、すべて Preview 環境に関連する URL だった

  • 個別のサブドメインが1つだけフラグ付けされても、ドメイン全体が不良判定されるという点が最も衝撃的だった

影響

  • Preview 環境および内部サービス(zitadel、outline、grafana、victoria metrics など)はすべて影響範囲に含まれた
  • Production tile server(tiles.immich.cloud)も対象だった
  • ただし tile server は JavaScript 経由でリクエストされ、直接のユーザーインターフェースを持たないため、正常に動作していることが確認された

問題の「解決」試行

  • Google Search Console の Request Review 機能で異議申し立てを行い、解決内容を説明する必要がある
  • 実際には問題を解決せずにレビューだけを依頼した場合、審査期間が長くなる

危険なサイトの復旧要請


  • 実質的な問題点はないと判断されたため、以下のように対応内容を伝えた

  • 1〜2日以内にドメインは正常判定に戻り、アクセス可能な状態に復旧した

問題を最小化するための取り組み

  • GitHub Pull Request に preview ラベルを追加すると Immich Preview 環境が自動生成され、生成直後に本人確認コメントとともに Preview URL が作成される

    https://pr-<num>.preview.internal.immich.cloud/
    
  • 新しい Preview 環境が作られるたびに、immich.cloud ドメインが再び危険判定を受ける

  • Google が GitHub をクロールして新しい URL を発見・探索し、その後危険扱いしているものと推定される

  • 現在の対策として、Preview 環境専用の別ドメイン(immich.build)へ分離する計画を進めている

より大きな問題

  • Google Safe Browsing システムは、オープンソースおよびセルフホスティングソフトウェア の特性を考慮せずに設計されているように見える
  • Immich 以外にも、多くの人気プロジェクトが類似の問題を経験している
  • Google は任意のドメインをブロックでき、これに対する実質的な対抗策は、Google に継続的にレビューを依頼する以外にほとんど方法がない状況である

Cheers,
The Immich Team

1件のコメント

 
GN⁺ 2025-10-23
Hacker Newsの意見
  • ユーザーコンテンツをサブドメインでホスティングする予定なら、サイトを Public Suffix List に登録すべき https://publicsuffix.org/list/
    こうしておけば、汚染されたサブドメインがサイト全体に影響しない

    • ユーザー生成コンテンツをホスティングするなら PSL に入っているべき、というのは Web 開発者の間では一種の暗黙知になっている
      Immich の件のように事前に経験していないとこうした事実はなかなか分からないので、実際に遭遇するまでは大半の人が知らない部分でもある

    • 昔のブラウザは、ドメインにドットがない場合にだけ広範な Cookie 設定を防ぐアルゴリズムを使っていた(例: .com, .org
      しかし .co.uk のようなサブレベルドメインでは、すべての下位登録ドメインに Cookie が漏れてしまう問題があった
      TLD ごとに登録ポリシーが異なるため、開発側で解決する方法がなく、結局 Public Suffix List のようなリストを手動で管理する方式が出てきた
      ブラウザ自体に生まれつきこうした限界があるのを見ると、Web はまるでダクトテープで作った車のように感じる https://publicsuffix.org/learn/

    • この投稿に付いた複数のリンクを見ると、実際には問題は2つある

  1. Immich のように自分のドメインにユーザーコンテンツを載せる場合、public suffix list に登録する問題
  2. ユーザーが immich や jellyfin のようなオープンソースプロジェクトを自分のドメインでホスティングしたとき、フィッシングと誤解される問題
    1つ目は PSL を知っていれば比較的簡単だが、2つ目は(特にドメイン名にソフトウェア名が含まれている場合)さらに厄介だ
  • 問題はユーザーコンテンツそのものではなく、Immich の release build を自分のサーバーに直接置いただけなのに、Google が自分のドメイン全体をブロックしたことだ

  • Immich が実際にユーザーコンテンツをホスティングしていたからではなく、PR preview 用サブドメインでこの問題が起きた
    これは明らかに Google 側のコードの問題だと思う

  • Immich チームの「Cursed Knowledge」リスト全体を一度見るのを勧める https://immich.app/cursed-knowledge

    • リストにある内容の一部は、むしろ当然のセキュリティ設計にも見える
      たとえば「一部の携帯電話では、位置情報権限のないアプリが画像を読むと GPS 情報を自動で削除する」
      むしろ自然で望ましい動作に思える

    • こういう種類のノウハウを CURSED.md のような標準ファイルとして各プロジェクトで共有できるとよい
      現場で得られたさまざまな知識をみんなが学べるようになる

    • 「Postgres のクエリパラメータは 65,000 個が上限」
      その数でも足りないという点が面白い

  • こういう警告文でいつも気になる点がある
    かなり直接的に「詐欺師」「攻撃者」というレッテルを貼っているように見えるが、これは名誉毀損にならないのだろうか
    Microsoft の未確認実行ファイルの警告も同じだ
    昔は「安全かどうか分かりません」という言い方だったのに、最近は「あなたは攻撃者です」と断定するような表示に見える

    • 「詐欺師」という単語は実際の警告文には使われておらず、「攻撃者がサイトにいる可能性がある」「〜かもしれない(might)」という表現になっている
      これには第三者のハッカー侵入事例も含まれる
      サイト所有者を攻撃者だと名指ししているわけではない
      法務チームが文言をかなり慎重に検討したはずだ

    • 私は弁護士ではないが、こうした警告文で法廷まで行った例はないのではと思う
      名誉毀損に当たる可能性はありそうだ

  • これは本当に大きな問題ではないのかもしれないが、Immich のようなところに誰でも PR を送って preview タグさえ付けば、その内容が必ず https://pr-<num>.preview.internal.immich.cloud でホスティングされる仕組みなのか気になる
    結局、誰でも何でも自由に載せられることにならないか?

    • GitHub ではラベルを追加できる人がコラボレーターに制限されているので、完全にオープンではない
      それでも、もしコラボレーターがまともな PR を先に送ってラベル獲得後は何でも載せられるなら、リスク要因はある

    • 本当にコストのかからないフィッシング手法のアイデアみたいだ

  • 1社がどのサイトにアクセスできるかまで左右しているなんて信じがたい
    アプリ実行を制限するだけでは飽き足らず、今やこのレベルだ

    • 米国議会が長年にわたって非効率に運営されてきた影響が、さまざまな問題につながっている

    • 広告が嫌いなユーザーまで、どうしてこんな大企業を「クール」だと思うように仕向けられたのか不思議だ
      広告は誰も望んでいないが、企業にとっては収益手段だ
      Google がこうした非倫理的な企業イメージを逆に「かっこいい」ものとして包装しているのが理解できない

  • オープンインターネットは終わったのだと思う
    今やすべてを独占企業が支配している
    私は 3 年間 iOS アプリをストアに置いていたが、突然 Apple が存在もしない新しいライセンスを要求し、それがなければアプリを下ろすと通告してきた
    3年間何も変わっていないのにこういうことが起きる
    今ではセルフホスティングすら好きにできないレベルになってきて、だんだん嫌気が差している

    • iOS アプリと Apple の要求事項の件について詳しく説明してくれたら本当に助かる
  • 私の友人であり顧客でもある人が、WordPress 系のホスティングと単純なリダイレクトを使っていた
    そのホストがいつの間にか「危険なサイト」のブラックリストに載ってしまった
    リダイレクトを外した後も自分のドメインまで汚染されたままで、そのせいで Google はそのドメインからのメールすら一切受け取らなくなった
    審査リクエストでブラックリストからは外れたが、メール遮断の効果は恒久的に残った
    結局新しいドメインを登録したが、こうした Google の振る舞いは、むしろ使い捨てアカウントを作り続ける動機にしかならない

    • こういう話を聞くと怖く感じる
      私も 25 年間問題なく使ってきた自分のドメインが誤ってブラックリスト入りし、そのせいでメールまで止められることを想像すると本当に恐ろしい
  • 私の結論としては、用途ごとにドメインを分けて使うのがよいということだ
    世界的には複数の TLD が公式サービスっぽく見えてしまう欠点もあるが、今回の件でますますそう確信した
    例としては
    www.contoso.com(公開用)
    www.contoso.blog(公開、ユーザーコメントあり)
    contoso.net(内部用)
    staging.contoso.dev(開発/ゼロトラストエンドポイント)
    raging-lemur-a012afb4.contoso.build(スナップショット用) のように使える

    • ただ、こうしてドメインを分けると、ユーザー目線ではフィッシングに見える危険がずっと高くなる
      以前 githubnext.com からメールを受け取ったが、私は GitHub = github.com だと認識しているので、当然フィッシングかスパムだと思った
      後で本物のサービスだと分かった

    • 良いアプローチだ

  • 私も今まさに自分のドメインで同じ問題に直面している
    Google がうちの家族用 Immich インスタンスを危険なサイトだと判定して、同じドメインで提供していた他のすべてのサービスも Chrome からアクセスできなくなった
    警告を回避すること自体はできるが、義母に送った写真アルバムがまったく使えなくなってしまった

  • 私も今年初めに Umami Analytics をセルフホストしたとき、まったく同じ経験をした
    https://news.ycombinator.com/item?id=42779544#42783321
    Google Search Console に抗議する際に「法的措置」に言及したら、そこでようやくフラグが外れた