Güvenli Olmayan Ana Makine Adı Doğrulayıcı

OWASP kategorisi: MASVS-CODE: Kod Kalitesi

Genel Bakış

HostnameVerifier uygulaması, sunucunun sertifikadaki ana makine adının istemcinin bağlanmaya çalıştığı sunucunun ana makine adıyla eşleştiğini doğrulamaktan sorumludur.

Android uygulamasında güvenli olmayan HostnameVerifier kullanımı, uygulamanın iletişim kurduğu sunucunun ana makine adını doğru şekilde doğrulamayan bir uygulamadır. Bu durum, saldırganın meşru bir sunucunun kimliğine bürünmesine ve uygulamayı kandırarak hassas verileri kendisine göndermesine olanak tanıyabilir.

Bu güvenlik açığı, HostnameVerifier sınıfında X.509 sertifika ana makine adı doğrulamasını atlayabilen ve bunun yerine yalnızca sertifikanın karmasını doğrulayabilen işlev çağrıları bulunduğundan ortaya çıkar. SSLSession#isValid işlevinin güvenlikle ilgili bir işlem gerçekleştirdiğine dair yaygın bir yanlış anlama vardır. Ancak işlevin amacı yalnızca bir oturumun geçerli olup olmadığını ve devam ettirilip katılabilip katılamayacağını kontrol etmektir. Bu işlemlerin hiçbiri oturumun güvenliğini doğrulamaz. HostnameVerifier sınıfının yerini NetworkSecurityConfig aldı.

Etki

Güvenli olmayan HostnameVerifier uygulamaları, kurban uygulamadan gelen ağ trafiğine MITM (Ortadaki Adam) saldırıları gerçekleştirmek için kullanılabilecek güvenlik açıklarına neden olabilir. Bu güvenli olmayan koddan yararlanmanın etkisi, bu kod tetiklenirse kullanıcının uygulama ağı verilerinin ağ saldırganları tarafından (uzaktan veya yerel olarak) güvenliğinin ihlal edilebilmesidir. Etki, yanlışlıkla açığa çıkan ağ trafiğinin içeriğine (kimliği tanımlayabilecek bilgiler, gizli bilgiler, hassas oturum değerleri, hizmet kimlik bilgileri vb.) bağlıdır.

Çözümler

Özel TLS/SSL sertifika doğrulama kodu kullanmak veya uygulamak yerine tüm üretim, test, hata ayıklama ve geliştirme aşaması bağlantılarının düzgün şekilde ele alındığından emin olmak için NetworkSecurityConfig.xml dosyasını kullanın.

Kaynaklar