Ders Notları

100% Complete (success)
Dikkat !!! Lütfen okuyunuz ...

Öğretim Üyesi (Üyeleri): Öğr. Gör. Emre Engin *

(*) Ders notu girebilmek için, bu alanda kendi isminiz yazıyor olmalı...

  • Bologna verilerinin girilmesi;
    ubys.omu.edu.tr adresinden,
    ÜBYS' de Öğretim Elemanları yetkisi seçilmeli... Öğretim elemanı danışmanlık işlemlerinden yapabilirsiniz...
Yıl: 2025, Dönem: Güz
Ders Kitabı / Malzemesi / Önerilen Kaynaklar

Dersin İçeriği

Ders içeriği; web uygulamalarında sık görülen saldırı türlerinin incelenmesi, güvenlik açıklarının laboratuvar ortamında deneyimlenmesi, güvenli kodlama ve yapılandırma prensiplerinin uygulanması, otomasyon ve test senaryolarının geliştirilmesi, son 6 hafta boyunca proje tabanlı çalışmalara odaklanılması konularını kapsar.

Dersin Amacı

Bu dersin amacı, öğrencilerin web uygulamalarında görülen güvenlik açıklarını (XSS, SQL Injection, File Upload, Directory Traversal, LFI/RFI, Command Injection vb.) tanımlayabilmesini, güvenli test ortamında bu açıkları istismar ederek analiz etmesini, ardından uygun mitigasyon ve düzeltme adımlarını uygulayabilmesini sağlamaktır. Öğrenciler, proje tabanlı öğrenme yöntemi ile siber güvenlik zafiyetlerinin tespitinden raporlamasına kadar bütün süreci deneyimleyeceklerdir.

Haftalık Ders İçeriği

Hafta Teorik Uygulama Laboratuar Ders Notları
1 XSS türleri (Reflected, Stored, DOM), çıktı kodlama ve İçerik Güvenliği İlkeleri (CSP); SQLi türleri (Union, Error-based, Blind) ve parametreli sorgular. XSS saldırılarının loglarının analizi ve zafiyetli bir uygulamada SQL enjeksiyonu açığını parametreli sorgular kullanarak giderme pratiği. XSS payload'larını yakalama ve loglar üzerinden iz sürme, kısa betiklerle log özeti alma. Mini "vulnerable notes" uygulamasında parametreli sorgu kullanarak düzeltme yapma ve değişiklikleri Git ile kaydetme.
2 Path traversal (dizin geçişi) kalıpları ve whitelist/denylist farkı. Dosya yükleme kontrolleri (MIME, uzantı, içerik doğrulama). Dizin geçişi saldırılarına ait logları analiz ederek kök neden raporu hazırlama ve güvenli dosya yükleme mekanizması için doğrulama betikleri oluşturma pratiği. Traversal istismarlarının log analizi ve kök neden analizi (RCA) raporu hazırlama. Güvenli dosya yükleme için betiklenmiş doğrulama adımları oluşturma ve test senaryolarını sürümleme
3 Include mekanizmaları ve dizin/isim sınırlandırmaları. Kod enjeksiyonu yüzeyleri (template, eval, deserialization özeti). LFI/RFI saldırılarını sistem logları üzerinden takip etme , düzeltme eylemlerini ve güvenli yapılandırma kontrollerini otomasyon betikleri ile uygulama pratiği. LFI/RFI vakasında journalctl/logrotate ile olay izleme ; düzeltici eylemi betikle uygulama. Güvenli yapılandırmayı otomasyon betiğine alma ve ortam değişkenleri/izinler kontrolü yapma.
4 OS komut enjeksiyon kalıpları, en az ayrıcalık ilkesi ve kaçışlama yöntemleri. LDAP filtre enjeksiyonu ve karakter kaçış stratejileri. Güvenli bir test ortamı kurma ve bu ortamda komut/LDAP enjeksiyonlarına karşı güvenlik duvarı ve yetkilendirme kuralları ile sertleştirme adımlarını uygulama pratiği. Uzak bir hedefe SSH anahtarlı erişim sağlayarak güvenli bir test ortamı kurma. Komut ve LDAP enjeksiyonlarını engellemek için UFW/nftables ve sudo gibi araçlarla sertleştirme adımlarını belgelendirme.
5 Gelişmiş içerik doğrulama, antivirüs/ClamAV entegrasyonları. XXE, XML bomb ve XPath enjeksiyon ilkeleri. Komut satırı araçları kullanarak sunucuya yüklenmiş kötücül dosyaları tespit etme ve Git üzerinde zafiyet düzeltmelerini etiketleyerek sürümleme pratiği. grep/sed/awk/find/xargs gibi araçlarla kötücül dosya yüklemelerinin parmak izlerini toplu olarak tespit etme. Zafiyet düzeltmelerinin etiketlenmiş sürümler halinde Git ile kaydedilmesi ve akran denetimi (peer-review) yapılması.
6 Zayıf parola/sözlük saldırıları, güvenli parola saklama yöntemleri ve Çok Faktörlü Kimlik Doğrulama (MFA). CAPTCHA atlatma iş akışları ve mevcut sınırlılıkları. Kaba kuvvet saldırılarına karşı sunucu yapılandırmasını sertleştirme ve başarısız giriş denemelerini izleyerek otomatik uyarı sistemleri geliştirme pratiği. SSH anahtar tabanlı kimlik doğrulama politikası ve Fail2ban gibi araçlarla kaba kuvvet saldırılarına karşı sunucu sertleştirme. Başarısız oturum açma denemelerinin log analizi ve eşik tabanlı uyarı betikleri oluşturma.
7 IDOR (Insecure Direct Object References), yatay/dikey yetki ihlali. Mass assignment (toplu atama) zafiyetleri ve DTO (Data Transfer Object)/whitelist yaklaşımı ile önlenmesi. Yetki modellerini ACL ve sudoers ile test etme ve uygulama seviyesinde mass assignment zafiyetlerine karşı alınan önlemleri Git ve CI/CD pijamalarıyla entegre etme pratiği. ACL (Access Control List) ve sudoers senaryoları üzerinden yetki modellemesi ve bu modellerin test edilmesi. Uygulama katmanında mass assignment zafiyetlerine karşı alınan önlemlerin Git ile sürüm kontrolüne kaydedilmesi ve CI (Continuous Integration) ile otomatik olarak doğrulanması.
8 Zayıf rastgelelik, öngörülebilir token/nonce; PRNG tuzakları. Zayıf token üretimini betiklerle test etme ve önceki haftaların konularını birleştirerek seçili bir zafiyet için tam bir vaka (RCA raporu, onarım betiği, sürümleme) analizi yapma pratiği. Token/nonce üretimini betikle test etme ve istatistiksel özet çıkarma; zafiyet raporu hazırlama. Önceki haftalardan bir senaryo seçip Kök Neden Analizi (RCA) raporu hazırlama, onarım betiği teslimi ve sürüm-etiketleme yapma.
10 Proje Başlangıcı ve Planlama: Proje yönetim döngüsü, etik-hukuki çerçeve, risk/etki analizi, proje kuralları Proje planı hazırlanması (Gantt benzeri basit zaman çizelgesi) Rol dağılımı: takım lideri, araştırmacı, geliştirici, raporlayıcı Git repo üzerinde issue template ve branch yapısının oluşturulması İlk haftalık sprint backlog’unun belirlenmesi Grupların oluşturulması (4 kişilik ekipler) Git repository açılması ve ilk commit/tag işlemleri “Threat Model” şablonunun doldurulması Rol dağılımı ve proje teslim zaman çizelgesinin hazırlanması
11 Keşif ve Zafiyet Tespiti: Tarama yöntemleri, log analizi, tehdit modelleme, kanıt toplama ve standart raporlama “Zafiyet Tespit Raporu” hazırlanması (kanıt ekranları + log analizi + RCA özeti) Log paketinin rapora eklenmesi Gruplar arası bulgu karşılaştırması ve rapor standardizasyonu Pasif ve aktif tarama araçlarıyla (Nmap, Nikto, ZAP) keşif çalışması Web loglarından saldırı izlerinin çıkarılması RCA (Root Cause Analysis) şablonu ile temel kök neden analizi Kanıt ekran görüntüleri ve log dosyalarıyla zafiyet doğrulama
12 Mitigasyon Tasarımı: Güvenli kodlama prensipleri, yapılandırma sertleştirmesi, politika geliştirme ve rollback planlama “Mitigasyon Planı” belgesinin hazırlanması (çözüm adımları + güvenlik politikaları + rollback adımları) Risk önceliklendirmesi yapılarak çözüm adımlarının sıralanması Git repo üzerinde “plan” branch açılması ve dokümantasyonun eklenmesi Önceki haftalarda bulunan zafiyetler için çözüm önerilerinin tartışılması Güvenlik politikası taslağı hazırlanması (ör. input doğrulama, yetkilendirme kontrolleri, dosya yükleme kısıtlamaları) Rollback planının (geri dönüş senaryosu) belirlenmesi Grup içi peer review (tasarım gözden geçirme)
13 Mitigasyon Uygulaması: Değişiklik kontrolü, güvenli commit/tag süreçleri, rollback testleri ve sürüm yönetimi “Mitigasyon Commit’leri” hazırlanması (anlamlı commit mesajları + test notları) Tag kullanılarak sürümleme yapılması (ör. v1.0-secure) Rollback testlerinin gerçekleştirilmesi ve raporlanması Git repo’da “fix” branch’in main ile birleştirilmesi Bir önceki hafta hazırlanan “Mitigasyon Planı”nın uygulanması Güvenlik yamalarının ve yapılandırma değişikliklerinin kod tabanına eklenmesi Git üzerinde anlamlı commit mesajları ve tag kullanımı Rollback (geri dönüş) senaryolarının test edilmesi
14 Doğrulama ve Test: Otomatik test betikleri, CI/CD entegrasyonu, başarı/başarısızlık kriterleri ve raporlama “Doğrulama Betiği” geliştirilmesi (zafiyetin tekrar kullanılamadığını test eden script) CI ortamında başarılı/başarısız sonuçların analiz edilmesi “Test Raporu” hazırlanması ve repo’ya eklenmesi Başarısız testler için revizyon planının çıkarılması Önceki haftalarda uygulanan mitigasyonların doğrulanması Test betiklerinin yazılması (ör. Python, Bash, curl tabanlı) CI/CD ortamında testlerin otomatik çalıştırılması Test çıktılarının rapora dönüştürülmesi
15 Sunum ve Nihai Raporlama: Akademik rapor formatı, teknik sunum ilkeleri, proje çıktılarının değerlendirme ölçütleri “Final Proje Raporu” teslimi (bulgular, mitigasyonlar, test sonuçları, RCA özetleri) 15 dakikalık proje sunumu ve 5 dakikalık Q&A Canlı demo (saldırı → tespit → düzeltme → yeniden test) Repo, commit/tag ve test çıktılarının yüklenmesi Proje raporlarının son hâle getirilmesi (3–5 sayfa teknik rapor) Sunum dosyalarının hazırlanması (slayt ya da video) Canlı demo provası: saldırı → tespit → düzeltme → doğrulama döngüsünün gösterimi Grup içi son kontroller ve teslim hazırlığı