AI Hacking - Hackerlar Siber Saldırılarda Yapay Zekayı Nasıl Kullanıyor?

Şimdi Oku
Site çevirileri için yapay zeka kullanıyoruz ve doğruluk için çaba göstersek de her zaman %100 kesin olmayabilir. Anlayışınız için teşekkür ederiz.

Dompdf Kütüphanesi Güvenlik Açığını Ortaya Çıkarma ve Düzeltme OPSWAT MetaDefender Core 

tarafından OPSWAT
Bu Gönderiyi Paylaş
Bilgi Teknolojileri Üniversitesi öğrencileri Tai Tran ve Hai Dang Bui, mavi bir arka plan üzerinde profesyonel bir portre için poz veriyor
Öğrenciler OPSWAT Burs Programına katıldı

Teknolojinin hızlı yükselişi, yetenekli geliştiriciler için yüksek bir talep yarattı. Açık kaynaklı yazılımlar (OSS) bu büyüyen işgücü için hayati bir araç haline gelmiştir. Şu anda çeşitli programlama dillerinde yüz binlerce köklü OSS paketi bulunmaktadır. Geliştiricilerin %90'ından fazlası tescilli uygulamalarında bu açık kaynak bileşenlerinden yararlanarak OSS'nin verimliliğini ve değer önerisini vurgulamaktadır. Önemini daha da vurgulayan küresel açık kaynaklı yazılım pazarının 2030 yılına kadar 80,7 milyar dolara ulaşması ve yıllık %16,7'lik bir büyüme oranına ulaşması beklenmektedir. 

Software , dünyanın dört bir yanındaki iş operasyonlarının ayrılmaz bir parçasıdır ve bu nedenle tehdit aktörleri tarafından sıklıkla hedef alınmaktadır. 2023 yılında Uygulama Güvenliği için yapılan harcama yaklaşık 5,76 milyar dolardı ve 2024 yılında 6,67 milyar dolara ulaşacağı tahmin ediliyor. AppSec içinde, yazılım tedarik zinciri güvenliği son üç yılda önem kazanmış, en hızlı büyüyen saldırı kategorisini temsil etmiş ve büyük ihlaller ve istismarlar düzenli olarak manşetlere taşınmıştır. 

Kuruluşlar genellikle risklerin çoğunun kamuya açık web uygulamalarından kaynaklandığını varsayar. Ancak bu bakış açısı son yıllarda değişmiştir. Her uygulamada bulunan düzinelerce küçük bileşen sayesinde riskler artık kod tabanının herhangi bir yerinden ortaya çıkabilmektedir. Kurumların yazılım geliştirme yaşam döngüsündeki mevcut ve yeni ortaya çıkan güvenlik açıklarına aşina olması her zamankinden daha kritik bir öneme sahip. Bu blog yazısında, Mezun Bursiyerlerimiz, HTML ve CSS'den PDF belgelerinin dinamik olarak oluşturulmasını sağlayan güçlü bir PHP aracı olan ve yaygın olarak kullanılan dompdf kütüphanesinde keşfedilen kritik bir güvenlik açığı olan CVE-2023-23924'e daha yakından bakmaktadır. 

Kapsamlı bir analizle, bu güvenlik açığının teknik inceliklerini, önemli bir rol oynayan ilgili teknolojileri ve istismar sürecinin bir simülasyonunu keşfedeceğiz. Ayrıca nasıl olduğunu da inceleyeceğiz OPSWAT MetaDefender Coreözellikle de Software Bill of Materials (SBOM) motoru, bu güvenlik açığını tespit etmek ve azaltmak için kullanılabilir ve yazılım geliştiricileri ile güvenlik ekiplerinin potansiyel tehditlerden bir adım önde olmalarını sağlar. 

CVE-2023-23924 hakkında arka plan 

dompdf 2.0.1 sürümünde bir güvenlik açığı keşfedildi ve 2023'ün başında kamuoyuna açıklandı:

  • dompdf 2.0.1'deki URI doğrulaması, SVG ayrıştırma işleminde aşağıdakiler geçirilerek atlanabilir <image> etiketleri büyük harflerle yazılabilir. Bu, bir saldırganın rastgele protokollerle rastgele URL'leri çağırmasına olanak tanır ve 8.0.0'dan önceki PHP sürümlerinde rastgele nesne serileştirmemeye yol açar. PHAR URL sarmalayıcı aracılığıyla bu güvenlik açığı, mevcut sınıflara bağlı olarak rastgele dosya silinmesine ve hatta uzaktan kod yürütülmesine neden olabilir. 
  • NVD Analistleri CVE-2023-23924'e 9.8 KRİTİK CVSS puanı atamıştır. 
