Phishing Protector (Outlook)
Açtığınız e-postanın içeriğini ve bağlantılarını tarayıp kimlik avı (phishing) belirtilerine karşı uyaran Outlook eklentisi.
Phishing Protector, Outlook'ta açtığınız e-postanın içeriğini ve içindeki bağlantıları tarayarak kimlik avı saldırılarına karşı uyarı veren bir Outlook eklentisidir. Outlook'un web sürümünde ve masaüstü uygulamasında çalışıyor. Hızlı kontrolleri doğrudan eklenti panelinde, ağ gerektiren kontrolleri ise kendi sunucumda çalışan küçük bir FastAPI hizmetinde yapıyor.
Amaç
Kimlik avı e-postaları artık kaba yazım hatalarıyla dolu değil. Gönderen adında bir bankanın ya da tanınmış bir markanın adı yazıyor, bağlantının görünen metni gerçek bir alan adını gösteriyor, konu satırı ise "hesabınız kapatılacak" gibi aceleye getiren bir dil kullanıyor. Bir kullanıcının bunların hepsini her e-postada tek tek kontrol etmesini beklemek gerçekçi değil. Ben e-postayı açtığınız anda bu işaretleri arayan ve sonucu e-postanın hemen üstünde gösteren bir yardımcı istedim.
Nasıl çalışır
E-posta açıldığında eklenti önce e-postanın kendisini inceliyor. Gönderenin görünen adı ile gerçek adresinin alan adını karşılaştırıyor, yanıt adresinin başka bir alan adına yönlendirip yönlendirmediğine bakıyor, ekleri ve gövdedeki HTML'i kontrol ediyor.
Ardından bağlantılara geçiyor ve her birinde sahte karakterleri, görünen metinle gerçek hedef arasındaki uyumsuzluğu ve kısaltılmış adresleri arıyor. Bu ilk iki aşama tamamen panelin içinde, sunucuya gitmeden ve anında yapılıyor. Bu kontrollerden temiz çıkan bağlantılar sunucuya gönderiliyor. Sunucu her bağlantı için önce DNS kaydına bakıyor, sonra adresin erişilebilir olup olmadığını deniyor ve son olarak VirusTotal'a yeni bir analiz başlatıyor. VirusTotal, bir adresi 70'ten fazla antivirüs motoruyla aynı anda kontrol eden bir hizmettir. Bir adım başarısız olursa sonraki adımlara geçilmiyor, böylece VirusTotal'ın sınırlı kotası boşa harcanmıyor. Sonuçların hepsi birleştirilip panelde ve e-postanın üstündeki bilgi çubuğunda gösteriliyor.
Öne çıkan özellikler
- Gönderen sahteciliğini yakalıyor. Görünen adda Microsoft, Google, Apple, Amazon, PayPal, Netflix ya da bir banka gibi bir marka geçip e-posta başka bir alan adından geliyorsa uyarıyor.
- Yanıt adresi gönderenden farklı bir alan adına gidiyorsa uyarıyor.
- Konu ve gövdede Türkçe ve İngilizce baskı kalıplarını arıyor ve iki ya da daha fazla eşleşmede orta düzeyde bir uyarı veriyor.
.exe,.scr,.bat,.docmve.xlsmgibi 40'tan fazla tehlikeli dosya uzantısını kontrol ediyor.- E-postanın içine gömülmüş form ya da giriş alanı varsa uyarıyor.
- Kiril, Yunan ve tam genişlikli karakterlerle yapılan homograf saldırılarını tespit ediyor. Homograf saldırısı, Latin harflerine çok benzeyen başka alfabelerden harflerle sahte bir alan adı yazmaktır.
- Bağlantının görünen metni bir alan adı gösterip gerçek hedef başka bir yere gidiyorsa bunu ayrıca işaretliyor.
- bit.ly ve tinyurl gibi 19 kısaltma hizmetinin bağlantılarını gerçek hedefi gizlediği için uyarıyla gösteriyor.
- Kayıtsız ya da artık çalışmayan alan adlarını DNS sorgusuyla buluyor.
Teknik altyapı
Eklenti, Windows, Mac ve Outlook'un web sürümünde aynı kodla çalışabilmesi için Outlook Web Eklentisi olarak yazıldı. Yalnızca Windows'ta çalışan eski COM eklentilerini bu yüzden tercih etmedim. Ön yüz düz HTML, CSS ve JavaScript'ten oluşuyor ve npm ya da paketleyici kullanmıyor. Office.js kütüphanesi Microsoft'un kendi sunucusundan yükleniyor.
Arka uç FastAPI ile yazıldı ve Gunicorn ile Uvicorn işçileri üzerinde, Nginx'in arkasında çalışıyor. DNS sorguları dnspython ile doğrudan Google'ın DNS sunucusuna yapılıyor. Bunu, bazı internet servis sağlayıcılarının var olmayan alan adlarını kendi sayfalarına yönlendirmesini atlamak için yaptım. HTTP kontrolleri httpx ile eşzamansız olarak, bir e-postadaki en fazla 50 bağlantı paralel olarak taranıyor. VirusTotal'dan sonuç 2 saniye arayla en fazla 8 kez sorgulanıyor.
Masaüstü Outlook'ta panel sabitlenebiliyor ve sabitliyken başka bir e-postaya geçtiğinizde tarama kendiliğinden yeniden başlıyor. Outlook'un manifest şemasının bazı katı kurallarını, örneğin öğelerin sırasını ve sabitleme özelliğinin hangi sürüm bloğunda tanımlanabildiğini, deneme yanılmayla öğrenip not ettim. Farklı saldırı türlerini kapsayan sekiz örnek e-posta da test için depoda duruyor.
Kısıtlar
Panel sabitleme yalnızca masaüstü Outlook'ta çalışıyor. Yanıt adresi kontrolü daha yeni Outlook sürümlerinin sunduğu bir API'ye dayandığı için eski sürümlerde yapılamıyor. Baskı dili tespiti anahtar kelimeye dayanıyor, dolayısıyla yanlış alarm verebilir ya da bazı kalıpları kaçırabilir. VirusTotal'ın ücretsiz kotası dakikada 4 istekle sınırlı olduğu için çok bağlantılı e-postalarda bu sınıra takılmak mümkün.
Kullanım alanları
- Çalışanlarını kimlik avına karşı ek bir katmanla korumak isteyen şirketler için kullanılabilir.
- Gelen kutusunda çok sayıda fatura, kargo ve banka bildirimi gören muhasebe ve finans ekiplerine yardımcı olur.
- Şüpheli bir e-postanın neden şüpheli olduğunu somut gerekçelerle göstererek farkındalık eğitimlerinde örnek olarak kullanılabilir.
- Aynı arka ucu paylaşan Thunderbird eklentisiyle birlikte, farklı e-posta istemcileri kullanan ekiplerde tutarlı bir kontrol sağlar.
- Kategori
- Tarayıcı ve e-posta eklentileri
- Yıl
- 2026
Teknolojiler
- JavaScript
- Outlook Add-in
- Python
- FastAPI
- Security