in Go, Güvenlik

Resim Dosyasını Doğrulayan Go Paketi (secureimage)

Direkt mesaj ile başlıyorum konuya: Developer insanının adeti olmalıdır. Dışarıdan uygulamaya gelen girdilere (input) hiç bir zaman güvenilmez.

Paronayaklık tribi ile özelikle yüklenen (upload) resim dosyalarını doğrulayan ufak bir go paketi hazırladım. İsmine de secureimage dedim.

Ne Yapar?

Secureimage paketi,  Go ile geliştirilen Web Uygulamalarında upload edilen resim dosyalarının içeri alınmadan gerçekten resim dosyası olup olmadığına bakar. Eğer resim dosyası özelliklerine sahip ise (örneğin magic byte’ı PNG mi? gibi) bu sefer binary içeriğin hakikatten o dosya formatını karşıladığına bakar. Dosya formatı doğrulandığnda da o dosyaya ait olmayan tüm veriyi temizleyerek bu dosyaya güvenilip güvenilmeyeceğini size bildirir.

Motivasyon

Resim dosyalarını uzak sunucuya yükleyerek kod çalıştırılan bazı saldırı teknikleri var. Örneğin resim dosyasının ilk 3 byte’ı GIF gibi görünüyor fakat o resim dosyasını siteye upload edip görüntülendiği zaman bir XSS açığını sömürüyor.

Diğer bir örnek ise. Resim dosyası içine sunucu tarafında çalıştırılabilen bir kod yazılıyor. Dosyayı web üzerinden çağırdığınız zaman bu script çalışıp bazı saldırıları tetikleyebiliyor.

Bu saldırılara maruz kalmamak için resim dosyalarının doğrulanması ve gerekirse tekrar encode edilmesi web uygulamalarında ihtiyaç haline geliyor.

Yorum Bırak

Comment