Published using Google Docs
OSI Referans Modeli ve Güvenlik
Updated automatically every 5 minutes

Veri İletişimi

Veri iletişimini bir bilginin (verinin) kaynaktan alınıp hedefe bozulmadan, anlamını yitirmeden ulaşması olarak tanımlayabiliriz. Günümüz dünyasında veri iletişimi olmaksızın teknoloji ve hayat düşünülemez. Bu açıdan veri iletişiminin önemi büyüktür. Veri ileşimi, bu kadar önemli olmasıyla birlikte bir o kadarda zor bir süreçtir. Bu süreci daha basit ve uygulanabilir hale getirmek için çeşitli kavramlar ve sistemler geliştirilmiştir. Bu kavramları bahsedecek olursak ilk olarak protokol kavramından başlamalıyız.

Protokol, iletişim için oluşturulan kuralların bütününü tanımlamaktadır. Haberleşmeyi gerçekleştiren taraflar arasında bu standartlar bilinir ve bu standartlara göre hareket edilir. Bu standartlar protokoller için oluşturulmuş özel alanlarla ifade edilir  ve bu alanlar gönderilecek olan veriyle birlikte hedef sisteme gönderilir. Veriyi alan taraf ise bu protokol standartlarına bağlı kalarak veriyi alır ve yorumlar.

                             Gönderici                                                                       Alıcı

                                                                (protokol+veri)

                                   |--------------------------------------------------------------|

Protokolleri iki gruba ayırabiliriz; haberleşme ve hizmet protokolleri. Haberleşme protokolleri verinin kaynaktan hedefe sorunsuz bir şekilde iletilmesiyle ilgilenen protokollerdir. Hizmet protokolleri ise kaynak ve hedef sistemlerde verinin anlamlandırılarak çeşitli hizmetlerin verilebilmesini sağlarlar. Örnek verecek olursak ethernet bir haberleşme protokolü iken  http bir hizmet protokolüdür.

Önceki paragraflarda haberleşmenin zor ve karmaşık bir süreç olduğundan bahsetmiştik. Karmaşık problemleri çözmenin en kolay yolu şüphesiz parçalara ayırmaktır. Parçaların kendi içinde çözümü bütünün çözümüne katkı sağlayacaktır. Bu mantıktan hareket ile haberleşme modeli olarak katmanlı model bir çözüm olarak sunulmuştur. Bu modelde haberleşme için gerekli olan tüm süreçler katmanlara bölünmüştür ve ortaya daha basit ve anlaşılır bir sistem çıkmıştır.  

OSI Referans Modeli

Haberleşme sistemi problemini çözmek üzere uluslararası Standartlar Örgütü (ISO) tarafından 1984’ te OSI (Open Systems Interconnection) referans modeli olarak oluşturulmuş bir sistemdir. OSI modeli 7 adet katmandan oluşur ve bir bilgisayarda çalışan uygulamanın iletişim ortamı üzerinden başka bir bilgisayarda çalışan diğer bir uygulama ile olan iletişiminin tüm adımlarını tanımlar.  Bu model karmaşıklığı azaltmakla beraber modüler mimari imkanı sunar ve çok üreticili bir gelişme ortamı sağlamıştır.

OSI Katmanları:

7 - Uygulama Katmanı

6 - Sunum Katmanı

5 - Oturum Katmanı

4 - Taşıma Katmanı

3 - Ağ Katmanı

2 - Veri bağı Katmanı

1 - Fiziksel Katman

Şİmdi gönderici ve alıcı tarafta bu katmanların üstlendiği görevleri ve çalışma şekillerini anlamak adına bu katmanları tek tek inceleyeceğiz.

 

Uygulama Katmanı

Bu katman kullanıcıya en yakın katman olup, uygulamalar için ağ servisleri sunmaktadır. Yani bilgisayar uygulaması ile ağ arasındaki ara birim görevini üstlenir. Farklı protokolleri desteklemektedir.

Sunuş Katmanı

Sunum katmanı 6. katman olup, en önemli görevi gönderilen verinin karşı bilgisayar tarafından anlaşılabilir halde olmasını sağlamaktır.  Örnek verecek olursak DOS ve Windows 9x metin tipli veriyi 8 bit ASCII olarak kaydederken (örneğin A harfini 01000001 olarak), XP tabanlı işletim sistemleri 16 bit Unicode'u kullanır (A harfi için 00000000 01000001). Ancak kullanıcı tabii ki sadece A harfiyle ilgilenir. Sunum katmanı bu gibi farklılıkları ortadan kaldırır. Böylelikle farklı ortamların birbiriyle haberleşmesini kolaylaştırmaktadır. Ayrıca varsa şifreleme ve şifre çözme işlemleri bu katmanda gerçekleştirilir.

Oturum Katmanı

Oturum katmanı veya 5. katman , bir bilgisayarın birden fazla bilgisayarla aynı anda herhangi bir problem olmadan, sağlıklı bir şekilde iletişim kurmasını sağlar. Uygulamalar arasında oturum kurar, yönlendirir ve sonlandırır.

Taşıma Katmanı

Taşıma katmanı 4. katman olup uç düğümler arası bağlantı sağlamakla birlikte birçok görev üstlenmiştir. Verinin güvenilir ve eksiksiz bir şekilde taşınması için uç birimler arasında sanal devreler kurar, yönetir ve sonlandırır. Bilgi akışı kontrolü, hata tespiti ve düzeltme, verinin parçalanarak gönderilmesi bu katmana ait görevlerdendir. Ayrıca bu katman işletim sistemiyle en çok haşir neşir olan katmandır.

Ağ Katmanı

