Parola Analizi

Bu yazı, artık kullanımdan kalkmış bir bilgi sistemine ait kullanıcı hesaplarıyla yapılan parola analizini anlatmaktadır. Parola analizinin vereceği mesaj en son paragrafta bulunmaktadır.

Veritabanında bululan kullanıcı parolaları MD5 ile hash (kriptografik özet) edilmiş formatta tutulmaktadır. En azından, kabul edilebilir bir süre içerisinde kırılamayacak parolaların, açık metin (clear text) olarak tutulmamış olması güvenlik adına iyi bir yaklaşımdır.

Parolaların elde edilme süreci

Bu veritabanıyla analiz yapmaya zemin oluşturan iki özel sebep bulunmaktadır. İlki, hash değeri bulma işlemi neticesinde, uygulamada herhangi bir parola politikasının olmadığının fark edilmesi. Böylece insanların, herhangi bir şey dayatılmadığı durumda, özgür iradeleriyle nasıl parola oluşturdukları görülebilecektir. Diğer sebep ise, uygulama kullanıcılarının ülke vatandaşı olmalarıdır. Bu ise analizin asıl amacını, ülke insanının parola oluşturma alışkanlığını, bir açıdan ortaya koyabilmeyi sağlayacaktır.

Hash’lenmiş parolaların kırılma süreci

Parolaların okunabilir halini (açık metin) elde etmek için iki farklı yöntem kullanılmıştır.

Önce parolalar sadece sayılardan oluşan (0-9 aralığı) ve 4-8 uzunluğundaki bir gökkuşağı (rainbow) tablosunda aranmıştır. Yaklaşık bir kaç saat süren çok basit bir saldırıya hash’li parolaların %38’i yenik düşmüştür.

Bu yöntemle elde edilemeyen parolalar, daha önce hash değeri hesaplanmış parolalardan oluşan bir servisteki gökkuşağı tablolarında (milyar seviyesinde kayıt) aranmıştır. Yaklaşık bir gün süren sorgulama sonucunda hash’li parolaların %37’sinin açık metin karşılıkları elde edilmiştir. Bu iki işlem sonrası hash değeri çözülemeyen parolalar analiz dışında bırakılmıştır.

Analiz başlıyor

Açık metin hali elde edilen parolaların dört farklı bölümde analizi yapılmıştır, neden bu dört kategori sorusunun cevabı yazının akışında verilecektir.

Parolanın uzunluğu

Kullanılan karakter türleri

Tahmin edilme

Çok yerde kullanım

Parolanın uzunluğu

Anketler, güçlü bir parola oluşturma endişesinin akıllara getirdiği ilk önlemi “ne kadar uzunsa o kadar iyidir” olarak söylemektedir ve bu mantığı destekleyen bir gerçek de bulunuyor. Uzunluğun artması entropy (farklı bir sözcük üretebilme ihtimali) değerini arttıran en önemli iki parametreden biridir ve güvenli parola oluşturma politikasında kabul edilen bir prensiptir.

Ne yazık ki, uzunluk, ne kadar olursa tam olarak güvendeyiz sorusunun net bir cevabı yoktur. Bu sisteminizin kritikliği ve saldırıya açıklık potansiyeliyle orantılı olarak değişebilir. Fakat konuyu aydınlatacak şöyle bir laboratuvar çalışması yapılmıştır. Güvenlik ve kullanılabilirlik dengesi koşul olarak kabul edildiği durumda “8 karakter uzunluk minimum yeterliliktir” konusunda genel bir görüş mevcuttur.

Uzunluk grafiğine bakılacak olursa;

Parolalar yoğun olarak 6, 7 ve 8 karakterden oluşmaktadır ve bu kısım toplamın %63’üne denk gelmektedir. Grafikte tehlike arz eden sütunlar, diğer ifadeyle 8 karakterden az olanlar tam yarı yarıyadır.

Bu bölümü bitirmeden önce; çözülen parolalar arasında [10-14] karakter aralığında olanlarda bulunmaktadır. Öyleyse uzunluk tek başına bir önlem olmamalı!

Kullanılan karakter türleri

Parola seçerken önemli olan bu uzunluğun içinde kullanılan karakterlerin çeşitliliği olabilir mi? Bakalım öyle mi. 25 karakter uzunluğundaki bir parola hakkında ne düşünürsünüz? Peki, parolada 25 tene 1 rakamı kullandığını öğrenseniz fikriniz kaç derece değişir?

Parola oluştururken kullanılan karakter türleri (sayı, küçük harf, büyük harf, özel karakter gibi) ne kadar çeşitlilik gösterirse farklı bir sözcük oluşturma ihtimalide de o derece artmaktadır. Yeri gelmişken, kullanılan karakter uzayı da entropy değerini arttıran ikinci önemli parametredir. Bu bölüm için genelde kabul gören prensip, en az 3 değişik karakter türünün kullanılmasıdır.

