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 Dr.Öğr.Üyesi KAYHAN AYAR,
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, Beyin Fırtınası,
2 Web tabanlı yazılımlara karşı yapılan temel saldırıları bilir Grupla Çalışma, Beyin Fırtınası, Soru-Cevap, Rol Oynama, Anlatım,
3 Web uygulamalarına yapılan saldırılara karşı alınması gereken önlemleri uygulayabilir Grupla Çalışma, Beyin Fırtınası, Soru-Cevap, Rol Oynama, Anlatım,
4 Tehdit modellemesi yapabilir Beyin Fırtınası, Soru-Cevap, Anlatım,
5 Web uygulamalarının statik ve dinamik kod analizini yapabilir Grupla Çalışma, Anlatım,
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 Yaşadığı toplumun bilgi toplumu olmasına katkıda bulunmak, toplumsal, bilimsel, kültürel ve etik sorunlara çözüm sunmak amaçlarıyla alanındaki bilimsel, teknolojik, sosyal veya kültürel ilerlemeleri ulusal ve uluslararası bilimsel ortamlarda (toplantılarda) tanıtır.
2 Alanında bilimsel araştırma yaparak bilgiye genişlemesine ve derinlemesine ulaşır, alanında güncel teknik ve yöntemler ile bunların kısıtları hakkında kapsamlı bilgiye sahip olup ve elde ettiği bilgiyi değerlendirir, yorumlar ve uygular.
3 Alanı ile ilgili problemleri tanımlar ve formüle eder, yeni ve/veya özgün fikir ve yöntemler geliştirir; karmaşık sistem veya süreçleri tasarlar ve tasarımlarında yenilikçi/alternatif çözümler ile gelişmekte olan yenilikçi yöntemleri kullanır.
4 Kuramsal, deneysel ve modelleme esaslı araştırmaları tasarlar ve uygular, belirsiz, sınırlı ya da eksik verileri bilimsel yöntemlerle tamamlar; verilerin toplanması, yorumlanması, duyurulması aşamalarında ve mesleki tüm etkinliklerde toplumsal, bilimsel ve etik değerleri gözetir.
5 Alanındaki uygulamaların sosyal, çevresel, sağlık, güvenlik, hukuki boyutlarını ve iş hayatı uygulamalarını bilir ve bunların getirdiği kısıtların farkındadır. Disiplin içi ve çok disiplinli takımlarda etkin bir biçimde birlikte ve ya bağımsız çalışabilir ve sorumluluk alır.
# Ders Öğrenme Çıktılarının Program Çıktılarına Katkısı PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5
1 Güvenli yazılım geliştirmenin temellerini anlar.
2 Web tabanlı yazılımlara karşı yapılan temel saldırıları bilir
3 Web uygulamalarına yapılan saldırılara karşı alınması gereken önlemleri uygulayabilir
4 Tehdit modellemesi yapabilir
5 Web uygulamalarının statik ve dinamik kod analizini yapabilir
Değerlendirme Sistemi
Yarıyıl Çalışmaları Katkı Oranı
1. Proje / Tasarım 100
Toplam 100
1. Final 50
1. Yıl İçinin Başarıya 50
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