Yazılım kodu, uygulamanızın nasıl çalıştığının merkezinde yer alır. Aynı zamanda siber saldırıların gerçekleşebileceği anahtarlardan biridir. Kodunuzda güvenlik açıkları varsa, tüm uygulamanız tehlikeye girebilir. Yazılım güvenlik açıkları ile ilgili sorun, siber suçluların yararlanabileceği kod – zayıf yönlerini açmalarıdır. Siber güvenlik olaylarının önlenmesi en başta yazılım kodunun kendisiyle başlar. Bu makale güvenli kodlama pratiğine ve bunun neden anlamak için hayati bir disiplin olduğuna bakar..
Contents
Güvenli Kodlama ile Neler kastedilmektedir??
Bir yazılım geliştiricisi yazılım kodu yazdığında, birçok şeyi dikkate almaları gerekir. Bu, uygulamanın mimari ve tasarım gereksinimlerinin nasıl ifade edileceğini, kodun nasıl optimize edilmiş ve verimli tutulacağını ve kodun güvenli olduğundan nasıl emin olunacağını içerir. Güvenli kod, birçok siber saldırının gerçekleşmesini önlemeye yardımcı olacaktır, çünkü birçok istismarın güvendiği güvenlik açıklarını ortadan kaldırır.
Yazılımınızda bir güvenlik açığı varsa bu yazılımdan yararlanılabilir. 2017’nin WannaCry fidye yazılımı saldırısı bir Windows protokolü güvenlik açığından yararlandı. Yazılım güvenlik açıkları çok yaygın. Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) güvenlik açığı listesini kullanan bir arama, son 3 yılda 40.569 uygulama güvenlik açığı olduğunu göstermektedir.
Bir şirket güvenli kodlama kültürü uyguladığında, kodlarındaki güvenlik açıklarını en aza indirmeye çalışıyorlar..
Güvenli Kodlama?
Güvenli uygulamalar kullanarak kodlama iyi belgelenmiştir. Açık Web Uygulaması Güvenlik Projesi (OWASP), bunun nasıl yapılacağı ile ilgili bir dizi kılavuz oluşturmuştur. Bu kılavuzda, kodunuzun mümkün olduğunca güvenli olduğundan emin olmak için kullandığınız öğelerin bir kontrol listesini sunar. Kılavuzlarda kapsanan şeylerin bir örneği:
- Veri girişi doğrulaması: Bu, veri kaynağı ve veri doğrulamanın çeşitli yönlerini kapsar. Örneğin, bir veri parçasının uzunluğu ve tarih aralığı. Veri doğrulama kontrolleri, web uygulamalarının siber saldırılardan korunmasına yardımcı olur.
- Kimlik doğrulama ve şifre yönetimi: Kodlama ayrıca yazılım mimarisini de içerir. Bu bölüm, kodlama ve mimarinin kesitinde oturan birçok tavsiyeye sahiptir..
- Şifreleme Uygulamaları: Kılavuz, kullanılan herhangi bir şifreleme modülünün FIPS 140-2 veya eşdeğer bir standart uyumlu olduğunu göstermektedir.
- Hata İşleme ve Günlüğe Kaydetme: Bu çok önemli bir alandır ve güvenli bir şekilde kodlanmazsa veri sızdırabilir.
- Veri koruması: Verilerin korunmasına ilişkin yönergeler, şifrelerin güvenli bir şekilde saklanması ve HTTP GET aracılığıyla veri sızıntılarının nasıl önleneceği hakkında tavsiyeler içerir..
- İletişim Güvenliği: Aktarım sırasında verilerin nasıl korunacağına ilişkin öneriler, örneğin TLS bağlantılarını kullanma.
Bir yazılım mimarı bir uygulamanın mimari tasarımını belirlediğinde ve programcı bu dikteleri temel alarak kod oluşturduğunda, OWASP yönergelerini güvenli kodlama beşik sayfası olarak kullanmalıdır..
Güvenli kodlama programlama aşamasında durmaz. Güvenli kod oluşturmak için bütüncül bir yaklaşımın parçası olması gereken diğer alanlar şunlardır:
- ‘En az ayrıcalığa’ dayalı bir sistem: Bilmeniz gereken bir temelde herhangi bir koda erişim sağlamak, güvenli olmayan kodların kötü niyetli bir şekilde yürütülmesini önlemeye yardımcı olacaktır. Dış kaynaklı geliştiriciler veya geliştirme şirketleri kullanılırken bu özellikle zor olabilir.
- Derinlemesine savunma: Kod üretime geçtikçe savunma stratejileri oluşturmaya devam edin. Çalışma zamanı ortamlarınızın kodunuz kadar güvenli olduğundan emin olun.
- İyi kalite güvencesi uygulayın: Kaliteyi sağlamak için kod incelemeleri ve PEN testi gibi çeşitli güvence programlarını kullanın.
Başarılı Güvenli Kodlama Kaynakları
Geliştirme ekibinizi eğitimli ve en son güvenli kodlama teknikleriyle iletişim halinde tutmak güvenli kodlamada çok önemlidir. Programcıların nasıl güvenli bir şekilde kod yazacaklarını bilmelerini bekleyemezsiniz, eğitilmeleri ve farkında olmaları gerekir. Aşağıda, size ve ekibinize güvenli kod oluşturma yolunda yardımcı olacak bazı yararlı kaynaklar bulunmaktadır.
- OWASP – OWASP’ın Güvenli Kodlama Uygulamalarından daha önce bahsetmiştik. OWASP Geliştirici Kılavuzu aynı zamanda güvenli kodlama için kullanışlı bir temel taşıdır. Ayrıca, projenizi etkileyebilecek bağımlılıkları ve genel olarak açıklanan güvenlik açıklarını arayan araçlarına da göz atın.
- Microsoft’un güvenli kodlama hakkında İncil: https://msdn.microsoft.com/en-us/aa570401
- Güvenli kodlama tekniklerini öğrenirken kitaplar her zaman işe yarar. Bazı örnekler şunları içerir: “24 Ölümcül Yazılım Güvenliği Günahı” ve “Güvenli Kodlama: İlkeler ve Uygulamalar”
- Yine bir OWASP girişimi olan ‘güvenli kodlama çerçevesine’ göz atın. Bu çerçeveye dayalı olarak güvenli kodlama teknikleri konusunda personelinizi eğitmenize yardımcı olacak kuruluşlar vardır..
- Güvenli kodlama standartları, ör. Carnegie Mellon Üniversitesi tarafından denetlenen SEI CERT, çeşitli programlama dilleri için güvenli kodlama konusunda destek ve rehberlik sunmaktadır:
- Kod kontrol firmaları kodunuzu gözden geçirmek için kullanılabilir. CheckMarx ve CAST Software gibi firmalar, güvenlik açıklarını aramak ve yazılım kalitesine erişmek için uzman analiz araçlarını kullanacaktır.
- Kodlamayı güvenli hale getirmek için Yazılım Geliştirme Yaşam Döngüsü’nün (SDLC) nasıl uygulanacağını öğrenin. Bir SDLC yaklaşımı kullanmak, geliştirme yaşam döngüsünün tüm parçaları boyunca güvenlik filtrelerinin sağlanmasını sağlamanıza yardımcı olacaktır..
- RedHat’tan güvenli kodlama öğreticileri
Rekabet Gücü İçin Güvenli Kod
Güvenlik kodunuzla başlar ve güvenli kod oluşturmak harika bir yazılım ürünü oluşturmanın hayati bir parçasıdır. Güvensiz kodlama uygulamaları sadece müşterilerinizi risk altında bırakmakla kalmaz, aynı zamanda şirketinizin itibarını da etkiler. OWASP güvenli kodlama ilkelerinin ilkelerini uygulamak başlamak için iyi bir yerdir. Gösterilebilir güvenli yazılım üretmek yalnızca siber saldırıları önlemenize izin vermekle kalmaz, aynı zamanda kuruluşunuza rekabet avantajı sağlar.