Zephyrnet Logosu

WinRAR'ı mı kullanıyorsunuz? Bu kod yürütme hatalarına karşı yama yaptığınızdan emin olun…

Tarih:

Saygıdeğer RAR programı, kısaltması Roshal'ın Arşivcisi Orijinal yaratıcısından sonra, yerleşik hata kurtarma ve dosya yeniden yapılandırma özellikleri nedeniyle, onlarca yıldır dosya paylaşımı ve yazılım dağıtım çevrelerinde popüler olmuştur.

İlk internet kullanıcıları, büyük dosya aktarımlarının birden fazla diskete bölünmüş sıkıştırılmış arşivler halinde gönderildiği ya da boyut bilincine sahip çevrimiçi forumlara, ilk önce kaydedilmek üzere sıkıştırılan mütevazı boyutlu parçalar halinde yüklendiği günleri pek de sevgiyle hatırlayacaktır. boşluk ve daha sonra yalnızca ASCII metin kodlu bir forma genişletildi.

Bir disket kaybolursa veya düzgün bir şekilde okunmazsa ya da 12 parçalı arşiv yüklemesinin bir kısmı yanlışlıkla sunucudan silinirse, şansınız kalmaz.

RAR veya çağdaş Windows biçiminde WinRAR, sözde sunarak bu sorunun üstesinden gelmeye yardımcı oldu. kurtarma hacimleri.

Bu depolanan hata düzeltme verileri, çok parçalı arşivlerin, bir parçanın tamamı (veya kurtarma bilgisinin ne kadarının saklandığına bağlı olarak daha fazlası) kaybolsa veya geri getirilemez hale gelse bile otomatik olarak ve tamamen kurtarılabilmesini sağlar.

Bagajda/bagajda yedek lastik bulundurulması

Görünüşe göre, sürüm 4'e kadar olan RAR arşivleri sözde kullanılıyor parite düzeltmesi; daha yeni sürümler, hesaplama açısından daha karmaşık ancak daha güçlü bir hata düzeltme sistemi kullanır. Reed-Solomon kodları.

Eşlik bazlı düzeltme, burada ⊕ (daire içindeki artı işareti) sembolüyle göstereceğimiz XOR işlemine dayanır.

XOR'un kısaltması özel veya"Ya X doğrudur ya da Y doğrudur, ancak ikisi aynı anda doğru değildir" anlamına gelir, dolayısıyla bunu takip eder doğruluk tablosuX ve Y'nin yalnızca 0 (yanlış) veya 1 (doğru) değerlerine sahip olabileceğini varsayarak oluşturduğumuz:

Eğer X=0 ve Y=0 ise X ⊕ Y = 0 (iki yanlış bir yanlış yapar) Eğer X=1 ve Y=0 ise o zaman X ⊕ Y = 1 (biri doğru olabilir ancak ikisi birden olamaz) Eğer X=0 ve Y=1 ise X ⊕ Y = 1 (biri doğru olabilir ama ikisi birden olamaz) Eğer X=1 ve Y=1 ise X ⊕ Y = 0 (biri veya diğeri olmalıdır)

XOR işlevi biraz "Kahve mi çay mı istersin?" sorusuna benzer şekilde çalışır.

Eğer “evet” derseniz, ya kahveyi ya da çayı tek başınıza seçmelisiniz çünkü ikisinden de birer fincan içemezsiniz.

Yukarıdaki doğruluk tablosundan da anlayabileceğiniz gibi, XOR aşağıdaki uygun özelliklere sahiptir: X ⊕ 0 = X, ve X ⊕ X = 0.

Şimdi A, B ve C olarak etiketlenmiş üç veri parçanız olduğunu ve A, B ve C'yi birlikte XOR'layarak dördüncü bir P parçasını hesapladığınızı hayal edin. P = (A ⊕ B ⊕ C).

