Güvenli Sistem Nasıl Tasarlanır? Saldırı Yüzeyi, Kimlik, Yetki ve Zero Trust Mantığı

Bir sistemin güvenli olup olmadığını çoğu zaman sistem devreye alındıktan sonra sorgularız.

  • Uygulama geliştirilir.
  • Sunucular kurulur.
  • Ağ bağlantıları açılır.
  • Kullanıcılar tanımlanır.
  • Sistem üretime alınır.

Sonra güvenlik ekibine şu soru yöneltilir: “Bunu nasıl güvenli hale getiririz?”
Bu yaklaşımın temel sorunu, güvenliğin sistemin sonuna eklenen ayrı bir katman gibi düşünülmesidir. Oysa güçlü bir güvenlik mimarisinde asıl soru şudur: “Sistemi daha baştan hangi güvenlik varsayımlarıyla tasarladık?”

  • Hangi kullanıcı hangi kaynağa erişebilir?
  • Bir kullanıcı hesabı ele geçirilirse saldırgan nereye kadar ilerleyebilir?
  • Bir sunucu ele geçirilirse diğer sistemlere geçiş mümkün müdür?
  • Uygulama gerçekten ihtiyaç duymadığı sistemlerle konuşabiliyor mu?
  • Bir servis hesabının gereğinden fazla yetkisi var mı?
  • İç ağda olmak neden güvenilir kabul ediliyor?
  • Yönetici hesabı günlük işlerde de kullanılıyor mu?
  • Bir saldırgan sisteme girdiğinde onun hareketlerini görebiliyor muyuz?


Bu sorular bizi güvenli sistem tasarımı, saldırı yüzeyi, en az ayrıcalık, segmentasyon ve Zero Trust yaklaşımına götürür.

NIST'in sistem güvenliği mühendisliği yaklaşımı, güvenliğin sistem yaşam döngüsünün sonuna eklenmesi yerine sistemin tasarım, geliştirme ve işletim faaliyetlerinin içine yerleştirilmesini savunur. Güvenilir sistemler oluşturmak için, güvenlik ilkelerinin mimari ve mühendislik kararlarının parçası olması gerektiğini vurgular.

1. Güvenli sistem tasarlamak ne demektir?

Güvenli sistem tasarlamak: “Her yere güvenlik ürünü koymak” demek değildir. Daha temel bir yaklaşım gerektirir. Örneğin bir sistem daha tasarım aşamasında şu özelliklere sahip olabilir:

  • Yalnızca ihtiyaç duyduğu ağ bağlantıları açık,
  • Kullanıcı ve servisler minimum yetkiyle çalışıyor,
  • Yönetici hesapları normal kullanıcı hesaplarından ayrılmış,
  • Kritik sistemler birbirlerinden mantıksal olarak ayrıştırılmış,
  • Dışarıya açılan servisler sınırlandırılmış,
  • Hassas veriye erişim açıkça tanımlanmış,
  • Kimlik doğrulama yalnızca parolaya dayanmıyor,
  • Erişim kararlarında kullanıcı kadar cihaz ve bağlam da dikkate alınıyor,
  • Güvenlik olayları izlenebilir şekilde kaydediliyor,
  • Bir sistem ele geçirilse bile saldırganın bütün kuruma yayılması zorlaştırılıyor.

Bunların önemli bölümü teknoloji seçiminden önce verilmesi gereken mimari kararlardır. Bu nedenle: Güvenlik mimarisi, saldırgan sisteme hiç giremeyecek varsayımı üzerine değil; bir noktadan girebileceği ve sonrasında hareketinin sınırlandırılması gerektiği varsayımı üzerine de kurulmalıdır. Bu düşünce savunmayı yalnızca dış sınırda kurmaktan daha güçlüdür.

2. Saldırı yüzeyi nedir?

Bir sistemin saldırı yüzeyi, saldırganın sisteme girebileceği, veri gönderebileceği, işlem yaptırabileceği veya sistemden veri çıkarabileceği noktaların bütünüdür.

OWASP, saldırı yüzeyini uygulamaya veri veya komut giriş-çıkışı sağlayan yollar, bu yolları koruyan kod ve mekanizmalar, değerli veriler ile bunları koruyan bileşenler açısından ele almaktadır. 

Saldırı yüzeyi analizinin amacı hangi bölümlerin güvenlik açısından incelenmesi gerektiğini, yüksek riskli alanların nerede bulunduğunu ve sistem değiştikçe saldırı yüzeyinin nasıl değiştiğini anlamaktır. Bir web uygulamasında saldırı yüzeyi örneğin şunlardan oluşabilir:

  • İnternet üzerinden erişilebilen web sayfaları,
  • API uç noktaları,
  • VPN bağlantıları,
  • Uzak yönetim servisleri,
  • Yönetim panelleri,
  • Dosya yükleme alanları,
  • Kimlik doğrulama ekranları,
  • Mobil uygulamalar,
  • Üçüncü taraf entegrasyonları,
  • Bulut servisleri,
  • E-posta geçitleri,
  • Servis hesapları,
  • Kullanıcı cihazları.


Ancak yalnızca internete açık noktaları düşünmek yeterli değildir. İç saldırı yüzeyi de vardır. Örneğin:

  • Bir kullanıcının erişebildiği paylaşımlar,
  • Servis hesapları,
  • Yönetim portları,
  • Yanlış yetkilendirilmiş veri tabanları,
  • Ortak parolalar,
  • Aşırı yetkili hesaplar

da saldırganın ilk erişimden sonra kullanabileceği yollar oluşturabilir.

3. Güvenli tasarımın ilk ilkelerinden biri: İhtiyacın olmayan şeyi açma

Saldırı yüzeyini azaltmanın en etkili yöntemlerinden biri basittir: İhtiyaç duyulmayan hizmeti, portu, hesabı, API'yi veya erişim yolunu oluşturmamak.

Bir sistemde saldırganın kullanabileceği yüz ayrı giriş noktası yerine yirmi giriş noktası varsa savunulması gereken alan da küçülür. Bu nedenle sistem tasarlanırken şu sorular sorulmalıdır:

  • Bu servis neden açık?
  • Bu port gerçekten gerekiyor mu?
  • Bu API'yi kim kullanıyor?
  • Bu yönetim panelinin internete açık olması gerekiyor mu?
  • Bu eski kullanıcı hesabı neden hâlâ aktif?
  • Bu uygulamanın internet erişimine gerçekten ihtiyacı var mı?
  • Bu sistem neden diğer bütün sunucularla iletişim kurabiliyor?

Bu düşünceye: Attack surface reduction - "Saldırı yüzeyinin azaltılması" diyebiliriz. 
Ancak amaç sistemi kullanılamaz hale getirmek değildir. Amaç: İş için gerekli işlevi korurken gereksiz erişim yollarını ortadan kaldırmaktır.

4. Güvenliğin merkezinde ağdan önce kimlik vardır

Uzun yıllar kurumsal güvenlik modellerinin önemli bölümü şu varsayıma dayanıyordu: Dış ağ tehlikelidir. ve İç ağ daha güvenlidir. Bu nedenle kurumun dış sınırına güçlü bir firewall konulur ve içerideki sistemlere daha geniş güven verilebilirdi. Ancak günümüz ortamlarında:

  • Uzaktan çalışan personel,
  • Bulut sistemleri,
  • Mobil cihazlar,
  • SaaS hizmetleri,
  • Üçüncü taraf erişimleri,
  • Hibrit altyapılar

bu sınırı giderek belirsizleştirmiştir. Daha önemlisi, saldırgan bir kullanıcı hesabını veya kurumsal cihazı ele geçirdiyse teknik olarak içeride bulunabilir. Bu durumda: “İç ağdan geliyor, o halde güvenilir.” varsayımı tehlikeli hale gelir.

NIST Zero Trust Architecture, kullanıcılara veya cihazlara yalnızca fiziksel ya da ağ konumları nedeniyle örtük güven verilmemesi gerektiğini belirtir. Kimlik doğrulama ve yetkilendirme, kurumsal bir kaynağa oturum kurulmadan önce değerlendirilir ve Zero Trust yaklaşımı ağ segmentinden çok, korunacak kaynağa odaklanır.

5. Zero Trust “kimseye güvenme” demek değildir

Zero Trust bazen: “Hiç kimseye güvenme.” şeklinde basitleştirilir.
Bu ifade yaklaşımın mantığını açıklamakta yetersizdir. Daha doğru ifade: Hiçbir kullanıcıya, cihaza veya servise yalnızca bulunduğu konum ya da geçmişte doğrulanmış olması nedeniyle kalıcı ve sınırsız güven verme. Yani erişim kararı:

  • Kim?
  • Hangi cihazdan?
  • Hangi kaynağa?
  • Hangi yetkiyle?
  • Hangi koşullarda?