Ağ katmanı, veri paketlerinin farklı lokasyonlara gönderimi gerektiğinde yönlendirme işlemleri ve uç birimler arasındaki en uygun yolu belirleyen katmandır. Mantıksal adresleme ile bu görevleri yerine getirmektedir. Ayrıca heterojen alt ağların bulunduğu bir ortamda alt ağlardan geçiş sırasında adresleme ve paket boyu farklılığı gibi problemlere çözüm bulur.

Veri Bağı Katmanı

Veri bağı katmanı, iletişim ortamına erişim ve iletişim ortamını kullanma ile ilgili görevleri üstlenir. Veri bağı katmanının büyük bir bölümü haberleşme kartı üzerinde gerçekleşir. Veri bağlantısı katmanı ağ üzerindeki diğer bilgisayarları tanımlama, kablonun o anda kimin tarafından kullanıldığının tespiti ve fiziksel katmandan gelen verinin hatalara karşı kontrolü görevini yerine getirir. Ayrıca veri paketlerinin fiziksel adresleri bu katmanda paketlerin üzerine yazılır.

Fiziksel Katman

Fiziksel katman verinin iletilebilmesi için, bitlerden elektronik veya elektromanyetik sinyal üretilmesini sağlar. Gönderen tarafta fiziksel katman bir ve sıfırları elektrik sinyallerine çevirip kabloya yerleştirirken, alıcı tarafta fiziksel katman kablodan okuduğu bu sinyalleri tekrar bir ve sıfır haline getirir. İletişimin sağlıklı olabilmesi için iki tarafında aynı kodlama ve kod çözme tekniklerine sahip olması gerekir. Ayrıca kablo, konnektör ve voltaj gibi kavramlar bu katmana ait kavramlardır.

TCP/IP Protokol Yığını ve OSI Referans Modeli

OSI bir referasn modelinidr ve 7 katmandan oluşmaktadır. TCP/IP mimarisi ise OSI referans modelinin günümüzde gerçeklemiş bir örneğidir. Açık bir mimariye sahip olan TCP/IP protokolleri 4 katmanlı bir yığın şeklinde tanımlanmıştır. Bu katmanlar içerisindeki TCP, UDP, IP, ICMP, IGMP ve ARP protokolleri çekirdek protokoller olarak adlandırılmaktadır. Ayrıca TCP/IP protokol yığınında ilk iki katmanın tam olarak karşılığı yoktur. Aşağıdaki şekilde OSI ve TCP/IP mimarileri karşılaştırılarak gösterilmiştir.

Ara Bağlantı Cihazları

Haberleşme için ön görülen katmanlı mimari yapısının en doğal sonuçlarından biri de ara bağlantı cihazlarıdır. Ara bağlantı cihazları, farklı kapsama alanlarına sahip ağ protokollerinin olması ve bu ağlar üzerinden internet hizmeti alma zorunluluğumuzun bulunmasından dolayı ortaya çıkmıştır. Yani farklı ağ ve protokolleri birbirleriyle uyumlaştıran cihazlardır. Başlıca ara katman cihazları şunlardır:

Bu cihazlardan router ve gateway geniş alan ağları kapsamında kullanılırken switch, bridge, hub ve repeater ise yerel alan ağlarında kullanılmaktadır. Ayrıca bir katmanı destekleyen cihaz o katmanın altında kalan diğer tüm katmanları desteklemektedir. Örneğin gateway tüm katmanları destekler. Aşağıdaki şekil ara bağlantı cihazlarının destekledikleri katmanları göstermektedir.

Repeater (Tekrarlayıcı)

Veri, sinyal zayıflaması ve gürültü gibi etkenlerden dolayı ancak belirli mesafelere kadar bozulmadan iletilebilir. Bu zafiyetten kaynaklanan ihtiyacı karşılamak için tekrarlayıcılar üretilmiştir. Tekrarlayıcı tekrar sinyal üretir ve verinin aktarımıyla ilgilenir veri üzerinde herhangi bir yorumlama işlemi yapmaz. Fiziksel katmanı desteklemektedir. Kullanıldığı ağda fiziksel segmenti iki katına çıkarır ve band genişliği problemi oluşturabilir. Günümüzde tek başına kullanımı mevcut değildir.

--------                                                  _______                                           -------

|   A   |    ____segment1_____________|repeater|_____segment1_________   |   B   |

--------                                                                                                                      --------

Hub

Hub, çok portlu tekrarlayıcı olarak tanımlanabilir. Bir portu üzerinden bir çerçeve alır ve aldığı çerçeveyi aldığı port haricindeki diğer tüm portların üzerinden gönderir. Aldığı her şeyi tekrarladığı için çok portlu tekrarlaıycı olarak tanımlanır. Çarpışma etki alanı azaltmaz. Ayrıca hub kullanıldığı ağda ciddi bir güvenlik zafiyeti meydana getirir. Hubın bir portuna bağlı olan  bilgisayar, hub ile aynı lokasyonda olan diğer bilgisayarların trafiğini izleyebilecektir. Buda güvenlik açısında istenmeyen bir durumdur.

Bridge

OSI referans modelinde ilk iki katmanı destekleyen bu cihaz bir ağ içerisinde farklı lokasyonların  oluşmasını sağlar ve ağ trafiğinde gerçekleşecek olan çarpışmaları azaltır. Bu cihazlar segmantasyon (farklı lokasyonlar oluşturma) özelliği ile artan düğüm sayısına karşın performansın düşmesini engellerler. Tak çalıştır bir cihaz olan brigde herhangi bir konfigurasyon gerektirmez. Her bridge MAC adresi ve segment numarası değerlerini taşıyan birer tabloya sahiptir. Böylelikle çarpışmalar azalırken tablolara bakılarak paketler hedeflere iletilir. Switchler her ne kadar veri üzerinde yorum yapma özelliğine sahip olsalar da multicast ve broadcast mesajları filtreleyemezler.  Bridge’ in her bir portu bir çarğışma alanı (collision domain) oluşturur.

