İleti verisinin sınanması

İletinin içeriğine bakmanın zamanı geldi. Bu, ileti tamamen kabul edildikten sonra spam ve virüs tarayıcılarının yaptıklarına benzer bir işlemdir. Ancak, bizim durumumuzda bu sınamaları, posta kabul edilmeden yani, sonuncu 250 yanıtından önce yapacağız. Böylece, daha sonra reddederek Dolaylı Spam üretmeksizin postayı daha SMTP aktarımı bitmeden reddetme şansımız olacak.

Eğer posta alıcılarınız çok meşgulse (büyük bir site ve bir kaç tane MX), bu makinelerde bu sınamaların bir kaçını bile uygulamak oldukça pahalıya malolabilir. Özellikle, Virüs Tarayıcıları ve Spam Tarayıcıları'nın çalıştırlması büyük miktarda işlemci zamanı harcanmasına sebep olur.

Böyle bir durumda, bu tarama işlemlerine adanmış bir makine ayarlamak iyi bir çözüm olabilir. Sunucu tarafında çalışabilen çoğu anti-spam ve anti-virus yazılım ağ üzerinden çalıştırılabilmektedir.

İleti başlıklarının sınanması

Eksik başlık satırları
RFC 2822 bir iletinin en azından şu başlıkları içermesini zorunlu kılar:

From: ...
To: ...
Subject: ...
Message-ID: ...
Date: ...

Bu satırlardan herhangi birinin yokluğu iletinin bir Posta İstemcisi tarafından üretilmediğini ve büyük olasılıkla bir döküntü posta olduğunu gösterir[28].

Başlık Adresinin Sözdizimi Sınaması
İleti başlığındaki adresler (To:, Cc:, From: ... başlıkları), sözdizimsel olarak geçerli olmak zorundadır. Daha fazla birşey söylemeye gerek yok.

Basit Başlık Adresi Doğrulaması
İleti başlığındaki her adres için:

  • Eğer adres yerelse, yerel kısım (@ işaretinden önceki parça) geçerli bir posta kutusu ismi mi?
  • Eğer adres uzaksa, alanadı parçası (@ işaretinden sonraki parça) mevcut mu?

Başlık Adresi Varlık Doğrulaması
Bu, Gönderici Varlık Sınaması ve Alıcı Varlık Sınaması'na benzer şekilde çalışır. Bir Teslimat Durum Bildirimi'nın kabul edilip edilmeyeceğini saptamak için her gönderici adresin birincil posta alıcısına erişilerek adres doğrulatılmaya çalışılır.

Döküntü Posta İmza Depoları

Döküntü postayı diğerlerinden ayıran bir özellik, çok sayıda adrese gönderilmiş olmasıdır. Eğer 50 alıcı belli bir iletiyi spam olarak nitelemişse, posta size teslim edilirken, iletiyi kabul edip etmemek noktasında neden bu fiili durumu kullanmayasınız? Daha da iyisi, spamcıları bilen kamuya açık bir havuzu beslemek için neden bir Spam Tuzağı ayarlamayasınız?

Böyle havuzlar var:

Bu araçlar sadece, döküntü posta olarak bilinen bir iletinin bir eşdeğer kopyasını aldığınızda tetiklenen basit imza sınamaları yaparak çalışırlar. Bunlar ileti içinde bilinen kalıpları arayarak değil, ileti başlığındaki ve gövdesindeki belli değişiklikleri hesaba katarak değerlendirme yaparlar.

Baskı karakteri olmayan karakterlerin varlığı

Baskı karakteri olmayan karakterleri içeren iletilere nadir de olsa rastlanır. Böyle bir ileti, hemen hemen daima bir virüs ya da uygun bir MIME kodlaması olmaksızın batı dillerinde yazılmamış bir spam türü olarak karşımıza çıkar.

