YAZILIM G - PowerPoint PPT Presentation

About This Presentation
Title:

YAZILIM G

Description:

... yaz l m kalite g vence standardlar American Society for Quality Amerika Kalite Toplulu u ... (Certified Software Test Engineer) sertifikas . – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 55
Provided by: webItuEd6
Category:

less

Transcript and Presenter's Notes

Title: YAZILIM G


1
YAZILIM GÜVENLIGI SINAMASI
  • Zehra GÜRBÜZ

  • gurbuzz_at_itu.edu.tr
  • Istanbul Teknik Üniversitesi
  • Fen Bilimleri Enstitüsü

2
Sunum Içerigi
  • Bilgisayar Sistemleri ve Yazilim Güvenligi
  • Güvenli Yazilim Gelistirme
  • SQL Sorgularinin Degistirilmesi(SQL Injection)
  • Baska siteden kod çalistirma XSS (Cross-Site
    Scripting)
  • Yigin Tasmasi (Buffer Overflow)
  • Güvenlik Tehditlerinin Siniflandirilmasi
  • Yazilim Kalite ve Güvenlik Aktiviteleri
  • Yazilim Geçerleme ve Dogrulama(Software
    Verification and Validation)
  • Yazilim Testleri (Software Security Testing)
  • Test Durumu Yaratma
  • Standartlari ve Yordamlari Saptama
  • Güvenlik Testlerinin Hedefleri
  • Güvenlik Testleri
  • Birim Testi
  • Yapilandirma Yönetimi 
  • Versiyon Dogrulama 
  • Tamamlanma Testi 
  • Fonksiyonel Test 
  • Fonksiyonel Olmayan Test 

3
Bilgisayar Sistemleri-1
  • Bilgi fiziksel olarak diskte bulunur.
  • Isletim sistemi bilgisayar ile disdünya
    arasindaki baglantiyi saglar.
  • Isletim sistemi diskteki verilere kullanicilarin
    erisme iznini rol ve kimlik bazinda verir.
  • Isletim sistemindeki herhangi bir zayiflik
    uygulama yaziliminin aldigi güvenlik önlemlerini
    geçersiz kilabilir.

4
Bilgisayar Sistemleri-2
  • Uygulama yazilimlari isletim sisteminin
    kullandigi dosya ve dizin yapisini
    kullanmaktansa, bilgileri tablolar halinde tutup
    bu sekilde islemeyi tercih ettigi için veritabani
    yönetim sistemlerini (DBMS) kullanmaktadir.
  • DBMS(Database Management Server) uygulama
    yazilimi ile isletim sistemi arasinda bir tabaka
    gibidir.
  • Uygulama yazilimi olmadan da DBMS içerindeki veri
    SQL ile islenebilir.
  • Veri tabani yünetim sistemi verilerin güvenli
    kaydedilmesi ve yetkili kisilerin verilere hizli
    ve güvenli ulasmasini garanti edebilmelidir.

5
YAZILIM GÜVENLIGI
  • Hangi kaynaktan geldigi belirsiz kodlarin
    bilinçsizce çalistirilmasi sonucu her gün
    binlerce sistem milyonlarca dolarlik hasara
    ugramaktadir.
  • CERT koordinasyon merkezinin verilerine göre 2003
    yilinda , 2002 yilindakine oranla 70 artis
    gösteren yazilim zayifliklari ve açiklari
    raporlanmistir.
  • 1970 yillarinda orjinal bilgisayar güvenligi
    savunma stratejisi nüfuz et ve yama.
    terimleriyle ifade ediliyordu. O zamanlar
    savunma tamamen, ancak saldiri tesbit edildikten,
    hasar olustuktan sonra reaktif(tepkimeli)di.Nüfuz
    et ve yamayi real-time saldiri tesbit
    sistemleri, denetleme toollari gibi daha gelismis
    savunma teknikleri takip etti. .

6
YAZILIM GÜVENLIGI
  • Yazilim güvenligi ve güvenli yazilim yazilim
    gelistirme sürecinde güvenlikle alakali
    önlemlerin ne kadar erken alinmaya baslandigina
    bagli bir gelisim gösterir.

7
GÜVENLI YAZILIM GELISTIRME
  • Güvenli bir sistem olusturabilmek güçtür.
  • Sistemlerdeki güvenlik açiklari yüzünden bir çok
    sistem hasara ugramaktadir.
  • Bu açikliklarin kaynagi donanim ve yazilim olmak
    üzere iki temele dayanir.
  • Günümüzde donanimsal hatalar en aza indirgenmis
    durumdadir. Ortaya çikan güvenlik açiklari büyük
    oranda yazilimsaldir.

8
Türkiyedeki Sirketlerde En Sik Rastlanan
Güvenlik Açiklari
  • 1. Hatali Kablosuz Ag Yapilandirmasi
  • 2. Hatali Yapilandirilmis Sanal Özel Ag (VPN)
    Sunuculari
  • 3. Web Uygulamalarinda SQL Sorgularinin
  • Degistirilebilmesi
  • 4. Web Uygulamalarinda Baska Siteden Kod
    Çalistirma
  • 5. Kolay Tahmin Edilebilir Sifrelere Sahip
    Kullanici Hesaplari
  • 6. SNMP Servisi Kullanimi
  • 7. Güncellemeleri Yapilmamis Web Sunucusu
  • 8. Isletim Sistemi ve Uygulamalarin Standart
    Sekilde Kurulmasi
  • 9. Hatali Yapilandirilmis Saldiri Tespit
    Sistemleri
  • 10. Güvenlik Duvari Tarafindan Korunmayan
    Sistemler

