Mail Başlığı Analizi (E-Mail Header Analysis)

Furkan Şeker
7 min readJul 9, 2023

--

Mail header analizleri, zararlı yani spam niteliği taşıyan e-posta’ların analizi konusunda oldukça önemli bir noktada yer almaktadır. Bu yazımızda, bir e-postanın örnek olarak nasıl analiz edilebileceği, nelere dikkat edilmesi gerektiği gibi konulara değineceğiz. Fakat analiz edeceğimiz e-posta, zararlı (spam) bir e-posta değildir. Bu bağlamda zararlı e-postalar, sandbox ortamlarında incelenmelidir.

Bu yazıda örnek bir e-posta kullanılarak bakış açısı kazandırmak için bir analiz süreci ele alınmıştır. Hazırsanız başlayalım.

İlk olarak e-posta incelenirken, genel olarak gözden geçirilmesi gerekmektedir. İçerisinde herhangi bir url, dosya eki varsa bunlar sanal makine içerisine test edilmelidir.

Şekil 1- Analiz edilebilecek örnek bir mail

Ayrıca bu noktada sandbox ortamında analiz yapılıyorsa;

  • URL kontrolü, içerisinde bir ek varsa hash kontrolü,gönderici mailin kontrolü, kısaca bu tür durumlar için OSINT toollarından faydalanılabilir.

Kullanılabilecek toollara örnekler ise aşağıdaki gibidir;

  • Virustotal
  • Urlscan
  • Haveibeenpwned,
  • Whois domaintools
  • URL Void
  • Criminal IP
  • Sucuri SiteCheck
  • PhishTank
  • ScanURL
  • Email veritas
  • Norton Safe Web

E-posta header ve body kısmının analizi için .eml formatında aşağıdaki gibi e-posta indirilerek analize başlanılır.

Şekil 2- .eml foratında görüntüleme ve indirme

Bu noktada iletinin orijinal mesajı karşınıza çıkacaktır. E-posta içeriği .eml formatında indirebilirsiniz veya direkt içerik kopyalamayla header analizi için bir e-posta header analiz aracına yapıştırarak analize devam edebilirsiniz.

Şekil 3- E-posta içeriği analiz seçenekleri
Şekil 4- E-posta içeriği analiz seçenekleri

Bu noktada E-mail analizi konusunda aşağıdaki durumların incelenmesi birçok tool bulunmaktadır ve bunlar aşağıdaki gibidir:

  • G Suite Toolbox Messageheader
  • Mx Toolbox
  • Mailheader.org
  • Gaijin
  • What Is My IP
  • WintelGuy
  • MailAuth Analyzer

Biz bu noktada daha detaylı bilgi alabilmek açısından MxToolBox toolunu kullanacağız.

Genel E-posta Raporu Detayları:

https://mxtoolbox.com/Public/Tools/EmailHeaders.aspx?huid=342b439a-2718-40bc-92b8-afa29d579606

İlgili e-posta üzerinde incelenecek alanlar ise aşağıdaki gibidir:

SPF, DKIM, DMARC, SCL & BCL score

Şekiil 5- MxToolBox ile analiz

Analiz sonuçlarını yorumlamak gerekirse, SPF Alignment, SPF Authenticated, DKIM Alignment, ve DKIM Authenticated yani hepsinin PASS durumda olduğunu görebilirsiniz. Ayrıca bir blacklist durumu olduğunu da çıktı sonuçlarından gözlemleyebilirsiniz.

Yukarıda belirtilen kavramların açıklaması ise aşağıdaki gibidir:

Original Message: Mesaj Kimliği değeri (ID) ile ‘Gönderen’ value değeri arasında fark bulunuyorsa, bu bir spoofing durumunun işaretidir.

SPF Alignment (SPF Uyumu): SPF Alignment, yalnızca ‘Return-Path’ ve ‘From’ domain alanları aynıysa PASS (kabul) yanıtını döndürür. Farklı ise FAİL (geçersiz) yani ilgili e-postanın spoofing olduğunu belirtir.

SPF Authentication (SPF Doğrulaması): SPF doğrulaması FAIL olduğunda, gönderen IP’sinin legit (yasal) domainine e-posta göndermek için yetkilendirilmediği sonucu çıkarılabilir.

DKIM Alignment (DKIM Uyumu): DKIM Signature alanını mailin [d=domain.com] “From” alanı ile karşılaştırılır. Bir eşleşme durumu olmuyorsa, DKIM Alignment’i FAIL olarak işaretler.

DKIM Authentication (DKIM Doğrulaması): DKIM Signature alanı [b=……..] doğrulanmamış ise, gelen e-postanın manipüle edilmiş olabileceği sonucu çıkarılabilir.

Diğer bir bölüme geçmeden önce, SPF,DKIM ve DMARC kavramlarını açıklamak gerekmektedir. Açıklamaları aşağıdaki gibidir.

SPF (Sender Policy Framework/Gönderen Politika Çerçevesi) kavramını kısaca açıklamak gerekirse, bir domain tarafından gönderilen e-posta’nın, iletileceği tüm sunucuların bilgilerinin listelenmesinde kullanılır.

Şekil 6- SPF Detayları

SPF Record, genellikle aşağıdaki gibi görünür:

v=spf1 include:mktomail.com ~all

Burada “v=spf1” SPF sürümünü belirtir. “include:mktomail.com” ile mktomail.com domainindeki SPF Record’a başvurulduğunu ifade eder. “~all” ise, SPF politikasının geçerli olmadığı durumlarda “hafif şekilde geçerli” olarak işaretlenmesini sağlar.

SPF, “soft” ve “hard” fail’ler arasında bir ayrım yapar. Header’de “~all” yazmak, unauthorized (yetkisiz) bir gönderici ile karşılaşıldığında soft fail durumunu ifade eder. “~all” ise alıcı sunucuya hard bir fail’in uygulamasını sağlar.

Yani harf bir fail durum senaryosunda e-posta tamamen reddedilecektir. Soft fail’de ise, e-postanın alıcının istenmeyen posta klasörüne iletilebilmesine olana sağlar.

Günümüzde ise yaygın olarak kullanılan DMARC ile genellikle ~all (soft fail) kullanılması önerilmektedir. Bu, yasal bir e-posta için FP durumların önlenmesini sağlar. DMARC’ a daha fazla kontrol sağlar ve sonraki doğrulama aşamalarında debug(hata ayıklama) işleminde yardımcı olma imkanı sağlar.

Şekil 7- DMARC Detayları

Domain-based Message Authentication Reporting and Conformance (DMARC), SPF ve DKIM doğrulamalarının sonuçlarına dayanarak alıcı e-posta sunucusuna ne yapması gerektiğini söyler. Bir alanın DMARC politikası çeşitli şekillerde belirlenebilir. DMARC politikası, e-posta sunucularına SPF veya DKIM doğrulaması başarısız olan e-postaları karantinaya almasını, reddetmesini veya teslim etmesini talimat verebilir.

DMARC DNS Record’u, incelediğimiz e-posta üzerinden gösterecek olursak genellikle aşağıdaki gibi görünür:

v=DMARC1; p=none; fo=1; rua=mailto:rua+barracuda.com@dmarc.barracudanetworks.com; ruf=mailto:ruf+barracuda.com@dmarc.barracudanetworks.com

Bu örnekteki DMARC Record şu şekildedir:

v=DMARC1: Bu, DMARC sürümünü gösterir.

p=none: Bu, DMARC politikasının “none” olarak ayarlandığını ifade eder. “none” politikası, e-postaların SPF veya DKIM doğrulaması sonuçlarına göre işlenmesini gerektirmez, yani DMARC doğrulaması zorunlu tutulmaz.

fo=1: Bu, DMARC raporlarının “1” formatında istendiğini belirtir. Bu format, XML olarak raporların alınacağını ifade eder.

rua=mailto:rua+barracuda.com@dmarc.barracudanetworks.com: Bu, DMARC raporlarının gönderileceği e-posta adresini belirtir. Raporlar, “rua+barracuda.com@dmarc.barracudanetworks.com” adresine gönderilecektir.

ruf=mailto:ruf+barracuda.com@dmarc.barracudanetworks.com: Bu, DMARC hatalarının bildirileceği e-posta adresini belirtir. Hatalar, “ruf+barracuda.com@dmarc.barracudanetworks.com” adresine gönderilecektir.

SPF ve DKIM’ den ziyade DMARC, bir e-posta sunucusunun uygun kimlik doğrulaması olmadan bir ileti aldığında ne olacağını belirtmek için alan adı sahiplerine bir yol sağlar. Aşağıdaki gibi desteklediği üç işlem bulunmaktadır:

  • none: Sunucu, iletiyi teslim etmeye devam edebilir.
  • quarantine: İletiyi spam klasörüne gönderir.
  • reject: İletiyi reddeder ve geri gönderir.

DMARC ayrıca bir raporlama mekanizması sağlar. Domaininizden geldiğini iddia eden bir e-posta aldıklarında, alıcı e-posta sunucularının çağıracağı bir sunucu endpoint belirtebilirsiniz. Bu, domaininizi gönderen sunucuların internet üzerindeki genel görünümünü size sağlar ve yorumlayabilmenizi sağlar.

DomainKeys Identified Mail (DKIM), domain sahiplerinin e-postalarını otomatik olarak imzalamalarını sağlar. Bir DKIM “imzası” e-postanın gerçek domaininden geldiğini matematiksel olarak doğrulamak için kriptografi kullanan dijital bir imzadır.

Şekil 8- DKIM Detayları

Not:

  1. E-postalarda spam güven seviyesini (SCL) belirlemek için posta akışı kurallarını kullanabilirsiniz.
  2. Toplu şikayet seviyesini (BCL) ise kötü niyetli toplu e-postaları belirlenmesinde kullanabilirsiniz. Daha yüksek bir BCL, bir toplu e-posta mesajının şikayetlere yol açma olasılığının daha yüksek olduğunu (spam risk fazla) gösterir.

