Mail Security 101
Merhabalar,
Bu makalede “Mail Security 101” diyebileceğimiz bir seviyede temel mail güvenliği konuları hakkında bilgi vermeye çalışacağım.
Aşağıdaki resimde en özet şekilde bir mail trafiği gösterilmektedir.
- Gönderici, bilgisayarında yüklü olan mail programını (MUA / Mail User Agent) kullanarak bir mail oluşturur. MUA için örnek olarak Outlook veya Thunderbird gibi programları sayabiliriz.
- MUA, oluşturulan maili SMTP protokolü vasıtasıyla bağlı olduğu mail sunucuya (MSA / Mail Submission Agent) iletir. Maili alan sunucu aynı zamanda bu maili alıcıya iletmekten sorumlu bileşen ise MTA yani Mail Transfer Agent görevini de üstlenir. Bizim topolojimizde gönderici kısmında örnek olarak bir Microsoft Exchange Server olsun ve bu sunucu hem MSA hem de MTA görevlerini üstlensin.
- Maili iletmekten sorumlu olan MTA, mailin alıcısının dahil olduğu alan adına ait IP adresini yani MX kaydını sorgulamak için DNS sunucuya bir istek gönderir.
- Bu DNS isteği ile megacorp.com mail sunucusunun IP adresi öğrenilir ve acme.com alan adından megacorp.com alan adına gönderilmek üzere SMTP paketi alıcı SMTP sunucusuna (MTA ve MSA) doğru yola çıkar.
- acme.com’dan gelen maili alan megacorp.com mail sunucusu bu postayı IMAP veya POP3 protokolü vasıtasıyla alıcıya iletir.
- Alıcı kendi bilgisayarında bulunan MUA uygulaması ile maili açar.
Yukarıdaki resimde mail sunucular üzerinde alınabilecek önlemler dışında geleneksel olarak uygulanan bir güvenlik mekanizması paylaşmadım.
Hadi bu yapıya bir de Mail Güvenlik Duvarı olarak nitelendireceğimiz bir MTA bileşeni daha ekleyelim.
Öncelikle Mail Güvenlik Duvarı’nın bu yapıdaki görevinden kısaca bahsedelim.
MTA olarak görev yapacağını yukarıda belirtmiştim. Yani DNS sorguları ile megacorp.com MX kaydı sorgulandığında göndericinin ileteceği mailler öncelikli olarak bu bileşene gelecek.
Bu da alıcı mail sunucusunun artık MSA rolü ile devam edeceği anlamına geliyor. Peki bu bize ne kazandırır?
Mail Güvenlik Duvarları SMTP protokolünü analiz etmek, maili gönderenin güvenirliğini sorgulamak, maili gönderenin gerçekten söylediği kimliğe sahip olup olmadığını kontrol etmek gibi birçok işleve sahiptirler.
Bu işlevlerden detaylı olarak yazının devamında bahsedeceğim.
Öncelikli olarak SMTP protokolünün analizi üzerine konuşalım.
SMTP; Connection, Envelope, Body ve Header olmak üzere 4 bileşenden oluşur.
Connection aşamasında gönderici SMTP Sunucusu alıcı SMTP Sunucusu’na kendi bilgilerini (IP adresi ve alan adı) paylaşarak mail iletmek istediğini söyler. Eğer alıcı SMTP Sunucusu tarafından Connection talebi kabul edilirse SMTP paketinin iletileceği Envelope, Header ve Body paylaşımı aşamalarına geçilir.
Get Serhat Murat Pala’s stories in your inbox
Join Medium for free to get updates from this writer.
SMTP paketini, bir posta zarfı gibi düşünebiliriz. Zarfın üstünde postanın kimden geldiğini ve kime gönderildiğini içeren yeri ENVELOPE olarak adlandırıyoruz.
Zarfı açtığımızda ise içinden çıkan mektubu HEADER ve BODY olmak üzere iki kısımda inceleyeceğiz. İsimlerden de anlaşıldığı üzere zarfdan çıkan kağıdın üzerinde yazan gönderici ve alıcı bilgisi HEADER kısmına, postanın içeriği ise BODY kısmına dahildir.
Aşağıda bu yapıyı özetleyen bir diyagram paylaşıyorum.
Peki Mail Güvenlik Duvarları yukarıda bahsettiğim aşamalarda ne gibi önlemler alabilir?
- Connection aşamasında daha önceden zararlı olduğu bilinen bir sunucuya ait IP adresi veya domain’inden gelen mailler reddedilebilir. (Black List / Reputation)
- Belirli kişilerden gelen veya belirli kişilere gönderilmiş mailler engellenebilir.
- Aynı gönderenden gelen mail sayısına sınırlandırma getirilerek limitin aşılması durumunda engelleme veya maillerin alıcısına iletimini yavaşlatma uygulanabilir.
- Belirli algoritmalar dahilinde gereksiz olduğu anlaşılan mailler engellenebilir. (SPAM)
- BODY’de bulunan zararlı linkler veya eklentiler kullanım esnasında veya öncesinde engellenebilir.
- Göndericinin kendisini farklı bir kimlikte göstererek mail atması engellenebilir. (Mail Authentication / SPF,DKIM,DMARC) Bunu yaparken Mail Güvenlik Duvarı Conneciton, Envelope ve Header’da paylaşılan bilgileri karşılaştırır ve çelişkili bir durum tespit ederse maili engelleyebilir.
Genel olarak Mail Güvenlik Duvarını gelen mailleri engelleme yeteneği üzerinden anlatmış olsak da bu bileşenler sadece engelleme değil aynı zamanda reddetme, erteleme, karantinaya alma gibi fonksiyonlara da sahiptirler.
Kısaca özetlemek gerekirse maili engelleme olarak tabir ettiğimiz aksiyon aslında “mail discard”, bu aksiyon uygulandığında gelen mail doğrudan düşürülür ve gönderene bir bildirimde bulunulmaz. Bu aksiyonun benzeri olarak “mail reject” uygulanması durumunda gönderene SMTP kodları vasıtasıyla mailinin neden bloklandığına dair bildirimde bulunulur. Erteleme olarak tabir ettiğimiz “mail deffering” aksiyonu alıcı SMTP Sunucusunun o an mail almakta zorluk yaşadığı veya kasıtlı olarak gelen mailleri içeriye daha yavaş almak istenilen senaryolarda kullanılır. Bu aksiyonda da göndericiye sebep belirtilir. Son olarak “mail karantina” aksiyonunda mailin bir kopyası alınarak karantina dizininde depolanır. Karantina aksiyonu diğer aksiyonlar ile bilrikte kullanılır. Yani hem karantina hem discard olabileceği gibi hem karantina hem de allow da olabilir.
Mail Security 101 kapsamında olabildiğince temel seviyede anlatacaklarım bu kadardı, umarım işinize yaramıştır🙂
Herhangi bir sorunuz olursa veya düzeltilmesi gerektiğini düşündüğünüz bir alan varsa bana LinkedIn profilim üzerinden ulaşabilirsiniz.
Kaynaklar:
https://www.mail.com/blog/posts/what-happens-when-an-email-is-sent/56/
https://networkkampus.com/e-mail-nedir-nasil-calisir/
https://kh4lnay4k.medium.com/understanding-e-mail-84621bb97949
https://www.mybluelinux.com/what-is-email-envelope-and-email-header/



