Skip to content

Saya Cek DMARC 4.437 Domain .id. 47% Domain go.id Masih Bisa Dipalsukan

Terbit Terakhir diperbarui 6 menit baca

Poin penting

  • Dari 4.437 domain .id yang dicek pada 25 Oktober 2026, 3.301 (74,4%) belum punya DMARC yang valid atau memakai p=none, sehingga namanya masih bisa dipalsukan.
  • go.id paling baik, tetapi 222 dari 469 domain (47,3%) tetap bisa dipalsukan; ac.id 84,2% dan sch.id 91,7%.
  • Sebanyak 135 domain go.id masih p=none, dan 97 di antaranya sudah menerima laporan rua.
  • Dari 929 domain tanpa MX, hanya 40 (4,3%) yang memasang SPF -all dan DMARC p=reject; 786 tidak punya keduanya.
  • MTA-STS dan TLS-RPT masing-masing hanya ada di 35 domain (0,8%), DNSSEC di 190 (4,3%).

Versi bahasa Inggris dengan metodologi lengkap: https://www.kielltampubolon.id/writing/i-checked-dmarc-on-4437-indonesian-id-domains/.

Di setiap pelatihan phishing, selalu ada yang bertanya: “Bagaimana membedakan email asli dari instansi dengan yang palsu?” Jawaban jujurnya: tergantung domainnya. Kalau pemilik domain sudah memasang DMARC dengan kebijakan reject, email palsu yang memakai nama domain itu persis di kolom From biasanya tidak akan sampai ke inbox. Kalau belum, email palsu itu bisa lolos.

Pada 25 Oktober 2026 saya mengecek 4.437 domain .id populer. Dari 469 domain go.id, 222 (47,3%) belum punya DMARC atau masih memakai p=none. Artinya, nama instansi tersebut masih bisa dipakai di email palsu, dan server penerima tidak diminta untuk memblokirnya.

Ringkasan untuk pimpinan

  • DMARC adalah satu record DNS yang memberi tahu Gmail, Outlook dan lainnya apa yang harus dilakukan terhadap email palsu atas nama domain Anda. Tanpa DMARC, atau dengan p=none, tidak ada yang diblokir.
  • Dari 4.437 domain .id, 3.301 (74,4%) masih bisa dipalsukan dengan cara ini.
  • go.id paling baik, tetapi tetap 47,3%. Kampus (ac.id) 84,2%, sekolah (sch.id) 91,7%.
  • Domain yang tidak dipakai untuk email juga perlu dilindungi. Dari 929 domain tanpa server email, hanya 40 yang sudah dikunci.

Kenapa ini penting

Phishing di Indonesia sering menumpang nama instansi resmi. Pada April 2024, Kemenkes memperingatkan email phishing yang mengatasnamakan SATUSEHAT. Pada 9 Juli 2026, DJP menegaskan bahwa email pengingatnya hanya dikirim dari @pajak.go.id. Imbauan “cek domain pengirim” hanya berguna kalau domain itu sendiri tidak bisa dipalsukan.

Google mewajibkan DMARC sejak 1 Februari 2024 untuk pengirim lebih dari 5.000 email per hari ke akun Gmail, dan Yahoo memberlakukan aturan serupa. Tetapi keduanya cukup dengan p=none. Jadi aturan itu menjaga email Anda tetap terkirim, bukan melindungi nama Anda dari pemalsuan.

Saya juga mencari panduan dari BSSN dan PANDI. Peraturan BSSN Nomor 4 Tahun 2021 tentang keamanan SPBE tidak menyebut SPF, DKIM, maupun DMARC, dan saya tidak menemukan dokumen BSSN atau PANDI lain yang membahasnya. Kalau ada, saya senang sekali kalau dikabari.

Cara pengukuran (singkat)

Sumbernya daftar Tranco GQ32K yang berisi 4.814 domain .id. Saya ambil semua domain go.id, ac.id, co.id, or.id, sch.id, web.id, my.id, biz.id dan .id langsung: 4.573 domain. Sebanyak 91 domain sudah tidak ada (NXDOMAIN) dan 45 gagal di DNS (SERVFAIL), jadi yang dianalisis 4.437 domain.

