Güvenlik

MyAIDepartments platformu, kurumsal düzeyde güvenlik önlemleri ile verilerinizi korur.

Veri Güvenliği

🔐 Şifreleme

Transit Şifreleme (Data in Transit)

Tüm veri aktarımları TLS 1.3 ile şifrelenir:

Client → TLS 1.3 → Load Balancer → TLS 1.3 → Application Servers

Desteklenen Cipher Suites:

TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256

Rest Şifreleme (Data at Rest)

Tüm veriler AES-256 ile şifrelenir:

Database:
  Encryption: AES-256-GCM
  Key Rotation: 90 days
  Backup Encryption: AES-256-CBC

File Storage:
  Encryption: AES-256-GCM
  Access: Pre-signed URLs only
  Expiration: 1 hour

🗄️ Veri Saklama

Veri Lokasyonu

┌──────────────────────────────────────────┐
│  Bölge Bazlı Veri Saklama                │
├──────────────────────────────────────────┤
│  🇪🇺 Avrupa: Frankfurt, Germany          │
│  🇹🇷 Türkiye: İstanbul (yakında)         │
│  🇺🇸 ABD: Virginia, USA                  │
│  🇸🇬 Asya: Singapore                     │
└──────────────────────────────────────────┘

Verileriniz seçtiğiniz bölgede saklanır ve bölge dışına çıkmaz.

Veri Saklama Süreleri

Veri TipiSaklama SüresiYedekleme
Konuşmalar2 yıl90 gün
Aramalar1 yıl90 gün
Ses Kayıtları90 gün*30 gün
Loglar6 ay30 gün
Analitik3 yıl1 yıl

*GDPR/KVKK uyarınca özelleştirilebilir

Kimlik Doğrulama

🔑 İki Faktörlü Kimlik Doğrulama (2FA)

Kurulum

  1. Ayarlar > Güvenlik > 2FA'yı Etkinleştir
  2. QR kodu Google Authenticator veya Authy ile tara
  3. 6 haneli doğrulama kodunu gir
  4. Yedek kodları kaydet

Desteklenen 2FA Yöntemleri

✓ TOTP (Time-based OTP) - Authenticator apps
✓ SMS (İsteğe bağlı)
✓ Email (Yedek yöntem)
✓ Hardware tokens (Enterprise)

🔐 SSO (Single Sign-On)

Enterprise planlar için SSO desteği:

Desteklenen Protokoller:
- SAML 2.0
- OAuth 2.0 / OpenID Connect
- LDAP / Active Directory

SSO Konfigürasyonu

<EntityDescriptor entityID="myaidepartments.com">
  <SPSSODescriptor>
    <AssertionConsumerService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://app.myaidepartments.com/sso/acs"
      index="1"/>
  </SPSSODescriptor>
</EntityDescriptor>

Erişim Kontrolü

👥 Role-Based Access Control (RBAC)

Varsayılan Roller

const roles = {
  admin: {
    permissions: ["*"],
    description: "Tüm yetkilere sahip",
  },
  manager: {
    permissions: [
      "conversations:read",
      "conversations:write",
      "team:read",
      "team:write",
      "analytics:read",
      "settings:read",
    ],
    description: "Departman yöneticisi",
  },
  agent: {
    permissions: [
      "conversations:read",
      "conversations:write",
      "analytics:read:own",
    ],
    description: "Müşteri temsilcisi",
  },
  viewer: {
    permissions: ["conversations:read", "analytics:read"],
    description: "Sadece görüntüleme",
  },
};

Custom Roles

{
  "name": "senior_agent",
  "displayName": "Senior Agent",
  "permissions": [
    "conversations:read",
    "conversations:write",
    "conversations:transfer",
    "conversations:delete",
    "tickets:escalate",
    "analytics:read"
  ],
  "restrictions": {
    "departments": ["customer-service", "sales"],
    "ipWhitelist": ["192.168.1.0/24"]
  }
}

🌐 IP Whitelist/Blacklist

access_control:
  mode: whitelist # veya blacklist

  whitelist:
    - 203.0.113.0/24 # Office network
    - 198.51.100.5 # Home office
    - 192.0.2.10 # VPN gateway

  blacklist:
    - 198.51.100.100 # Blocked IP
    - 203.0.113.50 # Suspicious activity

API Güvenliği

🔒 API Key Security

Best Practices

# ✅ DOĞRU - Ortam değişkeni kullan
export MYAI_API_KEY="sk_live_xxxxx"

# ❌ YANLIŞ - Kodda sakla
const apiKey = "sk_live_xxxxx";

API Key Rotasyonu

# Eski anahtarlar 30 gün içinde expire olmalı
myai keys rotate --old-key sk_live_old --new-key sk_live_new

🚦 Rate Limiting

rate_limits:
  by_api_key:
    requests_per_minute: 100
    requests_per_hour: 5000
    requests_per_day: 100000

  by_ip:
    requests_per_minute: 10
    requests_per_hour: 500

  burst_limit: 150

🔍 Request Validation

interface SecurityValidation {
  // Request signature
  signature: string;
  timestamp: number;

  // Request validation
  checks: {
    validSignature: boolean;
    notExpired: boolean;
    validApiKey: boolean;
    allowedIP: boolean;
    withinRateLimit: boolean;
  };
}

