14.6 · Seviye 2 · Güvenlik Düşüncesi
Güvenli başarısızlık
bir bileşen bozulduğunda kapının kapalı kalması
Siber Güvenlik Akademisi — M14, Güvenlik Mimarisi İlkeleri · 1.827 kelime · 3 saha durumu · ≈ 8 dk okuma · 12 dk dinleme
Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Bu akademi savunma odaklıdır: saldırılar mekanizma düzeyinde anlatılır, adım adım saldırı tarifi verilmez. Uygulamalar yalnız kendi cihazında, kendi hesabında ya da yalıtılmış bir laboratuvarda yapılır; başkasının sistemine izinsiz erişim suçtur. Dersler hukuki danışmanlığın yerini tutmaz.
Açılış
Kampanya haftasının ikinci gecesi, Selin'in şirketinin kullandığı dış dolandırıcılık kontrol hizmeti yarım saat boyunca cevap vermedi. Her sipariş, ödemeye geçmeden önce bu hizmete sorulurdu: bu kart, bu adres, bu tutar şüpheli mi? Hizmet sustuğunda siparişler durmadı. Akmaya devam etti.
Sabah Selin kayıtlara baktığında nedenini buldu. Kontrol koduna yıllar önce bir satır eklenmişti: hizmet beş saniye içinde cevap vermezse, siparişi onayla. Satırın yanında kısa bir not vardı: "Müşteri beklemesin."
O yarım saatte yüzlerce sipariş hiç kontrol edilmeden geçmişti. Çoğu gerçek müşterilerdi. Ama aralarında, aynı adrese farklı kartlarla verilmiş, yüksek tutarlı bir düzine sipariş de vardı. Hizmet çalışıyor olsaydı onları büyük ihtimalle durdururdu.
Selin satırı uzun süre okudu. Yazan kişi kötü bir şey yapmamıştı; müşteriyi bekletmemek istemişti. Ama bir karar vermişti, belki farkında olmadan: kontrol bozulduğunda, kapı açık kalacaktı.
Selin ekibine tek bir soru getirdi: "Bir parça bozulduğunda sistemimiz ne yapıyor? Bunu bilerek mi seçtik, yoksa kendiliğinden mi oldu?"
Tek fikir
Her bileşen bir gün bozulur; asıl soru, bozulduğunda sistemin hangi duruma düştüğüdür. Güvenli başarısızlık, bir güvenlik kontrolü çalışamadığında sistemin kapıyı açık bırakmak yerine bilinen ve güvenli bir duruma geçmesidir. Bu durum bilerek seçilir; can güvenliği söz konusuysa güvenli durum, kapının açık kalması da olabilir.
Nasıl çalışır
Önceki derste saldırı yüzeyini küçülttük ve geriye yalnız gerekli bileşenler kaldı. Bu ders o bileşenlerin bozulduğu ana bakıyor.
İki seçenek arasındaki gerilim gerçektir. Açık başarısızlık hizmeti ayakta tutar; güvenli başarısızlık korumayı ayakta tutar. Hangisinin doğru olduğu, neyin korunduğuna ve bozulmanın bedelinin kime düştüğüne bağlıdır. Bu yüzden ilkenin özü, hangi durumun seçildiğinden çok, seçimin bilerek ve önceden yapılmasıdır.
Bu fikrin kurumsal ifadesi, bu modülde kullandığımız güvenlik önlemleri kataloğunun sistem ve iletişim koruma ailesindedir.
NIST'in tanımındaki iki ayrıntı önemlidir. Birincisi, durum "bilinen" bir durumdur; yani önceden tasarlanmış, test edilmiş ve belgelenmiştir. Kendiliğinden ortaya çıkan bir durum değildir. İkincisi, güvenli durum her zaman "her şey kilitli" değildir: önlemin açıklaması kişilerin yaralanmasını önlemekten de söz eder. Bir binada yangın çıktığında kapıların kilitli kalması güvenli değildir; orada güvenli durum, insanların çıkabilmesidir.
Aynı katalogun acil durum planlaması ailesinde bunun bir uzantısı da vardır.
Selin'in dolandırıcılık kontrolü için güvenli kip şöyle görünebilirdi: hizmet cevap vermezse düşük tutarlı siparişler geçer ama işaretlenir, yüksek tutarlı siparişler ise elle incelenmek üzere bekletilir. Ne her şey açık, ne her şey kapalı.
Başarısızlığın bir başka yüzü de, bozulduğunda kullanıcıya ne gösterildiğidir.
Sahada
Savunma
Güvenli başarısızlık, savunmanın en kötü anını önceden tasarlamaktır. Bir kontrol en çok, bozulduğu anda kanıtlanır.
Önce her güvenlik kontrolü için sor: bu bozulursa ne olur? Kimlik doğrulama hizmeti cevap vermezse kullanıcılar içeri mi girer, dışarıda mı kalır? Güvenlik duvarı yeniden başlarken trafik geçer mi? Lisans sunucusuna ulaşılamazsa güvenlik yazılımı kapanır mı? Selin'in ekibi bu soruyu sorana kadar cevabı bilmiyordu.
Sonra cevabı bilerek seç ve yaz. Açık başarısızlık bazen kabul edilebilir bir karardır, ama bir karar olmalıdır; gerekçesi, kabul eden kişi ve süresi yazılır. Modül 12'deki artık risk kabulü, burada da geçerlidir.
Sonra ara yolları düşün. Güvenli kip, her şeyi açmak ile her şeyi kapatmak arasındaki seçenekleri açar: yüksek riskli işlemleri durdurup düşük riskli olanları işaretleyerek sürdürmek gibi. Kaan'ın yedek cihazı da bir ara yoldur: güvenli başarısızlığın bedelini, yani kesintiyi, kısaltır.
Can güvenliğini ayır. Fiziksel sistemlerde, kişilerin yaralanabileceği yerlerde güvenli durum kapıların açılmasıdır; değerli varlıkların korunduğu yerlerde kilitli kalmasıdır. Bora'nın iki kapısı, aynı binada iki farklı doğru cevaptı.
Hata mesajlarını da başarısızlığın parçası say. Bozulan bir uygulama kullanıcıya iç yapısını göstermemeli, genel bir mesaj verip ayrıntıyı kendi kaydına yazmalıdır.
Tespit tarafında başarısızlık sessiz olmamalıdır. Selin'in eski kodunda kontrol hizmeti yarım saat sustu ve kimse bilmedi. Bir güvenlik kontrolünün çalışmadığı her an, bir uyarı üretmelidir.
Son olarak test et. Bilinen durum, ancak denendiyse bilinir: kontrol hizmetini bilerek kapatıp sistemin ne yaptığına bakmak, güvenli başarısızlığın tek kanıtıdır.
Uygulama
Kendi hayatındaki güvenlik kontrollerinin bozulduğunda ne yaptığını bulacak ve bilinçli bir seçim yapacaksın.
Bitirdiğinde, her kontrolün yanına "bozulursa: kapalı kalır" ya da "bozulursa: açılır, çünkü..." diye tek bir cümle yaz.
Defter: Üç güvenlik kontrolü, her birinin bozulma biçimi, bozulduğundaki davranış, yapılan bilinçli seçim ve gerekçesi; açık kalmayı kabul ettiğin yerler için kısa bir artık risk notu.
Hata köşesi
Yaygın yanlış"Kontrol bozulursa müşteriyi bekletmeyelim, işlem geçsin."
Bu bir açık başarısızlık kararıdır ve bazen kabul edilebilir; ama bilerek verilmelidir. Selin'in şirketindeki satır, yıllar önce bir not eşliğinde yazılmış ve kimse onun bir güvenlik kararı olduğunu fark etmemişti. NIST'in SC-24 önlemi sistemin bilinen bir duruma düşmesini ister; "bilinen" sözcüğü, kararın önceden tasarlanıp belgelenmesi demektir.
Yaygın yanlış"Güvenli başarısızlık her zaman her şeyi kilitlemek demektir."
NIST'in açıklaması bilinen güvenli durumun kişilerin yaralanmasını önlemeye yardım ettiğini de söyler. Bora'nın hastanesinde koridor kapıları elektrik kesildiğinde açılıyordu, çünkü orada güvenli durum insanların çıkabilmesiydi. Güvenli durum, korunan şeye göre seçilir.
Yaygın yanlış"Hata ayrıntısını kullanıcıya göstermek sorunu çözmeye yardım eder."
OWASP'ın hata işleme belgesi, hata mesajlarının uygulamanın iç yapısını açığa çıkarıp bir saldırganın keşfine yardım edebileceğini yazar. Ayrıntı sunucu kaydına gider; kullanıcıya genel bir mesaj ve gerekirse bir başvuru numarası verilir.
Etik ve sınırlar
Bir sistemin bozulduğunda ne yaptığını görmek için onu bilerek bozmak, yalnız sahibinin izniyle, belirlenmiş bir test ortamında ya da planlanmış bir bakım penceresinde yapılır; canlı bir hizmette izinsiz bir kesinti yaratmak, kullanıcılara gerçek zarar verir ve yasal sorumluluk doğurur. Fiziksel güvenlikte can güvenliği her zaman önce gelir: bir kapıyı daha güvenli olsun diye yangın sırasında kilitli kalacak biçimde ayarlamak, yangın yönetmeliklerine de aykırı olabilir ve kimseye bırakılmayacak bir karardır. Açık başarısızlığı seçen kişi, bunun bedelini kimin ödeyeceğini de düşünür: Selin'in eski kodunda kontrolsüz geçen siparişlerin bedelini, kartı kötüye kullanılan kişiler ödemişti. Güvenli kipte bekletilen müşterilere de dürüst davranılır; neden beklediklerini ve ne zaman sonuç alacaklarını öğrenme hakları vardır.
Kapanış
- Her bileşen bir gün bozulur; güvenli başarısızlık, bir güvenlik kontrolü çalışamadığında sistemin kapıyı açık bırakmak yerine bilinen ve güvenli bir duruma geçmesidir.
- Açık ya da kapalı başarısızlık bilerek seçilir ve yazılır; güvenli kip ara yollar açar, can güvenliğinin söz konusu olduğu yerde güvenli durum kapının açılmasıdır.
- Başarısızlık sessiz olmamalı ve kullanıcıya iç yapıyı göstermemelidir; bilinen durum ancak test edildiyse bilinir.
Üç soru
- Selin'in şirketindeki kontrol kodu satırının sorunu neydi, yazan kişi kötü bir şey yapmadığı hâlde?
- Kaan güvenlik duvarının arıza ayarını değiştirirken depo işinin durmaması için ne yaptı?
- Bora'nın hastanesindeki iki kapının farklı davranması neden bir çelişki değildi?
Yanıtlar
- Satır, dolandırıcılık hizmeti cevap vermezse siparişi onaylıyordu; bu bir açık başarısızlık kararıydı ama kimse onu bir güvenlik kararı olarak görmemiş, belgelememişti. Hizmet yarım saat sustuğunda yüzlerce sipariş kontrolsüz geçti. Sorun açık başarısızlığın kendisinden çok, bunun bilinmeden ve gerekçesiz seçilmiş olmasıydı.
- Güvenlik duvarının arızada trafiği denetimsiz geçirmesi yerine durdurmasını seçti, ama bu kararın bedeli olan kesintiyi kısaltmak için rafta yedek bir cihaz ve on beş dakikalık bir değiştirme talimatı hazırladı. Güvenli başarısızlık korumayı ayakta tuttu, yedek cihaz da erişilebilirliği.
- Güvenli durum, korunan şeye göre seçilir. Koridor ve merdiven kapılarında korunan şey insanların hayatıydı, bu yüzden güvenli durum açılmaktı; ilaç deposunda korunan şey ilaçlardı, bu yüzden güvenli durum kilitli kalmaktı. İki karar da bilerek verilmişti; eksik olan yalnız belgeleriydi.
Sonraki derse köprü
Depoda geçen haftalardan geriye bir ilke kalmıştı: ağın içinde olmak, bir terminalin her şeye erişebileceği anlamına gelmiyordu. Sıfır güven dersi bu ilkeyi bütün kuruma genişletiyor: ağ konumuna güvenmeden, her isteği kimlik ve bağlamla doğrulamak.
Anlamadığın bir yer mi var?
Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.