Ana içeriğe geç

Bölüm 10 · IT yöneticisi / Geliştirici · 20 dk

Teknik referans — IT'ye derinlemesine

Bu bölüm IT yöneticileri ve geliştiriciler için. Network port listesi, API entegrasyonu, webhook, sertifika yönetimi, sistem gereksinimleri.

Sistem gereksinimleri

Çalışan bilgisayarı (agent)

  • OS: Windows 10 (1909+) veya Windows 11
  • İşlemci: x86-64 (Intel/AMD), ARM64 desteklenmiyor (Faz 9'da)
  • RAM: Minimum 4 GB (sistem geneli — agent 50-100 MB kullanır)
  • Disk: 200 MB boş alan
  • .NET Framework: 4.8+ (Windows 10/11'de zaten var)
  • İnternet: Outbound HTTPS 443 + 8443 erişimi
  • Yetki: İlk kurulumda local administrator (sonra silinmesin diye normal kullanıcı yeterli)

AD Connector sunucusu (opsiyonel)

  • OS: Windows Server 2016+ veya Windows 10/11
  • .NET: 8.0 runtime
  • AD erişimi: Domain'e join veya LDAPS bağlantı yapabilen network konumu
  • Service account: AD'de read-only LDAP yetkili kullanıcı
  • RAM: 1 GB ayrılmış
  • Disk: 500 MB (cache + log)

IT yönetici tarayıcısı

  • Chrome: 100+ (en iyi performans)
  • Firefox: 100+
  • Edge: 100+ (Chromium tabanlı)
  • Safari: 15+
  • JavaScript açık olmalı, cookies izin verilmeli

Network port listesi

Corporate firewall yönetiyorsanız aşağıdaki outbound bağlantılara izin gerekli:

Bileşen Hedef Port Protokol Neden
Agentagents.veritadlp.com8443TCP/HTTPS (mTLS)Agent enrollment + telemetri
Agentapi.veritadlp.com443TCP/HTTPSPublic API erişimi
Connectorapi.veritadlp.com443TCP/HTTPS (mTLS)AD sync push
Browser (admin)app.veritadlp.com443TCP/HTTPSDashboard erişimi
Browser (admin)relay.veritadlp.com443TCP/HTTPS+WSSUzaktan destek web viewer
Agent (uzaktan destek)relay.veritadlp.com21115-21117TCP+UDPUzaktan destek relay (P2P)
Connector (AD'ye)Kendi DC'niz636TCP/LDAPSAD okuma
ℹ️ Inbound port YOK
VeritaDLP hiçbir inbound port açmaz. Tüm bağlantılar agent/connector'dan bizim cloud'a doğru gider. Firewall'a "allow outbound to *.veritadlp.com" kuralı yeter.

Veri akışı diyagramı

Veri nereden nereye gidiyor netleşsin:

┌─────────────────────────────────────────────────────────────────┐
│ ÇALIŞAN BİLGİSAYARI (Windows)                                   │
│ ┌─────────┐   ┌─────────────┐   ┌──────────────┐               │
│ │ Dosya   │ → │ Agent       │ → │ Yerel        │               │
│ │ transfer│   │ (RAM içeri- │   │ Policy       │               │
│ │ (USB)   │   │ ği işler)   │   │ engine        │               │
│ └─────────┘   └──────┬──────┘   └──────┬───────┘               │
│                      │                  │                       │
│        Sadece HASH + maskeli özet + sayım │                     │
│                      │                  │                       │
└──────────────────────┼──────────────────┼───────────────────────┘
                       │                  │
              HTTPS 8443 (mTLS)           │
                       │                  │
┌──────────────────────▼──────────────────▼───────────────────────┐
│ VERİTADLP BULUT (Almanya — Contabo)                              │
│ ┌────────────────┐   ┌──────────────────┐   ┌─────────────────┐ │
│ │ Olay log       │   │ Audit log        │   │ Politika store  │ │
│ │ (90 gün)       │   │ (2 yıl)          │   │ (versiyonlu)    │ │
│ └────────────────┘   └──────────────────┘   └─────────────────┘ │
│                                                                 │
│ Ham dosya İÇERİĞİ ASLA buraya İNMEZ                              │
└──────────────────────────────────────────────────────────────────┘

API anahtarı + programmatic erişim

SIEM, dashboard'unuza ek panel yazma, monitoring entegrasyonu için API kullanın.

1

API key oluşturun

Ayarlar → API Anahtarları → "Yeni Anahtar" → Scope seç:

  • events:read — Olayları okuma
  • events:write — Olay oluşturma (genelde kullanılmaz)
  • policies:read — Politikaları okuma
  • policies:write — Politika düzenleme
  • agents:read — Agent envanteri okuma
  • users:read — Kullanıcı listesi okuma
  • audit:read — Audit log okuma

Anahtar formatı: vt_live_a1b2c3d4... (Stripe pattern). Bu anahtar bir kez gösterilir — kasaya kaydedin.

2

API kullanım örneği

curl -X GET https://api.veritadlp.com/v1/events?limit=10 \
  -H "Authorization: Bearer vt_live_a1b2c3d4..." \
  -H "Content-Type: application/json"

Yanıt JSON:

{
  "results": [
    {
      "id": "uuid...",
      "occurred_at": "2026-05-20T10:30:00Z",
      "user_email": "ayse@firma.local",
      "host": "PC-MUH-042",
      "event_type": "usb_transfer",
      "risk_score": 92,
      "decision": "BLOCKED",
      "detections": { "tc": 47, "iban": 12 }
    }
  ],
  "total": 248,
  "limit": 10
}

Rate limit

  • Per API key: 100 istek/dakika, 1000 istek/saat
  • Aşılırsa: HTTP 429 + Retry-After header
  • Enterprise plan: özel rate limit (talep üzerine)

Tüm API endpoint'leri

Tam API dokümantasyonu: api.veritadlp.com/docs (Swagger UI). Tüm endpoint'ler OpenAPI 3.0 spec'inde dokümante.

Webhook — olay bildirimi

Olay olduğunda dashboard'da görmek yerine sizin sistemize push edilmesini istiyorsanız:

1

Webhook URL'inizi belirleyin

Kendi sunucunuzda bir POST endpoint açın (örn. https://api.firma.local/dlp-events). HTTPS olmalı (HTTP kabul etmiyoruz).

2

VeritaDLP'ye webhook kaydedin

Ayarlar → Webhook'lar → "Yeni Webhook":

  • URL: Endpoint'iniz
  • Secret: Otomatik üretilir — bunu da kaydedin (signature doğrulama için)
  • Hangi event'ler:
    • event.created — Yeni olay tespit edildi
    • event.blocked — Olay engellendi
    • policy.changed — Politika düzenlendi
    • agent.enrolled — Yeni agent kuruldu
    • agent.offline — Agent 1 saatten fazla offline
3

Webhook payload örneği

POST https://api.firma.local/dlp-events
Headers:
  Content-Type: application/json
  X-VeritaDLP-Signature: sha256=a1b2c3d4...
  X-VeritaDLP-Event: event.blocked

Body:
{
  "event_type": "event.blocked",
  "occurred_at": "2026-05-20T10:30:00Z",
  "tenant_slug": "abc-sigorta",
  "data": {
    "event_id": "uuid...",
    "user_email": "ayse@firma.local",
    "host": "PC-MUH-042",
    "channel": "usb_transfer",
    "risk_score": 92,
    "detections": { "tc": 47, "iban": 12 }
  }
}
4

Signature doğrulama

Her webhook'ta HMAC-SHA256 signature gönderiyoruz. Doğrulama (Python örnek):

import hmac, hashlib

secret = "your_webhook_secret"
payload = request.body  # raw bytes
signature = request.headers["X-VeritaDLP-Signature"]

expected = "sha256=" + hmac.new(
    secret.encode(), payload, hashlib.sha256
).hexdigest()

if not hmac.compare_digest(expected, signature):
    return 401  # signature mismatch

Bu kontrol kritik — yoksa kimse webhook URL'inize sahte event gönderebilir.

Retry policy

  • HTTP 2xx alırsak başarılı, retry yok
  • 4xx/5xx/timeout: 5 deneme — 1 dk, 5 dk, 30 dk, 2 saat, 12 saat sonra
  • 5 deneme de başarısız → webhook "Failed" durumuna geçer, sizden manuel reactivation

Sertifika yönetimi

Tenant intermediate CA

Her tenant için ayrı bir intermediate CA oluşturulur (signup'ta otomatik). Bu sayede:

  • Sizin agent'larınız sadece sizin CA'nızla imzalı
  • Başka tenant'ın CA'sı sizi tanımaz, size erişemez
  • CA sızdırılsa sadece sizin tenant'ınız etkilenir

Agent sertifikası

  • Her agent kendi cert'i alır (90 gün geçerli)
  • 60. günde otomatik yenileme (agent kendi başlatır)
  • 120 gün hiç heartbeat gelmeyen agent: cert revoke + suspended
  • Manuel revoke: Agent'lar → ilgili agent → "Revoke Cert"

CRL (Certificate Revocation List)

Her tenant kendi CRL'sini yönetir. Agent her saatte CRL'i çeker. Revoke edilen bir agent 1 saat içinde durur.

CRL URL: https://api.veritadlp.com/v1/ca/{tenant_slug}/crl.pem

Code signing (MSI imzalama)

Production'da MSI dosyaları EV Code Signing sertifikası ile imzalanır (SSL.com EV cert, FIPS 140-2 HSM korunmalı). Bu sayede:

  • Windows SmartScreen uyarısı yok
  • Microsoft Defender direkt güvenir
  • MSI değiştirilmediğinin matematiksel ispatı

Şu an MSI'lar imzasız (test sürümü). EV Code Signing sertifikası alındığında otomatik imzalama devreye girecek.

Encryption — şifreleme detayları

In-transit (taşımada)

  • TLS 1.3 minimum (TLS 1.2 backward compat)
  • Cipher suite: AES-256-GCM, ChaCha20-Poly1305
  • Perfect Forward Secrecy (ECDHE)
  • HSTS preload (browser otomatik HTTPS)

At-rest (sunucuda)

  • PostgreSQL: pgcrypto + LUKS disk encryption (XTS-AES-256)
  • ClickHouse: Native ZSTD compression + LUKS
  • Yedek arşivleri: GPG symmetric (AES-256) + Object Lock
  • Anahtarlar: AES-256-GCM, KEK environment'tan, plaintext kayıtsız

Hassas alanlar (field-level)

Bu alanlar veritabanında her zaman şifrelidir:

  • SMTP2GO API key, SMS provider key, B2 storage key
  • GPG backup passphrase
  • Webhook secret'ları
  • 2FA backup kodlarının hash'leri

SSO / SAML / OIDC (Enterprise — Faz 7)

Şu an v1'de bulunmuyor. Sonraki sürümlerde gelecek:

  • SAML 2.0 (Okta, Azure AD, Google Workspace)
  • OpenID Connect (Auth0, Cognito)
  • SCIM 2.0 (otomatik user provisioning)

O zamana kadar VeritaDLP'nin kendi parola + 2FA sistemini kullanın.

Multi-tenant izolasyon

Birden fazla şirket aynı sunucumuzu kullanır ama veriler tamamen izole:

  • Her tenant ayrı PostgreSQL schema (tenant_abc, tenant_xyz)
  • Her tenant ayrı ClickHouse database
  • Connection seviyesinde SET search_path ile schema kilitli — tenant_id WHERE filtresine güvenmiyoruz
  • Her tenant ayrı CA hiyerarşisi (sertifika seviyesi izolasyon)
  • Her tenant ayrı Redis prefix (tenant:abc:*)

Backup ve disaster recovery

Yedekleme stratejisi (Bölüm 8 KVKK ile entegre):

  • Günlük yedek (gece 02:00 UTC) — PostgreSQL + ClickHouse
  • Haftalık yedek (Pazar) — 12 hafta saklama (GFS)
  • Aylık yedek (ayın 1'i) — 12 ay saklama
  • Yıllık arşiv (31 Aralık) — 7 yıl (KVKK + GDPR uyumu)
  • S3 Object Lock compliance mode — ransomware'e karşı silinmez
  • GPG encryption — sadece sizin passphrase açar

RPO + RTO hedefleri

  • RPO (Recovery Point Objective): 24 saat — en kötü 1 günlük data kayıp riski
  • RTO (Recovery Time Objective):
    • App sunucusu kaybı: ~30 dakika (DR runbook'tan)
    • DB sunucusu kaybı: ~4-6 saat (full restore)
    • Tüm bölge kaybı: 24 saat (cross-region failover, Faz 9)

Monitoring + observability

Sistemimizin metrik'leri:

  • status.veritadlp.com — public uptime
  • Prometheus + Grafana (iç monitoring, müşteri görmez)
  • GlitchTip (error tracking, Sentry alternatifi)
  • Uptime Kuma (her servisin probe'u)

Performans + ölçeklenebilirlik

  • Pilot kapasitesi: 100 tenant × 50 PC = 5000 agent
  • Vertical scale: Bigger Contabo VPS (up to 32 vCPU, 128 GB RAM)
  • Horizontal scale (Faz 9): DB sharding (db1.veritadlp.com, db2..., db_shards tablo üzerinden routing)
  • Olay throughput hedefi: 1000 event/saniye (her tenant başına)

Compliance certifications (yol haritası)

  • KVKK — Çekirdek tasarım, ürünle gelir ✅
  • ISO 27001 — Pilot sonrası 6-12 ay (3. taraf audit)
  • ISO 27701 — Privacy management (ISO 27001 üzerine)
  • SOC 2 Type II — Yıllık audit, US müşteriler için
  • GDPR — DPA + standart sözleşme hükümleri ✅

Sık sorulan sorular

API key sızdı, ne yapacağım?

Hemen Ayarlar → API Anahtarları → ilgili key → "Revoke". Anlık iptal olur, sızıntı sahibi artık kullanamaz. Sonra yeni key oluşturun + sistemlerinizde değiştirin. Audit log'da hangi IP'den kullanıldığı görünür — forensic için.

Sertifika expire olursa agent ne yapıyor?

Agent 90 gün cert ömrü, 60. günde otomatik yenileme isteği gönderir. Cloud reddedilen durumlar:

  • Tenant suspended (ödeme gecikmesi vb.) → renewal red
  • Agent revoke edildiyse → renewal red, agent durur
  • Normal akışta otomatik yenilenir, kullanıcı fark etmez
Aynı sunucuda diğer müşterilerin verisini görebilir miyim — bug ile?

Hayır — multi-tenant izolasyonumuzun her katmanı bunu engelliyor:

  1. JWT token'da tenant claim var → header'da değişiklik yapsa cert auth bozulur
  2. DB query'leri search_path ile schema kilitli → SQL injection bile başka tenant'a sızdırmaz
  3. Redis key'leri tenant prefix'li → cache erişim ayrı
  4. Audit log'da her query tenant_id ile mark edilir → ihlal denerseniz görünür

Çoklu bağımsız audit yapıldı. Bulgular için güvenlik sayfası.

On-premise (kendi sunucumda) kurabilir miyim?

Hayır, VeritaDLP sadece SaaS. On-premise kurulum karmaşıklığı + sürekli güncel tutma maliyeti KOBİ pazarı için doğru değil. Tüm yatırımımız multi-tenant SaaS'a.

İstisnai durumlar için (büyük kurumsal, regulatory zorunluluk) Enterprise plan içinde "Private Cloud" seçeneği var — sizin için ayrı VPS, ayrı DB, ayrı CA hiyerarşisi. Fiyat 5x SaaS.

Veri sunucularınızı denetleyebilir miyim?

Doğrudan VPS'lerimize erişiminiz olmaz (güvenlik). Ama:

  • ISO 27001 audit raporlarımızı (gelince) inceleyebilirsiniz
  • 3. taraf penetration test raporlarını NDA altında paylaşıyoruz
  • DPA içinde "denetim yetkisi" maddesi var — talebiniz üzerine müşteri auditörü ile koordineli denetim mümkün

🎉 Kılavuzu tamamladınız!

10 bölümü okuduysanız, VeritaDLP'nin %95'ini bilirsiniz. Geri kalanı kullanırken öğrenilir.