Bilgisayar Mimarisine Giriş – II: Temel Bileşenler

0
912
views
Bilgisayar mimarisi, bilgisayardaki bileşenleri bir yapısını ve kullanıcıların ihtiyaçlarına göre cevap verebilmesi için bu bileşenlerin birbirleri ile etkileşimlerini inceler. Güvenilir bir sistem tasarımı için bilgisayarladaki donanım (hardware) ve yazılım (software) gibi bileşenlerin etkileşimine önem verilmelidir. Bu yazıda bilgisayar mimarisinin temel bileşenleri güvenlik bakış açısı ile incelenecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Sistemden etkilenen ve hizmetin sunulduğu paydaşlar (kişi, takım veya organizasyon – stakeholder); sistemi mantıksal, fiziksel, yapısal, davranışsal, yönetimsel, maliyet, güvenlik, işlevsellik gibi farklı bakış açıları ile inceler. Önceden işlevsellik bakış açısı önemli iken günümüzde güvenlik bakışı da hızla önem kazanmaktadır. Ancak güvenliği sağlarken, sistemin işlevselliğini bozmamak gerektiği unutulmamalıdır.

 

A) Güvenilir Donanım Mimarisi Bileşenleri

Bilgi güvenliği bakış açısı ile bakıldıında en önemli donanımsal bileşenler aşağıdaki alt başlıklarda sıralanabilir.

Anakart (Motherboard)

İşlemci, bellek, ses kartı, ekran kartı gibi üzerine takılan aygıtlar ile DVD sürücü, hard disk gibi dahili aygıtları bir araya getirip, bunlar arasındaki haberleşmeyi kontrol eder. Bazı donanımlar anakart ile tümleşiktir.

 

İşlemci (CPU – Merkezi İşlem Birimi)

CPU (Central Processing Unit), bellekten aldığı emirleri işler / çalıştırır. İşlemcilerin kendi mimarileri vardır ve bu mimarilerde çalışan komut setleri vardır. İşletim sistemleri, işlemci mimarisine (Pentium Pro, AMD işlemci gibi) uygun olarak tasarlanırlar. Günümüzde bir işlemci içerisinde birden çok işlemciden (Core) oluşur. Çok çekirdekli işlemciler ile çalışabilmek için donanım ile işletim sistemi ve uygulamalar birbirini desteklenebiliyor olmalıdır.

İşlemciler temel olarak 2 yapıdan oluşur.

  • ALU (Arithmetic Logic Unit): Matamatiksel hesaplama gerçekleştirirler.
  • CU (Control Unit): Gelen emirleri ALU’ya iletirler.

 

 

Bellek

Hız, kapasite ve maliyet olarak birbirinden farklı olacak şekilde farklı bellek türleri bulunur.

  • RAM (Random Access Memory): İşletim sistemi ve uygulamaların okuma yazma yapabildiği geçici (uçucu) bellek tipidir. Fiziksel donanımın gücü kesildiğinde (bilgisayar yeniden başladığında) içinde barındırdığı bilgiler de kaybolmuş olur.
    • DRAM (Dinamik RAM): Genellikle kişisel bilgisayarlarda kullanılan bir hafıza türüdür. Verilerin saklanması için üzerinde enerji depolayan kondansatörler kullanılır.
    • SRAM (Statik RAM): Maliyetli olduklarından kritik sistemlerde kullanılırlar. Kondansatörler kullanılmaz, altı adete varan transistör kullanılır. Bu RAM’lerde bilgiler yüklendikten sonra sabit kalır.
    • SDRAM: (Synchronous DRAM): İşlemcilerin hızlanması ile birlikte bu işlemcilerin maksimum seviyede işlem görebilmeleri için SDRAM’ler kullanılır. Double Data Rate SDRAM olarak da isimlendirilir.
  • ROM: Sadece okuma yapılabilen kalıcı (sabit) bellek tipidir. ROM içerisindeki yazılıma “firmware” adı verilir ve bu yazılım belli bir adımlar uygulanarak güncellenebilir.
    • PROM: Programlanabilir ve bir kere yazılabilir olan ROM’lardır. Maliyeti düşürmek için ROM tasarımının test safhalarında kullanılabilir.
    • EPROM: Silinebilir ve programlanabilir ROM’lardır.
  • Cache: Sıksık gerçekleştirilen hızlı bir şekilde okuma/yazma işlemleri için kullanılan bellek tipidir. L1, L2 ve L3 olmak üzere 3 tipi vardır.

 

Veri Yolu (Bus)

Bilgisayarın bir bileşeninden diğerine veri aktarmak için kullanılan iletişim kanalı, devredir.

 

Bazı bilgisayar tasarımlarında Kuzey Köprüsü (Northbridge – Memory Controller Hub (MCH) ve Güney Köprüsü (Southbridge – I/O Controller Hub (ICH)) olmak üzere 2 veri yolu bulunur. Kuzey Köprüsü, CPU’yu RAM’e bağlar ve CPU ile doğrudan iletişimde olduğu için hızlıdır. Güney köprüsü ise, girdi/çıktı aygıtlarını birbirine bağlar.

 

Diğer Bileşenler

Bilgisayarlarda depolama birimleri (harddisk vs), ekran kartı, ses kartı, monitör, güç ünitesi,… gibi daha bir çok donanımsal bileşen bulunmaktadır.

 

B) Güvenilir İşletim Sistemi ve Yazılım Mimarisi Bileşenleri

Donanıma güvenilir erişim için güvenilir işletim sistemi ve yazılım mimarisi tasarlanmalıdır. Bilgi güvenliği bakış açısı ile bakıldıında en önemli yazılımsal bileşenler aşağıdaki alt başlıklarda sıralanabilir.

Kernel (Çekirdek)

İşletim sistemin kalbidir ve CPU, bellek, disk gibi alt seviye işlemler gerçekleştirilir. Bu katman Hypervisor olarak da adlandırılıp (genellikle) Ring 0‘da çalışır. Bir bilgisayar başladığında BIOS, depolama biriminden boot sektörü yükler ve bu sektördeki kernel’ın makine kodunun başlangıcı çalıştırılır.

Birden fazla Çekirdek türü vardır.

  • Tek Parçalı Çekirdek (Monolithic Kernel): Sistem performansını artırmak için tüm işletim sistemi görevlerinin tek çekirdek alanında yürütüldüğü bir çekirdek mimarisidir. Sürücüler, çeşitli önemli mekanizmalar ve alt düzeyde gerekebilecek her şey kernel içindedir. Bu sebeple (mesajlaşma trafiği olmayacağından) oldukça hızlıdır. Ancak, kernel yapısı oldukça karmaşık ve yüksek bellek ihtiyacına sahip olup, kernel değişikliklerinde yeniden derleme ihtiyacı olur. Buna ek olarak, monolitik kernel içindeki herhangi bir yapı da hata meydana gelirse, bu hatadan tüm sistem etkilenir. Unix çekirdekleri (BSD, AIX, HP-UX,…), Unix benzeri çekirdekler (Linux), DOS (MS 95/98/Me gibi MS-DOS), OpenVMS, XTS-400,… monolitik çekirdek örneklerindendir.

Monolitik çekirdek, supervizor modda çalışır.

  • Mikro Çekirdek (Microkernel): Mikro çekirdek, işletim sistemi hizmetlerinin kullanıcı alanında (user space) ayrı ayrı yürütüldüğü bir çekirdek mimarisidir. Bellek yönetimi, kayıt ortamı yönetimi, sürücüler ve ağ ile ilgili çok sayıda süreç birbirleriyle iletişim kurarak haberleşir. Bu sayede; bir parçadaki hata diğer parçaları etkilemez. GNU, Minix, Symbian,… mikro çekirdek örneklerindendir.
  • Melez Çekirdek (Hybrid Kernel): Monolitik ve mikro çekirdeğin birleşimi olan bir çekirdek mimarisidir. Günümüzde çoğu işletim sistemi çekirdeği melez yapıdadır. Bu tip yapılarda çekirdek zayıflatılır ve gelişmiş görevler için dinamik modüllerin eklenmesine izin veriler. Bir çok sürücü ve iletişim birimleri çekirdeğe gömülüdür. Fakat bir güncelleme veya yeni bir bileşen yüklendiğinde yeniden derleme gerektirmez. Syllable, Windows NT (windows XP-Windows 7/2008 arası), ReactOS,… hibrid çekirdek örneklerindendir.
  • Dış Çekirdek (Excokernel): Dış çekirdek, uygulama geliştiricileri için işletim sisteminin temel fonksiyonlarından birisi olan donanıma erişim yordamlarını ve donanım sürücülerini aradan kaldırarak donanıma doğrudan erişim sunan bir işletim sistemi çekirdeği mimarisidir. Bellek ve süreç yönetimi gibi temel işlevler dışında tek yaptığı şey, donanımların arayüzlerini güvenli bir biçimde çoklayarak (multiplexing) kullanıcı seviyesi uygulamalara sunmaktır (exposing). Bu sayede uygulama programcısı, donanım için yazılmış sürücülerin getirdiği sınırlar olmaksızın donanıma ham erişim sağlayabilir. Bu çözüm çok yüksek hızlarda donanım erişimi sağlama ihtiyacına istinaden hayat bulmasına rağmen, dış çekirdek mimarisi uygulamaların programlanmalarının çok zor olmasından dolayı genel bir ilgi görmemiş, özel amaçlarla kullanılmışlardır.

 

