Blazor 5 Demo Senaryosu – Detaylı Spesifikasyonlar
Bu belge, Blazor örnek projesinde uygulanacak beş somut demo senaryosunun akışını, event listelerini, görsel metinlerini ve politika eşiklerini tek referans olarak tanımlar. Her demo "Gözlemle → Tahmin Et → Karar Ver" üçlüsünü sektöre özgü bir acı noktasıyla gösterir.
Demo 1: Finans Dolandırıcılığı Senaryosu
Konsept: "Yaklaşan tehlikeyi tek bir olayda değil, birkaç dakika içinde gerçekleşen olaylar zincirinin oluşturduğu davranış modelinde görün."
Demo Akışı
Sahne kurulumu: Demo arayüzü "Ahmet K." adlı bir kullanıcının banka hesabı kontrol panelini gösterir. Görsel: Normal hesap aktivitesi gösteren sakin bir zaman çizelgesi.
Olaylar zinciri (Gözlemle – Observe): Senaryo başlatıldığında aşağıdaki BehaviorEvent'ler dakikalar içinde simüle edilir.
| # | Metadata / Not | Eylem (Action) |
|---|---|---|
| 1 | IP: 105.12.34.56 (yeni ülke) | Login |
| 2 | — | ChangeContactEmail |
| 3 | — | HighValueTransfer (maksimum limit) |
| 4 | — | RequestNewCardExpressShipping |
Niyet çıkarımı (Tahmin et – Infer): Her olaydan sonra bir ChainedIntentModel çalıştırılır.
- RuleBasedIntentModel (ilk kontrol): ChangeContactEmail sonrası HighValueTransfer kuralını tetikler → FlagForReview niyeti.
- LlmIntentModel (davranış analizi): Tüm olay dizisini bir bütün olarak gömme (embedding). TimeDecay motoru ile yakın zamanlı olaylar daha ağırlıklı. "Account Takeover for Fraudulent Transfer" niyeti ile yüksek benzerlik. Confidence: %94.
Karar ve görselleştirme (Karar ver – Decide):
- Görsel 1 (Coğrafi harita): Login IP'si kırmızıyla, kullanıcının normal lokasyonu yeşille yanar.
- Görsel 2 (Skor grafiği): Zaman çizelgesinin üzerinde her olayla birlikte yükselen "Fraud Risk Score" çizgisi. LlmIntentModel devreye girdiğinde skorun aniden sıçraması vurgulanır.
- Karar: IntentPolicy, güven skoru >%90 ise Block ve Escalate kararını verir.
- Bildirim: Ekranda büyük bir "İŞLEM DURDURULDU & GÜVENLİK EKİBİNE BİLDİRİLDİ" bildirimi belirir.
Demo 2: Hesap Ele Geçirme Saldırısı (ATO)
Konsept: "Parçalar tehlikeli görünmeyebilir, ancak Intentum onları bir araya getirip resmi görebilir."
Demo Akışı
Olaylar: Her biri başlı başına meşru olabilecek, hızlı bir olay akışı simüle edilir (hepsi aynı BehaviorSpace'e):
- FailedLogin (yanlış şifre)
- PasswordResetRequest
- EmailAccessFromNewDevice (reset linkine tıklama)
- Login (yeni cihaz, başarılı)
- ProfileUpdate (2FA telefon numarası kaldırıldı)
Davranış uzayı ve modelleme: LlmIntentModel bu olaylar dizisini "Credential Stuffing & Account Hijacking" niyeti için eğitilmiş vektör uzayında değerlendirir. Kısa zaman dilimindeki yoğun, sıralı aktivite modeli %88 güven skoru üretir.
Görselleştirme: Ekran ikiye bölünür.
- Sol: Olayların kronolojik listesi.
- Sağ: Her olayla birlikte güncellenen, büyüyen bir Intent kartı: Intent.Name, Confidence yüzdesi, modelin çıkarım yaparken dikkate aldığı anahtar kelimeler: "reset", "new device", "2fa removal".
Demo 3: İçeriden Gelen Tehdit (Insider Threat)
Konsept: "Intentum normali bilir, normallikten sapmayı niyet değişikliğinin erken işareti olarak yorumlar."
Demo Akışı
Baz çizgisi oluşturma: Demo "Merve B." adlı bir çalışanın 30 günlük tipik davranışını gösteren bir grafikle başlar: Sabah 9–18 mesai, belirli dahili sistemlere erişim, haftada ~100 dosya indirme.
Anomali senaryosu: İşten çıkarılma öncesindeki iki gün simüle edilir:
- MassFileDownload (gece yarısı, normalin 10 katı)
- AccessToUnusualDatabase (projesi olmayan müşteri veritabanı)
- AttemptToUsePrivilegedAPIs (yetki hatası)
Tahmin ve politika: IIntentModel bu davranışları çalışanın tarihsel baz çizgisi vektörüyle karşılaştırır. Büyük sapma "Data Exfiltration Preparation" niyetine yüksek puan verir. IntentPolicy: güven skoru eşiğini aştığında RequireAuth (ek kimlik doğrulama) ve yöneticiye Warn kararı.
Görselleştirme: Yan yana iki çubuk grafik: Solda "Normal Aktivite Baz Çizgisi", sağda "Son 48 Saat". Anormal indirme ve erişim çubukları kırmızıyla parlarken, ekrana bir Warn kararı simülasyonu gelir.
Demo 4: Sıfır-Gün Saldırı Davranışı
Konsept: "İmza henüz yok, ancak kötü niyetli davranış modeli değişmedi."
Demo Akışı
Bilinmeyen saldırı: Yeni, imza tabanlı güvenlik duvarlarının tanımadığı bir "yatay hareket" saldırısı simüle edilir:
- PortScan
- ExploitAttempt (bilinen bir CVE'siz)
- LateralMoveToServerB
Davranış tabanlı eşleme: ChainedIntentModel çalışır.
- RuleBasedIntentModel belirli exploit imzasını tanımadığı için düşük puan verir.
- LlmIntentModel olayların gömme vektörünü hesaplar; veritabanındaki "Lateral Movement & Discovery" ve "Ransomware Precursor Activity" gibi bilinen kötü niyetli davranış kümeleriyle yüksek benzerlik tespit eder.
Görsel vurgu: Ekran saldırı adımlarını gösteren bir ağ diyagramına odaklanır. Intentum niyeti belirlediği anda diyagramın üzerinde büyük, sarı bir uyarı banner'ı belirir:
"⚠ BİLİNMEYEN İMZA, ANCAK BİLİNEN DAVRANIŞ: 'Ağ Keşfi & Fidye Yazılımı Hazırlığı' %82 Güven"
Yanında geçmişte tespit edilmiş benzer davranış modellerinin sayısı gösterilir.
Demo 5: API/Web Trafiği Anormalliği
Konsept: "Intentum trafiği sadece hacim olarak değil, niyet olarak da sınıflandırır ve buna göre tepki verir."
Demo Akışı
Normal trafik: Canlı bir "Requests/Second" grafiği kullanıcı benzeri istikrarlı bir trafik modeli gösterir.
Bot saldırısı başlar: Grafik aynı IP havuzundan gelen ve aynı API endpoint'ini (/api/v1/validate-coupon) hedef alan dik bir çıkış gösterir. BehaviorEvent'ler "API_CALL" olarak kaydedilir.
Yüksek hızlı işleme ve oran sınırlama: Intentum akış işlemcisi bu olayları toplar. RuleBasedIntentModel saniyedeki istek eşiğini aşan her IP için "AutomatedScanOrAttack" niyetini çıkarır. İlgili IntentPolicy hemen RateLimit kararı döndürür.
Entegre karar ve geri bildirim: Demo Intentum'un kararının sistem üzerindeki etkisini gerçek zamanlı gösterir. IRateLimiter devreye girer; saldırgan IP'lere 429 Too Many Requests yanıtı dönmeye başlar.
- Görsel 1: Trafik grafiği: ani artış, ardından Intentum'un müdahalesiyle düşüş.
- Görsel 2: Harita: saldırı kaynaklarını kırmızı noktalarla, engellenen trafik akışlarını kırmızı çizgilerle gösterir.
Uygulama İçin Event ve Politika Eşlemesi
| Demo | BehaviorEvent Actions (Actor örn. user/employee/IP) | RuleBased kuralları (özet) | Politika (skor eşiği) |
|---|---|---|---|
| 1 | Login, ChangeContactEmail, HighValueTransfer, RequestNewCardExpressShipping | ChangeContactEmail + HighValueTransfer → FlagForReview | >0.90 → Block + Escalate |
| 2 | FailedLogin, PasswordResetRequest, EmailAccessFromNewDevice, Login, ProfileUpdate | (opsiyonel) | — |
| 3 | MassFileDownload, AccessToUnusualDatabase, AttemptToUsePrivilegedAPIs | Baz çizgisi sapması + intent | RequireAuth, Warn |
| 4 | PortScan, ExploitAttempt, LateralMoveToServerB | Bilinen imza yok → düşük; fallback LLM | — |
| 5 | API_CALL (metadata: path, IP) | Saniyedeki istek eşiği → AutomatedScanOrAttack | RateLimit; IRateLimiter → 429 |
Intentum Bileşenleri Özeti
- Demo 1: ChainedIntentModel (RuleBasedIntentModel + LlmIntentModel), TimeDecaySimilarityEngine, IntentPolicy (Block, Escalate), BehaviorEvent.Metadata (IP, ülke).
- Demo 2: BehaviorSpace (sıralı olaylar), LlmIntentModel, Explain/Intent detay (anahtar kelimeler).
- Demo 3: Baz çizgisi vektörü (özel veya Analytics), IIntentModel, IntentPolicy (RequireAuth, Warn), Analytics pattern/anomaly.
- Demo 4: ChainedIntentModel (RuleBased düşük + LlmIntentModel fallback), reasoning metni "Bilinmeyen İmza, Bilinen Davranış", benzer geçmiş olay sayısı.
- Demo 5: RuleBasedIntentModel (rate eşiği), IntentPolicy RateLimit, IRateLimiter, BehaviorObservation veya benzeri event kaynağı.
Bu spesifikasyonlar case-studies README ile birlikte implementasyon için tek referans olarak kullanılabilir.
Plana Dahil Ek Görev: Sol Menü Toggle Bug'ı
Sorun: Sol menü (sidebar) açılıp kapanmıyor, sürekli açık kalıyor.
Sebep: Uygulama MainLayout kullanıyor; sol menü aside.dashboard-sidebar ile tanımlı ve hiç hamburger/toggle butonu yok. Sidebar her zaman görünür. (NavMenu.razor içindeki checkbox toggler kullanılmıyor.)
Hedef: Sol menüyü açıp kapatabilmek.
Önerilen düzeltme:
- MainLayout.razor: Sidebar'ı aç/kapa yapacak bir state ekle (
_sidebarOpen). Üst satıra (sidebar-brand yanına veyadashboard-bodyiçine) hamburger butonu ekle; tıklanınca_sidebarOpen = !_sidebarOpen. Sidebar<aside>sınıfına koşullu class ekle (örn.@(_sidebarOpen ? "open" : "collapsed")). - dashboard.css:
.dashboard-sidebar.collapsediçin genişliği 0 (veyatransform: translateX(-100%)), overflow hidden; hamburger butonu stilleri. Mobilde (örn.max-width: 768px) varsayılanıcollapsedyapıp hamburger ile açılabilir; masaüstünde isteğe bağlı collapse. - İsteğe bağlı: Sidebar kapalıyken içerik alanı tam genişlik; overlay veya gölge ile kapatılmış sidebar belirgin olsun.
Bu madde, 5 demo implementasyonu ile birlikte veya önce uygulanabilir.