Arşiv | Bilişim Bilirkişiliği RSS feed for this section

Canvas (Kanvas) İş Modeli Nedir?

13 Haz

Kanvas İş Modeli Alex Osterwalder tarafından geliştirilmiş ve Eric Ries‘in önderlik ettiği “Yalın Girişimcilik” akımında kendine çok önemli yer edinmiş bir İş Planı hazırlama aracıdır. Çok basit olması ve her şeyi bir arada görmeye imkan tanıması kullanılabilirliğine büyük katkılar sağlamaktadır. Haftalarca hatta aylarca üzerinde çalışılmış ve ardından çöpe atılacak (gerçekçi olmadığı için) kapsamlı bir iş Planı hazırlamak yerine basit ama koşullar değiştikçe veya yeni bilgiler elde edildikçe uyarlamalar yapılacak bir model bir çok girişimciye çok daha kullanışlı gelmeye başlamıştır.

Bir iş fikrini hayata geçirmeden önce modellemek oldukça önemlidir. Birincisi fikir olgunlaşmamıştır, değişime açıktır ve zaman içerisinde uyarlamaya gidilmelidir. İkincisi fikri standartlara bağlı bir kağıda dökmek ve diğer insanlarla olabilirliğini tartışmak olanağını tanır. Bunu onlarca sayfa sürecek bir iş planı üzerinden yapmak oldukça zordur. Kanvas iş modeli, Yalın Girişimcilik akımında önemli yere sahip bir iş modelidir. Tüm bileşenleri tek bir sayfa üzerinden görebilmeniz büyük esneklik sağlar.

Değer Önerileri:

Hangi müşteri kriterlerine hangi sıklıkta nasıl fayda sağlıyor? Birden fazla müşteri kriteri olması durumunda farklı öneriler olacaktır.

Acıları nedir, kazanımları ne olabilir, iyi düşünülmelidir. (pain & gain) Acılarını dindirici ağrı kesiciler sunmak vitamin vermekten her zaman daha iyidir, çünkü vitaminler ilk kısılacak kalemlerdir.

Müşteri Kesitleri:

Farklı amaçla, dağıtım kanalıyla, farklı sorunlara çözüm getirmeyle gibi durumlarda farklı segmentler oluşur. Herkese hitap eden bir ürün muhtemelen hiç kimseye hitap etmiyordur, bu nedenle müşteri iyi tanımlanmalıdır. (get out of building)

Kanallar:

Ürün nasıl ulaştırılacak? Mesela kitap satışı internet üzerinden yapılacak. Ya da kozmetik ürünleri AVON modeliyle müşteriye ulaşacak gibi. Ancak burada üzerinde durulması gereken Pareto ilkesine bağlı olarak satışların %80’i ürünlerin %20’sini oluşturmaktadır. Bu %20’lik kısım kolay ulaşılabilir yerde olmalıdır. Müşteriye ulaşmaya diğer örnekler online satış, reklamlar (bilboard, sms, tv reklam vb) verilebilir.

Google reklam hizmeti ile kaç kişinin örneğin sitenizi ziyaret ettiğini, bunlardan kaçı ne kadar kaldığı, kaçı müşteriniz oldu gibi hizmetler alınabilir.

Müşteri İlişkisi:

How do you get, keep and grow it (CRM)

Bazı örneklerde müşteri ilişkisi çok kısıtlıdır. Örn: Simitçi, müşterisi ile ilgili pek bilgiye ihtiyacı yok

Banka örneğinde ise farklı şekillerde müşteri ilişkisi bulunmaktadır. ATM üzerinden müşteri ilişkisi oldukça sınırlıyken özel bankacılık adında şubede yürütülen ilişki kapsamlıdır. Bu beraberinde kuruma ek maliyette getirir. Big Data konseptinde müşteriye özel indirimlerde burada tanımlanabilir.