sorularıyla değerlendirilir. Örneğin bir çalışan normal şartlarda muhasebe uygulamasına erişebiliyor olabilir. Fakat:

  • Bilinmeyen cihazdan,
  • Olağan dışı coğrafi noktadan,
  • Riskli bir oturumdan,
  • Normal dışı zamanda

erişmeye çalışıyorsa aynı erişim kararının tekrar değerlendirilmesi gerekebilir. Zero Trust güveni tamamen yok etmez. Güveni varsayım olmaktan çıkarıp değerlendirilmesi gereken bir karar haline getirir.

6. Zero Trust bir ürün değildir

Piyasada: “Zero Trust çözümü” olarak sunulan birçok teknoloji bulunabilir. Ancak Zero Trust tek başına satın alınabilecek bir cihaz veya yazılım değildir. 

NIST bunu bir mimari yaklaşım ve güvenlik paradigması olarak ele almaktadır. Uygulamada aşağıdaki teknolojiler Zero Trust mimarisine katkıda bulunabilir:

  • IAM,
  • MFA,
  • PAM,
  • EDR,
  • MDM,
  • ZTNA,
  • Mikro segmentasyon,
  • Kimlik tabanlı erişim,
  • Cihaz duruş değerlendirmesi,
  • Merkezi politika motorları,
  • SIEM ve davranış analitiği.

Ancak bunlardan bir tanesini satın almak: “Artık Zero Trust olduk.” anlamına gelmez. Çünkü temel mesele ürün değil: Erişim kararının nasıl verildiğidir.

7. Kimlik doğrulama ile yetkilendirme aynı şey değildir

Bu ayrım temel olmasına rağmen çok önemlidir. Authentication - Kimlik doğrulama “Sen kimsin?” sorusudur. Parola, MFA, sertifika veya başka mekanizmalar kullanılabilir. Authorization - Yetkilendirme “Kim olduğunu doğruladık; peki ne yapmana izin var?” sorusudur.

Bir kullanıcının kimliğinin doğrulanmış olması bütün verilere ulaşabileceği anlamına gelmez. Örneğin: Bir personelin kurumsal kullanıcı olduğu doğrulanabilir. Ancak bu personel:

  • İnsan kaynakları kayıtlarını okuyabilir mi?
  • Maaş bilgilerini değiştirebilir mi?
  • Sunucuda yönetici olabilir mi?
  • Logları silebilir mi?

Bunlar yetkilendirme sorularıdır. Bu ayrım Zero Trust mimarisinde özellikle önemlidir. NIST SP 800-207, kimlik doğrulama ve yetkilendirmenin kaynağa erişim kurulmadan önce, ayrı güvenlik fonksiyonları olarak değerlendirilmesini öngörür.

8. En az ayrıcalık: Kullanıcıya “lazım olabilir” diye yetki verilmemelidir

Güvenli sistem tasarımının temel ilkelerinden biri: Least Privilege - en Az Ayrıcalık ilkesidir.

NIST bunu kullanıcıların veya kullanıcı adına çalışan süreçlerin, görevlerini gerçekleştirmek için gerekli olan asgari yetkilere sahip olması olarak tanımlar. Basit örnek: 

Bir çalışanın yalnızca bir dosyayı okuması gerekiyorsa: okuma yetkisi yeterlidir. Aynı kullanıcıya: değiştirme + silme + yetki verme haklarının verilmesi gereksizdir. Aynı prensip yalnızca insanlara uygulanmaz. Uygulamalar ve servis hesapları için de geçerlidir.

Örneğin bir uygulamanın veri tabanından yalnızca belirli tabloları okuması gerekiyorsa tüm veri tabanında yönetici yetkisi verilmemelidir.

NIST sistem güvenliği mühendisliği rehberi, en az ayrıcalığın insan ve makine bileşenlerine uygulanmasını; yetki kapsamının sınırlandırılmasının hata, kötüye kullanım veya ele geçirilme etkisini azaltmasını güvenlik tasarımının temel prensiplerinden biri olarak ele alır.

9. Aşırı yetki neden bu kadar tehlikelidir?

Bir saldırgan bir kullanıcı hesabını ele geçirdiğinde saldırganın ilk yetkisi genellikle hesabın sahip olduğu yetkidir. Dolayısıyla: Kullanıcının yetkisi = başlangıçta saldırganın yetkisi haline gelebilir. Eğer normal kullanıcı:

  • Kritik paylaşımlara erişebiliyor,
  • Başka sunuculara oturum açabiliyor,
  • Yazılım yükleyebiliyor,
  • Sistem ayarlarını değiştirebiliyorsa