BIOS (Basic Input Output System)

BIOS; RAM, ekran kartı, giriş ve çıkış aygıtları gibi donanımları kontrol ederek işletim sisteminin açılmasını sağlar. BIOS, kalıcı bir yazılım olup ROM bellekte saklanır. BIOS, nasıl ilerlemesi gerektiğini anlamak için ilk sektöre baktığından, MBR‘ı (Master Boot Record) belleğe yükleyecektir. MBR verileri yüklendikten sonra, bilgisayarın işletim sisteminin nerede olduğunu bilmesi için etkin bölüm bulunabilir. Sonra da işletim sistemi ayağa kalkar.

 

Kullanıcı ve Dosya İzinleri

Linux/UNIX işletim sisteminde bir dosya erişimleri için 3 temel izin vardır.

  • Okuma (Read – “r”)
  • Yazma (Write – “w”)
  • Çalıştırma (Execute – “x”)

 

Linux/UNIX işletim sistemlerinde bazı ek yetkili uygulamalar da bulunmaktadır. Örneğin, parola değişikliği için “/usr/bin/passwd” aracı kullanılabilir. Bu dosyanın erişim yetkileri varsayılan olarak 4755 (-rwsr-xr-x) şeklindedir. Bu dosyada SUID biti etkin olduğu için, her kullanıcı kendi parolasını sıfırlayabilir.

Windows işletim sistemlerinde ise aşağıdaki gibi NTFS izinleri uygulanır.

  • Okuma (Read)
  • Yazma (Write)
  • Çalıştırma (Read & Execute)
  • Değiştirme (Modify)
  • Tam Yetki (Full Control)

 

Sanallaştırma (Virtualization)

Tek bir donanım üzerinde birden fazla işletim sistemi çalıştırabilmeyi sağlayan yazılım katmanıdır.

 

Sanal (guest) makine ve gerçek (host) ortam arasında soyutlamayı sağlamak için Hypervisor sanallaştırma teknoloji kullanılır. Intel VT (Intel Virtualization Technology – “Vanderpool”) and AMD-V (AMD Virtualization – “Pacifica”) CPU’ların Hypervisor desteği vardır. Bu katman “Ring -1” olarak da adlandırılabilir.

Temel olarak iki çeşit Hypervisor vardır:

  • 1. tip (Bare-Metal): Sanal ortam, ana makinenin fiziksel donanımını (bu sebeple daha hızlıdır) kullanır. VMware ESX/ESXi, Microsoft Hyper-V (Windows 10), Oracle VM,… bu şekilde çalışır.
  • 2. tip (Hosted): Sanal ortam, işletim sisteminde bir katman olarak çalışır. VMware Server, VMware Workstation/Fusion/Player, Oracle VM Virtualbox, Microsoft Virtual PC, Red Hat Enterprise Virtualization,… bu şekilde çalışır.

 

Sanallaştırmanın çeşitli yararları vardır. Bunlar;

  • Donanım maliyetini azaltma
  • Domanımı etkin kullanma
  • Düşük güç, soğutma vs maliyeti
  • Snapshot yapıları ile yönetimsel kolaylıklar
  • Test ortamı oluşturma kolaylığı

 

