Lewati ke isi

Keamanan/Cyber Security

Cara Membaca Laporan DMARC dan Menemukan Pengirim Palsu

Panduan membaca laporan agregat DMARC (rua): arti setiap bagian XML, cara membedakan pengirim sah, salah konfigurasi, email forward, dan pemalsu domain.

Terbit 5 menit baca

Jawaban singkat

Laporan agregat DMARC berisi daftar IP yang mengirim atas nama domainmu, jumlah emailnya, dan hasil SPF serta DKIM. Kelompokkan baris per IP, cocokkan dengan layanan yang kamu pakai, lalu tandai IP tak dikenal yang gagal SPF dan DKIM sebagai kemungkinan pengirim palsu.

Daftar isi
  1. Laporan DMARC datang dari mana?
  2. Bagaimana membaca isi XML-nya?
  3. Membedakan sah, salah konfigurasi, forward, dan palsu
  4. Alat apa yang membantu membaca laporan?
  5. Pertanyaan yang sering diajukan

Laporan DMARC menunjukkan siapa saja yang mengirim email atas nama domainmu, dari IP mana, berapa banyak, dan apakah email itu lolos SPF dan DKIM. Dengan membaca laporan ini, kamu bisa menemukan layanan sah yang belum dikonfigurasi dengan benar sekaligus pihak asing yang memalsukan domainmu.

Kenapa ini penting? Tanpa membaca laporan, menaikkan DMARC ke p=quarantine atau p=reject sama dengan menebak. Kamu tidak tahu apakah sistem invoice atau layanan newsletter akan ikut terblokir. Laporan inilah dasar keputusan untuk menaikkan DMARC bertahap dari none ke reject.

Laporan DMARC datang dari mana?

Laporan dikirim oleh server penerima (misalnya Google, Microsoft, Yahoo, dan penyedia email lain) ke alamat yang kamu tulis di tag rua pada catatan DMARC:

v=DMARC1; p=none; rua=mailto:dmarc@domainmu.com

Ada dua jenis laporan:

  • Laporan agregat (rua): ringkasan harian dalam format XML, biasanya dikompres sebagai lampiran .gz atau .zip. Isinya statistik, bukan isi email. Ini laporan yang paling berguna dan dikirim oleh sebagian besar penerima besar.
  • Laporan kegagalan (ruf): salinan atau potongan email yang gagal, dikirim per kejadian. Banyak penerima besar tidak mengirimnya karena alasan privasi, jadi jangan bergantung pada jenis ini.

Kalau alamat rua berada di domain lain (misalnya layanan analisis DMARC), domain penerima laporan harus memasang catatan verifikasi domainmu.com._report._dmarc.domainpenerima.com berisi v=DMARC1. Tanpa catatan ini, penerima akan mengabaikan alamat tersebut. Penyedia layanan analisis biasanya sudah mengurusnya.

Bagaimana membaca isi XML-nya?

Setiap laporan agregat punya tiga bagian utama.

report_metadata berisi siapa pengirim laporan (org_name, misalnya google.com), nomor laporan, dan rentang waktu (date_range, dalam format Unix timestamp).

policy_published menunjukkan kebijakan DMARC domainmu seperti yang dibaca penerima saat itu. Berguna untuk memastikan perubahan DNS sudah terbaca.

record adalah intinya. Satu laporan bisa berisi banyak record, masing-masing untuk satu kombinasi IP pengirim dan hasil verifikasi. Contoh satu record:

<record>
  <row>
    <source_ip>198.51.100.23</source_ip>
    <count>42</count>
    <policy_evaluated>
      <disposition>none</disposition>
      <dkim>fail</dkim>
      <spf>fail</spf>
    </policy_evaluated>
  </row>
  <identifiers>
    <header_from>domainmu.com</header_from>
  </identifiers>
  <auth_results>
    <spf>
      <domain>domainmu.com</domain>
      <result>softfail</result>
    </spf>
  </auth_results>
</record>

Cara membacanya: ada 42 email dari IP 198.51.100.23 yang memakai domainmu.com di alamat From, dan semuanya gagal DMARC. Karena kebijakan masih p=none, disposition bernilai none, artinya email tetap dikirim.

Perbedaan penting yang sering membingungkan:

  • policy_evaluated berisi hasil DMARC, yaitu apakah SPF atau DKIM lolos dan selaras dengan domain From.
  • auth_results berisi hasil mentah SPF dan DKIM beserta domain yang diperiksa.

