Kapalı ağ UEBA platformu

Watchtower

Kapalı ağ kurumsal ortamlar için CLI öncelikli UEBA platformu.

Watchtower kurum içi kullanıcı ve varlık davranışını izler, temel çizgileri (baseline) öğrenir, aday anomalileri deterministik motorlarla skorlar ve çalışma moduna göre açıklanabilir alarmlar ya da sessiz bulgular açar.

Logların dosya sunucularından, kimlik sistemlerinden, Elasticsearch/Wazuh’tan, uygulama denetim izlerinden veya ürünle birlikte gelen `server-stack/` kapalı laboratuvar replay ortamından gelebildiği özel LAN kurulumları için tasarlanmıştır.

İşleyiş

connectors -> raw events -> normalization -> candidate events -> policy / baseline / feedback / correlation / severity -> LangGraph mode routing -> silent finding | alert case | controlled learning update

Ne yapar

  • Birden fazla kaynaktan salt-okunur güvenlik ve iş telemetrisini alır.
  • Ham kayıtları birleşik bir olay şemasına normalize eder.
  • 81 özellikli Watchtower taksonomisine bağlı aday davranış olaylarını çıkarır.
  • Kullanıcı, departman, rol, varlık ve zaman penceresi temel çizgilerini öğrenir.
  • Deterministik politika, temel çizgi, geri bildirim, korelasyon ve önem derecesi motorlarını uygular.
  • Sonuçları learn, run ve hybrid modları üzerinden yönlendirir.
  • Alarm kayıtları, sessiz bulgular, geri bildirim kuralları, denetim kayıtları ve raporlar oluşturur.
  • LLM sağlayıcılarını yalnızca açıklama ve taslak görevleri için kullanır, hiçbir zaman nihai karar için değil.

Tavizsiz kurallar

Watchtower bilinçli olarak muhafazakârdır:

  • Bir şeyin alarm olup olmadığına LLM’ler karar vermez.
  • LangGraph akışı orkestre eder; skorlama matematiğinin sahibi değildir.
  • Yönetici geri bildirimi doğrudan kalıcı bir kurala dönüşmez.
  • Geri bildirim pending_rule -> approve -> stable yolunu izler.
  • Politika kuralı davranışı sessizce normalize edilmez.
  • Bağlayıcılar salt-okunurdur; Watchtower gözlemler, açıklar ve alarm üretir.
  • Otomatik müdahale, engelleme, süreç sonlandırma, host karantinası veya kullanıcı kilitleme yoktur.

Çalışma modları

ModAlarmÖğrenmeKullanım
learnDış alarm yokEvetŞirketi sessizce temel çizgiye oturtmak
runEvetHayırOnaylı kural ve temel çizgilerle üretim izleme
hybridEvetKontrollüOnaylı sapmayı izlerken izlemeye devam etmek

Temel yetenekler

AlanDurum
Özellik taksonomisi81/81 özellik sınıflandırıldı ve doğrulandı
Server-stack senaryoları83/83 senaryo kapsandı
Bağlayıcılarserver-stack, JSONL dosya, Elasticsearch, Wazuh uyumlu
DepolamaSQLite migration’ları, repository’ler, denetim kayıtları
Temel çizgi45 günlük varsayılan öğrenme penceresi, güven, anlık görüntüler
Geri bildirimbekleyen kural, onay, kapsamlı kalıcı kural, süre sonu
Karardeterministik politika/temel çizgi/geri bildirim/korelasyon/önem derecesi
GraphLangGraph mod yönlendirmesi, denetim, interrupt/resume
LLMOpenAI, Anthropic, Gemini, Ollama, özel OpenAI uyumlu
CLIbootstrap, modlar, ingest, alarmlar, kurallar, sorgu, health, backup
ÜretimDocker, backup/restore, saklama, migration’lar, health check’ler

Depo yapısı

watchtower-demo/
  watchtower/          # product package
  tests/               # unit, integration, graph, LLM, E2E, production tests
  docs/                # install and operations docs
  scripts/             # install, upgrade, soak, taxonomy tooling
  reports/watchtower/  # product evidence reports
  server-stack/        # closed-network lab used as test target

