Sunucu tarafındaki yazılımlardaki bellek bozulması açıklarından yararlanmak için genellikle ikili dosya ve ortam bilgisi gerekir; bu da özellikle bilinmeyen ikili dosyalar ve yük dengeli ortamlar için saldırı yüzeyini sınırlar.
Bu bilgi olmadan yığını hazırlamanın ve ROP zincirlerini dağıtmanın zorluğu nedeniyle başarılı bir sömürü zordur.
Araştırmacılar, Kakadu JPEG 2000 kütüphanesinde, uzaktan kod yürütülmesine olanak sağlayabilecek güvenlik açıklarını keşfetmek için “Koşullu Bozulma” adı verilen bir teknik geliştirdiler ve bu açıklardan yararlanarak istenilen etkiyi elde etmek için kendi kendini değiştiren görüntüler oluşturdular.
Kakadu 8.41 sürümünden kod parçacıkları kullanılarak JPEG 2000’in güvenlik açıkları ve istismar stratejileri de dahil olmak üzere teknik bir genel bakış sunulmuş ve bulguları gösterilmiş ve istismar geliştirme sırasında karşılaşılan zorluklar açıklanmıştır.
JPEG 2000 standardı, bir görüntünün boyutları ve renk bilgileri gibi meta verilerini depolamak için kutular kullanır; bunlar hiyerarşiktir ve iç içe geçmiş yapılara olanak tanır.
Kod akışında kodlanan gerçek görüntü verileri, genellikle genel dosya yapısı içindeki belirli bir kutunun içinde yer alır.
Decoding Compliance: What CISOs Need to Know – Join Free Webinar
Segment Markers adı verilen bir Type-Length-Value konteynerleri dizisi olan Codestream, görüntü verilerini depolar. Her Segment Marker, benzersiz bir tanımlayıcıyla başlar ve ardından bir uzunluk alanı gelir.
Görüntü içindeki dikdörtgen birimler olan döşemeler, görüntüdeki konumunu hesaplamak için kullanılan bir döşeme dizini içeren Döşeme Başlangıcı (SOT) ve Veri Başlangıcı (SOD) işaretleyicileri tarafından tanımlanır.
Kakadu’nun JPEG 2000 kod çözücüsünde, işaretli tamsayı çarpımı nedeniyle yığın üzerinde sınır dışı yazma yapılması sonucu oluşan TALOS-2017-0309’un bir çeşidi olan Kod Akışı parçalanmasından yararlanılarak keyfi dosya okumalarına izin veren bir güvenlik açığı.
Saldırganların yerel dosyalardan JPX görüntülerinin kod akışına bayt enjekte etmesine olanak tanır. Saldırganlar, JPX görüntülerini belirli veri referansları ve parça tablolarıyla hazırlayarak, bunları görüntünün özellikleri veya pikselleri içinde kodlayarak keyfi dosyalardan bayt çıkarabilir.
Araştırmacılar, JPEG 2000’deki bir güvenlik açığını, bir görüntüdeki hassas verileri sızdırmak için döşeme verilerini ve yorum işaretleyicilerini manipüle ederek kullandılar ve sızdırılan baytları piksel değerlerine kodlamak için bir atlama tablosu mekanizması kullandılar, bu da veri sızdırılmasına ve potansiyel uzaktan kod yürütülmesine olanak sağladı.
Kakadu’nun 0x80 verisi içeren başlatılmamış kutucukları yazma şeklindeki varsayılan davranışının öngörülemeyen çökmelere neden olduğunu buldular.
SOT işaretleyicisinin kutucuk numarası parametresinden yararlanarak, yalnızca tek bir kontrollü veri kutucuğu yazacak bir görüntü oluşturmayı başardılar; böylece 808080 Kıyamet’i önlediler ve daha güvenilir ve öngörülebilir yığın taşmalarına olanak sağladılar.
Saldırganlar, nesne hizalamasını dinamik olarak belirlemek ve çökmeleri önlemek için bir Kha-Kha slaydı kullanarak bir kompozisyon katmanı uzantıları kutusunu istismar ederek Kakadu’da güvenilir bir yığın taşması buldular ve istismarın güvenilirliğini artırdılar.
Böcek avcısı Ayrıca geçersiz bellek adreslerini kontrol etmek ve erken çıkış yapmak için bir mekanizma eklendi, böylece istenmeyen hedeflerin istismarı önlendi.
Dosya okuma ve bellek okuma ilkelliklerinden yararlanarak, bir çalışan sürecini güvenilir bir şekilde hedeflemek ve neyi nereye yazacaklarına dair bir ilkel elde etmek için koşullu bozulma uyguladılar; bu da onların küresel değişkenleri bulmalarına, kontrol akışını ele geçirmelerine ve kullanıcıyı etkilemeden keyfi kod yürütmelerine olanak sağladı.
Simulating Cyberattack Scenarios With All-in-One Cybersecurity Platform – Watch Free Webinar