Bilgisayar Mimarisine Giriş – II: Temel Bileşenler | SİBER GÜVENLİK PORTALİ
Blue Team Information Security Bilgisayar Mimarisine Giriş – II: Temel Bileşenler
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.
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.
İş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.
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.
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.
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.
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.
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.
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.
İş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.
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.
Çalıştırma (Read & Execute)
Tam Yetki (Full Control)
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ığı
İş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.
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 cografi 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.
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) kullanılır. Müşteri bu uygulamaları (mail hizmeti gibi) kullanır.
PaaS (Platform as a Service): Servis sağlayıcının ortamındaki platformlar (kısmen yapılandırılmış işletim sistemi gibi) kullanılır. Müşteri bu platformda uygulamasını (web sitesi gibi) yapılandırır.
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. Müşteri bu altyapıda işletim sistemini (Windows/Linux gibi) yapılandırır.
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.
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.
İ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.
Önceki YazıBilgisayar Mimarisine Giriş – I: Temel Kavramlar
Sonraki YazıBilgi Güvenliği Bakışı ile Güvenlik Kontrollerinin Sınıflandırılması