Bridge’ in tablo oluşturma mekanizmasına gelince, bunu bir örnek üzerinde açıklayalım.

Port

MAC ADDRESS

Şekildeki switch 1,2 ve 3 numaralı portlara sahiptir. Bilgisayarların MAC adresleri ise belirtildiği gibidir. A bilgisayarından C bilgisayarın gönderilmek istenen bir veri bridge in 1 nolu portuna gelir. Burada bridge A nın göndermiş olduğu paketin destination (hedef) adresine bakar ve kendi tablosunda bu adresin kayıtlı olup olmadığını kontrol eder. Olmadığını görünce gelen paketin source (kaynak) adres alanına bakar ve 1 portu için AAA adresini tablosuna satır olarak ekler.  Böylece AAA adresine ait bilgisayarın 1 numaralı portunda bulunduğunu öğrenmiş olur. Ardından A dan gelen mesajı hub gibi diğer portlarından yayınlar.

Port

MAC ADDRESS

1

AAA

Daha sonra B bilgisayarı A bilgisayarına bir paket gönderecek olsun. Yine aynı işlemi yapan switch B’ nin göndermiş olduğu mesajın hedef  adresine bakar ve orada AAA yı görür. AAA adresinin tablosunda olup olmadığını kontrol eden switch bunun tablosunda olduğunu ve 1 numaralı portun bulunduğu lokasyonda olduğunu anlar. Gelen paketi 1 numaralı portuna köprülemeden önce kaynak adresine ve bu paketin geldiği porta bakarak tablosuna yeni bir satır ekler. Ardından C den gelen paketi 1 numaralı porta köprüler ve iletimi sağlar. Bu iletimden sonra tablo aşağıdaki gibidir.

 

Port

MAC ADDRESS

1

AAA

2

BBB

Bridge ağdaki tüm cihazların mac adreslerini ve hangi portta olduklarını zamanla tablosuna kaydettikten sonra iletişim hızlı ve çarpışma olmadan gerçekleşecektir.

Switch

Bridge hakkında anlatılan ve söylenen her şey switch içinde geçerlidir. Bridge bir başvuru modeli olarak geliştirilmiştir ve switchler bridgelerin tüm özelliklerini aynen almıştırlar.  Switchle bridge nin tek farkı, bridge nin yazılımla yaptığı işleri switchin donanımsal olarak yapıyor olmasıdır. Ayrıca farklı fiziksel lokasyonları birbiri ile uyumlu hale getirme özelliği mevcuttur.

Router

OSI referans modelinin ilk üç katmanına sahip aktif ağ cihazlarıdır ve ağ katmanında çalışırlar. Hem LAN hem de WAN arayüzlerine sahiptirler. LAN sistemlerle WAN sistemler arasında köprü görevi üstlenirler. İki ana fonksiyonları vardır. Ağ katmanına ait protokoller düzeyinde adres kontrolü yapıp komple bir ağda paketin alıcısına gitmesi için en uygun yolu belirlerler. İkinci olarak ise paketlerin uygun arayüze anahtarlanmasını sağlarlar. Ayrıca yönlendirme tablolarını diğer yönlendiricilerle bilgi değiş tokuşu yaparak inşa ederler.

Gateway

Ağlar arası geçişi sağlayan tüm OSI katmanlarını destekleyen bir cihazdır. Farklı mimariye sahip iki ağ yapısını uyumlaştırmaktadır. Tüm katmanları kontrol etme özelliğine sahiptir. Evlerimizde kullandığımız adsl modemler veya şirketlerin clientlarını dış dünyaya çıkarırken kullandıkları cihazlar gatewaye örnek olarak gösterilebilir.  Yaptığı işe örnek verece olursak, IPX/SPX tabanlı Novell ağındaki bir bilgisayar uygun bir ağ geçidi kullanarak  internette rahatlıkla gezinebilir. Ağın güvenliğini sağlayan firewall gibi 7 katmanı desteklediği için gatewayler de  firewall olarak kullanılabilir.

 Güvenlik Zafiyetleriyle Beraber TCP/IP Protokol Mimarisinin İncelenmesi

TCP/IP protokol yığını 4 katman ve her katmanda görev yapan protokollerden meydana gelmektedir. Bu protokoller bulundukları katmanın bir üst ve bir alt katmanında çalışan protokoller ile sürekli iletişim halindedirler. Şimdi bu protokoller katman katman incelenerek uygulama verisinin bir düğümden diğer düğüme aktarılırken gerçekleşen aşamalardan bahsedilecektir. Ayrıca katmanlara ve protokollere göre güvenlik zafiyetleri ele alınıp bu zafiyetlerin sebepleri ve sonuçları değerlendirilecektir.

Aşağıdaki şekilde TCP/IP veri gönderme ve alma prosesi gösterilmiştir.

Şekle bakacak olursak uygulama verisi uygulama katmanında hazırlandıktan sonra bir alt katman olan taşıma katmanına iletilir. Taşıma katmanı üstüne düşen görevi yapabilmesi için önceden kararlaştırılmış protokol başlık yapısını uygulama verisine ekler ve datayı bir alt katmana iletir. Yine aynı şekilde internet ve veri bağı katmanı kendi o katmanda çalışan uygun protokolün başlık yapısını ekleyerek veriyi fiziksel katmana kadar iletir. Fiziksel katmanda elektrik veya elektromanyetik sinyale dönüştürülen veriler hedef sisteme iletilir. Alıcı tarafta alttan üste doğru her katman kendi başlık yapısı ve onun taşıdığı anlam ile ilgili işleri yerine getirerek başlık yapısını veriden ayırır ve bir üst katmana gönderir. Böylece uygulama verisi süreç sonunda en üst katmanda çalışan servise teslim edilerek iletişimin tamamlanması sağlanır. Şimdi bu yapıya biraz daha yakından ve güvenlik perspektifi ile bakalım.

