İçeriğe geç

Teknik vaka çalışması

OT-Sentinel

Endüstriyel OT telemetrisi için açıklanabilir anomali sistemi. İstatistiksel algılayıcı karar verir, LLM yalnızca açıklar; BATADAL üzerinde çevrimdışı sınanır.

Uygun rol

Yapay Zekâ MühendisiUygulamalı Yapay ZekâEndüstriyel Sistemler

Teknik açıklamalar Türkçeye çevrilmiştir. Sonuç metriklerinin ölçüm koşulları, başarısız denemeler ve kaynak bağlantıları özgün proje kanıtlarıyla aynı kapsamda korunur.

Hızlı teknik inceleme

Teknik vaka çalışması: dört temel nokta.

Tüm yöntem

Problem

Anomali uyarısı alan operatörün hızla yanıtlaması gereken üç soru vardır: uyarı gerçek mi, hangi sinyal bunu tetikledi ve ilk ne kontrol edilmeli? Ham puan bu soruları yanıtlamaz. Bir LLM’ye olayın saldırı olup olmadığına tek başına karar verme…

Tam açıklamayı oku

Anomali uyarısı alan operatörün hızla yanıtlaması gereken üç soru vardır: uyarı gerçek mi, hangi sinyal bunu tetikledi ve ilk ne kontrol edilmeli? Ham puan bu soruları yanıtlamaz. Bir LLM’ye olayın saldırı olup olmadığına tek başına karar verme yetkisi verilirse var olmayan bir tehdit uydurabilir.

Mimari

React 19 ve TypeScript kullanan Next.js App Router temeli vardır. Canlı puanlayıcı, üç simüle sensörde Python dışa aktarım betiğiyle üretilen sabitleri kullanan ağırlıklı bileşik z-skorudur; TypeScript tarafı veya model kartı tablosu bu dosyadan…

Tam açıklamayı oku

React 19 ve TypeScript kullanan Next.js App Router temeli vardır. Canlı puanlayıcı, üç simüle sensörde Python dışa aktarım betiğiyle üretilen sabitleri kullanan ağırlıklı bileşik z-skorudur; TypeScript tarafı veya model kartı tablosu bu dosyadan saparsa pytest hata verir. Gemini 2.5 Flash kullanan Genkit, 20 saniye zaman aşımı ve istemci başına hız sınırları altında uyarıyı triyaj rehberine çevirir. Model yanıt vermezse ileti kutusunda kural tabanlı olduğu açıkça belirtilen belirlenimci alternatif devreye girer.

Sonuçlar

BATADAL: 43 sinyal, 14 saldırı, tüm algılayıcılarda ortak yanlış alarm bütçesi

Sınırlamalar ve kapsam

Dosya başına yedi saldırı, algılayıcılar arası farkları istatistiksel anlamlı sonuçlardan çok vaka düzeyinde gözleme indirger. Değerlendirme 43 sinyaldeki yöntemi inceler; telemetrisi sentetik olan canlı panelin 3 sinyalli puanlayıcısını değil. Bir…

Tam açıklamayı oku

Dosya başına yedi saldırı, algılayıcılar arası farkları istatistiksel anlamlı sonuçlardan çok vaka düzeyinde gözleme indirger. Değerlendirme 43 sinyaldeki yöntemi inceler; telemetrisi sentetik olan canlı panelin 3 sinyalli puanlayıcısını değil. Bir basınç sinyali saldırısız saatlerin yaklaşık 18% bölümünde 2014 aralığının dışına kaymıştır; buna göre düzeltme yapılmamıştır. Kimlik doğrulama veya gerçek protokol adaptörü yoktur.

Kaynaklarda yayımlanmış teknik kanıtlar kullanılmıştır. Ölçüm koşulları için tam vaka çalışmasını inceleyin.

Kanıta dayalı görsel inceleme

Projenin gerçek çıktılarını inceleyin.

Gerçek proje ekran görüntüleri ve kaynak figürleri, kaynaklarıyla birlikte sunulur.

OT-Sentinel dashboard under normal synthetic telemetry

Kaynak depoda yayımlanan görsel

Kaynak depoda yayımlanan ekran görüntüsüdür; mevcut geliştirmeden daha eski olabilir.

Yayımlanmış kaynağı aç

BATADAL: 43 sinyal, 14 saldırı, tüm algılayıcılarda ortak yanlış alarm bütçesi