9
SQL Sorgularinin Degistirilebilmesi (SQL
Injection)
  • Uygulama gelistiricileri, bazi durumlarda
    kullanicilardan gelen verileri beklenen veri türü
    ile karsilastirmayarak SQL sorgulari içinde
    kullanmaktadirlar.
  • Genel olarak problemler, uygulama gelistiricinin
    SQL sorgularinda anlam ifade edebilecek UNION
    gibi kötü niyetli karakterlere karsi bir önlem
    almadigi zaman ortaya çikmaktadir.
  • Bu durum kullaniciya önceden planlanmamis
    uygulama düzeyinde erisim saglayabilir.
  • Içinde SQL sorgulama barindiran bir çok ürün SQL
    sorgulari degistirilebilmesine (SQL Injection)
    karsi savunmasizdir. Saldirganlar SQL sorgularini
    degistirme tekniklerini web sitelerine ve
    uygulamalara zarar vermek amaçli
    kullanmaktadirlar.
  • SQL enjeksiyon ile saldirgan tablo yaratabilir,
    degisiklikler yapabilir, veritabani üzerinde
    erisim saglayabilir veya veritabani
    kullanicisinin haklari dogrultusunda sunucuda
    komut çalistirabilir.

10
SQL Injection Çözüm Önerileri
  • Uygulamanin tüm bilesenlerinde kullanilan
    degiskenler için kontroller olusturulmali ve
    degiskene atanmasi beklenen veri türü ile
    kullanici girdisi karsilastirilmalidir.
  • Beklenen girdi türünden farkli karakterler
    saptanmasi durumunda, karakterler SQL
    sorgularinda anlam ifade etmeyecek biçimde
    degistirilmeli, silinmeli veya kullaniciya uyari
    mesaji döndürülmelidir.
  • Tercihen uygulamanin tamami için geçerli olacak,
    degisken türü ve atanabilecek girdi türünü
    parametre olarak alan ve kontrolleri yaptiktan
    sonra girdi kabul sonucu üreten sabit bir
    fonksiyon tercih edilmelidir.

11
Cross-Site Scripting (XSS)
  • Baska siteden kod çalistirma (Cross-Site
    Scripting) açiklari, bir saldirganin hedef web
    sitesi araciligiyla site ziyaretçilerinin
    sisteminde komut çalistirabilmesine olanak
    tanimaktadir.
  • Saldiri sonucu olarak site ziyaretçilerinin
    browserlarinda bulunabilecek güvenlik
    açiklarinin kullanilmasi, JavaScript/ActiveX ve
    VBScript komutlarinin çalistirilmasini mümkün
    kilmaktadir.
  • Bu tür komutlar ile kullaniciya ait site
    çerezleri alinabilir, kaydedilmis sifreler
    çalinabilir veya browserda bulunabilecek
    güvenlik açiklari ile kullanici sistemi ele
    geçirilebilir. Ayrica elektronik ticaret veya
    bankacilik uygulamalari için sahte giris
    ekranlari olusturularak ziyaretçilerin
    yaniltilmasi ve sonucunda kullaniciya ait önemli
    bilgilerin ele geçirilmesi mümkün olabilir.

12
XSS Çözüm Önerileri
  • Uygulamanin tüm bilesenlerinde kullanilan
    degiskenler için kontroller olusturulmali ve
    degiskene atanmasi beklenen veri türü ile
    kullanici girdisi karsilastirilmalidir.
  • Beklenen girdi türünden farkli karakterler (örn.
    ltgt/()) saptanmasi durumunda, karakterler anlam
    ifade etmeyecek biçimde degistirilmeli,silinmelive
    ya kullaniciya uyari mesaji döndürülmelidir.

13
Arabellek Tasmasi (Buffer OverFlow)
  • Yigit, boyutu sürekli olarak degisen, program
    süresince çagrilan fonksiyonlarin yerel
    degiskenleri bulundugu bellek kismidir.
  • Sürecin yasam süresi içinde, N bayt büyüklügünde
    bir bellek alanina MgtN baytlik bir veri
    yazildiginda, veri bellek alanindan tasar ve
    verinin M-N baytlik kismi, bu verinin erisim izni
    olmayan bir bellek bölgesine yazilir. Bu duruma
    arabellek tasmasi adi verilir.
  • Arabellek tasmalari süphesiz ilk bilgisayar
    programlarindan beri programci hatalari yüzünden
    varolagelmistir.
  • Toplumun dikkatini bu konu üzerine toplayanolay,
    1988 tarihli Morris Solucanidir. Bu solucan (ing.
    worm) çok yaygin bir programdaki (fingerd)
    arabellek tasmasindan faydalanarak internetin
    kisa bir süre devre disi kalmasini saglamistir.

