Ağ Yığını(Network Stack) ve Uygulamaları

Genellikle bir yazıyı yazmaya başlamadan önce, yazacağım konu hakkında İnternetten genel bir araştırma yapıyorum. İnsanlar bu konular hakkında neler sormuş ve neler araştırmış diye bakıyorum.  Bu şekilde göz atarken insanların genellikle bios ayarlarındaki “Network Stack” seçeneği ile ilgili sorularıyla karşılaştım.  Konuya giriş yapmadan önce,  bu seçeneğin ne olduğundan kısaca söz edeyim.  Bios’daki bu seçenek, bilgisayarın internet üzerinden “boot” kontrolüne izin vermesine yarayan oldukça tehlikeli bir ayarı kapsıyor. Olayı birazdan biraz daha açacağım. Ağ ile ilgili çok fazla bilginiz yoksa bu yazıyı okuduktan sonra söylediklerim kafanızda daha da netleşecektir.

Aslında okumaya  başlamadan önce, bu yazıya göz atmanızı öneririm. İnternet dediğimiz olgu, içerisinde milyarlarca makina ve bilgisayarı kapsayan devasa bir iletişim platformuna verdiğimiz isimdir aslında.  Ve bu çılgınlık, belki 5G ile giderek çok daha fazla makineyi kapsayan çok daha çılgın bir platforma dönecek.  İnternet,  içerisinde birbiriyle konuşan bu kadar farklı cihazın olması nedeniyle çok sağlam iletişim protokollerine ihtiyaç duymuştur. Protokol dediğim şey, verilerin belli bir kurala göre gönderilip alınmasıdır.  Örneğin İnternet üzerinden Netflix gibi film servisleri kullanıyoruz. Aynı şekilde, Web tarayıcı kullanarak İnternet sayfalarına giriyoruz. Diğer yandan, Spotify gibi servisleri kullanarak müzik dinliyoruz ya da Skype ile telekonferans yapıyoruz.  İnternet üzerinden belki dünyanın diğer ucuna gönderip aldığımız bu veriler, oldukça farklı yapılara sahip.  Birisi içinde video verisi barındırırken diğeri yazı verisi, başka birisi ise canlı ses verisi içeriyor. Bütün bu verileri, kategorilere ayırarak, belli bir kurala göre  düzenlemeden belki binlerce “router” içerisinden geçirip dünyanın diğer ucuna göndermek imkansız. Bu verilerin birbirine karışmayıp her veri modülü ya da parçasının ilgili makina ya da bilgisayar tarafından anlaşılabilmesi için ağ yığını(Network Stack) dediğimiz yapı oluşturulmuştur. İnternet’e gönderilip İnternetten alınan verilerin  iç içe geçmiş,  başlarına ve sonlarına belirteçler ya da işaretler konulmuş bir yapıya dönüştürülmüş haline ağ yığını diyoruz.  Bu yapı aslında matruşka bebeklerine benziyor. Bilmeyenler için Matruşka, içerisinden daha küçük bebekler çıkan bebek oyuncaklar diye söyleyelim.  İnternetteki veri protokolleri de bu şekle bürünmüştür. Yığın denmesinin sebebi budur aslında. Üst üste katmanlar şeklinde olduğu için.

Yukarıda  internet  fiziki soketinden gönderilen en alt katmandaki veri çerçevesini görüyorsunuz. İsmine fiziki katman dediğimiz bu katman,  donanım bazında verilerin CPU ile ayarlanıp internet donanımına ya  da kablosuz ağ  ile ilgili donanıma  transferi ile ilgili protokollerle bağdaştırılır. Mesela kendi tezimden örnek verebilirim. Şu anda 802.15.13 standardını uyarlıyorum. Bu standart, verilerin optik kablosuz ağlarda nasıl transfer edileceği ile alakalı fiziki ve  Mac katmanını kapsıyor. Yukarıdaki çerçeve tabi ki kablosuz ağlar için farklı bir standarda göre değişiyor.

Fiziki katmanın bir üstünde Mac dediğimiz  katman bulunur. Bu katman ise cihaz ve router arasındaki en temel internet haberleşme verilerini içerir. Dikkat ettiyseniz fiziki katman, donanımlar arasındayken Mac bir üst seviyede artık cihazla router arasındaki  kısımla ilgileniyor. İnternette herhangi bir yere veri gönderdiğinizde bu veri düzinelerce router dan geçer.  Aslında bu olayı uzaya fırlatılan füzeler gibi düşünebilirsiniz. Her katmanda füze nasıl bir parçasını bırakıyorsa verilerin de bu şekilde ilgili katmanda ilgili cihazlar tarafından ilgili parçası açılır.

Mac katmanından sonra artık veriler ağlar arasında dolaşmaya hazırlanmaya başlar. Bu katmana ise ip katmanı diyoruz. Artık verimiz routerdan çıkarak istenilen cihaz adresine gönderilmek üzere paketlenir. İstenilen cihaz. ağ içerisindeki bir cihaz adresi de olabilir tabi  ki. Eğer ağ dışında ise, paket NAT işlemine tabi tutulur. Bu konuyu sayfanın başında verdiğim adreste anlatmıştım.

