1 poin oleh GN⁺ 2025-10-23 | 1 komentar | Bagikan ke WhatsApp
  • Baru-baru ini, semua situs terkait Immich menerima peringatan berbahaya akibat layanan Google Safe Browsing
  • Seluruh domain immich.cloud terdampak, sehingga akses praktis terblokir di sebagian besar browser
  • Penyebabnya adalah URL deployment internal seperti lingkungan Preview yang ter-crawl secara otomatis lalu diperlakukan sebagai positif palsu
  • Mereka sempat memulihkannya dalam jangka pendek melalui pengajuan banding di Google Search Console, tetapi masalah terus berulang setiap kali Preview baru dibuat
  • Ini merupakan masalah struktural karena sifat layanan open-source·self-hosting, dan ke depannya lingkungan Preview akan dipisahkan ke domain terpisah

Insiden Google menandai situs Immich sebagai situs berbahaya

20 Oktober 2025
Oleh Jason Rasmussen

Ringkasan

  • Pada awal bulan ini, semua situs web *.immich.cloud diklasifikasikan sebagai situs berbahaya, dan pengguna melihat layar peringatan keamanan di browser (yang dijuluki "red-screen-of-death")
  • Tidak ada seorang pun di tim yang benar-benar memahami cara kerja fitur browser ini, tetapi kini pengetahuan itu telah masuk ke daftar 'cursed knowledge'

Latar belakang

  • Google menyediakan layanan Safe Browsing secara gratis, yang bertujuan menilai apakah suatu situs mengandung malware, perangkat lunak yang tidak diinginkan, atau penipuan rekayasa sosial
  • Browser utama seperti Chrome dan Firefox terintegrasi dengan layanan tersebut
  • Cara sebenarnya layanan ini menentukan suatu risiko tidaklah jelas
  • Jika sebuah situs diklasifikasikan sebagai berbahaya, sebagian besar pengguna menjadi tidak bisa menggunakan situs tersebut
  • Hanya segelintir pengguna yang dapat masuk melalui tautan 'Lihat detail' dan 'Kunjungi situs aman'

Menyadari situasi pemblokiran

  • Pada awal bulan ini, banyak situs di domain immich.cloud ditandai sebagai "berbahaya", dan ada keluhan dari pengguna bahwa instance Immich self-hosted mereka juga ikut ditandai
  • Semua situs internal yang digunakan secara internal, seperti lingkungan Preview, juga memunculkan peringatan
  • Ini menyebabkan ketidaknyamanan berkelanjutan karena setiap kali harus melewati proses "lihat situs aman"

Penanganan melalui Google Search Console

  • Karena peringatannya tidak dicabut bahkan setelah beberapa hari, mereka memutuskan menggunakan jalur respons resmi, yaitu Google Search Console

  • Layanan ini mengharuskan pembuatan akun Google, penggunaan Search Console, dan pengajuan permintaan peninjauan untuk situs yang ditandai

  • Search Console memberikan sebagian penjelasan mengenai alasan penandaan berbahaya

    • "Google mendeteksi konten berbahaya di beberapa halaman situs Anda"
    • "Halaman-halaman ini memiliki elemen berisiko seperti mendorong pemasangan perangkat lunak yang tidak diinginkan atau mengekspos informasi pribadi"
  • Saat memeriksa daftar lengkap URL yang ditunjuk sebagai masalah, semuanya adalah URL terkait lingkungan Preview

  • Hal yang paling mengejutkan adalah jika hanya satu subdomain saja ditandai, seluruh domain ikut dianggap bermasalah

Dampak

  • Lingkungan Preview dan layanan internal (zitadel, outline, grafana, victoria metrics, dll.) semuanya terdampak
  • Server tile production (tiles.immich.cloud) juga termasuk sasaran
  • Namun, karena server tile dipanggil melalui JavaScript dan tidak memiliki antarmuka pengguna langsung, dipastikan masih berfungsi normal

Upaya "menyelesaikan" masalah

  • Di Google Search Console, mereka perlu menggunakan fitur Request Review untuk mengajukan banding dan menjelaskan penyelesaiannya
  • Jika hanya meminta peninjauan tanpa benar-benar menyelesaikan masalah, waktu peninjauan akan menjadi lebih lama

