deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Halide Compression, libwebp'den 3,19 kata kadar daha hızlı Rust tabanlı WebP çözücüsü wpd'yi yayımladı

Halide Compression'ın yeni Rust tabanlı WebP çözücüsü wpd, libwebp'yi geride bırakırken CVE-2023-4863 gibi istismarların arkasındaki bellek güvenliği hatalarını da ortadan kaldırıyor.

Halide Compression, libwebp'den 3,19 kata kadar daha hızlı Rust tabanlı WebP çözücüsü wpd'yi yayımladı

Halide Compression, Rust ile yazılmış açık kaynak bir WebP çözücüsü olan wpd'yi yayımladı. Şirket, wpd'yi şu anda tarayıcılarda, işletim sistemlerinde ve sayısız uygulamada WebP görüntülerini çözen Google'ın C kütüphanesi libwebp'nin yerini alacak uygun bir替代 konumunda sunuyor. Hacker News ana sayfasına ulaşan bir blog yazısıyla duyurulan ve BSD 2-Clause lisansıyla yayımlanan proje, açıkça CVE-2023-4863 ile örneklenen bir güvenlik açığı sınıfına yanıt olarak konumlandırılıyor.

Güvenlik gerekçesi

Görüntü çözücüleri yazılım yığınında sıkışık bir konum işgal eder: işletim sistemi bileşenlerinden korumalı tarayıcı süreçlerine kadar her yerde çalışırlar ve karmaşık, saldırgan tarafından kontrol edilen girdileri rutin olarak ayrıştırırlar. Halide'ye göre, bir WebP yığın taşması olan CVE-2023-4863, Chrome, Firefox, Signal ve Microsoft Teams gibi yazılımları çalıştıran milyarlarca cihazı etkileyebilirdi. CISA, bu açığın gerçek dünyada istismar edildiğini doğruladı ve onu Bilinen İstismar Edilen Güvenlik Açıkları kataloğuna ekledi.

Halide, libwebp'nin eskisinden muhtemelen daha güvenli olsa da yalnızca fuzzing ile bellek güvenliği riskini ortadan kaldırmadığını savunuyor. Şirket, tarayıcının yüksek şiddetli güvenlik hatalarının yaklaşık yüzde 70'inin bellek güvenliği sorunlarından kaynaklandığını gösteren Chromium ekibi verilerine atıf yapıyor. wpd bunu dil düzeyinde ele alıyor: Rust ile yazılmıştır ve elle yazılmış SIMD assembly kodu, dikkatle sınırlandırılmış, daha düşük riskli yollarla sınırlıdır. Sertleştirilmiş dağıtımlar için çözücü, elle yazılmış assembly olmadan tamamen derlenebilir; bu durumda geriye kalan tek unsafe kodun incelenmiş zerocopy crate'i olduğunu söylüyor Halide. Buna karşılık libwebp tamamen unsafe C ve SIMD intrinsic'lerinden oluşuyor.

Performans rakamları

Yalnızca güvenlik hedef değildi. Halide, mevcut image-webp crate'inin zaten bellek güvenli bir seçenek sunduğunu belirtiyor; bu nedenle wpd'nin mevcut çözücüden hızda da üstün olması gerekiyordu. Şirketin, image-webp 0.2.4 ve a1d89ff commit'indeki libwebp ile karşılaştırma yapan benchmark setinde wpd şu sonuçları verdi:

  • Kayıplı kod çözmede tek iş parçacıklı olarak libwebp'den 1,19 kat daha hızlı
  • Kayıpsız kod çözmede tek iş parçacıklı olarak 2,74 kat daha hızlı
  • Kayıplı kod çözmede çok iş parçacıklı olarak 2,68 kat daha hızlı
  • Kayıpsız kod çözmede çok iş parçacıklı olarak 3,19 kat daha hızlı

Halide bir uyarı ekliyor: test derlemi animasyonlu WebP içeriğini sabit görüntülerle karıştırdığı için çok iş parçacıklı sonuçlar paralel görüntü kod çözmeden yararlanıyor; tek iş parçacıklı kazanımlar ise tamamen algoritmik iyileştirmelerden geliyor.

Özellik eşliği, artı bazı ekstralar

libwebp ile tam özellik eşliği belirtilen bir hedef ve proje; kayıplı ve kayıpsız kod çözme, alfa şeffaflığı, animasyon birleştirme, ICC/EXIF/XMP çıkarma, çok çeşitli RGB ve YUV çıktı biçimleri, yerleşik kırpma ve ölçekleme, artımlı kod çözme ve dahili çoklu iş parçacığını kapsayan ayrıntılı bir karşılaştırma tablosu yayımlıyor. Bunun üzerine wpd, libwebp'de bulunmayan yetenekler ekliyor: BGR565 ve BGRA4444 çıktısı, açık bir iş parçacığı sayısı ayarı, paralel animasyon karesi önceden çözme, kare tahsisinden önce yapılandırılabilir bir piksel sayısı sınırı ve C ABI'nin yanında yerel bir Rust API'si. Tek bir boşluk kalıyor: libwebp hâlâ wpd'nin sunmadığı renk ve alfa renk taklidi (dithering) kontrolleri sunuyor.

Sürüm, Halide'ın fcvvdp ve fmetrics'ten sonra üçüncü açık kaynak projesi ve şirket, güvenlik hedeflerini ilerletmek için siber güvenlik firmalarıyla ortaklıklar araştırdığını söylüyor.

Neden önemli

WebP, web'de en yaygın dağıtılan görüntü biçimlerinden biri ve bu, referans çözücüsünü yüksek değerli bir saldırı yüzeyi yapıyor. CVE-2023-4863, libwebp'deki tek bir hatanın aktif olarak istismar edilirken milyarlarca cihazdaki tarayıcılara ve mesajlaşma uygulamalarına nasıl yayılabileceğini gösterdi. wpd, görüntü codec'lerindeki güvenlik ve hız arasındaki olağan ödünleşimin kaçınılmaz olmadığını kanıtlıyor: bir Rust çözücüsü, mevcut C kütüphanesini geride bırakırken yüksek şiddetli tarayıcı güvenlik açıklıklarının çoğuna yol açan bellek güvenliği hataları kategorisini de ortadan kaldırabiliyor. Tarayıcı, işletim sistemi ve görüntü işlem hattı bakımcıları için wpd artık makul, izin verici lisanslı bir geçiş yolu sunuyor ve kritik ayrıştırma kodunun C'den bellek güvenli dillere doğru daha geniş kaymasına ivme katıyor.

  • #webp
  • #rust
  • #open-source
  • #security
  • #image-processing

İlgili yazılar