Makale Özeti

Uygulamalara yönelik tehditleri sınıflandırabilmek, bunları anlamayı ve karşı önlemleri mümkün olduğunca etkin bir şekilde alabilmeyi sağlar. Microsoftun bu konudaki temel yaklaşımı: STRIDE

Makale

Diyelim ki uygulamanıza yönelik olası tehlikeleri incelediniz. Onları sınıflandırdınız. Derecelendirdiniz. Peki bu tehditleri ‘bertaraf’ etmek için ne yapacaksınız?
Öncelikle size yardımcı olabilecek teknikleri belirlemeniz gerekir. Sonra da bu teknikleri kullanmak için uygun teknolojileri seçmelisiniz.
Tehditlere karşı hafifletme teknikleri kullanabilirsiniz.
Hafifletme tekniklerini daha iyi kavramak için tehditleri genel kategorileriyle sınıflandırmak ve benzer tehditleri benzer önlemlerle savuşturmak faydalı olacaktır. Microsoft bu amaçla STRIDE kısaltmasını kullanır. Uzun adımlarla yürümek anlamına gelen bu kelimenin baş harfleri, 6 temel tehdit kategorisini ifade etmektedir. Şimdi bunları ve bunlara karşı uygulanabilecek hafifletme tekniklerini görelim:

Spoofing: Başka kimliğe bürünme.

Bir kullanıcının erişim bilgilerine (kullanıcı ismi ve parola gibi) yasal olmayan bir şekilde erişip kullanmakla ilintilidir. Bir kullanıcının SQL aşılama yoluyla kimlik doğrulama sürecini bypass etmesi bu tehdidin iyi bir örneğidir.
Bu tehdidi hafifletmek için kullanılabilecek teknikler şunlardır:
o Uygun kimlik doğrulama tekniklerini, zayıf nokta bırakmadan kullanın.
o Sır niteliğindeki verilerinizi iyi koruyun.
o Sır niteliğindeki bilgileri depolamayın.

Tampering with data: Verinin kurcalanması.

Verinin kötü niyetli olarak değiştirilmesi demektir. Mesela yetkisiz olarak kalıcı veride değişiklik yapmak bu kapsama girer. Kalıcı veriye örnek olarak bir veritabanındaki ya da iki bilgisayar arasında hareket halindeki mesela Internet’te yol alan bir veri sayılabilir. Verinin kurcalanması tehdidini hafifletmek için şu teknikleri kullanabilirsiniz:
o Yetkilendirme konusunda dikkatli olun.
o Hash’ler veya MAC’ler (Message authentication code – Mesaj doğrulama kodu) kullanın.
o Dijital imzalar kullanın.
o SSL gibi kurcalanmaya dayanıklı protokoller kullanın.

Repudiation: Red.

Karşı tarafın ispatlayacak argümanları olmamasından faydalanarak bir kişinin yaptığı bir işi reddetmesidir. Aşağıdaki teknikleri kullanarak bu tehdidi hafifletebilirsiniz:
o Dijital imzalar kullanın.
o Zaman mühürleri (timestamps) kullanın.
o Denetleme izleri kullanın.

Information disclosure: Bilgi ifşası.

Yetkisi olmayan kişilerin bilgilere erişmesidir. İki organizasyon arasında iletilmekte olan bilginin okunması gibi… Yine bir başka örnek, siteler arası kodcuk çalıştırarak bir başka kullanıcının çerezlerini (cookies) çalmaktır. Bu tehdidi hafifletmek için aşağıdaki teknikler kullanılabilir:
o Yetkilendirme kullanın.
o Gizlilik açısından zenginleştirilmiş protokoller kullanın.
o Şifreleme kullanın.
o Sırları koruyun.
o Sırları depolamayın.

Denial of service (DoS): Hizmet reddi.

Normal kullanıcılara hizmetin verilemez hale gelmesidir. Mesela bir Web sunucusunun geçici olarak erişilemez ya da kullanılamaz duruma gelmesi. Ya da bir sunucunun yeniden başlamasına sebep olan bir bellek alan taşması zayıflığının kullanılması… Bu tehdidi hafifletmek için aşağıdaki teknikleri kullanabilirsiniz:
o Uygun kimlik doğrulaması kullanın.
o Uygun yetkilendirme kullanın.
o Filtreleme kullanın.
o Kaynakları kısma yöntemini kullanın.

Elevation of privilege: İmtiyaz elde etme.

Özel haklara sahip olmayan bir kullanıcının imtiyazlı erişim elde etmesi ve tüm sistemi bozacak ya da tahrip edecek erişime sahip olması anlamına gelir. Bir bellek alan taşması zayıflığını kullanarak komut satırına erişip kullanıcıyı Administrators grubuna eklemek buna bir örnektir. Gerekli en düşük hak grubuyla kodu çalıştırmak bu tehdidi önlemek için kullanılabilecek tekniktir.

Tehdit çeşitleri ve hafifletici tekniklere örnekler

- Güvenliği sağlanmamış bir ağınız olduğunu düşünün. Eğer veri paketleri yetkisiz kişiler tarafından yakalanabiliyor, değiştirilebiliyor ya da yeniden gönderilebiliyorsa, verinin kurcalanması (Tampering) ve veri ifşası (Information disclosure) tehditleri olasıdır. Kötü niyetli kişi veri paketlerinden kullanıcı isimleri ve parolalar gibi önemli bilgiler çekebiliyorsa, kullanıcıların kimliklerini kötü niyetli amaçlarla kullanabilirler (Spoofing) ve kendi hesaplarını yönetsel seviyeye yükseltebilirler (Elevation of privilege). Tüm bu tehditlere karşı SSL, IPSec ve RPC with Privacy kullanımı hafifletici etkide bulunacaktır.

- Ayrıca uygulamanızın çalıştığı böyle bir ağda, sunucu hizmet reddi saldırılarına (Denial of service) açık olabilir. Kötü niyetli kişiler uygulamaya gönderdikleri URL ve SQL sorgularında yapacakları ataklarla sunucuyu normal işlerini yapamaz hale getirebilirler. Firewall kullanımı ve anonim bağlantılar için kullanılacak kaynakları kısıtlamak, bu tür ataklara karşı hafifletici olacaktır.

- Kötü niyetli kişiler, hesaplarının yetkilerini artırmayı başarabilirlerse, yapılandırma verileri üzerinde okuma, değiştirme ve silme de yapabilirler. Bu da sırasıyla bilgi ifşası (Information disclosure), veriyi kurcalama (Tampering) ve hizmet reddi (Denial of Service) atakları ile sonuçlanır. Bunlara karşı hafifletici teknikler olarak güçlü erişim kontrolleri, dijital imzalar ve denetim kullanılabilir.

- Ulaştığı yönetsel haklarla saldırgan kayıtları tutulan günlüklerden tüm etkinliklerin kayıtlarını silebilir. Bu da yaptığı işi reddetme şansı sağlar.