1 puan yazan GN⁺ 2024-03-10 | 1 yorum | WhatsApp'ta paylaş

Apple curl güvenlik olayı 12604

  • 28 Aralık 2023'te curl issue tracker'a 12604 numaralı hata raporu gönderildi.
  • Sorunun başlığı "flag –cacert behavior isn’t consistent between macOS and Linux" idi ve macOS ile Linux arasında --cacert bayrağının davranışının tutarlı olmadığını işaret ediyordu.
  • Raporu gönderen kişi, macOS'e gömülü gelen curl sürümünün, açık kaynaktan tamamen derlenmiş curl ikilisinden farklı davrandığını gösterdi.

Apple sürümü sistem CA deposunu ikinci kez kontrol ediyor

  • --cacert komut satırı seçeneği, kullanıcının curl'e yalnızca belirli bir CA sertifika kümesine güvenmesini söylemesinin bir yolunu sunar.
  • macOS'te Apple tarafından sağlanan curl sürümü kullanıldığında, sağlanan CA sertifika kümesi doğrulamayı geçemezse sistem CA deposunu ikinci kez kontrol ettiği görülüyor.
  • Bu durum belgelenmemiştir ve kullanıcı açısından beklenmedik bir davranıştır.

Bu bir güvenlik sorunu

  • Kullanıcının belirttiği CA sertifika dosyasıyla kontrol çalıştırıldığında, sistem CA deposunda sunucuyu doğrulayabilecek bir sertifika varsa işlem başarısız olmaz.
  • Bu da geçmemesi gereken sertifika kontrollerinin geçmesine yol açan bir güvenlik sorunu yaratır.

Apple sorun olmadığını söylüyor

  • 8 Mart 2024'te Apple Product Security, OpenSSL sürümünün (LibreSSL) yerleşik sistem güven deposunu kasıtlı olarak varsayılan güven kaynağı olarak kullandığını belirterek yanıt verdi.
  • Sunucu sertifikası yerleşik sistem güven deposu kullanılarak başarıyla doğrulanabildiği için, bunu bir sorun olarak görmüyorlar.

Katılmıyorum

  • Bu belgelenmemiş özellik nedeniyle macOS'te curl ile yapılan CA sertifika doğrulaması tamamen güvenilir değil ve belgelerle de uyumlu değil.
  • Bu durum kullanıcıların kafasını karıştırabilir.
  • Bu sorun, dağıttığımız curl sürümündeki bir güvenlik açığı olmadığı için CVE yayımlamıyoruz.
  • Sorun teknik olarak curl kodunda değil, Apple'ın sağladığı ve curl derlemesinde kullandığı LibreSSL sürümünde.

GN⁺ görüşü

  • Bu olay, yazılımda güvenlik ve güvenilirliğin ne kadar önemli olduğunu vurguluyor. Kullanıcı yalnızca açıkça güvendiği CA sertifikalarının kullanılmasını isterken, sistemin örtük olarak başka sertifikaları da kabul etmesi ciddi güvenlik endişeleri doğurabilir.
  • Apple'ın yanıtı, şirketin kendi tanımladığı güvenlik kriterleri ile açık kaynak topluluğunun beklentileri arasında bir boşluk olduğunu gösteriyor. Bu, kullanıcılar ve geliştiriciler arasında ilgili platformda güvenliğin nasıl algılanıp yönetilmesi gerektiğine dair tartışmaları tetikleyebilir.
  • Bu tür sorunlar, açık kaynak yazılım kullanılırken ortaya çıkabilecek bağımlılık ve entegrasyon problemlerini öne çıkarıyor. Geliştiriciler, belirli platformların sunduğu kütüphane ve araçları kullanırken bu farkların farkında olmalı ve buna uygun şekilde hareket etmelidir.
  • Benzer işlevler sunan diğer projeler arasında OpenSSL ve GnuTLS bulunuyor; bunların her biri kendi güvenlik felsefesine ve uygulama yaklaşımına sahip. Kullanıcılar ve geliştiriciler bu alternatifleri değerlendirebilir.
  • Bir teknolojiyi benimserken, o teknolojinin güvenlik modeli ile platformlar arası uyumluluğu dikkatle incelenmelidir. Bu olay, Apple'ın LibreSSL uygulamasının standart curl davranışından farklı çalıştığını ortaya koyarak teknoloji seçimlerinin önemini vurguluyor.

1 yorum

 
GN⁺ 2024-03-10
Hacker News görüşleri
  • Apple'ın belirli bir "özelliğine" yönelik eleştiri

    • Bu özellik gereksiz hesaplama ekleyebilir veya beklenen doğrulama modelini bozabilir.
    • Bir kullanıcının kendi CA'sını sağlamak istemesinin nedeni, OS paketinde bu CA'nın bulunmaması ya da belirli bir CA'ya göre doğrulama yapmak istemesi olabilir.
    • Apple'ın bu davranışı beklenen sonuç değil.
  • Apple cihazı sahiplerinin niyetinden bağımsız olarak Apple politikası öne çıkıyor

    • Apple cihazının "sahibinin" istediğinin göz ardı edilip Apple politikasının öncelikli olması, şaşırtıcı olmayan yaygın bir durum.
  • libcurl'ün CA deposu kullanımına dair açıklama

    • CURLSSLOPT_NATIVE_CA seçeneği ayarlandığında, libcurl sertifika doğrulaması için işletim sisteminin varsayılan CA deposunu kullanır.
    • CA sertifika dosyası veya dizini ayarlanmışsa, bunlar varsayılan CA deposuyla birlikte aranır.
    • --cacert seçeneğiyle birlikte kullanıldığında, libcurl her iki ayara da uymaya çalışabilir; bu da bunların birbirini dışlayan seçenekler olabileceğini düşündürüyor.
  • SQLite F_BARRIERFSYNC olayıyla benzer bir durum

    • Apple'ın bunu umursamıyor gibi göründüğü belirtiliyor.
  • Daniel'in işaret ettiği noktaya göre curl'de düzeltme gerekliliği

    • Daniel curl'deki sorunu işaret ediyorsa, Apple bunu düzeltmeli.
  • curl belgelerindeki sorunlar ve libcurl'deki güvenlik kusuru

    • curl tüm protokolleri doğrudan kendisi uygulamaz; çeşitli kütüphaneleri destekler.
    • Bu yaklaşımın dezavantajı, birbirinden bağımsız backend'ler arasında tutarlı davranışı garanti etmenin zor olmasıdır.
    • libressl, openssl'in eksiksiz bir yeniden uygulaması değildir ve API'sini tamamen taklit etmek zorunda da değildir.
    • curl'ün iki seçeneği var: ilgili kütüphane desteğini bırakmak ya da sorunu belgelendirmek.
    • Kullanıcı kodunu bozmaktan kaçınmak için en azından sorunu belgelendirmeli.
    • libressl'in yaklaşımının güvenlik açısından kusurlu olduğu ve bir CVE açmak için gerekçe bulunabileceği belirtiliyor.
  • macOS ile birlikte gelen yazılımlara güvensizlik

    • macOS ile gelen araçların (ör. curl) üzerine MacPorts kullanılarak yazılıyor; çünkü bunlar çoğu zaman eski ya da sorunlu oluyor.
  • Apple'ın varsayılan davranışının bir arka kapı olarak görülebilmesi

    • Bunun kasıtlı ya da kötü niyetli olduğu söylenmiyor, ancak fiilen bir arka kapı gibi işleyebilir.
    • Kullanıcının kimlik doğrulama zincirine anahtar eklemek, arka kapı eklemekle aynı şeydir.
  • Apple'ın kullanıcı güvenliğini önemsememesine yönelik eleştiri

    • Varsayılan davranış ile alternatif davranış aynı şey değil.
    • Apple'ın güvenlik ekibinin okuduğunu anlama konusunda sorun yaşıyor olabileceği ima ediliyor.