Arşiv | BT Yönetişimi RSS feed for this section

BTK PYO – Kamu için Örnek Proje Yönetim Ofisi

3 Oca

2017 Yılında Bilgi Teknolojileri ve İletişim Kurumunda yürüttüğümüz Proje Yönetim Ofisi çalışmalarımızı, Başarılı Proje Yöneticilerine Teşekkür Belgesi ve Eğitim Katılımcılarına Katılım Sertifikası Takdim Töreni ile taçlandırdık.

Bilgi Teknolojileri ve İletişim Kurumu – BTK Ailesine ve bu çalışmaları destekleyen Kurum Başkanımız Sayın Ömer Fatih Sayan’a Teşekkür Ediyorum.

BTK Proje Yönetim Ofisi olarak, BTK’ya özel Proje Yönetim Metodolojisi oluşturduk ve Yıllık Master Proje Planlamasıyla Portföy Yönetim Süreci yapılandırıp izleme ve kontrol süreçlerini işlettik. Bu süreçte haftalık düzenli takip ve raporlamayla projelerin başarılı olması için çabaladık. Detaylarını daha sonra paylaşacağım bu süreç, bence Kamunun gerçeklerine, mevzuatına ve ihtiyaçlarına uygun güzel bir çözüm oldu.

Reklamlar

CMMI Ekseninde Süreç Geliştirmenin Anlamı, Önemi ve Türkiye’de CMMI Belgelendirmeleri

16 May

CMMI

CMMI “Capability Maturity Model Integration”, “Entegre Yetenek Olgunluk Modeli” anlamına gelen bir referans modeldir. CMMI, Carnegie Mellon Üniversitesi’ne bağlı Yazılım Mühendisliği Enstitüsü (SEI) tarafından Amerikan Savunma Bakanlığı’nın (Department of Defense, DoD) isteği üzerine 1986 yılında geliştirilmeye başlanmıştır. Dünyada 101 ülkede CMMI kullanılmaktadır ve aralarında Amerika, İngiltere ve Çin’in olduğu 11 ülke hükümeti, ülkenin ekonomik kalkınması için CMMI’a yatırım yapmaktadır. CMMI bugün itibariyle 10 dile çevrilmiştir. Türkçe çevirisi yoktur. Amerika Birleşik Devletlerinde, birçok askeri ve kamu projelerinde yüklenicilerinin CMMI modeline göre derecelendirilmiş olması ve minimum seviye 3 olması beklenmektedir.

Son Olarak, 20 Şubat – 3 Mart tarihleri arasında gerçekleştirilen CMMI Seviye 5 değerlendirmesini başarıyla tamamlayan TÜBİTAK BİLGEM YTE, Türkiye genelinde kamu kurum ve kuruluşları arasında CMMI 5 seviyesine ulaşan tek ve ilk kurum olma özelliğini kazanmıştır. Türkiye’de CMMI Seviye 5 olan 3 kurum (Huawei Telekomunikasyon, Milsoft ve TÜBİTAK BİLGEM YTE), dünya genelinde ise bu seviyeye sahip yaklaşık 500 kurum ve kuruluş bulunmaktadır. Türkiye’de CMMI Seviye 3 olan 35 tane kurum ve kuruluş bulunmaktadır. (Tüm kurumların listesine Türkiyede CMMI Belgesi Sahibi Kuruluşlar_15Mayıs 2017 belgesinden ulaşabilirsiniz.)

CMMI Bakış Açısının Önemi

Olgunluk modelinin geliştirilmesi konusu, Global şirketlerin üst düzey yöneticilerinin yarısının gündeminin ilk üç sırasında yer almaktadır. (McKinsey & Co)

Kuruluşların %70’inden fazlası yetenek boşluğunu ilk 5 zorluklarından biri olarak tanımlamaktadır. (Bersin By Deloitte)

CMMI derecelendirmesi yazılım geliştirme sürecini önceden kestirilemez bir iş olmaktan çıkartıp yönetilebilir, ölçülebilir, tahmin edilebilir ve tekrarlanabilir bir süreç haline getirmeyi hedeflemektedir. CMMI modeli, bir kurumun ya da kurum içindeki bir sürecin, sağlık durumu hakkında bilgi vermektedir. “NE” lerin olması gerektiği gibi olduğunu ve “NE” lerin olması gerektiği gibi olmadığını göstermektedir. Bu bilgi, kendini iyileştirmek isteyen kurumların ya da projelerini hangi kuruma ihale etmek için karar vermek durumunda olan satın alıcıların, çok işine yaramaktadır.

CMMI modeli, şirket olarak ya da bir topluluk olarak en iyi duruma gelmenin yolunu göstermektedir. Şirketi yönetirken, şirket içindeki işler gerçekleştirilirken, kişisel egolardan çok, topluma faydanın ön plana çıktığı şirketleri yaratmak amaçlanmıştır. Şirketin, günlük işleyişinin, yönetiminin gerçek insanlardan alınıp süreçlere devir edilmesi önerilmektedir. Böylece şirket yöneticileri, insanları değil süreçleri yöneteceklerdir. Yön-etmek burada yön vermek anlamına gelmektedir. Süreçleri oluşturacak olanlar süreçleri gerçekleştiren çalışanların ta kendileridir. Çalışanlar bu şekilde kendi kendilerini yönetebilecektir. Yani özgür olacaklar. Yeniçağda, en önemli ekonomik sonuçlar yaratıcılık ve yenilikçilik ile elde edilebilmektedir. Sadece özgür insanlar gerçekten yaratıcı ve yenilikçi olabilir. Dolayısı ile bu şirketler yaratıcı ve yenilmez olacaklardır. Ayrıca şirket yöneticileri, şirketin günlük işleyiş sorunlarından uzaklaşarak şirketin uzun vadeli, topluma daha fazla katma değer üretebileceği stratejik kararlara odaklanabileceklerdir. İşte CMMI, bu şekilde, özgür, yaratıcı ve yenilikçi bir çalışma düzeni yaratmanın yolunu göstermektedir.

CMMI modelleri birer süreç ya da süreç tanımı değildir. Süreçlerin gerçekleştirilmesinde birer yol göstericidir.

Bu süreç alanlarının her biri kurum içinde var olan ya da kullanılan ve birbirleriyle organik bağı olan süreçlerin bir araya getirilmesinden oluşmaktadır. Süreç alanları birbirlerinden bağımsız olarak tanımlanmış olsa da kurumsal yapı içerisindeki etkileşimlerin herhangi bir süreç iyileştirme çalışmasındaki sonuçları mutlaka gözönünde tutulmalıdır.

CMMI modeli içinde 25 süreç alanı vardır. Bu süreç alanları 4 ana disiplin altında toplanır: Sistem Mühendisliği, Yazılım Mühendisliği, Bütünleşik Ürün ve Süreç Geliştirme ve Tedarikçi Kontrolü (SGTK)

CMMI-DEV, Hizmet ya da ürün “geliştiren” kuruluşlar için tasarlanmıştır. Projeler gerçekleştiren, bu projelerinin sonunda yeni bir ürün ya da hizmet oluşturan kuruluşlar, bu yıldız kümesinden faydalanabilirler. Bu yıldız kümesi dışında CMMI-SVC (Hizmet verme konusunda), CMMI-ACQ (Satın Alma konusunda) yıldız kümeleri vardır.

CMMI, yazılım geliştiren kuruluşların performanslarını iyileştirmek için tanımlanmış etkin süreçlerin temel öğelerini içeren çerçeve yetenek olgunluk modeli ile bu model doğrultusunda olgunluk seviyesini ölçen bir değerlendirme yöntemi (SCAMPI) de sunmaktadır. Değerlendirme CMMI enstitüsü sertifikalı bir denetçinin başkanlığında yapılmakta ve kuruluşlara 1’den 5’e kadar derece verilmektedir.

Yetenek olgunluk modelleri süreçleri 5 seviyede değerlendirirler. Bu seviyeler şunlardır:

  1. SEVİYE: Süreçler önceden tahmin edilemez, kontrolleri zayıftır ve tepkiseldirler. Anlık çözümler geliştirilir ve acil durumlarda süreçler tamamen bir kenara bırakılır.
  2. SEVİYE (YÖNETİLEBİLİR) :Süreçler proje bazında tanımlanır ve yönetilir. Projenin süreçleri bir havuzda toplanılarak yönetilir.
  3. SEVİYE (TANIMLANMIŞ): Süreçler kurum bazında tanımlanır ve yönetilir. Kurumun süreçleri bir havuzda toplanır ve tüm projelerde bu süreçler kullanılır.
  4. SEVİYE (NİCEL OLARAK YÖNETİLEBİLİR): Süreçler nicel olarak ölçülmekte ve kontrol edilmektedir.
  5. SEVİYE (EN İYİ):Süreçler ve süreç iyileştirme odak noktasıdır. Hedef, kaliteyi sürekli olarak arttırmaktır.

Yüksek Olgunluk CMMI Seviye 4 ve 5 olgunluk seviyelerine karşılık gelmekte olup yazılım geliştirme süreçlerinin veriye dayalı olarak, istatistiksel yöntemlerle yönetilebilir ve sürekli iyileştirilebilir olarak tanımlanması ve izlenmesidir. CMMI Olgunluk Seviyesi 4 veya 5’e erişen bir kuruluş, istatistiksel ve diğer nicel yöntemleri kullanarak sürekli yetkinlik geliştirme konusuna daha derin bir bağlılık sergilemektedir. Yüksek Olgunluğa sahip kuruluşlar, paydaşların ve müşterilerin ihtiyaçlarını karşılamak için sürekli olarak gelişmekte, uyarlanmakta ve büyümektedir.

CMMI Seviye 5 dünyada sayılı organizasyonların sahip olduğu bir derecedir. Mevcutta yüksek olgunluk seviyelerine sahip organizasyonların ArGe odaklı faaliyetler gösterdiği, seviye 3 ve altında olan organizasyonların hizmet sunumu kapsamlı faaliyet gösterdiği görülmektedir. Bu durumun arkasında gerek savunma gerek sivil sektörlerde araştırma merkezlerinin sektöre kabiliyet kazandırma ve rehberlik yapma görevleri aracılığıyla önderlik yapma misyonları yatmaktadır. Benzer bir motivasyonla kamu bilişiminde ARGE faaliyetleri ile önderlik eden TÜBİTAK BİLGEM YTE 2008 yılında CMMI-DEV Seviye 3, 2014’te yüksek olgunluk Seviye 4 ve 2017 Mart’ta Seviye 5’e ulaşarak yazılım geliştirmede yüksek olgunluk Kabiliyeti kazanmıştır.

TÜBİTAK BİLGEM YTE bu kapsamda edindiği bilgi ve tecrübe ile dijital devlet ekosisteminde ihtiyaç duyulan olgunluk seviyesinde yazılım geliştirilmesi için gerekli kabiliyetlerin geliştirilmesinde etkin rol oynamayı ekosistemin bir paydaşı olarak hedef edinmiştir.

CMMI® Enstitüsü Hakkında

CMMI Enstitüsü (CMMIInstitute.com) insan, süreç ve teknoloji alanlarında en iyi uygulamaların ilerlemesi için dünyada liderlik yapmaktadır. Enstitü, kuruluşlara yeteneklerini ölçmek ve operasyonlarını en iyi uygulamalarla karşılaştırarak ve performans boşluklarını belirleyerek olgunluğa ulaşmaları için araçları ve desteği sağlar. 25 yılı aşkın bir süredir, havacılık, finans, sağlık hizmetleri, yazılım, savunma, ulaşım ve telekomünikasyon gibi sektörlerde yüksek performans gösteren binlerce kuruluş, CMMI olgunluk derecesi elde etmiş ve yetenekli iş ortakları ve tedarikçiler olduklarını kanıtlamıştır. CMMI’in kuruluşunuzun performansının yükselmesine nasıl yardımcı olabileceği hakkında daha fazla bilgi edinmek için CMMIinstitute.com adresini ziyaret edin.

Kurumsal Proje Yönetişimine Çağrımdır

1 Oca

Geleneksel iş yapış şekillerimiz, takip çabalarımız ve kontrol amaçlı raporlama taleplerimiz aslında dünayda çok uzun süredir, bizde ise malesef yakın zamanda geride kaldı. Hatta Dünyada çoğu gelişmiş ülkede kurumsal organizasyonlar yeni düzenli yapılarının eksiklerini sorgulayarak yeni kavramları tartışmaya açıyorlar. Bu kavramlardan en dikkat çekeni ise YÖNETİŞİM. Öyle ki klasik yönetim anlayışımızdaki yönetim talimatları, kuralları ve kontrol dayatması verimli ve kaliteli iş süreçleri için terk edilme noktasına geldi. Şimdi konuşmamız gereken olgu ise sosyalleşen insanın, iş birliği, mükemmellik ve otonom yapıya alışabilme gücüdür. Bu doğrultuda insanın insanı, işin önünde tutarak güvensiz bir kurguyla takip etmesinden ziyade sistemin bir dişlinin çarkları şeklinde en iyisi için kendiliğinden çalışabilmesi, insanın kendisine verilen görevi yenilik vizyonuyla güvenli, tutarlı, doğru ve kaliteli yönetebilmesini sağlamak gerekiyor. İşte bu şartlarla sağlayacağımız olguya Yönetişim diyebiliyoruz. Bu olguyu Proje Yönetim Süreçlerinden fotoğrafın bütününe uyguladığımızdaysa Proje Yönetişimini konuşabiliyoruz.

Benim için Proje Yönetişiminin olmazsa olmazları organizasyonun stratejik hedeflerinin belirli olması, bu hedeflerle ilişkili yapılanma ve bu yapıyla doğrudan organik bağlantılı iş yapış şeklidir. Bu kavramları daha net ifade edersek Stratejik hedeflerle ilişkili Portföylerin yapılandırılarak bu portföyler altında Program veya Projelerin yönetimiyle diğer işlerin etkin takibinin sağlanması, yine aynı şekilde Programların, Portföylerin altında konumlandırılarak gerekli yönetici desteği sürece yansıtılarak program altında da yönetilecek projelerin başlatılması önemlidir.

Bu yapının faydası organizasyon kaynaklarının öncelikli portföylere ayrılması, portföy içinde de öncelikli program ve projelerin kaynaklara ulaşmasının sağlanması olarak görülür. Yine uçtan uca bakıldığında da tüm yapının mantıksal kırılımlar şeklinde ayrıştırılarak planlanabilir, kontrol edilebilir yani yönetilebilir yapıya kavuşturulduğu görülebilir.

Eskalasyon ve delegasyon işlemlerinin sağlıklı işletildiği organizasyonlarda proje hedefleri haricinde proje dışındaki rutin işler yani operasyonel işlerin de kaynak ve sorun bazlı olarak takip edilmesi mümkün olabilecektir.

Bu doğrultuda yapabileceğimiz şeyleri, tanımlı kurallarla; prosedür çalışmaları, etkili içerik ürettirecek şablon geliştirmeleri ve yapıyı güçlendirecek teknolojik araç ve destekleyici eğitim çalışmaları olarak sıralayabiliriz. Tüm bu çerçeve içerisinde tabi ki yeniliğe açık olma, sürekli iyileştirme prensibine hazır olma ve en iyisi için tüm çalışmalara lider olunması gerektiği unutulmamalıdır.

Sonuç olarak en alt seviyede uluslararası kabul görmüş en iyi uygulamaların süreçlere dahil edilerek yapının işletilmesi dışında organizasyonun tüm uzuvlarının bütünleşik olarak tanımlı kurallarla etkileşimli olarak yönetiminin sağlanması yani kurumsal proje yönetişimine geçilmesi önemli bir atılımdır.

Gerçek Sorunlara Kalıcı Çözümler

1 Oca

Çözümü nasıl bulacağımızı, şimdi daha iyi anlamak için biraz daha geriye, biraz daha detaya inmemiz gerektiğini anlatmak istiyorum. Ama bunu anlatırken ne çok teknik ne de çok basit ifadeler kullanmalıyım. Çünkü çözümler ne kadar zor olursa olsun zihniniz ne çok karışık, ne kadar kolay olursa olsun  ne de çok rahat olmamalı.

Öncelikle çözüm istediğimiz için soruna odaklanmamız gerekmektedir. Yani ilk soru, gerçek sorun veya sorunlarımız nedir? olmalıdır. Öyle ki çoğu tecrübemiz göstermektedir ki, organizasyonlar çoğu zaman yanlış iş, yanlış insan, yanlış teknoloji, yanlış araç veya yanlış süreç seçimi yaptıklarını düşünürler. Bu seçeneklerden bazen biri söz konusu olurken bazen bir kaçının varlığı bizi soruna götürmektedir. Ama doğru sorunu bulmak için en başta sorun aradığımız organizasyonu iç ve dış mevzuatıyla, kültürüyle ve mevcut işleyişiyle tanımamız gerekmektedir. Bu incelemeyle görülür ki dış veya iç mevzuat eksik veya anlaşılmaz veya da yanlış anlaşılmış, amaçlanan işler yanlış düşünen personel ile farklı süreçlerle yürütülmüş ve yanlış araçlar bizi çıkmaza sürüklemiş durumda olabilir. Bu tür durumlar en sık karşılaşılan durumlar olarak her zaman karşımıza çıkıyor. Bu noktada artık gerçek sorunları kalem kalem listeleyip, bu sorunlarla ilişkili ihtiyaçlarımızı belirlemeye geçebiliriz. Öyle ki iç, dış mevzuat çalışması öncesinde sektör araştırması, yapılacak işin analizi çalışması tüm paydaşlarla çözüm bulunacak şekilde ortaya koyulmalıdır. İç ve Dış Mevzuat, yapılan analizlerle sağlam dayanaklarla güçlendirilmeli akabinde iç süreç işleyişleri kaliteli ve verimli olacak şekilde en iyi uygulamalarla geliştirilmelidir.

Peki geldiğimiz noktada sürdürülebilir kalıcı çözümlere nasıl ulaşabiliriz? Her iyi sistemin sürdürülebilir bir yapıya kavuşması için şüphesiz doğru insanlara sahip olması gerektiği ortadadır. Peki nasıl bir insan doğru başlanan işi doğru devam ettirebilir? İşte bu hususta da 3 kriterle olması gerekeni ifade edebiliriz. BİLGİ, BECERİ ve PERFORMANS. Gerekli bilgiye ve tecrübeye sahip insan neyi nasıl yapacağını ve hangi durumda neyi yapmanın doğru olduğunu bilir. Kişiler arası iletişim becerisine sahip insan yani insanları dinleyebilen, anlayabilen ve anlatanbilen insan çözüm ve sorunsuzluk konusunda katkısı olan insandır. Bilginiz ve beceriniz olsa da çabanız olmadıkça organizasyonunuz için hiç bir öneminiz olmayacaktır. O yüzden çabalayan yani fedakarlıkla ve ciddi bir şuurla çalışan insan sistemin sürdürülebilirliği için vazgeçilmezdir.

Gelmek istediğimiz yerse artık ortadadır. Mevcut durumu iyi bir analizle ortaya koyarak olması durumu tarif edip kurumsal olgunlaşma ile o amaca doğru tüm unsurlarımızla gelişimi desteklememiz gerekmektedir. Gerçek sorunların tespit edilip olması gereken durumların örnek alınıp gerekli geliştirmelerin yapılması kalıcı çözüme giden ilk yoldur. Sistemin iyi ve doğru araçlarla, hafızayı güncel ve geleceğe aktarabilir duruma geldiği anlaşıldığından kaliteli işler için kaliteli insanlara zaman ve kaynak ayrılabilir ve döngü bu şekilde verim alınacak şekilde idame ettirilebilir.

2023 hedefleri için yenilikçi projelere ve projecilere ihtiyaç var

31 May

1 PMI TR’ın her yıl PM SUMMIT markası altında geniş katılımlı olarak düzenledikleri  Proje Yönetim Zirvesi, “Projelerle Geleceği Şekillendirmek” temasıyla 12 Mayıs tarihinde Ankara’da Cer Modern’de gerçekleştirildi. BThaber’in de sponsorları arasında yer aldığı etkinlikte, proje yönetiminin bir zorunluluk ve meslek olduğu vurgulandı.
‘Proje Yönetim Zirvesi’nin açılışına katılan Orman ve Su İşleri Bakanlığı Müsteşar Yardımcısı Sedat Kadıoğlu, STK’ların önemine vurgu yaparak “STK’lar ne kadar güçlüyse ülke de o kadar güçlüdür” ifadesini kullandı. Kadıoğlu, proje ve proje yönetimi kavramına değinerek “Projelerin hazırlanması gerekiyor. Uygulamaya geçmesi de devamlılığı açısından çok önemli. Zaman, iş ve para yönetimi bir arada yapılabilirse başarılı olunabilir. Orman ve Su İşleri Bakanlığı olarak her yaptığımız çalışmayı projelendiriyoruz” şeklinde konuştu. PMI Türkiye PM SUMMIT Proje Yöneticisi Meliha Bayrak, “Geleceği şekillendirmek; tüm zamanların proje ve mirasına doğru çıkılan bir yolculuktur. Bizler, proje yönetim dünyasının geçmişten geleceğine doğru uzanan bu yolculuğa sizlerin katılımlarıyla çıkıyoruz. Bu yolculukta bilgi ve birikimlerimizi paylaşıyor, elde etmiş tecrübelerimizi aktarıyor ve yeni nesil yönetim bakış açısıyla geleceği projelerle ele alıyoruz” dedi.

2Proje paydaşlarımızın arasında buzdolabındaki domates de olacak!
PMP Türkiye Yönetim Kurulu Başkanı İsmail Kurtoğlu, nesnelerin internetinin ve büyük verinin proje yönetimini çok etkilemeye başladığına dikkat çekerek “Gelecekte proje paydaşlarımızın arasında buzdolabındaki domates de olabilecek; ondan gelen veriyi alabileceğiz. Her şeyin birbirine bağlı olması projelerimizi de etkiliyor. Projeleri tek tek ele almaktansa, bir bütün olarak yönetilmesi gerektiğini düşünüyoruz. Projelerin insana dönük olması çok önemli” açıklamasını yaptı. SPL Grup CEO’su ve PMI Fellow Aaron J. Shenhar, ‘Gelecek Burada – Proje Yönetimini Yeniden Şekillendirmek’ başlıklı sunumunu gerçekleştirdi. Projelerin bugün çok daha karmaşık olduğunu aktaran Shenhar, üç yeni elementi; strateji, liderlik ve inovasyon olarak adlandırdı. Proje Yöneticisi ve StratejistLevent Erkan, konuklara “Dünyanın en büyük insani krizinin merkezindeyken sizlere ihtiyaç var!” şeklinde seslendi.

Geleceğe hazırlanmak yaratıcılık yönümüzü geliştirmekten geçiyor
‘2023 Vizyonuyla Gelecekteki Proje Yönetimi Stratejilerimiz’ panelinin moderatörlüğünü, ‘PMI Turkey Chapter’ Ankara Şube DirektörüEmre Alıç gerçekleştirdi. Panele; Avrupa Birliği Bakanlığı, Proje Uygulama Başkanı Bülent Özcan, Havelsan Süreç Yönetim MüdürüZeynep Arzu Çelik, Aselsan Bilgi Teknolojileri Direktörü Fatih Bilgi ve Türksat Bilişim İş Geliştirme ve Proje Yönetim DirektörüÖmer Faruk Çöllüoğlu katıldı. Özcan, dünyada önemli bir aktör olabilmek için Türkiye’nin kendine bir yol haritası çizmesi gerektiğini belirterek “İddialı hedeflere ulaşmak için yapısal dönüşüm gerekiyor. Türkiye önümüzdeki 10 yılda çok daha fazla proje konuşacak. Türkiye’nin proje kültürü açısından değişime ihtiyacı var. 2023 hedefleri için taklit değil, daha yaratıcı, yenilikçi projelere, dolayısıyla projecilere ihtiyaç var. Hâlâ proje uzamanı ihraç edemiyoruz!” açıklamasını yaptı. Stratejik planlamanın Havelsan için büyük önem taşıdığını kaydeden Çelik, savunma sanayinde hedeflere ulaşmak için iş birliğine ihtiyaç olduğunu vurgulayarak “Milli teknolojileri geliştirmek çok önemli. Her zaman bir adım daha önde olmalıyız. Üniversite – sanayi iş birliği büyük önem taşıyor. Türkiye’nin genç nüfus oranı hepimiz için fırsat. Bizi bekleyen projelerle deneyimli proje yöneticileri sayesinde başa çıkabiliriz” dedi. Bilgi, BT projesinin BT’den çok süreci ilgilendirdiğine dikkat çekip proje tarifleri başarısız olduğu için BT projelerinin başarısız olduğunun altını çizdi. Projelerin basit ve hedefe yönelik olması gerektiğine vurgu yapan Bilgi, “Basitleştirin, karmaşıklaştırmayın! Basitlik ve yalınlık daha iyi yönetim süreçleri için çok önemli” ifadesini kullandı. Türksat’ın BT tarafında entegratör görevi gördüğünü belirten Çöllüoğlu, “Değişime adapte oluyorsanız, zaten geç kalmış oluyorsunuz. Ülke olarak proje yönetiminde farkındalığımız var mı? ‘Proje Yönetimi’ ders olmalı, proje yönetimi artık bir zorunluluk ve bir meslek. İyi işler iyi ekiplerle ortaya çıkıyor” değerlendirmesini yaptı. Alıç, “Yönetebilmek için önce ölçmek gerekiyor; tüm çalışmalarda tehdit ve fırsatları yönetmek için teknolojiyi araç olarak kullanmak lazım” ifadesini kullanarak “Geleceğe hazırlanmak yaratıcılık yönümüzü geliştirmekten geçiyor” dedi. Projectivity Solutions Şirketinin CEO’su ve Başkanı, PMI Silikon Vadisi Bölümünün Kurucusu Phil Bristol da yaptığı konuşmada; proje yönetimi ofislerinin başarısızlığına sebep olan nedenler arasında sabit fikirliliği, ‘proje polisi’ olmayı, ölçümleme yapmamayı sayarken bir liderin marifetini de; motive etmek, ilham vermek ve çözüm üretmek olarak açıkladı. Tüm gün süren etkinlikte; paneller ve çalışma atölyelerinin yanı sıra proje yönetiminde gelecekte kullanılması muhtemel yöntemler ve eğilimler de ele alındı.

 

Kaynak: http://www.bthaber.com/kamu/2023-hedefleri-icin-yenilikci-projelere-ve-projecilere-ihtiyac-var/1/18080

PROFESYONELLERİN SIRRI

29 Oca

İşinizi yapmayı en çok ne zaman seversiniz? İşinizi sevmek her ne kadar değişen koşullar ve yorucu çalışma temposunda aklınıza çok sık gelmeyen bir kavram olsa da yaptığınız işe devam etmeniz ve başarılı olmanız aslında bu kavramdan geçmektedir. Öyle ki çoğu tecrübe kaynağının aktardığına göre 3 temel unsur yaptığınız işlerde sizi başarıya götürecektir; “Bilgi”, “Beceri” ve “Performans”. Aslında bu 3 temel kriter hem bir birleriyle ilişkili hem de kendi içlerinde başarıyı getiren detayları içeriyor. Bu detayları sebepleriyle anlamak da başarı için zorunlu bir süreçtir.

Öncelikle bilgiyi konuşmak gerekirse bilginin her şeyin temelinde ve her karar anının arka planında olduğunu görmezden gelemeyiz. Öyleyse sağlam işler ve doğru kararlar için doğru, tam ve tutarlı bilgiye sahipsek doğru kararlar verebilir başarılı olabiliriz. Peki, bilgiye sahip olmak, bilgiyi kullanmak ve yönetmek ne kadar kolay? Şüphesiz bilgiye sahip olmak için tecrübe etmek ve öğrenmek gerekli fakat başka tecrübe ve bilgi birikimlerinden yaralanmak daha kolay bir yol. Bu nedenle çok fazla tecrübeye sahip, bilgi birikimi olan toplulukların paylaşımıyla üretilen standart ve en iyi uygulamaların benimsenmesi ve uygulanması bilgiyi kullanmak adına güzel yollardan birisidir diyebiliriz.

Peki, beceri olmadan sahip olduğunuz bilgiyi kullanabilir misiniz? Bu her şeye sahip ve her şeyi bilecek imkâna sahip kişi ve organizasyonların üzerinde en çok düşündükleri, en çok yatırım yaptıkları konudur. İşinizde çok iyisinizdir, bu yeteneğiniz sizi bazı üst pozisyonlara taşımıştır fakat bilgiyi kullanma, iletişimi sağlama ve yönetimi sağlama beceriniz gelişmemiş ise çoğu şey eksik kalır veya yanlış ilerler. İşte bu nedenle çoğu kurumsal firma yöneticilerine bu konularda eğitim aldırmayı tercih eder. O zaman beceriyi kendimizde aramamız normal ve bu yolu da denediysek farklı yollar da bizi becerikli yapabilir mi? Bunun cevabı aslında yine çoğu zaman bir anda kendimizi bulduğumuz bilgi birikimi kılavuzlarında. Yani o kılavuz ve standartlara baktığınızda şunu görürsünüz; “Bir süreci yürütürken kullanılacak girdiler ve üretilecek hedef çıktılar vardır, hedef çıktıları elde etmek için girdileri işleyeceğiniz doğru araç ve teknikleri seçerek hızlı, kolay, doğru ve sağlıklı süreçler yürütebilirsiniz.” Bunu da öğrendiğimizi kabul edersek bize bu standartlar tarafından önerilen araç ve teknikler sahip olduğumuz bilgileri işleyeceğimiz bize beceri kazandıracak yardımcı unsurlardır diyebiliriz. Hatta gelişen teknolojiyle bilgi teknolojileri ürünleri yani yönetim bilgi sistemleri yazılımları neredeyse yeteri kadar becerikli olmamızı sağlayabilir diyebiliriz.

Tüm bunlar tamam ama sahip olduğunuz bilgileri becerilerinizle kullanıyorsunuz ama etkin olamıyorsanız hala eksik olan şey nedir? İşte bu noktada her şeyin üstünde ama her şeyin canlanmasını sağlayarak etkinlik katacak unsura, performansa sahip olmamız gerektiğini söyleyebiliriz. Bilgiye erişmek, beceriye sahip olmak çok kolay olmamalıdır hatta bilgi ve beceriye sahip olan kişinin başarı için önünde çabalaması, ilerlemesi ve engelleri aşması gerekecek uzun bir yol vardır. Bu uzun yolun mümkün olduğunca kısa sürmesi ve kolay geçilebilmesi için de performans göstermek yani çalışmak, konuşmak, dinlemek ve anlatarak ikna etmek gerekecektir.