Jadi bisa saja auth_results menunjukkan DKIM pass, tetapi policy_evaluated menunjukkan dkim fail. Artinya email ditandatangani dengan benar, tapi oleh domain lain (misalnya domain milik layanan email marketing), bukan domainmu. Email lolos DMARC bila minimal salah satu, SPF atau DKIM, bernilai pass di policy_evaluated.

Membedakan sah, salah konfigurasi, forward, dan palsu

Langkah praktisnya: kelompokkan record per IP, lalu cari tahu milik siapa IP itu. Gunakan reverse DNS (dig -x 198.51.100.23 +short) dan informasi pemilik jaringan dari whois. Nama host seperti milik Google, Microsoft, atau layanan email marketing yang kamu pakai memudahkan identifikasi.

Pola di laporanKemungkinanTindakan
IP layanan yang kamu pakai, SPF dan DKIM selaras passPengirim sah, konfigurasi benarTidak perlu tindakan
IP layanan yang kamu pakai, DKIM mentah pass tapi domainnya milik layananPengirim sah, DKIM belum memakai domainmuAktifkan DKIM dengan domain sendiri di layanan tersebut
IP layanan yang kamu pakai, SPF failIP belum ada di catatan SPFTambahkan include atau IP layanan ke SPF
IP server email lain (mailing list, penerusan), DKIM selaras pass, SPF failEmail diteruskan (forward)Wajar, DKIM yang menyelamatkan
IP tak dikenal, SPF dan DKIM sama-sama fail, sering dari banyak negaraKemungkinan besar pemalsuan domainLanjutkan ke p=quarantine lalu p=reject setelah pengirim sah beres

Pemalsu biasanya terlihat dari pola: volume kecil tapi tersebar di banyak IP, reverse DNS kosong atau mengarah ke jaringan rumahan dan hosting acak, serta gagal SPF dan DKIM sekaligus. Kalau polanya jelas, itu tanda domainmu sedang dipakai untuk phishing. Edukasi tim dan pelanggan dengan materi seperti cara mengenali phishing, sambil mempercepat penerapan kebijakan yang lebih ketat. Kalau IP pengirim sahmu sendiri ternyata bermasalah di daftar hitam, cek juga reputasi domain dan IP pengirim.

Alat apa yang membantu membaca laporan?

Membuka file XML satu per satu cepat melelahkan, apalagi bila laporan datang dari banyak penerima setiap hari. Beberapa pilihan:

  • parsedmarc: alat open source yang membaca laporan dari kotak masuk (IMAP) atau folder, lalu mengubahnya ke CSV atau JSON dan bisa dikirim ke Elasticsearch atau OpenSearch untuk divisualisasikan.
  • Layanan analisis DMARC: banyak penyedia menawarkan dashboard yang mengelompokkan sumber pengirim secara otomatis, dengan paket gratis untuk volume kecil.
  • Spreadsheet: untuk domain kecil, cukup ekstrak file, buka XML-nya, lalu salin kolom source_ip, count, dkim, dan spf ke spreadsheet.

Apa pun alatnya, buat alamat email khusus untuk laporan (misalnya dmarc@domainmu.com) agar tidak membanjiri kotak masuk pribadi.

Pertanyaan yang sering diajukan

Kenapa saya tidak menerima laporan DMARC sama sekali?

Cek catatan DMARC dengan dig TXT _dmarc.domainmu.com dan pastikan tag rua tertulis benar. Bila alamat rua ada di domain lain, pastikan catatan verifikasi _report._dmarc sudah dipasang. Laporan biasanya baru datang sehari setelah ada email yang terkirim.

Apakah laporan DMARC berisi isi email?

Laporan agregat tidak. Isinya hanya statistik: IP, jumlah email, hasil SPF dan DKIM, serta domain yang dipakai. Isi email hanya mungkin ada di laporan kegagalan (ruf), yang jarang dikirim penerima besar.

Ada IP pemalsu, bisakah saya memblokirnya?

Kamu tidak bisa memblokir IP di server penerima milik orang lain. Yang bisa dilakukan adalah menaikkan kebijakan DMARC ke quarantine atau reject, sehingga penerima sendiri yang menolak email palsu itu.

Sumber & referensi

Baca juga