2017 testinde en yüksek z-skoru PR-AUC 0.427 / şans düzeyi 0.195; zamansal algılayıcıların hiçbiri daha iyi değil

Tüm algılayıcılar 7 saldırının 7 tanesini yakalar; yanlış alarmlar bile yaklaşık 6.3 saldırıya denk gelir

İlk çalıştırmada metrik hatası bulundu, düzeltildi ve belgelendi

Proje kanıtları

Doğrulanabilir dış kaynaklar

Son doğrulama 2026-10-07

Problem ve yaklaşım

Problem

Anomali uyarısı alan operatörün hızla yanıtlaması gereken üç soru vardır: uyarı gerçek mi, hangi sinyal bunu tetikledi ve ilk ne kontrol edilmeli? Ham puan bu soruları yanıtlamaz. Bir LLM’ye olayın saldırı olup olmadığına tek başına karar verme yetkisi verilirse var olmayan bir tehdit uydurabilir.

Mimari

React 19 ve TypeScript kullanan Next.js App Router temeli vardır. Canlı puanlayıcı, üç simüle sensörde Python dışa aktarım betiğiyle üretilen sabitleri kullanan ağırlıklı bileşik z-skorudur; TypeScript tarafı veya model kartı tablosu bu dosyadan saparsa pytest hata verir. Gemini 2.5 Flash kullanan Genkit, 20 saniye zaman aşımı ve istemci başına hız sınırları altında uyarıyı triyaj rehberine çevirir. Model yanıt vermezse ileti kutusunda kural tabanlı olduğu açıkça belirtilen belirlenimci alternatif devreye girer.

Değerlendirme

Yedi algılayıcı (statik limitler, en yüksek mutlak z-skoru, Isolation Forest, denetimli gradient-boosting referansı ve protokol v3 ile eklenen üç nedensel zamansal algılayıcı: z-skorlarının EWMA’sı, çift yönlü CUSUM ve 24 saatlik yuvarlanan artık) BATADAL üzerinde karşılaştırılır. Veri, iki dosyada 14 saldırı içeren simüle su şebekesinden 43 saatlik sinyal içerir. Tümü saldırısız 2014 verisinden öğrenir ve saldırısız gün başına tek alarm segmenti bütçesine uyar. Ana 2017 test dosyasında (7 saldırı, 407 saldırı saati) bütün algılayıcılar 7 saldırının tamamını yakalar; yanlış alarmlar bile buna yaklaşır. En yüksek z-skoru, rastgele tahmin baz çizgisi 0.195’e karşı PR-AUC 0.427 ile en iyi sonucu verir; saldırı saatlerinin 26.0% bölümünü işaretlerken kesinlik 54.9% olur. Denetimli referans kazanamaz.

Protokol v3: zamansal algılayıcılar

İlk çalıştırmadan önce kaydedilen üçüncü protokol, sabit ders kitabı parametreli zamansal algılayıcıların örnek başına z-skorunu geçip geçmediğini sorar. Karar kuralı önceden belirlenmiştir: yalnızca test dosyasındaki eşleştirilmiş PR-AUC farkının 95% gün-blok bootstrap aralığı tamamen sıfırın üzerindeyse bir algılayıcı daha iyi sayılır. Hiçbiri koşulu karşılamaz. CUSUM (-0.377 ila -0.042) ve yuvarlanan artık (-0.180 ila -0.021) daha kötüdür; EWMA aralığı (-0.088 ila 0.041) sıfırı içerir. EWMA yalnızca 2016 dosyasında daha iyidir; bu yüzden karar test dosyasına dayanır. Protokol açıklamaları da sınar: z-skorunda en yüksek üç sinyalin, saldırı açıklamasında adı geçen bir sinyali içerme oranı alarm verilen saldırı saatlerinde 58.5%; şans düzeyi 18.3%. Gizleme tekrarında bu üstünlük görülmez.

İlk aşamada ne ters gitti?

İlk çalıştırmada statik limit algılayıcısı sıfır yanlış alarm ve sıfır algılama saatiyle raporlandı; oysa sistem sürekli alarm veriyordu. Yanlış alarm bütçesi segment saydığı için kalıcı alarm tek segment olarak kaydediliyordu. Alarm kuralı düzeltildi; bozuk algılayıcıları açığa çıkaran yanlış alarm saat payı ve şans baz çizgisi sütunları eklendi. Değişiklik gizlenmeden belgelendi. Karşılaştırma veri kümesindeki etiket sütunu da kullanılamaz çıktı (saldırı saatlerinin çoğunda -999; hiç 0 etiketi yok); bu nedenle doğruluk kaynağı olarak yayımlanmış saldırı aralıkları kullanılır.