Uygulama Katmanı

Son kullanıcıya çeşitli internet hizmetlerini sağlayan protokolleri barındırır. Bu katmanda Yaygın olarak kullanılan protokoller HTTP, FTP, SMTP, SNMP, DNS ve DHCP  olarak gösterilebilir.

HTTP (Hypertext Transfer Protocol) kaynaktan dağıtılan ve ortak kullanıma açık olan hiper ortam bilgi sistemleri için uygulama seviyesinde bir iletişim kuralıdır. Web sayfalarının alış verişini sağlar. HTTP protokolü sunucu ve istemci arasında iletişim kurmaktadır. Tüm dünyada varsayılan olarak 80. portta çalışır. Ayrıca taşıma katmanında TCP yi kullanmaktadır.

Bu protokol istek cevap mantığıyla çalıştığından, sunucu ve istemci arasında şifrelenmemiş bir http trafiği potansiyel olarak risk taşımaktadır. Çünkü trafiği dinleyebilen bir kişi, tüm http mesaj içeriklerini rahatlıkla elde edebilir. Bu sebeple http verilerinin şifrelenmiş olarak iletimi için  https protokolü önerilmiştir. Böylelikle daha güvenilir bir iletişim gerçekleştirilebilir.

FTP (File Transfer Protocol) bir veri yığınının (ASCII, EBCDIC, ve binary vb.) bir uç aygıttan diğerine iletimi için kullanılan protokoldür. Kullanıcı adı ve şifre ile erişim sağlandığı gibi şifresiz hizmet veren ftp sunucularda mevcuttur. Aktif ve pasif olmak üzere iki farklı çalışma şekli vardır.

   

                      Aktif Bağlantı                                                          Pasif Bağlantı

FTP güvenli bir protokol olarak dizayn edilmemişti (özellikle günümüz standartlarına göre) ve güvenlik açısından birçok zayıflığı vardı. Mayıs 1999'da RFC 2577' nin yazarları güvenlik zaaflarını listeledi. Bunlar; bounce saldırıları, spoof saldırısı, kaba kuvvet saldırıları, kullanıcı adı korunumu, port hırsızlığı. Bu güvenlik açıklarının bir kısmı protokol tabanlı bir kısmı ise konfigrasyon hatası sonucu oluşmaktadır. Örneğin bounce atakları ftp serverların saldırgan tarafından proxy olarak kullanıldığı ataklardır. Bu ataklar pasif bağlantının zafiyetinden kaynaklanan ataklardır. Pasif bağlantıda komut ve veri bağlantısı tamamen bağımsızdır ve FTP sunucunun veri bağlantısı sorunsuzca çalışması gerekir. Komut bağlantısı gerçekleştirildikten sonra FTP sunucusuna gönderilecek POST komutu ile FTP sunucusunun hedef makinenin belirlediğimiz portuna bağlantı kurmasını sağlayabilir. Daha sonra gönderilecek LİST komutu ile FTP sunucudan hedef makinenin portuyla alakalı bilgiyi edinmiş oluruz.

Source        Destination   Summary
--------------------------------------------------------------------------------------
[192.168.0.8] [192.168.0.7] FTP: C PORT=37205   PORT 192,168,0,5,0,135
[192.168.0.7] [192.168.0.8] FTP: R PORT=37205   200 PORT command successful.
[192.168.0.8] [192.168.0.7] FTP: C PORT=37205   LIST
[192.168.0.7] [192.168.0.5] TCP: D=135 S=20 SYN SEQ=4240951199 LEN=0 WIN=65535
[192.168.0.5] [192.168.0.7] TCP: D=20 S=135 SYN ACK=4240951200 SEQ=2193395373 LEN=0 WIN=65535
[192.168.0.7] [192.168.0.5] TCP: D=135 S=20     ACK=2193395374 WIN<<1=65700
[192.168.0.7] [192.168.0.8] FTP: R PORT=37205   150 Opening ASCII mode data connection for '/bin/ls'.
[192.168.0.7] [192.168.0.8] FTP: R PORT=37205   226 Transfer complete.
[192.168.0.7] [192.168.0.5] FTP: R PORT=135   Text Data

Ayrıca kullanıcı adı ve şifresi için gerçekleştirilen kaba kuvvet atakları da protokol mimarisi gereği gerçekleştirilen ataklardır ve önlemek zor olabilir.

SMTP (Simple Mail Transfer Protocol) e-posta göndermek için sunucu ile istemci arasındaki iletişim şeklini belirleyen protokoldür. Farklı işletim sistemleri için geliştirilmiş e-posta protokolleri vardır. Bu protokollerinin SMTP'ye geçit yolu(gateway) vardır. SMTP, Aktarım Temsilcisi (Mail Transfer Agent,MTA) ve Kullanıcı Temsilcisi(Mail User Agent,MUA) yazılımları arasındaki iletişimi sağlar. TCP'nin üst katmanında çalışır. 25 ve 587 numaralı portlar SMTP sunucusu için ayrılmıştır. Ayrıca outlook, eudora, Kmail gibi e-posta istemcileri smtp protokolünü kullanır.

Güvenlik açısında bakacak olursak SMTP üzerinden direk bir sızma veya hack zor olmakla birlikte sızma öncesi bilgi toplama aşamalarında sıkça başvurulan kaynaklardan biridir. Mail servera bağlantıktan sonra gelen banner bilgisi alınabilir ve VRFY komutu ile mail sunucu kullanıcıları hakkında bilgi alınabilir.

