İçeriğe atla
0 XP 0
13 dkderinleşmeyle 15 dk55 XP7 etkinlik

STRIDE ile tehdit modelleme

Bu derste
  • Tehdit modellemenin dört sorusunu, STRIDE'ın altı kategorisini, tehdit kaydı tutmayı ve riski önceliklendirmeyi iade servisi üstünde öğrenirsin.
  • STRIDE, tehdit aramayı altı sabit soru kalıbıyla sistematik hale getirir.
  • Bu derste AltayKargo'nun yeni iade servisini STRIDE ile tarayacaksın.

Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

Bir güvenlik açığını üretimde bulmak, tasarım masasında bulmaktan çok daha pahalıdır. Kodu yazmadan önce burada ne ters gidebilir diye sormak, sonradan yama yazmaktan ucuzdur ve daha az hasar bırakır. Bu sorgulama işine tehdit modelleme denir.

Tehdit modelleme bir sistemin parçalarını, aralarındaki veri akışını ve her akışta kimin neye güvendiğini çıkarır, sonra her parçaya aynı soruyu sorar: burada saldırgan ne yapabilir. Rastgele sormak yeterli değildir, çünkü unutulan bir tehdit akılda kalan tehditten daha pahalıya patlar.

Microsoft'un geliştirdiği STRIDE, bu soruyu altı sabit kalıba böler ve taramanı eksiksiz tutar. Bu derste AltayKargo'nun yeni iade servisini örnek alacaksın. Servis, müşterinin hasar bildirimi girdiği, fotoğraf yüklediği ve iade durumunu sorguladığı basit bir web uygulamasıdır. Modülün geri kalanında da aynı örnekle çalışacaksın.

Dört soru ve STRIDE'ın yeri

Tehdit modellemenin dört soruluk bir iskeleti vardır. 2020'de yayımlanan Tehdit Modelleme Manifestosu (Threat Modeling Manifesto) bu soruları şöyle sıralar: Ne üzerinde çalışıyoruz? Ne ters gidebilir? Bu konuda ne yapacağız?

Yeterince iyi iş çıkardık mı? İlk soru sistemi çizdirir; bir sonraki derste göreceğin veri akış şeması bu sorunun cevabıdır. İkinci soru tehditleri bulur ve STRIDE tam burada devreye girer. Üçüncü soru her tehdide bir karar bağlar.

Dördüncü soru işi denetler: model gerçek sistemle uyuşuyor mu, kararlar uygulandı mı? STRIDE tek başına bir yöntem değildir, ikinci sorunun aracıdır. Bu ayrımı bilmezsen altı harfi saymakla işi bitirdiğini sanırsın.

Manifesto bazı kötü alışkanlıkları da adlandırır. Bunlardan biri kahraman modelcidir (Hero Threat Modeler): ekip modeli güvenlik bilgisi en yüksek tek kişiye bırakır. AltayKargo'da iade servisinin modelini yalnız ekibin güvenlik uzmanının çizdiğini düşün. Uzman fotoğraf yükleme akışını bilir.

Ödeme sağlayıcısının geri çağırdığı adresi (webhook) ise hiç görmemiştir. O akışı yazan geliştirici toplantıda yoktur ve en riskli akış modele hiç girmez. Manifesto bunun tersini söyler: tehdit modelleme doğuştan gelen bir yetenek istemez, herkes yapabilir ve yapmalıdır. İyi bir oturumda geliştirici, ürün sahibi ve test uzmanı aynı masada oturur.

Varlıkne korunuyorTehditkim, nasılZafiyetzayıflıkOlasılık × etkirisk puanıRisk işlemeazalt, devret, kabul
STRIDE, bu akışın tehdit adımını doldurur. Tehdidi bulduktan sonra olasılık ve etki tahmin edilir, en sonda risk işlenir.

Şema STRIDE'ın nereye oturduğunu gösterir. Varlığı ve zafiyeti belirledikten sonra STRIDE'la tehdidi çıkarırsın. Ardından her tehdidin olasılığını ve etkisini kabaca tahmin edersin; sık ve ağır olan tehdit önce kapatılır.

Son adımda risk işlenir: azaltılır, devredilir ya da bilerek kabul edilir. STRIDE tek başına bir öncelik sırası vermez, yalnız listeyi eksiksiz çıkarır. Nadir ama ağır bir tehdit, sık ama hafif bir tehditten önce ele alınabilir; karar bu iki eksenin çarpımına bakar.