Skrip Python hanya mengirim query DNS ke 1.1.1.1 dan 8.8.8.8, maksimal 45 query per detik. Tidak ada koneksi langsung ke server domain yang dicek. Total 33.336 query dalam 813 detik.

Bisa dipalsukan berarti: tidak ada DMARC yang valid, atau p=none. p=none hanya meminta laporan, tidak meminta tindakan. SPF dengan ~all juga tidak cukup, karena SPF mengecek alamat pengirim tersembunyi (envelope), bukan alamat From yang dilihat orang, dan RFC 7208 menyatakan softfail sebaiknya tidak menjadi satu-satunya alasan penolakan.

Hasil per kategori

Grafik batang DMARC per kategori .id: go.id 47% bisa dipalsukan, co.id 59%, or.id 74%, .id 82%, ac.id 84%, sch.id 92%, biz.id 96%, web.id 97%, my.id 97%.

KategoriDianalisisTanpa DMARCp=nonequarantinerejectBisa dipalsukan
go.id4698713515691222 (47,3%)
co.id1.029341271217200612 (59,5%)
or.id5025129437 (74,0%)
.id1.6079573571691241.314 (81,8%)
ac.id9423184759752793 (84,2%)
sch.id133833974122 (91,7%)
biz.id231660122 (95,7%)
web.id7057111168 (97,1%)
my.id114882303111 (97,4%)
Total4.4371.9721.3296564803.301 (74,4%)

Tiga temuan

1. go.id sudah setengah jalan, lalu berhenti. 247 domain go.id (52,7%) sudah quarantine atau reject, terbaik di antara semua kategori. Tetapi 135 masih p=none, dan 97 di antaranya sudah menerima laporan rua. Laporan masuk, tetapi kebijakannya tidak pernah dinaikkan.

2. Kampus dan sekolah paling terbuka. ac.id punya 475 domain di p=none, separuh dari semua domain kampus yang dianalisis, dan 367 di antaranya sudah mengumpulkan laporan. Di sch.id, 83 dari 133 domain sekolah belum punya DMARC sama sekali.

3. Domain tanpa email paling mudah diperbaiki, tetapi paling jarang dikunci. Ada 929 domain tanpa MX. Hanya 40 (4,3%) yang memasang SPF -all dan DMARC p=reject sesuai praktik M3AAWG. Sebanyak 786 tidak punya SPF maupun DMARC. Di go.id ada 19 domain tanpa MX, dan tidak satu pun yang dikunci.

Kontrol lain masih langka: MTA-STS 35 domain (0,8%), TLS-RPT 35 (0,8%), DNSSEC 190 (4,3%).

Langkah perbaikan

Ganti contoh.go.id dengan domain Anda.

1. Mulai dengan monitoring dan laporan.

_dmarc.contoh.go.id.  TXT  "v=DMARC1; p=none; rua=mailto:laporan-dmarc@contoh.go.id"

Baca laporannya selama 2 sampai 4 minggu. Pastikan semua pengirim resmi lolos SPF atau DKIM: email dinas, SIAKAD, aplikasi layanan, LMS, aplikasi buletin. Perbaiki yang belum.

2. Naik ke quarantine.

_dmarc.contoh.go.id.  TXT  "v=DMARC1; p=quarantine; rua=mailto:laporan-dmarc@contoh.go.id"

Tag pct sudah dihapus di RFC 9989 (pengganti RFC 7489), jadi jangan mengandalkannya.

3. Reject.

_dmarc.contoh.go.id.  TXT  "v=DMARC1; p=reject; sp=reject; rua=mailto:laporan-dmarc@contoh.go.id"

Pastikan juga hanya ada satu record SPF, maksimal 10 lookup, dan diakhiri -all.

4. Domain yang tidak dipakai untuk email (domain aplikasi, domain event, domain lama):