Bu veritabanı için tercih edilen karakter türlerinin grafiksel gösterimi aşağıdaki gibidir.

Grafikten tek tür karakter kullanımının %89 olduğu okunuyor. Üç ve daha fazlası %1 bile değildir. Tür bazında bir istatistik alırsak:

Sayı ve/veya küçük harf kullanımı %98 seviyesindedir. Özel karakterler (noktalama işaretleri, semboller) bir yana büyük harf kullanımı konusunda dahi büyük bir direnç görülmektedir. Açık ve net görülüyor ki büyük karakter kullanmaya alışmak gerekiyor.

Tahmin edilme

Bu bölümde, oluşturulan bir parolanın daha önce başka bir kullanıcı tarafından seçilmiş olma ihtimalinden bahsedilmektedir. Bu bizi ne ilgilendirir sorusunun cevabı, “seçilmiş olma” yerine “tahmin edilebilir olma” gözlüğünü takınca net görülüyor. Mesela, e-posta adresinizi bilen herhangi birinin, parola olarak 123456 yazıp e-postalarınıza ulaşmayı denemesinin önünde herhangi bir engel var mıdır? Tahmin edilebilir parolalar sayesinde birçok sistemin ele geçirildiği de bilinen bir gerçektir. Parola tahmin etme işini meslek haline getirenlerin yaptıkları saldırılarla ele geçirdikleri parolalardan “sözlükler” oluşturduklarını ve bunları paylaştıklarını duyuyoruz.

Bu bölümdeki analize, “veritabanındaki kaç kullanıcı aynı parolayı kullanmış” tespitini yaparak başlarsak, bu adımın ciddiyeti noktasında biraz daha ikna olunabilir.

En çok kullanılan ilk on parola:

Olağan şüphelilerin tepesi hiç birimize yabancı gelmedi değil mi? Şu anda “Listedeki şu parolayı ben de kullanıyorum…” diyenler olmuş olabilir. Bu, neden tedirgin olunması gerektiğini söylüyor aslında.

Dünyada en yoğun kullanılan parolalar listesine bakınca aynı seçimler ve bir kısım benzerlikler görüyoruz. Farklı kara parçalarındaki bu ortak noktalarımızı izah edebilen makul bir yaklaşım vardır herhalde.

İlk 10 listesindeki rakamları genele oranlarsak iç açıcı bir istatistik oluşuyor, ilk 10 tüm listenin sadece %1 ine tekabül ediyor. Daha vurucu bir detay %90 parola hiç tekrarlanmamış. Kullanılan parolaların entropy değerinin düşük olduğuna az önceki uzunluk ve tür analizinde değinilmişti. Buna rağmen böyle bir oranın gelmesi şaşırtıcı olarak değerlendirilebilir. Peki, bu veriler ne kadar yeterli, ne derece bir şeyi ifade ediyor bunu sorgulamak için bir değerlendirmeye daha ihtiyaç bulunmaktadır.

Bu bölümün teyidi için ikinci analiz yöntemi ise, elde edilen kullanıcı parolalarını saldırı sözlüklerinde aramak olacaktır. İnternette elden ele dolaşan sözlükler daha çok yabancıların kullandığı parolalardan oluşturulmuştur, bu coğrafya insanının kullandığı parolayı yine bu ülke insanının parolalarından oluşan bir sözlük içinde aramak daha sağlıklı sonuç verebilir mi? Bu tarz vakalarla oluşturulan küçük bir sözlüğün çizdiği grafik aşağıdaki gibidir.

Maalesef üçte bir parola tahmin edilebilir durumda. Yani elde sadece kullanıcı adı olsa ve hash değerleri de hiç bir şekilde kırılamamış olsaydı, parolasının tahmin edilebileceği kullanıcı oranı %33 olacaktı. Bir üstteki analizle kıyaslayınca çok daha gerçekçi olan bu grafiğin söyledikleri pek iç açıcı değil.

Bu bölümün ışığında yorumlanması gereken bir durum, “Ankara1.” ve “Qwerty123456” parolalarının sözlükten çıkması, birisinde 4 farklı karakter türü var, diğeri ise 12 karakter uzunluğunda, demek ki sorun sadece iki prensibin uygulanmasıyla da (yeterli uzunluk ve karakter türleri kullanımı) çözülmüyor. Burada işaret edilmek istenen nokta, değişik (başkasının kullanmadığı veya henüz tahmin edilmeyen) bir parola oluşturmayla ilgili olmalıdır. Çünkü güçlü parola oluşturma prensiplerine uygun görünen bu iki parola da, daha önce başka bir/birkaç kullanıcı tarafından oluşturulmuş, daha ötesinde saldırı sözlüklerine dahi düşmüş durumda. Buradan, analize başlamadan önce yapılan hash çözme işleminde, parolası açık metin olarak elde edilemeyen %25’lik kesimin kolay tahmin edilemeyen ve başkasının kullanmadığı parola tercih ettiği anlaşılmaktadır.