How do you get – Vitrin, reklam, billboard üzerinden ulaşmak. Ayrıca, Yeni müşteri elde etme maliyeti, bir müşteriyi tutma maliyeti ile kıyaslanır. Genelde düzenli müşterilerin getirdiği gelir ile müşteri tutma maliyeti hesaplandığında bu hesap yeni müşteri elde etme maliyetinden düşüktür. Bu nedenle var olan müşteriye yönelik kampanyalar fayda sağlayabilir.

How to you keep – loyalty card, promosyon, indirim kuponları, otomize işlemler (bebek bezinin düzenli postalanması gibi) işler müşteriyi tutmak içindir.

How to you grow – Müşterilerin aynı zamanda satış temsilcisi gibi kullanıldığı model buna bir örnek olabilir. Dropbox’ta her müşteri getirene yeni bir alan tanımlanması buna örnek verilebilir.

Gelir Kaynakları:

Klasik ve evrilen gelir kaynakları olmak üzere ikiye ayrılabilir. 1000 tane A ürününü birim fiyatı 10 liradan satacağım demek sabit gelir kaynağıdır. Evrilen gelir kaynağına gmail örneği verilebilir. 1GB altı bedava iken üzerine ek ücret ödemek gerekiyor. Yada yine Google’ın arama motoru örneğinde olduğu gibi geliri doğrudan kullanıcı yerine reklam firmalarından elde etmesi gibi.

Fiyatlandırma yaparken maliyetim bu, üzerine %10 gibi kar koyup satarım demek her zaman mantıklı değil, bunun yerine aralık vermek daha akıllıca olabilir. Maliyetim bu, alt sınırımda bu denebilir. Üst sınır ise müşteriye kattığınız değere göre belirlenip fiyatlandırılabilir.

Kilit Kaynaklar:

İş modelinin çalışabilmesi için gerekli kilit kaynaklardır.

Kilit Etkinlikler:

Yazılım, tasarım, AR-GE, Pazarlama gibi öğelerdir. Hangisi önemli, hangisi iyi yapılmalı sorusunun cevabıdır. Nelerin yapılması zorunludur?

Kritik Ortaklar:

Eğer ürününüz Migros gibi bir market üzerinden kullanıcıya sunulacaksa burada Migros sizin için kritik ortağı oluşturmaktadır. İşin bir kısmının outsource olarak yaptırılmasıdır bir yerde denebilir.

Maliyet Yapısı:

İşi yapmanın sabit maliyeti yanında değişken maliyetide vardır. Eğer bir iş satış yaptıkça maliyet çıkartıyorsa tercih edilir ve değişken maliyet olarak adlandırılır. Böylece satış yaptıkça maliyet karşılanır. Hatta maliyetde outsource ile başkasına yaptırılabiliyorsa bu hiçte fena bir model değildir. SecureDrive örneğinde araçların temini buna örnek verilebilir. Bankalar ise bu fonun karşılanmasında kritik ortaklardır. Hem de bedava reklam kaynağı.

GENEL İŞ MODELLERİ

1. Yem ve Kanca Modeli

İlk önce tanıştırma amaçlı ucuz veya ücretsiz ürün kullanıma sunulur. Müşterisi olduktan sonra fiyat artırılır ve kar elde edilmeye başlanır. Fiyatı 70 lira olup kartuşu bir o kadar olan yazıcılar, tıraş bıçakları (makinesi ve jiletlerin ayrı satışı) bu modele örnek verilebilir.

2. Fremium Modeli (Free + Premium)

Ücretsiz ve ayrıcalıklı modeli tanımlar. Bilgisayar oyunlarının ücretsiz kurulup oynanmaya başlanması, ancak belirli seviyeleri geçebilmek için (ayrıcalık kazanmak için) ücret talep edilmesi buna örnektir. Ücret yerine oyunun sosyal medyada reklamı veya yeni bir müşterinin kazandırılması ise ücret yerine elde dilecek diğer gelirlerdir.

3. Bağlantı Platformu

Farklı müşteri grupları arasında bağlantıyı tanımlar. Örneğin Facebook modelinde iki kullanıcı grubu vardır, biri doğrudan hesabı kullanıcılardır, diğeri ise reklam verici firmalardır. Kullanıcılara hizmet ücretsiz verilirken reklam isteyenlere kullanıcı bilgileri ücretli hizmet verilerek bir iş modeli oluşturulur.

İş modeli oldukça önemlidir, çünkü buna göre tüm tasarım ve süreç baştan sona yenilenir. Dropbox, Skype, Linkedin gibi ürünlerin günümüzden farklı bir iş modeliyle yapıldığını düşünün. Üründeki değişimleri kolayca hayal edebilirsiniz. Bu yüzden başarıya ulaşmak için iş modeli oldukça önemli.

YALIN GİRİŞİMCİLİK

Bir işletmede faaliyetleri değer yaratan/ değer yaratmayan diye ikiye ayırıp yaratmayanları atmak, yaratanları ise kaynakları verimli kullanarak yapmaktır. “Müşterinin istediği şeyi yap” dayanak noktasıdır. Bu noktada girişimcinin sunmak istediği hizmet veya ürünle ilgili kendisine aşağıda ki soruları sorması gerekmektedir.

– emin misin?

– nereden biliyorsun?

– kanıtların var mı?

İş fikrine ait Kanvas modelini oluştur. Varsayımları üret. Önem sıralamasını yap. En önemlileri test et. Modeli güncelle. Varsayımları, fikrin uzun bir süre sonra ortaya çıkacak ürün oluşmadan test etmenin pekçok yöntemi vardır. Bunları aşağıda sıralamadan evvel bu model aslında hızlı başarısızlık olarak adlandırılır. Hızlı başarısız olmanın neresinde fayda var demeyin, onca emek ve para harcadıktan sonra ürünü elde ettikten sonra başarısız olmasını hiç tercih etmezsiniz. Süreç boyunca farklı başarısızlıkları yaşayarak iş modelinizi güncellemeniz ve sonunda başarılı bir modele ulaşmanız çok daha mantıklıdır. Gelelim test etme yöntemlerinden bazılarına.

1. Minimum Value Product (MVP): Bir ürünü/servisi yansıtacak minumum özelliklere sahip prototip diye tanımlanabilir sanırım. Doğrulama yapmak için bir prototip yeterli olabilir. İnternette farklı ürünlere ait pekçok MVP videosu bulunabilir. Örn: Dropbox Hem ürüne olan ilgiyi test etmek, hemde ürün ortaya çıkmadan gösterilen ilgiye göre yatırım almaya çalışmak dropbox örneğinde çalışmıştır. Doğrudan yatırım alamayan bu iş fikri, MVP videosu hazırlandıktan sonra yüzbinlerce insanın birkaç günde izlemesi ve ürünle ilgili gelişmelerden haberdar olmak istemesi başta yatırım alamayan bir iş fikrinin yatırım alabilmesini sağlamıştır.

2. Wizard of OZ: Varmış gibi bir sistem yapıp insanlara kullandırıp doğrulamaya çalışılır. Akıllı alışverişlistesi buna örnek verilebilir. Sanki sistem tüm marketlerdeki kampanyaları tarıyormuş ve ona göre bir liste oluşturuyormuş gibi simule edilir, ancak aslında yapılan tüm iş manueldir (concierge). Kullanıcının davranışı incelenerek böyle bir iş fikrinin tutup tutmayacağı ürün ortaya çıkmadan test edilmiş olunur.

3. A-B Sınamaları: Satışı artıran ürünün özelliğini bulmakta kullanılabilir. Her defasında temel üründen birşey değiştirilip satışa sunulur. Test edilir ve hangisinin daha iyi olduğu bulunmaya çalışılır.

Kaynakça:

http://emrahakkoyun.com/kanvas-is-modeli/

http://www.adiloran.com/kanvas/

Ek Kaynaklar:

Kanvas İş Modeli-Sade

http://www.businessmodelgeneration.com/canvas

 

View story at Medium.com

Reklamlar

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

