Curriculum
Güvenli kodlama teknikleri, geliştiricilerin saldırılara karşı dayanıklı uygulamalar oluşturmasını ve kullanıcı verilerini korumasını sağlar. Bu teknikler, güvenli geliştirme uygulamalarının bir alt kümesi olup, kodun güvenlik açıklarını önleyecek şekilde yazılmasına odaklanır. İşte bazı temel güvenli kodlama teknikleri:
-Kod İmzalama: Kodunuzu imzalayarak bütünlüğünü ve kaynağını doğrulayın. Bu, müdahaleyi önlemeye yardımcı olur ve kullanıcıları yetkisiz değişiklikler hakkında bilgilendirebilir.
-Güvenli Dosya İşlemleri: Dosyalarla çalışırken, dosya işlemlerinin güvenli bir şekilde yapıldığından ve dosya izinlerinin uygun şekilde ayarlandığından emin olun.
-Bellek Yönetimi: Bellek yönetimini otomatik olarak yapmayan diller (örneğin C ve C++) kullanıyorsanız, bellek tahsisi, kullanımı ve serbest bırakılması konusunda dikkatli olun ve bellek sızıntıları ve tampon taşmaları gibi sorunları önleyin.
-Eşzamanlılık ve Yarış Durumu Yönetimi: Eşzamanlı yürütme için güvenli kod yazın ve yarış durumlarını (TOCTOU hataları gibi) ele alın.
-Veri Temizleme: Yorumlayıcılara veya komut kabuklarına aktarılacak verileri temizleyerek enjeksiyon saldırılarını önleyin.
-Kod İncelemeleri ve Statik Analiz: Güvenlik odaklı olarak düzenli kod incelemeleri yapın ve kodda potansiyel güvenlik açıklarını otomatik olarak tespit etmek için statik analiz araçları kullanın.
-Bağımlılık Güvenliği: Üçüncü taraf kütüphaneleri ve bağımlılıkları güncel tutun ve bilinen güvenlik açıklarını kontrol etmek için yazılım bileşen analiz araçları kullanın.