14
Arabellek Tasmalarinin tehlikeleri nelerdir ?
  • Arabellek tasmalari sonucunda iki durum
    olusabilir
  • 1. Iyi Durum Bazi arabellek tasmalari kendini
    hemen belli eder.
  • 2. Kötü Durum Bazi arabellek tasmalari kendini
    belli etmez.
  • Programiniz son derece iyi bir sekilde çalisiyor
    görünür ama içeride bellek alaninda bir yerlerde
    sizi son derece üzecek bir bit dizisi siranin
    kendisine gelmesini bekliyordur.
  • Bu durumda iki tehlike vardir
  • 1. Bir veya daha fazla degiskenin degeri
    degismistir. Program eger bu degiskenin degerini
    ileride kullanirsa, o andan itibaren programin
    bütünlügü bozulur ve artik o programdan hersey
    beklenebilir. Örnek olarak o degisken, bir finans
    uygulamasinda bir kisinin borç hanesini
    olusturuyorsa, degerin 1024'e katlanmasi gibi son
    derece olasi bir olay gerçeklesebilir.
  • 2. Sürecin, fonksiyonun sonlanmasindan sonra
    çalistiracagi komut dizisinin adresini
    degistirebilir. Yani, süreç, çalistirmamasi
    gereken komutlari çalistirmaya yönlendirilebilir.

15
Gerçek hayattan bir örnek W32.Blaster.Worm
  • Özellikle yaygin olarak kullanilan programlarda
    bir arabellek tasmasi bulundugunda hemen bu
    tasmalari cezalandiran kabuk kodlari internette
    dolasmaya baslar.
  • Ag uygulamalarinin tamaminda bu kabuk kodlarina
    solucan ve virüsler de eslik eder, böylece
    arabellek tasmasinin neden oldugu zarar artmis
    olur.
  • 2003 yazinda Windows 2000 ve Windows XP isletim
    sistemlerini kullanan tüm makinelerde çalisan bir
    sistem hizmeti olan DCOM RPC (.Windows
    ortamlarinda, yazilimlarin as üzerinden
    güvenli(!) ve etkin(!!) olarak haberlesmesini
    saglar.)' nin kodunda bir arabellek tasmasi
    kesfedilmistir.

16
GÜVENLIK TEHDITLERININ SINIFLANDIRILMASI-1
  • Bir zayifligi tek bir kategoride degerlendirmek
    her zaman mümkün olmayabilir.
  • Güçsüzlükleri siniflandirmak savunmasiz
    parçalarin veri frekansi ve trend analizlerine
    izin vermesine ragmen sürekli ve tutarli bir
    duruma getirilememistir.

17
GÜVENLIK TEHDITLERININ SINIFLANDIRILMASI-2
  • Asagidaki tablo Landwehr, Bull, McDermott, and
    Choi tarafindan yapilan yazilim zayifliklarinin
    siniflandirilmasina bir örnek teskil etmektedir

18
GÜVENLIK TEHDITLERININ SINIFLANDIRILMASI-3
  • CERT(Computer Emergency Response Team) tarafindan
    yapilan zayiflik siniflandirilmasi ise asagidaki
    gibidir

19
CIA(Confidentiality, Integrity, Availability)
  • Gizlilik (Confidentiality)
  • Veri gizliliginin güvence altina
    alinmasidir. Bilgiye sadece yetkili kisilerin
    ulasabilmesini saglmakatir. Kriptografi verinin
    güvenli bir sekilde tasinmasi ve saklanmasini
    saglayan bir bilim dalidir.
  • Bütünlük, güvenilirlik (Integrity)
  • Bütünlük ya da güvenlilirlik verinin
    degismezliginin güvence altina alinmasidir.
    Kaynkatan hedefe tasinan bütünlügünün bozulmasina
    karsi önlemlerin alinmasidir. Djital imza ve Hash
    algoritmalari bu güvenceyi saglamak için
    kullanilan mekanizmalardir..
  • Kullanilabilirlik (Availability)
  • Yetkili kullanicilarin verilere zamaninda
    ve güvenli sekilde ulasabilmesi güvencesidir.
    Kaynagin gerektigi zaman kullanilabilmesini
    garanti eder.
  • Yüksek kapasiteli protokoller, single
    points of failurea olanak vermeyen donanimlar bu
    güvenceyi saglamak için çözümlerdir.

20
Yazilim Kalite ve Güvenlik Aktiviteleri
21
Yazilim Kalite ve Güvenlik Aktiviteleri
  • Yazilim Yönetimi , planlama, kontrol yazilim
    projesini yönlendirme aktivitelerini kapsar.
  • Yazilim Mühendisligi , gereksinimlerin analizi,
    tasarim gelistirme, kodlama, veritabanlarini
    yaratma aktivitelerini kapsar, yönetim ve
    mühendislik aktivitelerinin tüm gereksinimleri
    karsiladigini garanti eder. 
  • Kalite Güvence Hedefleri
  • Yazilim gelistirme, diger tüm karmasik gelistirme
    aktiviteleri gibi risklerle doludur. Bu riskler,
    teknik veya program ile ilgili olabilir. Bu da,
    yazilimin beklenildigi gibi olmasini
    engelleyebilir.
  • KGnin hedefi, bu riskleri azaltmak, CIA
    üçgeninin tamamlanmasini saglamaktir. Örnegin,
    kodlama standardlari yazilan kod kalitesini
    belirli bir seviyede tutmak için gereklidir. Eger
    herhangi bir standard yoksa, olusan kodun,
    yeniden kullanilabilirlik ile ilgili
    gereksinimlere uygun olmamasi riski vardir ve bu
    da kodun üstnde tekrar çalisma yapmayi gerektirir.