YETKİNLİK, SORUMLULUK VE BAŞARI

29 Oca

 

Gelişen bilişim teknolojilerinin yaygın bir şekilde kullanılmasıyla beraber tüm sektörlerde belirli ihtiyaçlara bilişim çözümleriyle cevap bulma eğilimi artmaktadır. Öyle ki günlük hayatımızın her anına dâhil olmuş bilişim teknolojileri özellikle insan hayatına hitap eden üreticiler ve hizmet sunucular için her geçen gün daha fazla tercih edilmektedir.

Bilişim ürün ve hizmetlerinin gelişmesi, daha fazla tercih edilmesi ve bu konularda yapılan çalışma ve projelerin hızla artması birçok problemi de beraberinde getirmiştir. Bilişim sektöründe ürün veya hizmet üretimi yapan her organizasyon yürütülen işlerin, idare edilen personelin ve tüketilen kaynakların doğru yönetilmesi için her geçen gün yeni yollar denemekte ve ideal yönetim süreçlerini araştırmaktadır.

Bilişim sektöründe ürün ve hizmet üreten veya bilişim ürünü veya hizmeti tedarik eden her organizasyon bu iş ve projelerin yönetimi için farklı yöntemler takip etmektedir. Bu yöntemler organizasyonuna göre bazen belirsiz olup duruma göre değişirken bazı organizasyonlarda da standartlaşmış süreçler olarak karşımıza çıkmaktadır.

Uluslararası olarak tüm dünyada yaygın kullanımı olan ve kabul gören PMI(Project Management Institue) Proje Yönetim Süreci standardı, COBIT(Control Objectives and Related Information Technologies) çerçeve dokümanı ve ITIL(Information Technology Infrastructre Library) bilgi teknolojileri kütüphanesi gibi yayımlar hem organizasyonların bilişim ürün ve hizmet üretim süreçleri hem de ürün ve hizmet tedarik süreçleri için standartlar, hedefler ve ideal süreçler tanımlamaktadır.

COBIT, bir organizasyon için tanımlı kuralların stratejik hedefler doğrultusunda uygulanma kültürü kazanılması anlamında; yönetişim kavramı üzerinde durmakta, yapılan bilişim iş ve projelerinde başarının, tanımladığı hedeflere uyulması durumunda elde edileceğini söylemektedir. COBIT tüm bilgi teknolojileri süreçleri için kontrol hedefi sunarken “APO10 Manage Suppliers” süreciyle de tedarik yönetimi için tedarikçi seçimi, sözleşme süreci yönetimi ve tedarikçinin performansının izlenmesi için kontrol hedefleri tanımlamaktadır. COBIT, “APO10.03 Manage supplier relationships and contracts” yönetim pratiği ile tedarik yönetimi sürecinin başarısını tedarik sürecinde resmi olarak işin kalitesinden sorumlu olacak kişilerin belirlenmesi olarak belirtmektedir. Bu nedenle tüm süreçlerin teknik anlamda yetkinlikle yürütülmesi, incelenmesi, onaylanması ve takip edilmesi için yetkin ve sorumlu kişilerin belirlenmesinin önemi ifade edilmiştir. (1)

ISO/IEC 20000, ITIL 2011 ve PMBOK(PMI Project Management Body of Knowledge) standartları da COBIT gibi tedarikçi seçiminde, sözleşme ve diğer tedarik belgelerinin hazırlanmasını ve sözleşme dâhilindeki tedarik yönetim sürecinde uygulanması gerekli kuralları ifade ederken bu süreçleri işletecek doğru, sorumlu ve yetkin insan kaynağının önemini vurgulamaktadır.(2,3)

PMBOK ise tedarik yönetimi bilgi alanında “Expert Judgment” yani uzman görüşü şeklinde önerdiği araç ile tedarik yönetiminde tedariğe konu olan ürün ve hizmetlerin detaylı dokümante edilmesi, şartnamesinin hazırlanması ve sözleşme sürecinin takibinde teknik detaylar dâhil tüm hususlar için uzman personelin görüşünün ve onayının alınmasının önemli olduğunu ifade etmektedir.(2)