Etkinlik 1 / 7

Tehdit modellemenin dört sorusunu doğru sıraya koy.

Sürükleyip doğru sıraya koy.

Bir öğeye odaklan, yukarı ve aşağı ok tuşlarıyla taşı. Home tuşu en üste, End tuşu en alta alır.

  • 1Ne ters gidebilir?
  • 2Yeterince iyi iş çıkardık mı?
  • 3Bu konuda ne yapacağız?
  • 4Ne üzerinde çalışıyoruz?

Altı kategori, altı güvence

STRIDE'ın her harfi ayrı bir tehdit türüne karşılık gelir. Kimlik sahteciliği (Spoofing), birinin başkası gibi davranmasıdır: çalınan bir oturum çereziyle başka müşteri gibi giriş yapmak buna girer. Değiştirme (Tampering), veri ya da mesajın yetkisiz değiştirilmesidir.

İnkâr (Repudiation), bir işlemi kimin yaptığının sonradan kanıtlanamamasıdır. Bilgi ifşası (Information disclosure), yetkisi olmayanın veriyi görmesidir. Hizmet reddi (Denial of service), sistemin meşru kullanıcıya yanıt veremez hale gelmesidir.

Yetki yükseltme (Elevation of privilege), bir hesabın tasarlanan yetkisinin üstüne çıkmasıdır. Altı kategori de birbirinden bağımsız sorulur; bir özellik aynı anda birden fazla kategoriye açık olabilir. Bu altı kategori CIA üçlüsünü de genişletir: gizlilik, bütünlük ve erişilebilirliğin yanına kimlik doğrulama, hesap verebilirlik ve yetkilendirmeyi ekler.

Derinleş:STRIDE nereden geldi

STRIDE, 1999'da Microsoft'ta Loren Kohnfelder ile Praerit Garg'ın ürün ekipleri için yazdığı bir iç notla doğdu. Notun amacı, geliştiricilerin ürüne yönelik tehditleri ezberden değil, bir kontrol listesiyle düşünmesiydi. Altı harf, altı tehdit türünün İngilizce adlarının baş harfleridir.

İlk yıllarda yöntem bileşen başına uygulandı. Sonra Microsoft, veri akış şemasının her öğesine yalnız ilgili kategorileri soran STRIDE-öğe başına (STRIDE-per-element) yaklaşımını geliştirdi; bir sonraki derste bu tabloyu kullanacaksın. 2004'te Güvenli Geliştirme Yaşam Döngüsü şirket içinde zorunlu politika oldu ve tehdit modelleme onun tasarım adımına yerleşti.

Adam Shostack'ın Elevation of Privilege adlı kart oyunu da STRIDE kategorilerini bir desteye çevirdi. Amaç, güvenlik uzmanı olmayan geliştiricileri oturuma oyunla katmaktı. Bugün Microsoft Threat Modeling Tool STRIDE'ı temel alır, OWASP Threat Dragon da onu seçilebilir kategori setlerinden biri olarak sunar.

Her kategori belirli bir güvencenin kırılmasıdır. Kimlik sahteciliği kimlik doğrulamayı (authentication), değiştirme bütünlüğü, inkâr hesap verebilirliği kırar. Bilgi ifşası gizliliği, hizmet reddi erişilebilirliği, yetki yükseltme ise yetkilendirmeyi (authorization) kırar.

Aşağıdaki tablo her harfe iade servisinden bir tehdit ve bir CWE numarası ekler. CWE (Common Weakness Enumeration), MITRE'nin tuttuğu zayıflık kataloğudur. Bulguya CWE numarası eklemek üç işe yarar.

Geliştirici aynı zayıflığın düzeltme rehberine hızla ulaşır. Tarama araçlarının bulgularıyla eşleştirme kolaylaşır. Ekip de hangi zayıflık ailesinin tekrar ettiğini sayabilir.