Şekil-4
(Kaynak: https://securityboulevard.com/2022/01/7-security-coding-guidelines-to-keep-in-mind/)
Tehdit Modelleme ve Risk Değerlendirmesi
Tehdit modelleme ve risk değerlendirmesi, siber güvenlik ve yazılım geliştirmede kullanılan proaktif süreçlerdir; bir sisteme yönelik potansiyel tehditleri tanımlamak, önceliklendirmek ve azaltmak için kullanılırlar. Bu uygulamalar, geliştirme sürecinin en erken aşamalarından itibaren güvenlik önlemlerinin entegre edilmesinin önemini vurgulayan daha geniş bir güvenlik yaklaşımı olan Güvenlik Tasarımının bir parçasıdır. Tehdit modelleme, bir sisteme yönelik potansiyel tehditleri tanımlamak ve ele almak için yapılandırılmış bir yaklaşımdır.

Figure-5
(Source: https://www.security-analyst.org/threat-analysis-and-risk-assessment/)
Erken Başlayın: Tehdit modelleme ve risk değerlendirmesine tasarım aşamasında başlayın ve geliştirme yaşam döngüsü boyunca tekrar edin.
Çok Disiplinli Ekipleri Dahil Edin: Geliştiriciler, güvenlik profesyonelleri, operasyon personeli ve iş analistleri gibi farklı bakış açılarına sahip üyeleri dahil edin.
Standart Çerçeveler ve Metodolojiler Kullanın: Süreci yönlendirmek için NIST, ISO veya OCTAVE gibi yerleşik çerçeveleri ve STRIDE veya PASTA gibi metodolojileri uygulayın.
Dokümantasyonu Güncel Tutun: Tüm bulgular ve eylemler iyi bir şekilde belgelenmeli ve kolayca erişilebilir olmalıdır.
Geliştirme Süreci ile Entegre Edin: Tehdit modelleme ve risk değerlendirmesini yazılım geliştirme yaşam döngüsüne (SDLC) entegre edin ve düzenli geliştirme uygulamalarının bir parçası haline getirin.
Eğitin ve Eğitim Verin: Tüm paydaşlara, tehdit modelleme ve risk değerlendirmesinin önemini ve yöntemlerini anlamalarını sağlamak için eğitim verin.
Güvenlik testi, yazılım geliştirme yaşam döngüsünün ve genel siber güvenlik stratejisinin kritik bir bileşenidir. Bu süreç, bir sistemin güvenlik özelliklerini değerlendirerek verileri korumasını ve işlevselliğini planlandığı şekilde sürdürmesini sağlamayı amaçlar. İşte çeşitli güvenlik test türleri ve genellikle nasıl yapıldıkları hakkında bir genel bakış:
a) Zayıflık Tarama (Vulnerability Scanning): Otomatik araçlar, sistemleri, ağları ve uygulamaları bilinen zayıflıklar için tarar.
b) Penetrasyon Testi (Pen Testing): Penetrasyon testi, bir siber saldırıyı simüle ederek sistemlerde, ağlarda ve uygulamalarda zayıflıkları tanımlayıp istismar eder. Genellikle etik hackerlar tarafından, zararlı saldırganların kullandığı tekniklerin kontrol edilen ve yetkilendirilmiş bir şekilde kullanıldığı bir testtir.
c) Güvenlik Denetimi (Security Auditing): Güvenlik kontrolleri ve süreçlerinin doğru ve etkili bir şekilde uygulandığını sistematik olarak değerlendirme sürecidir.
d) Güvenlik Değerlendirmesi (Security Assessment): Zayıflık tarama, penetrasyon testi, güvenlik denetimi ve risk değerlendirmesi gibi daha geniş bir değerlendirmeyi kapsar. Bir organizasyonun güvenlik durumunun kapsamlı bir resmini sunar.
e) Risk Değerlendirmesi (Risk Assessment): Organizasyon varlıklarına yönelik riskleri tanımlama, nicelendirmenin ve önceliklendirme sürecidir.
f) Etik Hackleme (Ethical Hacking): Penetrasyon testine benzer şekilde, etik hackleme, bir organizasyonun sistemlerine bilinçli olarak saldırarak bir saldırganın perspektifinden zayıflıkları bulmayı içerir.
g) Kod İncelemesi (Code Review): Kod incelemeleri, manuel olarak veya otomatik araçlar kullanılarak yapılabilir ve yazılım geliştirme sürecinin güvenliğini sağlamada temel bir adımdır.
h) Yapılandırma Yönetimi İncelemesi (Configuration Management Review): Sistemlerin ve uygulamaların güvenli bir şekilde yapılandırıldığından emin olmak kritik öneme sahiptir.
i) Uyumluluk Denetimi (Compliance Auditing): Sistemlerin ve süreçlerin ilgili güvenlik standartları ve düzenlemelere (örneğin GDPR, HIPAA, PCI DSS) uygunluğunu doğrulama sürecidir.
j) Kırmızı Ekip Testi (Red Teaming): Bir organizasyonun insanlarını, ağlarını, uygulamalarını ve fiziksel güvenlik kontrollerini gerçek bir düşmandan gelen bir saldırıya ne kadar dayanıklı olduğunu test eden çok katmanlı bir saldırı simülasyonudur.
k) Sosyal Mühendislik Testi (Social Engineering Testing): Bir organizasyonun personelinin sosyal mühendislik taktiklerine (örneğin phishing, pretexting, baiting, veya tailgating) ne kadar duyarlı olduğunu test etme sürecidir.
l) Durum Değerlendirmesi (Posture Assessment): Bilgisayar sistemlerinin, ağların ve diğer bilgi varlıklarının güvenlik durumunu analiz etme ve anlama sürecidir. Güvenlik açıklarını belirlemeye yardımcı olur.

Şekil-6
(Kaynak: https://www.educba.com/security-testing/)
Henüz üye değil misiniz? Kayıt olun
Are you a member? Login now