Tedarik yönetim süreçleri öncelikle yürütülen sürecin nasıl yürütüleceğinin planlanmasıyla yani hangi aşamalarda hangi belgelerin ve hangi araçların kullanılacağının belirlenmesiyle başlamalıdır. Tedarik yönetim sürecinin planlanması aşamasında ayrıca sürecin devamında kullanılacak teknik şartname gibi dokümanlar geliştirilir sözleşme tipi seçilir. Teknik şartnamelerin yeteri kadar detaylı ve önemli hususları içerecek şekilde tam ve tutarlı hazırlanması sürecin baştan sona başarılı yürütülmesi için gereklidir. Bu nedenle şartnameyi hazırlayan ya da kontrol eden kişilerin yetkin ve nitelikli olması yapılan işin kaliteli ve sağlıklı yürütülmesi için önemlidir. Şartname dokümanı geliştirme işi dışında tedarikçi seçimi için önemli kriterleri belirleme ve bu kriterlere göre objektif tedarikçi seçimi önemli detaylardandır.

Tedarik yönetim süreci, tarafların sözleşmeyi imzalamasıyla farklı bir boyut kazanırken sözleşme kurallarının takip edilmesi ve şartnamedeki teknik detayların teslimatlarda kontrolü, sürecin başarılı olması için önemli hususlardır. Kontrol ve kabul aşamaları olarak ifade edeceğimiz bu aşamalarda da söz konusu işin teknik özelliklerine uygun yetkinlikte sorumlu bir personelin işin detayları konusunda inceleme yapması ve sahip olduğu sorumluluk ile yerine göre düzeltici ve önleyici önlemleri raporlaması işlerin başarısı açısından önemlidir.

Gerek özel sektörde gerekse kamu kurumlarındaki bilişim proje yönetimi ve tedarik yönetimi süreçlerinin yürütülmesi hususunda bazı sorunlarla karşılaşılmaktadır. Bazen yapılması gerekli işin eksik ve yeteri kadar teknik detay içermeyecek şekilde ifade edilmesi, sürecin maalesef baştan yanlış idare edildiğini göstermektedir. Bu şekilde gereksinimlerin veya şartnamelerin detay içermeden tarif edilmesi hem tedarikçi seçimini hem de sözleşme dâhilinde işin geliştirme ve teslimat sürecini olumsuz etkilemektedir. Planlanmayan ve tarif edilemeyen işlerin takip edilemediği ve sonunda kullanılamayan ürün ve hizmetlerin ortaya çıkması kurum ve firmalar için zaman ve para israfına yol açmaktadır.

Yeteri kadar teknik detay içermeyen veya söz konusu işin sağlıklı yürütülmesi için gereken mühendislik bilgilerinden uzak planlanan süreçler başarısızlıkla sonuçlanmaktadır. Bu nedenle bilgi teknolojileri mühendisliği konusunda eğitim almış ve aldığı eğitimi tecrübe ve uzmanlık konularındaki diğer eğitimlerle tescil edilebilir yetkinliğe dönüştürmüş, sorumluluk alan mühendislerin bilişim projelerindeki başarısı kaçınılmazdır.

Tedarik yönetimi süreci boyutu dışında yapılan araştırmaların gösterdiği gibi yürütülen projelerdeki başarı oranının düşük oluşu(%28-Chaos Report) ve Maliyet ve zaman aşımından kaynaklanan proje başarısızlıkları oranının yüksek oluşu(%74-Gartner Report) bu projelerde uygulanması gerekli standartların ve yetkin mühendislerin önemini anlamımıza yardımcı olmaktadır. (4,5)

Bu nedenle ülkemizde de özellikle bilgi teknolojileri ve ilgili teknolojiler kapsamındaki iş ve projelerin yönetiminde mesleki standardın oluşması ve bilgisayar mühendislerinin yetkin mühendis; eğitimli ve tecrübeli, sorumluluk alan yani imza yetkisine sahip mühendisler olması için Bilgisayar Mühendisleri Odası 2015 yılında yaptığı çalışmalarla bu yolda ilerleme kaydetmiştir.

