DERS ADI

: İleri Yazılım ve Uygulama Güvenliği

Ders Bilgileri

Ders Kodu Ders Adı Ders Türü D U L AKTS
CSC 5018 İleri Yazılım ve Uygulama Güvenliği SEÇMELİ 3 0 0 8

Dersi Veren Birim

Fen Bilimleri Enstitüsü

Dersin Düzeyi

Yüksek Lisans

Ders Koordinatörü

DOÇ.DR. METE EMİNAĞAOĞLU

Dersi Alan Birimler

Bilgisayar Bilimleri Doktora (İngilizce)
Bilgisayar Bilimleri Yüksek Lisans

Dersin Amacı

Web, mobil ve bulut bilişim uygulamalarındaki yazılım güvenliğine ilişkin zayıflıklar, tehditler, açıklar ve bunları giderecek çözümler, yöntemler, uygulamalar, araçlara yönelik kapsamlı kuramsal ve uygulamalı bilgi, becerileri ve deneyimi kazandırmayı amaçlamaktadır. Marka bağımsız çeşitli yazılımlar ve uygulamalara yönelik çeşitli saldırıları önleyecek, belirleyecek ya da düzeltecek çeşitli teknik ve yönetimsel yaklaşımlar ve çözümleri öğrencilerin derinlemesine öğrenmelerini ve bunları iş yaşamında kullanmalarını sağlamayı amaçlamaktadır.

Dersin Öğrenme Kazanımları

1   Şirketler ya da kurumlardaki yazılım geliştirme süreçlerinin her bir aşamasına yönelik güvenlik sorunlarına ilişkin gerekli çözümleri uygulamak ve geliştirmek.
2   Yazılım projeleri, veri tabanları sistemleri ve çeşitli uygulamaların güvenliği için kurumsal denetimler ve saldırı analizi testlerini planlamak ve yürütmek.
3   Uygulamalara yönelik saldırılar ve saldırganlara karşı teknik, yasal ve yönetimsel önlemler ve eylemleri etkili bir biçimde uygulayacak ve uygulatacak bilgi ve beceriyi kazanmak.
4   Yazılımların kaynak kodlarının güvenlik analizleri için çeşitli yöntemler, prosedürler ve teknikleri belirlemek ve bunları ilgili test süreçlerinde kullanımını planlayarak testleri yapmak ve yönetmek.
5   Yazılım güvenlik açıklarını ve güvenlik risklerini belirleyecek ve ölçecek çeşitli programları ve mimarileri tasarlayıp geliştirebilmek.

Dersin Öğretim Türü

Örgün Öğretim

Dersin Önkoşulu/Önkoşulları

Yok

Ders İçin Önerilen Diğer Hususlar

Yok

Ders İçeriği

Hafta Konular Açıklama
1 Bilgi güvenliğindeki temel kavramlar; tehditler, zayıflıklar, riskler. Önleyici, belirleyici ve düzeltici çözüm yaklaşımları.
2 Yazılım ve uygulama güvenliğine ilişkin kavramlara giriş. Bellek taşması, virüsler, hizmet kesintisi gibi geçmiş dönemlerde en çok yapılan saldırılar ve bunlara karşı geliştirilen güvenlik çözümleri.
3 Güvenli yazılım geliştirme yaşam döngüsü modelleri ve mimarileri. Yazılım geliştirmede güvenlik test yöntemleri, araçları ve teknikleri 1. Bölüm: Kaynak kodda güvenlik analizi yöntem ve teknikleri. Kaynak kodlarda arka kapı bulgulama ve gizli hat belirlemeye yönelik çeşitli teknikler ve yöntemler.
4 Yazılım geliştirmede güvenlik test yöntemleri, araçları ve teknikleri 2. Bölüm: Çalışan kod ve uygulamalar için güvenlik test yöntem ve teknikleri. Çalışan zararlı kod ve uygulamadaki açıkları belirlemede kullanılan diğer test yöntemleri. Yazılım geliştirme bileşen, araç ve platformlardaki güvenlik açıklarının yarattığı tehditler ve bunlara yönelik güvenlik çözümleri.
5 Sızma testleri, güvenlik denetimleri ve zayıflık analizleri: Planlanması, yönetimi, işletimi ve raporlanması. Çeşitli ilgili araçlar ve örnek uygulamaları.
6 Kriptografi: Temel kavramların kısaca gözden geçirilmesi. Yazılım ve web uygulamalarında kullanılan güncel kripto algoritmaları ve teknolojileri.
7 Tersine mühendislik (kaynak koduna geri çevirme) saldırıları. Uygulama / veri kopyalama koruması ve yazılım lisans koruması amaçlı çeşitli yöntemler, araçlar ve örnekler.
8 Ara sınav (proje teslimi)
9 Kriptografik saldırılar, yazılım ve web uygulamalarındaki kriptografi zayıflıkları ve bunlara yönelik çeşitli güvenlik çözümleri.
10 Veri tabanı sistemleri, işletim sistemleri ve web uygulamlarındaki hatalı / eksik güvenlik ayarları. Bunların yol açabileceği sorunlara ve tehditlere karşı önleyici, belirleyici ve düzeltici güvenlik amaçlı çeşitli çözümler.
11 SQL enjeksiyonu, html / URL enjeksiyonu, AJAX enjeksiyonu and diğer belli başlı kod enjeksiyon saldırıları. Bu saldırılara yönelik çeşitli güvenlik çözümleri.
12 Kalıcı / kalıcı olmayan ve DOM tabanlı cross-site betik kodu saldırıları. Cross-site istek sahtekarlığı and diğer betik tabanlı / istemci tarafındaki uygulamalara yönelik çeşitli saldırı yöntemleri. Bu saldırılara yönelik çeşitli güvenlik çözümleri.
13 Dizin açığa çıkarma ve URL parametrelerini kurcalama saldırıları. Kimlik doğrulama ve oturum yönetimine yönelik saldırılar. Bunlara yönelik güvenlik çözümleri. Ödevin değerlendirilmesi.
14 Yetki istismarı amaçlı özel araçların tasarlanması ve bu araçların kodlanarak geliştirilmesi. Fark edilmesi zor bu tür saldırı araçlarını bulgulmaya yönelik gelişmiş teknikler ve yöntemler.