Docker

İşletim sisteminden bağımsız olarak konteyner (container) adı verilen yapı üzerinde çalışan mimaridir. Konteynerı ayağa kaldırmak için imajlar kullanılır. Bu imajlarda da çalıştırılmak istenen uygulamanın (Apache, WAMP, MSSQL Server…) itiyaç duyduğu kütüpheneler, yapılandırma dosyaları, sistem araçları,… bulunur.

Sanal makinelerde, fiziksel sunucu üzerine kurulmuş sanal makinelerin işletim sistemleri bulunmaktadır. Konteyner yapısında ise işletim sistemi bulunmaz, sadece belli bir işletim sisteminde çalışıyormuş gibi bir uygulama hizmeti verilir, yani işletim sistemi seviyesindeki sanallaştırma teknolojisidir. Böylece uygulama oluşturma, dağıtma, çalıştırma gibi işlemler için kolaylık sağlanır. Ayrıca her uygulama kendi konteyner’ı içerisinde çalıştığı için de izolasyon sağlanmış olur.

Docker mimarisi ve sanal makine mimarisi karşılaştırması için kaynaklardaki Youtube bağlantısı incelenebilir.

 

C) Bulut Teknolojisi

BT altyapısının bazı bileşenleri kurum dışında konumlandırılabilir. Bulut (“Public Cloud“) ortamında kullanılan sistemlerin bulunduğu coğrafi konum farklılık gösterir. Bunun yanında “Private Cloud” olarak isimlendirilen bulut mimarisinde ise, kurum/devlet verileri tek bir veri merkezinde veya ülkede kalması gibi zorunluluklar bulunabilir. Bu 2 bulut mimarisinin birlikte kullanıldığı yapıya da “Hybrid Cloud” adı verilir. Ayrıca, “Community Cloud” olarak adlandırılan bulutu mimarisi ise, yalnızca bir topluluktaki katılımcılara açık olan kapalı bir bulut bilgi işlem platformudur.

Not: İş sürekliliği, afet durumları, DDOS saldırıları,… gibi ihtiyaçlardan dolayı bulut altyapısında birbirinden farklı bölgede yük dengeleyicileri (LB) kullanılabilir.

NIST’e göre bulut ortamında temel olarak 3 hizmet çeşidi vardır. Hepsinde de bulut sağlayıcı (cloud provider) donanım, sanalaştırma ortamı, ağ, yedekleme gibi işlemlerin yönetiminden sorumludur.

  • SaaS (Software as a Service): Servis sağlayıcının ortamındaki uygulamalar (hazır işletim sistemi ve üzerindeki uygulamalar / yazılımlar) kullanılır. Gmail / Office 365 gibi e-posta hizmetleri, Yandex.disk / Dropbox / Google Drive veri depolama ihtiyaçları, Zoom / Cisco Webex / Lync Online gibi iletişim uygulamaları, CRM, ERP, finans ve muhasebe yazılımları SaaS’a örnek olarak verilebilir. Bu teknolojiyi kullanmaktaki ana odağın, uygulama erişim yönetimi olduğu söylenebilir.
  • PaaS (Platform as a Service): Servis sağlayıcının ortamındaki platformlar (kısmen yapılandırılmış işletim sistemi, donanım, yazılım gibi) kullanılır. Veritabanı, web uygulamaları veya geliştirilen kodların / uygulamaların (node.js, python vs) derlemesi / çalıştırılması için platform hizmetleri PaaS’a örnek olarak verilebilir. Bu teknolojiyi kullanmaktaki ana odağin, veri koruması olduğu söylenebilir.
  • IaaS (Infrastructure as a Service): Servis sağlayıcının ortamındaki altyapı (sanallaştırılmış işletim sistemi gibi) kullanılır. Amazon Web Service, Digital Ocean Restful Services, Apache Cloudstackgibi altyapılar IaaS’a örnek olarak verilebilir. Bu teknolojiyi kullanmaktaki ana odağin, olduğu söylenebilir. Bu teknolojiyi kullanmaktaki ana odağin, sanal makine yönetimi olduğu söylenebilir.

 

