Gereksinim Analizi Üzerinden Sistem Güvenliği Suistimal

tarihinde yayınlandıSEO Paylaşımları içinde yayınlandı

Gereksinim Analizi Üzerinden Sistem Güvenliği Suistimal Durumları 

İnsanlar tarih boyunca negatif senaryoları analiz etmişlerdir. Konumuzda negatif senaryolardan biri ise “Hackerlardan biri Hizmet Dışı Bırakma (DoS) saldırısı başlatırsa ne olur?” Modern sistem mühendisleri suistimal vakalarını  kullanarak çeşitli senaryoları dökümante edip, analizlerini yaparlar. Suistimal vakaları özetle, kullanıcı durumlarının art niyetli kişilerin gözünden bakarak sistem tasarımı aşamasında kullanılmasıdır. Suistimal vakalarının, kullanıcı durumlarıyla ilgili ilgi çekici ve faydalı yollar sağlayan bir çok uygulaması ve etkileşimi bulanmaktadır.

Güvenlik Gereksinimlerin Temin Edilmesi

Güvenlik gereksinimleri oluşmasının sebebi, insanların ve negatif aracıların yarattıkları şeylerin (bilgisayar virüsleri vb.) sistemler için tehdit olmasıdır. Kullanıcı durumu ve suistamal vakaları modelleri ve analizleri senaryolar üzerinde çalıştırılarak, sistemin tasarım aşamasında güvenliğinin artırılması ve tehditlerin azaltılması sağlanmaya çalışılmaktadır. Suistimal durumları ve kullanıcı durumları, sistemden başlayarak alt sistemlere veya daha alt katmanlara ulaşacak şekilde kendini tekrarlayarak üretilebilir. Alt seviyedeki vakalar belirtilmesi gereken durumlardır ve kendine özgüdür, üst seviyeye çıkıldığında dikkate alınmazlar ve  büyük ihtimalle  bu durumda farklı bir analiz yapılması zorunlu olacaktır. Bu yaklaşım, gerekliliklerin her bir açıdan keşfedilmesi, doğrulanması ve anlaşması için geniş bir seçenek sunmaktadır. Suistimal durumlarının ve  aracıların çizilmesi, senaryoya daha dikkatli odaklanılmasına faydalı olacaktır.

Hata durumlarından güvenlik gereksinimleri çıkarma

Arıza durumu etki analizi ve ilgili teknikler genelde güvenlik tehditlerini değerlendirir. Sistemin yeteri kadar güvende olması için, olası durumlar için olası sonuçlar arasında ilişki kurulur, çıkarımlarda bulunulur, ölçümler yapar ve olasılık hesabı yapar. Bu teknikteki sorun, olası hata durumları için analizlerde bulunmasıdır. Hayal edilmemiş problemler için bir işlem yapılmaz. Bu sebeple suistimal model  tekniği olası sistem tehditlerini analiz ederek , arıza durumu etki analizleriyle beslemede kullanılarak olası sistem hatalarını önlemede kullanılır.

Güvenlik Gereksinimleri insan faktörünü genelde içermez; tabiki eğer sabotaj yada terör unsuru yoksa. Negatif unsurlar çoğu zaman güvenlikle alakalı araçları içerir. Örneğin, aracın fren sistemi yada tehlikeli hava koşulları gibi. Buz kaplı bir yolda sürücü kontrolünü kaybettiği zaman insan unsuru yerine hava koşullarının güvenlik gereksinimi olarak adlandırılması,  yaklaşım olarak daha faydalı olacaktır. Bu sayede farklı hava koşullarında araç kontrolünü kaybetmemek için gerekli güvenlik gereksinimleri sağlanabilir.

Sistem suistimal durumları, otomatik fren kontrol ve çekiş kontrol sistemleri gibi alt sistemler için uygun çözümlerin çıkarılmasında faydalı olur. Kural dışı işleme fonksiyonlarının (arabanın kayması gibi) yanıtları dikkatlice programlamadır. Bu yanıtlar kural dişi işleme senaryolarındaki gereksinimleri karşılama anlamı da taşır. Bu senaryolar arabanın kontrolü gibi daha büyük bir kullanıcı durumunun istisna alt başlıkları formu olabilir.