Ders İçin Önerilen Kaynaklar

Ana kaynak: Dafydd Stuttard and Marcus Pinto. The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws, 2nd ed., Wiley Pub., 2011.
Mark Dowd, John McDonald, Justin Schuh. The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities, Pearson Education Inc., 2007.

Yardımcı kaynaklar: James C. Foster, Vincent T. Liu, Writing Security Tools and Exploits, Syngress Pub., 2006.

Öğrenme ve Öğretme Yöntemleri

Ders, anlatım, sınıf sunumu ve tartışma biçiminde öğretilecek. Öğretilen dersin yanı sıra, öğrencilere gruplar halinde sunumlar hazırlatılacak ve tartışmalı oturumlar şeklinde sundurulacaktır. Dersin bazı haftalarında, daha önce verilen ödev sonuçları tartışılarak pekiştirilecektir.

Değerlendirme Yöntemleri

SIRA NO KISA KOD UZUN ADI FORMUL
1 ARS ARASINAV
2 ODV ÖDEV
3 SUN SUNUM
4 YSS YIL SONU SINAVI
5 YSBN YIL SONU BAŞARI NOTU ARS* 0.30 + ODV * 0.20 + SUN * 0.10 + YSS * 0.40
6 BUT BÜTÜNLEME
7 BUTBN BÜTÜNLEME SONU BAŞARI NOTU ARS* 0.30 + ODV * 0.20 + SUN * 0.10 + BUT * 0.40


*** Bütünleme Sınavı Yapılmayan Birimlerde Bütünleme Kriteri Dikkate Alınmaz.

Değerlendirme Yöntemlerine İliskin Aciklamalar

Yok

Değerlendirme Kriteri

İlan Edilecektir.

Dersin Öğretim Dili

İngilizce

Derse İlişkin Politika ve Kurallar

İlan Edilecektir.

Dersin Öğretim Üyesi İletişim Bilgileri

İlan Edilecektir.

Ders Öğretim Üyesi Görüşme Gün ve Saatleri

İlan Edilecektir.

Staj Durumu

YOK

İş Yükü Hesaplaması

Etkinlikler Sayısı Süresi (saat) Toplam İş Yükü (saat)
Ders Anlatımı 13 3 39
Haftalık Ders öncesi/sonrası hazırlıklar 13 4 52
Vize Sınavına Hazırlık 1 20 20
Final Sınavına Hazırlık 1 20 20
Ödev Hazırlama 2 20 40
Sunum Hazırlama 2 15 30
Final Sınavı 1 2 2
Vize Sınavı 1 2 2
TOPLAM İŞ YÜKÜ (saat) 205

Program ve Öğrenme Kazanımları İlişkisi

PK/ÖKPK.1PK.2PK.3PK.4PK.5PK.6PK.7PK.8PK.9PK.10
ÖK.1555
ÖK.2555
ÖK.3555
ÖK.4555
ÖK.5555