İddia edilmeyen noktalar

Dosya başına yedi saldırı, algılayıcılar arası farkları istatistiksel anlamlı sonuçlardan çok vaka düzeyinde gözleme indirger. Değerlendirme 43 sinyaldeki yöntemi inceler; telemetrisi sentetik olan canlı panelin 3 sinyalli puanlayıcısını değil. Bir basınç sinyali saldırısız saatlerin yaklaşık 18% bölümünde 2014 aralığının dışına kaymıştır; buna göre düzeltme yapılmamıştır. Kimlik doğrulama veya gerçek protokol adaptörü yoktur.

Neden önemli?

LLM, operasyonel süreçte sınırları açıkça belirlenmiş rol üstlenir: kararı algılayıcı verir; girdiler doğrulanır, model çağrısı zaman ve hız sınırına tabidir, operatör her durumda rehberlik alır. Çevrimdışı değerlendirme de yöntemi kamuya açık kıyaslama verisinde sınar; başarıyı yalnızca iddia etmez.

Mimari ve analiz

  • Algılamayı basit ve denetlenebilir tutar; her uyarının nedenini gösterir ve LLM’yi yalnızca açıklama için kullanır.
  • Algılama yöntemini tüm algılayıcılar için aynı yanlış alarm bütçesiyle kamuya açık saldırı kıyaslamasında değerlendirir.
  • Gösterişli bir başlık yerine sınırlı başarıyı ve düzeltilen ölçüm hatasını açıkça raporlar.

Test ve doğrulama

  • analysis/ içindeki BATADAL veri hattı; README ve vaka çalışmasındaki bütün sayılar aynı sonuç dosyasından üretilir
  • "Why this score?" paneli, sensör bazlı z-skorları ve operatör geri bildirimi (doğrulanan tehdit veya yanlış alarm)
  • Kapsama eşikleriyle Jest, Playwright E2E ve pytest; Docker, CodeQL, npm audit, pip-audit ve gizli anahtar taraması içeren CI
  • Güvenlik başlıkları ve CSP, hız sınırları, CSV formül enjeksiyonu önlemi, ICS için ATT&CK eşlemeli tehdit modeli

Operasyonel değer

  • BATADAL üzerinde yedi algılayıcıyı aynı yanlış alarm bütçesiyle karşılaştırır. 2017 test dosyasında en yüksek z-skoru PR-AUC 0.427 (95% aralık 0.264–0.573) ile rastgele tahmin baz çizgisi 0.195’i aşar; önceden belirlenen karara göre hiçbir zamansal algılayıcı daha iyi değildir.
  • "Yakalanan saldırılar" metriğinin burada neden ayırt edici olmadığını gösterir: tüm algılayıcılar 7 saldırıyı yakalar; yanlış alarmlar bile yaklaşık 6.3 saldırıya denk gelirdi.
  • Her uyarıyı sensör katkılarıyla açıklar; Gemini ile triyaj oluşturur, hata/zaman aşımı/hız sınırında açık etiketli kural tabanlı rehberliğe geçer.
  • Demonun normal modunda yanlış CRITICAL alarmlarını düzeltti (örneklerin yaklaşık 0.37% bölümü, her 4-5 dakikada bir; artık yaklaşık 0.002%); sabit tohumlu testle korunur.
  • 6 Ekim 2026 tarihinde v0.2.0, 7 Ekim 2026 tarihinde v0.3.0 sürümü (sağlık uç noktası, azaltılmış bağımlılıklar) yayımlandı; değişiklik günlüğü ve Node 24 üzerinde Dependabot yönetimli bağımlılıklar bulunur.

Nasıl incelenir

  • Önce vaka çalışmasını açın: protokol, saldırı bazlı tablolar ve düzeltme burada bulunur.
  • "Yakalanan saldırı sayısı" yerine saat düzeyindeki sütunları (kesinlik, yakalanan saldırı saatleri, şansa göre PR-AUC) okuyun.
  • Canlı paneli sentetik telemetri demosu olarak değerlendirin; BATADAL sonucu paneldeki puanlayıcıyı değil, yöntemi ölçer.
  • Portföyde ölçülmüş diğer LLM uygulaması için Visual QC RAG katmanıyla birlikte inceleyin.

İlgili teknik çalışmalar

Tüm projeler