EN
EN

Standartlarla Güvenli Yazılım Geliştirme


Bilgi güvenliğinin en önemli alanlarından biri günümüzün her alanında yer alan yazılımlardır. Güvenlik bilinci ile yazılmayan yazılımlar kurumların veya bireysel kuruluşların siber güvenliğini riske atmaktadır. Yazılım geliştiriciler genel itibariyle hız, daha fazla özellik ve kullanıcı dostu yazılım geliştirme konusuna yoğunlaşmaları nedeniyle güvenlik konusunu arka plana atmaktadır. Yazılım güvenlik sorunlarının %90'a kadarı kodlama hatalarından kaynaklandığından, güvenli kodlama uygulamaları ve güvenli kodlama standartları önem arz etmektedir.

Yazılım güvenliği yazılımın, saldırı veya tehdit altındayken işlevlerini doğru bir şekilde yerine getirmesi ve siber saldırılarda dayanılacak ilk kapı olmasını önleyecek şekilde korunmasıdır. Yazılım güvenliği faaliyetlerinin amacı tüm bilgi güvenliği saldırılarına karşı daha dirençli ve hatasız çalışan yazılım üretmektir.

Yazılım geliştiriciler, güvenli yazılım geliştirme standartlarını izleyerek, dağıtımdan önce güvenlik açıklarını önemli ölçüde azaltabilir.

Yazılım geliştiricilerin yararlanabileceği rehber ve standartlar aşağıda verildiği gibidir:

- DDO-Bilgi ve İletişim Güvenliği Rehberi-3.2.6. Güvenli Yazılım Geliştirme (Türkiye de kurumlar ve kritik altyapıya sahip kuruluşlar için uyumluluğu zorunludur.)
- TÜBİTAK Güvenli Yazılım Geliştirme Rehberi
- T.C. ULAŞTIRMA VE ALTYAPI BAKANLIĞI Sivil Havacılık Genel Müdürlüğü Güvenli Yazılım Geliştirme Rehberi
- NIST Güvenli Yazılım Geliştirme Çerçevesi
- ISO/IEC 27001 Bilgi Güvenliği Yönetim Sistemi-Ek A.14.2.1 Güvenli Geliştirme Politikası
- CIS Critical Security Control 16: Uygulama Yazılımı Güvenliği
- PCI-DSS 6.3: Güvenli Yazılım Geliştirme

DDO tarafından yayınlanan Bilgi ve İletişim Güvenliği Rehberi’nin 3.2.6. Güvenli Yazılım Geliştirme tedbir maddeleri aşağıda verildiği gibidir:

Tedbir No.

Tedbir Seviyesi

Tedbir Adı

Tedbir Tanımı

3.2.6.1

1

Güvenlik Gereksinimleri ve Tasarımı

Yazılım geliştirme sürecinde güvenlik gereksinimleri tanımlanmalı ve bu gereksinimler göz önünde bulundurularak tasarım yapılmalıdır. Tedarik edilen veya hizmet alımı ile geliştirilen uygulamaların teknik şartnamelerinde güvenlik gereksinimlerine yer verilmelidir

3.2.6.2

1

Test ve Geliştirme Ortamında Gerçek Veri Kullanılmaması

Geliştirme ve/veya test ortamında kullanılacak veriler gerçek veri olmamalıdır. Bu kapsamda, ilgili ortamlarda kullanılması için amaca uygun veriler üretilmelidir.

3.2.6.3

1

Tedarik Edilen Uygulamalarda Kullanım Amacına Uygun Olmayan Özellik/Arka Kapı Bulunmaması

Tedarik edilen veya hizmet alımı ile geliştirilen uygulamalar için yazılımın kullanım amacına uygun olmayan bir özellik ve arka kapı (kullanıcıların bilgisi/izni olmaksızın sistemlere erişim imkânı sağlayan güvenlik zafiyeti) içermediğine/içermeyeceğine dair üretici ve/veya tedarikçilerden imkânlar ölçüsünde taahhütname alınmalıdır. Bk. EK-C.6: Taahhütname Örneği

3.2.6.4

1

Arayüzün Türkçe Dil Desteğine Sahip Olması

Bk. Tedbir No: 4.6.1.4

3.2.6.5

1

Güncel İstemci ve Sunucu Teknolojilerinin Kullanılması

Üretici tarafından sunulan teknik desteği sona ermiş, güvenlik açığı barındıran veya teknolojisi zaman aşımına uğramış sunucu veya istemci teknolojileri kullanılmamalıdır.

3.2.6.6

1

Uygulama Güvenlik Testlerinin Yapılması

Devreye alınan veya güncellenen uygulamalarda sızma testleri ve uygulama güvenliği testleri yapılmalıdır. Tedarik edilen uygulamalar üzerinde sızma testleri gerçekleştirilmelidir. Bk. Tedbir Başlık No: 3.1.11

3.2.6.7

2

Kaynak Kod Güvenlik Analizlerinin Yapılması

Kurumun kaynak koduna sahip olduğu tüm uygulamalar devreye alım öncesinde kaynak kod analizinden geçirilmelidir.

3.2.6.8

2

Güvenli Yazılım Geliştirme Süreçlerinin Uygulanması

Güvenli yazılım geliştirme süreçleri ve olgunluk modellerinden faydalanılarak kurumsal yazılım geliştirme süreçleri güncellenmeli ve güvenli yazılım geliştirme yaşam döngüsü uygulanmalıdır.