Sender Policy Framework (SPF)

E-mail spoofing’e karşı alınan önlemlere baktığımızda karşımıza SPF doğrulama yöntemi çıkmaktadır.

SPF Kayıtları

Her domain kendine ait SPF kaydını yayınlayarak mail sunucuların gelen maillerin spoof olup olmadığını anlamasına yardımcı olmaktadır.

Örnek olarak Apple’ın SPF kayıdını inceleyelim.

v=spf1 include:_spf.apple.com include:_spf-txn.apple.com ~all

  • v=spf1: SPF kayıtları versiyon numarası ile başlamaktadır. “spf1” şu an itibari ile kullanılan versiyondur.
  • include: Mail içerisindeki göndericiye ait domain belirtilen domainle eşleşiyorsa bu mailin Apple’dan geldiğini onayla. “_spf.apple.com” a ait SPF kaydı incelendiğinde ise 6 adet IPv4 adresi olduğunu görüyoruz.
  • ~all: SPF kaydının içerisindeki adreslerden gelmeyen mailleri “soft fail” olarak kabul et. Bu durumda mail işaretli olarak kabul edilir.

Apple’ın SPF kaydı incelendiğinde “_spf.apple.com” ve “_spf-txn.apple.com” a ait SPF kayıtları içerisinde bulunan IP adresleri dışında gelen maillerin Apple tarafından gelmediği (spoof mail olduğu) ve işaretli olarak kabul edildiğini anlıyoruz.

Yukarıdaki örnekte izin verilen domain’leri belirtmek için “include” un kullanıldığını gördük ancak ihtiyaçlarımızı karşılayacak farklı parametreler de mevcuttur.

  • ipv4: Belirtilen IPv4 adresinden gelen maillerin kaynağını onaylamak için kullanılır.
  • ipv6: Belirtilen IPv6 adresinden gelen maillerin kaynağını onaylamak için kullanılır.
  • a: Domain’in A kaydında yer alan adresi onaylamak için kullanılır.
  • mx: Domain’in MX kaydında yer alan adresi onaylamak için kullanılır.

Peki sadece kabul durumları mı var?

Tabi ki hayır.. SPF kaydında belirtilen durumlar harici gelen mailleri spoof olarak işaretlenmesini sağlayabilirsiniz. SPF kaydının sonuna belirtilen kabul durumları harici mailin nasıl işleneceğine dair parametre ekleyebilirsiniz.

  • -all: Belirtilen kabul durumları haricinde gelen maillerin mail içerisindeki domain’den gelmediği kabul edilir. Mail sunucuları ise bu mailleri spoof olarak nitelendirip gerekli aksiyonu almaktadırlar.
  • ~all: Bu durumda mail işaretli olarak kabul edilir.
  • +all: Herhangi bir sunucu SPF kaydına ait domain adına mail gönderebilir. Bu opsiyonu kullanmak TAVSİYE EDİLMEZ.

SPF Protokolünün Eksiklikleri ve Sınırlamaları

SPF protokolünün bazı sınırları ve eksiklikleri mevcuttur.

SPF kaydına “include” ile domainleri ekleyebiliyoruz. Fakat protokol gereği bir mailin SPF kaydı kontrol edilirken maksimum 10 adet DNS isteği yapılabilmektedir (Sınırlama mevcuttur). Bunun sebebi mail sunucuların kaynak kullanımını sınırlamaktır. Bu sınırlama olmasa saldırgan SPF kayıtlarını sonsuz döngü içerecek şekilde ayarlayıp mail gönderdiğinde, mail sunucusu tarafından SPF kontrolü sırasında sürekli DNS isteği atılacağından bir süre sonra mail sunucusunda servis kesintisi yaşanacaktır.

Peki yazdığımız SPF kaydında hangi parametreler mail sunucusunun DNS isteği yapmasına neden oluyor? DNS isteği yapan parametreler aşağıdaki gibidir.

  • include
  • a
  • mx
  • ptr
  • exist
  • redirect

Bu parametreler DNS isteği yapmakta ve parametrede belirtilen domain’in SPF kaydının içerisindeki DNS istekleride limit olan 10’dan düşülmektedir.

Örnek vermek gerekirse umuttosun.com‘un SPF kaydı aşağıdaki gibi olsun.

v=spf1 include:mail.umuttosun.com -all

mail.umuttosun.com’un SPF kaydı da aşağıdaki gibi olsun.

v=spf1 include:mail2.umuttosun.com-all

mail2.umuttosun.com’un SPF kaydı ise aşağıdaki gibi olsun.

v=spf1 ipv4:1.1.1.1 -all

“umuttosun.com” domain’inden mail geldiğinde mail sunucusu umuttosun.com’un SPF kaydını kontrol etmektedir.

SPF kaydına baktığında “mail.umuttosun.com” un include edildiğini görmektedir. “mail.umuttosun.com” için DNS isteği atmaktadır. “mail.umuttosun.com” un SPF kaydına bakıldığında ise “mail2.umuttosun.com” include edilmiştir. Bu durumda mail sunucusu tekrardan DNS isteği atmaktadır.

Mail umuttosun.com domain’inden gelse bile mail sunucusu bu şekilde SPF kayıtlarını kontrol etmektedir.

Yukarıdaki örnekte umuttosun.com’un SPF kaydında bulunan include’dan 1 adet ve mail.umuttosun.com un SPF kaydında bulunan include’dan 1 adet olmak üzere toplam 2 adet DNS isteği yapılacaktır.

Ayrıca belirtmek gerekirki her bir SPF kaydı 255 karakterle sınırlıdır.

Her bir mail envelope sender ve header from olmak üzere 2 adet gönderici içermektedir.

Alıcı, mailbox’ında bu iki gönderici adresten From header’ındaki göndericiyi görmektedir.

SPF protokolünün en büyük eksikliği ise mailin spoof olup olmadığına bakarken Envelope Sender‘ı kontrol etmesidir.

Kullanıcı From Header’ındaki gönderici adresini gördüğünden fakat SPF protokolü Envelope Sender’daki gönderici adresini kontrol ettiğinden saldırgan From Header’ı spooflayarak bu mekanizmayı atlatabilmektedir.

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *