Ders Adı Kodu Yarıyıl T+U Saat Kredi AKTS
Güvenli Yazılım Geliştirme SG 508 0 3 + 0 3 6
Ön Koşul Dersleri

Nesne Yönelimli Programlama, Web Programlama

Önerilen Seçmeli Dersler
Dersin Dili Türkçe
Dersin Seviyesi YUKSEK_LISANS
Dersin Türü Seçmeli
Dersin Koordinatörü Dr.Öğr.Üyesi KAYHAN AYAR
Dersi Verenler Prof.Dr. CELAL ÇEKEN,
Dersin Yardımcıları
Dersin Kategorisi Diğer
Dersin Amacı

Son yıllarda yazılımlardan kaynaklı güvenlik açıklıklarının artması ve bunun sonucu olarak beklenmedik kayıpların ortaya çıkması, yazılım geliştirilme süreçlerinin her aşamasında güvenlik konusunun göz önünde bulundurulması zorunluluğunu beraberinde getirmiştir. Bu ders kapsamında, güvenli yazılım geliştirme yaşam döngüsü ve web tabanlı uygulamaların güvenliği konuları irdelenecektir. Web uygulamalarının maruz kaldıkları yaygın güvenlik tehditleri incelenerek, alınması gereken önlemler güvenli yazılım geliştirme yaşam döngüsü kapsamında ele alınacaktır.

Dersin İçeriği

Yazılımların Güvenliği, Yazılım Geliştirme Yaşam Döngüsü, Web Tabanlı Uygulama Mimarisi (Senkron İletişim, Asenkron İletişim, Oturum Yönetimi, Veri Tabanı Bağlantıları, Erişim Denetimi...), Nesne Yönelimli Paradigma, SOLID İlkeleri, Web Servisleri, Güvenli Yazılım Geliştirme Yaşam Döngüsü ( Tehdit Modelleme ve Risk Analizi, Statik Kod Analizi, Dinamik Kod Analizi), Web Tabanlı Uygulamaların Güvenliği; Güvenlik Denetimleri, OWASP TOP 10 Listesi  , Web Tabanlı Uygulamaların Güvenli Hale Getirilmesi, Proje Çalışması

# Ders Öğrenme Çıktıları Öğretim Yöntemleri Ölçme Yöntemleri
1 Güvenli yazılım geliştirmenin temellerini anlar. Anlatım, Soru-Cevap, Tartışma, Sınav, Ödev,
2 Web tabanlı yazılımlara karşı yapılan temel saldırıları bilir Anlatım, Soru-Cevap, Tartışma, Gösterip Yaptırma, Örnek Olay, Sınav, Ödev, Proje / Tasarım,
3 Web uygulamalarına yapılan saldırılara karşı alınması gereken önlemleri uygulayabilir Anlatım, Soru-Cevap, Tartışma, Gösterip Yaptırma, Örnek Olay, Sınav, Ödev, Proje / Tasarım,
4 Tehdit modellemesi yapabilir Anlatım, Soru-Cevap, Tartışma, Sınav, Ödev,
5 Web uygulamalarının statik ve dinamik kod analizini yapabilir
Hafta Ders Konuları Ön Hazırlık
1 Ders Tanıtımı, Yazılımların Güvenliği
2 Güvenli Yazılım Geliştirme Yaşam Döngüsü, Programlama Paradigmaları
3 Web Tabanlı Uygulama Mimarisi (Senkron İletişim, Asenkron İletişim, Oturum Yönetimi, Veri Tabanı Bağlantılarıi)
4 Güvenli Yazılım Geliştirme Yaşam Döngüsü, Oturum Yönetimi, Rol Tabanlı Erişim Denetimi, Web Servisler
5 Güvenli Yazılım Geliştirme Yaşam Döngüsü: Tehdit Modelleme ve Risk Analizi
6 Web Tabanlı Uygulamaların Güvenliği; Güvenlik Denetimleri, OWASP TOP 10 Listesi
7 Statik Kod Analizi, Dinamik Kod Analizi
8 Web Tabanlı Uygulamaların Güvenliği; Güvenlik Denetimleri, OWASP TOP 10 Listesi
9 Web Tabanlı Uygulamaların Güvenliği; Güvenlik Denetimleri, OWASP TOP 10 Listesi
10 Web Tabanlı Uygulamaların Güvenliği; Güvenlik Denetimleri, OWASP TOP 10 Listesi, NodeGoat
11 Web Tabanlı Uygulamaların Güvenliği; Güvenlik Denetimleri, OWASP TOP 10 Listesi, NodeGoat
12 Web Tabanlı Uygulamaların Güvenliği; OWASP Güvenlik Doğrulama Standardı
13 Proje Sınavları
14 Proje Sınavları
Kaynaklar
Ders Notu

