Madde 22 — Sistem geliştirme, taşıma ve kurulum
MADDE 22 –(1) Banka, yazılım geliştirme sürecinde görevler ayrılığı prensibine uygun olarak geliştirme, test ve üretim ortamlarının birbirinden ayrı tutulmasını sağlar. Sistem ve uygulamaların geliştirilme süreci, kaynak kodlarının tek bir kişi tarafından hazırlanıp derlenerek geliştirme, test ve üretim ortamları arasında taşınmasına imkân vermeyecek şekilde görevler ayrılığı prensibine uygun olarak işletilir.
(2) Yalnızca geçerli bir iş ihtiyacı ve zorunluluk halinde ve sadece onay mekanizmasından geçmek suretiyle, yazılım geliştirmeden sorumlu personelin üretim ortamına erişimine izin verilebilir. Böyle durumlarda dahi personelin üretim ortamında gerçekleştirdiği işlemler takip edilir ve kayıt altına alınır. Banka üretim ortamına erişmede kullanılan yöntemleri kayıt altına alarak yazılı hale getirir ve üst düzey yöneticilerce onaylanmasını sağlar.
(3) Bankanın yazılım geliştirme sürecinde bulunan aşamalar ve bu aşamalara ilişkin geçiş koşulları, dokümantasyon gereksinimleri, kodlama standartları ve iş birimleri ile diğer paydaşların hangi aşamalarda sürece dâhil olacağı ve onaylarının alınacağı yazılı olarak belirlenir. Yazılım geliştirme süreci kapsamında, dış hizmet alımları da dâhil olmak üzere bankanın yazılım geliştirme yaşam döngüsüne, mevzuat gereksinimleri ile banka içi politikalara uyumu sağlanır.
(4) Yazılım kalitesini artırmak ve güvenlik açıklarını en aza indirmek amacıyla bilgi güvenliği, yazılım geliştirme yaşam döngüsünde dikkatle ele alınır. Yazılım geliştirme veya tedarik sürecinin başından itibaren, iş gereksinimlerinin ve yazılımdan beklenen fonksiyonel gereksinimlerin neler olduğunun belirlenmesinin yanında, yetkilendirme ve erişim, kimlik doğrulama, veri bütünlüğü, iz kayıtları, istisnai durum yönetimi gibi güvenlikle ilgili gereksinimlerin neler olduğu da belirlenir ve bankanın güvenlik standartlarına, politikalarına ve mevzuat gerekliliklerine ilişkin uyum durumu kontrol edilir.
(5) Banka içinde geliştirilen veya dışarıdan tedarik edilen internete açık uygulamalar, kurulumları yapılmadan önce ve bu uygulamalarda yapılan güncellemeler sonrası düzenli olarak yinelenen bir temelde, güvenlik açıkları bakımından taranır.
(6) Alınan hizmetin kritikliği, riskliliği ve tedarikçinin iş dışı kalması olasılığı dikkate alınarak yazılımı dış bir firma tarafından geliştirilen ve kaynak kodu tedarik edilemeyen uygulamalar için üçüncü tarafların da katılımıyla bir yazılım saklama sözleşmesi yapılır. Ürün güncellemelerinin ve program düzeltmelerinin de saklama sözleşmesi kapsamında yer alması sağlanır.
(7) Banka, yazılım geliştirme personelinin, kullandıkları yazılım geliştirme ortamları özelinde güvenli kod geliştirme eğitimlerini almasını sağlar.
(8) Bankanın yazılım geliştirme sürecinde yapılan yeni veri tanımları ya da veri tanımlarında yapılan değişikliklerin bilgi mimarisi ile veri sözlüğü açısından tutarlığı değerlendirilerek gerekli güncellemelerin yapılması sağlanır.
(9) Yazılım kodlarının geliştirme, test ve üretim ortamları arasında taşınması esnasında bunların içine yetkilendirilmemiş ya da zararlı kod parçalarının eklenmesini engellemek üzere versiyonlama ve sürüm kontrollerine dayanan bütünlük kontrolleri gerçekleştirilir. Üretim ortamına aktarım sırasında ilgili kullanıcı ya da uygulama sahiplerinin onayları alınır.
(10) Test ortamının işletim sistemi, veritabanı yönetim sistemi, entegre olunan uygulamalar ve sistemler itibarıyla üretim ortamını temsil etmesi ve test verilerinin sayı ve nitelikçe üretim ortamında gerçekleşen operasyonu temsil etmesi ve müşterilere ait üretim ortamı verilerinden arındırılması sağlanır.
Uygulama kontrolleri