SNMP (Simple Network Management Protocol) ağ içinde bulunan yönlendirici switch ve hub gibi cihazların yönetimi için kullanılır. SNMP desteği olan ağ cihazları SNMP mesaj alış verişleriyle uzaktan yönetilebilir. Bunun için cihazlarda SNMP Agent olmalıdır. Bu protokolde de konfigrasyon hatalarından ortaya çıkabilecek çeşitli güvenlik zafiyetleri mevcuttur.  Özellikle enumeration aşamasında başvurulan kaynaklardan biridir. Aşağıdaki örnekte snmpcheck komutu ile yanlış yapılandırma sonucu snmp agentden ne kadar bilgi elde edilebileceği gözükmektedir.

DNS (Domain Name Server) protokolü internet isimlerinin (örneğin www.example.com) IP adreslerine dönüşümünü sağlar. UDP tabanlı olup istek cevap mantığı içerisinde çalışmaktadır. DNS sunucular internet isimlerini ve karşılığındaki IP adreslerinin kaydını tutar. DNS sistemi, isim sunucuları ve çözümleyicilerinden oluşur. İsim sunucuları olarak düzenlenen bilgisayarlar, host isimlerine karşılık gelen IP adresi bilgilerini tutarlar. Çözümleyiciler ise DNS istemcilerdir. DNS istemcilerde, DNS sunucuların adresleri bulunur. Bir DNS istemci bir bilgisayarın ismine karşılık IP adresini bulmak istediği zaman isim sunucuya başvurur. İsim sunucu, yani DNS sunucu da eğer kendi veri tabanında öyle bir isim varsa, bu isme karşılık gelen IP adresini istemciye gönderir.  

DNS içerisinde e-posta, alan adları ve IP adresleri gibi çeşitli bilgileri hiyerarşik şekilde tutan bir yapıdadır. Bu sebeple yapılacak olan taramalar sonucu bu hiyerarşik yapıdaki birimler hakkında bilgi elde edilebilir. Yanlış yapılandırılmış bir DNS sunucu, bölge ataklarına (Zone Transfer) açık hale gelir ve ciddi anlamda güvenlik zafiyeti oluşturabilir.

DNS bölge transferi DNS sunucuların yedekli olarak çalışmasından kaynaklanan bir zafiyettir. Bİrincil DNS sunucu kayıtlarını belirli aralıklarla ikincil DNS sunucu ile paylaşır. Bu paylaşım ikincil sunucunun birinciye istek göndermesiyle de olur. Burada yapılan atak ikincil sunucuymuş gibi birincil sunucuya gönderilen istekle gerçekleşir. Şayet birincil sunucu yanlış bir yapılandırmaya sahipse, mevcut bilgilerinin tamamını atak yapan kişiyle paylaşır.

 

DNS ataklarına karşı önlem olarak güvenlik duvarında TCP 53 numaralı port tüm yetkisiz kullanıcılara kapatılmalıdır. Çünkü zone transfer bu port üzerinden gerçekleştirilmektedir. Ayrıca sunucunun doğru yapılandırılması da doğal olarak bu atakları önleyecektir. Örneğin iç ağ için ayrı, internet için ayrı bir DNS sunucusu kullanmak. Kullanıcı internete çıkmak isterse iç DNS sunucusu bu isteği alıp proxy sunucusu gibi davranarak isteği dış DNS sunucusuna iletir. Böylece ağ dışından olan biri sadece dış DNS'teki isimlere erişir.

DNS üzerinde bulunan diğer bir güvenlik zafiyeti ise DNS tünelleme olarak bilinir. DNS tünelleme kısıtlı ve sınırlı bir ağda, DNS üzerinden yetkisiz olarak veri sızdırma veya internet erişimi sağlayan bir zafiyettir. Önlenmesi neredeyse imkansızdır. Örnek olarak, yerel ağda internete giden tüm port ve protokoller güvenlik  duvarı  tarafından engellenmiş ve web erişimi için hizmet veren proxy ise yalnızca yetkili kullanıcılara internet hizmeti veriyor olsun. Dış tarafta kuracağımız bir  DNS sunucu ve kendimize özgü alan adımız olduğu takdirde, iç ağdan alan adınına ulaşmaya çalışırsak, iç ağdaki DNS sunucu bu alan adını çözümleyemeyecek ve bir üst seviyedeki DNS sunucudan bu ismi sorgulayacaktır. Nihayetinde bu sorgu bizim kurmuş olduğumuz DNS sunucuya kadar gelecektir. Yerel ağdaki DNS sunucunun bu alan adını ön belleğine kaydetme ihtimaline karşın rastgele bir subdomain ile bu isteğe yanıt gönderilir. Bu şekilde trafik sağlanmış olur. Burada dikkat edilmesi gereken nokta uygulama katmanında DNS protokolü çalıştırılmasına karşın sızdırılmak istenen verinin DNS in altında bulunan UDP veya TCP ile taşınmasıdır. DNS trafiği güvenlik duvarı tarafından engellenemeyeceği için DNS görünümlü paketlerle veriyi dışarıya sızdırmış oluruz.

DHCP (Dynamic Host Configuration Porotokol) basit olarak sistemdeki bilgisayarlara IP adreslerini ve buna ek olarak değişik parametreleri atamak için kullanılan servistir. DHCP’nin temel özelliği sistemi kuran kişilerin tek tek tüm makineleri gezip aynı veya benzer parametreleri defalarca eliyle girmesini engellemek,böylece zaman kazanmak ve sistem yöneticisinin işini  kolaylaştırmaktır. DHCP protokolü istek,cevap mantığı ile çalışır. Otomatik olarak IP adresi alma ayarıyla ağa bağlanmış olan bir bilgisayar, IP adresi almak için 255.255.255.255 adresine UDP 67 numaralı hedef portundan bir istek mesajı gönderir. Bu mesaja DHCP DISCOVER mesajı denir. DHCP DISCOVER mesajını alan DHCP sunucusu bu mesaja UDP 68 numaralı hedef portu üzerinden DHCP OFFER mesajıyla karşılık verir. DHCP sunucusu tarafından gönderilen bu DHCP OFFER mesajında; istemcinin MAC adresi, istemciye verilecek olan IP adresi, ağ maskesi bilgisi, verilecek olan IP adresinin geçerlilik süresi ve IP dağıtan DHCP sunucusunun IP adresi yer alır. Bir istemci aynı anda sadece bir DHCP sunucusundan gelen DHCP OFFER mesajını değerlendirebilir. İstemci kendisine en önce ulaşan DHCP OFFER mesajını hesaba katar. Bir DHCP sunucusundan gelen DHCP OFFER mesajını alan istemci bu mesaja DHCP REQUEST mesajıyla karşılık verir. DHCP REQUEST mesajı da 255.255.255.255 adresine yollanmak durumundadır. Çünkü IP adresi alma sürecinin bu aşamasında istemcinin henüz bir IP adresi bulunmamaktadır.