Özel bir durum, iletinin boş karakter (sıfırıncı karakter - `\0') içermesi durumudur. Baskı karakteri olmayan karakterlerin karmaşıklığı karşısında bunun yararından çok zararı olacağını düşünseniz bile en azından bu karakteri sınamayı düşünebilirsiniz. Çünkü, Cyrus Posta Araçları gibi bazı posta teslimatçıları bu karakteri içeren postaları eninde sonunda reddedecektir[29]. Eğer böyle bir yazılım kullanıyorsanız, boş karakterlerden kurtulmayı kesinlikle hesaba katmalısınız.

Diğer taraftan, RFC 822 belirtimi (artık atıl) iletilerde boş karakteri açıkça yasaklamamıştır. Bu sebeple, bu tür postaları reddetmek yerine, iletiden bu karakterleri ayıkladıktan sonra postayı Cyrus'a teslim etmek daha iyi bir yol olabilir.

MIME sınamaları

Benzer şekilde, gelen iletinin MIME yapısı değerlendirmeye alınırsa bu işlem çekilen zahmete değebilir. MIME çözümleme hataları veya tutarsızlıkları çok sık ortaya çıkmaz; fakat bu olursa, ileti kesinlikle döküntüdür. Üstelik böyle hatalar bundan sonraki Eklenti Sınamaları, Virüs Tarayıcıları, Spam Tarayıcıları gibi sınamalar açısından ortaya çıkabilecek sorunların habercisi olabilir.

Başka bir deyişle, eğer MIME kodlaması kuraldışıysa iletiyi reddedin.

Eklenti Sınamaları

Son zamanlarda istemediğiniz halde birileri size bir Windows ekran koruyucusu (“.scr”) veya bir Windows Program bilgi dosyası (“.pif”) gönderdi mi?

Ekinde “Windows çalıştırılabilirleri” - yukarıdaki gibi üç harfli uzantıları olan dosyalar - olan iletileri önlemeyi gözönünde bulundurun. Bu sınama Virüs Tarayıcılarının tükettiğinden daha az sistem kaynağı tüketeceği gibi ayrıca, anti-virus tarayıcınızda henüz imzası bulunmayan yeni virüsleri de yakalamanızı sağlayacaktır.

Bu tür dosya uzantılarının az çok kapsamlı bir listesini
http://support.microsoft.com/default.aspx?scid=kb;EN-US;290497 adresinde bulabilirsiniz.

Virüs Tarayıcıları

Sunucu tarafında çalışan bir miktar virüs tarayıcı mevcuttur. Bazıları:

Tehlike arzetmesi olası dosyaları (“.zip” dosyaları gibi) sadece isimlerine bakarak engellemek istemiyorsanız böyle tarayıcılar işe yarar. Ayrıca bunlar bir posta eki olmayan “Bagle.R” virüsü (2004 Mart'ında ortaya çıkmıştı) gibi virüsleri de yakalayabilir.

Çoğu durumda, virüs taraması yapan makinenin sizin posta alıcınız olması gerekmez. Bu virüs tarayıcıların çoğu bir ağ bağlantısı üzerinden başka bir konakta çalıştırılabilir.

Antivirüs yazılımları genellikle bilinen virüsleri imzalarından ya da virüs tanımlarından saptar. Yeni virüsler geliştirildiğinden bunların düzenli aralıklarla güncellenmeleri gerekir. Ayrıca, olası en yüksek doğruluğun sağlanması için yazılımın kendisinin de güncel olması gerekir.

Spam Tarayıcıları

Benzer şekilde, anti-spam yazılımlar iletileri standartlara uyumluluk açısından değerlendirerek, DNS Karalisteleri ve Döküntü Posta İmza Depoları gibi sınamalar yaparak ve içeriklerini büyükçe bir ampirik kümeye göre değerlendirerek sınıflandırmakta kullanılabilir. Sonuçta, bu tür yazılımlar iletinin ne derece spam olabileceğini belirten bir puan verirler. Eğer bu puan belli bir eşik değeri aşmışsa iletinin spam olabileceğine karar verilebilir.

Sunucu tarafında çalışan ampirik antispam filtrelerinden çok tanınmış ikisi:

Spamcılar bu araçların kullandıkları çeşitli sınamaları alt edecek yöntemler (örn, “GR0W lO 1NCH35” gibi oldukça yaratıcı dizgeler) buldukça bu araçlar da sürekli geliştirilmektedir. Antivirüs yazılımlarında olduğu gibi bu yazılımlar da olası en yüksek doğruluğu sağlamak için sıkça güncellenmelidir.

Ben SpamAssassin kullanıyorum, makine özkaynaklarına olan etkisini en aza indirmek için onu savunma hattımın önüne yerleştirmedim. Benim kişisel adresime günde 500 civarında döküntü posta teslim edilmeye çalışılıyor. Bunlardan yaklaşık 50 tanesi SpamAssassin tarafından sınanacağı noktaya ulaşabiliyorlar. Bu 50 iletinin dışında posta kutuma her iki ya da üç günde bir, tek bir ileti düşüyor.



[28] Posta listelerinin sunucuları gibi bazı özel amaçlı posta aktarımcıları "boş adresli" (bkz. Teslimat Durum Bildirimi) iletiler için kendiliklerinden bir Message-ID: başlığını üretmezler. Bu tür iletiler boş bir Zarf Göndericisinin varlığıyla kendilerini belli ederler.

[29] IMAP protokolü posta istemcilerine boş karakterlerin aktarılmasına izin vermez. Bu bakımdan, Cyrus geliştiricileri bu karakteri içeren postalardan kurtulmanın en kolay yolu olarak onları reddetme kararı aldılar.