Kullanışlı bir tehdit modeli, neyi koruduğunuzu, neyin veya kimin bunu etkileyebileceğini, güvenin nerede değiştiğini ve en önemli riskleri nasıl azaltıp test edeceğinizi açıklar. Genel bir araç listesiyle değil, gerçek projeyle başlayın.
Üzerinde akıl yürütebileceğiniz kadar küçük bir kapsam tanımlayın
Tek bir çalışan hizmetle başlayın: bir müşteri portalı, yayın sitesi veya iç uygulama. İşlettiğiniz bileşenleri ve güvendiğiniz harici sistemleri yazın. Bir tehdit modeli varsayımları görünür kılmalı, olası her saldırının çözüldüğünü ima etmemelidir. İlk sürümü, uygulamayı dağıtan kişilerin diyagramı yorumlayacak ayrı bir danışmana ihtiyaç duymadan açıklayabileceği kadar küçük tutun.
Değerli sonuçları ve varlıkları listeleyin. Bunlar müşteri verilerini, yönetim erişimini, ödeme durumunu, yayınlanan içeriği ve hizmeti geri yükleme yeteneğini içerebilir. Bilgi kamuya açık olsa bile kullanılabilirlik bir varlık olabilir. Hangi arızaların rahatsız edici olacağına ve hangilerinin insanlara veya kuruluşa zarar vereceğine karar verin. Bu ayrım, her uyarıyı eşit şekilde ele almak yerine kontrolleri önceliklendirmenize yardımcı olur.
Güvenin değiştiği yerleri çizin
OWASP'in tehdit modelleme rehberliği, bir tasarımı anlaşılır kılmak için veri akışlarını ve güven sınırlarını kullanır. Küçük, barındırılan bir uygulama için tarayıcıyı, web sürecini, veritabanını, yöneticiyi, yedekleme hedefini ve harici entegrasyonları çizin. Aralarında hareket eden bilgileri işaretleyin. Güvenilmeyen bir istemciden ayrıcalıklı bir sunucu işlemine geçen bir istek, açık doğrulama ve yetkilendirmeyi hak eder.
Aynı makinenin içinde olmanın her bileşeni eşit derecede güvenilir kıldığını varsaymayın. Genel bir yükleme süreci, veritabanı yönetimiyle aynı izinlere sahip olmamalıdır. Bir yedekleme işi, canlı uygulama kayıtlarını değiştirme yeteneği olmadan okuma erişimine ihtiyaç duyabilir. Bu rolleri ayırmak, ele geçirilmiş bir bileşenin etkisini sınırlamayı ve gerekli izinleri incelemeyi kolaylaştırır.
Somut başarısızlık senaryoları seçin
Tasarıma meydan okumak için birkaç olası olay kullanın. Bir saldırgan yönetici parolasını çalar; bir kullanıcı başka bir kullanıcının kaydını ister; bir yükleme diski doldurur; bir dağıtım yapılandırma dosyasını açığa çıkarır; bir kurtarma kopyası geri yüklenemez. Başlangıç koşulunu, etkilenen bileşeni ve sonucu tanımlayın. Belirli bir senaryoyu test etmek, güvenliği iyileştirmeye yönelik geniş bir talimattan daha kolaydır.
Dış müdahalenin yanı sıra hataları ve meşru iş akışı kötüye kullanımını da dahil edin. Bir yeniden deneme iki değerli işlem oluşturabilir veya iki istek aynı nesneyi değiştirmek için yarışabilir. OWASP'in iş mantığı rehberliği bu süreç varsayımlarını vurgular. Bir iş akışını bir sonraki durumuna taşımasına kimin izin verildiğini ve bir isteği tekrarlamanın veya yeniden sıralamanın sonucu beklenmedik şekilde değiştirip değiştirmediğini kontrol edin.
| Senaryo | Araştırılacak kontrol | Toplanacak kanıt |
|---|---|---|
| Çalınan yönetim kimlik bilgisi | Kısıtlı erişim ve desteklenen yerlerde ikinci faktör | Yetkisiz bir oturum açma tamamlanamaz |
| Başka bir kullanıcının nesnesi istendi | Sunucu tarafı nesne yetkilendirmesi | İzole bir test reddedildi sonucu döndürür |
| Yüklemelerle disk tükendi | Boyut, kota ve saklama kontrolleri | Hizmet arızasından önce bir sınır uygulanır |
| Yinelenen iş akışı isteği | Idempotency ve işlem sınırları | Yinelenen bir istek tek bir sonuç oluşturur |
Etkiye ve inandırıcı bir yola göre önceliklendirin
Her senaryo için potansiyel etkisini ve gerçekleşmesi için gereken koşulları kaydedin. Tahmin edilen sayısal bir puanın kesin bir olasılık olduğunu varsaymaktan kaçının. İnternete açık zayıf bir parolayı, son derece koşullu yerel bir olaydan hâlâ ayırt edebilirsiniz. Önemli risklere bir sahip ve pratik bir sonraki adım atayın, böylece model birinin gerçekten tamamlayabileceği işler yaratır.
Uygulama ele geçirilmesinin yanı sıra bilgi yaşam döngüsünü de göz önünde bulundurun. Bir tanılama dışa aktarımı, normal çalışma sırasında gereksiz verileri açığa çıkarabilir. Saklanan bir hesap alanı, amacı sona erdikten çok sonra bile maruziyet yaratabilir. Bu nedenle gizlilik incelemesi bilgileri kaldırabilir veya saklama süresini kısaltabilirken, güvenlik incelemesi kalanlara erişimi kısıtlar. Her iki değişiklik de projeyi koruduğunda modele dahil edilmelidir.
Kontrolleri yetkili bir ortamda test edin
Temsili izinlere ve uydurma kayıtlara sahip bir hazırlık ortamı oluşturun. Reddedilen erişimi, istek sınırlarını, iş akışı yeniden denemelerini ve kurtarmayı test edin. Sentetik veriler davranışı gösterebiliyorken gerçek müşteri verilerini kullanmayın. Amaç, etkileyici saldırı trafiği oluşturmak değil, kontrolü doğrulamaktır. Sahip olduğunuz veya açıkça değerlendirme yetkiniz olan sistemlerin içinde kalın.
Neyin geçtiğini, neyin başarısız olduğunu ve neyin bilinmediğini kaydedin. Bir tarayıcı sonucu kanıt sağlayabilir ancak uygulamanın iş kurallarının testinin yerini tutmaz. Benzer şekilde, bir ağ koruma seçeneği nesne yetkilendirmesini veya gizli dosya işlemeyi doğrulamaz. Yararlı sonuçları senaryoya ekleyin, böylece gelecekteki bakım yapanlar belirli bir kontrolün neden var olduğunu anlar.
Modeli değişimle bağlantılı tutun
Bir entegrasyon eklediğinizde, yeni bir uç nokta açtığınızda, bir ayrıcalığı değiştirdiğinizde veya verileri başka bir hedefe taşıdığınızda ilgili kısımları inceleyin. Küçük bir metin düzenlemesi için tüm mimariyi yeniden çizmeniz gerekmez. Tetikleyici, erişim, bilgi veya sistem davranışı hakkındaki değişmiş bir varsayımdır. Modeli tek seferlik bir atölye çıktısı olarak bırakmak yerine dağıtım ve kurtarma belgelerinin yanında tutun.
SwissOctet, tamamlanmış bir uygulama tehdit modeli değil, bir altyapı seçenekleri kataloğu sunar. Kontrollerinizi destekleyen yapılandırmayı ve seçenekleri seçin, ardından oluşturduğunuz dağıtımı doğrulayın. Test edilmiş eylemlerle küçük, güncel tutulan bir model, ele aldıkları risklerin net bir açıklaması olmayan büyük bir güvenlik ürünleri koleksiyonundan daha faydalıdır.
Pratik kontrol listeniz.
- Varlıkları ve başarısızlık sonuçlarını listeleyin.
- Veri akışlarını ve güven sınırlarını çizin.
- Belirli izinsiz giriş, hata ve iş akışı senaryoları seçin.
- Önemli risklere kontroller ve sahipler atayın.
- Yetkili bir ortamda sentetik verilerle test edin.
- İlgili bir varsayım değiştiğinde modeli inceleyin.
Önemli olan ayrıntılar.
Başlamak için resmi bir çerçeveye ihtiyacım var mı?+
Hayır. Küçük bir diyagram ve belgelenmiş bir senaryo kümesi faydalı olabilir. Bir çerçeve, riskleri tutarlı bir şekilde incelemenizi sağlamaya yardımcı olur.
Bir güvenlik açığı tarayıcısı tehdit modellemesinin yerini alır mı?+
Hayır. Tarayıcılar teknik zayıflıkları bulabilirken, bir tehdit modeli aynı zamanda tasarım varsayımlarını, izinleri ve iş akışlarını da inceler.
Modeli ne sıklıkla güncellemeliyim?+
Veri akışları, entegrasyonlar, ayrıcalıklar veya açığa çıkan işlevler değiştiğinde etkilenen kısımları güncelleyin ve çözülmemiş riskleri düzenli olarak inceleyin.
Kaynağa gidin.
Bu kaynaklar, bu kılavuzdaki teknik kavramları destekler. Bir üretim sistemini değiştirmeden önce güncel belgeleri izleyin.
- OWASP: Tehdit Modelleme Kısa Kılavuzu cheatsheetseries.owasp.org
- OWASP: Uygulamada tehdit modelleme devguide.owasp.org
- OWASP: İş Mantığı Güvenliği cheatsheetseries.owasp.org
SwissOctet tarafından editoryal rehberlik. Örnekler açıklayıcıdır. Hizmet spesifikasyonları, mevcut seçenekler ve sözleşme koşulları ayrıca doğrulanmalıdır.