Güvenlik açıkları için önem derecesi ve vektör dizeleri dahil CVSS Sürüm 3.x için ölçümleri gösteren bilgilendirici diyagram

Dompdf Güvenlik Açığını Anlama 

dompdf'deki CVE-2023-23924 güvenlik açığını tam olarak anlamak için, birbiriyle yakından ilişkili iki teknolojiyi tanımak çok önemlidir: Ölçeklenebilir Vektör Grafikleri (SVG) ve PHAR dosyaları. 

SVG (Ölçeklenebilir Vektör Grafikleri) 

SVG (Ölçeklenebilir Vektör Grafikleri), hafif ve ölçeklenebilir kalırken web üzerinde yüksek kaliteli grafikler oluşturma yeteneği nedeniyle yaygın bir popülerlik kazanmış çok yönlü bir görüntü formatıdır. Raster görüntülerin aksine, SVG'ler XML işaretlemesine dayanır ve çizgiler, şekiller ve metin gibi öğeler üzerinde hassas kontrol sağlar. SVG'lerin en önemli avantajlarından biri, görüntü kalitesini kaybetmeden sorunsuz bir şekilde ölçeklenebilmeleridir, bu da onları duyarlı web tasarımı ve yüksek çözünürlüklü ekranlar için ideal hale getirir.  

SVG'yi farklı renklerde çoklu poligonlarla görüntüleyen, XML biçiminde programlamayı gösteren kod parçacığı
PHAR dosyası 

PHAR (PHP Arşivi), JAR dosyası konseptine benzer ancak PHP içindir. Tüm PHP kod ve kaynak dosyalarını tek bir arşiv dosyasında toplayarak kolay dağıtım sağlar.  

Bir PHAR dosyası 4 bölümden oluşur:  

  • Taslaklar: arşivi önyüklemek için kod içerir. 
  • Manifest: arşivin meta verilerini içerir. Meta veriler serileştirilmiş biçimde saklanır ve bu da kötü amaçlı bir PHAR dosyasında PHP serileştirme saldırısını tetiklemek için kullanılabilir. 
  • Dosya içeriği: PHP kodu, kaynak dosyaları dahil olmak üzere arşivin içeriğini içerir. 
  • İmza (İsteğe bağlı): dosya bütünlüğünü doğrulamak için veri içerir. 

Meta verilerin serileştirilmiş biçimde saklanması nedeniyle, PHAR sarmalayıcısının ve PHAR dosyasının meta verilerinin kombinasyonu, aşağıdaki gibi PHP işlevlerinde girdi olarak kullanıldığında potansiyel olarak bir serileştirme saldırısını tetikleyebilir file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime(), veya filesize(). Bu güvenlik ihmali, saldırganların bir PHAR dosyası aracılığıyla uzak kod çalıştırmasına olanak sağlayabilir. 

Phar arşiv bildiriminin temel dosya biçimini, bayt cinsinden boyutunu ve her bir parçanın açıklamasını içeren tablo

Dompdf PDF Dosyasını Nasıl Oluşturur?

Bir HTML dosyasını PDF formatına dönüştürme sürecini gösteren, ara adımları ve dosya formatlarını vurgulayan akış şeması

OPSWAT Lisansüstü Bursiyerleri, analiz yoluyla dompdf'de dönüştürme işlemi sırasında üç aşama olduğunu tespit etti. Bir HTML dosyasını PDF formatına dönüştürmek için, dompdf kütüphanesi ilk olarak girdi dosyasını bir DOM ağacına ayrıştırır ve her nesnenin konumlandırma ve düzen bilgilerini depolar. Ardından, CSS stilleri ayrıştırılır ve her nesneye uygulanır. Son olarak, nesneler sayfaya sığacak şekilde yeniden düzenlenir ve nihai PDF dosyasına dönüştürülür.  

Dompdf'de Güvenlik Açığı

Güvenliği artırmak için dompdf, bir sonraki adıma geçmeden önce URI girdilerinin güvenliğini sağlamak için doğrulama uygular. Bu doğrulama işlemi, SVG dosyasının işlenmesi sırasında xlink:href nitelik. 

SVG dosyalarını işlemek için PHP kod örneği, SVG içeriğini ayrıştırma ve doğrulama işlevlerini gösterir

Eğer SVG giriş dosyası <image> etiketi altında <svg> etiketinde, yalnızca aşağıdaki gibi belirli protokollere izin vermek için bir koşul uygulanır http://, https:// ve file://için xlink:href Alan.

