BBG642 - GÜVENLİ PROGRAMLAMA

Dersin Adı Kodu Yarıyılı Teori
(saat/hafta)
Uygulama
(saat/hafta)
Yerel Kredi AKTS
GÜVENLİ PROGRAMLAMA BBG642 Herhangi Yarıyıl/Yıl 3 0 3 6
Önkoşul(lar)-var iseYok
Dersin DiliTürkçe
Dersin TürüSeçmeli 
Dersin verilme şekliYüz yüze 
Dersin öğrenme ve öğretme teknikleriAnlatım
Tartışma
Rapor Hazırlama ve/veya Sunma
Sorun/Problem Çözme
Proje Tasarımı/Yönetimi
 
Dersin sorumlusu(ları)Enstitü tarafından belirlenecek 
Dersin amacıÖğrencilerin güvenli yazılım politikalarını, modellerini ve mekanizmalarını hakkında bilgi sahibi olmalarını ve risk analizlerini ve güvenlik testlerini yapabilme yeteneklerini kazandırmak. 
Dersin öğrenme çıktıları
  1. Bu ders kapsamında programlama açıkları ve bu açıkların nasıl suiistimal edildiği tartışılır. Her bir açıklık için olası koruma ve algılama teknikleri ele alınır. Bu dersin sonunda öğrenci;
  2. Arabellek taşması, biçim dizgesi saldırıları, yığın taşması, UNIX dosya izinleri, kontrol zamanı ve kullanım zamanı hataları hakkında bilgi sahibi olur.
  3. Web uygulama güvenliği testleri için gerekli araçları kullanır.
  4. Güvenli tasarım ilkelerini, risk analizlerini ve tehdit modellerini, güvenlik testlerini ve güvenli kod değerlendirme tekniklerini anlar.
  5. Güvenli yazılım politikalarını, modellerini ve mekanizmanları hakkında bilgi sahibi olur.
  6. Gizliklik, bütünlük ve karma güvenlik modellerini öğrenir. Güvenli yazılım geliştirmede denetiminin önemini öğrenir.
Dersin içeriğiGüvenlik doğrulaması ve testi, Durağan analiz araçları kullanarak kod yorumlama
Kabuk ve işletim ortamı, Sayısal değer taşma problemleri ve saldırıları, Yastık alanı taşman problemleri ve saldırıları, Formatlı karakter dizi problemleri ve saldırıları,
Girdi doğrulama problemleri ve saldırıları, Web uygulama güvenliği, oturum yönetimi, XSS saldırıları, Bağlantılar ve Yarış durumları, Standart forma dönüştürme ve dizin gezme hataları, Geçici saklama alanı ve rastgelelik.
 
Kaynaklar? Michael Howard, David LeBlanc, Writing Secure Code: Practical Strategies and Proven Techniques for Building Secure Applications in a Networked World, 2nd ed. Edition, Microsoft Press
? Mark G. Graff, Kenneth R. Van Wyk, Secure Coding: Principles and Practices, O'Reilly Media
? Gary McGraw, Software Security: Building Security, Addison-Wesley
? John Viega, Matt Messier, Secure Programming Cookbook for C and C++: Recipes for Cryptography, Authentication, Input Validation, O'Reilly Media.
? C. P. Pfleeger and S. L. Pfleeger, Security in Computing, 4th Edition, Prentice Hall
 

Haftalara Göre İşlenecek Konular

HaftalarKonular
1. HaftaDerse Giriş
2. HaftaGüvenlik doğrulaması ve testi
3. HaftaDurağan analiz araçları kullanarak kod yorumlama
4. HaftaKabuk ve işletim ortamı
5. HaftaSayısal değer taşma problemleri ve saldırıları
6. HaftaYastık alanı taşman problemleri ve saldırıları
7. HaftaFormatlı karakter dizi problemleri ve saldırıları
8. HaftaAra sınav
9. HaftaGirdi doğrulama problemleri ve saldırıları
10. HaftaWeb uygulama güvenliği, oturum yönetimi, XSS saldırıları
11. HaftaBağlantılar ve Yarış durumları
12. HaftaStandart forma dönüştürme ve dizin gezme hataları
13. HaftaGeçici saklama alanı ve rastgelelik
14. HaftaProje Sunumları
15. HaftaProje Sunumları
16. HaftaGenel sınav

Değerlendirme Sistemi

Yarıyıl içi çalışmalarıSayısıKatkı Payı %
Devam (a)00
Laboratuar00
Uygulama00
Alan Çalışması00
Derse Özgü Staj (Varsa) 00
Ödevler510
Sunum00
Projeler120
Seminer00
Ara Sınavlar120
Genel sınav150
Toplam100
Yarıyıl İçi Çalışmalarının Başarı Notuna Katkısı750
Yarıyıl Sonu Sınavının Başarı Notuna Katkısı150
Toplam100

AKTS (Öğrenci İş Yükü) Tablosu

Etkinlikler Sayısı Süresi Toplam İş Yükü
Ders Süresi 14 3 42
Laboratuvar 0 0 0
Uygulama000
Derse özgü staj (varsa)000
Alan Çalışması000
Sınıf Dışı Ders Çalışma Süresi (Ön Çalışma, pekiştirme, vb)10330
Sunum / Seminer Hazırlama000
Proje14848
Ödevler5210
Ara sınavlara hazırlanma süresi12020
Genel sınava hazırlanma süresi13030
Toplam İş Yükü32106180

Dersin Öğrenme Çıktılarının Program Yeterlilikleri İle İlişkilendirilmesi

D.9. Program YeterlilikleriKatkı Düzeyi*
12345
1. Bilgi ve Siber Güvenlik temel alanları hakkında detaylı bilgi sahibidir.  X  
2. Şifreleme, sayısal imza, güvenlik protokolleri gibi ortak temalar ve kavramlara hakimdir.   X 
3. Teori ve pratiğin birbirini hangi şekillerde etkilediğini ve birbirleri arasındaki bağları anlar.   X 
4. Farklı soyutlama ve detay seviyelerinde düşünebilme yetisine sahiptir.    X
5. Herhangi bir teknik veya bilimsel bilgi güvenliği problemini kendi başına çözümler ve olası en uygun çözümü sunar.    X
6. Bilgi güvenliği ve siber güvenlik alanının hızla geliştiğinin, güvenlik algoritmalarının ve güvenlik açıklarının ve atak tiplerinin zamanla değiştiğinin farkındadır.    X 
8. Bilgi güvenliği uygulamalarına dair sosyal, yasal, etik ve kültürel hususların farkındadır.X    
9. Siber güvenlik alanında terminolojiye hakimdir.  X  
10. Araştırma problemleri tanımlayabilir ve bilimsel problemleri çözmek için bilimsel yöntemler kullanarak bu araştırmaları yürütür.    X 

*1 En düşük, 2 Düşük, 3 Orta, 4 Yüksek, 5 Çok yüksek