Harf  Kırılan güvence     İade servisinden tehdit                             CWE
----  ------------------  --------------------------------------------------  -------
S     Kimlik doğrulama    Kimlik, formdaki e-posta alanından alınıyor         CWE-287
T     Bütünlük            İade tutarı istekte değiştirilebiliyor              CWE-345
R     Hesap verebilirlik  Onayı kimin verdiği kaydedilmiyor                   CWE-778
I     Gizlilik            Durum sayfası başka müşterinin adresini gösteriyor  CWE-200
D     Erişilebilirlik     Sınırsız boyuttaki fotoğraflar diski dolduruyor     CWE-770
E     Yetkilendirme       Müşteri hesabı onay uç noktasını çağırabiliyor      CWE-269
STRIDE harfleri, kırdıkları güvence ve iade servisinden birer tehdit. CWE numarası bulguyu ortak bir zayıflık diline bağlar.

Tabloyu satır satır oku. S satırında sistem, karşısındakinin kim olduğunu kanıt istemeden kabul eder; CWE-287 bu yetersiz kimlik doğrulamayı anlatır. T satırındaki CWE-345, verinin kaynağının ve doğruluğunun denetlenmemesidir.

Tutar istemciden geldiği sürece bu açık kalır. R satırı CWE-778'e, yani yetersiz günlük kaydına bağlanır. I satırı CWE-200'e, bilginin yetkisiz birine açılmasına denk gelir.

D satırı CWE-770'tir: kaynak sınırsız ayrılır. Hız ve boyut sınırı olmayan her yükleme alanı bu satıra adaydır. E satırı CWE-269, yani hatalı yetki yönetimidir.

Etkinlik 2 / 7

Her senaryoyu doğru STRIDE kategorisine yerleştir.

Ö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.

Sınıflandırmada tek kural işine yarar: senaryonun hangi güvenceyi kırdığına bak, saldırganın aracına değil. Bir tehdit bazen iki kategoriye birden dokunur. Hız sınırı olmayan bir giriş formunda parola denemesi tutarsa kimlik sahteciliği olur.

Denemeler servisi yavaşlatırsa hizmet reddi olur. Böyle bir durumda kayda iki ayrı satır yazarsın. CWE eşlemesinde de aynı yoldan gidersin: kırılan güvenceden başlar, en dar zayıflık tanımını seçersin.

Etkinlik 3 / 7

Her iade servisi tehdidini ilgili CWE kaydıyla eşleştir.

Soldan bir tane seç, sağdan eşini seç. Kullanılmış bir seçeneği yeniden seçersen yeni öğeye taşınır.

Tehdit kaydı: bulgudan karara

Bulunan tehdit bir yere yazılmazsa kaybolur. Tehdit kaydı (threat register), her tehdidi bir satırda tutan basit bir tablodur. Sütunlar sabittir: kimlik, bileşen, STRIDE harfi, tehdit cümlesi, önlem ve karar.

Karar sütunu dört seçenekten birini alır. Azaltmak (mitigate), olasılığı düşüren bir önlem koymaktır. Kaldırmak (eliminate), tehdidi doğuran özelliği hiç sunmamaktır.

Devretmek (transfer), sorumluluğu müşteri ya da bir hizmet sağlayıcı gibi başka bir tarafa aktarmaktır. Kabul etmek (accept), öteki üç seçenek iş koşullarına uymadığında riski bilerek taşımaktır. OWASP'ın tehdit modelleme rehberi bu dört yanıtı aynı adlarla sayar.

T-01  İade formu      S  Kimlik, formdaki e-posta alanından alınıyor
      önlem: kimlik oturumdan okunur, form alanı yok sayılır
      karar: AZALT
T-02  Tutar alanı     T  İade tutarı istekte değiştirilebiliyor
      önlem: tutar sunucuda sipariş kaydından hesaplanır
      karar: AZALT
T-03  Onay işlemi     R  Onayı kimin verdiği kaydedilmiyor
      önlem: onay olayı hesap, zaman ve sonuçla günlüğe yazılır
      karar: AZALT
T-04  Paylaşım linki  I  Tahmin edilebilir link başka iadeyi açıyor
      önlem: özellik bu sürümde sunulmuyor
      karar: KALDIR
T-05  Kart iadesi     I  Kart verisi iade servisinden geçiyor
      önlem: geri ödemeyi ödeme sağlayıcısı yapar, sözleşmede yazılı
      karar: DEVRET
T-06  Durum sorgusu   D  Yoğun saatte önbelleksiz sorgu yavaşlıyor
      önlem: izleniyor, hız sınırı sonraki sürümde
      karar: KABUL ET (onaylayan: ürün sahibi, yeniden bakış: 30 gün)
İade servisinin tehdit kaydından altı satır. Her karar türü en az bir kez geçiyor.