Kullanıcıların PDF'ye dönüştürülmek üzere HTML veya SVG dosyalarını yüklemelerine olanak tanıyan bir PDF Dönüştürücü hizmeti için web arayüzü

Bu resolve_url() fonksiyonu URI'yi işlemeden önce doğrulayacaktır. drawImage() işlevini yerine getirir. URI'deki şema izin verilen protokoller arasında değilse resolve_url() işlevi uygulamaya bir istisna döndürecektir. 

Veri URI'lerinin nasıl işleneceğini gösteren, web uygulamalarında hata işleme ve protokol doğrulamayı gösteren PHP betiği

URI doğrulamayı geçerse, daha sonra drawImage() fonksiyonunu kullanan file_get_contents() fonksiyonu içinde URI değerini işlemek için xlink:href özniteliği. Güvenlik açığı bu noktada ortaya çıkar: bir saldırgan doğrulamayı atlayabilir ve URI'ye bir PHAR sarmalayıcı geçirebilirse bir PHAR serileştirme saldırısı tetiklenebilir. 

Analizden sonra, doğrulamanın yalnızca tam ad resmine sahip etiketler üzerinde uygulandığı keşfedilmiştir. 

Veri URL'lerinden resim çizmek ve dosya içeriklerini işlemek için ayrıntılı işlevler içeren PHP resim işleme örneği

Sonuç olarak, etiket adında Image gibi bir veya daha fazla karakterin büyük harfle yazılmasıyla kolayca atlatılabilir. Sonuç olarak, image yerine Image kullanan özel olarak hazırlanmış bir SVG dosyası bu doğrulamayı atlatabilir. 

Bir sonraki adımda drawImage() fonksiyonu çağrılır ve SVG dosyasındaki URI file_get_contents() işlevini kullanabilir. Bu nedenle, doğrulama baypası ve PHAR dosyasına yönelik bir deserialization saldırısının birleşimi, bir saldırganın Uzaktan Kod Yürütme gerçekleştirmesine olanak tanır. Bu güvenlik açığı, kötü niyetli bir saldırganın, dompdf'nin savunmasız bir sürümü tarafından işlenmesi durumunda bir SVG dosyası aracılığıyla uygulama sunucusunu tehlikeye atmasına kapı açar. 

Dompdf İstismar simülasyonu

Savunmasız Uygulama

Bu istismarı gerçek dünya senaryosu olarak simüle etmek için OPSWAT Graduate Fellows, dompdf kütüphanesinin 2.0.1 sürümünü kullanarak HTML'den PDF'e dönüştürme özelliğine sahip bir web uygulaması geliştirdi. Bu uygulama, kullanıcıların HTML, XML veya SVG gibi dosya türlerini yüklemelerine ve ardından bunları PDF dosyalarına dönüştürmelerine olanak tanır. 

Dosya yükleme ve dönüştürme işlevselliğini vurgulayan insansı bir avatar içeren web tabanlı bir PDF Dönüştürücü aracının ekran görüntüsü

Bir saldırgan, savunmasız bir dompdf sürümü (sürüm 2.0.1) kullanan bir uygulamada bu güvenlik açığından yararlanmak için aşağıdaki adımları izleyecektir: 

HTML'yi yatay formatta bir PDF dosyasına dönüştürmek için Dompdf kütüphanesinin kullanımını gösteren PHP kod parçacığı
Bir PHP projesi için Dompdf kütüphanesi sürüm 2.0.1 gereksinimini belirten Composer.json dosya parçacığı
İstismar Akışı
Ters kabuk çalıştırmak için Dompdf güvenlik açığını kullanarak SVG dosyalarından yararlanmaya yönelik dört adımlı süreci açıklayan grafiksel bir diyagram

İlk olarak, bir saldırgan, yıkıcı çağrıldığında ters kabuk oluşturan kötü amaçlı bir nesne oluşturur. 

PHP'de ters kabuk aracılığıyla uzaktan kod yürütülmesine yol açan nesne serileştirme açığını gösteren PHP kodu örneği

İkinci olarak, saldırgan kötü amaçlı meta veri nesnesini içeren bir PHAR dosyası oluşturur. PHAR dosyası PHAR sarmalayıcı tarafından çağrıldığında file_get_content() fonksiyonu ile metadata unserialize edilir ve belirtilen nesne işlenir. Bu deserialization işlemi sırasında destructor'ları tetikler ve reverse shell'i çalıştırır. 

Uzak bir komutu çalıştırmak için serileştirilmiş nesne verilerini içeren bir Phar arşivinin oluşturulmasını gösteren PHP betiği

