CVE-2023-0286 OpenSSL A Tipi Güvenlik Açığı Nedir ?
7 Şubat'ta, OpenSSL, yazılım kütüphanesindeki yüksek düzeyde bir güvenlik açığı hakkında bir bildiri yayınladı. CVE-2023-0286 olarak izlenen bu zayıflık, bir X.509 GeneralName içindeki X.400 adres işleme ile ilgili bir tür karışıklık güvenlik açığıdır. Bu zayıflık, saldırganlara özel bellek içeriğini (örneğin özel anahtarlar veya hassas metinler) okuma ve hizmet reddi saldırısı gerçekleştirme imkanı tanıdığı için CVE-2023-0286 - OpenSSL'de Yüksek Düzeyli Bir Tür Karışıklığı Güvenlik Açığını Nasıl Düzeltileceğini öğrenmek önemlidir.
CVE-2023-0286 - OpenSSL'de Yüksek Düzeyli Bir Tür Karışıklığı Güvenlik Açığını Nasıl Düzeltileceğimizi öğrenmeye başlamadan önce, OpenSSL, X.400 adresi, X.509 GeneralName ve kamu anahtar altyapısı ekosistemindeki Sertifika İptal Listesi (CRL) hakkında biraz bilgi edinelim."
NOT :
OpenSSL
OpenSSL, SSL ve TLS protokollerinin geniş bir şekilde kullanılan açık kaynaklı bir uygulamasıdır. Şifreleme verilerini kullanmak için kullanılabilecek kriptografik algoritmaların bir kütüphanesini içerir. RSA, OpenSSL tarafından desteklenen algoritmaların birisidir.
X.400 Adres ve X.509 GenelAdı
Kamu anahtar altyapısında, X.400, bilgisayar ağları üzerinden iletilen mesajları göndermek için kullanılan bir elektronik posta adresleme formatı için bir standarttır. Bir X.400 adresi temelde bir posta adresidir. Sertifika işleme sürecinde kullanılır ve güvenli iletişimde yer alan varlıkları tanımlamaya yardımcı olur. Öte yandan, X.509, internet üzerinden kimlik doğrulama ve yetkilendirme için temel sağlayan bir kamu anahtar altyapısı (PKI) standardıdır. X.509 GenelAdı, X.400 adreslerini tutar. X.509 GenelAdı, diğer verilerle birlikte bir sertifikayı oluşturur ve güvenli iletişimde yer alan bir varlığın kimliğini doğrulamak için kullanılır.
X.400 Adres ve X.509 GenelAdı
Kamu anahtar altyapısında, X.400, bilgisayar ağları üzerinden iletilen mesajları göndermek için kullanılan bir elektronik posta adresleme formatı için bir standarttır. Bir X.400 adresi temelde bir posta adresidir. Sertifika işleme sürecinde kullanılır ve güvenli iletişimde yer alan varlıkları tanımlamaya yardımcı olur. Öte yandan, X.509, internet üzerinden kimlik doğrulama ve yetkilendirme için temel sağlayan bir kamu anahtar altyapısı (PKI) standardıdır. X.509 GenelAdı, X.400 adreslerini tutar. X.509 GenelAdı, diğer verilerle birlikte bir sertifikayı oluşturur ve güvenli iletişimde yer alan bir varlığın kimliğini doğrulamak için kullanılır.
CVE-2023-0286 Nedir ?
Bu, OpenSSL'de yüksek düzeyde bir tür karışıklık güvenlik açığıdır. Zayıflık, X.400 adreslerinin ayrıştırılma şekli ile ilgilidir. OpenSSL kütüphanesi, X.400 adresini bir ASN1_STRING veri türü olarak ayrıştırmalıdır, ancak bu ASN1_TYPE veri türü olarak ayrıştırılmaktadır, ki bu yanlıştır. Bu, klasik bir tür karışıklık güvenlik açısından bir hata oluşturdu.
Bu hata, sertifika iptal listesi (CRL) doğrulama işlemi gerçekleştirildiğinde tespit edilir. Sertifika İptal Listesi (CRL) doğrulama işlemi, Sertifika Yetkilileri tarafından verilen sertifikaların hala geçerli olup olmadığını doğrulamak için kullanılır. Sistemlerinin bütünlüğünü ve güvenliğini sağlamak için CRL'leri düzenli olarak doğrulamak amacıyla tasarlanmış önemli bir güvenlik önlemidir.
CRL doğrulama işlemi, bir sertifika yetkilisi (CA) tarafından iptal edilen sertifikaların bir listesini içeren bir CRL'nin yayımlandığı bir süreçle başlar. Doğrulama işleminin bir parçası olarak OpenSSL, iki X.400 adresini karşılaştırmalıdır. OpenSSL, bunu memcmp C işlevini kullanarak yapar. Zayıflık nedeniyle X.400 adresleri, ASN1_STRING veri türü yerine ASN1_TYPE veri türünde saklanmıştır.
ASN1_TYPE ve ASN1_STRING yapıları arasındaki bellek düzeni farkı nedeniyle, saldırganların memcmp'e sağlanacak keyfi bir bellek adresini belirlemesi mümkündür. Bu da saldırganın belirlediği bellek ile karşılaştırmalara neden olur ve böylece bellek içeriğinin ifşasına ve hizmet reddine olanak tanır.
TABLO
Bu, OpenSSL'de yüksek düzeyde bir tür karışıklık güvenlik açığıdır. Zayıflık, X.400 adreslerinin ayrıştırılma şekli ile ilgilidir. OpenSSL kütüphanesi, X.400 adresini bir ASN1_STRING veri türü olarak ayrıştırmalıdır, ancak bu ASN1_TYPE veri türü olarak ayrıştırılmaktadır, ki bu yanlıştır. Bu, klasik bir tür karışıklık güvenlik açısından bir hata oluşturdu.
Bu hata, sertifika iptal listesi (CRL) doğrulama işlemi gerçekleştirildiğinde tespit edilir. Sertifika İptal Listesi (CRL) doğrulama işlemi, Sertifika Yetkilileri tarafından verilen sertifikaların hala geçerli olup olmadığını doğrulamak için kullanılır. Sistemlerinin bütünlüğünü ve güvenliğini sağlamak için CRL'leri düzenli olarak doğrulamak amacıyla tasarlanmış önemli bir güvenlik önlemidir.
CRL doğrulama işlemi, bir sertifika yetkilisi (CA) tarafından iptal edilen sertifikaların bir listesini içeren bir CRL'nin yayımlandığı bir süreçle başlar. Doğrulama işleminin bir parçası olarak OpenSSL, iki X.400 adresini karşılaştırmalıdır. OpenSSL, bunu memcmp C işlevini kullanarak yapar. Zayıflık nedeniyle X.400 adresleri, ASN1_STRING veri türü yerine ASN1_TYPE veri türünde saklanmıştır.
ASN1_TYPE ve ASN1_STRING yapıları arasındaki bellek düzeni farkı nedeniyle, saldırganların memcmp'e sağlanacak keyfi bir bellek adresini belirlemesi mümkündür. Bu da saldırganın belirlediği bellek ile karşılaştırmalara neden olur ve böylece bellek içeriğinin ifşasına ve hizmet reddine olanak tanır.
TABLO
İlişkili CVE Kimliği | CVE-2023-0286 |
Tanım | OpenSSL'de, saldırganların özel bellek içeriğini (özel anahtarlar veya hassas düz metin gibi) okumasına ve hizmet reddi saldırıları gerçekleştirmesine olanak tanıyan Tür Karışıklığı Güvenlik Açığı. |
İlişkili ZDI Kimliği | – |
CVSS Puanı | 7,5 Yüksek |
Vektör | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Etki Puanı | – |
Yararlanabilirlik Puanı | – |
Saldırı Vektörü (AV) | Ağ |
Saldırı Karmaşıklığı (AC) | Düşük |
Ayrıcalık Gerekli (PR) | Hiçbiri |
Kullanıcı Etkileşimi (UI) | Hiçbiri |
Kapsam | değişmedi |
Gizlilik (C) | Hiçbiri |
Dürüstlük (I) | Hiçbiri |
kullanılabilirlik (a) | Yüksek |
Çoğu durumda, saldırıyı gerçekleştirmek için saldırganın hem sertifika zincirini hem de CRL'yi sağlaması gerekir; bunların hiçbirinin geçerli bir imzası olması gerekmez. Eğer saldırgan bu girdilerden sadece birini kontrol ediyorsa, diğer girdinin zaten nadiren bulunan bir CRL dağıtım noktası olarak bir X.400 adresini içermesi gerekir. Bu nedenle, bu zayıflığın muhtemelen yalnızca kendi ağları üzerinden CRL'leri almak için kendi işlevselliğini uygulayan uygulamaları etkileme olasılığı en yüksektir.
Çoğu durumda, saldırıyı gerçekleştirmek için saldırganın hem sertifika zincirini hem de CRL'yi sağlaması gerekir; bunların hiçbirinin geçerli bir imzası olması gerekmez. Eğer saldırgan bu girdilerden sadece birini kontrol ediyorsa, diğer girdinin zaten nadiren bulunan bir CRL dağıtım noktası olarak bir X.400 adresini içermesi gerekir. Bu nedenle, bu zayıflığın muhtemelen yalnızca kendi ağları üzerinden CRL'leri almak için kendi işlevselliğini uygulayan uygulamaları etkileme olasılığı en yüksektir.
Google'dan David Benjamin Der'ki
CVE-2023-0286'ya Duyarlı OpenSSL Sürümleri
Resmi bildiriye göre, OpenSSL sürümleri 3.0, 1.1.1 ve 1.0.2 bu zafiyete duyarlıdır. Sunucularınızda çalışan OpenSSL sürümlerini kontrol etmenizi ve OpenSSL'deki yüksek düzeyde bir Tür Karışıklığı Güvenlik Açığı olan CVE-2023-0286'yı düzeltmek için harekete geçmenizi öneririz.
Makinenizde çalışan OpenSSL sürümünü kontrol etmek için bu komutu çalıştırın.
Çoğu durumda, saldırıyı gerçekleştirmek için saldırganın hem sertifika zincirini hem de CRL'yi sağlaması gerekir; bunların hiçbirinin geçerli bir imzası olması gerekmez. Eğer saldırgan bu girdilerden sadece birini kontrol ediyorsa, diğer girdinin zaten nadiren bulunan bir CRL dağıtım noktası olarak bir X.400 adresini içermesi gerekir. Bu nedenle, bu zayıflığın muhtemelen yalnızca kendi ağları üzerinden CRL'leri almak için kendi işlevselliğini uygulayan uygulamaları etkileme olasılığı en yüksektir.
Google'dan David Benjamin Der'ki
CVE-2023-0286'ya Duyarlı OpenSSL Sürümleri
Resmi bildiriye göre, OpenSSL sürümleri 3.0, 1.1.1 ve 1.0.2 bu zafiyete duyarlıdır. Sunucularınızda çalışan OpenSSL sürümlerini kontrol etmenizi ve OpenSSL'deki yüksek düzeyde bir Tür Karışıklığı Güvenlik Açığı olan CVE-2023-0286'yı düzeltmek için harekete geçmenizi öneririz.
Makinenizde çalışan OpenSSL sürümünü kontrol etmek için bu komutu çalıştırın.
Kod:
$ openssl version
CVE-2023-0286 - OpenSSL'deki Bir Tür Karışıklığı Güvenlik Açığını Nasıl Düzeltirsiniz ?
OpenSSL, güvenlik açıklarını yeni sürümlerinde ele almaktadır. OpenSSL, yamayı içeren yeni bir sürümü piyasaya sürdü. Önerimiz, makinelerinizdeki mevcut OpenSSL sürümünü bulup v3.0.8, 1.1.1t ve 1.0.2zg sürümlerine yükseltmenizdir.
OpenSSL 3.0 kullanıcıları, OpenSSL 3.0.8'e yükseltmelidir.
OpenSSL 1.1.1 kullanıcıları, OpenSSL 1.1.1t'ye yükseltmelidir.
OpenSSL 1.0.2 kullanıcıları, OpenSSL 1.0.2zg'ye yükseltmelidir
CVE-2023-0286 Nasıl Düzeltilir
Vulnerabl olup olmadığınızı görmek için OpenSSL sürümünü kontrol edin. OpenSSL sürümünü kontrol etmek için bu komutu çalıştırın:
Kod:
$ openssl version
En son OpenSSL paketini indirin.
İhtiyacınız olan doğru paketi indirin. Bu durumda, OpenSSL v3.0.2'ye sahip olduğumuz için v3.0.8, 1.1.1t veya 1.0.2zg sürümünü indirmemiz gerekiyor.
Kod:
$ cd Downloads/
$ wget https://www.openssl.org/source/openssl-3.0.8.tar.gz
$ chmod +x openssl-3.0.5.tar.gz
OpenSSL paketini çıkarın.
İndirilen paketi bir klasöre çıkarın.
OpenSSL 3.0.8 Kaynak Kodunu Derleyin
configdata.pm ve makefile oluşturmak için bu komutu çalıştırın ve derleyin.
OpenSSL'i yüklemek veya güncellemek için bu komutları kullanın.
Not: OpenSSL'i yüklemek veya güncellemek önce make ve gcc yardımcı programlarını yüklemeniz gerekebilir. Bu gerekli paketleri yüklemek için önceden yüklenmemişse bu komutu çalıştırın.
Yeni kurulan ikili dosyadan varsayılan konuma sembolik bir bağlantı oluşturun.
Sembolik bağlantıları güncellemek ve kütüphane önbelleğini yeniden oluşturmak için bu komutları çalıştırın:
OpenSSL sürümünü kontrol edin:
OpenSSL Paylaşılan Kütüphaneleri Yüklerken Oluşan Hata Nasıl Düzeltilir?
Bazı insanlar paylaşılan kütüphaneleri yüklerken bir hata alabilirler. Eğer bu şanssızlardan biriyseniz ve "openssl: libssl.so.3: paylaşılan nesne dosyası açılamıyor: Böyle bir dosya veya dizin yok" hatasını görüyorsanız, bu bölüm sizin için.
ld.conf dosyasını düzenleyerek /usr/local/lib64 içeren bir satır ekleyin.
VEYA
Bazı durumlarda, openssl /usr/local/ssl dizinine kurulur. Bir dosya oluşturun ve /usr/local/ssl/lib64 içeren bir satır ekleyin.
Dosyaya yolu ekledikten sonra kütüphane yollarını güncelleyin.
OpenSSL sürümünü kontrol et.
Konumu Okuduğunuz İçin Teşekkür Ederim.
Konu Kaynaklarım :
thesecmaste
İndirilen paketi bir klasöre çıkarın.
Kod:
$ tar -zxf openssl-3.0.8.tar.gz
$ cd openssl-3.0.8/
OpenSSL 3.0.8 Kaynak Kodunu Derleyin
configdata.pm ve makefile oluşturmak için bu komutu çalıştırın ve derleyin.
Kod:
$ sudo ./config
OpenSSL'i yüklemek veya güncellemek için bu komutları kullanın.
Kod:
$ sudo make
$ sudo make test
$ sudo mv /usr/bin/openssl ~/tmp (Backup current openssl binary)
$ sudo make install
$ sudo ldconfig /usr/local/lib64/
Not: OpenSSL'i yüklemek veya güncellemek önce make ve gcc yardımcı programlarını yüklemeniz gerekebilir. Bu gerekli paketleri yüklemek için önceden yüklenmemişse bu komutu çalıştırın.
Kod:
$ sudo apt install make gcc
Yeni kurulan ikili dosyadan varsayılan konuma sembolik bir bağlantı oluşturun.
Kod:
$ sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
Sembolik bağlantıları güncellemek ve kütüphane önbelleğini yeniden oluşturmak için bu komutları çalıştırın:
Kod:
$ sudo ldconfig
OpenSSL sürümünü kontrol edin:
Kod:
$ openssl version
OpenSSL Paylaşılan Kütüphaneleri Yüklerken Oluşan Hata Nasıl Düzeltilir?
Bazı insanlar paylaşılan kütüphaneleri yüklerken bir hata alabilirler. Eğer bu şanssızlardan biriyseniz ve "openssl: libssl.so.3: paylaşılan nesne dosyası açılamıyor: Böyle bir dosya veya dizin yok" hatasını görüyorsanız, bu bölüm sizin için.
ld.conf dosyasını düzenleyerek /usr/local/lib64 içeren bir satır ekleyin.
Kod:
$ sudo nano /etc/ld.so.conf.d/lib.conf
/usr/local/lib64
VEYA
Bazı durumlarda, openssl /usr/local/ssl dizinine kurulur. Bir dosya oluşturun ve /usr/local/ssl/lib64 içeren bir satır ekleyin.
Kod:
$ sudo nano /etc/ld.so.conf.d/openssl.conf
/usr/local/ssl/lib64
Dosyaya yolu ekledikten sonra kütüphane yollarını güncelleyin.
Kod:
$ sudo ldconfig
OpenSSL sürümünü kontrol et.
Kod:
$ openssl version
OpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023)
Konumu Okuduğunuz İçin Teşekkür Ederim.
Konu Kaynaklarım :
thesecmaste