Yukarıdaki doğruluk tablosu göz önüne alındığında ve XOR'un şu şekilde bilindiği göz önüne alındığında: degiştirilebilenBu, eğer isterseniz bir hesaplamadaki değerlerin sırasının değiştirilebileceği anlamına gelir; böylece X ⊕ Y = Y ⊕ Zya da A ⊕ B ⊕ C = C ⊕ B ⊕ A = B ⊕ C ⊕ A vb. şunu görebiliriz:

Bir ⊕ B ⊕ C ⊕ P = Bir ⊕ B ⊕ C ⊕ (A ⊕ B ⊕ C) = (A⊕A) ⊕ (B⊕B) ⊕ (C⊕C) = 0 ⊕ 0 ⊕ 0 = 0

Şimdi bakın A, B veya C'den herhangi biri kaybolursa ne olur:

A ⊕ B ⊕ P = A ⊕ B ⊕ (A ⊕ B ⊕ C) = (A⊕A) ⊕ (B⊕B) ⊕ C = 0 ⊕ 0 ⊕ C = C <-eksik parça geri dönüyor! A ⊕ C ⊕ P = A ⊕ C ⊕ (A ⊕ B ⊕ C) = (A⊕A) ⊕ (C⊕C) ⊕ B = 0 ⊕ 0 ⊕ B = B <-eksik parça geri dönüyor! B ⊕ C ⊕ P = B ⊕ C ⊕ (A ⊕ B ⊕ C) = (B⊕B) ⊕ (C⊕C) ⊕ A = 0 ⊕ 0 ⊕ A = A <-eksik parça geri dönüyor!

Ayrıca P kaybolursa bunu göz ardı edebiliriz çünkü hesaplayabiliriz. A ⊕ B ⊕ C neyse.

Basitçe söylemek gerekirse, eşlik veri öbeği P'ye sahip olmak, hangisi olursa olsun, eksik olan herhangi bir öbeği her zaman yeniden oluşturabileceğimiz anlamına gelir.

Hata kurtarma hatası

Yıllarca fark edilmediğini varsaydığımız bir hatanın ardından artık bu hata adı veriliyor. CVE-2023-40477 yüzeye çıktı WinRAR'da.

Bu hata, ürün bu veri kurtarma sistemini kullandığında (ironik bir şekilde) tetiklenebilir.

Görebildiğimiz kadarıyla, bir arşive eklenen bubi tuzaklı bir eşlik veri yığını, WinRAR kodunu kendisine ayrılan bellek alanının dışına veri yazması için kandırabilir.

Bu sömürülebilir bir duruma yol açar arabellek taşması Güvenlik açığı.

Ait olmadığı yere yazılan veriler, arşivden çıkarma sürecinde kullanılacak düz eski veriler yerine, yürütülen program kodu olarak ele alınır.

Bu hata, CVSS "tehlike ölçeğinde" 10/10 ciddiyet puanı alamadı; hedeflenen kullanıcının bir tür yardımı olmadan güvenlik açığından yararlanılamayacağı gerekçesiyle 7.8/10 olarak gerçekleşti.

İkinci hata

İlginç bir şekilde, en son WinRAR sürümünde ikinci bir güvenlik hatası yamandı ve bu, yukarıda bahsedilen CVE-2023-40477 kusurundan daha az sorun yaratmış gibi görünse de, TechCrunch'ın önerdiği bubi tuzaklı arşivler aracılığıyla gerçek hayatta istismar edildiği “Çok çeşitli ticaret, yatırım ve kripto para birimiyle ilgili konuları [kapsayan] en az sekiz halka açık forumda yayınlandı.”

Bunun için bir CVE numarası bulamıyoruz, ancak WinRAR bunu basitçe şöyle açıklıyor:

 Kullanıcı özel hazırlanmış bir arşivdeki bir öğeye çift tıkladıktan sonra WinRAR yanlış bir dosyayı başlatabilir.

Başka bir deyişle, bir arşiv açan ve içindeki görünüşte masum bir dosyaya (örneğin, README metin dosyası veya zararsız görünen bir resim) bakmaya karar veren bir kullanıcı, beklenmedik bir şekilde arşivden bunun yerine başka bir dosyayı başlatabilir. yürütülebilir bir komut dosyası veya program olarak.