Nihayetinde, saldırgan PHAR sarmalayıcısını içeren URI bağlantısını xlink:href özniteliğini kullanarak doğrulamayı atlatabilir, kötü amaçlı kod çalıştırabilir ve bu kötü amaçlı dosyayı uygulamaya yükleyebilirsiniz. 

Bir resim referansı aracılığıyla uzak PHP seri numarası kaldırma istismarının nasıl yerleştirileceğini gösteren SVG kod parçacığı

Yüklenen kötü amaçlı SVG dosyasının işlenmesi sırasında, uygulama saldırganla ters bağlantı kurarak uygulama sunucusunu tehlikeye atmalarını sağlar. 

Dijital insan modeli içeren HTML/SVG dosyalarını yükleme ve PDF'ye dönüştürme seçeneklerini gösteren bir PDF dönüştürücünün web arayüzü
Başarılı bir ters TCP bağlantısını ve ağ yapılandırma ayrıntılarını gösteren bir Metasploit konsolunun ekran görüntüsü
Bir Unix sisteminden alınan ağ yapılandırmasını ve kimlik bilgilerini gösteren terminal ekran görüntüsü

Açık Kaynak Bileşenlerinin Güvenliğini Sağlama OPSWAT MetaDefender Core 

dompdf'deki CVE-2023-23924 güvenlik açığını tespit etmek ve azaltmak için Mezun Araştırmacılarımız, SBOM da dahil olmak üzere gelişmiş kötü amaçlı yazılım önleme ve tespit teknolojileri sunan çok katmanlı bir siber güvenlik ürünü olan OPSWAT MetaDefender Core 'u kullandılar. 

OPSWAT SBOM, kaynak kodu ve konteynerler için kapsamlı bir bileşen envanteri sağlayarak yazılım tedarik zincirini güvence altına alır. OPSWAT SBOM, dompdf kütüphanesini ve bağımlılıklarını analiz ederek güvenlik açığı bulunan 2.0.1 sürümünün varlığını hızlı bir şekilde tespit edebilir ve kullanıcıları potansiyel riske karşı uyarabilir. 

Ayrıca OPSWAT SBOM, CVE-2023-23924 güvenlik açığını anlamak ve azaltmak için gerekli olan SVG ve PHAR dosyaları gibi ilgili teknolojileri tespit edebilir. Uygulamanın yazılım bileşenlerinin bu bütünsel görünümü, güvenlik ekiplerinin bilinçli kararlar almasını ve belirlenen riskleri ele almak için uygun eylemleri gerçekleştirmesini sağlar. 

Ayrıntılı değerlendirme sonuçlarıyla birlikte güvenlik açıkları nedeniyle engellenmiş bir JavaScript dosyasını gösteren güvenlik analizi arayüzü

OPSWAT SBOM, güvenlik açığı bulunan dompdf sürümünü tespit etmenin ötesinde, etkilenen bileşenler, bunların sürümleri ve mevcut güncellemeler veya yamalar hakkında da değerli bilgiler sağlar. Bu bilgiler, güvenlik ekiplerinin düzeltme çabalarını önceliklendirmelerine ve uygulamanın güvenli bir dompdf sürümüne güncellenmesini sağlayarak CVE-2023-23924 güvenlik açığını etkili bir şekilde ele almalarına olanak tanır. 

Bir JavaScript nesne gösterim dosyasındaki güvenlik açıklarının ayrıntılı görünümü, CVE tanımlayıcılarıyla kritik ve yüksek güvenlik risklerinin listelenmesi

Kuruluşlar, MetaDefender Core adresindeki SBOM motorundan yararlanarak yazılım tedarik zincirlerini proaktif bir şekilde izleyebilir, açık kaynaklı bileşenlerdeki olası güvenlik açıklarını tespit edebilir ve zamanında hafifletme stratejileri uygulayarak uygulamalarının genel güvenliğini ve bütünlüğünü sağlayabilir. 

Kapanış Düşünceleri 

CVE-2023-23924'ün dompdf kütüphanesinde keşfedilmesi, uygulama güvenliğinin dinamik ortamında uyanık olmaya duyulan kritik ihtiyacın altını çizmektedir. Güvenlik ekipleri, bu blog yazısında özetlenen içgörü ve stratejilerden yararlanarak uygulamalarını bu tür güvenlik açıklarına karşı etkili bir şekilde tespit edebilir, azaltabilir ve koruyabilir, böylece yazılım ekosistemlerinin genel güvenliğini ve bütünlüğünü sağlayabilir. 

Etiketler:

OPSWAT ile Güncel Kalın!

En son şirket güncellemelerini almak için bugün kaydolun, hikayeler, etkinlik bilgileri ve daha fazlası.