22
Yazilim Güvenligi Sinamasi
  • Yazilimin güvenilirligini tasarim ve kodlama
    asamalarinda Dogrulama ve Geçerleme aktiviteleri
    sinar.
  • Bu aktivitelerden alinan sonuçlara göre hata
    yönetimi devreye girer.

23
Dogrulama ve Geçerleme(Software Verification and
Validation)
  • Yazilim Dogrulama
  • Yazilimdan beklenen tüm gereksinimleri
    saglayip saglamadiginin belirlenmesidir. Ürün
    dogru mu gelistirildi? sorusuna cevap arar.
  • Statik dogrulama problemleri kesfetmek için
    statik sistem gösteriminin analizleri ile
    ilgilenir (Denetimler,izlenebilirlik)
  • Dinamik dogrulama ürünün davranisini örneklemek
    ve gözlemlemek (Yazilim Testleri) Sistem test
    verileri ile isletilir ve sistemin operasyonel
    davranisi gözlemlenir.
  • Yazilim Geçerleme
  • Gelistirilen yazilimin kullanici
    gereksinimlerine ve kullanim amacina uydugunun ve
    yazilim belirtimlerinin yazilim içerisinde
    gerçeklendiginin gösterilmesidir. Gelistirilen
    yazilim gerçekten kullanici gereksinimlerini
    gerçeklestiriyor mu sorusuna cevap arar.

24
Dogrulama-Statik Dogrulama-
  • Statik Dogrulama
  • Gözden Geçirme
  • Plan yapilir.
  • Genel Sistem denetleme ekibine tanitilir.
  • Kod ve ilgili belgeler ekibe bireysel hazirligi
    için önceden verilmelidir.
  • Bireysel hazirlik gerçeklestirilir ve belirlenen
    hatalar not alinir.
  • Denetim toplantisi gerçeklestirilir ve belirlenen
    hatalar paylasilarak ortak bir rapor olusturulur.
  • Olusturulan rapora göre Düzeltmeler
    gerçeklestirilir.
  • Gerekli durumlarda Tekrar Denetim
    gerçeklestirilir.
  • Birçok farkli kusur tekbir gözden geçirmeler
    esnasinda kesfedilebilir. Testte ise bir kusur
    kesfedilebilir ancak o kusurda baska kusurlarin
    ortaya çikmasini veya görülmesini etkiliyor
    olabilir. Bu nedenle test birçok kez kosturulmasi
    gerekebilir.

25
Dogrulama-Dinamik Dogrulama-
  • Yazilim Testleri
  • Test-Durumu Yaratma
  • Test-durumu, bir girdi, eylem veya olay ve
    beklenen cevabi açiklayan bir belgedir. KG
    mühendisleri uygulamanin belirli bir özelligini
    test etmek için bu senaryolari kullanirlar.  
  • Test-durumu yaratma süreci gereksinimlerin
    bulunmasina veya tasarima yardimci olabilir. Bu
    yüzden test-caselerin gelistirmenin erken
    evresinde yapilmasi daha iyidir
  • Standartlari ve Yordamlari Saptama
  • Belgeleme standartlari , proje boyunca
    tutarliligi saglar. Ayrica, paln ve ürün
    raporlarinin içerigini ve formunu belirler.
  • Tasarim standartlari , tasarim ürününün formunu
    ve içerigini belirler. Yazilim gereksinimlerini
    yazilim tasarimina dönüstürecek olan kurallari ve
    metotlari saglar.
  • Belgelenmis yordamlar  bir yordami yürütürken
    uygulanacak adimlari belirler. Örnegin
    konfigürasyon yönetimi, test etme, biçimsel
    incelemeler. 

26
Kalite ve Güvenlik Testleri -1
  • Yazilim ürününün(ara ürünler dahil)
    tamamlandigini/tamamlanmadigini ve dagitima hazir
    oldugunu/olmadigini belirler. 
  • Amaçlari
  • Ürünün kalitesini belirlemek
  • Tam olarak bir test yasam döngüsünü tasarlamak,
    birlestirmek, çalistirmak
  • Son ürünün tüm fonksiyonel yeteneklerini kontrol
    etmek
  • Son ürünün kararliligini ve performansini test
    etmek
  • Ürünlerin müsteri beklentilerine ve
    gereksinimlerine uygun olup olmadigini test etmek
  • Kodu hatalara karsi test etmek, dogrulamak 
  • KG, test planlari, test belirtimleri, test
    yordamlari gibi test belgeleri hazirlar ve
    belgelerin standardlara uygunlugunu kontrol eder.
  • Beklenti disi her fonksiyon hata olarak
    varsayilacaktir.

27
Kalite ve Güvenlik Testleri -2
  • Birim Testi Birim test durumlari programin
    dogrulugunu ölçmek için kullanilir. Beyaz kutu
    testi programin modüllerini ve süreçleri test
    eder. Bu testte programin fonksiyonelligi degil
    de kod yapisi incelenir. Bunu basarabilmek için,
    bir durum teknigi kullanilir
  • Programdaki her ifade test süresince en az bir
    kez dogru veya yanlis deger almalidir.
  • Test süresince her durum olasi sonuçlarin hepsini
    göstermelidir.
  • Versiyon Dogrulama 
  • Bir versiyon tamamlanma ölçütünü sagladiginda ve
    test edilmeye hazir oldugunda, KG takimi bu
    versyionu test eder.
  • Eger versiyon test edilemezse, KG takimi bu
    versiyonu reddeder
  • Eger bazi parçalari test edilebilirken bazi
    parçalari henüz hazir degilse, KG takimi, proje
    yöneticisi ile birlikte yeni bir zaman çizelgesi
    hazirlar.   

28
Kalite ve Güvenlik Testleri -3
  • Tamamlanma TestiTamamlanma testi, sistemin tüm
    parçalarinin birbiriyle düzgün haberlestigini ve
    veri akisinin dogru yapildigini test eder. Son
    tamamlanma testi, sistem bir bütün olarak
    çalisabildigini gösterir. 
  • Fonksiyonel TestFonksiyonel test, sistemin her
    elemaninin gereksinimleri karsilamakta oldugunu,
    sistem tasraim belirtimlerine, diger fonskiyonel
    özelliklere uyumlu oldugunu gösterir. 
  • Fonksiyonel Olmayan TestFonksiyonel olmayan
    test, tüm belgelenmis standardlara ve
    gereksinimlere uygunlugu gösterir. Örnegin, cevap
    zamani, diger sistemlerle uyumluluk. Eger sistem
    donaniminda sistemin belirli miktar eri tarfigine
    izin verdigi belirtilmisse, bu durumlar da test
    edilmelidir.

29
Kalite ve Güvenlik Testleri -4
  • Hata Düzeltme DogrulamaEger gelistirme esnasinda
    hatalar bulunup düzeltildiyse, KG bu bölümlerdeki
    düzeltmelere ayrica test uygular.
  • Anlik Test Bu tip testler gerçek kullanici
    senaryolarini canladirmada kullanilir. KG
    mühendisleri, kullanicin yapacagi davranislari
    yaparak sistemi test ederler. Örnegin sayfa tam
    yüklenmeden ileri tusuna basmak gibi. 
  • Hata Yönetimi  KG test asamasinda, tüm hatalar
    hata yönetimi is akisi ile takima sunulur. Takim
    içinde düzenli toplantilar yapilir. Hata yönetimi
    asamasi  

30
Yazilim Kalite Güvencesi CMM
  • Capability Maturity Model, Kapasite Olgunluk
    Modeli, bir islem modeline dayanan yöntem
    gelisimi yaklasimidir.
  • CMM spesifik olarak 1980lerin ortalarinda SEI
    (Software Engineering Institute) tarafindan
    gelistirilen ilk modele de atifta bulunur.
  • Yazilim mühendisligi, sistem mühendisligi, proje
    yönetimi, risk yönetimi, bilgi teknolojileri
    alaninda gelisitirilen projeleri 5 ayri kapasite
    olgunluk derecesinde degerlendirir.

31
KG CMM -2
  • KG, CMMde asagidaki aktiviteler ile
    gerçeklestirilir.
  • KG aktiviteleri, projenin her asamasinda
    uygulanir.
  • Bagimsiz bir yazilim kalite güvence grubu
    olusturulur.
  • Projeyle ilgili olan herkese bu bagimsiz grup
    bildirilir.
  • Genel bir kurumsal KG plani yazilir.
  • KG takimi aktiviteleri YK planinda anlatilir.
  • Proje deki uyumululuk dogrulamada ve sonuçlarin
    periyodik olarak raporlandigi kontrol etmek için
    denetleme ve gözde geçirme teknikleri
    uygulanir.
  • KG grubu yazilimdaki anormallikleri, çzöülemeyen
    durumlari uygun bir biçimde raporlar.
  • Uygunsa müsteriyle birlikte kalite güvencesi
    gözden geçirilir.
  • KG aktivitelerinin bütçesi ve zaman çizelgesi
    belirlenir.
  • KG grubunun aktiviteleri, üst düzey yönetim,
    proje yönetimi ,proje müdürü ve bagimsiz uzamnlar
    tarafindan incelenir.