İncelediğimiz e-posta’nın yukarıda parça parça açıkladığımız gibi genel görünümü aşağıdaki gibidir:

Şekil 9- SPF ve DKIM Bilgileri
Şekil 10- Header Detayları

Analizlerde dikkat edilmesi gereken kırmızı işaretli alanların açıklamaları ise aşağıdaki gibidir.

E-postayı Ayrıştırma:

E-postanın hangi kaynaktan geldiğini doğru bir şekilde anlayabilmek için mesaj başlıklarını en baştan sona doğru okumak önemli olacaktır.

X-priority: X-priority, e-postanın önceliğinin belirlenmesinde kullanılan isteğe bağlı bir parametredir. Değerler 1 (En Yüksek), 2 , 3 , 4 veya 5 (En Düşük) olabilir. Eğer bu durum belirtilmemişse varsayılan olarak 3'tür.

Content-Type: Bu header, e-postadaki içeriğin türünü belirtmektedir.

Reply-To: Alıcı yanıt verdiğinde, ilettiği yanıtın kime gönderileceğini belirtir.

Message-Id: Mesaj ID, iletiyi tanımlamak için kullanılan bir kimliktir. Bu kimlik benzersidir yani sadece o iletiye özeldir.

From: E-postanın gönderildiği kullanıcı adını veya e-postayı göstermek için kullanılır. Sahte e-postalar genellikle bu header’i değiştirerek tanınan bir kaynaktan gelmiş gibi göstererek manipülasyona yol açarlar.

Received: Alıcıyla ilgili bilgileri belirtir. E-posta birden fazla sunucudan geçerken bu header’in birden fazla girişi olabilmektedir.

Received-SPF: Bu, SPF sonuçlarını gösterir ve göndericinin authentication (yetkilendirilmiş) bir gönderici olup olmadığını kontrol eder.

Delivered-To: E-postanın teslim edildiği hedef e-posta adresini belirtir.

Yukarıda açıklanan alanlara istinaden incelediğimiz e-posta üzerinde de görüldüğü gibi farklı 3 başlık görülmektedir. Bunların açıklaması ise aşağıdaki gibidir.

ARC-….. header’leri, e-posta authentication(yetkilendirilmiş) sonuçlarını korumaya yardımcı olur ve bir iletiyi son hedefine ileten e-posta aracılarının kimlik doğrulamasını sağlar.

ARC Authentication Results: SPF, DKIM ve DMARC gibi e-posta authentication (yetkilendirme) sonuçlarını içerir.

ARC-Message-Signature: DKIM benzeri bir imzadır ve ileti header bilgilerinin bir anlık görüntüsünü alır. Bu, alıcı, gönderici, konu ve içerik gibi bilgileri içerir.

ARC-Seal: ARC-Message-Signature ve ARC Authentication Results header bilgilerini içeren bir imza içerir.

Genel olarak özetleyecek olursak, E-postanın konusu kontrol edilerek içeriğini anlaşılabilir. Gönderici domain; Virus Total, Whois DomainTools, Urlscan.io, Browserling gibi yazımızın en başında belirtilen araçlarla kontrol edilmelidir.

E-posta adresinizi “Have I Been Pwned” gibi siteler üzerinde e-posta adresinizin güvenli olup olmadığını kontrol edebilirsiniz (kurumsal mailler bu sitelerden kontrol edilmemelidir).

Ayrıca e-postalar üzerinde kontrol edilmesi gereken alanlar aşağıdaki gibidir:

  • Subject (Konu)
  • Sender (Gönderici)
  • Sender domain (Gönderici Domain)
  • Recipient (Alıcı)
  • RecipientDomain (Alıcı Domain)
  • Network Message ID (Ağ İleti Kimliği)
  • Latest Mail delivery (En Son E-posta Teslimatı)
  • Original Mail Delivery (Orijinal E-posta Teslimatı)

Daha sonra e-posta body/content kısmı kontrol edilmelidir. E-postada bir URL veya ek varsa, bunları kontrol etmek için bağlantıya tıklamadan ilgili alan üzerinde [Sağ tık-> URL Kopyala] ile kopyalanması ve sandbox (Windows olabilir) kontrol edilmesi gerekmektedir.

Son olarak ise ilgili e-posta zararlı ise, aşağıdaki gibi silme, bloklama, spam olarak işaretleme veya gönderici adresi engelleme gibi işlemler yapılabilir.

Temel olarak bir e-posta’nın analizine odaklandığım yazımı, değerli vaktinizi ayırıp okuduğunuz için teşekkür ederim. Daha fazla bilgi için faydalanmış olduğum kaynaklara aşağıdaki linklerden ulaşabilirsiniz. Bir sonraki yazılarımda görüşmek üzere:)

— Kaynakça/Referans —

--

--