Şimdi kararlara bak. İlk üç satır en sık görülen kararı taşır: özellik kalır, önlem eklenir. T-02'deki önlem özellikle öğreticidir.

Tutar istemciden hiç alınmaz, sunucu onu sipariş kaydından hesaplar ve değiştirilecek bir alan kalmaz. T-03 inkâr tehdidini kapatır ve günlükte tutulacak alanları da söyler. T-04'te ekip paylaşım linkini bu sürümden çıkarır; tehdit, özellikle birlikte ortadan kalkar.

T-05'te kart verisi iade servisine hiç gelmez ve sorumluluk sözleşmeyle ödeme sağlayıcısına geçer. T-06 bilerek kabul edilen bir risktir. Satırda onaylayan kişi ve yeniden bakış tarihi durur, çünkü tarihi olmayan kabul unutulmuş bir açıktır.

Etkinlik 4 / 7

Her STRIDE kategorisini en uygun önlemle eşleştir.

Soldan bir tane seç, sağdan eşini seç. Kullanılmış bir seçeneği yeniden seçersen yeni öğeye taşınır.

İnkâr satırının neden önemli olduğunu küçük bir örnekle gör. Kurye paketi teslim ettiğini söyler, müşteri almadığını söyler. İki taraf da iddiasından dönmez.

Sistemde teslim kaydı, zaman damgası ve işlemi yapan hesap yoksa kimin haklı olduğunu kanıtlayamazsın. İyi bir denetim kaydı en az dört şeyi tutar: kim, ne zaman, neyi, hangi sonuçla yaptı. Kayıt, işlemi yapan kişinin silemeyeceği ayrı bir yerde durur; yoksa kaydın kendisi de değiştirilebilir.

Etkinlik 5 / 7

AltayKargo iade servisinde olay kaydı tutulmuyor ve kurye 'bu paketi hiç almadım' diyor. Bu hangi STRIDE kategorisine girer?

Önceliklendirme, yöntem seçimi ve güncelleme

STRIDE listeyi eksiksiz çıkarır ama sıraya koymaz. Sıralama için olasılığı ve etkiyi ayrı ayrı tahmin edersin. OWASP Risk Derecelendirme Yöntemi (Risk Rating Methodology) bu tahmini etkenlere böler.

Olasılık tarafında saldırgana dair dört etken vardır: beceri, motivasyon, fırsat ve saldırgan kitlesinin büyüklüğü. Zafiyete dair dört etken daha gelir: bulunma kolaylığı, sömürü kolaylığı, bilinirlik ve tespit edilme durumu. Etki tarafında teknik etkenler gizlilik, bütünlük, erişilebilirlik ve hesap verebilirlik kaybıdır.

İş etkenleri mali zarar, itibar, mevzuata aykırılık ve mahremiyet ihlalidir. Her etkene 0 ile 9 arası puan verir, ortalamayı alırsın. 3'ün altı düşük, 3 ile 6'nın altı orta, 6 ve üstü yüksek banttır. İki bant aşağıdaki tabloda kesişir.

                  Etki DÜŞÜK   Etki ORTA   Etki YÜKSEK
Olasılık YÜKSEK   Orta         Yüksek      Kritik
Olasılık ORTA     Düşük        Orta        Yüksek
Olasılık DÜŞÜK    Not          Düşük       Orta
OWASP Risk Derecelendirme Yönteminin genel önem tablosu. Satır olasılık bandını, sütun etki bandını verir.

Tasarım aşamasında CVSS'e uzanmak caziptir ama sınırlıdır. CVSS (Common Vulnerability Scoring System) var olan, somut bir zafiyetin teknik ağırlığını ölçer. Tasarım masasında henüz kod yoktur ve saldırı yolu çoğu zaman tahmindir.

CVSS iş etkisini de ölçmez; sahte iadeyle kaybedilen para puana girmez. Başka yöntemler de vardır ve her biri farklı bir soruya odaklanır. DREAD beş etkene puan verir, ama puanlar kişiden kişiye çok değiştiği için öznel bulunur.

PASTA iş hedefinden başlayan, saldırı benzetimiyle ilerleyen yedi aşamalı ve risk odaklı bir süreçtir. LINDDUN kişisel veri işleyen sistemlerde mahremiyet tehditlerine bakar. MITRE ATT&CK gerçek saldırgan tekniklerini listeler ve bulduğun tehdidi somut bir saldırı adımına bağlar.