Bulut servisi kullanımlarında güvenlik görevleri müşteri / alıcı (customer) ve satıcı (vendor) arasında paylaşımlıdır. Bu model “Shared Responsibility Model” olarak adlandırılır. Örneğin;

  • IAAS kullanımında satıcı, depolama donanımının yönetiminden sorumlu olduğu için, hizmet dışı bırakıldıklarında sürücüleri imha etme veya silme sorumluluğu satıcıdadır. Bunun yanında, satıcının depolama (storge) hizmetlerini kullanmadan önce satıcının temizleme (sanitization) prosedürlerinin gereksinimlerini karşıladığını doğrulamak ise müşterinin sorumluluğundadır. 
  • SAAS kullanımında güvenlik duvarına yazılan kuralların doğruluğundan satıcı sorumludur.

Bulut teknolojisi ile operasyonel (süreklilik, bakım,…) maliyetleri düşüş gösterebilir. Bunun yanında farklı taraflarca (firmalarca) ortak kullanılan bileşenler, sıkılaştırılmamış uygulamalar veya işletim sistemleri, yaması takip edilmeyen platformlar,…. büyük riskler doğurubilir. Bu sebeple bulut sağlayıcılar ile yapılan anlaşmalar (Service Level Agreements – SLA) önem göstermektedir.

 

 

D) Dağıtık Sistemler ve Diğerleri

Noktada Noktaya Ağlar (Peer to Peer Network)

Standart ağlar istemci-sunucu mantığı ile çalışırken, P2P ağlarda roller veri ihtiyacına göre değişebilir. Genellikle film, müzik gibi fikri mülkiyet hakkı olan ürünlerin dağıtımında kullanılır. Bu yapıda merkezi bir sunucu olmayıp dağıtık bir mimari mevcuttur.

 

İnce İstemciler (Thin Client)

Merkezi sunucuya bağlanarak uygulama çalıştırmaya yarayan cihazlardır. Ana kaynaktaki veri sunucuya indirildikten sonra sunucu (thin server) üzerinde depolanır ve arkadaki istemciler bu kaynakları kullanırlar. Böylece güçsüz bir işlemci, az boyutta bir disk, sadece ihtiyaç duyulan bir kaç uygulama,… kullanılarak bulut veya sanallaştırma ortamındaki kaynaklar kullanılabilir. Donanımsal (disksiz) veya yazılımsal olabilirler.

  • Donanımsal (Diskless Workstations): Router, gömülü cihazlar, bazı PC’ler bu sınıftadır. Sadece işlemci, RAM ve firmware bileşenlerine sahiptirler. Çekirdek (kernel) ve işletim sistemi ağ üzerinden BOOTP (Bootstrap Protocol) veya DHCP (Dynamic Host Configuration Protocol) gibi protokoller aracılığı ile yüklenir.
  • Yazılımsal (Thin Client Applications): Citrix ICA, 2X ThinClientServer, OpenThinClient,… bu sınıftadır. Üzerinde bir işletim sistemi ve istemci uygulama (web tarayıcısı) çalışır.

 

Internet of Things (IoT)

İnternete bağlı küçük cihazlardır. Kameralar, buzdolapları, ev kontrol sistemleri, arabalar,… internete bağlanabilir. IoT güvenliğinde parolaların karmaşık olmaması, erişimlerin şifrelenmemesi ve güncellemelerin göz ardı edilmesi en önemli güvenlik problemlerindendir.

 

Kaynaklar:

https://www.amazon.com/CISSP-Study-Guide-Eric-Conrad/dp/0128024372
https://medium.com/@dogukanturan/virtualization-ve-hypervisor-nedir-a1f7acb99765
https://medium.com/devopsturkiye/temel-d%C3%BCzeyde-docker-mant%C4%B1%C4%9F%C4%B1-ve-kavramlar%C4%B1-bde5418858d4
https://www.bgasecurity.com/2018/04/docker-konteyner-nedir-docker-guvenligi-nasil-saglanir/
http://devnot.com/2016/container-dunyasi-ve-docker/
https://www.profelis.com.tr/tr/blog/yazi/1139/container-bugunun-teknolojisi/


https://www.slideshare.net/KadirErtanam/kernel-ve-wndows-kurulumu

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

This site uses Akismet to reduce spam. Learn how your comment data is processed.