server-stack/ ürün kodu değildir. Watchtower davranışını 81 özellik ve 83 senaryoya karşı kanıtlamak için kullanılan replay ve kanıt laboratuvarıdır.

Hızlı başlangıç

Bare metal

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
./scripts/fresh_install.sh
wt status
wt health

Docker

cp .env.example .env
docker compose config
docker compose build
docker compose run --rm watchtower wt bootstrap -u admin -e admin@corp.local
docker compose up -d
docker compose exec watchtower wt health --json

Temel CLI

wt bootstrap -u admin -e admin@corp.local
wt status
wt modes get
wt modes set learn
wt modes set run
wt modes set hybrid
wt sources register -t file_jsonl -n "AD JSONL" -c '{"file_path":"/data/ad.jsonl"}'
wt sources list
wt sources health
wt ingest once --source <source-id>
wt alerts list
wt alerts show <alert-id>
wt alerts ack <alert-id>
wt alerts close <alert-id> --outcome true_positive
wt alerts suppress <alert-id> --duration 7d
wt findings silent --last 7d
wt rules pending
wt rules approve <pending-rule-id>
wt rules reject <pending-rule-id> --comment "too broad"
wt query "critical backend alerts in the last 24 hours"

LLM sağlayıcıları

LLM sağlayıcıları isteğe bağlıdır. Her sağlayıcı kapalı olsa da Watchtower çalışmaya devam eder.

Desteklenen adaptörler:

  • OpenAI
  • Anthropic
  • Gemini
  • Ollama / OpenAI uyumlu yerel uç nokta
  • Özel OpenAI uyumlu uç nokta

Sağlayıcı sırası şu komutlarla yapılandırılır:

wt providers list
wt providers set-chain gemini,ollama
wt providers clear-chain

Sağlayıcı sırları .env içinde durur ve asla commit edilmemelidir. LLM çıktısı şema ile doğrulanır ve açıklama, eşleme, özet ve taslak görevleriyle sınırlıdır.

Testler ve kanıt

Ürün test paketinin tamamını çalıştırma:

pytest tests/ -q

Üretim geçitlerini çalıştırma:

pytest tests/production tests/load -v
docker compose config
./scripts/fresh_install.sh
./scripts/upgrade.sh

Kapalı laboratuvar doğrulamasını çalıştırma:

cd server-stack
make test-all
make test-real-all

Güncel kabul kanıtı:

GeçitKanıt
Ürün test paketi454 passed
Özellik taksonomisi81/81
Server-stack senaryoları83/83
E2E özetireports/watchtower/e2e_summary.json
Üretim hazırlığıreports/watchtower/production_readiness.json
Nihai kabulreports/watchtower/final_acceptance_report.md

Operasyon

Health

wt health
wt health --json

Migration’lar

wt migrate status
wt migrate upgrade

Backup ve restore

wt backup create
wt backup list
wt backup restore /backups/watchtower-YYYYMMDDTHHMMSS.db --yes

Saklama

wt retention apply --dry-run
wt retention apply

Soak

./scripts/soak_short.sh
SOAK_HOURS=24 ./scripts/soak_24h.sh

Üretim notları

  • Operasyonel alarmlamadan önce güven oluşturmak için önce learn modunu çalıştırın.
  • Gerçek bir şirket geçişinden önce üretilen taksonomi sınıflandırmalarını gözden geçirin.
  • .env dosyasını git dışında tutun; commit edilen tek şablon .env.example’dır.
  • Açıklamalar için en az bir LLM sağlayıcısı yapılandırın veya fail-open notlarına güvenin.
  • İlk kapalı ağ kurulumundan önce belgelenen 24 saatlik soak testini çalıştırın.
  • Graph checkpoint’i varsayılan olarak kalıcı SQLite kullanır (WATCHTOWER_GRAPH_CHECKPOINT_PATH); yalnızca geliştirme/testte süreç içi MemorySaver için WATCHTOWER_GRAPH_CHECKPOINT_USE_MEMORY=true ayarlayın; uzun süre uçuşta kalan insan onayı iş akışlarına güvenmeden önce bu eklenmelidir.

Dokümantasyon