Eğitim İçeriği
1. Gün
Bilgi Güvenliği ve Güvenli Kodlama
- Güvenliğin doğası
- Bilgi güvenliği ile ilgili terimler
- Riskin tanımı
- Bilgi güvenliğinin farklı yönleri
- Farklı uygulama alanlarının gereksinimleri
- Bilgi güvenliği ve güvenli kodlama arasındaki farklar
-
Zafiyetlerden botnetlere ve siber suçluluğa geçiş
- Güvenlik hatalarının doğası
- Zorluk sebepleri
- Enfekte bir bilgisayardan hedefli saldırılar
-
Güvenlik hatalarının sınıflandırılması
- Landwehr'in taksonomisi
- Yedi Zararlı Krallık
- OWASP Top Ten 2013
- OWASP Top Ten karşılaştırması 2003 – 2013
Microsoft® Güvenlik Geliştirme Döngüsü (SDL) Giriş
- Ajanda
-
Saldırı altında uygulamalar...
- Siber suç evrimi
- Saldırılar uygulamalara odaklanıyor
- Çoğu zafiyet küçük ISV uygulamalarında bulunuyor
-
Microsoft SDL'nin kökenleri...
- Microsoft'da Güvenlik Zaman Çizelgesi...
- Hangi uygulamaların SDL'yi izlemesi gerekiyor?
-
Microsoft Güvenlik Geliştirme Döngüsü (SDL)
- Microsoft Güvenlik Geliştirme Döngüsü (SDL)
- Pre-SDL Gereksinimleri: Güvenlik Eğitimi
- Birinci Aşama: Gereksinimler
- İkinci Aşama: Tasarım
- Üçüncü Aşama: Uygulama
- Dördüncü Aşama: Doğrulama
- Beşinci Aşama: Yayın – Yanıt Planı
- Beşinci Aşama: Yayın – Son Güvenlik İncelemesi
- Beşinci Aşama: Yayın – Arşivleme
- Post-SDL Gereksinimi: Yanıt
- LOB Uygulamaları için SDL Süreç Rehberi
- Ağile Yöntemler için SDL Rehberi
- Güvenli Yazılım Geliştirme Sürecin İyileştirmesi Gerektiriyor
Güvenli tasarım ilkeleri
-
Saldırı yüzeyi
- Saldırı yüzeyini azaltma
- Saldırı yüzeyi – bir örnek
- Saldırı yüzeyi analizi
- Saldırı yüzeyini azaltma – örnekler
-
Gizlilik
- Gizlilik
- Uygulama Davranışları ve Endişelerin Anlaşılması
-
Derinliklerde savunma
- SDL Temel İlke: Derinliklerde Savunma
- Derinliklerde savunma – örnek
-
En az yetki ilkesi
- En az yetki – örnek
-
Güvenli varsayımlar
- Güvenli varsayımlar – örnekler
Güvenli uygulama ilkeleri
- Ajanda
- Microsoft Güvenlik Geliştirme Döngüsü (SDL)
-
Buffer taşması temelleri
- Intel 80x86 İşlemciler – ana kaydediciler
- Bellek adres düzeni
- C/C++'ta x86 üzerinde fonksiyon çağırma mekanizması
- Yerel değişkenler ve yığın çerçevesi
-
Yığın taşması
- Yığında buffer taşması
- Ödevler – giriş
- BOFIntro Ödevi
- BOFIntro Ödevi – yığın düzenini belirleme
- BOFIntro Ödevi – basit bir saldırı
-
Girdi doğrulaması
- Girdi doğrulama kavramları
-
Sayısal sorunlar
- Negatif sayıların temsili
- Sayısal taşma
- Aritmetik taşma – çıktıyı tahmin et!
- IntOverflow Ödevi
- Math.Abs(int.MinValue) değer nedir?
-
Sayısal sorunların azaltılması
- Sayısal sorunların azaltılması
- Aritmetik taşmanın önlenmesi – toplama
- Aritmetik taşmanın önlenmesi – çarpma
- C#'ta checked anahtar kelimesiyle taşmayı tespit etme
- Ödev – C# kullanarak checked anahtar kelimesini kullanma
- Taşmaların tetiklediği istisnalar C#
-
Örnek – .NET'te sayısal taşma
- Gerçek dünyadaki bir sayısal taşma zafiyeti
- Sayısal taşma zafiyetinin exploit edilmesi
-
Yol geçiş zafiyeti
- Yol geçişin azaltılması
2. Gün
Güvenli uygulama ilkeleri
-
Enjeksiyon
- Tipik SQL Enjeksiyon saldırı yöntemleri
- Kör ve zaman tabanlı SQL enjeksiyonu
- SQL Enjeksiyon koruma yöntemleri
- Komut enjeksiyonu
-
Zayıf kimlik doğrulaması - şifre yönetimi
- Ödev – Hashlenmiş şifrelerin zayıflığı
- Şifre yönetimi ve depolama
- Şifre depolama için özel amaçlı hash algoritmaları
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS enjeksiyonu
- Exploit: diğer HTML etiketleri üzerinden enjeksiyon
- XSS önleme
-
Fonksiyon düzeyi erişim kontrollerinde eksiklik
- Dosya yükleme filtrelemesi
-
Pratik kriptografi
- Simetrik kriptografya ile gizliliğin sağlanması
- Simetrik şifreleme algoritmaları
- Blok şifreler – işlem modları
- Hash veya mesaj özeti
- Hash algoritmaları
- Mesaj Doğrulama Kodu (MAC)
- Simetrik anahtarla bütünlük ve kimlik doğruluğunun sağlanması
- Kamu anahtarı şifrelemesi ile gizliliğin sağlanması
- Deneme kuralı – özel anahtarın sahibi olmak
- Tipik şifre yönetimi hataları
- Ödev – Sertleşmiş şifreler
- Sonuç
Güvenli doğrulama ilkeleri
- Fonksiyonel test ve güvenlik testi
- Güvenlik zafiyetleri
- Önceliklendirme
- SDLC'deki güvenlik testi
- Test planlaması adımları (risk analizi)
-
Kapsama ve bilgi toplama
- Paydaşlar
- Varlıklar
- Saldırı yüzeyi
- Test için güvenlik hedefleri
-
Tehdit modellemesi
- Tehdit modellemesi
- Saldırgan profilleri
- Tehdit ağaçlarına dayalı tehdit modellemesi
- Yanlış kullanım/abuz durumlarına dayalı tehdit modellemesi
- Yanlış kullanım/abuz durumu – basit bir Web mağazası örneği
- STRIDE per element yaklaşım tehdit modellemesi – MS SDL
- Güvenlik hedeflerinin tespiti
- Diyagramlama – DFD elemanları örnekleri
- Veri akışı diyagramı – örnek
- Tehdit listeleme – MS SDL'nin STRIDE ve DFD elemanları
- Risk analizi – tehdit sınıflandırması
- DREAD tehdit/tehlike derecelendirme modeli
-
Güvenlik test metotları ve araçları
- Genel test yaklaşımları
- SDLC'nin çeşitli adımlarında teknikler
-
Kod incelemesi
- Yazılım güvenliği için kod incelenmesi
- Leke analizi
- Sezgisel yollar
-
Statik kod analizi
- Statik kod analizi
- Ödev – Statik kod analizi araçlarının kullanımı
-
Uygulamanın testi
- Manüel çalışma zamanı doğrulaması
- Manüel ve otomatik güvenlik testi
- Penetrasyon testi
- Stres testleri
-
Fuzzing
- Otomatik güvenlik testi - fuzzing
- Fuzzing'in zorlukları
-
Web zafiyet tarama araçları
- Ödev – Zafiyet tarayıcısının kullanımı
-
Ortamın kontrolü ve sertleştirilmesi
- Ortak Zafiyet Puanlama Sistemi – CVSS
- Zafiyet tarayıcıları
- Kamu veri tabanları
-
Örnek – Forms Authentication Bypass
- NULL bayt sonlandırma zafiyeti
- Kodda Forms Authentication Bypass zafiyeti
- Forms Authentication Bypass'in exploit edilmesi
Bilgi kaynakları
- Güvenli kodlama kaynakları – başlangıç paketi
- Zafiyet veritabanları
- .NET güvenli kodlama rehberleri MSDN'de
- .NET güvenli kodlama cheat sheet'leri
- Önerilen kitaplar – .NET ve ASP.NET
Danışanlarımızın Yorumları (5)
Her modül için birden fazla örnek ve eğitmenin büyük bilgi birikimi.
Sebastian - BRD
Eğitim - Secure Developer Java (Inc OWASP)
Yapay Zeka Çevirisi
Modül 3 Uygulama Saldırıları ve Zafiyetleri, XSS, SQL Enjeksiyonu Modül 4 Sunucu Saldırıları ve Zafiyetleri, DOS, BOF
Tshifhiwa - Vodacom
Eğitim - How to Write Secure Code
Yapay Zeka Çevirisi
Genel kurs bilgileri
Paulo Gouveia - EID
Eğitim - C/C++ Secure Coding
Yapay Zeka Çevirisi
Eğitmenin konu bilgisi çok iyi idi ve sunumlar izleyiciye anlaşılmaz şekilde sunulmuştu. Bu, sadece oturup dinlemekle karşılaştırıldığında, bu bilginin pekiştirilmesine gerçekten yardımcı oldu.
Jack Allan - RSM UK Management Ltd.
Eğitim - Secure Developer .NET (Inc OWASP)
Yapay Zeka Çevirisi
Hiçbir şey mükemmel oldu.
Zola Madolo - Vodacom
Eğitim - Android Security
Yapay Zeka Çevirisi