Başarı için temel kriterler olarak anlattığım bu üç temel kriter artık yeni yapılan araştırmalar ve literatür çalışmalarıyla Yönetişim kavramı içerisinde hayat buluyor. Her konuda yürütülen çalışmalarda ayrı bir yönetişim yapısı söz konusu olabilirken tüm sektörleri ve çalışmaları kapsayacak şekilde yürütülen tüm projeler ve yönetilen kurumlar için Proje Yönetişimi ve Kurumsal Yönetişim kavramlarını artık daha fazla konuşmaya başlıyor ve altlarını her geçen gün daha çok dolduruyoruz.  Tam anlamıyla bizim için yönetişim, sahip olunan bilgi birikimiyle yazılmış kuralların oluşturduğu bir organizasyonda, becerileri geliştirilen insanların sürdürülebilir performanslarıyla başarılı işler gerçekleştirmesidir. Bu ifadenin ideal düzeye gelmesi için geçilecek aşamalar olduğu da aşikârdır. Bilgiye, beceriye sahip olma, beceriyi geliştirme ve performansını doğru şekilde kullanarak artırma konuları bir organizasyon için planlanması ve sistemli bir şekilde aşamalar halinde yürütülmesi gerekli konulardır. Yönetişim kavramının ideale yakın yerlerde uygulandığı yapılarda; tanımlı iş süreçleri işletilmekte, öğrenen, kendini kontrol eden ve sürekli gelişimle önleyici, düzenleyici çalışmaları yapan sistemler çalışmaktadır diyebiliriz.

Yönetişim kavramının her faaliyet alanı ve detayında, yürütülen işler için entegre bir aktivite olduğu düşünülürse proje veya iş yönetimi süreçlerinde gereksinim, zaman, maliyet, risk ve iletişim süreçlerinin etkin yönetildiği kabul edilebilir. Fakat etkin yönetimin, insanoğlunun hafıza ve kabiliyet limitleri içerisinde tam anlamıyla sağlanması, büyük, karmaşık ve zor işlerde geleneksel yöntemlerin çaresiz kalabileceğini kabul etmemiz gerekir.

Bu nedenle kazanılmış tecrübelerle oluşmuş bilgi birikimi ile tasarlanmış, teknolojinin sunmuş olduğu nimetlerle size üstün beceriler kazandıracak ve hızlı çalışmanızı sağlayacak bir yazılım, araç olarak işinizi kolaylaştıracak, düzenleyecek ve başarılı olmanız için gereken yardımı size sağlayacaktır.

Sonuç olarak; bizler her ne kadar işimizi severek yapıyor olsak da işimizi, en çok yaptığımız işler kolaylaşınca severiz. Kolaylaşan işler bize başarıyı getirir. Bu nedenle de sahip olduğu unsurları doğru yerde ve doğru şekilde kullanarak başarılı olan kişiler, profesyonellerdir. Ve profesyonellerin sırrı doğru araç ve gereçlerle yapılacak işi kolaylaştırmaktır.

Emre ALIÇ, PMP

Profesyonel Proje Yöneticisi

Yazılım Geliştirme Süreci ve Güvenli Yazılım Geliştirme

14 Ara

Yazılımların hayatımızdaki yeri ve öneminin gün geçtikçe artması yazılımlara ilişkin çalışmaları hızlandırmakta, bu durum yeni yazılım geliştirme yöntemleri, programlama kuralları veya programlama dilleri ve araçları ortaya çıkarmaktadır. Tüm bu gelişmelere rağmen yazılım projelerinde tasarlanan zamanın gerisinde kalma, bütçeyi aşma, düşük kalite, sürekliliği ve güvenilirliği sağlayamama, kullanıcı taleplerinin karşılanmasında yetersizlik gibi problemlerle sıkça karşılaşılmaktadır. Gartner araştırmasına göre bilişim güvenliği ihlallerinin yazılım güvenliği problemlerinden kaynaklananlarının oranı %80’dir [1]. Genel olarak problemlerin çoğu, yazılım geliştirme sürecinin en başında gereksinim ve sistem analizlerinin doğru ve yeterli yapılmamasından kaynaklanmaktadır. Analiz konusunda yetersiz kalan yazılımlar güvenlik riski oluşturmakta, bu durum bilgiye yönelik tehditlerin ortaya çıkmasında önemli bir açıklık oluşturmaktadır.

Bilginin gizliliği, bütünlüğü ve erişilebilirliğini, kısaca bilgi güvenliğini hedefleyen tehditlerle mücadele için yazılımlarda bilgi güvenliğinin sağlanmış olması gerekmektedir. Bilgi güvenliği;  karşılaşılabilecek tehditlerin farkında olunması,  işlerin devamlılığını sağlama, yaşanabilecek her türlü problemlerde kayıpları en aza indirme, firmaların varlıklarının her koşulda gizliliği, erişebilirliği ve bütünlüğünü korunma amaçları taşımaktadır. Bu kapsamda ortaya çıkartılan ve sürekli geliştirilmekte olan bir süreç de “Bilgi Güvenliği Yönetim Sistemi (BGYS)” dir.

Yazılımlarda bilgilerin korunması yazılımın geliştirme sürecinin başından itibaren tüm aşamaların bilgi güvenliği kontrollerine uygun olarak gerçekleşmesine bağlıdır. Yazılımın geliştirme sürecinde bilgi güvenliği yönetim sisteminin sağlanmış olması, yazılımlardaki bilgilerin kullanıma hazır olduğunu, sadece yetkisi olanların erişebildiğini ve kullanılan bilginin doğru ve güncel olduğu anlamına gelmektedir.

Bu çalışmanın ikinci ve üçüncü bölümünde yazılım, yazılım geliştirme süreçleri ve güvenli yazılım geliştirmeye ilişkin bilgilere yer verilecektir. Dördüncü bölümde uluslararası bir standart olan “ISO/IEC 27001 Bilgi Teknolojileri- Güvenlik Teknikleri-Bilgi Güvenliği Yönetim Sistemi- Gereksinimler Standardı (ISO 27001)” ele alınacak, sonrasında ISO 27001’in yazılım geliştirme süreçleriyle ilişkili kontrol maddelerine ve sonuç bölümüne yer verilecektir.

Yazılım Geliştirme Süreçleri

Yazılım kelimesinin sözlük anlamına bakıldığında; yazılım, “bir bilgisayarda donanıma hayat veren ve bilgi işlemde kullanılan programlar, yordamlar, programlama dilleri ve belgelemelerin tümü” olarak ifade edilmektedir [2] . Yazılım ayrıca, mevcut bir problemi çözmek amacıyla değişik cihazların birbirleriyle haberleşebilmesini sağlayan ve görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan bilgisayar dili kullanılarak oluşturulmuş anlamlı ifadeler bütünü olarak da nitelendirilebilir [3]. Yazılım ile ilgili bu tanımlamalar daha çok kod ile ilgilenirken yazılım geliştirme, bilinenin aksine sadece kodlama değildir. Birkaç tane kullanıcı ekranı tasarlayıp, bu ara yüzlerin arkasına kod yazarak ve veritabanı ilişkisi kurularak yazılım geliştirme süreci tamamlanamaz. Bu işlemler yazılım geliştirme sürecinin sadece bir bölümü olup, toplamda yazılım geliştirme süreci kodlama yapmaktan çok daha fazlasıdır [4]. Bu bakımdan yazılım geliştirme, yazılımın hem üretim hem de kullanım süreci boyunca geçirdiği tüm aşamalar olarak tanımlanabilir.

Geçmişte yazılım geliştirmede başvurulan iş akış şemaları gibi yöntemler günümüzde gereksinimleri karşılayamadıklarından etkinliklerini yitirmişlerdir. Bu yöntemler özellikle güvenlik odaklı olmadıklarından yetersiz kalmışlardır. Yazılımın her aşamasında güvenliğe ilişkin ortaya çıkabilecek problemleri gözeten etkin bir geliştirme süreci sonuç ürünün daha güvenilir olmasına önemli katkı sağlayacaktır.

Yazılım işlevleri ile ilgili gereksinimler sürekli olarak değiştiği ve genişlediği için, söz konusu aşamalar sürekli bir döngü biçiminde ele alınmaktadır. Böylece döngü içerisinde her hangi bir aşamada geriye dönmek ve tekrar ilerlemek söz konusudur [5]. Yazılım geliştirmede çok sayıda farklı model ve süreç değerlendirmelerinden söz etmek mümkündür. Bununla birlikte; yazılım mühendisliğindeki diğer modellere temel teşkil eden “Çağlayan Modeli (Waterfall Model)” yazılım yaşam döngüsünü analiz, tasarım, kodlama, test ve bakım olmak üzere beş aşamada ele almaktadır [6].

Analiz

Bir problemin çözümü olarak nitelediğimiz yazılımların ne yapacağını ve nasıl yapacağını belirlediğimiz yani problemi tanımladığımız aşama analiz aşamasıdır. Yazdığınız kod ancak isteneni doğru bir biçimde yerine getiriyorsa başarılı bir yazılımdır. Bu nedenle öncelikle yazılımdan ne istendiğinin doğru bir biçimde tanımlanması gerekir. Analiz aşaması personel, donanım ve sistem gereksinimlerinin belirlenmesi, sistemin fizibilite çalışmasının yapılması, kullanıcıların gereksinimlerinin analizi, sistemin ne yapıp ne yapmayacağının kısıtlamalar göz önüne alınarak belirlenmesi, bu bilginin kullanıcılar tarafından doğrulanması ve proje planı oluşturulması adımlarından oluşur.

Tasarım

Analiz aşaması sonucunda belirlenen gereksinimlere yanıt verecek yazılımın temel yapısının oluşturulduğu aşamadır. Yazılım tasarımı, bir bileşen veya sistemin nasıl gerçekleştirileceğini belirlemek için kullanılan teknikler, stratejiler, gösterimler ve desenlerle ilgilidir. Bu aşama yazılım bileşenleri arasındaki içsel ara yüzler, mimari tasarım, veri tasarımı, kullanıcı ara yüzü tasarımı, tasarım araçları ve tasarımın değerlendirilmesi alt süreçlerini de kapsamaktadır. Tasarım aşaması, yazılımın hem kullanıcı ara yüzünü hem de programın omurgasını ortaya koymaktadır. Yapılacak tasarım, yazılımın işlevsel gereksinimlere uygun olmasının yanı sıra kaynaklar, performans ve güvenlik gibi kavramları da göz önüne alınarak gerçekleştirilmelidir.

Kodlama

