Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Threat Modeling Nedir? Dört Soru, Data Flow Diagram ve Trust Boundary ile Bookstore Checkout'unu Modellemek
Threat modeling, kod yazılmadan önce sistemin bir temsili üzerinde "ne ters gidebilir?" diye sormaktır ve en çok tasarım aşamasında işe yarar. Threat Modeling Manifesto'nun dört sorusu, DFD elemanları ve trust boundary'lerle Bookstore'un checkout, ödeme ve kargo akışını modelliyor, modeli OWASP Threat Dragon 2.6.2 ile JSON olarak repo'da versiyonluyor ve PR template'ine bağlıyoruz.
STRIDE ile Tehdit Bulmak ve Önceliklendirmek: Element Başına STRIDE, Attack Tree, Risk Puanlama ve Mitigation Kararı
STRIDE'ı DFD'nin her elemanına türüne göre uygulayıp tehditleri olasılık × etki ile sıralamak, her biri için mitigate, eliminate, transfer ya da accept kararı vermek ve kararı bir teste ya da risk register satırına bağlamak gerekir. Bookstore'un webhook'u ve kurumsal satın alma onayı üzerinde LINDDUN, attack tree, DREAD'in neden bırakıldığı ve dört göz kuralını doğrulayan xUnit testleri, gerçek çıktılarla.
Güvenlik Requirement'larını Yazmak: OWASP ASVS 5.0 ile Seviye Seçimi, Acceptance Criteria ve Security Champion
Güvenlik requirement'ı, hedeflenen ASVS seviyesinin yazılı olarak seçilmesi ve seçilen her maddenin bir testle ya da kanıtla doğrulanmasıdır; 345 maddeyi doldurmak değil. Bookstore için ASVS 5.0 seviye 2 hedefi ve bilerek eklenen bir seviye 3 maddesi, requirement dosyası, güvenlik acceptance criteria'sı ve abuse story, Definition of Done, dosya ile testleri eşleyen xUnit testi, security champion ve NIST SSDF eşlemesi.
Kendi Ürünün için Zafiyet Yönetimi: security.txt, Coordinated Disclosure, GitHub Security Advisory ve CVE
Dışarıdan gelen zafiyet bildirimi için önce bir kapı gerekir: RFC 9116'ya uygun security.txt, SECURITY.md ve GitHub private vulnerability reporting; sonra triage, draft advisory'de gizli düzeltme, CVE talebi ve düzeltilmiş sürümle aynı gün yayın. Bookstore API'sinden security.txt sunmak ve testlemek, sectxt doğrulaması, Bookstore.Contracts NuGet paketi için advisory akışı, bug bounty ve safe harbor.
Pentest ile Çalışmak: Kapsam, Rules of Engagement, Bulguları Okumak, Retest ve Rapor Sonrası
Pentest'in değeri, test başlamadan yazılan kapsam ve rules of engagement ile test bittikten sonra her bulgunun bir regression testine ve bir karara dönüşmesine bağlıdır. Pentest, DAST, bug bounty ve red team farkı; Bookstore'un Kurumsal Sipariş pentest'inde kapsam, test hesapları ve durma koşulları, severity itirazı, kanıtlı false positive, kök nedene göre gruplama, F-01 ve F-02 için düzeltme ve testler, retest ve threat model güncellemesi.
Uygulama Güvenlik Incident'ına Müdahale: Tespit, Kapsam Belirleme, Kanıtı Korumak, İletişim ve Bildirim
Bir güvenlik incident'ında önce kanıt korunur, etkilenen kayıtlar tahminle değil audit log'dan çıkarılır, sonra düzeltilir ve hukuk ile kişisel verilerden sorumlu kişi ilk saatte dahil edilir. Bookstore'da bir kurumun siparişlerinin başka kurumca okunduğu BOLA vakası: NIST SP 800-61r3, hash'li kanıt kopyası, etkilenen kayıt sorgusu ve testi, düzeltme, müşteri ve KVKK bildirimi, runbook ve tabletop exercise.