DHCP REQUEST mesajını alan DHCP sunucusu bu mesaja DHCPACK mesajıyla karşılık vererek istemcinin IP adresi isteğini onaylamış olur. Böylece istemci, IP adresini ve diğer ağ parametrelerini DHCP sunucusundan almış olur.

DHCP’ nin yapısında bir kimlik doğrulama mekanizması bulunmadığından DHCP sunucular kendilerine DHCP DISCOVER mesajlarıyla yapılan her isteğe cevap vermek durumundadırlar. Bu durum DHCP protokolünün zayıf noktalarından birisidir. Bulunulan yerel ağda yeni bir DHCP sunucusu kurularak ciddi anlamda bir güvenlik zafiyeti oluşturulabilir. Bu şu şekilde olmaktadır. DHCP istemcilerin DHCPDISCOVER mesajına ağda bulunan DHCP sunuculardan hangisi önce yanıt gönderirse IP adresini o sunucu vermiş olur. Sunuculardan hangisinin önce yanıt göndereceği ise tamamen belirsizdir. Bu sebeple ağa kuracağımız bir sahte DHCP sunucusu ile ağdaki IP isteklerinin bir kısmını yanıtlayabiliriz. Kurulan bu sahte DHCP sunucu, IP ayarlarında yer alan “default gateway (varsayılan ağ geçidi)” adresini yine yerel ağda kontrolü kendisinde olan bir bilgisayarın IP adresi olarak belirlerse bu durumda da sahte DHCP sunucusunun IP dağıtmış olduğu tüm istemcilere ait olan trafik, belirlemiş olduğu bu bilgisayar üzerinden akacaktır. Böylece saldırgan IP dağıtmış olduğu tüm bilgisayarların ağ trafiğini gözetleme imkanına da sahip olacaktır. Bu saldırıya sahte DHCP saldırısı denmektedir ve bu saldırı araya girme (man-in-the-middle) saldırısı türlerinin biridir.

Taşıma Katmanı

Taşıma katmanı uçtan uca güvenli veri aktarımını sağlar. Ayrıca verilerin hedefine ulaşıp ulaşmadığını kontrol etmek için sorgulama amaçlıda kullanılır. Bu katmanda TCP, UDP, RTP, SCTP, DCCP vb. birçok protokol görev yapmaktadır. İşletim sistemi ile en çok etkileşimde bulunan protokoller bu katmanda görev almaktadır.

TCP

Gelişmiş bilgisayar ağlarında paket anahtarlamalı bilgisayar iletişiminde kayıpsız veri gönderimi sağlayabilmek için TCP protokolü yazılmıştır. Yani güvenilir olmayan bir ağ ortamı üzerinden güvenilir unicast uçtan uca bir bayt akışı sağlanır. 

HTTP, HTTPS, POP3, SMTP ve FTP gibi internet'in kullanıcı açısından en popüler protokollerinin veri iletimi TCP vasıtasıyla yapılır. TCP protokolü aşağıdaki görevleri üstlenmektedir.

TCP protokolü tüm bu görevleri TCP başlığı adını verdiğimiz veri yığını sayesinde gerçekleştirmektedir. TCP başlığı yukarıda bahsedilen tüm özelliklere dair alanlar barındırmaktadır. TCP başlığı 20 ile 60 bayt arasında değişmektedir.

TCP başlığı aşağıdaki şekilde gösterilmiştir.

Kaynak Port (Source Port), bir üst katmandan TCP hizmetini isteyen uygulama protokol prosesinin kimliği durumundadır. Karşı mesaj geldiğinde bir üst katmana iletmek için, o protokolün adı değil de port numarası kullanılır.

Hedef Port  (Destination Port), gönderilen verş paketinin alıcı tarafta hangi uygulama prosesine ait olduğunu belirtir.

Sıra Numarası (Sequence Number),  gönderilen paketin ıra numarasını gösterir. Paket gönderiminden önce parçalara ayrılan verininin alıcı kısımda yeniden aynı sırada elde edilmesi için kullanılır.

Onay Numarasa (Acknowledgement Number), verinin en son hangi baytının alındığını göndericiye iletmek için kullanılır. Örneğin n sayısı gönderilirse,n değerine kadar bütün baytların alındığını belirtir.

Başlık Uzunluğu (Header Lenght), TCP başlığında var olan 32 bit uzunluğundaki sözcüklerin sayısını gösterir.

Saklı(Reserved) , ileride olabilecek gelişmelere karşın saklı tutulan bitlerdir.

Kod Bitleri (TCP Flags), kontrol bilgilerini taşımak için kullanılır. Bunlar ACK,PSH, RST, SYN, FIN ve URG bayraklarından oluşur. ACK bayrağı geçerli olup olmamayı belirler. PSH, alıcı tarafın TCP modülü bu bayrağı 1 bulursa gelen TPDU’ yu bekletmeden bir üst katmana geçirir. RST, taşıma bağlantısını yeniden başlatma isteği, SYN/FIN taşıma bağlantısı kurma/sonlandırma isteği, URG ivedi işaretçi geçerli/geçerli değil gibi anlamlar taşır.