Kodlama aşaması, tasarım sürecinde ortaya konan veriler doğrultusunda yazılımın gerçekleştirilmesi aşamasıdır. Bu süreç programlama çalışmalarının yanı sıra yazılımın geliştirilmesi ve kullanıcıya ulaştırılması sürecindeki bütün çalışmaları kapsar. Tasarım sonucu üretilen süreç ve veri tabanının fiziksel yapısını içeren fiziksel modelin bilgisayar ortamında çalışan yazılım biçimine dönüştürülmesi çalışması olarak da nitelendirilebilir [5]. Yazılım geliştirme ortamı, programlama dili, veri tabanı yönetim sistemi, yazılım geliştirme araçları seçimi kodlama aşamasında gerçekleştirilir.

Test

Test aşaması, yazılım kodlanması sürecinin ardından gerçekleştirilen sınama ve doğrulama aşamasıdır. Elde edilen uygulama yazılımının hem belirlenen gereksinimleri sağlayıp sağlamadığı hem de gerçekleştirimin beklentilere uygun olup olmadığını kontrol etmek için statik ve dinamik sınama tekniklerinden yararlanır. Statik teknikler, yazılımın tüm yaşam döngüsü boyunca elde edilen gösterimlerin analizi ve kontrolüyle ilgilenirken, dinamik teknikler sadece gerçekleştirilmiş sistemi içerir. Yazılım üretiminde ilk testler genelde geliştirme sürecinde programcı tarafından yapılır. Bununla birlikte, asıl hata ayıklama ve geribildirim hizmeti test ekipleri tarafından yapılır. Testler ve geribildirim müşteri yazılımı kullandığı sürece devam eder. Test sürecinde en faydalı geribildirimler son kullanıcı test gruplarından gelir.

Bakım

Yazılımın tesliminden sonra hata giderme ve yeni eklentiler yapma aşamasıdır. Yazılımın kullanıma başlanmasından sonra yazılımın desteklenmesi sürecini kapsar. Yazılımın eksiklerinin giderilmesi, iyileştirilmesi gibi alt aşamaları içeren aşamadır.

Güvenli Yazılım Geliştirme

Yazılımların yaygın olarak kullanılmaya başlandığı ilk yıllarda kaliteli ve olgun yazılım üretmek, son yıllarda ise özellikle güvenli yazılım geliştirmek için çok sayıda model ve çerçeve üzerinde çalışılmıştır. Bu durumun en büyük tetikleyicisi son yıllarda güvenlik açıklıklarının artmasıdır [7]. Artan bu güvenlik tehditleri Şekil 1’de görüldüğü üzere hiç hesaba katılmayan sürpriz maliyetleri de beraberinde getirmektedir. Yazılım geliştirmede erken bir süreçte farkına varılan yazılım açıklıklarının düzeltilmesinin daha ileri süreçlerde farkına varılan açıklıklara göre daha az maliyetli olacağı yazılım endüstrisince yaygın olarak kabul edilen bir ilkedir [8]. Bu ilke yazılım geliştirme sürecinin güvenli olmasının maliyet açısından da ne denli önemli olduğunun göstergesidir.

ekil_1.jpg

Şekil 1 – Yazılım Geliştirme Süreçlerinde Yazılım Açıkları Giderme Maliyeti [8]

Yazılım güvenliği kavramı ile ilgili yapılan en önemli yanlış güvenliği sadece kodun güvenliği ve ek olarak da yetkilendirme güvenliği ile sınırlandırmaktır. Halbuki yazılım güvenliği kavramını “güvenilir bilişim” (trusted computing) kavramı ile yakından ilişkilendirmek gerekmektedir. “Trusted Computing Group” tarafından konmuş olan güvenilir bilişim kavramı gizlilik, bütünlük, erişebilirlik, ve kurtarılabilirlik olmak üzere dört temel kavram üzerinde durmaktadır [9].

Güvenli yazılım geliştirme süreçlerinde ayrıca değişiklik ve konfigürasyon yönetimi, geliştirme, test ve üretim ortamı ayrışımı, geliştirme ortamında gerçek verilerin kullanılmaması, üretim ortamına almadan önce kod incelemesi, güvenli programlama teknikleri kullanımı, uygulama güvenlik duvarı kullanımı ya da kaynak kod inceleme hizmeti alınması gibi çalışmaların yapılması da güvenliğe ayrıca katkı sağlayacaktır [1].

Güvenli yazılım geliştirme sürecinde ele alınması gereken temel olarak dokuz ana güvenlik konusu vardır [10]:

1.Girdi Geçerleme (Input Validation):

Günümüzde bilinen ve gelecekte de muhtemel tehditlerin çoğu kötü niyetli girdi ile başlamaktadır. Bununla birlikte; basit girdi geçerleme yöntemleri ile büyük güvenlik tehditlerinin önlenmesi mümkündür.

Girdi geçerleme yöntemlerini “beyaz kutu” ve “kara kutu” olmak üzere ikiye ayırmak mümkündür. Beyaz kutu yönteminde bilinen bir şablon girdi olarak kullanılmakta, bu şablonun dışındaki tüm girdiler kötü niyetli olarak kabul edilmektedir. Şablonun kontrolü çok kolay olduğundan bu yöntem oldukça etkili bir yöntemdir. Kara kutu yöntemi ise daha az etkili olmasına rağmen daha çok tercih edilen bir yöntemdir. Bu yöntemde kullanılan belirli bir şablon yoktur, sadece bilinen saldırıların bir listesi mevcuttur. Eğer girdi bilinen bir saldırıya benziyor ise o zaman girdi reddedilecek, onun dışındaki tüm girdiler ise kabul edilecektir. Bugün bile tüm atak çeşitlerini belirlemek zor iken gelecekteki atakları bilip filtrelemek daha da zor olacağından bu yöntemin etkinliğinin az olduğu açıktır. Dolayısıyla veri yapıları, mümkün olduğunca belli bir şablona uygun tasarlanarak geçerleme daha güçlü kılınmalıdır.

İstemci-sunucu uygulamalarında geçerleme hem istemci hem de sunucu tarafında yapılabilmektedir. Bununla birlikte; bir saldırgan istemci tarafındaki geçerleme kontrolünü kolay aşabileceğinden istemci tarafındaki geçerleme hiçbir zaman yeterli bir güvenlik önlemi olarak ele alınmamalıdır. Bunun yerine daha çok sunucu tarafında geçerleme kontrolü yapılarak güvenlik seviyesi arttırılmalıdır. Kısaca güvenilir olmayan bir kaynaktan (örneğin kullanıcıdan) gelen veri mutlaka onaylanmalıdır.

2.Kimlik Doğrulama (Authentication):

Kimlik doğrulama,  varlıkların (kullanıcı, cihaz veya bir uygulama) kimlik kontrolünden geçmesi işlemidir ve farklı kimlik doğrulama yöntemleri bulunmaktadır.

Genellikle yazılımlar önceleri sadece kullanıcı adı ve şifre kullanması şeklinde zayıf doğrulama yöntemleri kullanılmakta idi. Eğer bir “domain” yapısı varsa, kullanıcılar “Active Directory” kullanılarak doğrulanmakta, “domain” dışında ise kimlik yönetimine ilişkin veritabanı uygulanmaktadır. Daha güçlü doğrulama yöntemleri olarak da biometrik metotlar veya akıllı kartlar kullanılmaktadır. Bir diğer doğrulama yöntemi ise üçüncü bir tarafın doğrulama işini yapması ve bu üçüncü tarafa güven duyulması şeklindedir.

3.Yetkilendirme (Authorization):

Kullanıcıların tanımlanması aşaması olan kimlik doğrulamadan sonra kullanıcının kimliği doğrultusunda erişim haklarının belirlendiği ve kontrolünün gerçekleştiği aşama yetkilendirmedir. Hangi yetkilerle işlem yapılacağını belirlemek için bir çok yöntem bulunmaktadır.

4.Konfigürasyon Yönetimi  (Configuration Management):

Konfigürasyon, uygulama ile ilgili hassas bilgileri içermektedir. Örnek vermek gerekirse veri tabanına erişim için gerekli bağlantı bilgilerini içeren dosyalar bu kapsamdadır. Konfigürasyona müdahale uygulamanın işleyişini değiştirebilir veya çalışmamasına sebep olabilir. Konfigürasyon dosyalarının sunucularda saklanıyor olması yeterli güvenlik önlemlerinin alındığı anlamına gelmemektedir. Konfigürasyon dosyaları hassas bilgi olarak nitelendirilmeli, şifrelenmiş bir şekilde tutulmalı ve bu dosyalara erişim kayıt altında tutulmalıdır.

5.Hassas Bilgi (Sensitive Information):

Hassas bilginin ne olduğunun belirlenebilmesi için uygulamanın ve işin bir arada ele alınması gerekir. Uygulama geliştirici işin niteliğini tam olarak bilemediğinden, diğer yandan işin sahibi de uygulamanın teknik altyapısı hakkında sınırlı bilgiye sahip olacağından bu iki taraf tek başlarına hassas bilgi için yeterli tanımlama yapamayacaklardır. İki tarafın bir araya gelmesiyle hassas bilgileri içeren bir liste oluşturulmalı ve bu listeyi koruyacak bir politika oluşturulmalıdır.

6.Kriptografi (Cryptograhy):

Veriyi korumanın yollarından biri de şifrelemedir. Bugün şifreleme çalışmaları oldukça ilerlemiş, bilgisayarlar oldukça gelişmiştir. Fakat bu durum saldırganlar için de geçerlidir. Hassas bilgiler bilinen ve test edilmiş şifreleme yöntemleri ile saklanmalıdır. Ayrıca daha önce kırılması uzun zaman alan algoritmalar günümüzde daha kısa zamanda çözülebilmektedir. Dolayısıyla uygulama içindeki algoritmalar zamanla gözden geçirilmeli ve güncellenmelidir.

7.Parametre Manipülasyonu (Parameter Manipulations):

Dağıtık algoritmalar modüller arasında parametre gönderirler. Eğer bu parametreler arada değiştirilirse, saldırı gerçekleştirilmiş olur. 1 dolara satın alınan Ferrari bu duruma bir örnektir. Borcun belirlenmesi için web formu kullanan uygulama bu formdaki rakamın http proxy kullanılarak manipüle edilmesi sonucu değer 1 dolara olarak değiştirilmiştir.

8.Hata Yönetimi (Exception Management):

Bazı teknolojiler hataları kullanarak hata yönetimi gerçekleştirmektedirler. Hatalar geliştiriciler ve sistem yöneticileri için uygulama ile ilgili birçok önemli bilgi ihtiva ettiği için çok önemlidirler. Bununla birlikte; geliştirici için bu derece önemli olan bilgi kullanıcı açısından problem oluşturabilmektedir. Her ne kadar kullanıcılar bu hataların ne demek olduğunu anlamasalar da saldırganlar için büyük ipuçları, yazılımla ilgili önemli bilgiler içermektedir. Bundan dolayı sadece genel bir hata mesajının dönmesi, hataların kayıt altında tutulması ve gerçek hataya sadece yöneticiler ulaşmasını sağlayacak sürecin oluşturulması gerekmektedir.

9.Kayıt Tutma ve Denetim (Logging and Auditing):

Uygulama veya uygulamanın yöneticileri saldırı altında olduklarını anlamalıdır. Bu durum aslında neyin normal neyin anormal olduğunun belirlenmesi ile sağlanır. Bir uygulamaya ilişkin normal süreç ve şablon tanımlanmalı ve bunu dışında bir olay olduğunda saldırı ihtimali ele alınmalıdır. Örneğin, normal senaryoda bir uygulamaya dakikada ortalama beş kişinin erişmesi beklenirken bu sayı bine ulaşıyorsa muhtemelen bir “Servis Dışı” bırakma atağı söz konusudur.

Yukarıdaki ve bunlara benzer onlarca tehdit güvenilir uygulamalar geliştirmek için yazılım geliştirme sürecinin güvenliğinin yönetilmesinin büyük önem arz etmekte olduğunu gözler önüne sermektedir.

ISO 27001 Bilgi Güvenliği Yönetim Sistemi

Bilgi güvenliği, yazılı, sözlü, elektronik ortam gibi farklı ortamlardaki bilginin gizlilik, bütünlük ve erişebilirlik bakımından güvence altına alınması ve bu güvence durumunun sürekliliğinin sağlanmasıdır.

Bilgi sistemlerinin hayata geçmesiyle ortaya çıkan depolama ve işleme imkânlarının artması, izinsiz erişimler, bilginin yetkisiz imhası, yetkisiz değiştirilmesi veya yetkisiz görülmesi ihtimallerinin artması gibi hususlar nedeniyle bilgi güvenliği kavramı gündeme gelmektedir.

Bilgi hangi biçime girerse girsin veya ne tür araçlarla paylaşılır veya depolanır olursa olsun, her zaman uygun bir şekilde korunmalıdır. Bilgi sistemlerinin çoğu, bilgi saklanırken, paylaşılırken, gönderilirken güvenlik kaygıları düşünülerek tasarlanmamıştır. Kurumların sahip oldukları bilgi doğru tasarlanmamış sistemler nedeniyle pek çok çeşitli tehditlere karşı açık durumdadır.

Bilgi güvenliği ihlali ve buradan doğacak kayıpların riskini minimize etmek kurulan sistemlerin en başında BGYS gelmektedir. BGYS, bilgi güvenliğini kurmak, işletmek, izlemek ve geliştirmek için iş riski yaklaşımına dayalı, dokümante edilmiş, işlerliği ve sürekliliği garanti altına alınmış bir yönetim sistemidir.

BGYS kurumunuzdaki tüm bilgi varlıklarının değerlendirilmesi ve bu varlıkların sahip oldukları zayıflıkları ve karşı karşıya oldukları tehditleri göz önüne alan bir risk analizi yapılmasını gerektirir [11].

BGYS, bağımsız kuruluşların ya da tarafların ihtiyaçlarına göre özelleştirilmiş güvenlik kontrollerinin gerçekleştirilmesi için gereksinimleri belirtir. BGYS’nin ihtiyaç duyduğu gereksinimlere cevap vermek için çok sayıda standart vardır. Bunların en önde geleni ISO 27001 standardıdır.

PUKÖ Modeli

ISO 27001 kurumların bilgi güvenliği yönetim sistemi kurmaları için gereklilikleri tanımlayan tek denetlenebilir BGYS standardıdır. ISO 27001 ülkelere göre özel tanımlar içermeyen, genel tanımların bulunduğu uluslararası standardıdır. ISO 27001 standardı; kuruluşların kendi bilgi güvenlik sistemlerini sağlamasını mümkün kılan teknoloji tarafsız, satıcı tarafsız yönetim sistemleri için bir çerçeve sağlar.

ISO 27001, kuruma uygun politikalar, prosedürler ve kılavuzlar oluşturmaya yol gösteren uluslararası kabul görmüş yapısal bir metodoloji sunar. ISO 27001 sertifikası, kurumların güvenlik seviyesine ve kurumun konuya ciddi yaklaşımına ilişkin bir göstergedir.

Bilgi güvenliği yönetimi konusunda ilk standart British Standard Institute (BSI) tarafından geliştirilen BS 7799’dur. BS 7799  “Pratik Kurallar” ve “BGYS Gerekleri” başlıklı iki kısımdan oluşmaktaydı. BS 7799 birinci kısım daha sonra ISO tarafından 2000 yılında “ISO 17799” olarak kabul edilmiştir. 2002’de BSI; BS 7799-2’yi çıkartmıştır. ISO, 2005 yılında ISO/IEC 1799:2005’i ve BS 7799-2’nin yeni hali olan ISO/IEC 27001:2005’i yayınlamıştır. ISO 27001, 2005 yılında yayınlanmasıyla yürürlüğe girmiş ve ISO/IEC 27000 standart serisi altında yerini almıştır. Söz konusu bu standart 2006 yılında Türk Standardı olarak kabul edilerek, ”TS ISO/IEC 27001 Bilgi Teknolojisi – Güvenlik Teknikleri – Bilgi Güvenliği Yönetim Sistemleri – Gereksinimleri” adıyla yayınlanmıştır [12].

ISO 27001 yaşayan, dolayısı ile tehdit ve saldırılara reaksiyon gösteren ve kendini yenileyen bir bilgi güvenliği sisteminde yer alması gereken öğeleri tanımlamaktadır [13]. ISO 27001, BGYS’yi kurmak, işletmek, izlemek, gözden geçirmek, sürdürmek ve iyileştirmek için standart proses yaklaşımını benimsemiştir. Bu proses yaklaşımı güvenlik önlemlerinin belirlenip kurulması, uygulanması, etkinliğinin gözden geçirilmesi ve iyileştirilmesi süreçlerini ve bu süreçlerin sürekli olarak tekrarlanmasını içerir. Bu süreçler Planla, Uygula, Kontrol et, Önlem al (PUKÖ) döngüsünden oluşan bir model olarak da ortaya konmuştur.

BGYS’de kurum kendine bir risk yönetimi metodu seçmeli ve risk işleme için bir plan hazırlamalıdır. Risk işleme için standardda öngörülen kontrol hedefleri ve kontrollerden seçimler yapılmalı ve uygulanmalıdır. Şekil 2’de gösterilen PUKÖ Modeli uyarınca risk yönetimi faaliyetlerini yürütmeli ve varlığın risk seviyesi kabul edilebilir bir seviyeye geriletilene kadar çalışmayı sürdürmelidir [11].

ekil_2.jpg

Şekil 2- BGYS’nin PUKÖ Modeli [13]

PUKÖ Model’inin süreçleri aşağıdaki gibidir:

Planla: BGYS’nin kurulması

Sonuçları kuruluşun genel politikaları ve amaçlarına göre dağıtmak için, risklerin yönetimi ve bilgi güvenliğinin geliştirilmesiyle ilgili BGYS politikası, amaçlar, hedefler, prosesler ve prosedürlerin kurulması.

Uygula: BGYS’nin gerçekleştirilmesi ve işletilmesi

BGYS politikası, kontroller, prosesler ve prosedürlerin gerçekleştirilip işletilmesi.

Kontrol Et: BGYS’nin izlenmesi ve gözden geçirilmesi

BGYS politikası, amaçlar ve kullanım deneyimlerine göre proses performansının değerlendirilmesi ve uygulanabilen yerlerde ölçülmesi ve sonuçların gözden geçirilmek üzere yönetime rapor edilmesi.

Önlem Al: BGYS’nin sürekliliğinin sağlanması ve iyileştirilmesi

BGYS’nin sürekli iyileştirilmesini sağlamak için yönetimin gözden geçirme sonuçlarına dayalı olarak, düzeltici ve önleyici faaliyetlerin gerçekleştirilmesi [12].

ISO 27000 Ailesi

Bilgi güvenliği ile ilgili olarak ISO 27000 serisi güvenlik standartları, (Şekil 3) kullanıcıların bilinçlenmesi, güvenlik risklerinin azaltılması ve de güvenlik açıklarıyla karşılaşıldığında alınacak önlemlerin belirlenmesinde temel bir başvuru kaynağıdır. Bu standartlar temel ISO’nun 9000 kalite ve 14000 çevresel yönetim standartlarıyla da ilgilidir [12].

ISO 27000 standardı, ISO 27000 standartlar ailesi ile ilgili kavramların açıklanmasını sağlayan ve bilgi güvenliği yönetimine yönelik temel bilgileri içeren bir standarttır. ISO 27000 standartlarının büyük bir çoğunluğu bilenen, diğerleri ise basım aşamasında olan standartlar olarak verilebilir.

ISO/IEC 27000 standart serisi altında yer alan ve ISO 27001 için gereken güvenlik kontrollerini içeren standart; ISO/IEC 27002:2005 – Bilişim Teknolojisi – Güvenlik Teknikleri – Bilgi Güvenlik Yönetimi için Uygulama Kılavuzu’dur. Bu standardın önceki adı ISO/IEC 17799:2005’dir. 1 Temmuz 2007 tarihinde, ISO tarafından yapılan teknik bir düzenlemeyle ISO/IEC 17799:2005 standardının adı, ISO/IEC 27002:2005 (ISO 27002) olarak değiştirilmiştir [14].

ekil_3.jpg

Şekil 3- ISO 27000 Standart Ailesi [15]

Güvenlik Kontrol Alanları