Sonuç olarak, her sektörde yürütülen bilgi teknolojileri projelerinde başarılı olmak için organizasyon stratejilerinin dikkate alınması, işletilen süreçlerde tecrübelerle meydana gelmiş uluslararası standartların ve en iyi uygulamaların kullanılması ve bu işlemlerin yetkin bilgisayar mühendisleri tarafından yürütülmesi, onaylanması ve izlenmesi önem arz etmektedir. Bu nedenle bilgisayar mühendisliği mesleğinin standartlarının belirlenmesi ve özlük haklarının iyileştirilmesi faaliyetlerinin yanı sıra ilgili kurum ve kamu kaynaklarının verimli yönetilmesi ve zamanın etkin yönetilmesi için yürütülen proje süreçlerinde sorumluluk alabilecek yetkin mühendis kavramının geliştirilmesi ve resmileştirilmesi de önemlidir. Nitelikli Bilgisayar Mühendisliği lisans eğitimini tamamlayan mühendislerin, uzmanlık alanlarında alacağı eğitimler ve edineceği tecrübeyle sahip olacağı imza yetkisi, dâhil olacakları projelerde ve tedarik yönetim süreçlerinde onların teknik olarak doğru ve tutarlı karar vermelerini sağlayacak böylece yürütülen projeler ve tedarik yönetimi süreçleri başarılı olacaktır.

Emre Alıç, PMP

Proje Yöneticisi

Orman ve Su İşleri Bakanlığı

Kaynaklar:

  1. IT Governance Institute: Cobit 5, IT Governance Institute, United States of America(2012).
  2. Project Management Institute: PMBOK5 A guide to the project management body of knowledge, Project Management Institute Newtown Square, Pennsylvania, USA (2013).
  3. ITIL 2011, TheOffice of Government Commerce (OGC) UK Government (2011)
  4. Dominguez, J.: The Curious Case of the CHAOS Report 2009. http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.php (2009)
  5. Karl E.Wiegers, “Know your enemy: Software Risk Management”

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

PMSummit 2015-ANKARA Videoları Yayında!

16 Ara

Yoğun katılımla 27 Ekim 2015 tarihinde TOBB Ekonomi ve Teknoloji Üniversitesi Sosyal Tesislerinde gerçekleştirdiğimiz Proje Yönetim Zirvesinin tüm oturumlarının videoları PMI Türkiye Youtube kanalında yayınlandı. Bu videoları izleyerek neleri canlı takip etme fırsatını kaçırdığınızı görebilirsiniz.

Şimdi sıra 2016 Proje Yönetim Zirvesinde Mayıs ayında yapmayı planladığımız zirve ile ilgili gönüllülük,sponsorluk ve konuşmacı konularında bana ulaşabilirsiniz.

Nice güzel etkinliklerde bir arada olmak dileğiyle…

Hepsi ve daha fazlası için: https://www.youtube.com/user/PmiTurkeyChapter/videos

 

 

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

PMI Turkey Chapter Ankara Branch

2 Ara

0 2015 Yılı Ekim ayı itibariyle Ankara Branch PMI Turkey Chapter’a bağlı olarak resmen kuruldu. Bu yapılanmayla artık Ankara’da da İstanbul merkezli yürütülen direktörlükler faaliyet gösteriyor olacak.

2016 Yılı görev dağılımı da her sene olduğu gibi bu sene de seçim ile belirlendi ve şahsım 2016 Yılı Ankara Branch Direktörü seçildi. Bu süreçte şahsımı destekleyen tüm üyelere teşekkür ediyorum.

Sizler de yeni dönemde çeşitli faaliyetlerde yer almak üzere gönüllülerimiz arasına katılmak isterseniz bana ulaşabilirsiniz.

emre.alic@pmi.org.tr