CyberFlow Logo CyberFlow BLOG
Ssh Pentest

Kullanıcı Tespiti: Siber Güvenlikte Kritik Adımlar

✍️ Ahmet BİRKAN 📂 Ssh Pentest

Kullanıcı tespiti, siber güvenlikte hayati bir öneme sahiptir. Bu blogda SSH kullanıcı tespitine dair önemli yöntemler keşfedin.

Kullanıcı Tespiti: Siber Güvenlikte Kritik Adımlar

Kullanıcı tespiti, siber güvenlikte kritik bir aşamadır. SSH üzerinden kullanıcıların tespiti için gerekli yöntemler ve zayıf noktalar hakkında bilgi edinin.

Giriş ve Konumlandırma

Kullanıcı tespiti, siber güvenlik alanında kritik bir işlem olup, bir sistem üzerindeki kullanıcı hesaplarının doğruluğunu ve varlığını belirlemek için kullanılan çeşitli teknikleri kapsamaktadır. Siber güvenlik sistemlerinin entegrasyonu ve korunması açısından kullanıcı tespiti, saldırganlar tarafından hedef sistemlerin istismar edilmesini önlemek için hayati bir öneme sahiptir. Ayrıca bu süreç, sızma testleri (pentest) ve genel güvenlik denetimleri sırasında kritik bir aşamadır.

Kullanıcı Tespitinin Önemi

Kullanıcı tespiti, bir siber saldırının temel bileşenlerinden biridir. Saldırganlar, bir hedef sistemdeki kullanıcı hesaplarını doğrulamak ve bu hesapların zayıf noktalarını belirlemek amacıyla çeşitli yöntemler kullanırlar. Geçerli kullanıcı bilgilerine erişim sağlamak, siber saldırganların kuruma yönelik daha karmaşık saldırıları gerçekleştirmeleri için bir kapı aralayabilir. Örneğin, bir kullanıcı adı ve parola kombinasyonunu ele geçirerek, bir ağın derinliklerine inmek ve daha önemli bilgilere ulaşmak mümkün hale gelir.

Kullanıcı tespiti sürecinin teknik boyutu, bilgi toplama aşamasında başlar. Bu aşama, sistem üzerinde hangi kullanıcıların var olduğunu belirlemek ve bu kullanıcıların hangi giriş metotlarını (şifre, anahtar vb.) kullandığını sorgulamak için çeşitli araçlar ve teknikler kullanmayı içerir. Özellikle SSH (Secure Shell) gibi protokollerde, sunucunun verilen yanıta bağlı olarak kullanıcı varlığını belirlemek mümkündür. Bunun için kullanılan araçlardan biri Nmap'tir ve ssh-auth-methods script'i, sistem yöneticilerine kullanıcının hangi yöntemlerle doğrulandığını gösterir.

nmap -p 22 --script ssh-auth-methods --script-args user=root 10.0.0.1

Bu komut, belirtilen IP adresi üzerinde, root kullanıcısı için hangi kimlik doğrulama yöntemlerinin mevcut olduğunu belirlemeye yardımcı olur.

Pentesting ve Savunma Açısından Kullanıcı Tespiti

Sızma testlerinde (pentest) kullanıcı tespiti, bir sistemin zayıflıklarını anlamak için kritik bir aşamadır. Sızma testleri sırasında, güvenlik uzmanları, sistemdeki mevcut kullanıcı hesaplarını ve bu hesapların hangi alanlarda risk taşıdığını belirlemeye çalışır. Örneğin, OpenSSH 7.7 sürümüne kadar olan versiyonları, kullanıcı adının doğruluğunu ifşa eden belirli zafiyetlere sahiptir.

Kullanıcı adlarının sızdırılması, sistem yöneticilerini zor durumda bırakabilir. Sunucular bazen geçerli ve geçersiz kullanıcı adı denemeleri arasında farklı tepkiler verirler. Örneğin, geçerli bir kullanıcı adı için bekleme süresi daha uzun olabilirken, geçersiz bir kullanıcı için sunduğu hata mesajı farklı olabilir. Bu durum, saldırganların kullanıcı listesini edinmelerine ve daha sonraki aşamalarda bu bilgileri kullanmalarına olanak tanır.

Farklı Hata Mesajı: 
Mevcut olmayan kullanıcılar için 'Invalid user' denmesi, mevcut olanlar için şifre beklenmesi.

Bu tür detaylar, güvenlik araştırmacıları tarafından sistemin hangi zayıflıkları taşıdığını anlamak için kritik öneme sahiptir.

Kullanıcı Tespitinde Kullanılan Araçlar ve Teknikler

Gelişmiş kullanıcı tespiti için siber güvenlik uzmanları, çeşitli araç ve script'ler kullanmaktadır. Örneğin, Python tabanlı ssh-audit aracı, kullanıcı adlarının sızdırılmasına yönelik yapılan denemeleri analiz edebilir. Ayrıca Metasploit modülleri gibi araçlar, binlerce kullanıcı adını otomatik olarak test edebilir. Bunlar, hedef sistemin sahip olduğu zayıflıkları belirlemek ve kullanıcı bilgilerini sızdırmak için etkili bir şekilde kullanılabilir.

Bilgi güvenliği açısından, sistem yöneticilerinin bu tehlikelere karşı alacakları önlemler hayati önem taşır. Örneğin, kullanıcı adı sızdırmasını önlemek için sistem üzerinde doğrudan yapılandırmalar yapılmalı, hata mesajlarının standart hale getirilmesi ve başvuruların pipetleri ile birlikte sunucunun güncellenmesi sağlanmalıdır. İlgili riskler sızma testleri ve log analizleri ile sürekli olarak izlenmelidir.

Sonuç olarak, siber güvenlikte kullanıcı tespiti yalnızca bir aşama değil, aynı zamanda ağ saldırılarına karşı savunmanın yapı taşlarını oluşturan bir süreçtir. Kullanıcı tespiti hakkında bilgi sahibi olmak, hem savunma yöntemlerinin geliştirilmesi hem de saldırganların potansiyel olarak kullanabileceği zayıflıkları ortaya çıkarma konusunda kritik rol oynamaktadır. Bu bağlamda, kullanıcı tespiti, her siber güvenlik uzmanının kariyeri boyunca üzerinde çalışması gereken bir uzmanlık alanıdır.

Teknik Analiz ve Uygulama

SSH: Kimlik Doğrulama Metotlarını Sorgulama

Siber güvenlikte kullanıcı tespiti, bir sistemin güvenliğini tehdit eden en kritik süreçlerden biridir. SSH (Secure Shell) protokolü, uzaktan bağlantıları güvenli bir şekilde kurmak için yaygın olarak kullanılır. Ancak, SSH sunucuları, belirli bir kullanıcı adı için hangi giriş yöntemlerinin (parola, anahtar, vb.) kabul edildiğini belirtebilir. Bu, kullanıcıların kimlik doğrulama metotları üzerinden zarar görme olasılığını artırabilir.

Nmap'in ssh-auth-methods betiği, sunucunun kaynak kodundan gelen yanıtları analiz ederek hangi kimlik doğrulama yöntemlerinin mevcut olduğunu sorgulamanıza olanak tanır. Aşağıdaki komut, hedef IP adresi üzerinde root kullanıcısı için izin verilen giriş yöntemlerini tarar:

nmap -p 22 --script ssh-auth-methods --script-args user=root 10.0.0.1

Bu komut, 10.0.0.1 IP adresindeki SSH servisine bağlanarak root için hangi kimlik doğrulama yöntemlerinin mevcut olduğunu listeleyecektir.

Geçerli ve Geçersiz Kullanıcı Tepkileri

SSH hizmetlerinin önemli bir zafiyeti, sunucunun geçerli ve geçersiz kullanıcılar için farklı tepki vermesidir. Örneğin, mevcut olmayan bir kullanıcı için sunucu "Invalid user" mesajı dönerken, mevcut bir kullanıcı için genellikle bir parolanın onaylanmasını bekleyecek bir yanıt oluşturulmaktadır. Bu durum, saldırganların mevcut kullanıcıları belirlemesini kolaylaştırmaktadır.

Örnek Hata Yanıtları

  • Geçerli kullanıcı için yanıt: Permission denied, please try again.
  • Geçersiz kullanıcı için yanıt: invalid user <username>

Bu farklılık, saldırganların mevcut kullanıcı adlarını tespit etmelerinde bir fırsat yaratır. Dolayısıyla sistem yöneticileri bu durumu göz önünde bulundurarak uygun önlemleri almak zorundadır.

Kritik Zafiyet: CVE-2018-15473

OpenSSH'ın 7.7 sürümüne kadar olan versiyonları, hatalı biçimlendirilmiş bir kimlik doğrulama paketi gönderildiğinde sunucunun geçerli kullanıcı hakkında bilgi sızdırmasına neden olabilecek bir zafiyet içermektedir. Bu zafiyetin tanımlı CVE numarası CVE-2018-15473 olarak geçmektedir. Bu tür zafiyetlerin yamalanması, sistemlerin güvenliğini artırmak adına kritik öneme sahiptir.