Çok yerde kullanım

Parola hash değerlerinin alındığı veritabanı tablosunda, kullanıcı adı ve parola dışında, e-posta adresleri gibi başka kıymetli bilgiler de bulunmaktaydı. Çok yerde kullanım adına yapılacak çalışma şu olacaktır. “Burada elde edilen parola, aynı zamanda bu e-posta adresinin de parolası mıdır?” sorusunun cevabı aranabilir. Diğer bir ifadeyle kullanıcı e-posta adresinin parolasını bu uygulamada da kullanıyorsa, birden fazla yerde kullandığı tespit edilmiş olur. Bu sağlama işlemi kişisel veriler ve mahremiyet hakkı çerçevesinde siber ihlal suçu doğurabileceği için yapılmadı fakat gerçekleşseydi daha çarpıcı bir analiz ortaya çıkabilirdi.

Riski daha net görebilmek için şu bakış açısıyla olayı ele almak daha aydınlatıcı olabilir. Saldırgan bir veritabanını ele geçirdi ve parolaları bir şekilde açık metin olarak elde etti. Bu durumda kullanıcıyı diğer hesaplarının (gmail, facebook, twitter vs.) da ele geçirilmesinden kurtaracak tek şey ne olabilir? Tekillik. Çünkü kullanıcı diğer uygulamalarda da aynı parolayı kullandıysa, otomatik olarak diğer hesaplarını da kaptırmış olacaktır.

Bugüne kadar adını saymaya vaktimizin yetmeyeceği sayıda kurumun/şirketin kullanıcılarına ait parolalar ele geçirildi. Seviyeyi biraz daha yukarı çekersek, bu bölümü şöyle bir vurguyla sonlandırabiliriz. Google’a güvendiğim için çelik para kasamda kullandığım parolayı Gmail’de kullanabilirim mantığı bir gün ters köşe olmamıza sebep olabilir. Bekle ve gör mantığını işleterek, kasa boşaldıktan sonra da ikna olmanın bir anlamı yoktur. Hiçbir zaman Gmail, Google’ındır mantığıyla düşünmemek en kârlısı olacak.

Aynı parolayı neden kullanıyoruz?

Günümüz kullanıcılarının iş yerinde/özel hayatında kullandıkları; sistemler, bilgisayarlar, e-posta adresleri, bankacılık uygulamaları, facebook, twitter vs. bunların hepsi parola istiyor. Her hesaba farklı parola oluşturulacaksa nerden bakılsa on taneye yakın parolaya ihtiyaç var. Uzunluk, karakter türü ve tahmin edilemez bir değer üretme prensiplerini de dikkate alınca, sabır taşı testten geçiyor. Bu sınavdan çakan kullanıcıların aynı parolayı diğer hesaplarında da kullanması, aykırı bir durumdan çok neredeyse bir gereklilik oluyor. Bu noktada güvenlik ve kullanılabilirlik terazisinde kendinize biçeceğiniz kritiklik seviyesiyle orantılı olarak parola tekrarınızı yapacağınız sistemleri belirlemek size kalıyor.

Mesajınız var

Aslında bu çalışmanın ortaya koydukları hiç şaşırtıcı değil.

Analiz, parolaların 8 karakterden daha az, yoğunlukla sadece sayılardan ve her 3 tanesinden birinin başka biri tarafından da kullanılma olasılığı olduğunu söylüyor. Bu parolalarımızın kolay tahmin edilebilir ve başkalarının kullandığı parolalarla aynı olduğu anlamına geliyor.

Analizin ilk bölümü parola uzunluğu ve kullanılan karakter türlerinden bahsediyor ve minimum gereksinim olarak 8 karakter uzunluk ve 3 farklı çeşit karakter türü kullanılmasını tavsiye ediyor. Sonraki bölümde yeterince düşünülmeden oluşturulan parolaların tahmin edilebilir oldukları da hesaba katılarak, olabildiğince değişkenlik gösterecek bir parola seçilmesi öneriliyor. En son olarak mümkün olan her sistemde/uygulamada neden farklı bir parola kullanılması gerektiği açıklanıyor.

Son söz olarak, anlatımda parola oluşturmada düşülen hatalar vurgulanarak nasıl parola oluşturulmaz algısı verilmeye çalışılmış, ardından önlemler sıralanarak nasıl koruma sağlanabileceğinden bahsedilmiştir. Kullanıcıların hiçbir sisteme güvenmemeleri ve her zaman güçlü parola kullanarak kendilerini korumaları hatırlatılmış, zayıf parola sahibi olan kısımsa muhtemel karşılaşabilecekleri durumlar hakkında haberdar edilmiştir.
Emre SÜREN, TÜBİTAK BİLGEM

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir