Dosya Yükleme Güvenliği: Magic-Byte ile Fidye Yazılımı Önlemi
Yüklenen dosyanın uzantısına değil içeriğine bakın. Magic-byte analiziyle sahte uzantılı fidye yazılımı kaynağında nasıl durdurulur?
Dosya yükleme alanınızı fidye yazılımından korumanın en sağlam yolu, dosyanın adına değil ilk baytlarına bakmaktır. Magic-byte analizi uzantıyla gerçek türü karşılaştırır ve uyuşmazlığı yüklemeden reddeder. Aşağıda bu yöntemin neden gerektiğini, nasıl çalıştığını ve hangi hatalardan kaçınmanız gerektiğini bulacaksınız.
Yükleme formu neden saldırganın ilk kapısıdır?
Müşterinin sözleşme yüklediği, adayın özgeçmiş gönderdiği ya da ekibin doküman paylaştığı her form, dışarıdan içeriye açılan bir kapıdır. Bu kapıdan giren dosya sunucuda saklanır, bazen başka kullanıcılar tarafından açılır.
Saldırgan için bu çok caziptir. Hesap ele geçirmek ya da sistemi kırmak yerine, zararlı bir dosyayı masum görünümlü bir kılıkta yüklemesi yeterli olabilir. Dosya depoya girdikten sonra yayılması kolaylaşır.
Fidye yazılımı bu zincirin en pahalı halkasıdır. Veriler şifrelenir, erişim kesilir, işletme durur. Bu yüzden dosya yükleme güvenliği, sonradan eklenen bir özellik değil tasarımın başında düşünülmesi gereken bir konudur.
Uzantıya güvenmek neden yetmez?
Uzantı, dosyanın adının sonuna yazılan birkaç harftir. Yükleyen kişi bunu istediği gibi değiştirebilir. Çalıştırılabilir bir dosyanın adını "fatura.pdf" yapmak saniyeler sürer.
Tarayıcının bildirdiği içerik türü de aynı sorunu taşır. Bu bilgi istemciden gelir ve istemci saldırganın elindedir. Yani sunucu, doğrulaması gereken bilgiyi saldırgandan öğrenmiş olur.
Çift uzantı da sık görülen bir numaradır. "rapor.pdf.exe" gibi bir ad, hızlı bakan birine zararsız görünür. Yalnızca son uzantıya bakan basit kontroller ise bazı varyasyonları kaçırabilir.
Magic-byte analizi tam olarak ne yapar?
Her dosya türünün başında, o türü tanıtan sabit bir bayt dizisi bulunur. Buna magic-byte, yani dosya imzası denir. Sistem dosyanın ilk baytlarını okur ve bu imzayı tanır.
Ardından çapraz doğrulama yapılır. Uzantı ".pdf" diyorsa ilk baytlar da PDF imzasını taşımalıdır. İkisi uyuşmuyorsa dosya reddedilir.
Bu yaklaşım derin dosya analizinin temelidir. Karar, kullanıcının beyanına göre değil dosyanın kendi içeriğine göre verilir. Uzantı sahteciliği, gizlenmiş çalıştırılabilir kod ve fidye yazılımı kaynağında engellenir.
Üç kontrol yöntemini yan yana koyalım
Pratikte yükleme alanlarında üç yaklaşım görülür. Hangisinin ne kadar koruma sağladığını görmek için aşağıdaki tabloya bakabilirsiniz.
Uzantı kontrolü hızlı kurulur ama kolayca atlatılır. İçerik türü başlığı biraz daha iyi görünür, fakat yine istemciye güvenir. Magic-byte analizi ise dosyanın kendisine baktığı için en güvenilir temeli sunar.
Yöntem | Artısı | Eksisi |
|---|---|---|
Uzantı kontrolü | Kurulumu çok kolay | Adı değiştirerek atlatılır |
İçerik türü başlığı | Ek yük getirmez | Bilgi istemciden gelir, sahtelenebilir |
Magic-byte analizi | Gerçek türü içerikten doğrular | Doğru kurgulanması ve bakımı gerekir |
Magic-byte kontrolünde en sık yapılan hatalar
İlk hata, kontrolü yalnızca istemci tarafında yapmaktır. Tarayıcıdaki bir doğrulama kullanıcıyı yönlendirir ama güvenlik sağlamaz. Asıl karar sunucuda verilmelidir.
İkinci hata, imzayı bulunca işi bitmiş saymaktır. Bir dosya doğru imzayla başlayıp içinde başka bir şey taşıyabilir. Bu nedenle imza kontrolü tek katman olmalı, diğer önlemlerle birlikte çalışmalıdır.
Üçüncü hata, izin verilen türleri geniş tutmaktır. İşletmenizin yalnızca PDF ve görsel kabul etmesi yetiyorsa, listeyi orada bırakın. Her ek tür yeni bir risk yüzeyi demektir.
- Doğrulamayı sunucuda yapın, istemciye güvenmeyin.
- Yalnızca gerçekten ihtiyaç duyduğunuz dosya türlerini kabul edin.
- Uzantı ile gerçek türün uyuşmasını zorunlu kılın.
- Reddedilen yüklemeleri kayıt altına alın ve inceleyin.
Doğrulama sonrası dosya nerede saklanmalı?
Dosya kontrolü geçse bile onu doğrudan çalıştırılabilir bir klasöre koymak akıllıca değildir. Yüklenen içeriği web sunucusunun kod çalıştırmadığı ayrı bir alanda tutmak, olası bir kaçağın etkisini sınırlar.
Dosya adını da kullanıcıya bırakmayın. Sistemin kendi ürettiği rastgele bir ad vermek, yol manipülasyonu gibi hileleri zorlaştırır. Özgün adı ayrı bir alanda saklayıp ekranda göstermeniz yeterlidir.
Kurumsal belge akışlarında bu düzen daha da önem kazanır. Sözleşme, teklif ve rapor gibi dosyaların düzenli, izlenebilir biçimde yönetilmesi için Filezonia kalite ve doküman yönetimi sayfasına göz atabilirsiniz.
Canlıya çıkmadan önce sızma testiyle sınayın
Kurduğunuz savunmanın işe yaradığını varsayamazsınız, denemeniz gerekir. Sızma testi, sisteme saldırgan gözüyle yaklaşarak zayıf noktaları sizden önce bulur.
Kapsamda port taraması, kaba kuvvet denemeleri, tersine mühendislik ve SQL injection senaryoları yer alabilir. SQL injection, form alanlarına veritabanı komutu sokuşturma girişimidir ve yükleme formlarının yanındaki alanlarda da karşınıza çıkar.
Önemli olan, testin sistem canlıya alınmadan yapılması ve sonucun raporlanmasıdır. Bulgular yazılı gelirse neyin düzeltildiğini ve neyin açık kaldığını net görürsünüz. Piküp Medya olarak sistemleri bu şekilde, raporlu teslim ediyoruz.
Bugün yükleme formunuzu şu sırayla gözden geçirin
Önce formunuzun hangi dosya türlerini kabul ettiğini listeleyin. Gereksiz olanları çıkarın. Sonra kontrolün sunucuda mı, yoksa yalnızca tarayıcıda mı yapıldığına bakın.
Eğer karar yalnızca uzantıya dayanıyorsa, magic-byte analizini ekleyin ve uyuşmayan dosyaları reddedin. Ardından yüklenen içeriğin saklandığı alanı kod çalıştıramayacak şekilde ayırın.
Son adım olarak sistemi canlıya almadan veya büyük bir değişiklikten önce sızma testine sokun ve raporu saklayın. Bu dört adım, fidye yazılımının yükleme formundan içeri girme ihtimalini belirgin biçimde azaltır.
İlgili hizmet
özel yazılım geliştirmeNasıl çalıştığımızı görün →Bu yazı sende ne uyandırdı?
İlk tepkiyi sen ver
Faydalı bulduysan paylaş:
Sık sorulan sorular
Magic-byte nedir?
Her dosya türünün başında, o türü tanıtan sabit bir bayt dizisi bulunur. Buna magic-byte ya da dosya imzası denir. Sistem dosyanın ilk baytlarını okuyarak bu imzayı tanır.
Dosya uzantısına bakmak neden yeterli değildir?
Uzantıyı yükleyen kişi istediği gibi değiştirebilir; çalıştırılabilir bir dosyanın adını "fatura.pdf" yapmak saniyeler sürer. Tarayıcının bildirdiği içerik türü de istemciden geldiği için sahtelenebilir. Çift uzantı gibi numaralar da basit kontrolleri yanıltabilir.
Magic-byte analizi uzantı uyuşmazlığını nasıl yakalar?
Sistem önce dosyanın ilk baytlarından gerçek türü belirler, sonra uzantıyla karşılaştırır. Uzantı ".pdf" diyorsa ilk baytların da PDF imzasını taşıması gerekir. İkisi uyuşmazsa dosya yüklenmeden reddedilir.
Magic-byte kontrolünde en sık yapılan hatalar nelerdir?
Kontrolü yalnızca istemci tarafında yapmak, doğru imzayı görünce işi bitmiş saymak ve izin verilen dosya türlerini geniş tutmak en sık hatalardır. Doğru imzalı bir dosya içinde başka bir şey taşıyabileceği için imza kontrolü diğer önlemlerle birlikte çalışmalıdır.
Doğrulamadan geçen dosya nerede saklanmalı?
Dosya, web sunucusunun kod çalıştırmadığı ayrı bir alanda tutulmalıdır; bu, olası bir kaçağın etkisini sınırlar. Dosya adını da kullanıcıya bırakmayıp sistemin ürettiği rastgele bir ad vermek, yol manipülasyonu gibi hileleri zorlaştırır.
İlgili yazılar
- Web & Yazılım
Pazarlama Yönetimi Yazılımı: Kampanyadan Satışa Tek Akış
Kampanya, segment ve talep üretimini dağınık araçlardan çıkarıp tek yapıda yönetmenin yolları ve Nexfabra ile uygulama adımları.
3 dk okuma - Web & Yazılım
WORM Arşiv Nedir? Yasal Saklama Süreleri ve ISO 15489
WORM arşiv, kayıtları silinemez ve değiştirilemez biçimde saklar. ISO 15489 ile saklama süresi, dava dondurma ve imha sürecini nasıl yöneteceğinizi öğrenin.
3 dk okuma - Web & Yazılım
Yazılım Entegrasyonu: ERP, CRM ve Sitenizi Konuşturmak
ERP, CRM ve web siteniz birbirinden habersizse veri iki kez girilir, hata çoğalır. Yazılım entegrasyonuna ne zaman, nasıl başlanır?
3 dk okuma