Kural dışı işleme kullanıcı durumu bir kez tanımlandıktan sonra, suistimal durumlarını design kararları doğrulama haricinde kullanmaya gerek kalmaz. Doğrulama, gözden geçirme esnasında design elementlerinin ve gereksinimlerin korunmasında çok önemlidir özellikle zaman ve bütçe sınırlıysa. Kullanıcı durumu araçlarını kullanılarak, gerekli olan suistimal durumlarını görünür ve gizli yapabilirsiniz.

Tasarım etkileşimi, Fonksiyonel ve Fonksiyonel olmayan gereksinimler

Suistimal durumları sistem ve alt sistem fonksiyonlarıyla etkileşim içerisindedir. Bunun haricinde suistimal durumları, art niyetli olaylar olarakta fonksiyonel amaç şeklinde hizmet verebilir (Arabanın çalınması gibi). Bu tip tehditler genelde fonksiyonel olmayan gereksinimlerinin yazılmasıyla ve yönetim kalite standartları ile engellenmeye çalışılır.

Kullanıcı durumları ve suistimal durumlarının ikiside hem fonksiyonel hemde fonksiyonel olmayan gereksinimlerden çıkarım yapılmasına yardımcı olur.

Kullanıcı ve Suistimal Durumları için Araç Desteği

Kullanıcı ve Suistimal durumları temel olarak metinsel yapıdadır ve bu sayede kelime işlemi dokümanlarıyla kolayca işlenebilir. Diyagramlar da genelde primitive yapıda olduğundan çizimleri basittir. Fakat gereksinim araçları, büyük ölçekli projelerde otomatik olarak diyagram üretimi, metriklerin oluşturulması ile tutarlılık kontrolü yapabilir.

Kaliteli bir yazılımda bulunması gereken gereksinimlerin ortaya çıkartılması

Suistimal durumları, fonksiyonel olmayan doküman çeşitleri veya kalite gereksinimlerinin belirlenmesinde yardımcı olur.

Güvenilirlik, Devamlılık ve Taşınabilirlik

Güvenlik tehditleri doğrudan düşman unsurlardan gelmektedir. Güvenilirlik gereksinimleri,  ortaya çıkartması ve analiz etmesi komplike bir iş değildir. Bu düşmanca unsurların bir kısmı insan hataları, fırtına, dizayn hataları, iletişim kanallarına müdahale gibidir ve yazılımın bozulmasına veya bu tip hatalara sebep olabilir.

Devamlılık ve taşınabilirlik gereksinimlerde kullanıcı ve suistimal durumlarından yararlanılarak çözülebilir.

Diğer Kalite gereksinimleri

Suistimal durum sonuçlarını kullanılabilirlik gereksinimleri içinde kullanabiliriz. Buna ek olarak donanımsal olarak depolanabilirlik ve ulaşılabilirlik gereksinimleri içinde uygulanabilir. Bu durumlardaki en önemli gerçek basitliktir. Belirli bir olaydaki kompleks bir sorun için suistimal durumları yetersiz kalabilir. Dizayn aşamasındaki basit yaklaşım sistemin daha sağlıklı olmasını sağlayacaktır.

Her bir  olasılık için yüzlerce suistimal durumu yazılması çok mantıklı bir hareket değildir. Özellikle cevabı gayet iyi bilinen sorunlar için yapılmaması gereklidir. Suistimal durumları, farklı gereksinimleri doğrulama ve ortaya çıkartmak için kullanılmalıdır.

Sıra dışılıkları ortaya çıkarma

Sıra dışılık işleme kullanıcı durumları, çok ciddi hataları engellemek için dizayn aşamasında istenmeyen olayların yanıtlarını tanımlamak için kullanılır. Suistimal durumları analizi,  olası sıra dışılıkları belirlemek için yöntemlerden biridir.

Sıra dışı sınıflar ve suistimal durumlarını başlatan negatif unsular arasında bir ilişki vardır. Bu sınıflar, sıra dışılık kategorisi ve sistemi hataya sürükleyen bilindik durumlar olarak adlandırılır. Aday senaryoları oluşturarak ve gereksinimlerini belirleyerek sınıflarında yer alan listedeki hataların oluşmasının önüne geçilebilir.

