Derinlemesine savunma
- Tek kontrole yaslanan savunma, o kontrol düştüğü an çöker; bu derste savunmayı bağımsız katmanlara ayırır, her katmanı bir sonrakiyle yedeklersin.
- CIA üçlüsünü, dört savunma katmanını ve önleyici, tespit edici, düzeltici kontrolü birlikte kurmayı öğrenirsin.
- Doğru varsayım şudur: bir katman er geç düşecek. Plan bunun üstüne kurulur.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +45 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Bir kale düşün. Tek bir yüksek duvar yaparsan duvardaki tek gedik kaleyi bitirir. Eski mimarlar bu yüzden hendek, dış sur, iç sur ve iç kale diye katman kurdu. Saldırgan her katmanda yeniden uğraşır, savunan taraf da her katmanda onu görme şansı kazanır.
Bir şirket ağı da aynı sınavdan geçer. Güvenlik duvarında unutulmuş bir kural, oltalamayla çalınmış bir parola ya da bir hafta geciken bir yama duvardaki gedik olur. Gedik açıldığında arkada ne durduğu, olayın küçük bir uyarıda mı kalacağını yoksa büyük bir sızıntıya mı döneceğini belirler.
Neden tek kontrol çöker
Kaledeki katman fikrinin bilgi güvenliğindeki adı derinlemesine savunmadır (defense in depth). NIST bu stratejiyi insan, teknoloji ve işleyişten oluşan engellerin kurumun birden çok katmanına dizilmesi diye tanımlar. Temel varsayım basittir: her kontrol tek başına er geç düşer. Amaç, bir kontrolün kaçırdığı saldırıyı bir sonrakinin yakalamasıdır.
Küçük bir örnekle gör. Bir saldırgan dışa açık bir web formuna kötü bir girdi yollar. Ağ katmanı isteği 443 portundan geçirir, çünkü form herkese açıktır. Uygulama katmanı girdiyi doğrular ve beklenmeyen karakterleri reddeder.
Doğrulamayı atlatan daha kurnaz bir yük gelirse veri katmanı devreye girer: uygulama veritabanına dar yetkili bir hesapla bağlıdır, bu yüzden yük tablo silemez. Tek bir hata tüm sistemi düşürmez. Saldırgan yavaşlar ve her adımda iz bırakır.
Tek katmana yaslanmanın en sık örneği WAF'tır. Web uygulama güvenlik duvarı (WAF), bilinen saldırı kalıplarını kural ve imzayla yakalar ve gürültünün çoğunu keser. Ama kuralın tanımadığı bir yazım ya da yeni bir yük aradan geçebilir. WAF'ı tek çözüm sayan ekip, koddaki girdi doğrulamasını erteler.
Kural bir kez atlatıldığında arkada hiçbir engel kalmaz. WAF zaman kazandırır, koddaki kusuru kapatmaz. Sağlam bir tasarımda WAF bir katmandır, tek katman değil. Aşağıdaki fatura servisi, WAF'ı atlatan bir isteğin arkadaki katmanlara nasıl çarptığını gösterir.
# 1) İstek: yük, WAF kuralının aradığı kalıptan farklı yazılmış
GET /fatura?id=42'/**/or/**/'a'='a HTTP/1.1
Host: fatura.altaykargo.example
# 2) WAF kaydı: kural yalnız düz yazılmış kalıbı tanıyor
waf kural=sqli-01 eslesme=yok karar=gecir
# 3) Uygulama: önce girdiyi doğrular, sonra parametreli sorgu kurar
if not fatura_id.isdigit():
return yanit(400, "gecersiz fatura numarasi")
cur.execute("SELECT tutar FROM fatura WHERE id = %s", (fatura_id,))
# 4) Yanıt ve uygulama kaydı
HTTP/1.1 400 Bad Request
app uyari=girdi_dogrulama alan=id src_ip=203.0.113.45Örneği adım adım oku. Birinci bölümde saldırgan tek tırnağı ve VEYA koşulunu araya yorum işaretleri koyarak yazmış. İkinci bölümde WAF kuralı yalnız düz yazılmış kalıbı tanıdığı için isteği geçirir.
Üçüncü bölümde uygulama katmanı devreye girer: fatura numarası yalnız rakamdan oluşmalıdır, bu yük kuralı karşılamaz ve istek 400 ile geri döner. Doğrulama unutulmuş olsaydı bile parametreli sorgu yükü veri olarak taşırdı. Veritabanı bütün diziyi tek bir değer sayar, kod olarak çalıştırmaz ve hiçbir satır dönmez.
Dördüncü bölümdeki uyarı satırı da tespit katmanıdır. Ekip bu denemeyi görür ve kaynağı inceler.
Etkinlik 1 / 7
Örnekteki fatura servisinde parametreli sorgu, WAF'ı atlatan yükü nasıl etkisiz bırakır?
Üç hedef: gizlilik, bütünlük, erişilebilirlik
Katman kurmadan önce neyi koruduğunu adlandır. Güvenliğin üç temel hedefi vardır ve İngilizce baş harfleriyle CIA diye anılır: gizlilik (confidentiality), bütünlük (integrity) ve erişilebilirlik (availability). NIST'in FIPS 199 standardı üçünü de tanımlar. Gizlilik, veriyi yalnız yetkili kişinin görmesidir.
Bütünlük, verinin izinsiz değişmemesi ve kaydın iddia ettiği kaynaktan gelmesidir. Erişilebilirlik, verinin ve servisin ihtiyaç anında güvenilir biçimde kullanılabilmesidir. Bir kontrolü seçerken hep sorarsın: bu kontrol hangi hedefi koruyor?
Aynı üçlünün ters yüzü saldırganın amacını anlatır ve kısaltması DAD'dir: ifşa (disclosure), değiştirme (alteration) ve yıkım (destruction). İfşa gizliliği kırar, veriyi dışarı sızdırır. Değiştirme bütünlüğü kırar, kaydı ya da bakiyeyi sessizce bozar.
Yıkım erişilebilirliği kırar, sistemi ya da veriyi kullanılmaz yapar. Bir olayı incelerken saldırganın hangi harfi hedeflediğini bulmak, hangi kontrolün çöktüğünü de söyler. Fidye yazılımı çoğu zaman iki harfe birden vurur: önce veriyi dışarı sızdırır, sonra şifreleyip erişimi keser.
Üç hedef her zaman aynı ağırlıkta değildir; kurum neyi koruduğuna göre öncelik verir. Bir hastanede erişilebilirlik ilk sıradadır, çünkü sistem düşerse hasta bekler. Bir bankada bütünlük öne çıkar, çünkü bakiyenin bir kuruşu bile sessizce değişmemeli.
Bir istihbarat biriminde gizlilik başta gelir, çünkü sızan tek belge yıllarca iz bırakır. Önce hangi hedefin senin işinde en kritik olduğunu belirler, sonra o hedefe en çok katmanı yığarsın. Üç hedefi birden kusursuz koruyan tek bir kontrol yoktur.
Etkinlik 2 / 7
Her olayı kırdığı güvenlik hedefine göre ayır.
Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.
0/6 seçenek yerleşti.
Dört katman ve bağımsızlık
Savunmayı dört başlıkta düşünebilirsin. Ağ katmanı kimin nereye ulaşacağını sınırlar: güvenlik duvarı, ağ bölütleme, VPN. Kimlik katmanı kim olduğunu ve neye yetkili olduğunu denetler: parola, çok faktörlü doğrulama, rol tabanlı erişim. Uygulama katmanı girdiyi doğrular, çıktıyı kaçışlar ve iş kuralını zorlar.
Veri katmanı şifreleme, yedek ve erişim kaydıyla son hattı tutar. Dıştan içe sıra hep aynıdır: ağ, kimlik, uygulama, veri. Bunların altında bir de fiziksel katman durur. Sunucu odasının kilidi, kart okuyucu, kamera ve temiz masa kuralı da birer kontroldür.
Dizüstünün diskini şifrelemek, çalınan cihazdaki veriyi korur. Bir saldırgan içeri girip bir USB takabiliyorsa yazılım katmanlarının çoğu anlamını yitirir. Katman listeni çıkarırken fiziksel erişimi de bir satır olarak yaz.
Şema ağ katmanını yakından gösterir. İnternetten gelen trafik önce dış duvara çarpar ve orada yalnız 443 portu açıktır. Web ve e-posta sunucuları DMZ denen ara bölgede durur.
İç duvar, DMZ'den iç ağa yalnız izin listesindeki bağlantıları geçirir. Web sunucusu ele geçse bile saldırgan iç ağa doğrudan inemez, ikinci duvara çarpar. Her durak ayrı bir kontroldür ve her durakta saldırgan yeniden uğraşmak zorunda kalır.
Etkinlik 3 / 7
Saldırgan DMZ'deki web sunucusunu ele geçirdi. İç ağa inmesini durduracak sıradaki engel hangisi?
Diyagramda doğru kutuyu tıkla.
Katman sayısı tek başına değer taşımaz, katmanların bağımsız olması gerekir. Aynı yönetici parolasıyla açılan üç kontrol aslında tek kontroldür. Sınamanın yolu şu sorudur: bu kontrol düşerse hangileri onunla birlikte düşer? Liste uzunsa katmanlar iç içe geçmiştir.
İyi bir tasarımda WAF düşse de girdi doğrulaması ayakta kalır, VPN parolası sızsa da kimlik katmanı ikinci faktör ister. Katmanları basit bir tabloda tut: varlık, katman, kontrol, sorumlu. Kafada duran mimari ne devredilir ne de denetlenir.
Bağımsızlık testini somut yap. Üç kontrolün var: VPN, yönetim paneli girişi ve veritabanı. Üçü de aynı dizin servisindeki tek parolayla açılıyorsa o parola sızınca üçü birden düşer; aslında tek kontrolün vardır. Aynı düzende panel ayrı bir ikinci faktör, veritabanı da ayrı bir anahtar isterse bir parolanın sızması zinciri kırmaz.
Yeni bir kontrol eklerken sor: yeni kontrol, var olan bir kontrolle aynı sırra mı dayanıyor? Yanıt evetse katman değil, kopya eklemişsindir.
Etkinlik 4 / 7
Uygulamanın önünde yalnız WAF var. WAF kuralını atlatan bir SQL yükü gelirse ne olur?
Önce kodu oku, sonra çıktıyı seç.
istemci -> WAF -> uygulama (girdi doğrulaması yok) -> veritabanı (root hesabıyla bağlı)
Kontrol türleri: önleyici, tespit edici, düzeltici
Katman seçerken kontrolün türünü de karıştır. Önleyici kontrol saldırıyı başlamadan keser: güvenlik duvarı kuralı, girdi doğrulaması, çok faktörlü doğrulama. Tespit edici kontrol olayı görünür kılar: log, uyarı kuralı, dosya bütünlüğü izleme.
Düzeltici kontrol hasardan sonra sistemi geri getirir: yedek, temiz imaj, kurtarma planı. Üç türden yalnız birini kurarsan savunma topal kalır. Önleme olmadan sürekli yangın söndürürsün, tespit olmadan yangını hiç görmezsin, düzeltme olmadan da ilk ciddi olayda geri dönemezsin.
Üç türü aynı varlıkta birlikte düşün. Bir yönetim paneli örneğinde önleyici kontrol çok faktörlü doğrulamadır, tespit edici kontrol başarısız giriş uyarısıdır, düzeltici kontrol de panelin ve veritabanının yedeğidir. Bir varlıkta üç türden biri eksikse orada kör nokta vardır. Katmanlı tasarımın bir faydası da burada çıkar: saldırgan her katmanı geçerken o katmanın kaydında iz bırakır, tespit edici kontrol de bu izi alarma çevirir.
Tespit edici kontrol savunmanın gözüdür ve çoğu kurumda en zayıf halkadır. Önleyici kontrole herkes yatırım yapar, ama kimse logları okumazsa saldırı aylarca sürer. İyi bir tespit kontrolü üç şey ister: doğru kaydı toplamak, kayda bir kural koymak ve kural çalınca bakacak birini atamak.
Üçünden biri eksikse alarm boşa öter. Bu yüzden tespit kontrolünü kurarken yalnız aracı değil, alarmı kimin ve ne zaman inceleyeceğini de yazarsın.
Etkinlik 5 / 7
Her kontrolü türüne göre ayır.
Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.
0/6 seçenek yerleşti.
Katmanları dizmek ve sahada
Yeni bir sistemi kurarken katmanları dıştan içe dizersin. Önce ağ erişimini daraltır, kimlik kontrolünü koyar, uygulamada girdiyi doğrular, en içte veriyi şifreler ve erişimi kaydedersin.
Diziliş tek yönlü düşünülmez; her katman hem dışarıdan gelen saldırıya hem de bir önceki katmanın düşmesine karşı planlanır. Bu yüzden her katmanın yanına bir de 'bu düşerse ne olur' satırı yazarsın. Yanıtı boş kalan satır, eksik katmanın yerini gösterir.
Somut bir olaya bak. Altay Kargo'nun güvenlik ekibi gece yarısı bir uyarı aldı. Bir geliştiricinin VPN parolası oltalama e-postasıyla çalınmış ve ağ katmanı düşmüştü. Saldırgan iç ağa bağlandı.
Yönetim paneline girmek istediğinde kimlik katmanı ikinci faktör istedi ve saldırgan orada takıldı. Aynı dakikalarda alışılmadık bir ülkeden gelen VPN bağlantısı uyarı üretti, ekip hesabı kilitledi. Tek katman düştü ama zincir kopmadı. Üç katmanın da bağımsız olması olayı bir hesap sızıntısı boyunda tuttu.
Etkinlik 6 / 7
Yeni bir iç yönetim paneli için savunma katmanlarını dıştan içe doğru diz.
Parçalara tıklayarak komutu soldan sağa kur.
Aynı mantık bulutta da işler, yalnız adlar değişir. Güvenlik grubu ağ katmanıdır. Kimlik ve erişim politikası kimlik katmanıdır. Anahtar yönetim servisiyle yapılan şifreleme ve depolama şifrelemesi veri katmanıdır.
Bulut servisini incelerken de aynı soruyu sorarsın: bu kontrol düşerse arkada hangi katman kalıyor? Bir katmana ikinci bir kural eklemek yeni bir katman değildir. Güvenlik grubundaki kuralları ikiye katlamak ağ katmanını kalınlaştırır ama kimlik tarafı yine açık kalır. Farklı bir katman eklemek asıl korumadır.
Etkinlik 7 / 7
Bulutta çalışan bir fatura servisinde ekip yalnız güvenlik grubunda 443 dışındaki portları kapattı. Derinlemesine savunmaya göre sıradaki kontrol hangisi olmalı?
Derinleş:Sıfır güven mimarisi
Derinlemesine savunma katmanları dizerken sıfır güven (zero trust) her isteği yeniden sorgular. NIST'in 2020 tarihli SP 800-207 belgesi bu yaklaşımı anlatır. Klasik tasarım iç ağı güvenli, dışı güvenilmez sayardı; bir kez içeri giren rahat gezerdi. Sıfır güven bu varsayımı kaldırır.
Hiçbir kullanıcıya ya da cihaza yalnız ağ konumu ya da sahiplik yüzünden güven verilmez. Her erişim isteği kimlik, cihaz durumu ve bağlama göre tek tek doğrulanır. İlke 'asla güvenme, hep doğrula' diye özetlenir.
Pratikte mikro bölütleme, güçlü kimlik ve sürekli yetki denetimi gelir. Kullanıcı doğru parolayı girse bile cihazı güncel değilse ya da isteği beklenmedik bir yerden geliyorsa erişim yine reddedilebilir. İki yaklaşım çelişmez; sıfır güven, katmanlı savunmanın iç ağa duyduğu sorgusuz güveni söker.
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.
- Etkinlik 1· Neden tek kontrol çöker
- Etkinlik 2· Üç hedef: gizlilik, bütünlük, erişilebilirlik
- Etkinlik 3· Dört katman ve bağımsızlık
- Etkinlik 4· Dört katman ve bağımsızlık
- Etkinlik 5· Kontrol türleri: önleyici, tespit edici, düzeltici
- Etkinlik 6· Katmanları dizmek ve sahada
- Etkinlik 7· Katmanları dizmek ve sahada