Bu biraz, riskli görünen bir ekin yanı sıra güvenli görünen bir ek içeren bir e-posta almak, yalnızca güvenli görüneni araştırarak başlamaya karar vermek, ancak bunun yerine riskli dosyayı farkında olmadan ateşlemeye benzer.

Anlayabildiğimiz kadarıyla, başka bir ironi de bu hatanın, kendi RAR dosya formatını işleme kodunda değil, WinRAR'ın ZIP dosyalarını açma kodunda mevcut olmasıydı.

İki yüzlü ZIP dosyaları yıllardır bir siber güvenlik sorunu olmuştur, çünkü herhangi bir ZIP arşivindeki dosya ve dizin dizini iki kez görünür; bir kez dosya boyunca serpiştirilmiş bir dizi veri bloğunda ve daha sonra tekrar tek bir veri yığınında. son. Dosyaları bir dizine göre doğrulayan, ancak iki dizinin tutarlı olup olmadığını kontrol etmeden bunları diğerine göre çıkaran ve kullanan kod, yıllar içinde çok sayıda istismar edilebilir güvenlik açığına yol açmıştır. Bu çift dizin sorununun son WinRAR hatasının temel nedeni olup olmadığını bilmiyoruz, ancak bu, arşiv dosyalarının paketini açmanın karmaşık ve hataya açık bir süreç olabileceğini ve güvenlik açısından dikkatli olunması gerektiğini, hatta bunun bedelini ödeyebileceğinizi hatırlatır. ekstra işleme ve azaltılmış performans.

Ne yapalım?

WinRAR kullanıcısıysanız, üzerinde olduğunuzdan emin olun en son versiyon, bu yazının yazıldığı sırada 6.23'tür [2023-08-23T16:30Z]

Görünüşe göre WinRAR yazılımında otomatik güncelleme sistemi yok, bu nedenle eski sürümü değiştirmek için yeni yükleyiciyi indirip kendiniz çalıştırmanız gerekiyor.

Eğer bir programcıysanız, Halen yazılımınızda bulunan ancak "kullanımdan kaldırılmış" veya "artık yeni kullanıcılara önerilmiyor" olarak değerlendirilen eski kodu incelemeyi unutmayın.

Görebildiğimiz kadarıyla WinRAR artık eski tarz kurtarma verileri üretmiyor ve sürüm 5'ten bu yana daha akıllı hata düzeltme algoritmaları kullanıyor ancak geriye dönük uyumluluk nedeniyle, sunulmaları halinde eski tarz dosyaları işlemeye devam ediyor.

Saldırganların yazılımınızı tetiklemeyi umarak bubi tuzaklı dosyalar oluşturduğunda, genellikle bu dosyaları oluşturmak için yazılımınızı kullanmadıklarını, dolayısıyla kendi giriş rutinlerinizi yalnızca kendi çıkış rutinlerinizin orijinal olarak oluşturduğu dosyalara karşı test etmenin asla yeterli olmadığını unutmayın.

Eğer dikkate almadıysanız tüylenmeMilyonlarca değiştirilmiş, hatalı biçimlendirilmiş ve kasıtlı olarak yanlış girdinin yazılımınıza sunulduğu ve hatalı davranışlara karşı izlendiği bir test tekniğini ifade eden jargon terimi…

…o zaman şimdi bunu düşünmenin zamanı gelmiş olabilir.

İyi fuzzer'lar kodunuzu tekrar tekrar çalıştırmakla kalmaz, aynı zamanda ince ayarları uyarlayın, kodunuzun mümkün olduğunca büyük bir kısmının denenmesi için sahte giriş verilerinde yaptıkları saldırılar ve değişiklikler.

Bu, iyi olarak bilinen şeyi elde etmenize yardımcı olur kod kapsamı test sırasında, programınızı normal kullanımda neredeyse hiç tetiklenmeyen ve keşfedilmemiş güvenlik açıklarının yıllardır fark edilmeden gizlenmiş olabileceği nadir ve olağandışı kod yollarına zorlamak da dahil.


spot_img

En Son İstihbarat

spot_img