Beklemede şifreleme
Platform veritabanında saklanan hassas alanlar, diske yazılmadan önce AES-256-GCM ile şifrelenir.
| Ne | Nasıl |
|---|---|
| Hesap API anahtarları (yapay zeka sağlayıcıları, SMTP) | AES-256-GCM, MASTER_ENCRYPTION_KEY |
| Kullanıcı şifresi hash'leri | bcrypt (cost 12) |
| IMAP / e-posta kanal kimlik bilgileri | AES-256-GCM, MASTER_ENCRYPTION_KEY |
| Diskteki veritabanı dosyaları | Hassas alanlar depolanmadan önce uygulama katmanında şifrelenir (AES-256-GCM, hesaba özel AAD, anahtarlar HashiCorp Vault'ta). |
MASTER_ENCRYPTION_KEY, başlatma sırasında sunucu ortamı üzerinden enjekte edilir ve hiçbir zaman kod tabanına veya veritabanına yazılmaz. Hassas veriler, hesaba özel ek kimlik doğrulamalı verilerle AES-256-GCM kullanılarak şifrelenir; anahtar rotasyonu yeniden şifreleme gerektirir.
Aktarım sırasında şifreleme
- Tüm genel uç noktaları yalnızca HTTPS üzerinden sunulur; HTTP, HTTPS'ye yönlendirilir (Apache HSTS başlığı).
- Desteklenen TLS sürümleri: TLS 1.2 ve 1.3 (TLS 1.0 / 1.1 devre dışı).
- Widget widget.js, Access-Control-Allow-Origin: * ile sunulur, ancak chat API uç noktaları widget_key + origin allowlist'i doğrular.
- İç hizmet çağrıları (Redis, localhost'taki MySQL) loopback arayüzü üzerinden iletişim kurar. Hiçbir veri, host'tan şifrelenmemiş olarak çıkmaz.
Yedeklemeler
Aşağıdaki yedekleme programı platform veritabanı ve müşteri veritabanları için geçerlidir:
| Öğe | Sıklık | Saklama | Konum |
|---|---|---|---|
| Platform VT (einstein_saas_platform) | Her gün, gece (UTC, otomatik) | Yerel olarak 7 gün; Fransa'daki şifreli kopya en fazla 3 hafta | Yerel birim + şifreli dış konum kopyası |
| Müşteri VT'leri (einstein_saas_tenant_*) | Her gün, gece (UTC, otomatik) | Yerel olarak 7 gün; Fransa'daki şifreli kopya en fazla 3 hafta | Yerel birim + şifreli dış konum kopyası |
| Yüklenen dosyalar / belge depolama | Her gün, gece (UTC, otomatik) | Fransa'da şifreli kopya, yaklaşık bir ay | Yerel birim + şifreli dış konum kopyası |
Yedekler her veritabanı için mysqldump --single-transaction ile çalışır, sıkıştırılmış ve age ile şifrelenmiş olarak saklanır, her gün yeniden şifrelenerek sunucularımızdan farklı bir yerdeki Fransa'daki bir veri merkezine kopyalanır ve her çalıştırma boş olmayan bir döküm için kontrol edilir ve başarı/başarısızlık durumuyla günlüğe kaydedilir.
Yedek arşivleri beklemede age (X25519 / ChaCha20-Poly1305) ile şifrelenir; şifre çözme anahtarı arşivlerden ayrı tutulur. Sütun düzeyinde şifrelemeyle (AES-256-GCM) korunan alanlar her arşivde şifreli kalır. Kurtarılabilirlik, otomatik aylık geri yükleme testiyle doğrulanır.
Erişim kontrolü
4.1 Rol tabanlı erişim kontrolü (RBAC)
Her portal kullanıcısına bir rol atanır. Roller alan bazında ayrı izinler içerir. Platform izinleri sunucu tarafında kontrol eder.
4.2 İki faktörlü kimlik doğrulama
- Bir kimlik doğrulama uygulamasıyla (TOTP, RFC 6238 — örneğin Google Authenticator veya Authy) ya da e-postayla gelen bir kodla 2FA. Her kullanıcı bunu hesap ayarlarından kendisi açar.
- 2FA açıkken platform her girişte ikinci adımı ister.
- Kurtarma kodları yoktur. E-postayla gelen kodu seçen kullanıcıların ayrı bir uygulamaya ihtiyacı yoktur.
4.3 Hesap izolasyonu
Kimlik doğrulama, hesap bağlamı gerektirir (slug tabanlı giriş). Oturum token'ları tek bir hesap ile sınırlıdır. Hesaplar arası kaynak erişimi, veritabanı sorgularındaki zorunlu tenant_id filtreleri aracılığıyla uygulama katmanında önlenir.
Denetim günlüğü
Platform kaynaklarındaki önemli eylemler audit_log tablosuna (platform veritabanı) kaydedilir. Her giriş şunları içerir:
- Aktör: kullanıcı kimliği, rol ve hesap kimliği.
- Eylem: fiil (oluştur, güncelle, sil, giriş yap, dışa aktar, …).
- Kaynak: varlık türü ve kimliği.
- Meta veri: değiştirilen alan adları ve eski/yeni değerler (hassas alanlar düzenlendi).
- Zaman damgası: UTC'de saklanır (ISO 8601).
- IP adresi: isteğin kaynak IP'si.
Denetim günlüğü kayıtları iki yıl saklanır ve ardından otomatik olarak silinir; hesap daha önce sona ermiş olsa bile. Bir silme talebinin yerine getirildiğine dair kanıt 12 ay sonra otomatik olarak silinir. Günlük, uygulama düzeyinde yalnızca eklemeye açıktır (append-only).
Denetim kayıtları uygulamanın normal veritabanı kullanıcısı tarafından yazılır. Ayrı bir salt ekleme veritabanı kullanıcısı yalnızca bayi API'sinin denetim günlüğü için kurulmuştur.
Güvenlik açığı yönetimi
6.1 CVE izleme
Composer bağımlılıklarını composer audit ile kontrol ederiz. Çalışma zamanı bağımlılıklarındaki kritik güvenlik açıklarını öncelikli olarak ele alırız.
6.2 Yama döngüsü
- İşletim sistemi güvenlik güncellemeleri: her gün otomatik olarak yüklenir (unattended-upgrades).
- PHP çalışma zamanı: PHP 8.5, güvenlik güncellemeleriyle güncel tutulur.
- Web sunucusu: Apache 2.4.x — dağıtım güvenlik güncellemeleriyle güncel tutulur.
6.3 Sorumlu ifşa
Dış güvenlik araştırmacıları, koordineli ifşa politikamız kapsamında güvenlik açıklarını bildirmeye davet edilir. Sorumlu ifşa politikasını okuyun →
Hosting ve altyapı
| Bileşen | Ayrıntı |
|---|---|
| Barındırma bölgesi | AB — Hollanda (veritabanı), Fransa (dosyalar ve yedekler) |
| Web sunucusu | Apache 2.4 (mod_rewrite, mod_ssl) |
| Runtime | PHP 8.5 |
| Veritabanı | MySQL / MariaDB (platform + per-tenant) |
| Önbellek / oturumlar | Redis (loopback, password-protected) |
| Sınır ötesi veri transferleri | EU-only açık değilse (Plus'tan itibaren) AI işleme AB dışında, örneğin Amerika Birleşik Devletleri'nde gerçekleşebilir. Hangi AI sağlayıcılarını kullandığımızı talep üzerine bildiririz. |