Test & Doğrulama / Güvenlik

Kanıtlanabilir güvenilirlik

Akademik verinin doğruluğu ve arşivin güvenliği; çok katmanlı testler ve dosya güvenlik mekanizmalarıyla desteklenir. Penetrasyon testlerinde saptanan bilinen güvenlik açıkları da şeffaf biçimde belgelenmiştir.

139

Geçen Unit Test

%0

Hesaplama Hata Payı

%40

Daha Hızlı Hata İzolasyonu

9

Bilinen Güvenlik Açığı

Test Stratejisi

Çok katmanlı doğrulama

TDD yaklaşımıyla, her commit'te CI hattında koşan kapsamlı test setleri.

🧪

Birim Testler

BaseEntity zaman damgası ve iş mantığı doğrulamaları; 139 xUnit testi CI'da koşar.

🔗

Entegrasyon Testleri

.NET Aspire orkestrasyonunda Web ↔ PostgreSQL veri iletişimi sürekliliği.

🛡️

Dosya Güvenlik Testleri

FileUploadSecurity: uzantı, MIME, 25MB, magic byte ve zararlı içerik senaryoları.

📋

Kanıt Yükleme Testi

EvidenceController: geçersiz program, PÇ/ÖÇ zorunluluğu ve eksiksiz kayıt oluşturma.

🔍

Denetim Logu Testi

Yükleme/değiştirme/silme sonrası DocumentAuditLog kaydının doğruluğu.

⚙️

CI/CD Doğrulaması

Her push'ta GitHub Actions otomatik test koşumu — geçit bekçisi.

Dosya Güvenliği

Her yükleme 6 denetimden geçer

FileUploadSecurity servisi, kanıt dosyalarını sırayla doğrular.

1

Boyut

Belgeler için 25 MB üst sınır kontrolü.

2

Uzantı

İzin verilen liste: PDF, DOCX, XLSX, PPTX, CSV, TXT, PNG, JPG, JPEG.

3

MIME

İçerik türü ile uzantının uyumu doğrulanır.

4

Magic Byte

%PDF, PNG 8-bayt başlığı ve Office ZIP iç yapı imzası kontrolü.

5

Zararlı Tarama

Metin dosyalarında komut örüntüsü + ClamAV antivirüs taraması.

6

SHA-256

Başarılı yüklemede özet hesaplanıp AppDocument'a yazılır.

Bilinen Güvenlik Açıkları

Tespit edilen açıklar

Penetrasyon testlerinde bulunan açıklar; kök neden ve tetikleme yöntemleriyle (PoC) şeffaf biçimde belgelenmiştir.

BUG-001

Kimlik Doğrulama Bypass

Kritik
AuthenticationCourseAccessService.cs
Kök Neden
Kimlik doğrulama kontrolünde yanlışlıkla `return true;` dönülmesi (Satır 10–18).
Tetikleme (PoC)
Gizli sekmeden (anonim) yetki gerektiren ders veri endpoint'ine istek atmak.
BUG-002

Dosya Erişiminde BOLA

Kritik
AuthorizationCourseFileController.cs
Kök Neden
Veri çekilirken yalnızca ID'ye bakılması, sahiplik (ownership) kontrolünün eksikliği.
Tetikleme (PoC)
Giriş sonrası URL'deki `questionSlotId` parametresini manuel değiştirmek.
BUG-005

T-Skoru Hesaplama Hatası

Yüksek
LogicTScoreCalculatorService.cs
Kök Neden
Standart sapma σ = 0 durumunda bölme/mantıksal kontrol eksikliği.
Tetikleme (PoC)
Tek öğrencili derste 0 puan verip T-Skoru hesabını tetiklemek.
BUG-008

Hassas Veri Sızıntısı (PII)

Yüksek
PrivacyAuthService.cs
Kök Neden
Kullanıcı e-postasının OpenTelemetry etiketine maskelenmeden yazılması.
Tetikleme (PoC)
Login sonrası Jaeger/Console exporter'da `user.email` etiketini kontrol etmek.
BUG-012

Rate Limit Yanlış Yapılandırma

Yüksek
ConfigStakeholderController.cs
Kök Neden
Proxy arkasındayken istemci IP'sinin (RemoteIpAddress) yanlış okunması.
Tetikleme (PoC)
Nginx/IIS arkasında farklı cihazlardan ardışık anket göndererek sistemi kilitlemek.
BUG-015

Statik Dosya İndirme Açığı

Kritik
AuthorizationCourseFileStorageService.cs
Kök Neden
Hassas belgelerin wwwroot altında tahmin edilebilir yollarla saklanması.
Tetikleme (PoC)
Belgenin doğrudan URL yolunu tarayıcıya yapıştırıp anonim indirmek.
BUG-016

CSV/Excel Injection

Yüksek
InjectionStudentController.cs
Kök Neden
Excel/CSV alışverişinde `=` gibi formül karakterlerinin temizlenmemesi.
Tetikleme (PoC)
Öğrenci adını `=cmd|' /C calc'!A1` yapıp listeyi Excel olarak indirmek.
BUG-018

DOM Tabanlı XSS

Yüksek
XSSViews/Student/Index.cshtml
Kök Neden
AJAX'tan dönen JSON verisinin innerHTML ile doğrudan DOM'a basılması.
Tetikleme (PoC)
Forma `<img src=x onerror=alert(1)>` yazıp kaydederek scripti tetiklemek.
BUG-019

Kalıcı (Stored) XSS

Kritik
XSSOutcomeController.cs
Kök Neden
Program çıktıları kaydedilirken HTML temizleme (sanitization) yapılmaması.
Tetikleme (PoC)
Müfredat alanına `<svg/onload=alert('XSS')>` yazıp tüm kullanıcıları etkilemek.

Bu açıklar, sistemin güvenlik olgunluğunu değerlendirmek için bilinçli olarak aranıp raporlanmıştır ve bilinen riskler olarak takip edilmektedir.