İçeriğe geç

13.2 · Seviye 2 · Güvenlik Düşüncesi

Veri akış diyagramı

süreç, veri deposu, dış varlık ve akış; doğru ayrıntı düzeyi

Siber Güvenlik Akademisi — M13, Tehdit Modelleme · 1.869 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ış

Hediye listesi yayına girmeden bir hafta önce ekibe yeni bir geliştirici katıldı. Selin ona, yarım saatlik toplantıda tahtaya çizdikleri resmin fotoğrafını gösterdi: birkaç kutu, birkaç ok, köşede "adres gösterilmeyecek" notu.

Yeni geliştirici fotoğrafa uzun uzun baktı. "Bu ok ne taşıyor?" diye sordu, sipariş sistemine giden çizgiyi göstererek. Selin hatırlamaya çalıştı: ödeme bilgisi miydi, yalnız ürün numarası mıydı? Fotoğrafta yazmıyordu. "Peki bu kutu, liste veritabanı mı, yoksa liste sayfası mı?" Bir kutunun içinde yalnız "liste" yazıyordu. İkisi de olabilirdi.

Bir şey daha vardı. Liste sahibinin adresinde bir değişiklik olunca ona bir uyarı e-postası gönderilecekti; o e-postayı şirketin kendi sunucusu değil, dışarıdan kiralanan bir bildirim hizmeti gönderiyordu. Fotoğrafta bu hizmet hiç yoktu. Liste sahibinin adı ve e-posta adresi şirketin dışına çıkıyordu, ama çizim bunu göstermiyordu.

Toplantıdaki herkes resmi anlamıştı, çünkü o gün oradaydı. Bir hafta sonra gelen biri için aynı resim bir bilmeceydi. Selin o akşam çizimi baştan, bu kez kurallarıyla yaptı.

Tek fikir

Veri akış diyagramı, bir sistemi dört işaretle çizer: dış varlıklar, süreçler, veri depoları ve aralarındaki akışlar. Her okun ne taşıdığı yazılırsa, çizim toplantıda bulunmayan birine de aynı şeyi anlatır ve tehditlerin aranacağı yerleri görünür kılar.

Nasıl çalışır

Önceki derste dört sorudan ilkini, ne üzerinde çalıştığımızı, kaba bir çizimle cevapladık. Bu ders o çizime bir dil veriyor.

Tehdit modellemede neden bu diyagramın kullanıldığını, uygulama güvenliği topluluğunun başvuru belgelerinden biri açıklar.

Diyagramın dört temel işareti vardır. Hangi şeklin neyi gösterdiği, tehdit modelleme araçlarında da yerleşmiş bir alışkanlıktır.

Bu dört işareti tek tek açalım.

Süreç, veriyi alıp bir şey yapan ve sonucu bir yere ileten parçadır: bir web sunucusu, bir uygulama, bir arka plan görevi. Daireyle ya da köşeleri yuvarlatılmış kutuyla çizilir. Her sürecin en az bir girişi ve bir çıkışı olur; hiçbir şey almayan ya da hiçbir şey vermeyen bir süreç, çizimde bir eksik olduğunu gösterir.

Akış, bu parçalar arasında hareket eden veridir ve bir okla çizilir. Okun üzerine ne taşıdığı yazılır: "ürün numarası ve ödeme onayı", "liste sahibinin adı ve e-posta adresi". Okun adı yazılmazsa, çizimin en önemli bilgisi eksik kalır; Selin'in fotoğrafındaki soru tam olarak buydu.

Bu dört işaretin birkaç basit kuralı vardır. İki dış varlık arasında doğrudan ok çizilmez; aralarında sistem yoksa, o akış sistemin konusu değildir. Bir dış varlık bir veri deposuna doğrudan yazamaz; arada mutlaka bir süreç vardır. Ve iki veri deposu arasında da doğrudan ok olmaz; veriyi birinden alıp ötekine taşıyan bir süreç çizilir.

Son soru ayrıntı düzeyidir. Çok kaba bir çizim, Selin'in fotoğrafı gibi, önemli bir akışı saklayabilir. Çok ayrıntılı bir çizim ise her fonksiyonu bir daireye çevirir ve kimse onu okumaz. OWASP'ın önerdiği gibi, önce bütün sistemi tek sayfada gösteren bir genel bakış çizilir; sonra, en hassas veriye dokunan bileşenler için ayrıca daha ayrıntılı çizimler yapılır. Uygulamada işe yarayan bir ölçü şudur: bir kutunun içinde, farklı kişilerin denetiminde olan ya da farklı hassaslıkta veri işleyen iki şey varsa, o kutu ikiye bölünmelidir.

Sahada

Savunma

Veri akış diyagramı kendi başına bir önlem değildir; önlemlerin nereye konacağını gösteren bir haritadır. Savunmaya üç katkısı vardır.

Birincisi, görünmeyen akışları görünür kılar. Selin'in fotoğrafında bildirim hizmeti yoktu; Bora'nın tedarikçi çiziminde dışarı çıkan akış bir kutunun içinde saklıydı. Kişisel verinin kurumdan çıktığı her yer, bir okla görünür olmalıdır, çünkü korunması gereken yer orasıdır.

İkincisi, ortak bir dil kurar. Dört işaret ve adlandırılmış oklar, toplantıda bulunmayan birine de aynı şeyi anlatır. Yeni bir geliştirici, bir denetçi ya da bir yıl sonra sistemi devralan biri, çizimi okuyarak aynı soruları sorabilir.

Üçüncüsü, tehditlerin aranacağı yerleri sıralar. Her dış varlık, kimliğin doğrulanması gereken bir kaynaktır. Her akış, yolda okunabilecek ya da değiştirilebilecek bir veridir. Her veri deposu, yetkisiz okunabilecek ya da silinebilecek bir birikimdir. Her süreç, beklenmedik girdiyle karşılaşabilecek bir parçadır. Sonraki derslerde bu öğeleri tek tek sistematik sorularla tarayacağız; diyagram, taramanın kontrol listesidir.

Tespit açısından da işe yarar: çizimde olmayan bir akış ağda görülürse, örneğin bir sunucunun çizimde hiç bulunmayan bir adrese veri göndermesi, bu bir sorunun ilk işareti olabilir. Bunun için diyagramın güncel tutulması gerekir; sistem değiştiğinde çizim de değişir.

Uygulama

Önceki derste kaba bir çizimle başladığın sistemin veri akış diyagramını, dört işaretle ve adlandırılmış oklarla yeniden çizeceksin.

Çizimi bitirdiğinde, önceki dersteki kaygı listene dön. Çizimin, listede olmayan yeni bir kaygı gösterip göstermediğine bak; çoğu zaman gösterir.

Defter: Tehdit modelleme bölümüne dört işaretli veri akış diyagramı, her okun adı, üç kural kontrolünün sonucu ve eklenen süreçler. Denetimin dışına çıkan okların listesi ve çizimin gösterdiği yeni kaygılar.

Hata köşesi

Yaygın yanlış"Okların ne taşıdığını yazmaya gerek yok, herkes biliyor."
Doğrusu

Toplantıda bulunanlar bilir; bir hafta sonra gelen bilmez. Selin'in yeni geliştiricisinin ilk sorusu, sipariş sistemine giden okun ne taşıdığıydı ve fotoğraf cevap vermiyordu. Adı yazılmamış bir ok, çizimin en önemli bilgisini saklar.

Yaygın yanlış"Ne kadar ayrıntılı, o kadar iyi."
Doğrusu

Kaan'ın şirketindeki altmış kutuluk çizimi kimse okuyamadı. OWASP üst düzey bir genel bakışın yanında yalnız gereken bileşenler için daha ayrıntılı çizimler önerir. Bir çizim, üzerinde konuşulabildiği kadar işe yarar.

Yaygın yanlış"Dış hizmetler bizim sistemimiz değil, çizime girmez."
Doğrusu

Tam tersine, dış varlıklar çizimin en önemli parçalarındandır, çünkü veri orada denetimden çıkar. Selin'in ilk fotoğrafında bildirim hizmeti yoktu ve liste sahibinin e-posta adresinin şirketin dışına çıktığı görünmüyordu. Verinin gittiği her yer çizilir.

Etik ve sınırlar

Bir veri akış diyagramı, bir sistemin içini ve verinin nereden geçtiğini gösterir; bu yüzden kendi sistemin ya da çizmen için sana yetki ve izin verilmiş bir sistem için yapılır. Bora'nın tedarikçiden çizim istemesi meşruydu, çünkü hastane o sistemi satın alacak taraftı ve bunu bilmeye hakkı vardı; ama bir başka hastanenin sistemini aynı ayrıntıyla çıkarmaya çalışmak, izinsiz bir keşif olurdu. Çizimin kendisi de hassastır: kişisel verinin nerede saklandığını ve nereden geçtiğini tek sayfada gösterir; kimin açabileceği, o bilgiye gerçekten ihtiyacı olanlarla sınırlı kalmalıdır. Kişisel veri akışlarını dürüstçe çizmek de bir yükümlülüktür: bir akışı, örneğin yurt dışına giden bir bildirimi, rahatsız edici olduğu için çizimden çıkarmak, hem tehdit modelini hem de verisi işlenen kişilere karşı sorumluluğu boşa çıkarır.

Kapanış

  1. Veri akış diyagramı bir sistemi dört işaretle çizer: dış varlık kare, süreç daire, veri deposu iki paralel çizgi, akış ok; her okun üzerine ne taşıdığı yazılır.
  2. Basit kurallar eksikleri gösterir: iki dış varlık ya da iki depo arasında doğrudan ok olmaz, bir dış varlık bir depoya ancak bir süreç üzerinden yazar.
  3. Önce tek sayfalık bir genel bakış, sonra yalnız hassas bileşenler için ayrıntı çizilir; verinin denetimden çıktığı her yer görünür olmalıdır ve çizim sistem değiştikçe güncellenir.

Üç soru

  1. Selin'in toplantı fotoğrafı bir hafta sonra neden yeni geliştiriciye yetmedi?
  2. Kaan'ın şirketinde altmış kutuluk çizimin sorunu neydi ve Gülay Hanım nasıl çözdü?
  3. Bora tedarikçinin "entegrasyon modülü" kutusunu neden ikiye böldürdü?

Yanıtlar

  1. Oklar adlandırılmamıştı, kutuların ne olduğu belirsizdi ve bildirim hizmeti hiç çizilmemişti. Toplantıdakiler resmi o gün konuşulanlarla birlikte anlamıştı; yeni gelen için okların ne taşıdığı ve liste sahibinin e-posta adresinin şirket dışına çıktığı görünmüyordu.
  2. Her ekran ve fonksiyon ayrı bir daireydi, bu yüzden kimse çizimi okuyup üzerinde konuşamadı. Gülay Hanım beş öğe ve altı oktan oluşan tek sayfalık bir genel bakış istedi ve ayrıntılı çizimi yalnız stok miktarlarını değiştiren sunucu bileşeni için yaptırdı.
  3. Kutunun içinde iki parça vardı: biri hastanenin içindeki bir sunucuda, öteki tedarikçinin bulut hizmetinde çalışıyordu ve farklı kişilerin denetimindeydi. Kutu bölününce hasta bilgilerinin hastane dışına çıkan akışı kendi okuyla görünür oldu.

Sonraki derse köprü

Bora'nın kutusunu bölmesinin nedeni, iki parçanın farklı denetimlerde olmasıydı. Güven sınırı dersi bu çizgiyi diyagrama ekliyor: verinin bir yetki alanından ötekine geçtiği yeri işaretlemek ve en çok dikkatin neden tam o noktada toplandığını görmek.

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.