Phantom (Penjaga Laman)

Verifikasi Kanal Resmi dan Mitigasi Phishing Proaktif Berbasis Agentic AI Hackathon INCEPTION 2026 — Subtema 5: Smart Public Services and Digital Trust

Inspiration

Indonesia Anti-Scam Centre (IASC) menerima 702.342 laporan penipuan sejak Nov 2024, dengan kerugian Rp9,1 triliun dari 432.637 laporan (per Jan 2026). Phishing naik 27% year-over-year (IDADX: 2.470 → 3.138 laporan/kuartal). Akar masalahnya bukan deteksi yang lambat — dana korban berpindah tangan dalam kurang dari 1 jam, sementara 80% korban baru melapor lebih dari 12 jam setelah kejadian. Hanya 4,8% dari total kerugian yang berhasil diselamatkan.

Alat yang ada sekarang semuanya reaktif: ekstensi keamanan tradisional menunggu laporan komunitas, pemindai web (gaya VirusTotal) butuh copy-paste manual dan tidak mencegah pengiriman form, solusi enterprise (Microsoft Defender, Proofpoint) tidak terjangkau untuk UMKM dan lansia yang justru paling sering jadi target rekayasa sosial. Kami ingin perangkat yang berdiri di depan momen submit kredensial, bukan sesudahnya.

What it does

Phantom memeriksa keaslian sebuah laman sebelum pengguna mengetik sandi, OTP, atau PIN, lewat dua pintu masuk yang berbagi satu mesin inti (@phantom/core):

  • Ekstensi (Chrome/Edge, Manifest V3): memantau DOM dan form secara real-time. Overlay Shadow DOM menampilkan status berkode warna (official / neutral / caution / danger), menahan pengiriman form yang mencurigakan (soft gate), dan punya Transparency Panel yang membuka jejak penalaran di balik status tersebut.
  • Web Cek (PWA): pengguna paste URL atau teks pesan WhatsApp/SMS mentah untuk dicek tanpa instalasi apa pun.

Di baliknya, verifikasi berjalan berjenjang L0–L4:

Layer Fungsi Lokasi
L0 Cocokkan domain ke whitelist merek resmi terverifikasi Lokal
L1 Analisis struktur URL — typosquatting, homoglyph, Public Suffix List Lokal
L2 Analisis DOM — field password/PIN, mismatch domain target form Lokal
L3 Umur & registrasi domain via RDAP Jaringan
L4 Agen Gemini (fallback Groq) menyelidiki kasus zona abu-abu dengan tools (search_text, get_form_target, domain_age, unroll_redirects, dll.) Cloudflare Worker

Hasil L0–L2 menetapkan hard score floor: agen AI di L4 tidak bisa menurunkan tingkat risiko di bawah bukti keras yang sudah ditemukan secara lokal, jadi halaman tidak bisa "membujuk" AI lewat prompt injection untuk mengaku aman.

How we built it

Monorepo npm workspaces dengan packages/core sebagai satu-satunya sumber logika verifikasi (schema Zod, L0–L2, kontrak AnalyzeRequest/AnalyzeResponse), dipakai bersama oleh:

  • apps/extension — WXT + React, content script dengan Shadow DOM, popup, dan toggle consent untuk deep check (L3/L4).
  • apps/proxy — Cloudflare Worker (Hono) yang menjalankan L3 (RDAP) dan L4 (agent loop Gemini → fallback Groq), dengan KV cache untuk URL yang sudah pernah dianalisis, rate limiting, dan validasi Zod di setiap boundary.
  • apps/web-cek — PWA untuk akses tanpa instalasi.

Urutan kerja: kunci kontrak dulu (schema, status 4-tingkat tanpa "aman" biner, aturan runtime-agnostic core tanpa DOM) di .agents/docs/, baru naik dari L0 ke L4 supaya setiap layer baru tidak melanggar layer sebelumnya.

Challenges we ran into

  • Menjaga L4 tidak bisa dikelabui. Agen dengan tools terlihat impresif untuk demo, tapi tanpa hard score floor dari L0–L2 ia rentan prompt injection dari halaman yang sedang ia periksa sendiri. Floor itu harus ditegakkan di proxy, bukan dipercayakan ke prompt.
  • Memvalidasi semua output tools sebagai untrusted input. Setiap balasan tool (domain_age, list_external_resources, dst.) divalidasi ulang dengan schema Zod sebelum dikirim balik ke LLM — satu field cacat bisa merusak giliran agent selanjutnya.
  • Memisahkan core dari DOM. packages/core harus jalan identik di service worker ekstensi maupun di Cloudflare Worker tanpa akses DOM, jadi ekstraksi fitur DOM (extractFeatures) harus terjadi di luar core dan masuk sebagai data terstruktur.
  • Fallback LLM yang tidak membocorkan privasi. Rantai Gemini → Groq (llm/chain.ts) harus tetap menghormati aturan stripping data sensitif di kedua provider, bukan hanya yang utama.

Accomplishments that we're proud of

  • Seluruh pipeline L0–L4 benar-benar jalan end-to-end: whitelist lokal, deteksi DOM, RDAP, sampai agent loop Gemini/Groq dengan cache KV — bukan hanya L0 sebagai proof of concept.
  • Hard score floor yang nyata mencegah manipulasi AI, diuji lewat kasus prompt injection, bukan cuma didokumentasikan sebagai niat.
  • Shadow DOM isolation dan Transparency Panel membuat keputusan AI bisa diperiksa pengguna awam, bukan kotak hitam.

What we learned

Verifikasi berjenjang jauh lebih murah dan lebih bisa dipercaya ketika layer lokal (L0–L2) ditegakkan sebagai source of truth yang keras, dan AI generatif hanya dipanggil untuk kasus ambigu dengan guardrail skor minimum yang tidak bisa ia turunkan sendiri. Itu juga satu-satunya cara realistis menjaga agen AI tidak termanipulasi oleh halaman yang sedang ia analisis sendiri.

What's next for Phantom

  • Menyelesaikan apps/web-cek (masih template Vite default) dengan UI Web Cek dan Message Parser sesuai Design System.
  • SERP Guard (indikator di hasil pencarian Google/Bing), Visual Hash Matching (pHash favicon/logo), bot verifikasi WhatsApp/Telegram.
  • Aplikasi Android sebagai link interceptor tingkat OS.
  • Kemitraan data resmi dengan BSSN, OJK, dan Komdigi untuk sinkronisasi basis data merek.

Built With

Share this project:

Updates

Submission history