Güvenlik ekiplerinin, komut satırı aracı curl ve libcurl kitaplığında yakın zamanda düzeltilen güvenlik açıklarını gidermek için kriz moduna geçmesi gerekmez, ancak bu, etkilenen sistemleri tanımlama ve düzeltme konusunda endişelenmelerine gerek olmadığı anlamına gelmez. Sistemlerden hemen yararlanılamazsa güvenlik ekiplerinin bu güncellemeleri yapmak için biraz zamanı vardır.
Bu Teknik İpucu, güvenlik ekiplerinin risk altında olmadıklarından emin olmak için ne yapmaları gerektiğine ilişkin rehberliği bir araya getirir.
Unix ve Linux sistemleri için temel bir ağ oluşturma aracı olan cURL, komut satırlarında ve komut dosyalarında veri aktarımı için kullanılır. Yaygınlığı, hem bağımsız bir yardımcı program (curl) hem de birçok farklı uygulama türünde (libcurl) yer alan bir kütüphane olarak kullanılmasından kaynaklanmaktadır. Geliştiricilerin kendi kodlarından curl API’lerine erişmesine olanak tanıyan libcurl kitaplığı, doğrudan kodun içine yerleştirilebilir, bağımlılık olarak kullanılabilir, bir işletim sistemi paketinin parçası olarak kullanılabilir, bir Docker konteynerinin parçası olarak dahil edilebilir veya bir Kubernetes küme düğümü.
CVE-2023-38545 Nedir?
Yüksek önem derecesine sahip güvenlik açığı curl ve libcurl’u etkiler 7.69.0 ila 8.3.0 sürümleri ve düşük önem derecesine sahip güvenlik açığı, libcurl’un 7.9.1 ila 8.3.0 sürümlerini etkiliyor. Ancak varsayılan koşullar altında güvenlik açıklarından yararlanılamaz. Güvenlik açığını tetiklemeye çalışan bir saldırganın, curl’u kendi kontrolü altındaki kötü amaçlı bir sunucuya yönlendirmesi, curl’un proxy çözümleyici modunu kullanarak bir SOCKS5 proxy kullandığından emin olması, curl’u yönlendirmeleri otomatik olarak takip edecek şekilde yapılandırması ve arabellek boyutunu daha küçük bir değere ayarlaması gerekir. boyut.
Buna göre Yair MizrahiJFrog’da kıdemli bir güvenlik araştırmacısı olan libcurl kütüphanesi savunmasızdır sadece aşağıdaki ortam değişkenleri ayarlanmışsa: CURLOPT_PROXYTYPE yazmaya ayarla CURLPROXY_SOCKS5_HOSTNAME; veya CURLOPT_PROXY veya CURLOPT_PRE_PROXY şemaya göre ayarla çorap5h://. Ayrıca proxy ortam değişkenlerinden birinin, çorap5h:// şeması. Komut satırı aracı yalnızca aşağıdaki komutla çalıştırıldığında saldırıya açıktır: -socks5-ana bilgisayar adı bayrak veya ile –proxy (-x) veya –preproxy şemayı kullanacak şekilde ayarla çorap5h://. Etkilenen ortam değişkenleriyle curl çalıştırılırsa da bu durum savunmasızdır.
“Bir makinenin savunmasız olması için gereken ön koşullar dizisi (önceki bölüme bakın), başlangıçta inanıldığından daha kısıtlayıcıdır. Bu nedenle curl kullanıcılarının büyük çoğunluğunun bu güvenlik açığından etkilenmeyeceğine inanıyoruz,” diye yazdı Mizrahi analizde.
Ortamı Savunmasız Sistemlere Karşı Tarayın
Kuruluşların yapması gereken ilk şey, bu ön koşulların mevcut olup olmadığını değerlendirmek için curl ve libcurl kullanarak tüm sistemleri tanımlayacak şekilde ortamlarının kapsamını belirlemektir. Cycode güvenlik araştırması başkanı Alex Ilgayev, kuruluşların kod, tarama kapsayıcıları ve uygulama güvenliği duruş yönetimi yardımcı programları için yazılım bileşimi analiz araçlarını kullanarak sistemlerinin envanterini çıkarmaları ve yazılım teslim süreçlerini değerlendirmeleri gerektiğini belirtiyor. Güvenlik açığı her curl uygulamasını etkilemese de ekibin bakılacak potansiyel konumların bir listesiyle başlaması durumunda etkilenen sistemleri belirlemek daha kolay olacaktır.
Aşağıdaki komutlar hangi curl sürümlerinin yüklü olduğunu tanımlar:
Linux/MacOS:
find / -name curl 2>/dev/null -exec echo "Found: " \; -exec --version \;
Pencereler:
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue -Filter curl.exe | ForEach-Object Write-Host "Found: $($_.FullName)"; & $_.FullName --version
GitHub’un bir özelliği var Endpoint için Defender’da çalıştırılacak sorgu ortamdaki curl yüklü olan veya curl kullanan tüm cihazları tanımlamak için. Qualys kurallarını yayınladı platformunu kullanmak için.
Docker kapsayıcılarını veya diğer kapsayıcı teknolojilerini kullanan kuruluşların da görüntüleri güvenlik açığı bulunan sürümlere karşı taraması gerekir. Özellikle docker görüntülerinde ve liburl kopyalarını içeren benzer varlıklarda oldukça fazla sayıda yeniden oluşturma bekleniyor. Docker bir araya geldi talimatların bir listesi Tüm görüntülerin değerlendirilmesi.
Mevcut depoları bulmak için:
docker scout repo enable --org <org-name> <org-name>/scout-demo
Yerel kapsayıcı görüntülerini analiz etmek için:
docker scout policy [IMAGE] --org [ORG]
Endor Labs güvenlik araştırmacısı Henrik Plate’e göre bu sorun, bir kuruluşta kullanılan tüm açık kaynaklı yazılımların titizlikle takip edilmesinin önemini vurguluyor.
Plate, “Curl ve libcurl’ün tüm kullanımlarını bilmek, ister curl’e yama uygulamak, ister güvenilmeyen ağlardan etkilenen sistemlere erişimi kısıtlamak veya diğer karşı önlemleri uygulamak olsun, gerçek riski değerlendirmek ve iyileştirme önlemleri almak için ön koşuldur” dedi.
Viakoo Labs başkan yardımcısı John Gallagher, uygulamanın bir yazılım malzeme listesiyle birlikte gelmesi durumunda kıvrılma örneklerini aramaya başlamak için iyi bir yer olacağını ekliyor.
Kusurların istismar edilemez olması güncellemelerin gerekli olmadığı anlamına gelmez. Yamalar mevcut doğrudan curl ve libcurl içinve birçok işletim sistemi (Debian, Ubuntu, Red Hat, vb.) de sabit sürümleri öne çıkardı. Libcurl birçok işletim sistemi ve uygulama tarafından kullanılan bir kitaplık olduğundan, diğer uygulamalardan gelen güvenlik güncellemelerine dikkat edin.
JFrog’dan Mizrahi’ye göre, güncellemeler dağıtılıncaya kadar geçici çözümlerden biri, SOCKS5 proxy’sine bağlanırken curl’u yerel ana bilgisayar adı çözümlemesini kullanmaya zorlamak. Bu sözdizimi, çorap5h şemasını değil, çorap5 şemasını kullanır: curl -x çoraplar5://someproxy.com. Kitaplıkta ortam değişkenini değiştirin CURLPROXY_SOCKS5_HOSTNAME ile CURLPROXY_SOCKS5.
Güvenlik mühendisi Benjamin Marr’a göre Davetsiz misafir, güvenlik ekiplerinin aşırı büyük dizeler için kıvrılma işaretlerini izlemesi gerekir; çünkü bu, sistemin güvenliğinin ihlal edildiğini gösterir. Bayraklar –socks5-ana bilgisayar adıveya –proxy veya –preproxy şemayı kullanacak şekilde ayarla çorap5h://.