OzzTech - Insecure Deserialization Güvenlik Açığı

Insecure Deserialization Güvenlik Açığı

Insecure Deserialization Güvenlik Açığı

Bu bölümde, Insecure Deserialization ne olduğunu ele alacağız ve web sitelerini potansiyel olarak yüksek önemdeki saldırılara nasıl maruz bırakabileceğini açıklayacağız. Tipik senaryoları vurgulayacağız ve PHP, Ruby ve Java serisini kaldırmanın somut örneklerini kullanarak yaygın olarak uygulanabilir bazı teknikleri göstereceğiz. Ayrıca, kendi web sitelerinizdeki Insecure Deserialization güvenlik açıklarından kaçınmanın bazı yollarına da bakacağız.

Insecure Deserialization kullanılması, zor olduğu için bir üne sahiptir. Ancak, bazen düşündüğünüzden çok daha basit olabilir. Seri durumdan çıkarma konusunda yeniyseniz, bu bölüm öncelikle kendinizi tanımanız gereken temel arka plan bilgilerini içerir. Seri durumdan çıkarmanın temellerini zaten biliyorsanız, onu nasıl kullanacağınızı öğrenmeye doğrudan geçebilirsiniz.

Serialization nedir?

Serialization , nesneler ve bunların alanları gibi karmaşık veri yapılarını sıralı bir bayt akışı olarak gönderilip alınabilen "daha düz" bir biçime dönüştürme işlemidir. Verileri seri hale getirmek, şunları yapmayı çok daha basit hale getirir:

  • İşlemler arası belleğe, bir dosyaya veya bir veritabanına karmaşık veriler yazın
  • Örneğin bir ağ üzerinden, bir uygulamanın farklı bileşenleri arasında veya bir API çağrısında karmaşık veriler gönderin

En önemlisi, bir nesneyi serileştirirken, durumu da kalıcıdır. Başka bir deyişle, nesnenin nitelikleri, atanan değerleriyle birlikte korunur.

Serialization vs deserialization

Deserialization , bu bayt akışını, orijinal nesnenin tam olarak seri hale getirildiği zamanki tam durumunda tam işlevsel bir kopyasına geri yükleme işlemidir. Web sitesinin mantığı, daha sonra, diğer herhangi bir nesnede olduğu gibi, bu seri durumdan çıkarılmış nesneyle etkileşime girebilir.

Insecure Deserialization Nedir?

Insecure Deserialization, kullanıcı tarafından kontrol edilebilen verilerin bir web sitesi tarafından seri durumdan çıkarılmasıdır. Bu , saldırganın zararlı verileri uygulama koduna geçirmek için serileştirilmiş nesneleri değiştirmesine olanak tanır.

Serileştirilmiş bir nesneyi tamamen farklı bir sınıftan bir nesneyle değiştirmek bile mümkündür. Endişe verici bir şekilde, web sitesinde mevcut olan herhangi bir sınıfın nesneleri, hangi sınıftan beklendiğine bakılmaksızın seri hale getirilecek ve somutlaştırılacaktır. Bu nedenle, Insecure Deserialization, bazen bir "nesne yerleştirme" güvenlik açığı olarak bilinir.

Beklenmeyen bir sınıfın nesnesi bir istisnaya neden olabilir. Ancak bu zamana kadar, hasar zaten yapılmış olabilir. Birçok seri durumdan çıkarma tabanlı saldırı, seri durumdan çıkarma tamamlanmadan önce tamamlanır. 

Bu , web sitesinin kendi işlevselliği kötü amaçlı nesneyle doğrudan etkileşime girmese bile, seri durumdan çıkarma işleminin kendisinin bir saldırı başlatabileceği anlamına gelir. Bu nedenle mantığı güçlü yazılan dillere dayanan web siteleri de bu tekniklere karşı savunmasız kalabilir.

Insecure Deserialization Güvenlik Açıkları Nasıl Ortaya Çıkıyor?

Insecure Deserialization, tipik olarak, kullanıcı tarafından kontrol edilebilen verilerin seri durumdan çıkarmanın ne kadar tehlikeli olabileceğine dair genel bir anlayış eksikliği olduğu için ortaya çıkar. İdeal olarak, kullanıcı girişi hiçbir zaman seri durumdan çıkarılmamalıdır.