Permintaan pemulihan situs berbahaya


  • Karena mereka menilai sebenarnya tidak ada masalah substantif, penjelasan respons berikut dikirimkan

    • Immich adalah aplikasi untuk self-hosting, dan tim Immich (https://immich.app/) secara langsung mengelola dan mengoperasikan seluruh domain terkait
    • Semua situs yang ditandai hanyalah lingkungan deployment resmi mereka sendiri, dan tidak menyamar sebagai pihak lain
  • Dalam 1–2 hari, domain tersebut kembali dinilai normal dan akses dipulihkan

Upaya meminimalkan masalah

  • Jika label preview ditambahkan ke GitHub Pull Request, lingkungan Immich Preview akan dibuat secara otomatis, dan segera setelah dibuat akan muncul URL Preview beserta komentar verifikasi identitas

    https://pr-<num>.preview.internal.immich.cloud/
    
  • Setiap kali lingkungan Preview baru dibuat, domain immich.cloud kembali menerima penilaian sebagai situs berbahaya

  • Diduga Google menemukan, menjelajahi, lalu menandai URL baru itu sebagai berbahaya saat melakukan crawling terhadap GitHub

  • Solusi yang sedang dipersiapkan saat ini adalah memisahkan lingkungan Preview ke domain khusus terpisah (immich.build)

Masalah yang lebih besar

  • Sistem Google Safe Browsing tampaknya dirancang tanpa mempertimbangkan karakteristik perangkat lunak open-source dan self-hosting
  • Selain Immich, banyak proyek populer lain juga mengalami masalah serupa
  • Google dapat memblokir domain mana pun secara sepihak, dan dalam situasi ini praktis tidak ada cara lain selain terus-menerus meminta peninjauan ke Google

Salam,
Tim Immich

1 komentar

 
GN⁺ 2025-10-23
Komentar Hacker News
  • Jika Anda berencana meng-host konten pengguna di subdomain, situs harus didaftarkan ke Public Suffix List https://publicsuffix.org/list/
    Dengan begitu, subdomain yang terkontaminasi tidak akan memengaruhi seluruh situs

    • Di kalangan pengembang web, ini semacam pengetahuan implisit bahwa jika Anda meng-host konten buatan pengguna, Anda wajib ada di PSL
      Sulit mengetahui hal seperti ini kalau belum pernah mengalaminya lebih dulu, jadi kebanyakan orang memang tidak tahu sampai benar-benar menghadapinya

    • Dulu browser memakai algoritme yang hanya mencegah penyetelan cookie secara luas jika domain tidak memiliki titik sama sekali (mis. .com, .org)
      Tetapi pada domain sublevel seperti .co.uk, muncul masalah cookie yang bocor ke semua domain terdaftar di bawahnya
      Karena kebijakan pendaftaran tiap top-level domain berbeda-beda, tidak ada cara untuk menyelesaikannya dari sisi pengembangan, sehingga akhirnya muncullah pendekatan pemeliharaan daftar manual seperti Public Suffix List
      Melihat browser memang punya keterbatasan bawaan seperti ini, web terasa seperti mobil yang dibuat dengan lakban https://publicsuffix.org/learn/

    • Dari berbagai tautan di postingan ini, tampaknya sebenarnya ada dua masalah

  1. Jika Anda mengunggah konten pengguna ke domain sendiri seperti Immich, ada persoalan mendaftarkannya ke public suffix list
  2. Saat pengguna meng-host proyek open source seperti immich atau jellyfin di domain mereka sendiri, itu bisa disalahartikan sebagai phishing
    Yang pertama relatif mudah jika Anda tahu soal PSL, tetapi yang kedua lebih merepotkan, terutama jika nama domain memuat nama perangkat lunaknya
  • Masalahnya bukan pada konten pengguna itu sendiri, melainkan saya mengunggah release build Immich langsung ke server saya dan Google memblokir seluruh domain saya

  • Ini bukan karena Immich benar-benar meng-host konten pengguna, melainkan masalah itu terjadi pada subdomain untuk PR preview
    Menurut saya ini jelas masalah pada kode Google

  • Saya merekomendasikan untuk melihat seluruh daftar ‘Cursed Knowledge’ milik tim Immich https://immich.app/cursed-knowledge

    • Sebagian isi daftar itu justru terasa seperti desain keamanan yang wajar
      Misalnya, ‘beberapa ponsel secara otomatis menghapus informasi GPS saat aplikasi tanpa izin lokasi membaca gambar’
      Itu justru terasa seperti perilaku yang alami dan diinginkan

    • Akan bagus jika pengetahuan praktis semacam ini bisa dibagikan per proyek lewat file standar seperti CURSED.md
      Dengan begitu semua orang bisa belajar dari beragam pengetahuan yang diperoleh di lapangan

    • ‘Parameter query Postgres dibatasi sampai 65.000’
      Lucu juga bahwa jumlah sebanyak itu masih terasa kurang

  • Ada hal yang selalu saya penasaran dari pesan peringatan seperti ini
    Mereka secara langsung memberi label ‘penipu’ atau ‘penyerang’; apakah itu tidak termasuk pencemaran nama baik
    Peringatan untuk executable yang belum diverifikasi dari Microsoft juga sama
    Dulu bunyinya seperti ‘kami tidak tahu apakah ini aman’, tetapi sekarang tampilannya lebih seperti ‘Anda adalah penyerang’

    • Kata ‘penipu’ sebenarnya tidak dipakai di peringatannya; yang dipakai adalah kalimat seperti ‘penyerang mungkin ada di situs ini’, ‘might’ atau ‘mungkin’
      Itu juga mencakup kasus ketika peretas pihak ketiga telah menyusup
      Itu bukan menuduh pemilik situs sebagai penyerang
      Tim legal pasti meninjau redaksinya dengan sangat hati-hati

    • Saya bukan pengacara, tetapi setahu saya belum pernah ada kasus seperti ini yang sampai ke pengadilan
      Mungkin saja itu bisa dianggap pencemaran nama baik

  • Mungkin ini sebenarnya bukan masalah besar, tetapi saya penasaran apakah pada layanan seperti Immich siapa pun bisa mengirim PR, lalu jika hanya diberi tag preview maka isinya pasti di-host di https://pr-<num>.preview.internal.immich.cloud
    Kalau begitu, bukankah pada akhirnya siapa pun bisa mengunggah apa saja dengan bebas?

    • Di GitHub, orang yang bisa menambahkan label dibatasi pada kolaborator, jadi ini tidak sepenuhnya terbuka
      Meski begitu, jika seorang kolaborator bisa lebih dulu mengirim PR yang normal, lalu setelah mendapat label bisa mengunggah apa pun, tetap ada faktor risiko

    • Kedengarannya seperti ide phishing yang benar-benar gratis

  • Sulit dipercaya bahwa satu perusahaan bisa sampai menentukan situs apa yang boleh diakses
    Membatasi eksekusi aplikasi saja belum cukup, sekarang sudah sampai level ini

    • Ini akibat Kongres AS yang telah lama berjalan tidak efisien, dan dampaknya merembet ke banyak masalah

    • Saya heran bagaimana mereka bisa membuat bahkan pengguna yang membenci iklan tetap menganggap perusahaan besar seperti ini ‘keren’
      Tidak ada yang menginginkan iklan, tetapi bagi perusahaan itu adalah alat untuk menghasilkan uang
      Saya tidak paham bagaimana Google bisa membungkus citra perusahaan yang tidak etis seperti ini seolah justru ‘keren’

  • Saya merasa internet terbuka sudah berakhir
    Sekarang semuanya dikuasai para monopoli
    Saya menaruh aplikasi iOS di App Store selama 3 tahun, lalu tiba-tiba Apple meminta lisensi baru yang sebenarnya tidak ada, dan mengatakan aplikasi akan diturunkan jika saya tidak menyediakannya
    Padahal selama 3 tahun itu tidak ada yang berubah
    Saya makin muak karena sekarang bahkan self-hosting pun terasa tidak bisa dilakukan dengan bebas

    • Akan sangat membantu jika Anda bisa menjelaskan lebih detail soal aplikasi iOS dan masalah persyaratan dari Apple itu
  • Teman saya yang juga klien saya pernah memakai hosting berbasis WordPress dan redirect sederhana
    Tiba-tiba host itu masuk blacklist ‘situs berbahaya’
    Bahkan setelah redirect dihapus, domain miliknya sendiri tetap ikut tercemar, dan akibatnya Google sama sekali tidak menerima email dari domain itu
    Memang akhirnya blacklistnya dicabut lewat permintaan peninjauan, tetapi efek pemblokiran emailnya tetap permanen
    Akhirnya dia mendaftarkan domain baru; tindakan Google seperti ini justru hanya memberi insentif untuk terus membuat akun sekali pakai

    • Mendengar cerita seperti ini terasa menakutkan
      Membayangkan domain saya yang sudah saya pakai dengan baik selama 25 tahun tiba-tiba masuk blacklist karena kesalahan lalu emailnya ikut diblokir terasa mengerikan
  • Kesimpulan saya adalah lebih baik memisahkan domain berdasarkan kegunaannya
    Memang ada kelemahannya karena berbagai TLD di seluruh dunia bisa terlihat seolah layanan resmi, tetapi kasus ini membuat saya makin yakin
    Contohnya
    www.contoso.com (publik)
    www.contoso.blog (publik, dengan komentar pengguna)
    contoso.net (internal)
    staging.contoso.dev (pengembangan/endpoint zero-trust)
    raging-lemur-a012afb4.contoso.build (untuk snapshot)

    • Namun jika domain dipisahkan seperti itu, dari sudut pandang pengguna justru risikonya terlihat jauh lebih mirip phishing
      Saya pernah menerima email dari ‘githubnext.com’, dan karena saya tahunya Github = github.com, saya tentu menganggap itu phishing atau spam
      Ternyata itu layanan yang asli

    • Pendekatan yang bagus

  • Saya juga sedang mengalami masalah yang sama dengan domain saya sekarang
    Google menilai instance Immich keluarga kami sebagai situs berbahaya, sehingga semua layanan lain yang disajikan dari domain yang sama juga tidak bisa diakses di Chrome
    Memang peringatannya bisa dilewati, tetapi album foto yang saya kirimkan ke ibu mertua saya jadi sama sekali tidak bisa dipakai

  • Saya mengalami hal yang persis sama awal tahun ini saat self-hosting Umami Analytics
    https://news.ycombinator.com/item?id=42779544#42783321
    Saat mengajukan keberatan ke Google Search Console, barulah flag itu dicabut setelah saya menyebut ‘tindakan hukum’