Pencere Boyutu (Window), alıcı tarafın tampon belleğindeki kullanılabilir alanın bayt cinsinden boyutunu tutar. Alış denetimi için kullanılır.

Hata Sınama Bilgileri (Checksum), Verinin ve başlığın hatasız aktarılıp aktarılmadığını sınamak için kullanılır. İçerisinde CRC değerini barındırır ve bu değer TCP tarafından hesaplanır.

Urgent İşaretçisi (Urgen Pointer), İvedi olarak iletilecek baytların aralığını belirler. Örneğin 50-55 gibi bir değer var ise 50. bayt ile 55. baty arasındaki veriler ivedilikle iletilir.

Opsiyon Bitleri (TCP Options), Özellikle bağlantı kurulum aşamalarında iki tarafın birbiri ile paylaştığı parametreler ve bağlantı sırasında ek özellikleri aktif etme bu bitler sayesinde gerçekleşir.

Veri (Data), aktarılacak uygulama verileridir.

TCP’ de bağlantı kurulumu ise üç yollu el sıkışma ile gerçekleşmektedir.

Bağlantıyı talep eden taraf SYN isteği gönderiri ve bağlantıyı kabul edecek olan taraf SYN+ACK ile bu isteği yanıtlar. Son olarak bağlantıyı talep eden taraf ACK paketini gönderir ve bağlantı kurulur. Bağlantı sonlandırma safhası ise aşağıdaki gibidir.

Şekilde görüldüğü gibi FIN ve ACK bayrakları kullanılarak bağlantı kapatılır.

TCP protokolü güvenlik açısından incelendiği zaman son derece başarılı bir protokoldür. Bunun sebebi bağlantıya dayalı unicast bir yapıda çalışmasıdır.  Daha çok performansa yönelik ataklara maruz kalabilmektedir.

UDP

Sorgulama ve sınama amaçlı küçük boyutlu verilerin aktarılması için kullanılan protokoldür. Bağlantısız ve güvenilir olmayan bir iletişim sunar. Gönderilen verinin hedefe ulaşıp ulaşmadığı kontrol edilmez. Gönderilen verinin boyutu daha küçük olduğu için parçalamaya gerek duyulmaz, bu yüzden başlık yapısı daha az bilgi içerir. UDP başlık yapısı aşağıdaki gibidir.

Kaynak ve hedef port tıpkı tcpdeki gibi uygulama çeşitliliği (multiplexing,demultiplexing) sağlar. Lenght alanı paket boyutunu bayt cinsinden belirtir ve en az 8 en fazla 65535 bayt (başlık+veri) olabilir. Checksum, pseudo IP header, UDP Header ve UDP data alanlarının toplamı üzerinde bir  hata kontrolü yapar.  

Güvenlik açısından bakıldığı zaman UDP protokolü güvenilir bir protokol değildir. Çünkü bağlantıya dayalı bir protokol değildir. Multicast ve broatcast yayınlar UDP protokolü üzerinden gerçekleştirilir.

Ağ Katmanı

Bir üst katmandan gelen segmentleri alıcıya, uygun yoldan ve hatasız ulaştırmakla yükümlüdür. Bu amaçla, üst katmandan gelen segmentlere özel bir IP başlık bilgisi ekler. IP, ICMP ve ARP protokoller bu katman içerisine de girmektedir.

IP (Internet Protocol)

Ağ katmanının üstlendiği görevleri yerine getiren protokoldür. IP adresi ise interneti ya da TCP/IP protokolünü kullanan diğer paket anahtarlamalı ağlara bağlı cihazların, ağ üzerinden birbirleri ile veri alışverişi yapmak için kullandıkları adresdir. IPv4, IPv6 olmak üzere iki çeşit adresleme yöntemi  vardır. Yaygın olaral IPv4 kullanılmaktadır.

IP protokolünün başlık yapısı aşağıdaki gibidir.

IP protokolü güvenlik açısından incelendiğinde çeşitli zafiyetler barındırmaktadır. Bunlardan birincisi TTL dediğimiz alanın değerinin her seferinde artırılarak dönen ıcmp mesajları sayesinde hedef sisteme ulaşılacak yolu (traceroute) bulmadır. Ayrıca IP protokolünde yer alan parçalama (fragmentation) özelliği savunma sistemlerini atlatmada ve performans saldırılarında kullanılır. Örneğin hedef sistem IDS/IPS sistem veya WAF kullanıyor ise uygulama verisini sürekli olarak kontrol eder. Burada belirlenmiş kurallara göre tehdit oluşturabilecek ifadeleri gördüğünde o paketleri düşürmektedir. Bu tür bir güvenlik sistemine karşılık gönderilecek ifade IP fragmentation özelliği ile parçalara ayrılarak gönderilir. Parçalar halinde gönderilen veriyi savunma sistemleri tehdit olarak görmeyecek ve iç tarafa girmesine izin verecektir. İç tarafta birleştirilen paketler sistemi tehdit eden bir kod parçacığı veya vb. bir ifade olarak sistemi zafiyete uğratabilir. Bu sebeplerden ötürü IP protokolü güvenlik açısından sorunlu bir protokoldür.

ARP

Yerel ağların oluşturulmasında en çok kullanılan ağ arayüzü Ethernet' tir. Sistemlere Ethernet arayüzü görevi gören ağ kartları takılarak LAN 'lara kolayca eklenmektedir. Ethernet arayüzleri birbirlerine veri paketi göndermeleri için, kendilerine üretim sırasında verilen fiziksel adresleri kullanırlar; 48 bit olan bu arayüzlerin ilk 24 biti üreticiyi belirtir ve 48 bitlik blok eşsizdir. TCP/IP protokolünün kullanıldığı ağlarda 32 bit olan IP adresi kullanılır. Fiziksel katmanda Ethernet arayüzü kullanılıyorsa, IP adresten fiziksel adrese dönüşüm işinin yapılması gerekir. Bunun için sistemlerde adres çözümleme protokolü olan ARP( Address Resolution Protocol ) ve ARP tabloları kullanılır. Bu protokol istek, cevap mantığı ile çalışmaktadır. Router ve her düğüm ARP tablosu tutmatadır. Bu tablolarda MAC ve IP adres eşleşmeleri tutulmaktadır.