Bununla birlikte, bazen web sitesi sahipleri, seri durumdan çıkarılmış veriler üzerinde bir tür ek kontrol uyguladıkları için güvenli olduklarını düşünürler. Bu yaklaşım genellikle etkisizdir, çünkü her olasılığı hesaba katmak için doğrulama veya temizleme uygulamak neredeyse imkansızdır. Bu kontroller ayrıca, verilerin seri durumdan çıkarıldıktan sonra kontrol edilmesine dayandıkları için temelde kusurludur ve çoğu durumda saldırıyı önlemek için çok geç olacaktır.

Seri durumdan çıkarılmış nesnelerin genellikle güvenilir olduğu varsayıldığından güvenlik açıkları da ortaya çıkabilir. Özellikle ikili Serialization biçimine sahip dilleri kullanırken geliştiriciler, kullanıcıların verileri etkili bir şekilde okuyamadığını veya değiştiremeyeceğini düşünebilir. Ancak, daha fazla çaba gerektirse de, bir saldırganın ikili serileştirilmiş nesnelerden yararlanması, dize tabanlı biçimleri kullanması kadar mümkündür.

Modern web sitelerinde bulunan bağımlılıkların sayısı nedeniyle seri durumdan çıkarma tabanlı saldırılar da mümkün kılınmıştır. Tipik bir site, her biri kendi bağımlılıklarına sahip olan birçok farklı kitaplığı uygulayabilir. Bu, güvenli bir şekilde yönetilmesi zor olan büyük bir sınıf ve yöntem havuzu oluşturur. Saldırgan bu sınıflardan herhangi birinin örneğini oluşturabileceğinden, kötü amaçlı veriler üzerinde hangi yöntemlerin çağrılabileceğini tahmin etmek zordur. Bu, özellikle bir saldırgan, verileri ilk kaynakla tamamen alakasız bir havuza geçirerek uzun bir dizi beklenmeyen yöntem çağrısını birbirine zincirleyebiliyorsa geçerlidir. Bu nedenle, kötü amaçlı veri akışını tahmin etmek ve her olası deliği tıkamak neredeyse imkansızdır.

Kısacası, güvenilmeyen girdileri güvenli bir şekilde seri durumdan çıkarmanın mümkün olmadığı söylenebilir.

Insecure Deserialization etkisi nedir?

Insecure Deserialization etkisi çok şiddetli olabilir, çünkü büyük ölçüde artırılmış bir saldırı yüzeyine bir giriş noktası sağlar. Saldırganın mevcut uygulama kodunu zararlı şekillerde yeniden kullanmasına izin vererek, genellikle uzaktan kod yürütme gibi çok sayıda başka güvenlik açığına neden olur.

Uzaktan kod yürütmenin mümkün olmadığı durumlarda bile, Insecure Deserialization, ayrıcalık yükselmesine, rastgele dosya erişimine ve hizmet reddi saldırılarına yol açabilir.

Insecure Deserialization güvenlik açıklarından nasıl yararlanılır?

Artık Serialization ve Deserialization temellerini öğrendiğinize göre, Insecure Deserialization güvenlik açıklarından nasıl yararlanabileceğinize bakabiliriz.

Insecure Deserialization güvenlik açıkları nasıl önlenir?

Genel olarak konuşursak, kesinlikle gerekli olmadıkça kullanıcı girdisinin seri hale getirilmesinden kaçınılmalıdır. Potansiyel olarak etkinleştirdiği yüksek güvenlik açıkları ve bunlara karşı korumanın zorluğu, birçok durumda faydalarından daha ağır basar.

Güvenilmeyen kaynaklardan gelen verileri seri durumdan çıkarmanız gerekiyorsa, verilerin kurcalanmadığından emin olmak için sağlam önlemler alın. Örneğin, verilerin bütünlüğünü kontrol etmek için bir dijital imza uygulayabilirsiniz. Ancak, seri durumdan çıkarma işlemine başlamadan önce tüm kontrollerin yapılması gerektiğini unutmayın . Aksi takdirde, çok az kullanımları vardır.

Mümkünse, genel seriyi kaldırma özelliklerini tamamen kullanmaktan kaçınmalısınız. Bu yöntemlerden seri hale getirilmiş veriler, potansiyel olarak hassas bilgiler içeren özel alanlar da dahil olmak üzere orijinal nesnenin tüm özniteliklerini içerir. Bunun yerine, en azından hangi alanların açığa çıkacağını kontrol edebilmek için kendi sınıfa özgü Serialization yöntemlerinizi oluşturabilirsiniz.