Derinleş:PASTA ve LINDDUN'a yakından bakış

PASTA (Process for Attack Simulation and Threat Analysis), riski iş hedefinden başlatır. Yedi aşaması şöyledir: hedefleri tanımla, teknik kapsamı çıkar, uygulamayı ayrıştır, tehditleri analiz et, zafiyetleri ve zayıflıkları analiz et, saldırıları modelle, risk ve etkiyi analiz et.

STRIDE bir bileşene ne ters gidebilir diye sorarken PASTA, hangi saldırının hangi iş hedefini tehdit ettiğini sorar. Bu yüzden daha ağırdır ve çoğunlukla kritik sistemlerde seçilir. LINDDUN ise Belçika'daki KU Leuven üniversitesinin DistriNet araştırma biriminden çıktı ve mahremiyete odaklanır. Kategorileri bağlama (Linking), kimliklendirme (Identifying), inkâr edilemezlik (Non-repudiation), sezilme (Detecting), veri ifşası (Data disclosure), habersizlik (Unawareness) ve mevzuata aykırılıktır (Non-compliance).

İlginç bir ayrıntı var. STRIDE'da inkâr bir tehdittir, LINDDUN'da ise inkâr edilemezlik bir tehdittir. Gizli bir ihbar sisteminde kullanıcının bir eylemi yaptığının kesin kanıtlanabilmesi, o kullanıcıya zarar verebilir.

Model tek seferlik bir belge değildir; OWASP rehberi onun sistemle birlikte bakımını ve güncellenmesini ister. Pratikte dört değişiklik yeni bir oturum gerektirir: yeni bir güven sınırı, yeni bir kişisel veri türü, yeni bir dış entegrasyon ve yetki modelinde değişiklik. Çevik bir ekipte bu, her epiğin başında otuz dakikalık bir oturum demektir.

Ekip iade servisine SMS bildirimi ekleyecekse SMS sağlayıcısı şemaya yeni dış varlık olarak girer. Telefon numarası da yeni kişisel veri olarak kayda geçer.

Araçlar işi hızlandırır. OWASP Threat Dragon'da şemayı çizer, her öğeye STRIDE ya da LINDDUN kategorisiyle tehdit eklersin. OWASP pytm ise modeli Python koduyla yazdırır; bir sonraki derste onu kullanacaksın.

Etkinlik 6 / 7

OWASP Risk Derecelendirme Yöntemine göre T-02 satırının genel önemi nedir?

Önce kodu oku, sonra çıktıyı seç.

T-02  İade tutarı istekte değiştirilebiliyor

Olasılık etkenleri (0-9)
  beceri 3    motivasyon 9   fırsat 7       kitle 9
  bulunma 7   sömürü 5       bilinirlik 6   tespit 8
  ortalama = 54 / 8 = 6,75

Etki, iş etkenleri (0-9)
  mali zarar 7   itibar 4   mevzuat 2   mahremiyet 0
  ortalama = 13 / 4 = 3,25

STRIDE kargo uygulamasına özgü değildir; aynı altı soru her sistemde geçerlidir. Bir e-ticaret sitesinde de, bir bankacılık uygulamasında da aynı kalıp işler, çünkü kategoriler teknolojiden değil, kırılan güvenceden türer. Olgun yazılım ekiplerinde bu disiplin zorunlu bir adımdır. Microsoft'un Güvenli Geliştirme Yaşam Döngüsü (SDL), tasarım aşamasında tehdit modeli ve veri akış şeması ister.

OWASP Top 10:2025'teki A06 Güvensiz Tasarım (Insecure Design) kategorisi de tehdit modellemeyi önerir. Aynı kategori, kusursuz bir kodlamanın güvensiz bir tasarımı düzeltemeyeceğini vurgular. Güvenli yazılım sertifikası CSSLP'de mimari ve tasarım alanı sınavın yüzde 15'idir. Bu alanın tehdit modelleme maddesi STRIDE ile PASTA'yı adıyla sayar.

Etkinlik 7 / 7

Doğru mu, yanlış mı?

Bir e-ticaret sitesinde normal müşteri hesabının, URL'deki rol parametresini değiştirerek yönetici paneline erişmesi yetki yükseltme örneğidir.

Bu derste bir hata mı gördün? Bildir