YAZILIM GÜVENLİĞİ POLİTİKASI
1.AMAÇ: Bu doküman ZSR Patlayıcı San. A.Ş. de geliştirilmiş ve geliştirilmekte olan tüm uygulamalarında yazılımın her türlü güvenliğinin sağlanması amacıyla tüm yazılım geliştiriciler, veri tabanı ve sistem yöneticileri tarafından uyulması gereken kuralları ve kontrol edilmesi gereken adımları tanımlamak üzere hazırlanmıştır.
2. KAPSAM: Bu politika, ZSR Patlayıcı San. A.Ş. BİDB tarafından geliştirilen uygulamaların (örneğin web sayfaları, masaüstü uygulamaları, web otomasyonları v.b.) geliştirilmesi, bakım ve desteğinin sağlanması gibi faaliyetleri yürüten tüm akademik ve idari personelin uyması gereken kuralları kapsamaktadır.
3. SORUMLULAR: Firmamızın farklı birimlerinde yürütülen internet uygulamaları, bilgi sistemleri alanına giren her konuda akademik ve idari birimlerin gereksinim duyduğu her türlü alt yapı, donanım ve yazılım hizmetleri Bilgi İşlem Daire Başkanlığı tarafından yürütülmektedir.
4. UYGULAMALAR: ZSR Patlayıcı San. A.Ş. de kullanıma açılan yazılım ürünlerinin ( uygulamaların ) aşağıda sıralanan kategoriler altında yer alan kontrol adımlarının doğrulanmasının sağlanması gerekmektedir. Aksi takdirde uygulamaların güvenliğine dair somut göstergelere sahip olunamayacaktır. Bu kategoriler 9 başlık altında toplanmıştır:
Veri Koruması Hata Yönetimi ve Kayıt Tutma
• Erişim Kontrolü
• Kimlik Sınama
• Oturum Yönetimi
• Kriptoloji
• İletişim Güvenliği
• Girdi Denetimi
• Çıktı Kodlama
4.1.Veri Koruması Uygulamaların kayıt altına aldığı veya kullandığı her türlü bilginin yetkisiz erişime kapalı olması gerekmektedir. Bu amaç doğrultusunda aşağıdaki adımlar kontrol edilmelidir.
4.1.1. Web, uygulama ve veritabanı sunucularının sistem bileşenleri hakkındaki kritik bilgiler (sunucu adı ve sürümü, kullanılan program sürümü v.b.) gizlenmelidir.
4.1.2. Uygulama çatısı, veritabanı, uygulama sunucusu ve web sunucusu gibi kullanılan yazılımların güvenlik yamaları en üst seviyede olmalıdır.
4.1.3. ASP.NET, PHP, STRUTS gibi kullanılan uygulama çatılarının güvenlik özellikleri aktif hale getirilmelidir.
4.1.4. Kullanılan parolalar ve parolamı unuttum kontrol soru ve cevapları gibi diğer hassas veriler açık metin olarak saklanmamalıdır.
4.1.5. Uygulamalar, geliştirme ortamından prodüksiyon ortamına aktarılırken gereksiz olan dosyalar (örneğin test kodlar, demo programlar, yedek dosyalar) silinmeli, şayet gerek yoksa kaynak kod aktarılmamalı ve de aktarılacak olan kaynak kodlardaki yorum satırları silinmelidir. Aktarım esnasında dosyalarda istenmeyen bir değişikliğin olmaması garanti edilmelidir.
4.2.Hata Yönetimi ve Kayıt Tutma Uygulamalar hata aldığında veya beklenmedik bir durum ile karşılaşıldığında, çalışma zamanında üretilen hata mesajlarında teknik detayların ve hatalara ait günlük kayıtlarının hiçbir şekilde son kullanıcıya açılmaması gerekmektedir.
4.2.1. Uygulamada oluşan hatalar ve uygulama sunucusu ön tanımlı hata mesajları kullanıcıya detaylı olarak gösterilmemelidir. Doküman No: KP-05 Yayın Tarihi: 27.04.2019 REV.NO:00 REV.TAR:00
4.2.2. Uygulama üzerinden yapılan kritik işlemler hem uygulama seviyesinde hem de sunucu seviyesinde kayıt altına alınmalıdır.
4.3.Erişim Kontrolü Uygulamaların yayın yaptığı içerik, dizinler, sunucuların arayüzleri vb. hiçbir kaynak, kontrol dışı erişilebilir olmamalıdır.
4.3.1. Uygulamaların üzerinde koştukları sunucular, servis verdikleri dizinlerin içeriklerini listelememelidir.
4.3.2. Arama motorları tarafından görüntülenmemesi istenen dizinler varsa, bunlar için robots.txt ile önlem alınmalıdır. Yalnız, sayfa içerisinde köprülenmeyen bağlantıların / dizinlerin (örneğin yönetim sayfası) güvenlik sorunu oluşturmaması adına robots.txt dosyasına eklenmemesi gerekmektedir.
4.3.3. Gerekmedikçe POST/GET dışındaki HTTP metotlarına izin verilmemelidir. 4.3.4. Ana sistem için gereksiz olan dosyalara (örneğin yedekleme, arşiv, test, geliştirme için kullanılan dosyalar) erişim engellenmeli ve sistemdeki gereksiz uygulamalar (örneğin ön tanımlı sunucu sayfaları, demo uygulamalar) kaldırılmalılar.
4.3.5. Flash uygulamalarında crossdomain.xml ve SilverLight uygulamalarında clientaccesspolicy.xml yapılandırma dosyalarında uygulanan politikaların güvenli olup olmadığı kontrol edilmelidir.
4.3.6. Kritik işlemlerde CSRF saldırılarına karşı "token" veya "CAPTCHA" gibi güvenlik önlemleri alınmalıdır.
4.3.7. GET ve POST isteklerindeki HTTP parametreleri değiştirilerek üçüncü şahısların bilgilerine yetkisiz olarak erişilmemelidir.
4.3.8. Uygulamayı çalıştıran sistem kullanıcısının, hizmet verilen dizin dışındaki yetkileri kaldırılmalıdır.
4.3.9. Veritabanı kullanıcısının sadece uygulamanın kullandığı veritabanı kaynaklarına erişim hakkı olmalıdır.
4.3.10. Veritabanı kullanıcısının veritabanına sadece uygulama sunucu IP adresinden bağlantı hakkı olmalıdır.
4.3.11. Race-Condition'lara engel olmak için kritik kaynaklara, objelere, metotlara senkronizasyon sağlanarak eş zamanlı erişime izin verilmemelidir. 4.3.12. Sunucu üzerinde bulunan ve web tabanlı istatistik sağlayan uygulamalara erişim herkese açık olmamalıdır.
4.3.13. Kısıtlı erişim gerektiren bütün URL'lere, fonksiyonlara, obje referanslarına, servislere, uygulama verilerine, kullanıcı bilgilerine, güvenlik yapılandırma dosyalarına erişim denetlenmelidir.
4.3.14. Yetki hakkının artık gerekmediği durumlarda (örneğin şirketi terk etme, projede rol değiştirme gibi) en kısa sürede ilgili haklar iptal edilmelidir. 4.3.15. Yönetim paneli gibi kritik dizinlerin isimleri kolay tahmin edilebilir olmamalıdır (admin, yönetici, administrator, yönetim, panel v.b.).
4.4.Kimlik Sınama Erişime açılan her kaynak kimlik denetimine tabi tutulma yöntemini de kullanmak zorundadır.
4.4.1. Ön tanımlı kullanıcı hesapları sistemden, veritabanından ve uygulamadan kaldırılmalıdır.
4.4.2. Umumi olmayan bütün kaynaklara ve sayfalara erişim için sunucu tarafında kimlik doğrulaması yapılmalıdır.
4.4.3. Kullanıcı adı ve parola ile kimlik doğrulamasının yapıldığı kontroller tek tip hata mesajı vermek suretiyle kullanıcı adları listeleme saldırılarına engel olmalıdırlar. Örnek bir hata mesajı "Girdiğiniz kullanıcı adı ve/veya parola yanlıştır." seklinde olabilir.
4.4.4. Bütün başarılı ve başarısız login işlemleri ve kaynaklara erişim denemeleri kayıt altına alınmalıdır.
4.4.5. Parola güncelleme işlemleri için eski parola her zaman sorulmalıdır.
4.4.6. Parola unuttum formları, gizli soru ve benzeri ek argümanlarla desteklenmelidir.
4.4.7. Parola unuttum işlemlerinden sonra kullanıcıya gönderilen eposta, kullanıcı adı ve parola bilgisi içermemelidir. Bunun yerine sınırlı yaşam süresi bulunan bir link gönderilip, o link üzerinden açılan sayfadan parola değiştirme işlemi gerçekleştirilmelidir.