ISO 27001’de BGYS oluşturmada güvenlik için gereken 11 kontrol alanı, 39 kontrol hedefi ve 133 kontrolü tanımlayan bir uygulama kılavuzudur. Bu kontrol alanları aşağıda kısaca açıklanmaktadır [16]:

  1. Güvenlik Politikası: Bilgi güvenliği için yönetimin desteğini ve katılımını sağlamak, bilgi güvenliğinin önemini vurgulamak
  2. Bilgi Güvenliği Organizasyonu:  Bilgi güvenliğinin koordinasyonu ve yönetimi için bir yönetim çerçevesi geliştirmek, bilgi güvenliği için sorumlulukları tahsis etmek
  3. Varlık Yönetimi: Tüm kritik veya hassas varlıklar için uygun bir koruma düzeyi belirlemek
  4. İnsan Kaynakları Güvenliği: Kullanıcı eğitimini ve bilincini teşvik ederek hırsızlık, dolandırıcılık veya bilgisayar kaynaklarının kötüye kullanılma riskini azaltmak
  5. Fiziksel ve Çevresel Güvenlik: Kuruluşun tesislerindeki bilgi işlem olanaklarına yetkisiz erişimi önlemek ve bilgilerin zarar görmesini engellemek
  6. Haberleşme ve İşletim Yönetimi: Bilgi işlem tesislerinin uygun ve güvenli kullanımını sağlamak ve olay müdahale prosedürleri geliştirerek riski ve sonuçlarını azaltmak
  7. Erişim Kontrolü: Yetkisiz erişimlerin tespiti ve ağ sistemlerinin korunması için gerekli kontrol faaliyetlerini sağlamak
  8. Bilgi Sistemleri Edinim, Geliştirme ve Bakımı: İşletim sistemleri ve uygulama yazılımlarını bilgi kaybına karşı güncellemek ve kayıpları engellemek
  9. Bilgi Güvenliği İhlal Olayı Yönetimi: Etkin bir bilgi güvenliği sağlamak için olayların zamanında tespit etmek ve gerekli önlemleri almak
  10. İş Sürekliliği Yönetimi: Kritik arızalar, olaylar, doğal afetler, felaketlerden kaynaklanan kesintilere karşı hızla müdahale edilebilmek için kapasite geliştirme faaliyetleri gerçekleştirmek
  11. Uyum: Mevcut güvenlik politikalarının tüm yasalara ve yönetmeliklere uygun olduğundan ve üst yönetim onayından geçtiğinden emin olmak

Yazılım Geliştirme Süreçleri ve ISO 27001

ISO 27001, gerek yazılım geliştirme süreçleriyle doğrudan ya da dolaylı ilişki içerisinde olan birçok kontrol içermektedir. Bu kontroller ve kontrol kapsamında yazılım geliştirme süreci aşamalarında gerçekleştirilmesi gereken hususlar aşağıdaki gibidir.

Analiz Aşamasına İlişkin Kontroller

Yazılım geliştirme sürecinin en önemli aşamasıdır. Bu aşamada yapılacak yanlışlıklar yazılım projesinin başarısını en yüksek düzeyde etkilemektedir.

Bu aşamada kurumun mevcut bilgi teknolojileri, varsa sistem veri tabanı yapısı, sistem veri yapıları tanımlanmalıdır. Kullanıcı uygulama ihtiyaçları doğrultusunda yazılım ihtiyaç tanımları, veri yapılarını güncelleyen giriş bilgileri, uygulama yazılım ara yüz tanımları, yazılımın üreteceği çıktı bilgileri, yazılım için istenen sorgular gibi tanımlar belirlemelidir.

Yapılacak analiz, uygulama servislerinin performans ya da kısıtlamalar yönünden zorlanması ve doğru hizmet vermelerini engelleme girişimlerini de hesaba katmalıdır. Sunucu tarafındaki konfigürasyonların güvenli şekilde yapılması gerekir.

Yazılım için devreye alınacak yeni bilgi sistemleri için iş gereksinimleri bildirgeleri ya da mevcut bilgi sistemlerine yapılan iyileştirmeler güvenlik kontrolleri için gereksinimleri belirlemelidir. (A.12.1.1 – Güvenlik gereksinimleri analizi ve belirtimi) Yeni bilgi işleme tesisleri için, bir yönetim yetki prosesi tanımlanmalı ve gerçekleştirilmelidir. (A.6.1.4 – Bilgi işleme tesisleri için yetki prosesi)

Yetkilendirilmiş kullanıcıların sistemde neler yapabileceği uygun şekilde belirtilmelidir, aksi durumlarda başka kullanıcı haklarını kullanma, yetkisiz olduğu halde verilere erişebilme gibi sakıncalar doğabilir. Kuruluş içinden ya da dışından sağlanmış olsun tüm ağ hizmetlerinin güvenlik özellikleri, hizmet seviyeleri ve yönetim gereksinimleri tanımlanmalıdır. (A.10.6.2 – Ağ hizmetleri güvenliği)

İletişimin bütün türlerinin kullanımıyla ve bilgi değişimini korumak için resmi değişim politikaları, prosedürleri ve kontrolleri oluşturulmalıdır. (A.10.8.1 – Bilgi değişim politikaları ve prosedürleri)

Yazılımda kullanılacak harici materyaller için fikri mülkiyet haklarına göre materyallerin kullanımı ve patentli yazılım ürünlerinin kullanımı üzerindeki yasal, düzenleyici ve anlaşmalarla doğan gereksinimlere uyum sağlanmalıdır. (A.15.1.2 – Fikri mülkiyet hakları (IPR))

Kuruluşun dış taraflarla yapacağı bilgi ve yazılım değişimi için anlaşmalar yapılması gerekir, bu gereksinim analiz aşamasında karşılanmalıdır. (A.10.8.2 – Değişim anlaşmaları)

Tasarım Aşamasına İlişkin Kontroller

Tasarım aşamasında, uygulanacak geliştirme safhaları, her safha için girdiler, çıktılar ve kontrol metotları, iş zaman planları, uygulama planlarının yanı sıra yapılacak işlerin neler olduğu, bu işler için gerekli zaman ve kaynak ihtiyaçlarının tespiti, ilerlemenin izlenmesi için kullanılacak metotlar belirlenmelidir.

Tüm yazılım kullanıcıları için her türlü yazılım sistemine erişim kullanıcı isimleri ve şifreler ile sağlanmalı, bu şifre ve kullanıcı isimleri her kullanıcı için tek ve benzersiz olacak şekilde tasarlanmalıdır. Tasarımda kullanıcılar işlevlerine ve sorumluluk alanlarına göre gruplandırılmalı, grup bazında programlara ve veri tabanlarına erişim hakları verilerek yetkisiz kişilerin sistemi kullanmasına imkân verilmemelidir. Uygulama içinde çalışmalar her zaman menüler yardımıyla olmalı, kullanıcı programları kullanırken hiçbir zaman uygulamanın sağladığı komutlar dışına çıkma olanağı bulmamalıdır.

Bilgi sistemlerinin birbirine bağlantısı ile ilişkili bilgiyi korumak için politikalar ve prosedürler geliştirilmeli ve gerçekleştirilmeli, bilgi sızması fırsatları önlenmelidir. (A.10.8.5 – İş bilgi sistemleri, A.12.5.4 – Bilgi sızması ) Bu kapsamda tasarım aşamasında yüksek riskli uygulamalara ek güvenlik sağlamak için bağlantı sürelerinde sınırlandırmalar kullanılması gerektiği hesaba katılmalıdır. (A.11.5.6 – Bağlantı süresinin sınırlandırılması)

Tehditlerden korunmak için ve iletilmekte olan bilgi dâhil ağı kullanan sistemler ve uygulamalar için güvenliği sağlamak amacıyla ağlar uygun şekilde yönetilmeli ve kontrol edilmelidir. (A.10.6.1 – Ağ kontrolleri) Kullanıcılar ve destek personeli tarafından bilgi ve uygulama sistem işlevlerine erişim, oluşturulması önerilen tanımlanmış erişim kontrol politikasına uygun olarak kısıtlanmalıdır. (A.11.6.1 – Bilgi erişim kısıtlaması)

Kodlama Aşamasına İlişkin Kontroller

Yazılımlarda kodlamalar yapılırken güvenli yazılım kodlama teknikleri kullanılmalıdır.

Yazılımlar, modüler planlanmalı, modüler arası ilişkilerde yapısallık göz önünde bulundurulmalı ve programcı müdahalesi asgari seviyede olacak şekilde parametrik hazırlanmalıdır. Sisteme yeni modülerin ilavesi, modüllerin değiştirilmesi ya da silinmesi durumda sistemin bütünü etkilenmemelidir. Yazılımlarda kullanılacak menü, dosya, alan, değişken, tablo gibi her türlü isim anlamlı olarak seçilmelidir.

Aynı veri veya bilginin farklı veritabanı tabloları için ayrı ayrı girilmesine engel olunmalıdır (Normalizasyon). Tutarsız kod ve verilerin girişine engel olacak tedbirler alınmalı, veri tipleri ile kullanıcıların giriş yaptıkları alanların birbirleri ile tutarlı olma durumu kod içinde yapılan düzenlemeler ile giriş anında kontrol edilmelidir. Hata yapma olasılığı yüksek verilerin girildiği alanlar için liste veya seçenek kutuları kullanılmalıdır.

Özellikle web yazılımının kullanıcı bilgisayarında bir atak aracı olarak kullanılan çapraz site betiklerine (Cross side scripting) ve kontrolü ele almak üzere tamponların taşırılması gibi tehditlerden doğabilecek hatalar uygun bir şekilde kontrol edilmelidir. Kontrol edilmeyen hatalar dış dünyaya sistem ile ilgili bilgiler verebilir ve yeni açıklara zemin hazırlayabilmektedir.

Yazılımların karşılaştığı en önemli tehditlerden biri uygulamalarda gerçekleşen veri giriş-çıkışında kontrollerin tam ve sağlıklı olarak yapılmadan işleme alınması ya da çıktı olarak verilmesidir.  Uygulamalara gerçekleşen veri girişinin, bu verinin doğruluğunun ve uygunluğunun geçerlenmesi gerekmektedir. Yazılımda girdi parametreleri yazılım dışından verilebilir olmamalıdır. Kayıt olanakları ve kayıt bilgisi kurcalanma ve yetkisiz erişime karşı korunmalıdır. (A.10.10.3 – Kayıt bilgisinin korunması) Böyle bir koruma olmaması durumunda SQL (Structed Query Language) enjekte etme ve komut enjekte etme gibi yöntemlerle sistemlere girebilecek kodlar büyük zararlar verebilir. (A.12.2.1 – Giriş verisi geçerleme) Giriş verisi kadar çıkış verisi de önemlidir. Yazılımda çıkış verisi sistemimiz hakkında bilgi vermemeli veri sızıntısına açıklık bırakmamalıdır. Bir uygulamadan gerçekleşecek veri çıktısı, depolanan bilginin işlenmesinin koşullara göre doğruluğunun ve uygunluğunun sağlanması için geçerlenmelidir. (A.12.2.4 – Çıkış verisi geçerleme) Veri işleme hataları veya kasıtlı eylemler nedeniyle herhangi bir bilgi bozulmasını saptamak için geçerleme kontrolleri uygulamalar içine dâhil edilmelidir. (A.12.2.2 – İç işleme kontrolü)Uygulamalarda verinin kimliğinin doğruluğunu sağlama ve mesaj bütünlüğünü koruma gereksinimleri tanımlanmalı bunlarla ilgili uygun kontroller tanımlanmalı ve gerçekleştirilmelidir. (A.12.2.3 – Mesaj bütünlüğü)

