CyberFlow Logo CyberFlow BLOG
Ssh Pentest

Siber Güvenlikte SSH Çalışma Mantığı ve Mimari Yapısı

✍️ Ahmet BİRKAN 📂 Ssh Pentest

SSH protokolünün çalışma mantığını, mimari yapısını ve güvenlik katmanlarını keşfedin. Siber güvenlikte önemli bir yere sahip olan SSH hakkında detaylı bilgi.

Siber Güvenlikte SSH Çalışma Mantığı ve Mimari Yapısı

Bu yazıda, SSH protokolünün nasıl çalıştığını, mimarisini ve çeşitli güvenlik katmanlarını öğreneceksiniz. Siber güvenlikte kritik bir rol oynayan SSH hakkında ayrıntılı bilgiler.

Giriş ve Konumlandırma

Siber güvenlik alanında, güvenli uzaktan bağlantı sağlamak için en yaygın kullanılan protokollerden biri olan SSH (Secure Shell), temel bir yapı taşıdır. SSH, hem yönetimsel hem de veri iletimi ihtiyaçlarını karşılamak için güçlü bir şifreleme ve doğrulama mekanizması sunar. Bu yazıda, SSH'nın çalışma mantığını ve mimari yapısını inceleyerek, siber güvenlikteki önemini ve kullanım senaryolarını ele alacağız.

SSH Protokolünün Temel Mantığı

SSH, kullanıcıların farklı sistemlere güvenli bir şekilde bağlanmalarını sağlarken, aynı zamanda veri bütünlüğünü ve gizliliğini korur. Ve bu süreç, çeşitli katmanlar aracılığıyla yönetilir. İki ana bileşen olan istemci ve sunucu, kullanıcıların kimlik doğrulamasını sağlamak için bir dizi algoritma ve protokolü eşgüdümlü bir şekilde kullanır. SSH'nın başarısı, her bir katmanın beklenen işlevleri yerine getirmesi sayesinde mümkün olur.

SSH'nın önemini daha iyi anlamak için, onun siber güvenlik bağlamındaki rolüne bir göz atmakta fayda var. Özellikle penetrasyon testleri (pentest) ve genel savunma stratejileri açısından SSH'nın sağladığı güvenlik, saldırganların sistemlere sızmasının önlenmesinde kritik bir faktördür. Örneğin, saldırganlar, şifrelenmemiş bir bağlantı üzerinden veri aktarımı yapıldığında ağ trafiğini dinleyebilir, bu da hassas bilgilere ulaşmalarına olanak tanır. Ancak SSH, verilerin şifrelenmesi sayesinde bu türden saldırılara karşı etkili bir koruma sağlar.

SSH Mimarisi ve Katmanları

SSH, genel olarak üç ana katmandan oluşur: Taşıma Katmanı, Kimlik Doğrulama Katmanı ve Bağlantı Katmanı. Bu katmanlar, tüm karşılıklı etkileşimleri yönetir ve güvenli bir iletişim kanalı oluşturur.

Taşıma Katmanı

Taşıma katmanı, sunucu kimlik doğrulaması, veri gizliliği ve bütünlük sağlamakla sorumludur. Genellikle TCP protokolü üzerinde çalışır ve kullanıcılar ile sunucular arasındaki bağlantının başlangıç noktasını oluşturur. Bu katmanda, şifreleme algoritmaları ve mesaj doğrulama kodları (HMAC) kullanılarak veri güvenliği sağlanır.

Örnek olarak, bağlantı sırasında kullanılan HMAC algoritmalarından biri şunlardır:
HMAC-SHA2-256

Kimlik Doğrulama Katmanı

Bu katman, istemcinin sunucuya kimliğini kanıtladığı yerdir. Asimetrik şifreleme algoritmaları, burada kritik bir rol oynar. İstemci, genellikle özel anahtarını kullanarak sunucuyla bir güvenli bağlantı kurar ve kimliğini doğrular.

Bağlantı Katmanı