tek bir hesap ele geçirilmesi çok daha büyük zarara dönüşebilir. En az ayrıcalık, bu nedenle saldırının gerçekleşmesini her zaman engellemez. Ama saldırganın etki alanını küçültür.

Bu önemli bir tasarım felsefesidir: Güvenli mimari yalnızca ihlali önlemeye değil, ihlal gerçekleştiğinde ortaya çıkabilecek zararı sınırlamaya da çalışır.

10. Yönetici hesabı günlük hesap olmamalıdır

Özellikle ayrıcalıklı hesaplar güvenlik mimarisinin kritik parçalarıdır. Örneğin bir sistem yöneticisinin: muhammedyusuf@abc.local isimli normal hesabıyla e-posta okuması ve web'e erişmesi;

  • Aynı hesabın aynı zamanda: Domain Administrator yetkisine sahip olması ciddi risk oluşturur.
  • Daha güvenli tasarımda: Normal kullanıcı hesabı ile
  • Ayrıcalıklı yönetim hesabı ayrılabilir.

Böylece günlük kullanıcı oturumu ele geçirilse bile saldırgan doğrudan yönetim ayrıcalığı elde etmeyebilir.

NIST SP 800-53 Rev. 5'in Least Privilege kontrolleri, ayrıcalıklı hesapların sınırlandırılması, ayrıcalıkların düzenli gözden geçirilmesi ve ayrıcalıklı fonksiyonların kullanımının kaydedilmesi gibi uygulamaları içerir.

Burada PAM - Privileged Access Management gibi teknolojiler devreye girebilir. Ancak yine temel mesele teknoloji değildir. Temel ilke: Yüksek yetki yalnızca gerektiği anda, gerektiği kişi veya süreç tarafından, gereken kapsamda kullanılmalıdır.

11. Ağ segmentasyonu neden hâlâ önemlidir?

Zero Trust ağın artık önemsiz olduğu anlamına gelmez. Tam tersine ağ ayrıştırması saldırganın hareket kabiliyetini azaltmak için hâlâ güçlü bir kontroldür.

Örneğin tek ve düz bir ağ düşünelim: Kullanıcı bilgisayarı → Dosya sunucusu → Veri tabanı → Yedekleme sunucusu → Domain Controller birbirine geniş şekilde erişebiliyor.

Bir kullanıcının bilgisayarı ele geçirildiğinde saldırgan ağ içerisindeki diğer sistemleri keşfetmeye ve bunlara erişmeye çalışabilir. Bu hareket: lateral movement — yatay hareket olarak adlandırılır. Daha kontrollü mimaride ağ:

  • Kullanıcı bölgesi,
  • Uygulama bölgesi,
  • Veri tabanı bölgesi,
  • Yönetim bölgesi,
  • Güvenlik araçları bölgesi,
  • Yedekleme bölgesi

gibi farklı güven alanlarına ayrılabilir. Ancak segmentasyonun sadece VLAN oluşturmak olmadığını unutmamak gerekir. Asıl soru: Hangi bölgenin hangi bölgeyle, hangi protokol üzerinden, hangi sebeple konuşmasına izin veriyoruz? olmalıdır.

12. “İçerideki her şey birbirini görebilir” yaklaşımı neden risklidir?

Hayali bir kurumda 1.000 bilgisayar olduğunu düşünelim. Bütün kullanıcı bilgisayarları birbirleriyle ve sunucularla sınırsız konuşabiliyor. Bir kullanıcı bilgisayarına kötü amaçlı yazılım bulaştığında saldırgan artık önemli bir keşif alanına sahip olabilir.

Ancak mimari: Kullanıcı bilgisayarı yalnızca ihtiyaç duyduğu uygulama servislerine erişebilir şeklinde tasarlanmışsa saldırganın hareket alanı küçülür.

Buradaki güvenlik hedefi: sistemi kapatmak değil, gereksiz yolları kapatmaktır. Bu saldırı yüzeyi azaltmanın ağ seviyesindeki karşılığıdır.

13. Servis hesapları neden unutulmamalıdır?

Kurumsal sistemlerde yalnızca insan kimlikleri bulunmaz. Aynı zamanda:

  • Uygulama hesapları,
  • API kimlikleri,
  • Makine kimlikleri,
  • Servis hesapları,
  • Sertifikalar,
  • Erişim anahtarları,
  • Token'lar

vardır. Modern altyapılarda bunların sayısı insan hesaplarından bile fazla olabilir. Zero Trust yaklaşımında bu nedenle yalnızca: “Kullanıcı kim?” değil, “Servis kim?” sorusu da önem kazanır.

NIST SP 800-207A, özellikle bulut ve mikroservis ortamlarında ağ konumundan kimlik temelli politikalara geçişi; kullanıcı kimliğinin yanında uygulama ve servis kimliklerinin de erişim kararlarına dahil edilmesini, ele almaktadır.

Bir servis hesabının parolasının yıllarca değiştirilmemesi veya tüm sistemlerde aynı hesabın kullanılması ciddi saldırı yolları oluşturabilir.

14. Bir sistemi güvenli yapan şey yalnızca erişimi engellemek değildir

Erişim kontrolleri güçlü olabilir. Ama saldırgan bir şekilde içeri girdiğinde onu göremiyorsak başka bir problem vardır. Bu nedenle güvenli sistem tasarımı görünürlük de gerektirir. Örneğin şunlar kaydedilebilmelidir:

  • Kullanıcı oturumları,
  • Başarısız girişler,
  • Yetki değişiklikleri,
  • Ayrıcalıklı işlemler,
  • Uygulama hataları,
  • Yönetim işlemleri,
  • Veri erişimi,
  • Güvenlik politikası değişiklikleri.

Loglama yalnızca sonradan olay araştırmak için değildir. Aynı zamanda: davranış değişikliğini tespit etmenin ve erişim kararlarını geliştirebilmenin temel araçlarından biridir.

15. Defense in Depth: Tek kontrolün başarısına güvenmemek

Başka bir temel güvenlik ilkesi: Defense in Depth - Derinlemesine Savunma yaklaşımıdır.
Örneğin saldırgan kullanıcı parolasını ele geçirmiş olsun. Eğer sistemde yalnızca parola kontrolü varsa saldırgan sisteme girebilir. Ancak başka kontroller de bulunabilir:

Parola
↓
MFA
↓
Cihaz güvenlik kontrolü
↓
Erişim politikası
↓
En az ayrıcalık
↓
Ağ segmentasyonu
↓
EDR
↓
Loglama / SIEM
↓
Veri erişim kontrolü

Bir kontrol başarısız olduğunda, diğerleri saldırganı durdurabilir veya en azından etkisini azaltabilir.

CISA'nın Secure by Design yaklaşımı da güvenlik mekanizmalarının ürünün tasarımına baştan yerleştirilmesini ve birden fazla savunma katmanının kullanılmasını önermektedir.

Ancak burada dikkat edilmesi gereken nokta: çok kontrol ≠ otomatik olarak iyi güvenlik değildir. Kontroller birbirini tamamlamalıdır.

16. Secure by Design ne demektir?

Secure by Design yaklaşımının temel düşüncesi şudur: Güvenlik, ürün veya sistem tamamlandıktan sonra, müşterinin üzerine bırakılacak ek bir sorumluluk olmamalıdır.

CISA ve uluslararası ortaklarının Secure by Design yaklaşımı, teknoloji üreticilerinin müşteri güvenliği sonuçlarının sorumluluğunu daha fazla üstlenmesini; tehditlerin tasarım sırasında dikkate alınmasını ve güvenli varsayılanların kullanılmasını savunmaktadır.

Örneğin bir ürün: varsayılan parola ile geliyorsa kullanıcıdan bunu değiştirmesini beklemek yerine, hiç varsayılan parola kullanmamak daha güçlü bir tasarımdır.

Benzer şekilde: Güvenlik özelliğini müşterinin ayrıca satın alması veya elle etkinleştirmesi gerekiyorsa güvenlik büyük ölçüde kullanıcı davranışına bırakılmış olur.

Secure by Design yaklaşımı: 
“Kullanıcı doğru yapılandırırsa güvenlidir.” düşüncesinden “Sistem varsayılan olarak mümkün olduğunca güvenli başlamalıdır.” düşüncesine geçiştir.

17. Hayali bir kurum üzerinde güvenli mimari

Şimdi önceki yazılarda kullandığımız Kurum X örneğine dönelim. Vatandaşların başvuru yaptığı internet portalımız olsun. Basitleştirilmiş yapı:

İnternet
↓
WAF / Reverse Proxy
↓
Web/Uygulama Katmanı
↓
Veri Tabanı


  • Portal ayrıca: Kimlik Doğrulama Sistemi ile iletişim kuruyor. 
  • Kurum personeli yönetim işlemlerini farklı bir: Yönetim Ağı üzerinden gerçekleştiriyor. 
  • Loglar: Merkezi SIEM/Log Platformuna aktarılıyor. 
  • Yedekleme sistemi ise: ayrı güvenlik alanında tutuluyor.

Bu mimaride sorulması gereken ilk soru: Her bileşenin gerçekten hangi bileşene erişmesi gerekiyor?

  • Örneğin internet kullanıcısının, veri tabanına doğrudan erişmesi gerekmez.
  • Web katmanının, Domain Controller üzerinde yönetici olması gerekmez.
  • Veri tabanının, doğrudan internete çıkması gerekmeyebilir.
  • Normal kullanıcı cihazlarının, yedekleme sunucusuna erişmesine gerek yoktur.
  • Sistem yöneticisinin, internetten doğrudan kritik sunucuya yönetici oturumu açması gerekmeyebilir.

İşte güvenlik mimarisi bu “gerekmiyor” cevaplarını teknik sınırlamalara dönüştürür.

18. Bir kullanıcı hesabı ele geçirilirse ne olmalı?

İyi güvenlik mimarisini test etmenin güçlü yollarından biri şu sorudur: “Bir kullanıcı hesabının ele geçirildiğini varsayalım. Sonra ne olur?” Zayıf mimaride:

Kullanıcı hesabı ele geçirildi
↓
İç ağa erişim
↓
Sunucular keşfedildi
↓
Yetki yükseltildi
↓
Domain Admin elde edildi
↓
Yedek sistemlere erişildi
↓
Kurum genelinde ransomware


gibi bir zincir mümkün olabilir. Güvenli mimarinin hedefi bu zinciri mümkün olduğunca erken kırmaktır. Örneğin:

  • MFA ilk erişimi zorlaştırabilir.
  • Cihaz kontrolü bilinmeyen cihazı engelleyebilir.
  • Least Privilege hesabın erişimini sınırlar.
  • Segmentasyon diğer sistemlere geçişi zorlaştırır.
  • PAM ayrıcalıklı hesaplara erişimi sınırlar.
  • EDR şüpheli davranışı tespit edebilir.
  • SIEM farklı olayları birleştirerek alarm üretebilir.
  • İzole yedek son aşamada kurtarma imkânı sağlayabilir.

Bu nedenle güvenlik mimarisi: “Saldırganı tek noktada durdurabilir miyiz?” sorusundan çok, “Bir kontrol başarısız olduğunda saldırganın bir sonraki adıma geçmesini nasıl zorlaştırıyoruz?” sorusuyla değerlendirilmelidir.

19. Zero Trust olgunluğu bir gecede oluşmaz

Bir kurumun mevcut altyapısını bir gecede tamamen Zero Trust mimarisine dönüştürmesi çoğu zaman gerçekçi değildir. CISA'nın Zero Trust Maturity Model Version 2.0 çalışması dönüşümü beş temel sütun üzerinden ele alır:

  • Identity
  • Devices
  • Networks
  • Applications & Workloads
  • Data

ve bunlara ek olarak görünürlük/analitik ile otomasyon/orkestrasyon gibi yatay yetenekleri değerlendirir. Bu yaklaşım bize önemli bir ders verir:

Zero Trust yalnızca: “MFA açtık.” değildir. Kimlikten cihaza, Ağdan Uygulamaya ve Veriye kadar, farklı güvenlik alanlarının birlikte gelişmesini gerektirir.

20. Güvenli Sistem Tasarım Modeli

Bir sistem tasarlanırken aşağıdaki değerlendirme zinciri kullanılabilir.

1 — Kritik kaynağı belirle
  • Neyi koruyoruz?
  • Veri mi?
  • Uygulama mı?
  • Kritik hizmet mi?

2 — Veri ve işlem akışını çıkar

  • Veri nereden geliyor?
  • Nereye gidiyor?
  • Hangi sistemlerden geçiyor?


3 — Saldırı yüzeyini belirle

  • Sisteme hangi yollarla girilebilir?
  • Sistemden hangi yollarla veri çıkarılabilir?


4 — Gereksiz yolları kaldır
Kullanılmayan:

  • Portlar,
  • Hesaplar,
  • API'ler,
  • Servisler,
  • Ağ bağlantıları

kapatılabilir mi?

5 — Kimlikleri tanımla
İnsan kullanıcılar kadar:

  • Makineler,
  • Servisler,
  • Uygulamalar

da belirlenmelidir.

6 — En az ayrıcalığı uygula
Her kimlik: yalnızca yapması gereken işi yapabilmelidir.

7 — Güven alanlarını ayır
Kullanıcı, uygulama, veri, yönetim ve yedekleme ortamlarının birbirleriyle ilişkisi sınırlandırılmalıdır.

8 — Her erişimi bağlama göre değerlendir

  • Kim?
  • Hangi cihaz?
  • Hangi kaynak?
  • Hangi yetki?
  • Hangi koşul?
9 — Görünürlük oluştur
Erişimler ve ayrıcalıklı işlemler kayıt altına alınmalıdır.

10 — İhlali varsay
Bir bileşen ele geçirilirse saldırganın sonraki hareketi ne olabilir?

11 — Etkiyi sınırlandır
Bir bileşenin ihlali bütün sistemin ihlaline dönüşmemelidir.

12 — Kurtarmayı tasarıma dahil et
Sistem kaybedildiğinde temiz ve güvenilir duruma nasıl dönülecek?

Bu yapıyı: Güvenli Sistem Tasarım Zinciri olarak ifade edebiliriz.

Kaynak → Akış → Saldırı Yüzeyi → Kimlik → Yetki → Ayrıştırma → Doğrulama → Görünürlük → Sınırlama → Kurtarma

21. Güvenli tasarımda sorulması gereken 15 soru

Bir sistem değerlendirmesinde şu sorular güçlü bir başlangıç sağlayabilir:

  1. Bu sistem hangi kritik hizmeti destekliyor?
  2. Hangi hassas verileri işliyor?
  3. İnternete açık hangi bileşenleri var?
  4. Kullanılmayan servis veya portlar var mı?
  5. İnsan ve makine kimlikleri nelerdir?
  6. MFA nerelerde uygulanıyor?
  7. Hangi hesaplar ayrıcalıklı?
  8. Yetkiler gerçekten gerekli mi?
  9. Yönetici hesapları günlük hesaplardan ayrılmış mı?
  10. Sistem hangi diğer sistemlerle iletişim kurabiliyor?
  11. Bu bağlantıların tamamı gerekli mi?
  12. Bir bileşen ele geçirilirse saldırgan nereye ilerleyebilir?
  13. Kritik erişimler loglanıyor mu?
  14. Loglar saldırgan tarafından değiştirilebilir mi?
  15. Ana sistem kaybedilirse güvenilir ortamdan nasıl toparlanacağız?

Bu soruların amacı yalnızca “uygun/uygun değil” tablosu oluşturmak değildir. Amaç sistemin güven varsayımlarını görünür hale getirmektir.

22. Sık yapılan güvenlik mimarisi hataları

İç ağı güvenilir kabul etmek 
İçeride bulunmak kimliğin güvenilir olduğunu kanıtlamaz.

Her kullanıcıya fazla yetki vermek
“İleride lazım olabilir” yaklaşımı saldırganın işini kolaylaştırabilir.

Servis hesaplarını unutmak
Makine kimlikleri de insan hesapları kadar kritik olabilir.

Segmentasyonu sadece VLAN olarak görmek
Gerçek hedef erişim yollarını kontrol etmektir.

MFA'yı Zero Trust sanmak
MFA önemli bir kontroldür fakat Zero Trust mimarisinin yalnızca parçalarından biridir.

Güvenliği ürün seçimine indirgemek
Yeni ürün kötü tasarlanmış mimariyi tek başına düzeltmez.

Sadece saldırının girişini düşünmek
Saldırgan girdikten sonraki hareket yolu da modellenmelidir.

Yedek sistemi aynı güven alanında tutmak
Ana sistemle aynı yetki ve kimlik altyapısına tamamen bağımlı yedek, saldırı sırasında birlikte kaybedilebilir.

Log toplamayı görünürlük sanmak
Milyonlarca kayıt toplamak yerine doğru olayın doğru bağlamda görülmesi gerekir.

Sonuç: Güvenli sistem, saldırganın hiç giremeyeceği sistem değildir

Mutlak güvenlik diye bir durum yoktur. Bu nedenle güçlü bir güvenlik mimarisinin hedefi: “Saldırgan hiçbir zaman içeri giremez.” varsayımına dayanamaz.

Daha gerçekçi hedef şudur: Saldırganın girmesini zorlaştır; girdiğinde yetkisini sınırla; hareket alanını küçült; davranışını görünür hale getir; kritik kaynaklara ulaşmasını zorlaştır; zarar oluşursa etkisini sınırla ve güvenilir şekilde toparlan.

Bu düşünce bize birkaç temel ilke verir:

  • Gereksiz saldırı yüzeyini azalt.
  • Kimliği ağ konumundan daha önemli hale getir.
  • Yetkiyi minimumda tut.
  • Tek bir güvenlik kontrolüne güvenme.
  • Bir sistemin ele geçirilmesinin diğerlerini otomatik olarak düşürmesine izin verme.
  • Güvenliği en baştan tasarla.

Zero Trust'ın özü de burada ortaya çıkar. Zero Trust: bir ürün, bir firewall, bir VPN alternatifi veya yalnızca MFA değildir.

Zero Trust: Güveni varsaymak yerine her erişim talebini kaynak, kimlik, cihaz, yetki ve bağlam temelinde değerlendiren bir mimari düşüncedir.

Güvenli sistem tasarımının temel sorusu bu nedenle: “Saldırgan içeri girebilir mi?” ile bitmemelidir. Bir sonraki ve daha değerli soru: “İçeri girerse ne kadar ileri gidebilir?” olmalıdır. Bir sistemin gerçek güvenlik seviyesi, çoğu zaman bu sorunun cevabında ortaya çıkar.

Kaynaklar:
Cybersecurity and Infrastructure Security Agency. (2023). Zero Trust Maturity Model, Version 2.0. U.S. Department of Homeland Security.
Zero Trust dönüşümünü kimlik, cihazlar, ağlar, uygulamalar/iş yükleri ve veri sütunları üzerinden ele alan uygulama odaklı olgunluk modelidir.

Cybersecurity and Infrastructure Security Agency, National Security Agency, Federal Bureau of Investigation, et al. (2023). Shifting the balance of cybersecurity risk: Principles and approaches for secure by design software.
Güvenliğin ürün tasarımının başlangıcından itibaren ele alınması, güvenli varsayılan yapılandırmaların kullanılması ve güvenlik yükünün yalnızca son kullanıcı üzerine bırakılmaması yaklaşımını ele almaktadır.

National Institute of Standards and Technology. (2020). Zero Trust Architecture (NIST Special Publication 800-207). U.S. Department of Commerce. https://doi.org/10.6028/NIST.SP.800-207
Zero Trust mimarisinin temel kavramlarını, bileşenlerini ve uygulama modellerini ortaya koyan ana NIST yayınıdır.

Chandramouli, R., & Butcher, Z. (2023). A Zero Trust Architecture Model for Access Control in Cloud-Native Applications in Multi-Cloud Environments (NIST Special Publication 800-207A). National Institute of Standards and Technology. https://doi.org/10.6028/NIST.SP.800-207A
Zero Trust'ın bulut, mikroservis ve servis kimlikleri açısından nasıl uygulanabileceğini ayrıntılandırmaktadır.

National Institute of Standards and Technology. (2020, güncellenen kontrol kataloğu). Security and Privacy Controls for Information Systems and Organizations (NIST Special Publication 800-53 Rev. 5).
Özellikle AC-6 Least Privilege kontrol ailesi; minimum yetki, ayrıcalıklı hesaplar, yetki gözden geçirmeleri ve ayrıcalıklı işlemlerin kayıt altına alınması açısından temel referanstır.

Ross, R., Winstead, M., & McEvilley, M. (2022). Engineering Trustworthy Secure Systems (NIST Special Publication 800-160 Volume 1 Rev. 1). National Institute of Standards and Technology.
Güvenli sistem mühendisliği, en az ayrıcalık, minimum paylaşım ve güvenli tasarım ilkelerinin sistem yaşam döngüsüne yerleştirilmesi açısından temel kaynaklardan biridir.

OWASP Foundation. (n.d.). Attack Surface Analysis Cheat Sheet. OWASP Cheat Sheet Series.
Uygulama saldırı yüzeyinin tanımlanması, saldırıya açık noktaların belirlenmesi ve sistem değişikliklerinin saldırı yüzeyine etkisinin değerlendirilmesi için pratik bir kaynaktır.