Microsoft Tehdit Modelleme Aracı ile Güvenli Yazılım Geliştirme

Microsoft Tehdit Modelleme Aracı ile Güvenli Yazılım Geliştirme
[EXHIBIT_A] Featured evidence

Siber güvenlik konusunda çalışan bir çok kişinin aynı dertten müzdarip olduğu bilinir; kullandığımız yazılımlar siber güvenlik kriterleri göz önünde bulundurularak geliştirilmiyor. Başlangıçta güvenli yazılım geliştirme döngülerinden geçirilmemiş yazılımların güvenliğini daha sonrada sağlamak tam olarak mümkün olamıyor ve hep mevcut bir açığı yamamak şeklinde ilerliyor. Oysa yazılımlar geliştirilmeye başlamadan önce yapılacak bütün analiz ve mimari çalışmalarının mutlaka siber güvenlik ihtiyaçları da göz önünde bulundurularak gerçekleştirilmesi bütün bu sorunların üstesinde çok daha efektif ve doğru bir şekilde gelinmesine imkan tanır. Bu sorunu farkeden büyük firmalardan biri Microsoft ve bu sorunları adreslemek için bir süreç tanımlamış durumda. Security Development Lifecycle olarak tanımlanan bu süreçte 7 aşama yer alıyor. Bu 7 aşamanın detaylarını aşağıdaki grafikte görebilirsiniz. Daha detaylı bilgi için https://www.microsoft.com/en-us/SDL/ adresini ziyaret edebilirsiniz.

exhibit_viewer.exe
Image

Ben bu makalede size dizayn fazında yer alan tehdit modellemeden bahsedeceğim. Başlamadan önce "Threat Modeling" ya da "Tehdit Modelleme" nedir biraz bunu açıklayayım. Dizayn edilen sistemi anlamak ve bu sisteme dair potansiyel tehditleri ortaya çıkartmak için işletilen sürece tehdit modelleme denir. Bir tehdit modellemesinde işletilen adımlar özetle şöyledir;

1.)Sistemi anla

2.)Olası tehditleri listele

3.)Çözüm önerileri hazırla

4.) Risk seviyesine göre önceliklendir

exhibit_viewer.exe
Image

Bu konuyla alakalı elinizin altında olması gereken kaynaklardan birisi John Steven ve Sammy Migues tarafından hazırlanan Glossary of Threat Modeling Terms diyagramı olmalıdır.

exhibit_viewer.exe
Image

Yukarıdaki SDL süreci özetinden anlaşılacağı üzere öncelikle mevcut sistemin (yazılım ya da sistem ayrımı yapmadan değerlendiriyorum) yönetilebilecek bileşenlere ayrılması ve bu ayrım yapılırken de olası tehditlerin hedef olarak seçilebileceği bileşenlerin bir bütün olarak tutulması önemli. Aksi takdirde ya çok fazla detaya inip o detaylarda kaybolmak yada çok üstün körü bir bileşen ayrımı yapıp kritik noktaları kaçırmak söz konusu olabiliyor. Bu bağlamda tehdit modelleme yapacak kişiler için hem olası bileşenlerin neler olabileceği, hem bu bileşenler için olası tehditlerin neler olabileceği gibi bir çok konuda yardım sunan bir araçtan bahsedeceğim. Microsoft Threat Modeling Tool olarak isimlendirilen bu araç özellikle siber güvenlik konusunda yeteri seviyede bilgi sahibi olmayan yazılım mimarları tarafından kullanılmak üzera tasarlanmış ve oldukça başarılı bir araç. Bu araç ile yazılım mimarı kendi bileşenlerini bir diyagram üzerinde oluşturup veri akışlarını belirleyebiliyor ve ardından Threat Modeling Tool bu diagramı baz alınarak bir tehdit listesi sunuyor. Bu araç yardımıyla aşağıdaki sorulara benzer soruların cevaplarını kolaylıkla verebilirsiniz.

  • Bir saldırgan kimlik doğrulama verilerini nasıl değiştirebilir?
  • Bir saldırganın kullanıcıların verilerini okuyabilmesinin etkileri neler olabilir?
  • Kullanıcı profillerinin saklandığı veri tabanına erişim gerçekleşmezse neler olur?