Ip katmanının üzerinde transport katmanı dediğimiz verilerin, transfer algoritmaları doğrultusunda kontrol mekanizmalarına göre ayrılıp paketlendiği katman vardır. Bu katmanlar genellikle makinalardaki alt seviyedeki yazılımların haberleşmesinde rol alır.

Transport katmanının üzerinde ise nihayet uygulama katmanı bulunuyor. İşte bu katmanda artık veriler çeşitlerine göre ayrılır. Her uygulama kendi çeşit verisini üretir ve en üst katmanda haberleşir.

Eğer veriler bu şekilde katmanlara ayrılmasaydı, internet üzerinden milyarlarca makinanın haberleşmesi imkansız olurdu. Çünkü bu tasarımlar tamamen ihtiyaç doğrultusunda geliştirilmiştir.

Şu anda bilgisayarınıza giren ya da çıkan verileri katman katman kendiniz incelemek istiyorsanız “wireshark” ismindeki programı kullanabilirsiniz. Bu program ağı dinlemek ve verileri takip etmek için kullanılıyor. Hackerllar çoğunlukla bu tarz programlar kullanırlar.

Aslında yukarıda anlattığım sistemin bir çok güvenlik açığı bulunuyor. Bu yüzden paketler ağ üzerinde izlenerek manipüle edilebiliyor. Eğer ağ yığın yapısını iyi bir şekilde biliryorsanız, paketleri çok güzel bir şekilde manipüle edebiliyorsunuz. Neyse, bu ayrı bir yazının konusu olsun. (Ağ yığınının manipülasyonu ile ilgili yazı için tıkla) 

Şimdilik Bios ayarlarındaki “Network Stack” ayarına dönecek olursak; bu ayar bios programını PXE protokolüne açıyor.  Büyük ağlarda genellikle bir PXE sunucusu olur. Tıpkı DHCP sunucusu gibi. Bu sunucu,  Bios’daki bu ayarları açık olan bilgisayarlara bilgisayar kapalı olsa bile çalıştırabilecek mesajlar gönderebilir. Bios, bilgisayarın ana kartındaki gömülü bir mikrodenetleyicide bulunur ve işletim sisteminin “bootloader” ını yükleyen program olduğu için bilgisayar bu program tarafından açılabilir. Yani uzaktaki bir bilgisayardan herhangi bir bilgisayara kapalıyken de açılması için PXE protokolünde komut gönderebilirsiniz. Kulağa tehlikeli geliyor değil mi?

Yusuf

Yusuf

Bir Mühendis.

Önerilen makaleler

6 Yorum

  1. Avatar

    Yusuf bey bilgileriniz için teşekkür ederim peki güvenlik için napmsmı lazım verilerimizi korumak için bir başkasından korumak için peki

    1. admin

      Merhaba OzanCan Bey,

      Aslında bilgi güvenliğini korumak için biraz uyanık olmak gerekiyor. Yazılım korsanları genellikle sosyal mühendislik kullanarak ve kullanıcıları çeşitli vaatlerle kandırarak bilgi çalıyorlar. Fakat büyük şirketler zaten her türlü bilgimizi ediniyorlar. Büyük şirketlere karşı tek kozumuz yasalar olabilir. Bilgisayar korsanlarına karşı ise bu bilgileri okuyup öğrenmek.

  2. Avatar

    Nede güzel anlatmışsın. Aklına, fikrine sağlık.
    Bir not: Türkçede sel/sal ekleri yoktur, sonradan sokuşturulan hatalı kullanımdır.
    Fiziki = fiziksel, Bilmi = bilimsel, Ferdi = bireysel/kişisel
    Bkz: https://tdk.gov.tr/wp-content/uploads/2018/03/6_Ali-AKBA%c5%9e-_-T%c3%bcrk%c3%a7edeki-Sal-Sel-Sorunu.pdf

    1. admin

      Düzeltme için teşekkür ederim Cem bey. Bundan sonra dikkat edeceğim.

  3. Avatar

    Merhaba yazılarınız çok anlaşılır pc de sorunlar oluştuğu için araştırırken yazınız önüme düştü, hiç bilgim yok bu konularda 1 ay dır araştırarak wireshark falan indirip ağı izlemeye başladım bazı portları kapattım ama dns sorunu yaşıyorum youtube kanalımda veri kaybı sorunum var ayrıca pc de önbellekleme sorunuda var birçok farklı virüs koruma programı denedim virüs yok pc kayıt defterinde bozuk dosyalar var bu bir saldırı olabilirmi ?

    1. Yusuf

      Merhaba, Yorum için teşekkürler. Anlattıklarınızdan anladığım kadarıyla saldırı olması muhtemel. 🙂

admin için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Translate »