Aşağıdaki şekilde ARP protokolünün çalışma mekanizması anlatılmaktadır.

A kullanıcısı IP adresini bildiği fakat MAC adresini bilmediği bir düğümün MAC adresini öğrenmek için önce kendi cashini (1) kontrol eder. Daha sonra kendi ARP tablosunda bulamadığı bu MAC adresini braoadcast bir yayın yaparak( 2) tüm ağa yayar. Ardından mesaj MAC adresi bilinmeyen hosta kadar gelir. Bu host öncelikle bu mesajı gönderen hostun MAC,IP şiftini ARP tablosuna (3) ekler. Daha sonra kendi MAC adresini ARP reply mesajı içerisinde istekte bulunan hosta (4) gönderir. Son olarak hedefin MAC adresini öğrenen kaynak bunu kendi ARP tablosuna yazar (5) ve iletişim için gerekli olan süreçler başlar. Ayrıca yerel ağ içerisinde olmayan hostlar için gönderilen ARP isteklerini router takip etmektedir. Bu durum proxy ARP adıyla bilinmektedir.

ARP protokolü yukarıda anlatılan çalışma mekanizmasından ötürü çeşitli güvenlik zafiyetlerine davetiye çıkarmaktadır. Bunlardan en çok bilineni, kötü niyetli kullanıcının veri hattına gönderdiği ARP paketleriyle kendini yönlendirici olarak göstermesi ve ağdaki trafiği üzerine almasıdır.  Bu şekilde ciddi bir güvenlik zafiyeti ortaya çıkmaktadır. ARP protokolünün veri bağı ile ağ katmanı arasında hizmet vermesinden ötürü bu zafiyeti gidermek bir hayli zordur ve neredeyse mümkün değildir.

Böylelikle TCP/IP protokol yığını ve çekirdek protokolleri üzerinden genel hatlarıyla güvenlik incelenmesi tamamlanmış olur.

Uygulama Katmanı Üzerindeki Güvenlik Sistemlerinin Değerlendirilmesi

                                   

IDS/IPS ve WAF sistemleri katmanlı mimaride uygulama katmanını destekleyen, saldırı tespit ve önleme yöntemlerinin kullanıldığı yazılım ve ya donanımlardır. IDS (Intrusion Detection Systems) sistemleri, kötü niyetli ağ hareket ve bağlantılarının tespiti için kullanılan sistemlerdir. Amacı tanımlama ve loglamadır. Fonksiyenel olarak saldırıyı önleme gibi bir yeteneği söz konusu değildir. IPS (Intrusion Prevention Systems), saldırı tespit ve önleme sistemleri olarakta bilinen ağ veya sistemi kötü niyetli aktivitelerden korumak için izleyen ağ güvenlik cihazıdır. Bu sistemin temel görevi kötü niyetli aktiviteleri belirlemek,kötü niyetli saldırıları durdurmak ve saldırının türünü rapor etmektir. Aşağıdaki şekilde ağ topolojisi üzerindeki IPS sistemlerin konumlandırılması gösterilmiştir.

                 

        

Intrusion Detection sistemlerle Intrusion Prevention sistemler arasındaki temel fark IPS lerin tespit edilen saldırıları aktif olarak önleme yeteneğine sahip olmasıdır. Daha spesifik olarak açıklamak gerekirse IPS' ler alarm gönderme, istenmeyen paketleri atma, ağı sıfırlama işlemlerini gerçekleştirir. Fafat IDS’ ler sadece tespit ve loglama yapabilirler. Genellikle IDS ve IPS sistemler bir arada kullanılmaktadır.

Intrusion Prevention Sistemler kendi arasında 4' e ayrılır.

IDS ve IPS sistemleri söz konusu olduğunda en önemli konulardan biri performanstır. Veri akışının yoğun olduğu  ağ üzerine yerleştirilen bir IPS, tüm bu verileri yakalayabilmek ve yorumlayabilmek için yüksek işlem hızına ve performansına sahip olması gerekir. Aksi takdirde trafiği kontrol etmesi söz konusu değildir. Ayrıca bu sistemler için diğer bir problem ise şifrelenmiş ağ trafiğidir. Mevcut IDS/IPS sistemlerin çoğunda şifreli trafiği deşifre etme özelliği mevcut değildir buda IDS/IPS sistemlere güvenen güvenlik yöneticilerini çaresiz bırakmaktadır. Sonuç olarak IDS ve IPS sistemlerin harmanlanması mevcut tehditlerle mücadele etmek ve güvenliği sağlamak gerekli olsa da işe yaramadığı ve bypass edildiği durumlarda söz konusudur.

WAF (Web Aplication Firewall), kısaca web uygulamaları için firewall görevi gören bir cihazdır. Bu cihaz HTTP konuşmalarının bir takım kurallar eşliğinde devam etmesini sağlar ve ayrıca filtreleme özelliğine sahiptir. Bu kurallar genellikle Cros-side Scripting (XSS) ve Sql Injection ataklarına karşı oluşturulmuşur. Uygulamaya özel kuralları özelleştirilerek çok sayıda saldırı tespit ve bloke edilebilir. Yazılım veya donanım şeklinde temin edilebilir. Aşağıdaki şekilde Waf şematize edilerek gösterilmiştir.

WAF’ ın güçlü ve zayıf yönlerini belirtecek olursak: