- yüzyılda Avrupa'yı kasıp kavuran Kara Veba salgını sırasında, dönemin en büyük ticaret limanlarından biri olan Venedik Cumhuriyeti, tıp ve halk sağlığı tarihini sonsuza dek değiştiren bir uygulamaya imza attı.
Şehre yanaşmak isteyen yabancı ticaret gemileri doğrudan limana alınmıyordu. Gemiler, Venedik lagününün açıklarındaki küçük bir adada tam 40 gün boyunca demirli tutuluyordu. İtalyancada "kırk" anlamına gelen quaranta kelimesinden türeyen bu ritüelin adı tarihe altın harflerle kazındı: Karantina.
Mantık son derece yalın ve dehaydı:
Dışarıdan gelen bir gemiyi doğrudan reddedip batıramazsınız; çünkü ticaretin sürmesi gerekir. Ama onu doğrudan şehrin kalbine de sokamazsınız; çünkü içinde veba mikrobu taşıyor olabilir. Yapılacak tek rasyonel şey; onu sınırların hemen dışında, tamamen izole edilmiş, etrafı denizle çevrili steril bir alanda bekletmek, gözlemlemek ve şehre bulaşma riskini sıfırlamaktır.
Bugün modern acil servislerde de bulaşıcı bir patojen (örneğin tüberküloz veya viral bir hemorajik ateş) şüphesi olan bir hasta geldiğinde aynı kural uygulanır:
Hasta hemen Negatif Basınçlı İzolasyon Odasına alınır. Odanın havası dışarıya sızamaz; hava özel HEPA filtrelerden geçirilerek emilir. Kapılar çift kademelidir. Şüpheli organizma kontrol altındadır.
Peki, aynı salgın tehdidi her saniye binlerce yabancı dosya ve veri paketi alan yazılım sistemlerimizde nasıl yönetiliyor?
Dijital Salgın: Üçüncü Parti Paketler ve Kullanıcı Dosyaları
Modern yazılım sistemleri, tıpkı o 14. yüzyıl Venedik limanı gibi dünyanın her yerinden gemi kabul eden açık birer pazar yeridir.
Sisteminizin kapısından içeri her gün;
- Kullanıcıların profil fotoğrafı veya fatura diye yüklediği PDF dosyaları,
- E-posta eklentileri,
npm installdiyerek projenize dahil ettiğiniz, dünyanın öbür ucundaki tanımadığınız bir geliştiricinin yazdığı üçüncü parti açık kaynak kütüphaneler,- Müşterilerin girdiği karmaşık HTML ve JavaScript kodları akar.
Eğer sisteminizde bir izolasyon mimarisi yoksa; kullanıcının yüklediği masum görünümlü o PDF dosyasının içine gizlenmiş bir zararlı yazılım (malware), ana sunucunuzun kök dizinine (root) erişebilir. Ya da projenize eklediğiniz küçük bir utility kütüphanesi, sunucunuzdaki tüm ortam değişkenlerini (environment variables) ve veritabanı şifrelerini gizlice bir saldırgana sızdırabilir.
Tıpkı vebalı bir denizcinin Venedik sokaklarına karışması gibi; tek bir yabancı paket, tüm şirketi dijital bir salgınla kırıp geçirebilir.
Sandbox: Lagündeki Karantina Adası
İşte siber güvenlik mühendisliğinin bu bulaşma riskine karşı geliştirdiği en kusursuz savunma hattına "Sandbox" (Kum Havuzu / Korumalı Alan) denir.
Sandbox; güvenilmeyen, şüpheli veya potansiyel olarak zararlı bir kod parçacığını, ana işletim sisteminden ve ağdan tamamen yalıtılmış sanal bir kafesin içinde çalıştırma sanatıdır:
- Tarayıcı İzolasyonu (Chrome Sandbox): Kullandığınız modern tarayıcılar (Chrome, Brave vb.) bu mantıkla çalışır. Açtığınız her bir sekme, işletim sisteminden tamamen izole edilmiş ayrı bir sandbox sürecinde (process) çalıştırılır. Bir sekmede girdiğiniz zararlı bir web sitesi patlasa bile; o sekme çöker ama işletim sisteminize veya yan sekmedeki bankacılık oturumunuza asla sıçrayamaz.
- Mikro Sanallaştırma (Firecracker / gVisor): AWS Lambda veya modern sunucusuz (serverless) platformları düşünün. Kullanıcıların yüklediği rastgele kodlar, milisaniyeler içinde ayağa kalkan ve işi bittiğinde yok olan mikro sanal makinelerde (MicroVM) çalıştırılır. Kod ana sunucunun donanımına asla doğrudan dokunamaz.
- Dosya İşleme Odaları: Kullanıcı bir avatar resmi yüklediğinde; o resmi ana uygulama sunucunuzda işlemezsiniz. Onu sadece dosya dönüştürme yetkisi olan, internet çıkışı ve veritabanı erişimi bulunmayan izole bir "karantina container'ına" atarsınız. Eğer resmin içine bir exploit gizlenmişse, o patlama o steril odanın içinde gerçekleşir ve söner.
Bulaşma Riskini Sıfırlamanın Yolu
Birçok yazılımcı güvenliği, sadece "şüpheli görüneni engellemek" (blacklisting) sanır:
"Dosya uzantısı .exe ise içeri alma, .png ise güvenlidir."
Bu, kapıdaki denizcinin sadece yüzüne bakıp "Bu adam sağlıklı görünüyor, içeri girsin" demekle aynı ölümcül saflıktır. Virüsler kendilerini en masum formların içine gizlerler.
Bulaşma riskini yönetmenin tek felsefi yolu şudur:
Dışarıdan gelen her şeyi peşinen potansiyel bir taşıyıcı olarak kabul etmek ve onu kontrollü bir fanusun içine hapsetmektir.
Sisteminizin kapılarını dış dünyaya tamamen kapatamazsınız; çünkü kapıyı kapatırsanız ticaret ölür, inovasyon durur.
Ama içeri giren her yabancı misafire de sarayınızın anahtarlarını veremezsiniz.
Güvenilmeyen her koda, her kütüphaneye ve her dosyaya bir Venedik karantinası uygulayın.
Bırakın o adada 40 gün beklesin.
Bırakın güvenli kum havuzunda oynasın.
Çünkü gerçek güvenlik; fırtınayı durdurmak değil, fırtınanın içeriye sıçrayabileceği tüm pencereleri kurşun geçirmez camlarla mühürleyebilmektir.