Bağlantı katmanı, tek bir şifreli tünel üzerinden birden fazla bağımsız kanalın yönetilmesine olanak tanır. Bu kanal üzerinden terminal erişimi, SFTP ve port yönlendirme gibi farklı hizmetler sunulabilir. Böylece, kullanıcılar aynı anda birden fazla işlem gerçekleştirebilir ve verilerini güvenli bir şekilde iletebilir.

# Örneğin, yerel bir port yönlendirme işlemi gerçekleştirmek için kullanılan komut:
ssh -L 8080:localhost:80 user@remote-server

Sonuç

SSH, siber güvenlikte vazgeçilmez bir araçtır. Güçlü şifreleme algoritmaları, sağlam kimlik doğrulama mekanizmaları ve çoklu tünelleme özellikleri ile SSH, yalnızca sistem yöneticileri için değil, aynı zamanda güvenlik uzmanları için de önemli bir bileşendir. Bu yazıda ele alacağımız temel bileşenler ve işlevler, okuyucuları SSH'nın derinliklerine ve siber güvenlik alanındaki rolüne hazırlayacaktır. İlerleyen bölümlerde, SSH'nın mimarisinin daha detaylı incelenmesiyle birlikte, pratik uygulamalar ve güvenlik testleri için kullanımı üzerinde durulacaktır.

Teknik Analiz ve Uygulama

SSH Katmanlı Mimari: Transport Layer

SSH protokolü, güvenli uzak bağlantılar için geliştirilmiş bir yöntemdir ve üç ana katmandan oluşur. En alt katmanda yer alan Transport Layer, sunucu kimlik doğrulaması ve şifreli veri kanalının kurulmasında kritik bir rol oynar. Bu katman, genellikle TCP/IP üzerinde çalışarak güvenli bir iletişim sağlayabilmek için gerekli olan temel yapı taşlarını oluşturur.

Transport katmanındaki en önemli işlem, el sıkışma (handshake) sürecidir. Burada, istemci ve sunucu arasında kullanılan algoritmalar üzerinde bir pazarlık yapılır. Detayları görmek için aşağıdaki komut ile SSH bağlantısını verbose modunda kurabiliriz:

ssh -vvv admin@10.0.0.1

Bu komut, bağlantı sürecinde hangi adımların atıldığını daha ayrıntılı bir şekilde görmek için faydalıdır.

SSH Katmanlarının Görevleri

SSH mimarisi, kullanıcı güvenliğini sağlamak amacıyla her biri farklı görevleri üstlenen üç ana katmanın işbirliğiyle çalışır. Bu katmanlar:

  1. Transport Layer: Güvenli bir iletişim kanalı oluşturur.
  2. Authentication Layer: İstemcinin kendini sunucuya kanıtladığı katmandır.
  3. Connection Layer: Çoklu kanalların yönetilmesini sağlar.

Her bir katman, birbirini dengeleyerek hem performansı hem de güvenliği arttırır.

SSH Mimarisi: Veri Bütünlüğü

Veri bütünlüğü, SSH mimarisinde önemli bir yer tutar. Gönderilen paketlerin değiştirilip değiştirilmediğini kontrol etmek için kullanılan kriptografik özetleme yöntemine hashing denir. Bu yöntemle, veri paketlerinin bütünlüğü sağlanır ve iletim sırasında kötü niyetli saldırılara karşı korunma sağlanır.

Bu noktada, mesaj doğrulama kodu (HMAC) SSH'daki veri bütünlüğünü korumak için kullanılan kritik bir bileşendir.

Anahtar Değişimi (KEX) Mantığı

Anahtar değişimi (KEX), SSH bağlantısı kurulduğunda temel bir süreçtir. Kullanıcı ve sunucu, simetrik şifreleme için gerekli olan anahtar üzerinde anlaşır. Örneğin, Diffie-Hellman algoritması ile bu anahtarın, ağ üzerinden asla açık metin olarak geçmediği garantisi sağlanır.

Bağlantı başlangıcında, istemci bir anahtar değişimi isteğinde bulunur ve sunucu ile birlikte güvenli bir iletişim ortamı oluşturulur. KEX algoritmalarını taramak için kullanılabilecek Nmap komutu şu şekildedir:

nmap -p 22 --script ssh2-enum-algos 10.0.0.1