Kötü niyetli koda karşı korunmak için saptama, önleme ve kurtarma kontrolleri ve uygun kullanıcı farkındalığı prosedürleri gerçekleştirilmeli, elektronik mesajlaşmadaki bilgi uygun şekilde korunmalıdır. Benzer bir biçimde mobil kod kullanımı yetkilendirildiğinde, konfigürasyon yetkilendirilmiş mobil kodun açıkça tanımlanmış bir güvenlik politikasına göre işletilmesini sağlamalı ve yetkilendirilmemiş mobil kodun yürütülmesi önlenmelidir. (A.10.4.1 – Kötü niyetli koda karşı kontroller, A.10.8.4 – Elektronik mesajlaşma, A.10.4.2 – Mobil koda karşı kontroller)

Kriptografi teknikleri yazılımlarda güvenliği sağlamada faydalanılan önemli tekniklerdir. Bilginin korunması için kriptografik kontrollerin kullanımına ilişkin bir politika geliştirilmeli ve gerçekleştirilmelidir. (A.12.3.1 – Kriptografik kontrollerin kullanımına ilişkin politika) Kriptografi için yeterli rastgeleliği sağlayan kriptografik tekniklerin kullanım desteklenmeli ve anahtar yönetimi bulunmalıdır. (A.12.3.2 – Anahtar yönetimi)

Yazılım geliştirme hizmetinin kuruluş dışından sağlanması durumunda, hizmeti sunan şirketin hareketleri ve yaptığı işler denetlenmeli ve izlenmelidir. (A.12.5.5 – Dışarıdan sağlanan yazılım geliştirme) Yazılım geliştiricilerce gerçekleştirilen ve revizyon kontrolü yapılmayan yazılım değişiklikleri karmaşaya ve çeşitli sorunlara neden olabilmektedir. Yazılım değişikliklerin gerçekleştirilmesinde resmi değişim kontrol prosedürlerinin kullanılması bu karmaşayı ortadan kaldıracaktır.(A.12.5.1 – Değişim kontrol prosedürleri)

Test Aşamasına İlişkin Kontroller

Kodlama aşamasından sonra gerçekleştirilecek test aşamasında yazılım uygulaması modüllerinin nitelik ve nicelik testleri yapılır. Geliştirme, test ve işletim olanakları, işletilen sisteme yetkisiz erişim veya değişiklik risklerini azaltmak için ayrılmalıdır. (A.10.1.4 – Geliştirme, test ve işletim olanaklarının ayrımı)

Bu aşamada bir test planı oluşturulmalı bu planda; test senaryoları, veri çeşitleri ve veri örnekleri ve test tasarım tanımlamaları ayrıntılı olarak belirtilmelidir. Test,   proje yöneticisi ve kullanıcı yetkilileri tarafından koordine ile programcı ve tasarımcılarla, gerçek kullanıcılar tarafından yapılmalıdır. Sistemin bütünü göz önünde bulundurularak modüllerin amaçlanan fonksiyonları tam ve etkin olarak yerine getirip getirmediği, birbiri ile entegre çalışıp çalışmadığı, veri alışverişi (varsa) yapıp yapmadığı kontrol edilmelidir.

Veri tabanının büyüklüğü ve listelenen, sorgulanan kayıt sayısı ile sistemin performans ilişkisi kontrol edilmelidir.  (A.12.2.1 – Giriş verisi geçerleme, A.12.2.4 – Çıkış verisi geçerleme, A.12.2.2 – İç işleme kontrolü) Test verisi dikkatlice seçilmeli, korunmalı ve kontrol edilmelidir. (A.12.4.2 – Sistem test verisinin korunması)

Yazılım ürünlerinin,   sistemin ve alt sistemlerin modül,   fonksiyon,   entegrasyon ve performans testlerinden sonra testlerde ortaya çıkan değerlere uygun olarak gerçek bilgi ve verilerle, gerçek kullanıcı donanım ve işletim ortamında tüm ihtiyaçların karşılandığı kontrol edilmelidir.

Revizyon istekleri göz önüne alınarak gerekli düzeltme ve düzenleme işlemleri yapılır. Entegrasyon, performans ve revizyon testleri tamamlandıktan sonra başlar. Test süresi tüm ihtiyaçların tamamlandığı ve kontrolü yapıldıktan sonra biter.

Test aşaması bitip uygulama devreye alınırken tüm çalışanlar, yükleniciler ve üçüncü taraf kullanıcıların bilgi ve bilgi işleme olanaklarına olan erişim hakları, istihdam, sözleşme veya anlaşmalarının sonlandırılmasıyla birlikte kaldırılmalı ya da değiştirilmesiyle birlikte ayarlanmalıdır. (A.8.3.3 – Erişim haklarının kaldırılması)

Bakım Aşamasına İlişkin Kontroller

Yazılım geliştirme sürencin son aşaması, bakım aşamasında da alınması gereken bir takım güvenlik önlemlerinden söz etmek mümkündür.

Yazılım paketlerine yapılacak değişiklikler, belirli bir incelemeden geçirilmeli, gerek duyulanlar gerçekleştirilmeli, bunun dışındakiler önlenmelidir. Tüm değişiklikler sıkı bir biçimde kontrol edilmelidir. (A.12.5.3 – Yazılım paketlerindeki değişikliklerdeki kısıtlamalar) Benzer bir biçimde kullanıcıların erişim hakları da resmi bir proses kullanarak düzenli aralıklarda gözden geçirmelidir. (A.11.2.4 – Kullanıcı erişim haklarının gözden geçirilmesi)

Yazılım Kaynak kodlarının bozulma riskini azaltmak ve bilgi kaybından korumak amacı ile kaynak kodları yazılım uzmanlarının işletim sistemleri içinde değil sunucu terminal üzerinde bulunmalıdır. Program kaynak koduna erişim kısıtlı olmalıdır. (A.12.4.3 – Program kaynak koduna erişim kontrolü) Söz konusu ortama erişim yalnızca ilgili yazılım uzmanı tarafından sağlanmalıdır.

Donanım arızaları, yazılım hataları, insandan kaynaklanan nedenler ve doğal afetler yazılımlarda bilgi kayıplarının ana sebepleridir.  Sebep her ne olursa yedekleme yazılımlarda hatalardan ve problemlerden geri dönüş için son derece önemlidir. Yedekleme için kurtarılabilir veri saklama yöntemleri uygulanmalı, bilgi ve yazılımlara ait yedekleme kopyaları düzenli olarak alınmalı ve alınan yedekler belirlenecek bir politikaya göre uygun şekilde düzenli olarak test edilmelidir. (A.10.5.1 – Bilgi yedekleme)

Belirlenmiş bir ön yetkilendirme olmaksızın teçhizat, bilgi veya yazılım bulunduğu yerden çıkarılmamalıdır. (A.9.2.7 – Mülkiyet çıkarımı) Eğer yetkilendirme varsa ve bilgi içeren ortamın, kuruluşun fiziksel sınırları ötesinde taşınması söz konusu ise taşıma esnasında, bilgiler yetkisiz erişime, kötüye kullanıma ya da bozulmalara karşı korunmalıdır. (A.10.8.3 – Aktarılan fiziksel ortam)

Bilgisayar donanımlarının depolama ortamı içeren tüm parçaları, elden çıkarılmadan önce, herhangi bir hassas veri ve lisanslı yazılım varsa kaldırılmasını veya güvenli şekilde üzerine yazılmasını sağlanmalıdır. (A.9.2.6 – Teçhizatın güvenli olarak elden çıkarılması ya da tekrar kullanımı)

Kurumların ve şirketlerin operasyonel sistemlerindeki yazılımların kurulmasını kontrol etmek için prosedürler bulunmalıdır.(A.12.4.1 – Operasyonel yazılımın kontrolü)

Zayıf parolalar ve şifreler bilişim sistemleri açısından önemli açıklıklar ortaya çıkarmaktadır. Kullanıcılardan, parolaların seçiminde ve kullanımında iyi güvenlik uygulamalarını izlemeleri istenmelidir. Bu ve bunun gibi hususlar için bilinçlendirme çalışmaları yapılmalı eğitimler verilmelidir. (A.11.3.1 – Parola kullanımı)

İşletim sistemleri değiştirildiğinde, kurumsal işlemlere ya da güvenliğe hiçbir kötü etkisi olmamasını sağlamak amacıyla iş için kritik uygulamalar gözden geçirilmeli ve test edilmelidir. (A.12.5.2 – İşletim sistemindeki değişikliklerden sonra teknik gözden geçirme)

Sonuç

Kurumların güvenli bir ortamda faaliyet gösterebilmeleri için dokümante edilmiş bir BGYS’yi hayata geçirmeleri gerekmektedir. Bu kapsamda ISO 27001 standardı tüm dünyada kabul görmüş ve en iyi uygulamaları bir araya getiren bir modeldir. Standart bu yönetim sistemini oluştururken ele aldığı önemli alanlardan biri de yazılım geliştirme süreçlerinde güvenliğinin sağlanması ve buna ilişkin olarak yazılım geliştirme politikasının oluşturulmasıdır. Yazılım geliştirme süreçlerinde standardın belirttiği gizlilik, bütünlük ve erişebilirlik kavramları mutlaka dikkate alınmalıdır. Bu kapsamda, yazılım geliştirmenin her aşamasında belirli bir güvenlik politikasının uygulanması kritik önem taşımaktadır. Kurumsal güvenlik için öncelikle yazılı olarak kurallar belirlenmelidir. Etkin bir BGYS kurmaya çalışan ve bunu ISO 27001 standardına uyumlu yapmak isteyen tüm kurumların oluşturacağı bu politikada belli kontrol maddeleri asgari olarak yer almalıdır.

Dr. İzzet Gökhan Özbilgin, Sermaye Piyasası Kurulu; Mustafa Özlü, Türk Patent Enstitüsü

Kaynak: https://www.bilgiguvenligi.gov.tr/yazilim-guvenligi/yazilim-gelistirme-surecleri-ve-iso-27001-bilgi-guvenligi-yonetim-sistemi.html