23 puan yazan xguru 2024-11-06 | 1 yorum | WhatsApp'ta paylaş
  • Kısa süre önce Samsung cihazlarındaki bir JSON enjeksiyonu zafiyeti kullanılarak cihaz üzerinde kod çalıştırmaya kadar uzanan bir saldırı zinciri kurulabildi
  • JSON yükünü körü körüne güvenen API'lerin nasıl istismar edilebileceğine dair bir ders niteliğinde olabilir

Her şeye "akıllıca" enjeksiyon yapmak

  • Samsung Smart Hub örneğinde, mobil uygulama hub ile uzaktan iletişim kurarak bağlı olan her şeyi kontrol edebiliyordu
  • /credentials uç noktasına kötü amaçlı bir POST isteği göndererek, hub'ın uzak sunucuya bağlanmak için kullandığı kimlik bilgileri değiştirilebiliyor ve veri manipülasyonu SQL enjeksiyonuna yol açabiliyordu
  • Samsung'un dayandığı json-c kütüphanesi JSON_TOKENER_STRICT=0 ile derlenmişti; bu da dizelerin tek tırnak ve çift tırnakla tanımlanabilmesini sağlıyordu
  • Bu sayede saldırgan, hub'ın dahili sqlite veritabanında özel sütunlar oluşturabiliyordu
  • Ardından camera tablosuna aşırı uzun bir ROP zinciri yerleştirip /cameras uç noktasına DELETE göndererek, video-core sürecinin veriyi okumaya çalışırken çökmesine ve klasik bir yığın tabanlı arabellek taşmasına neden olunabiliyordu
  • Buradan çıkarılan ders şuydu: JSON enjeksiyonu → SQL enjeksiyonu → arabellek taşması → ROP = ele geçirme

JSON enjeksiyonu nedir?

  • JSON enjeksiyonu, kötü amaçlı verinin JSON akışına eklenerek uygulama davranışının değiştirilmesine veya istenmeyen işlemlerin tetiklenmesine yol açabilen bir zafiyettir
  • Sunucu tarafı JSON enjeksiyonu, güvenilmeyen kaynaklardan gelen veriler sunucuda düzgün biçimde temizlenmeden doğrudan ya da dolaylı olarak kod içinde kullanıldığında ortaya çıkar

Sorun ayrıştırıcılarda

  • Modern web uygulamaları ve API'lerde, istek hattı içinde her biri kendine özgü özelliklere ve zafiyetlere sahip birden fazla ayrıştırıcı kullanılabilir
  • Ayrıştırıcılar arasındaki uyumsuzluklar ile çok aşamalı istek işleme birleştiğinde ciddi zafiyetler ortaya çıkabilir
  • JSON ayrıştırıcıları, resmi JSON RFC'sinin yinelenen anahtarlar ve sayı gösterimleri gibi konuları açık uçlu bırakması nedeniyle zorluk yaşar
  • Resmi RFC tek spesifikasyon değildir; ECMAScript, JSON5, HJSON ve Binary JSON (BSON) da vardır
  • Ayrıştırıcılar arası birlikte çalışabilirlik, birçok kişinin varlığından bile haberdar olmadığı güvenlik risklerini ortaya çıkarır

JSON ayrıştırıcılarının birlikte çalışabilirliğindeki güvenlik sorunları

  • Yinelenen anahtarların ele alınış biçimindeki tutarsızlıklar
  • Özel karakterlerin veya yorumların ele alınış biçimindeki tutarsızlıklar
  • JSON (de)serileştirme tutarsızlıkları

JSON nasıl istismar edilir?

  • JSON'u manipüle ederek, geliştiricinin öngörmediği şekilde uygulamanın çalışmasına neden olacak veriler enjekte edilebilir
  • API altyapısı içinde verinin bileşenler arasında geçiş biçimi manipüle edilebildiğinde, iş mantığını kontrol etme fırsatı doğar
  • Ayrıştırıcının girdiyi nasıl işlediğini anlamak, giriş doğrulamasını atlatmak için onun davranışını kötüye kullanarak veriyi manipüle edilebilir bir biçimde yorumlamasını sağlamaya yardımcı olabilir

Sonuç

  • Samsung Smart Hub saldırısı, JSON enjeksiyonunun SQL enjeksiyonundan uzaktan kod çalıştırmaya kadar giden karmaşık zafiyet zincirlerine yol açabileceğinin yalnızca bir örneğidir
  • Kök neden çoğu zaman, özellikle birden fazla sıra dışı ayrıştırıcı söz konusu olduğunda, JSON ayrıştırıcılarının veriyi işleme biçimlerindeki tutarsızlıklardır
  • JSON nesnelerinin nasıl serileştirildiğini, serileştirmeden çıkarıldığını ve işlendiğini dikkatle inceleyerek, temizleme filtrelerini atlatıp iş mantığını etkileyebilecek yüklerin nasıl oluşturulacağı anlaşılabilir
  • API'ler modern uygulamaların temel taşı olmaya devam ettikçe, API'lerin veriyi işleme biçiminin güvenliğini sağlamak her zamankinden daha önemli hale geliyor

1 yorum

 
yangeok 2024-11-08

Görünüşe göre JSON body ile alınan veriler için validation’ı oldukça sıkı yapmak gerekecek.