Bu komut, bağlanılacak sunucunun sunduğu anahtar değişim algoritmalarını tarar ve bilgi sunar.

Şifreleme Türleri ve Görevleri

SSH mimarisi, hem simetrik hem de asimetrik şifrelemeyi birlikte kullanarak verilerin güvenliğini artırır.

  • Asimetrik Şifreleme: Kullanıcı kimlik doğrulaması ve anahtar değişimi aşamalarında kullanılır. Burada, her kullanıcı için bir anahtar çifti (genel ve özel anahtar) oluşturulur.

  • Simetrik Şifreleme: Bağlantı kurulduktan sonra, asıl verinin (payload) hızlı bir şekilde şifrelenmesinde kullanılır. Bu tür, veri akışının güvenliğini sağlar.

SSH Mimarisi: Sunucu Parmak İzi

Sunucu ağı üzerinden istendiğinde, istemci bir sunucuya bağlandığında, sunucunun kimliğini doğrulamak için sunulan benzersiz kriptografik özete fingerprint denir. İstemci, daha önce bağlandığı sunucuların fingerprint’lerini known_hosts dosyasında saklar. Böylece, Man-in-the-Middle saldırılarına karşı ekstra bir koruma önlemi almış olur.

Connection Layer: Çoklu Kanal Yönetimi

SSH'nin en üst katmanı olan Connection Layer, tek bir şifreli tünel içinden çoklu bağımsız kanalların geçişine olanak tanır. Bu katman, multiplexing olarak bilinen özelliği sağlar ve terminal erişimi, port yönlendirme veya SFTP gibi uygulamaların aynı anda çalışmasına olanak tanır.

SSH üzerinden grafik arayüzlü bir uygulama taşımak için gereken bayrak ise -X seçeneğidir. Örneğin:

ssh -X admin@10.0.0.1

Bu komut ile grafiksel uygulamaları uzaktan çalıştırmak mümkündür.

SSH Mimarisi: İstemci Kaydı

SSH istemcisi, daha önce bağlandığı sunucuların kimlik bilgilerini saklayarak güvenliğini artırır. Bağlantının başından itibaren, istemci ve sunucunun destekledikleri SSH versiyonlarını (örn: SSH-2.0) paylaştığı ilk aşama olan versiyon değişimi, güvenli bağlantının temelini oluşturur.

SSH Mimarisi: Arka Plan Süreci

Sunucu tarafında SSH isteklerini bekleyen ve mimariyi destekleyen arka plan servisine Daemon (sshd) denir. Daemon, SSH sunucu servisini yürüten dosyanın teknik adıdır. Bu servisin yapılandırması, SSH mimarisinin güvenliğini belirleyen en önemli faktörlerden biridir.

Unix tabanlı sistemlerde SSH servisinin durumunu kontrol etmek için aşağıdaki komutı çalıştırabiliriz:

systemctl status ssh

Bu komut, ilgili servisin çalışıp çalışmadığını kontrol etmemizi sağlar.

Sonuç olarak, SSH protokolü, çok katmanlı yapısı ve şifreleme yöntemleri ile günümüzün siber tehditlerine karşı güçlü bir savunma mekanizması oluşturur. SSH'nin doğru bir biçimde yapılandırılması ve kullanılmasının sağladığı avantajlar, diğer birçok güvenlik uygulamasının önünde önemli bir yere sahiptir.

Risk, Yorumlama ve Savunma

Siber güvenliğin temellerinden biri olan SSH (Secure Shell), uzak sistemlere güvenli bir şekilde erişim sağlayan ve veri iletimi sırasında güvenlik önlemleri sunan bir protokoldür. Ancak, yanlış yapılandırmalar ya da bilişim sistemlerindeki zafiyetler, siber saldırganların bu güvenliğin ortadan kalkmasına neden olabilir. Bu bölümde, SSH yapılandırmasının getirdiği riskler, bu risklerin nasıl yorumlanacağı ve güvenliğin sağlanması için atılacak savunma adımları üzerine odaklanacağız.

Risklerin Değerlendirilmesi

SSH protokolünün yanlış yapılandırılması, birçok güvenlik açığına zemin hazırlayabilir. Örneğin, sunucu kimlik doğrulaması yapılmadığında ortaya çıkabilecek "Man-in-the-Middle" saldırıları ile saldırgan, iletişim verilerini kontrol altına alabilir. Bu tür bir senaryoda, saldırganın kimliğini gizlemek için kullanılacak bir dizi önlem alınması gerekmektedir.

ssh -vvv admin@10.0.0.1

Yukarıdaki komut ile, SSH bağlantı sürecinde sunucu kimliğini doğrulamak için gerçekleşen tüm süreçler detaylı bir şekilde izlenebilir. Sunucunun sunduğu anahtar değişim algoritmalarını tespit etmek için kullanılabilecek bir başka önemli araç ise Nmap'tır:

nmap -p 22 --script ssh2-enum-algos 10.0.0.1

Buradaki çıktılar, sunucu tarafında kullanılan şifreleme algoritmaları ve kimlik doğrulama yöntemleri hakkında bilgi verir. Yanlış yapılandırmaların bir diğer örneği ise, known_hosts dosyasının güncellenmemesi veya yanlış sunucu parmak izleri ile eşleştirilmesi olabilir.

Veri ve Servis Tespiti

SSH üzerinden erişim sağlarken genellikle bazı bilgilere ulaşmak mümkündür. Sızan veri veya sistemin topolojisi gibi sonuçlar, saldırganların hangi bilgilere ulaşabileceğini gösterir. Örneğin, sshd hizmetinin durumu kontrol edilerek, sunucu tarafında SSH servisi çalışıp çalışmadığı anlaşılabilir:

systemctl status ssh

Burada, sunucu yapılandırmalarında kullanılan portların ve servislere erişim izinlerinin doğru ayarlanması, potansiyel saldırılara karşı önemli bir önlem teşkil eder. Ayrıca, SSH tünelleme yöntemlerinin (yerel, uzaktan ve dinamik yönlendirme) güvenli biçimde yapılandırılması, veri iletişiminin bütünlüğünü korumada kritik rol oynamaktadır.

Profesyonel Önlemler ve Hardening Önerileri

SSH güvenliğini artırmak için aşağıdaki profesyonel önlemler uygulanmalıdır:

  1. Anahtar Tabanlı Kimlik Doğrulama: Kullanıcı şifreleri yerine anahtar tabanlı kimlik doğrulama kullanmak, saldırı yüzeyini azaltır.

  2. Güçlü Parolalar: Parola politikalarının zorunlu hale getirilmesi, kötü niyetli kullanıcıların sisteme girişini güçleştirir.

  3. SSH ve Servis Ayarları: SSH konfigürasyon dosyasının (/etc/ssh/sshd_config) dikkatlice gözden geçirilmesi; gereksiz protokol sürümlerinin kapatılması ve gerekli sertifikaların kontrol edilmesi gereklidir.

  4. Limit Erişim: IP beyaz listesi oluşturmak, yalnızca belirli adreslerin SSH üzerinden bağlantı sağlamasına olanak tanımak, güvenliği artırır.

  5. Port Değişikliği: Varsayılan 22 numaralı portun değiştirilmesi, otomatik botların hedef almasını zorlaştıracaktır.

  6. Güncellemeler: SSH yazılımının ve alt bileşenlerinin düzenli olarak güncellenmesi, bilinen güvenlik açığı risklerini minimize eder.

Sonuç

SSH'nın güvenliği, sistemlerin bütünlüğü ve veri gizliliği açısından hayati öneme sahiptir. Yapılandırmaların titizlikle değerlendirilmesi ve sürekli izleme uygulamaları, potansiyel tehlikelere karşı alınacak en etkili tedbirlerdir. Yanlış yapılandırmalardan doğabilecek riskler, profesyonel önlemlerle minimize edilerek güvenlik zeafiyetlerinin önüne geçilebilir. Unutulmaması gereken bir diğer noktada, güvenliğin sürekli olarak bir öncelik haline getirilmesi ve güncel tehditlere uygun şekilde güncellemelerin yapılmasıdır.