Son olarak, güvenlik açığının, daha sonra verileri işleyen gadget zincirlerinin varlığı değil, kullanıcı girdisinin seri hale getirilmesi olduğunu unutmayın. Test sırasında tanımladığınız gadget zincirlerini ortadan kaldırmaya çalışmayın. Web sitenizde neredeyse kesinlikle var olan kütüphaneler arası bağımlılıklar ağı nedeniyle hepsini denemek ve takmak pratik değildir. Herhangi bir zamanda, genel olarak belgelenmiş bellek bozulması istismarları da bir faktördür; bu, uygulamanızın ne olursa olsun savunmasız olabileceği anlamına gelir.

Ozztech Bilgi Güvenliği Teknolojileri'nden Penetrasyon testi (sızma testi) için yardım alabilir ve işletmenizi daha güvenilir bir hale getirebilirsiniz.


İlginizi Çekebilecek Makaleler
FortiGate ACME Sertifika Desteği
Siber Güvenlik

FortiGate ACME Sertifika Desteği

Ocak 24, 2022 1:22

Otomatik Sertifika Yönetim Ortamı (ACME), RFC 8555’te tanımlandığı üzere, ücretsiz SSL sunucu sertifikaları sağlamak için genel Let’s...

Android Reverse Mühendisliği Araçları Örnek Vakalar
Siber Güvenlik

Android Reverse Mühendisliği Araçları Örnek Vakalar

Ocak 24, 2022 12:39

Bir önceki yazıda yeni çıkan android reverse mühendisliği araçları hakkında bilgi vermiştim. Bu yazımda...

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor
Siber Güvenlik

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor

Ocak 24, 2022 9:44

Emotet kötü amaçlı yazılım botnetinin dağıtımını içeren sosyal mühendislik kampanyaları, güvenlik çözümlerinin tespitinden kaçınmak...

FortiWeb Kurulumu 5-Operation Modu
Siber Güvenlik

FortiWeb Kurulumu 5-Operation Modu

Ocak 24, 2022 7:49

FortiWeb kurulumunu anlattığımız beşinci yazımızda operation modu ve FortiWeb cihazı açıldıktan sonra, FortiWeb cihazını...

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme
Siber Güvenlik

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme

Ocak 23, 2022 10:21

FortiWeb kurulumunu anlattığımız serinin dördüncü yazısında Admin şifresi nasıl değiştirceğinizi, saat ve günü nasıl...

Metasploittable 2
Siber Güvenlik

Metasploittable 2

Ocak 22, 2022 11:57

Metasploittable 2 Nedir? Neden Kullanılır? Nasıl Kurulur? Metasploittable 2 Metasploit firması tarafından bizlerin güvenli...

FortiWeb Kurulumu 3- Firmware Güncellenmesi
Siber Güvenlik

FortiWeb Kurulumu 3- Firmware Güncellenmesi

Ocak 22, 2022 11:56

FortiWeb kurulumunu anlattığımız serinin üçüncü yazısında Firmware güncellemesini anlatacağız. FortiWeb cihazınız gönderildiğinde en son...

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama
Siber Güvenlik

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama

Ocak 21, 2022 7:50

FortiWeb kurulumu yazımızın ikinci serisinde Web UI veya CLI bağlamanın nasıl yapılacağını anlatacağız. Eğer...

Yapay Zeka Nedir?
Yazılım Geliştirme

Yapay Zeka Nedir?

Ocak 20, 2022 10:57

Sürekli olarak değişen, gelişen ve oldukça hızlı bir şekilde boyut atlayan, günümüze kadar gelen...

İletişim
OZZTECH Bilgi Teknolojileri olarak siber güvenlik danışmanlığı ve bilgi güvenliği eğitimleri alanlarında 10 yılı aşkın bir süredir ülkemizin önde gelen kurumlarına hizmet vermeye devam etmektedir. Detaylı bilgi ve danışmanlık hizmetlerimiz için aşağıdaki formu kullanarak veya [email protected] adresimiz üzerinden bizlerle iletişime geçebilirsiniz.