contoh.go.id.         MX   0 .
contoh.go.id.         TXT  "v=spf1 -all"
_dmarc.contoh.go.id.  TXT  "v=DMARC1; p=reject; rua=mailto:laporan-dmarc@contoh.go.id"

Ini cukup lima menit dan tidak perlu uji coba, karena memang tidak ada email resmi yang bisa rusak.

5. MTA-STS dan TLS-RPT untuk email masuk:

_mta-sts.contoh.go.id.    TXT  "v=STSv1; id=20261025T000000"
_smtp._tls.contoh.go.id.  TXT  "v=TLSRPTv1; rua=mailto:laporan-tls@contoh.go.id"

Lalu sajikan file https://mta-sts.contoh.go.id/.well-known/mta-sts.txt berisi version: STSv1, mode: testing, mx: mail.contoh.go.id, max_age: 86400. Ubah ke enforce setelah laporan TLS bersih.

Batasan

  • Sampelnya domain .id paling populer menurut Tranco, jadi condong ke organisasi besar.
  • Yang dicek hanya domain utama, bukan subdomain. DKIM tidak diukur.
  • “Bisa dipalsukan” berarti pemilik domain belum meminta pemblokiran. Sebagian penerima tetap menyaring email palsu dengan filter mereka sendiri.
  • DMARC tidak mencegah domain tiruan (seperti kasus SATUSEHAT) atau akun email yang dibobol.
  • Satu waktu pengukuran: 25 Oktober 2026, dari Batam.

Saya hanya menerbitkan angka agregat, tidak ada hasil per domain.

Penutup

Perbaikannya hanya beberapa record TXT, bukan proyek besar. Untuk rekan-rekan admin di pemda, kampus dan sekolah: apa yang membuat domain Anda masih di p=none? Takut sistem lama rusak, tidak ada yang membaca laporan, atau tidak jelas siapa yang memegang DNS?

Baca juga: Let’s Encrypt Pindah ke 64 Hari. Saya Cek 520 Situs .id

Pertanyaan yang sering diajukan

Kebijakan DMARC apa yang sebaiknya dipakai domain go.id?
Mulai dari p=none dengan alamat rua, baca laporannya 2 sampai 4 minggu, lalu naik ke p=quarantine dan akhirnya p=reject. Record akhirnya: _dmarc.contoh.go.id. TXT "v=DMARC1; p=reject; sp=reject; rua=mailto:laporan-dmarc@contoh.go.id". Pastikan juga hanya ada satu record SPF, maksimal 10 lookup, dan diakhiri -all.
Bagaimana melindungi domain yang tidak dipakai untuk email?
Pasang null MX, SPF yang tidak mengizinkan siapa pun, dan DMARC reject: contoh.go.id. MX 0 . ; contoh.go.id. TXT "v=spf1 -all" ; _dmarc.contoh.go.id. TXT "v=DMARC1; p=reject; rua=mailto:laporan-dmarc@contoh.go.id". Cukup lima menit dan tidak perlu uji coba, karena tidak ada email resmi yang bisa rusak.
Kenapa p=none membuat domain tetap bisa dipalsukan?
p=none hanya meminta laporan, bukan tindakan. SPF dengan ~all juga tidak cukup, karena SPF mengecek alamat pengirim tersembunyi (envelope), bukan alamat From yang dilihat orang.
Apakah DMARC menghentikan semua phishing yang memakai nama instansi?
Tidak. DMARC mencegah pemalsuan domain yang persis sama, bukan domain tiruan atau akun email asli yang dibobol. Kasus SATUSEHAT memakai domain lain.
Bagikan Bagikan ke X Bagikan ke LinkedIn

About the author

Portrait of Kiell Tampubolon

Security Engineer & Technical Writer

Security engineer and technical writer based in Batam, Indonesia. I review and harden MCP servers and AI agents, build security automation, and write up what holds and what fails. I also train on DNS security as a PANDI .id Academy trainer.

All writing | RSS | Markdown