Title: YAZILIM G
1YAZILIM GÜVENLIGI SINAMASI
- Zehra GÜRBÜZ
-
gurbuzz_at_itu.edu.tr - Istanbul Teknik Üniversitesi
- Fen Bilimleri Enstitüsü
2Sunum 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
3Bilgisayar 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.
4Bilgisayar 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.
5YAZILIM 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. .
6YAZILIM 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. -
7GÜ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.
8Tü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
9SQL 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.
10SQL 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.
11Cross-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.
12XSS Çö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.
13Arabellek 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.
14Arabellek 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.
15Gerç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.
16GÜ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.
17GÜVENLIK TEHDITLERININ SINIFLANDIRILMASI-2
- Asagidaki tablo Landwehr, Bull, McDermott, and
Choi tarafindan yapilan yazilim zayifliklarinin
siniflandirilmasina bir örnek teskil etmektedir
18GÜVENLIK TEHDITLERININ SINIFLANDIRILMASI-3
- CERT(Computer Emergency Response Team) tarafindan
yapilan zayiflik siniflandirilmasi ise asagidaki
gibidir
19CIA(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.
20Yazilim Kalite ve Güvenlik Aktiviteleri
21Yazilim 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.
22Yazilim 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.
23Dogrulama 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.
24Dogrulama-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.
25Dogrulama-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.
26Kalite 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.
27Kalite 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.
28Kalite 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.
29Kalite 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
30Yazilim 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.
31KG 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.
32Yazilim 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).
33Gü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.
34Hata 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.
35HATA YÖNETIM SÜRECI
36Hata Ö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
37Hata Ö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.
38Hata Ö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
43Hata 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.
44Hata 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.
47Sü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.
49Yö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.
50Gö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.
51Yazilim 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.
52Yazilim 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.
53KAYNAKLAR
- 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
54Katiliminiz için Tesekkürler !
Sorulariniz ???