Debian OpenSSL Açığı
13 Mayıs’ta sadece Debian ve Ubuntu işletim sistemlerinde bulunan bir açık yayınlandı. Ama etkisi sadece bu sistemlerle sınırlı değil. Debian/Ubuntu sistemleri üzerinde 2006-2008 Mayıs arası üretilen tüm SSL sertifikaları hatalı!
Detaylı İnceleme
Sorun 2 Mayıs 2006′da Debian geliştiricilerinin daha önce defalarca bildirilen bir uyarıya istinaden kodun iki satırını silmelerinden kaynaklanıyor.
Valgrind ve Purify gibi yazılımlar C/C++ kodunu inceleyip, sorunlu buldukları noktalarda (örneğin ilk değer verilmemiş değişkenlerin, hafıza alanlarının kullanılması gibi) uyarılar vererek, kodun kalitesini arttırmaya yardımcı olurlar. Ancak OpenSSL içinde bir nokta bulunuyor ki burada yazılımcılar “bilerek” ve “isteyerek” hafızadaki ilk değer verilmemiş alanı kullanıyorlar. Yazılımın bu noktasında verilen uyarıyı OpenSSL ekibi şu çağrıda cevaplamış:
I think there’s we need to create a FAQ entry about this …
….
No, it’s fine – the problem is Purify and Valgrind assume all use of
uninitialised data is inherently bad, whereas a PRNG implementation has
nothing but positive (or more correctly, non-negative) things to say
about the idea.
Debian ekibi OpenSSL takımını dinlemeyip sadece bu uyarıya bakarak, gereksiz gördükleri şu iki satırı kaldırdıkları için, rasgele sayı üreteci o noktada, sadece o anki süreç numarasını (process id – pid) kullanır olmuş:
MD_Update(&m,buf,j);
…
MD_Update(&m,buf,j); /* purify complains */
Linux’ta PID numarası en çok 32768 farklı değer alabiliyor. Bu da hızlı gökkuşağı tablosu saldırılarına imkan sağlıyor. (Bu sayfadaki araçlarla 1024-bit sertifika imzaları yaklaşık 2 saat gibi bir sürede oluşturulmuş. Tablo elinizde olduktan sonra sertifikanın kaç bit olduğunun bir önemi yok.)
Sorun Giderme
Debian, 13 Mayıs 2008′de yayınladığı güvenlik bildirisinde sorunlu sertifikaları tespit etmek için bir araç gösterilmiş. Problem ne yazık ki, tahmin edilenden çok daha geniş bir kesimi etkiliyor. Bu işletim sistemlerinde üretilen tüm sertifikalar etkilenmiş durumda. Sertifikalarını onaylatmış yerlerin tekrar sertifika oluşturmaları gerekecek. İşletim sistemlerindeki güncellemeler bu sertifikaları yeniliyor, ancak bu yeterli değil. Eylül 2006 ile Mayıs 2008 arasında Debian/Ubuntu sistemlerinde OpenSSL kullanılarak üretilen tüm güvenlik materyallerinin yenilenmesi tavsiye ediliyor.
Yorum
Debian geliştiricileri en temel ilkeyi ihlal etmişler görünüyor. “Kendi güvenlik sisteminizi oluşturmaya çalışmayın, mevcut sistemleri modifiye etmeyin.” Basit gibi görünün iki satır, iki yıl boyunca onlarca makineyi çok ciddi biçimde etkiledi. Hata, kaliteyi arttırmaya çalışan otomatik analiz araçlarının güvenirliğini sorgulamaya açması açısından da ilginç..
Konuyla ilgili en detaylı analiz ve araçlara ulaşım için şu sayfaya bakabilirsiniz.
NOT: Aslında sertifikalar teknik olarak hatalı değil. Sorun çok kısıtlı bir rasgele sayı havuzundan değerlerle yaratıldıkları için açık anahtardan, özel/gizli anahtarın keşfedilmesi çok kolay.
Bu kategori altındaki diğer yazılar: Güvenlik, debian