Ders Notları

https://github.com/celalceken/SecureSoftwareDevelopment
http://www.iotlab.sakarya.edu.tr/CoursesMain.html

Ders Kaynakları

1. OWASP, https://www.owasp.org/index.php/Main_Page
2. https://www.owasp.org/index.php/OWASP_Proactive_Controls
3. Software Security: Building Security In by Gary McGraw. Addison-Wesley, ISBN 978-321-35670-3
4. The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities, 978-0-321-4442-4, by Dowd, McDonald, and Schuh
 

Sıra Program Çıktıları Katkı Düzeyi
1 2 3 4 5
1 Mühendislik alanında bilimsel araştırma yaparak bilgiye genişlemesine ve derinlemesine ulaşabilme, bilgiyi değerlendirme, yorumlama ve uygulama becerisi X
2 Sınırlı ya da eksik verileri kullanarak bilimsel yöntemlerle bilgiyi tamamlayabilme ve uygulama becerisi; değişik disiplinlere ait bilgileri bütünleştirebilme becerisi X
3 Mühendislik problemlerini kurgulayabilme, çözmek için yöntem geliştirme ve çözümlerde yenilikçi yöntemler uygulama becerisi X
4 Yeni ve orijinal fikir ve yöntemler geliştirme becerisi; sistem, parça veya süreç tasarımlarında yenilikçi çözümler geliştirebilme becerisi X
5 Mühendislikte uygulanan modern teknik ve yöntemler ile bunların sınırları hakkında kapsamlı bilgi X
6 Analitik, modelleme ve deneysel esaslı araştırmaları tasarlama ve uygulama becerisi; bu süreçte karşılaşılan karmaşık durumları analiz etme ve yorumlama becerisi X
7 Gereksinim duyulan bilgi ve verileri tanımlama, bunlara ulaşma ve değerlendirmede ileri düzeyde beceri X
8 Çok disiplinli takımlarda liderlik yapma, karmaşık durumlarda çözüm yaklaşımları geliştirebilme ve sorumluluk alma becerisi
9 Çalışmalarının süreç ve sonuçlarını, o alandaki veya dışındaki ulusal ve uluslar arası ortamlarda sistematik ve açık bir şekilde yazılı ya da sözlü olarak aktarabilme becerisi X
10 Verilerin toplanması, yorumlanması, duyurulması aşamalarında ve mesleki tüm etkinliklerde toplumsal, bilimsel ve etik değerleri gözetme yeterliliği X
11 Mesleğinin yeni ve gelişmekte olan uygulamaları hakkında farkındalık; gerektiğinde bunları inceleme ve öğrenebilme becerisi X
12 Mühendislik uygulamalarının sosyal ve çevresel boyutlarını anlama ve sosyal çevreye uyum becerisi X
Değerlendirme Sistemi
Yarıyıl Çalışmaları Katkı Oranı
1. Proje / Tasarım 100
Toplam 100
1. Yıl İçinin Başarıya 75
1. Final 25
Toplam 100
AKTS - İş Yükü Etkinlik Sayı Süre (Saat) Toplam İş Yükü (Saat)
Ders Süresi (Sınav haftası dahildir: 16x toplam ders saati) 16 3 48
Sınıf Dışı Ders Çalışma Süresi(Ön çalışma, pekiştirme) 16 1 16
Ara Sınav 1 10 10
Ödev 1 10 10
Proje / Tasarım 1 20 20
Final 1 35 35
Toplam İş Yükü 139
Toplam İş Yükü / 25 (Saat) 5,56
Dersin AKTS Kredisi 6