Microsoft Threat Modeling Tool yardımıyla üzerinde çalışılan sistem bir Data Flow Diagram (DFD) çizilir. Bu DFD dokümanı içinde kullanılan her bir bileşen için önceden tanımlı tehdit listesi yer almaktadır ve sizin her bir bileşen için belirlediğiniz ekstra özellikle ile bu tehdit listesindeki tehditlerin hangisinin gerçekleşip gerçekleşmeyeceğine karar verilir. Microsoft tarafından tehdit listesi oluşturulurken STRIDE modeli kullanılır ve bu modelde yer alan tehdit kategorileri aşağıdaki tabloda gösterilmiştir.

STRIDE Modelindeki Kategoriler Spoofing
Tampering
Repudiation
Information Disclosure
Denial of Service
Elevation of Privilege

Her bir bileşen için tanımlı bulunan olası tehditlerle alakalı etki azaltma önerileri de aşağıdaki tabloda yer alan ana kategorilere ayrımış durumda.


Etki Azaltma (Mitigation) Kategorileri Auditing and Logging
Authentication
Authorization
Communication Security
Configuration Management
Cryptography
Exception Management
Input Validation
Sensitive Data
Session Management

Aşağıda örnek bir DFD görüyorsunuz. Bu DFD temel manada kullanıcılara HTTPS protokolü üzerinden hizmet veren bir web sunucu ve bu web sunucusunun verilerinin skalandığı bir SQL Server'dan oluşuyor. Oldukça basit oluşturulan bu diagram Level 0 olarak adlandırılabilecek bir diagram olup detaylı şekilde alt bileşenlere ayrılması durumunda çok daha fazla olası tehdit bilgisinin elde edilebileceğini hatırlatmakta fayda var.

exhibit_viewer.exe
Image

Yukarıda yer alan diagramı çizdikten sonra Analysis View kısmına geçip tehdih listesine ve her bir olası tehdit tanımının detaylarına ulaşmanız mümkün. Örnek bir liste aşağıdaki ekran görüntüsünde yer almaktadır. Çizdiğimiz örnek temel sistemimizde temelde üç tane bileşen ve iki akış olmasına karşın toplamda 40 tane olası tehdidin listelendiğini göreceksiniz. Bir sonraki aşamada bu tehditlerin herbirinin üzerinden teker teker geçip uygun olanlar için etki azaltıcı önlemleri almanız, uygun olmayanları da listeden çıkarmanız gerekiyor.

exhibit_viewer.exe
Image

Yukarıda çok kısa bir şekilde değinebildiğim Microsoft tehdit modelleme aracını özellikle yazılım geliştirme süreci bulunan firmaların kullanmasını tavsiye ediyorum. Hem hazır tehdit listelerinin beraberinde gelmesi hem de bir yazılım mimarına kolaylıkla anlatılıp onun kullanmasını sağlayacak kadar basit bir kullanım arayüzüne sahip olması bu aracın en büyük artılarının başında geliyor. Ayrıca bu yazılımın ücretsiz olarak sunulduğunu da belirtmekte fayda var. Microsoft tehdit modelleme aracının son sürümünü https://aka.ms/threatmodelingtool adresinden indirebilirsiniz. ADEO olarak gerçekleştirdiğimiz risk analizlerinde kullandığımız araçlardan birisi olan Microsoft Threat Modeling Tool ile ilgili sorularınız olursa info[at]adeo.com.tr adresinden bizimle iletişime geçebilirsiniz.

AUTHOR
Halil Öztürkci

Halil Öztürkci

Cybersecurity expert with 25 years of hands-on experience across the full attack-defense spectrum.

I've spent my career on both sides of the battlefield—investigating breaches through digital forensics, hunting APT groups through threat intelligence, building and leading security operations, dissecting malware, and executing red team engagements. Now I'm focused on the next frontier: LLM security, AI red teaming, and building secure AI/ML pipelines.

From incident response to adversary simulation, from SOC architecture to AI-powered threat detection—I decode complex security challenges and translate them into actionable defense.

enjoyed this? get more like it.