32
Yazilim Kalite Güvencede Kurulus ve
Sertifikalar  
  • SEI Yazilim Mühendisligi Enstitüsü (Software
    Engineering Institute) SEI teknik programlar ile
    ilgili bilgiler, yayimlar, bibliyografyalar,
    çevirim-içi belgeler, SEI kurslari, egitim, diger
    sitelere linkler.
  • IEEE Standardlari - Yazilim mühendisligi
    standardlari, yazilim kalite güvence standardlari
     
  • American Society for Quality Amerika Kalite
    Toplulugu (American Society for Quality) Dünyanin
    bu konudaki en büyük organizasyonudur.
    100.000den fazla üyesi vardir.
  • ASQ Yazilim Bölümü (Software Division) ise
    yazilim ile ilgili kalite güvence bölümüdür.
  • Yazilim Kalitesi Toplulugu (Society for Software
    Quality)  
  • QAI Kalite Güvence Enstitüsü (Quality Assurance
    Institute)  
  • CSQA/CSTE - QAI   Kalite Güvence Enstitüsünün
    (Quality Assurance Institute)   CSQA Sertifikali
    Yazilim Kalite Analisti (Certified Software
    Quality Analyst) programi ve CSTE Sertifikali
    Yazilim Test Mühendisi (Certified Software Test
    Engineer) sertifikasi.  
  • ISEB Yazilim Test Sertifikalari (Software Testing
    Certifications) Ingiliz Bilgisayar Toplulugu
    (The British Computer Society) 3 seviyeli
    sertifika sistemi - ISEB Kurulus Sertifikasi
    (Foundation Certificate), Pratisyen Sertifikasi
    (Practitioner Certificate), ve Pratisyen
    Diplomasi (Practitioner Diploma).

33
Güvenlik Test Sürecinde Hata Yönetimi
  • Bir hatanin bulunmasi ve düzeltilmesi isleminin
    maliyeti, en pahali yazilim gelistirme
    aktivitelerinden biridir.
  • Hatalar önlemez olabilirler ama her ne kadar
    önlenemeseler de hatalarin sayisi ve etkileri
    Hata Yönetimi sayesinde en az seviyede
    tutulabilir. Bunu saglamak için, gelistirme
    takimlarinin hatalari önlemeye, hatalari
    olabildigince erken yakalamaya yarayan, hatalarin
    etkisini minimuma indiren etkin bir hata yönetimi
    süreci belirlemeleri gerekir.
  • Bu konuya az miktarda yapilacak olan yatirimin
    getirecekleri çok daha fazla olacaktir.

34
Hata Yönetimi
  • Hata yönetimi süreci genel olarak asagidaki
    prensipleri temel alir
  • Asil hedef hatalari önlemektir. Bu kosulun mümkün
    olmadigi veya uygulanabilir olmadigi durumlarda,
    hedef mümkün oldugu kadar hizli bir sekilde
    hatayi bulmak ve etkisini en aza indirmek
    olmalidir.
  • Hata yönetimi süreci risk odakli, risk merkezli
    olmalidir. Örnegin stratejiler, öncelikler,
    kaynaklar, risk azaltma fikrine uygun olmalidir.
  • Hata ölçümü, süreci gelistirmek için gelistirme
    takimi tarafindan kullanilmalidir ve yazilim
    gelistirme süreci ile bütünlesik olmalidir. Baska
    bir deyisle, proje takimi isini yaparken
    kaynaktaki sorunlari da ortaya çikarmalidir. Bu
    islem daha sonra projeyle ilgisi olmayan insanlar
    tarafindan yapilmamalidir.
  • Bilgi yakalama ve analizi mümkün oldugu kadar çok
    otomatiklestirilmelidir.
  • Süreci gelistirmek için, hata bilgilerinden
    yararlanilmalidir.
  • Hatalar genelde ksuurlu, bozuk süreçlerden
    kaynaklandigi için bu süreçler degistirilmelidir.

35
HATA YÖNETIM SÜRECI
36
Hata Önleme
  • Hata riskini azaltacak teknikler,metodolojiler,
    standard süreçler yaratma sürecidir.
  • Hata yönetimi programinda, hata önleme teknikleri
    tanimlanmasi ve gerçeklestiriminin önceligi
    yüksek olmak zorundadir.
  • Hata önleme, sistemdeki büyük riskleri bulmak ile
    baslamalidir. Önemli risklerin tanimlanmis
    olmasi, takimin en fazla etkiyi yapacak hatalarin
    ne oldugunu görmesinde yarar saglar.
  • Daha sonra bu riskleri önlemek için stratejiler
    gelistirilebilir.
  • Hata önlemedeki ana adimlar su sekildedir

37
Hata Önleme
  • Hata önlemedeki ilk adim, sistemin karsi karsiya
    kaldigi en önemli, kritik riskleri bulmak,
    tanimlamaktir. Bunu yapmanin en iyi yolu, en
    büyük tehdit olan hata tiplerini belirlemektir.

38
Hata Önleme
  • Riskler
  • Önemli bir gereksinimi atlamak
  • Düzgün islemeyen kritik bir uygulama yazilimi
  • Satin alinan yazilimin düzgün çalismamasi
  • Performansin kabul edilemeyecek kadar düsük
    olmasi
  • Donanimin çalismamasi
  • Donanim ve yazilim düzgün birlestirilememesi
  • Donanimin kurulacagi alanda yeni olmasi
  • Donanimin zamaninda saglanmamasi
  • Kullanicinin yeni sistemi kullanmaya istekli
    olmamasi
  • kullanicinin proje içinde aktif bir sekilde rol
    alamamasi
  • vs

