Popüler KeePass şifre yöneticisi, uygulamanın belleğinden ana şifreyi çıkarmaya karşı savunmasızdır ve bir cihazın güvenliğini ihlal eden saldırganların, veri tabanı kilitli olsa bile şifreyi almasına olanak tanır.
Sorun, saldırganların KeePass ana parolasını kavram kanıtı (PoC) olarak bellekten çıkarmasına olanak tanıyan bir kavram kanıtı aracı yayınlayan ‘vdohney’ olarak bilinen bir güvenlik araştırmacısı tarafından keşfedildi.
Parola yöneticileri, kullanıcıların her çevrimiçi hesap için benzersiz parolalar oluşturmasına ve kimlik bilgilerini araması kolay bir veritabanında veya parola kasasında saklamasına olanak tanır, böylece her birini hatırlamanıza gerek kalmaz. Ancak, bu parola kasasını düzgün bir şekilde güvence altına almak için, kullanıcıların kasanın kilidini açmak ve saklanan kimlik bilgilerine erişmek için kullanılan tek ana parolayı hatırlaması gerekir.
Bu ana parola, KeePass parola veritabanını şifreleyerek, parola girilmeden açılmasını veya okunmasını engeller. Ancak, bu ana parola ele geçirildiğinde, bir tehdit aktörü veritabanında saklanan tüm kimlik bilgilerine erişebilir.
Bu nedenle, bir parola yöneticisinin düzgün bir şekilde güvenliğinin sağlanması için, kullanıcıların ana parolayı koruması ve başka kimseyle paylaşmaması çok önemlidir.
CVE-2023-3278 olarak izlenen yeni bir KeePass güvenlik açığı, KeePass çalışma alanının kilitli olup olmadığına bakılmaksızın veya muhtemelen program kapalı olsa bile, ilk bir veya iki karakter dışında, açık metin biçiminde KeePass ana parolasının kurtarılmasını mümkün kılar. kapalı.
GitHub’daki güvenlik araştırmacısı, “KeePass Master Password Dumper, ana parolayı KeePass’ın belleğinden boşaltmak için kullanılan basit bir kavram kanıtlama aracıdır. İlk parola karakteri dışında, parolayı çoğunlukla düz metin olarak kurtarabilir,” diye uyarıyor GitHub’daki güvenlik araştırmacısı yararlanma aracı için sayfa.
“Hedef sistemde kod yürütme gerekmez, yalnızca bir bellek dökümü gerekir. Belleğin nereden geldiği önemli değildir; işlem dökümü, takas dosyası (pagefile.sys), hazırda bekletme dosyası (hiberfil.sys) veya RAM dökümü tüm sistemin. Çalışma alanının kilitli olup olmaması önemli değil.”
Kusur, yazılımın, kullanıcının bellekte yazdığı her karakterin izini bırakan “SecureTextBoxEx” adlı özel bir parola giriş kutusu kullanması nedeniyle ortaya çıkar.
“KeePass 2.X, şifre girişi için özel olarak geliştirilmiş bir metin kutusu olan SecureTextBoxEx kullanır. Bu metin kutusu yalnızca ana şifre girişi için değil, KeePass’in şifre düzenleme kutuları gibi diğer yerlerinde de kullanılır (böylece saldırı aynı zamanda içeriklerini kurtarmak için kullanılabilir),” diye açıklıyor vdohney.
Güvenlik açığı, KeePass’ın en son sürümü olan 2.53.1’i etkiliyor ve program açık kaynak olduğundan, tüm proje çatalları büyük olasılıkla etkileniyor.
Şifre boşaltma aracının geliştiricisine göre KeePass 1.X, KeePassXC ve Strongbox, CVE-2023-32784’ten etkilenmiş gibi görünmüyor.
Ayrıca, PoC Windows’ta test edilirken, sorun işletim sistemine özgü olmadığından, KeePass’ın kullanıcı girişini nasıl işlediğinden, istismarın bazı değişikliklerle Linux ve macOS için de çalışması gerekir.
Sömürülmesi kolay
KeePass ana parolasının kurtarılması için bellek dökümlerinin alınması gerektiğinden, CVE-2023-32784’ün kötüye kullanılması, hedef makineye fiziksel erişim veya kötü amaçlı yazılım bulaşması gerektirir.
Bununla birlikte, bilgi çalan kötü amaçlı yazılım, KeePass’ın bir bilgisayarda bulunup bulunmadığını veya çalışıp çalışmadığını hızlı bir şekilde kontrol edebilir ve öyleyse, programın belleğini boşaltabilir ve açık metin parolasının bellek dökümünden çevrimdışı olarak alınması için onu ve KeePass veritabanını saldırgana geri gönderebilir.
BleepingComputer, aşağıda gösterildiği gibi KeePass’i bir test cihazına yükleyerek ve ‘password123’ ana parolasıyla yeni bir veritabanı oluşturarak vdohney’nin ‘keepass-password-dumper’ aracını test etti.
Ardından, ana parolayı tekrar girmediğiniz sürece erişimi engelleyen KeePass çalışma alanımızı kilitledik.
Testlerimizde, KeePass projesinin belleğini boşaltmak için İşlem Gezgini’ni kullanabilirsiniz, ancak bunun doğru çalışması için mini döküm değil tam bellek dökümü gerekir. İşlemlerin belleğini boşaltmak için yükseltilmiş ayrıcalıklara gerek yoktur.
Vdohney’nin aracını Visual Studio kullanarak derledikten sonra, onu bellek dökümümüze karşı çalıştırdık ve şifresiz metin parolamızın çoğunu, yalnızca ilk iki harfi eksik olarak hızla kurtardı.
Bu tam şifre olmasa da, hangi karakterlerin eksik olduğunu belirlemek oldukça kolay olacaktır.
Araştırmacı ayrıca, geçmişte kullanılan ana parolaların bellekte kalabileceği, dolayısıyla ihlal edilen bilgisayarda KeePass artık çalışmıyor olsa bile bu parolaların alınabileceği konusunda uyarıda bulunuyor.
Düzeltme yakında
KeePass geliştiricisi Dominik Reichl hata raporunu aldı ve Temmuz 2023’te olması beklenen 2.54 sürümünde CVE-2023-32784 için bir düzeltme sunacağına söz verdi.
Ancak Reichl, BleepingComputer’a KeePass 2.54 sürümünün yaklaşık iki hafta içinde kullanıcılara sunulmasının daha muhtemel olduğunu, bu nedenle Haziran başında çıkması gerektiğini söyledi.
Reichl’ın güvenlik kusuru ve potansiyel azaltma stratejileri hakkındaki düşüncelerini geliştirdiği bir tartışmaya dayanarak, yaklaşan KeePass sürümü için iki güvenlik geliştirmesinden bahsediliyor:
- Metin kutusunun metnini almak/ayarlamak için doğrudan API çağrıları gerçekleştirin ve bellekte sır sızdırabilecek yönetilen dizelerin oluşturulmasını önleyin.
- İşlem belleğinde, kullanıcının ana parolasıyla yaklaşık olarak aynı uzunluğa sahip olacak ve gerçek anahtarı gizleyecek rasgele karakterler içeren sahte parçalar oluşturun.
Windows için KeePass 2.54 her ikisine de sahip olurken, macOS ve Linux sürümleri yalnızca ikinci geliştirmeyi alacak.
Geliştirici, sorunu hafifleten yeni güvenlik geliştirmeleri içeren bir test sürümü yayınladı, böylece kararsız davranışı kabul edebilenler buradan kaynak sağlayabilir.
PoC’nin yaratıcısı, iki güvenlik geliştirmesi yürürlükteyken saldırıyı artık yeniden oluşturamayacağını doğruladı, bu nedenle düzeltme etkili görünüyor.
Yeni sürüm yayınlandıktan sonra bile, ana parola bellek dosyalarında saklanmaya devam edebilir. Araştırmacı, sistemde gizlenmediği konusunda %100 güvenli olmak için sisteminizin takas ve hazırda bekletme dosyalarını silmeniz, veri kurtarmayı önlemek için “verilerin üzerine yaz” modunu kullanarak sabit sürücünüzü biçimlendirmeniz ve yeni bir şey yapmanız gerektiği konusunda uyarıyor. işletim sistemi kurulumu.
Yine de çoğu kişi için bilgisayarı yeniden başlatmak, takas dosyanızı ve hazırda bekletme dosyalarınızı temizlemek ve yeni sürüm çıkana kadar KeePass’i kullanmamak şimdilik makul güvenlik önlemleridir.
O zaman bile, en iyi koruma için, güvenilmeyen sitelerden program indirmeme konusunda son derece dikkatli olun ve tehdit aktörlerinin cihazınıza ve KeePass veritabanınıza uzaktan erişmesini sağlayarak cihazlarınıza bulaşabilecek kimlik avı saldırılarına karşı dikkatli olun.