Özel Enumeration Betikleri

Bilgi toplama aşamasında kullanılan özel betikler, saldırganların hedef sistemlerdeki kullanıcıların listesini oluşturmalarına olanak tanır. Python tabanlı ssh-audit aracı veya Metasploit modülleri, bilinen OpenSSH zafiyetlerini kullanarak binlerce kullanıcı adını otomatik olarak test edebilir ve sunucunun paketleri işleme biçimindeki anormallikleri raporlayabilir.

Aşağıdaki komut, users.txt dosyasında bulunan kullanıcı adlarını kullanarak sızdırılmış kullanıcı bilgilerini tespit etmenizi sağlayacaktır:

nmap -p 22 --script ssh-user-enum --script-args userdb=users.txt 10.0.0.1

Bu betik, belirli bir kullanıcı listesi üzerinden otomatik olarak hedefteki hesapları sorgulayacak ve sunucunun yanıtlarına dayalı olarak kullanıcıların geçerliliğini belirleyecektir.

Zaman Ayarlı Saldırı (Timing Attack)

Sistemlerin kullanıcı adlarını belirli zaman aralıklarında sorgulamak, bir zaman saldırısının temelini oluşturur. Sunucunun şifreleme işlemlerini başlattığı an ile reddettiği an arasındaki süre, kullanıcının geçerliliğini kanıtlayabilir. Bu süreçte, kullanılan zaman aralıkları, mevcut kullanıcıların tespiti açısından kritik bir göstergedir.

Zaman Yanıtlarının Analizi

Saldırganlar, geçerli bir kullanıcı adına yapılan sorgularda genellikle daha uzun bir yanıt süresi alırken, geçersiz kullanıcı adı için yanıt çok daha kısa olacaktır. Bu durum, analiz edilmesi gereken önemli bir faktördür ve zaman analizlerinin gerçekleştirilmesi için çeşitli yöntemler mevcuttur.

Savunma ve Hardening

Sistem yöneticilerinin alması gereken önlemler arasında, kullanıcı adlarının sızmasını önlemek için sunucu tarafında bazı yapılandırmalar yapmak ve log analizlerini düzenli olarak yapmak yer alır. SSH sunucusunun güvenliğini artırmak adına şu önlemler alınabilir:

  • Rate Limiting: Kısa sürede çok fazla deneme yapan IP adreslerini geçici olarak engellemek.
  • Generic Messages: Tüm hata durumlarına aynı şekilde yanıt vermek; bu şekilde saldırganların bilgi edinmesi zorlaşır.
  • Yazılım Güncellemeleri: Bilinen zafiyetleri (CVE'ler) yamalayıp, OpenSSH versiyonlarını güncellemek.
ssh-audit 10.0.0.1

Yukarıdaki komut, sunucunun mevcut yapılandırmalarını analiz eden bir araçtır ve potansiyel zayıflıkları belirlemenizi sağlayacaktır.

Log Analizi

SSH giriş denemeleri sırasında meydana gelen hata mesajları, sistem yöneticileri için kritik öneme sahiptir. Özellikle auth.log dosyasında bulunan Failed password girdileri, potansiyel bir saldırının gerçekleştiğine dair önemli bir göstergedir. Bu tür log analizi, saldırılar hakkında bilgiler sunarak gerekli önlemleri almanıza yardımcı olacaktır.

Kullanıcı tespiti, siber altyapıların güvenliğini sağlamak adına dikkate alınması gereken bir süreçtir. Bu nedenle, yukarıda belirtilen tekniklerin ve araçların sistem yöneticileri tarafından etkin bir şekilde uygulanması büyük önem taşımaktadır.

Risk, Yorumlama ve Savunma

Siber güvenlik alanında kullanıcı tespiti, sistemlerin güvenliğini sağlamak için kritik bir adımdır. Özellikle SSH sunucuları gibi erişim kontrollerinin yüksek olduğu sistemlerde, yanlış yapılandırmalar ve zafiyetler, saldırganlar için fırsatlar yaratabilir. Bu bölümde, elde edilen bulguların güvenlik anlamı, yanlış yapılandırmaların etkisi, sızan veri, topoloji ve servis tespiti ile ilgili sonuçlar analiz edilecektir.

Kullanıcı Tespiti ve Güvenlik Anlamı

Kullanıcı tespiti, belirli bir sistemde mevcut olan kullanıcı hesaplarının tespit edilmesini kapsar. SSH sunucuları üzerinden kullanıcı adı sorgulama işlemleri gerçekleştirilirken, sunucunun hangi kimlik doğrulama yöntemlerini desteklediği ve hangi kullanıcıların geçerli olduğu belirlenebilir. Örneğin, Nmap aracı kullanılarak aşağıdaki komut ile 'root' kullanıcısı için hangi giriş yöntemlerinin kabul edildiğini sorgulamak mümkündür:

nmap -p 22 --script ssh-auth-methods --script-args user=root 10.0.0.1

Bu tür sorgulamalar, sunucunun kimlik doğrulama mekanizması hakkında değerli bilgiler sağlayarak, olası zafiyetleri ortaya çıkarabilir.

Bazı SSH sunucuları, geçerli ve geçersiz kullanıcılar için farklı hata mesajları veya paket yapıları döndürebilir. Bu durum, özellikle "Invalid user" mesajının mevcut olmayan kullanıcılar için verilmesi ve geçerli kullanıcılar için şifre beklenmesi gibi tepkilerle daha da belirginleşir. Bu tür bilgiler, kullanıcı listelerinin sızmasına neden olabilecek kritik zayıflıklar olarak değerlendirilmelidir.

Yanlış Yapılandırmalar ve Zafiyetlerin Etkisi

Yanlış yapılandırmalar, siber saldırganlar tarafından kolayca sömürülebilecek alanlar yaratır. Örneğin, OpenSSH'ın 7.7 sürümüne kadar olan versiyonlarında, hatalı biçimlendirilmiş bir kimlik doğrulama paketi gönderildiğinde, sunucu bunun tespiti ile ilgili bilgiler vererek kullanıcı adını ifşa edebilirdi. Bu tür bir zafiyet, saldırganların potansiyel olarak daha fazla bilgiye erişmesini sağlar.

Bir diğer dikkate değer durum ise zaman saldırılarıdır. Sunucunun şifreleme işlemleri başlatıldığında ve reddedildiğinde geçen sürelerin araştırılması, kullanıcı geçerliliğini kanıtlayabilir. Zaman farkları, saldırganlar için gösterge olabilir:

  • Mevcut bir kullanıcı için daha uzun yanıt süreleri.
  • Mevcut olmayan kullanıcılar için daha kısa yanıt süreleri.

Bu tip tesisat ve yapılandırmalardaki zayıflıkları anlamak, sistemi daha güvenli hale getirmek için kritik öneme sahiptir.

Savunma Önlemleri ve Hardening Önerileri

Sistem yöneticileri, kullanıcı adlarının sızmasını engellemek için bir dizi önlem almalıdır. Bunlar arasında aşağıdakiler yer alabilir:

  1. Yazılım Güncellemeleri: OpenSSH gibi yazılımların güncel tutulması, bilinen zafiyetlerin veya CVE'lerin (Common Vulnerabilities and Exposures) giderilmesinde önemli bir adım olarak öne çıkar.

    sudo apt-get update && sudo apt-get upgrade
    
  2. Rate Limiting: Kısa sürede çok fazla giriş denemesi yapan IP adreslerini geçici olarak engellemek, brute force saldırılarının etkisini azaltabilir.

  3. Log Analizi: Sunucu loglarının düzenli olarak incelenmesi, anormal aktivitelerin ve saldırı denemelerinin tespit edilmesine yardımcı olur. Örneğin, SSH giriş denemelerinin kaydedildiği standart log dosyası genellikle /var/log/auth.log veya /var/log/secure olarak bilinir.

  4. Generic Messages Kullanımı: Tüm hata durumlarında aynı mesajın döndürülmesi, mevcut olmayan kullanıcılarla ilgili bilgi ifşasını önleyerek saldırganların kaynaklarını sınırlayabilir.

  5. Hesap Yönetimi: Zayıf parolalara sahip olabilecek 'service accounts' gibi hesapların doğru yönetimi, güvenlik zafiyetlerinin önüne geçer.

Sonuç

Kullanıcı tespiti, siber güvenlik stratejilerinin temel bir parçasıdır. Yanlış yapılandırmalar ve zafiyetler, saldırganlar için potansiyel fırsatlar sunmaktadır. Bu nedenle, kullanıcı tespitinin yanı sıra, sistemlerin güvenliğini artırmak için etkili savunma stratejileri geliştirilmelidir. Yüksek güvenlik sağlamak amacıyla sürekli güncellemeler, uygun yapılandırmalar ve etkili log yönetimi uygulamaları, genel risk seviyesini düşürmek için hayati öneme sahiptir. Bu bağlamda kullanıcıların ve sistemlerin korunması, sistem güvenliği adına kritik bir rol oynamaktadır.