Basit gereksinim şablonları, gereksinimlerin ortaya çıkartılmasında uygulanabilir bir yöntemdir. Etkili ve genelliği olan bir tekniktir fakat bütün sıra dışılıkların bulunmasında kullanılamayabilir. Basit şablonlar şu şekilde olmalıdır “Burada bir sorun oluşabilir mi ?“ yada “Burada taşınabilirlik gereksinimi uygulanabilir mi?” gibi sorularla.

Tehditlerin ve suistimal durumlarının düzenlenmesi her zaman basit templataler yada sıra dışılıkların tahmin edilmesiyle yapılamayabilir bazen daha etkili yöntemlerin kullanılması gereklidir. Bu yöntemlerden bazıları şöyledir:

  • Kullanıcı durumlarından suistimal durumlarına problemleri ters çevirerek bakmak bize yeni bir bakış açısı kazandıracak ve gereksinimlerin bulunmasında yardımcı olacaktır.
  • Suistimal durumları yaklaşımında, sistematik olarak sıra dışılıklar araştırılmalıdır. Yaklaşım içerisinde “Kim bu aşamada bir sorun olmasını isteyebilir?” ve “ Bu aşamada bir sorun olması için ne yapmaları gerekiyor?” sorularının sorulması gerekmektedir.
  • Acıkça bilinen tehditler, bulunan gereksinimlerin önceliklerinin belirlenmesinde hızlı bir doğrulama yapılmasını sağlar.
  • Bir tehlike durumuna kişilik kazandırma yada o insanmış gibi yaklaşma gereksinimlerin belirlenmesine faydalı bir yöntemdir.
  • Belirlemeleri bir oyun şeklinde yapılabilir. 2 takımdan oluşan bir senaryo oluşturulup, bir takım diğer takımın en iyi hareketi düşünüp ona göre hamle yapan yada hamlesini engelleyen bir algoritmaya dayalı oyun üreterek en sonunda tehlike yok olana kadar oyuna devam ederek gerekli gereksinimler belirlenebilir.
  • Görsel olarak tehlike ve risk azaltmalı tanımlayan bir şablonun tasarlanması faydalı olacaktır.

Test senaryolarını belirlenmesi

Kullanıcı ve Suistimal durum analizlerinin ürünleri efektif bir test planı aşağıdaki içeriklerin oluşmasına katkı sağlar.

Özel hata durumu (Gerçek zamanlı, gömülü sistemler ve güvenlikle alakalı sistemlerde faydalıdır.)

Güvenlik tehditleri (Dağınık ticari ve kurumsal sistemlerde faydalıdır.)

Sıra dışılık idare senaryoları (Test programcıkların çevrilmesinde faydalıdır.)

Test mühendisleri, suistimal durumları görmeli ve daha iyi bir test ortamı için senaryoları uygulamadır. Kalite mühendisleri ise, aynı şekilde daha kalite bir ürün ortaya çıkarmak için suistimal durumları üzerinde mutabakatta bulunmalıdır.

Suistimal durumları ile tasarım değiş tokuşları

Sistem tasarımdaki en önemli şey kullanıcı isteklerinin karşılanmasıdır. Her bir yeni olasılık için kullanıcı ve suistimal durumlarının dizayn edilmesi işleri karmalık hale getirmektedir. Bu sebeple tasarımcılar bir seçeneği diğeri ile takas yaparlar.

Örneğin web portal kullanıcıları servis sağlayıcı erişim istemektedir fakat bu durum birçok güvenlik ihlaline sebep olabilecek durumlar oluşturabilir. Güvenliği aşırı tutarsanız bu seferde kullanıcılarınız alternatif servis sağlayıcılar aramaya başlayabilir. Bu durum ilişkilerinin içerisinde “zorlaştırmalar” ve “çatışmalar” eklenir.

Dizayner tehlikeyi belirledikten sonra, dizayndaki olası çatışmalar ve azaltmalar sistem gereksinimlerine uygun olarak seçilir. Suistimal durum, ilişkileri ve kullanıcı durumları sistem dizayn doğrulanmasında kullanılmaz. Ayrıca, suistimal durumları sistem tasarım aşamasında önemli bir rol oynamakla birlikte servis devamlılığı adına takas sisteminin kullanılmasında da etkilidir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir