Uygulama Katmanı Protokolleri
DHCP
Dinamik Ana Bilgisayar Yapılandırma Protokolü (DHCP), bir ağdaki yeni istemcilerin bir IP adresi ve sağlanan hizmetler hakkında bilgi almasına izin vermek için kullanılır. IPv4 adresleri iki grup olarak düşünülebilir: statik adresler ve dinamik adresler. Dinamik adresler bir DHCP sunucusu tarafından belirli bir kira süresi için dağıtılır. Süre dolduğunda, DHCP sunucusu adresi başka bir istemciye dağıtabilir. DHCP sunucuları ayrıca proxy'ler, Alan Adı Sunucuları (DNS), ağ geçitleri ve hatta ağ üzerinden bir işletim sistemini başlatmak için bir çekirdeğin nereden alınacağı hakkında bilgi verebilir!
İstemcilerin gelip gittiği modern ağların dinamik yapısı göz önüne alındığında, DHCP standarttır. Güvenlik açısından bakıldığında, DHCP sunucusunu taklit eden biri bir ağda hasara yol açabilir. Bu sahte DHCP sunucuları, MitM saldırıları başlatmak veya DoS saldırılarına neden olmak için trafiğin yeniden yönlendirilmesine neden olabilir. DHCP, Adres Çözümleme Protokolü (ARP) mesajlarının yayınına dayanır ve kimlik doğrulamasını kullanmaz, yani bir saldırgan kurban makinelerle aynı Ethernet segmentine girdiğinde tüm bahisler kapanır.
HTTP
Köprü Metni Aktarım Protokolü (HTTP), web trafiğinin nasıl hareket ettiğini yöneten metin tabanlı bir protokoldür. Bir istek ve bir yanıt kavramı üzerine inşa edilmiştir. Tipik bir istekte bir yöntem ve bir yol bulunur; örneğin GET /index.html bir web sitesinin açılış sayfasını getirir. Yanıtların bir kodu, mesajı ve isteğe bağlı olarak verileri vardır. Bazı standart yanıtlar aşağıda gösterilmiştir:
| Kod | Mesaj |
|---|---|
| 200 | Tamam |
| 202 | Kabul Edildi |
| 400 | Geçersiz İstek |
| 401 | Yetkisiz |
| 403 | Yasak |
| 404 | Bulunamadı |
| 500 | Dahili Sunucu Hatası |
| 502 | Geçersiz Ağ Geçidi |
| 503 | Hizmet Kullanılamıyor |
Hem istekler hem de yanıtlar, ilk istek veya yanıtı takip eden rastgele metin satırları olan başlıklardan yararlanabilir. Başlıklar açık uçlu olacak şekilde tasarlandığından, zaman içinde birçok yeni başlık eklenmiştir. Modern bir web istek/yanıtında genellikle başlıklarda HTTP 1.1'de tanımlanan temel bilgilerden çok daha fazla bilgi bulunur. Şifrelenmemiş HTTP trafiği 80 numaralı bağlantı noktası üzerinden gönderilir ve tüm bilgiler açık metin olarak gönderildiği için saldırılara karşı savunmasızdır.
SSL/TLS
Güvenli Yuva Katmanı (SSL) veya daha modern bir isimlendirme olan Taşıma Katmanı Güvenliği (TLS), web üzerinde kullanılan açık metin protokollerinin şifrelenmesini sağlayan bir protokoldür. Diğer protokollerin iletişim kurduğu bir katman olarak tasarlanmış genel amaçlı bir protokoldür. Tipik olarak TLS'ye sarılmış bazı protokoller arasında HTTP, SMTP, IMAP, VoIP ve birçok VPN protokolü bulunur. TLS, şemada gösterildiği gibi sertifika bilgilerini değiş tokuş etmek için bir tokalaşma kullanır. Bu yazının yazıldığı sırada TLS 1.3'ün en güncel sürüm olduğunu, ancak web sitelerinin yalnızca yarısının bunu desteklediğini belirtmek gerekir. En yaygın sürüm olan TLS 1.2, en iyi uygulamalar takip edilirse hala güvenli olarak kabul edilir ve TLS 1.1 veya daha düşük sürümler değerini yitirmiş olarak kabul edilir.
HTTPS
Hypertext Transfer Protocol Secure (HTTPS), HTTP isteklerini TLS'ye sararak şifrelenmemiş trafik sorununu çözer. HTTPS trafiği 443 numaralı bağlantı noktasını kullanır ve genellikle bir tarayıcıda sol üst köşede bir kilit simgesiyle gösterilir. Kullanıcılar simgeye tıklayarak iletişim için kullanılan sertifikalar hakkında daha fazla bilgi edinebilirler. Sağlam bir PKI HTTPS kullanmak, istemci ve sunucu arasında güvenli HTTP iletişimi sağlar.
RDP
Uzak Masaüstü Protokolü (RDP) Windows'ta yerleşiktir ve genellikle bir makineyi uzaktan kontrol etmek için kullanılır. TCP veya UDP aracılığıyla 3389 numaralı bağlantı noktası üzerinden çalışır. RDP, uzaktaki bir makinede uzaktan yönetim gerçekleştirmek için oldukça yararlı olsa da, kötü bir aktörün erişim sağlaması durumunda büyük bir güvenlik açığı da olabilir. Fidye yazılım programları saldıracak başka makineler bulmak için RDP'yi kullanabildiğinden, fidye yazılım saldırılarında RDP kullanımı artmaktadır.
Telnet
Telnet, açık metin kanalı üzerinden bir kabuğa erişim sağlayan eski bir uzaktan yönetim aracıdır. Telnet 23 numaralı bağlantı noktasında çalışır ve hala ara sıra kullanılıyor olsa da büyük ölçüde kullanımdan kaldırılmalıdır. Telnet'i hala gömülü uygulamalarda ve eski sistemlerde bulabilirsiniz. İstemcinin diğer trafik türlerini incelemek için kullanıldığını da görebilirsiniz. Örneğin, HTTP istekleri göndermek veya SMTP üzerinden e-posta göndermek için bir telnet istemcisi kullanabilirsiniz.
SSH
Secure Shell (SSH) en yaygın kullanılan uzaktan yönetim aracıdır. SSH, şifrelenmiş bir bağlantı aracılığıyla bir kabuğa erişim sağlar. SSH, SOCKS5 proxy'leri, port yönlendirme ve çoklu kimlik doğrulama şemalarının kullanımı dahil olmak üzere birçok seçeneği destekler: şifre, anahtar, donanım cihazı vb. SSH 22 numaralı bağlantı noktasında TCP kullanır.
LDAP
Hafif dizin erişim protokolü (LDAP), dizin bilgi hizmetlerine erişmek ve bu hizmetleri sürdürmek için kullanılır. Birincil kullanımı, bir AD sunucusundan kullanıcılar ve kaynaklarla ilgili bilgi almak için kullanılabileceği Windows Active Directory'dir (AD). İstemciler sunucu üzerinden kimlik doğrulaması yapabilir ve belirli girdileri okumak veya okumak/yazmak için ayrıcalıklar elde edebilir. LDAP başlangıçta şifrelemeyi desteklemiyordu, bu nedenle SSL üzerinden LDAP (LDAPS) geliştirildi. LDAP 389 numaralı bağlantı noktası üzerinden TCP ve UPD kullanırken LDAPS 636 numaralı bağlantı noktası üzerinden TCP kullanır.
DNS
Alan Adı Sistemi (DNS), alan adlarını IP adreslerine çözümlemek için kullanılır. Alan adları, 54.83.189.142 yerine njit.edu gibi insanların web siteleri için alışkın olduğu basit adlardır. İnsanların isimleri hatırlaması IP adreslerine göre çok daha kolaydır. Bir bilgisayarın bir adı çözümleyebilmesi için önce yerel bir önbelleği, ardından da birincil DNS sunucusunu sorgular. DNS sunucusunun adı bulamadığını varsayarsak, söz konusu alan adı (edu, com, net, org, gov, vb.) için Yetkili Ad Sunucularının bir listesini tutan bir Üst Düzey Alan Adı (TLD) sunucusu için bir Kök sunucusunu sorgular. Son olarak, yetkili bir ad sunucusu bulunduğunda, söz konusu ana bilgisayar adı için IP adresiyle yanıt verecek ve bu adres önbelleğe alınacak ve kullanıcının birincil DNS sunucusu aracılığıyla kullanıcıya geri gönderilecektir.
DNS esnek ve merkezi olmayan bir yapıda tasarlanmıştır ancak ne yazık ki trafik doğrulanmamakta ya da şifrelenmemektedir. Bu da onu MitM saldırıları için bir hedef haline getirmiştir. Aynı şekilde önbellek vuruşları ve ıskalamaları da yakın zamanda hangi adların çözümlendiğine dair bilgi verebilir (Sony Rootkit'in kapsamının keşfedilmesinde olduğu gibi). DNS'in özyinelemeli yapısı geçmişte DoS saldırılarına da izin vermiştir, ancak bunun çoğu, özyinelemeli sorguları kullanıcıya dönük DNS sunucularıyla (yani DHCP isteğiniz tarafından size verilen) sınırlandırarak çözülmüştür. DNS, 53 numaralı bağlantı noktasında UDP (ve bazen TCP) üzerinden çalışır.
DNSSEC
Alan Adı Sistemi Güvenlik Uzantıları (DNSSEC), alan adı aramalarına verilen yanıtların kimliğini doğrulamak için tasarlanmış bir uzantı özellikleri paketidir. Bu, yanıt veren sunucunun dijital imzasını kontrol ederek MitM saldırılarını önlemeye yardımcı olabilir. Bu kesinlikle yararlı olsa da, DNSSEC'in gizlilik sağlamadığını unutmamak önemlidir. DNS çözümlemeleri trafiğe erişimi olan herkes tarafından izlenmeye devam edilebilir.
IMAP/POP3
Internet İleti Erişim Protokolü (IMAP) ve Posta Ofisi Protokolü 3 (POP3) bir sunucudan e-posta almak için kullanılan iki protokoldür. IMAP, postaların sunucu ve klasörlere kaydedilmesini destekleyen daha yeni bir protokoldür. POP3 daha ilkeldir, yalnızca e-postaların alınmasını (ve ardından sunucudan silinmesini) destekler. Her iki protokol de açık metin kullanır ve artık yaygın olarak TLS üzerinden çalıştırılmaktadır. POP3 varsayılan olarak TCP bağlantı noktası 110 veya TLS kullanıyorsa 995'tir. IMAP varsayılan olarak TCP bağlantı noktası 143 veya TLS kullanıyorsa 993'tür. Web postası çağında bu protokolleri unutmak kolaydır, ancak kurumsal cihazları desteklemek için hala kullanılabilecekleri için bir güvenlik uzmanı bunları akılda tutmalıdır.
SMTP
Basit Posta Aktarım Protokolü e-posta göndermek/iletmek için kullanılır. Belirtildiği gibi, metin satırlarından oluşan basit bir protokoldür. Temel SMTP 25 numaralı bağlantı noktasında TCP kullanıyordu. SMTP daha sonra kimlik doğrulamayı destekleyecek şekilde genişletildi ve son olarak 587 numaralı bağlantı noktasında hala TCP kullanan TLS'ye dahil edildi. SMTP sunucuları (umarız) kimliği doğrulanmış istemcilerden giden postaları kabul eder, DNS kayıtlarındaki Posta Değişimi (MX) bilgilerine dayanarak postaları diğer SMTP sunucularına yönlendirir ve diğer SMTP sunucularından kendi etki alanları için posta kabul eder. SMTP sunucularında, alan adlarından gelen mesajların gerçekten o alan adlarından geldiğinden emin olmak için çeşitli kontroller uygulanmıştır. Bu, büyük ölçüde bir sorun olmaya devam eden spam ile mücadele etmek için kullanılmaktadır.
NTP
Ağ Zaman Protokolü, sistem zamanını bir zaman sunucusuyla senkronize etmek için 123 numaralı bağlantı noktası üzerinden UDP kullanır. NTP sunucuları, en alt katmanlar en doğru zaman kaynaklarına, atomik saatlere, GPS'e vb. en yakın olacak şekilde katmanlar halinde yerleştirilmiştir. NTP, birkaç anahtar değişimi de dahil olmak üzere birçok protokolün sistem saatlerinin senkronize olmasını gerektirmesi nedeniyle önemlidir. Sistem saatleri ayrıca sertifikaların süresinin ne zaman dolduğunu kontrol etmek için kullanılır ve günlüklerde bir şeyin ne zaman olduğunu belirtmek için kullanılır. Doğru, senkronize bir sistem saati olmadan birçok şey şaşırtıcı şekillerde başarısız olacaktır.
FTP
Dosya Aktarım Protokolü, makineler arasında dosya göndermek için kullanılan nispeten basit, metin tabanlı bir protokoldür. FTP 21 numaralı bağlantı noktasında TCP kullanır ve geleneksel olarak iki kanal kurar: biri protokol mesajları için, diğeri de veriler için ikili kanal. Bu kurulumla ilgili ilginç olan şey, FTP sunucusunun sunucudan istemciye veri kanalının bağlantısını başlatmasıdır, bu da istemciye bir güvenlik duvarının arkasından kolayca ulaşılamadığı birçok NAT durumunda başarısız olacağı anlamına gelir. Bu sorunun çözümü, istemci tarafından kurulan bir kanal kullanan pasif FTP idi.
Başlangıçtaki bu eksikliğe rağmen, FTP inanılmaz derecede popüler olduğunu kanıtladı ve hala birçok kurumsal ortamda kullanılıyor. FTP'nin sistemlere aktarılmak üzere toplu veri iletmek veya gömülü sistemlerde ürün yazılımını güncellemek için kullanıldığını görebilirsiniz. FTP'yi bir komut satırı istemcisi, ftp, Filezilla veya SecureFX gibi bir grafik istemci ile veya hatta ftp:// URL şeması ile çoğu web tarayıcısında kullanabilirsiniz.
Ne yazık ki FTP şifreler dışında kimlik doğrulama sistemlerini desteklemez ve şifreler düz metin olarak gönderilir. Bu nedenle Güvenli FTP (SFTP) önerilir. SFTP, şifrelenmiş bir kanal üzerinden dosya göndermek ve almak için bir SSH bağlantısı kullanır. SFTP ayrıca tüm SSH kimlik doğrulama yöntemlerini de destekler.
SNMP
Basit Ağ Yönetimi Protokolü, bir ağın işleyişi hakkında bilgi toplamak için kullanılır. İki gruba ayrılır: UDP bağlantı noktası 161 (TLS 10161) kullanan istemciler ve UDP bağlantı noktası 162 (TLS 10162) kullanan bir yönetici. Yönetici, ağın işleyişiyle ilgili olarak istemcilerden gelen mesajları toplar ve bu bilgileri gerekli eylemleri gerçekleştirmek için kullanır. SNMP, bir makinenin sıcaklığı, o anda kaç bağlantısı olduğu, o anda kullanılan kanal kapasitesi vb. hakkında bilgi aktarmak için kullanılabilir. SNMP şu anda şifrelenmiş ve kimlik doğrulama gerektiren sürüm 3'e kadardır. Bu özellikle önemlidir çünkü SNMP, bir saldırgan için potansiyel olarak çok değerli olabilecek bilgi alışverişinde bulunan çok güçlü bir protokoldür. SNMP'ye erişim sınırlandırılmalı ve bir ağ üzerindeki kullanımı izlenmelidir.
Önceki Ders: Aktarım Katmanı Protokolleri
Sonraki Ders: Laboratuvar: nmap ile tarama
Yorumlar
Yorum Gönder