Uyumluluk

📋 Sertifikalar ve Standartlar

✅ SOC 2 Type II
✅ ISO 27001:2013
✅ ISO 27018
✅ GDPR Compliant
✅ KVKK Uyumlu
✅ PCI DSS Level 1 (ödeme işlemleri için)

🇪🇺 GDPR Uyumu

Veri Sahibi Hakları

1. Erişim Hakkı
   → Müşteri verilerini indirme

2. Düzeltme Hakkı
   → Veri güncelleme/düzeltme

3. Silme Hakkı (Right to be Forgotten)
   → Veri silme talebi

4. İşleme İtiraz Hakkı
   → İşlemeyi durdurma

5. Veri Taşınabilirliği
   → Verileri JSON/CSV formatında alma

Data Processing Agreement (DPA)

Enterprise müşteriler için standart DPA:

- Veri işleme süresi
- Veri işleme amacı
- Veri saklama süreleri
- Alt işleyici listesi
- Güvenlik önlemleri
- Veri ihlali bildirimi (72 saat)

🇹🇷 KVKK Uyumu

kvkk_compliance:
  veri_sorumlusu: "MyAIDepartments Ltd."
  veri_kayit_sistemi: "VERBİS Kayıtlı"

  aydinlatma_metni:
    url: "/kvkk/aydinlatma-metni"
    language: "tr"

  acik_riza:
    required: true
    documented: true

  veri_saklama:
    max_duration: "10 yıl"
    deletion_policy: "Otomatik silme"

Güvenlik İzleme

📊 Audit Logs

Tüm güvenlik olayları loglanır:

interface AuditLog {
  id: string;
  timestamp: Date;
  user: {
    id: string;
    email: string;
    ip: string;
    userAgent: string;
  };
  action: string;
  resource: string;
  result: "success" | "failure";
  metadata: Record<string, any>;
}

Örnek Audit Log

{
  "id": "log_abc123",
  "timestamp": "2025-01-10T14:30:00Z",
  "user": {
    "id": "usr_123",
    "email": "ahmet@example.com",
    "ip": "203.0.113.45",
    "userAgent": "Mozilla/5.0..."
  },
  "action": "api_key.deleted",
  "resource": "key_xyz789",
  "result": "success",
  "metadata": {
    "keyName": "Production API Key",
    "lastUsed": "2025-01-10T10:00:00Z"
  }
}

🚨 Security Alerts

Şüpheli aktiviteler için otomatik alarm:

alerts:
  - type: failed_login_attempts
    threshold: 5
    period: 5 minutes
    action: lock_account + notify_admin

  - type: unusual_api_usage
    threshold: 200% of average
    period: 1 hour
    action: notify_admin

  - type: new_ip_login
    condition: first_time_ip
    action: send_email_verification

  - type: api_key_leaked
    source: github_scanner
    action: auto_revoke + notify_urgent

Olay Müdahale

🚑 Incident Response

1. Tespit (Detection)
   → Otomatik monitoring sistemleri

2. Değerlendirme (Triage)
   → 15 dakika içinde impact assessment

3. Müdahale (Response)
   → Güvenlik ekibi devreye girer

4. İyileştirme (Recovery)
   → Sistemler normale döndürülür

5. Post-Mortem
   → Root cause analysis
   → Prevention measures

📞 İletişim

Güvenlik olayı bildirimi için:

🔒 Security Team: security@myaidepartments.com
📱 24/7 Hotline: +90 XXX XXX XX XX
🔐 PGP Key: Available on website
⚡ Response Time: < 1 hour

Güvenlik Best Practices

✅ Tavsiye Edilen Uygulamalar

  1. Güçlü Şifreler
✓ En az 12 karakter
✓ Büyük/küçük harf, rakam, özel karakter
✓ Şifre yöneticisi kullanın
✓ Her serviste farklı şifre
  1. 2FA Kullanımı
✓ Tüm admin hesaplarında zorunlu
✓ Agent hesaplarında önerilir
✓ Yedek kodları güvenli yerde saklayın
  1. API Anahtarı Güvenliği
✓ Ortam değişkenlerinde saklayın
✓ Git'e commit etmeyin
✓ 90 günde bir rotate edin
✓ Minimum yetki prensibi
  1. Network Security
✓ IP whitelist kullanın
✓ VPN üzerinden erişin
✓ Public Wi-Fi'dan kaçının
✓ Güvenlik duvarı aktif

Sık Sorulan Sorular

Verilerim güvende mi?

Evet. SOC 2 Type II, ISO 27001 sertifikalarımız var ve verileriniz AES-256 ile şifrelenir.

GDPR/KVKK uyumlu musunuz?

Evet, tam uyumluyuz. DPA imzalayabilir ve veri silme taleplerini 30 gün içinde yerine getiririz.

Veri ihlali olursa ne olur?

72 saat içinde size ve ilgili otoritelere bildirimde bulunuruz. Detaylı incident report sunulur.

Verilerim yedekleniyor mu?

Evet, günlük otomatik yedekleme yapılır. 90 günlük yedek geçmişi tutulur.

Sonraki Adımlar