Güvenli Yazılım Geliştirme İlkeleri
Güvenli yazılım geliştirme ilkeleri, güvenli bir yazılım geliştirmek için yazılım geliştirme sürecinin her aşamasında dikkat edilmesi gereken hususları içerir.
Yazılım tasarımı güvenilmeyen kaynak odaklo olmalıdır.
Güvenli yazılım geliştirme sürecinde, yazılım geliştiren her yazılımcının güvenlik kılavuzuna ihtiyacı varıdr.
Gizlilik, bütünlük ve kullanılabilirlik gibi temel güvenlik ilkelerinin uygulaması ne kadar sıkı tutulursa geliştirilen yazılımın da güvenlik zafiyetleri o kadar ortadan kalkmış olur.


Saldırılar sonucunda oluşabiecek tahribatların seviyesi saldırgana ve saldırı türüne göre değişmektedir.
Saldırganlar ve saldırı kaynakları şu şekilde gruplanabilir:
- İstemsiz(Şikayetçi) personel ve geliştiriciler
- Virüsler; yerel ağ ve genel ağ üzerinden saldıran virüsler
- Organize saldırılar
- Kötü niyetli saldırganların saldırıları
- Kötü niyetli kod saldırıları
Bilgi güvenliğinin; güvenlik boyutunda istenilen bilgi güvenliğini sağlayabilmesi için üç temel ilkesi vardır. Bunlar;
1- Gizlilik
Yazılımın kullanımında ve verilere erişimde sadece belirli kullanıcılara belirli yetkilerin verilmesi, bilginin yetkisiz kişilerin eline geçmemesini ifade eder.
2- Bütünlük
Bilginin yetkisiz kişilerce ele geçiriklmesi, değiştirilmesi, silinmesi veya herhangi bir şekilde tahribata uğraması bütünlüğü ifade edilir. Bilgide farklılaşma olması.
3- Kullanılabilirlik
Bilginin ihtiyaç duyulduğunda yetkili kişilerce ulaşılabilir ve kullanılabilir durumda olmasıdır. Bu ilketye göre kullanıcıların istedikleri zaman yetkili oldukları verilere ulaşabilmesi gerekir.


Güvenli yazılım ilkeleri, güvenli yazılım geliştirme süreçlerine odaklanmış ve bu konuda çalışan bir çok kurum ve kuruluşlar tarafından farklı standartlar, modeller ve yaklaşımlar dahilinde oluşturulmakta ve uygulanmaktadır.
- Türkiye’nin de üyesi olduğu OWASP’a göre güvenli yazılım ilkeleri, sürekli güncellenmekte ve her sürümde önceki sürümlerde ele alınan güvenli yazılım geliştirme ilkeleri gözden geçirilerek güncellenmektedir.
- Güvenli yazılım ilkeleri geliştirilirken, teknik unsurlar yanında kullanıcı yani insan unsuru da dikkate alınmalıdır.
- Son on yılda güvenlik zafiyetlerinin oluşmasında insan unsuru ve oluşan zafiyetler nedeniyle bir çok saldırı tespit edilmiştir.

OWASP tarafından hazırlanan OWASP Development Guide güvenli yazılım ilkeleri şu başlıklar altında toplanmıştır.
- Saldırı yüzeyini azaltmak
Gereksiz portları kapatmak – Db’yi dışarı açmamak veya belirli IP numaralarına erişim vermek.
- Güvenliği varsayılan olarak belirtmek
Yazılımda fonksşyonelliğe önem verildiği kadar yazılımda güvenliğede önem verilmesi gerekmektedir.
- En az imtiyaz ilkesi sağlamak
İhtiyaçtan fazla yetkilendirme-erişim verilmemelidir. Örneğğin çalıştırılabilir dosyalara erişimin kısıtlanması gbi.
- Güvenlik için belirsizlikten kaçınmak
Denetimle ilgili birçok faktörden faydalanılmalıdır.
- Basit güvenlik mekanizması tasarlamak
Mimari basit yapıda olmamalıdır.
- Güvenlik zafiyetini doğru olarak gidermek
Zafiyetler tespit edilip giderilmelidir.
- Gerek duyulan en az yetkiyi vermek ve yetkileri ayırmak
Özellikle veritabanı ve veriye erişim açısından önemlidir.
- Tüm erişimleri denetlemek
Tüm erişimler denetlenmelidir.
- Varsayılan değerleri güvenli hale getirmek
Tüm varsayılan değerlerin güvenliği arttıracak şekilde seçilmesi.
- Ortak erişilen kaynaklara farklı kaynaklardan erişimek
Yazılımda farklı bilişenler arasında yalıtım sağlamak gereklidir.
- En zayıf halkayı tespit etmek ve güçlendirmek
Bir pentest yapılabilir.
- Savunma derinliği oluşturmak
Savunma mekanizması oluşturarak saldırganın arka plana geçmesini engellemek.
- Anlaşılabilir ve kolay kullanılabilir güvenlik mekanizması tasarlamak
Kullanıcı işini en kolay şekilde en az yetkiyle yapabiliyor olmalıdır.