39
  • Kritik riskler tanimlandiktan sonra, her riskin
    finansal etkisi tahminlenmelidir.
  • Bu tahminleme su sekilde yapilmaktadir riskin
    bir sorun yarattigi zaman olacak (parasal) etkisi
    ve riskin sorun çikarma olasiligi sayilarinin
    çarpimi riskin beklenen etkisini verecektir.
  • Beklenen etki (E) bu durumda E P I olur.
  • P riskin sorun olma olasiligi I riskin sorun
    olsturdugu zamanki (parasal) etkisi Beklenen
    etkiler tahminlendikten sonra riskler, beklenen
    etkiye ve etkinin azaltilabilirligine göre
    derecelendirilir.

40
  • Beklenen etkiyi en aza indirmek, asagidaki 3
    stratejinin kombinasyonunun kullanilmasiyla
    yapilabilir
  • Riskleri Yok Et Bu, her zaman olasi bir durum
    degildir ve pratikte uygulanmasi da çok zordur.
    Örnegin, bir sistemin kapsamini daraltirsaniz,
    kendini kanitlamamis son teknolojileri
    kullanmazsaniz riskleri yok edebilirsiniz.
  • Riskin bir Problem Olusturma Olasiligini Azalt
    Birçok strateji bu kategoriye girmektedir. Test
    asamasi ve incelemeler, riskleri yok etmeyen
    ancak olasiligini azaltan yöntemlerdir.
  • Problemin Etkisini Azalt Bazi durumlarda risk
    yok edilemez ve riskin olusma ihtimali düsük olsa
    bile etkisi büyüktür. Bu durumlarda uygulanacak
    en iyi yöntem, problem olusursa etkisinin nasil
    en aza indirilebileceginin düsünülmesidir.
    Beklenmeyen olay planlari, felaket sonrasi
    planlari, kurtarma planlari bu duruma örnek
    olarak verilebilir.

41
  • Raporlar, daha önce belirlenmis olan
    kilometretaslarina gelindiginde hazirlanirlar. Bu
    rapordan sonra projede gelistirme sürecinin diger
    asamasina geçilir.
  • Asamalari belirlemek iki aktiviteyi içerir
  • Anahtar Raporlari Belirle Proje gelisiminde
    birçok rapor olusturulur. Bu raporlardan
    hangilerinin ana raporlar olduklari
    belirlenmelidir.
  • Her Ana Rapor Için Bir Standard Belirle Her ana
    rapor için, gereksinimleri ve kriterleri belirle.

42
  • Hatalarin çabuk bulunmasi önemli oldugu için,
    hata bulma, raporlama ile ilgili stratejiler
    gelistirilmelidir.
  • Hatalari daha kolay bulabilmek için, kurulus,
    hatalari kategorilendirmelidir.
  • Hata bulma sürecinin adimlari asagidaki gibidir
  • Hatayi bul
  • Hatayi raporla
  • Hatayi dogrula

43
Hata Bulma-2
  • Hatayi Bul
  • Hatalar, ya daha önceden planlanmis hata bulma
    aktiviteleri ile (test, kalite kontrolü,
    inceleme) ya da kazara (kullanim sirasinda)
    bulunur. Hata bulma teknikleri 3 sinifta
    toplanir
  • Statik Teknikler Programi veya sistemi
    çalistirmadan yapilan testlerdir. Kodu gözden
    geçirme, statik tekniklere bir örnektir.
  • Dinamik Teknikler Hatalari bulmak için sistem
    bilesenlerinin çalistirilmasi gerekir.
  • Operasyonel Teknikler Bu durumda hatalar,
    sistemin yanlis çalismasi sonucunda kullanicilar
    yöneticiler tarafindan bulunur.

44
Hata Bulma-3
  • Hatayi Raporla
  • Hatalar bulunduktan sonra, hatalar
    gelisitiricilere sunulmalidir. Bu sunum da
    raporlarla mümkün olur. Raporlama zaman kaybina
    yol açabilecegi için baska hata raporlama
    yöntemleri de mevcuttur. Bunlar elektronik
    dökümanlar, elektronik formlar, e-posta, teknik
    servise bildirim ve benzeridir.
  • Hatayi Dogrula
  • Hata kaynagini belirleme stratejileri
  • Hatayi yakalamak için araçlar kullanmak
    Microsoft DrWatson gibi
  • Hatayi bulmak için ekstra kod yazmak log tutmak
    için yazilan kodlar gibi.
  • Raporlanmis olan hatayi analiz ermek.

45
  • Hata çözümleme asagidaki sekilde olur
  • Riske Öncelik Atamasi Yap
  • Onarimi Planla
  • Hatayi Onar
  • Hatayi Raporla

46
  • Buna göre hatanin önemi ne olursa olsun, sistemin
    zayifligini belirttigi için ayni derecede
    önemlidirler.
  • Hatanin çok büyük bir problem olmamasi sadece
    gelistiricinin sansina baglidir. Bu yüzden küçük
    hatalar bile, süreçlerin nasil iyilsetirilecegi
    ve büyük problemlerin nasil önlenecegi hakkinda
    bize bir sans vermektedir.
  • Hata, çok büyük bir sey olmayabilir ama o hatanin
    varolmasi büyük bir seydir.
  • Çalismalardan elde edilen sonuçlara göre,
    katilimcilar sürece geri dönerek hatanin nereden
    ve nasil kaynaklandigini inceleyebilirler.

47
Süreç Gelistirme-2
  • Daha sonra, bu hatanin dogrulama sürecini nasil
    geçtigini anlayabilmek için o dogrulama sürecini
    inceleyebilirler. Bu incelemelerden sadece
    yararli bilgiler kazanilmaz, ayni zamanda
    insanlarin islerini daha dikkatli yapmalari da
    saglanir.
  • Örnegin NASA, bu isi bir adim daha ileriye
    götürür ve su soruyu sorar
  • Eger bu hata projenin bu safhasina kadar
    farkedilmeden gelebildiyse, daha kesfedilmemis ne
    gibi hatalar olabilir?
  • Böylece proje sadece problem olusturan hatalari
    bulma konusunda degil ayni zamanda olusmayan
    problemlerin hatalarini bulmada da güçlendirilir.

48
  • Hata bilgisi, hata yönetimi sürecinin dogal bir
    çiktisidir ve bu çiktinin analiz edildikten sonra
    proje yönetimine ve üst yönetime iletilmesi
    önemlidir.
  • Bu bilgi, hata tipleri, hata sikliklari, hata
    egilimleri, maliyetleri seklindedir.
  • Projenin, gerekli rotasinda ilerlemesini
    belirlemede, hatalarin ne kadar siklikla
    olustugunun bilinmesi yararli olacaktir.
  • Hata onarma etkinligi de en yararli bilgilerden
    biridir. Bu bilgiler yönetime karar asamalarinda
    yol gösterici olabilir.

49
Yönetimsel Raporlama-2
  • Hata yönetimi sirasinda bilgi toplamanin
    amaçlari
  • Bireysel hatalari raporlamak
  • Proje yönetimin daha saglikli ve yerinde kararlar
    vermesine yardim etmek için gerekli ölçümleri
    saglamak.
  • Üst yönetimin stratejik kararlar vermesi için
    bilgi saglamak.
  • Projenin gelistirilebilecek yönlerini belirlemek
    ve etkileri en azda tutabilmek.

50
Gözden Geçirmeler Test
  • Gözden geçirmeler ve test birbirini
    bütünleyicidir. Birbirine karsi olan iki
    dogrulama teknigi degildir.
  • Dogrulama geçerleme sürecinde her ikisi birlikte
    kullanilmalidir.
  • Gözden geçirme yazilim ürününün hedefler ile
    uygunlugunun kontrol edilmesidir. Ancak bu
    müsterinin gerçek isterleri ile uygunlugunun
    garantisi anlamina gelmez.
  • Gözden geçirmeler ile performans, tekrar
    kullanilabilir gibi islevsel olmayan özellikler
    kontrol edilemez.

51
Yazilim Geçerleme
  • Dogrulama bir sistemin daha küçük parçalarina
    odaklanirken
  • Geçerleme sistemin bütününe bakar.
  • Yazilimin geçerlenmesi için
  • Yazilim Kurulum Yeterliligi (Installation
    Qualification IQ-),
  • Islevsel Yeterliligi (Operational Qualification
    OQ-),
  • Performans Yeterliligi (Performance Qualification
    PQ-) açisindan incelenmelidir.

52
Yazilim Geçerlemenin Faydalari
  • Yazilimlarin yeniden kullanilabilirligi ve
    güvenirliligi arttirilir.
  • Sistemlerin hata oranlari azaltilir.
  • Gelistirilen ürünlerin (yazilim, sistem,
    yazilimsistem) garanti süreleri uzatilir.
  • Uzun süreli maliyetler azaltilir.
  • Gelistirilen projeler daha basarili bir sekilde,
    istenilenleri karsilayan ve dogru sekilde
    gelistirilmis olarak ortaya konulur.

53
KAYNAKLAR
  • 1 Defining an Adaptive Software Security Metric
    from a Dynamic Software Failure Tolerance Measure
  • A. Ghosh, G. McGraw, F. Charron E. Miller
  • 2 Microsof.Net ve Güvenlik Yunus Emre Alpözen
    Ankara 2005
  • 3 http//en.wikipedia.org/wiki/Software_testing
  • 4 IT Audit Basics Auditing OS and Database
    Controls By S. Anantha Sayana, CISA, CIA Volume
    3, 2003
  • (Information Systems Audit and Control
    Association (ISACA))
  • http//www.isaca.org
  • 5 A Structured Approach to Classifying Security
    Vulnerabilities Robert C. Seacord Allen D.
    Householder
  • January 2005 TECHNICAL NOTE CMU/SEI-2005-TN-003
  • 6 http//www.infosecurenet.com/10-guvenlik-acigi
    -2004.pdf
  • 7 http//open.bilgi.edu.tr/workshop_2004/papers/
    bof.pdf
  • 8Yazilim Kalite Güvencesi
  • http//www.csharpnedir.com/makalegoster.asp?MId20
    1
  • 9 Communicating and Managing Bugs Efficiently,
    Jitu Borah
  • Hata Yönetimi Süreci Tanil Ergin
  • http//www.defectmanagement.com/defectmanagement/
  • 10 Building Security In Gary McGraw,
    gem_at_cigital.com
  • 11 IEEE 1012-1998 Software Verification and
    Validation Document

54
Katiliminiz için Tesekkürler !

Sorulariniz ???
Write a Comment
User Comments (0)
About PowerShow.com