Güvenliğe genel bakış
Pushizo güvenlik modeli — kimlik doğrulama, RBAC, kiracı izolasyonu (RLS), gizli bilgi şifreleme, uygulama güvenliği (SSRF, CSP, imzalar), gözlemlenebilirlik ve denetim kaydı; ASVS kontrol listesi.
Pushizo çok kiracılı bir platformdur; her sorgu org_id/app_id ile sınırlıdır ve Postgres satır düzeyi güvenlik (RLS) ikinci savunma hattıdır. Bu sayfa modelin özetidir; kanıta bağlı madde listesi için OWASP ASVS kontrol listesi.
Kimlik doğrulama
| Yüzey | Yöntem |
|---|---|
| Dashboard | Parola (Argon2id, en az 10 karakter, sızmış parola kontrolü), opak oturum çerezi (HttpOnly; Secure; SameSite=Lax, 14 gün kayan / 90 gün mutlak), TOTP MFA + kurtarma kodları (org düzeyinde zorunlu kılınabilir), Google/GitHub OAuth, SAML/OIDC SSO, giriş kilidi (5 hata → 15 dk), yeni cihaz e-postası, isteğe bağlı Turnstile |
| Public API | Authorization: Bearer hs_live_… API anahtarı: SHA-256 ile saklanır, kapsamlı, app/org kapsamı, IP izin listesi, bitiş tarihi, iptal ≤ 5 sn |
| SDK uçları | API anahtarı yok; sahiplik kanıtı token_hash ve identity verification (identity_hash HMAC ya da ES256 JWT) |
| Platform admin | Ayrı rol, zorunlu MFA (ADMIN_MFA_REQUIRED), gerekçe zorunlu işlemler, salt okunur/yazma yetkili destek oturumu |
Yol kanonikleştirme ve rota desenine göre kimlik türü ayrımı uygulanır: API anahtarı yalnızca /v1, oturum yalnızca /internal ve /admin rotalarında geçerlidir; /internal//admin mutasyonlarında Origin ve içerik türü denetlenir (CSRF).
Yetkilendirme (RBAC)
Roller: owner, admin, developer, marketer, composer, analyst, billing, viewer. İzin tablosu tek kaynaktan (packages/tenancy) hem API guard'larında hem dashboard menüsünde kullanılır; üyelik app_scopes ile belirli app'lere kısıtlanabilir. API anahtarı kapsamları, anahtarı oluşturan üyenin izinlerini aşamaz (yetki yükseltme engeli). Onay akışı açıkken marketer gönderemez, onaya sunar.
Kiracı izolasyonu
- Her repository çağrısı
TenantContextalır; kiracı bağlamı çözüldükten sonra istek tek transaction'daSET LOCAL app.current_org_id / app.current_app_idile çalışır; uygulama rolü üretimdeNOSUPERUSER NOBYPASSRLS'tir (Postgres rolleri). - Başka kiracının kaynağı
404 HS_NOT_FOUNDdöner (varlık sızdırılmaz). - Her endpoint için otomatik izolasyon testi (A kiracısının anahtarıyla B kaynağı) OpenAPI'den türetilir.
- Depolama anahtarları
org/{org_id}/app/{app_id}/…öneklidir; imzalı URL'ler 24 saat. - Veri yerleşimi: hücre (EU/TR) dışı istek
421 HS_WRONG_CELL; ağ politikası hücreler arası veri katmanı erişimini keser (veri yerleşimi).
Gizli bilgi yönetimi
- Envelope encryption:
MASTER_KEY→ veri anahtarları (DEK) sarmalı; kayıt başına nonce, libsodiumsecretbox. Rotasyon komutu veMASTER_KEYdeğişimi: anahtar rotasyonu. - Sağlayıcı kimlik bilgileri (APNs p8/p12, FCM servis hesabı, SMTP parolası, Twilio token), VAPID özel anahtarı, webhook secret'ları, SDK secret ve webhook özel başlıkları şifreli saklanır; API/UI'dan asla geri okunmaz.
- Loglarda redaksiyon (token, e-posta, telefon, OAuth/MFA parametreleri); Sentry
beforeSendile gövde temizliği; CI'da gizli bilgi taraması.
Uygulama güvenliği
- Zod şema doğrulaması her sınırda; JSON derinlik/boyut sınırları (1 MB, olay batch 5 MB).
- SSRF: webhook, Data Feed, medya ve kiracı SMTP adresleri DNS çözümlemesi sonrası özel IP aralıklarına karşı denetlenir ve bağlantı IP'ye sabitlenir; yönlendirme izlenmez; Web Push uç noktası ve FCM
token_uriizin listeleri. - Çıktı: e-posta/in-app HTML temizliği, Liquid sandbox, ReDoS'a karşı doğrusal HTML işleme; CSP, HSTS,
X-Content-Type-Options,Referrer-Policy,Permissions-Policy,X-Frame-Options. - İmzalar: giden webhook'lar
Pushizo-Signature(HMAC-SHA256, 5 dk tolerans, 24 saat rotasyon penceresi); gelen sağlayıcı webhook'ları (SNS, Svix/Resend, Twilio) imza doğrulamalı; e-posta izleme bağlantıları HMAC imzalı (açık yönlendirme yok). - Hız sınırı ve kötüye kullanım: plan bazlı API hızı ve nginx IP sınırları (hız sınırları); yeni org için ilk 24 saat günlük 1000 mesaj; şikâyet/bounce eşiği aşılınca kanal askıya alma; tek kullanımlık e-posta alan adı listesi; platform admin inceleme kuyruğu.
- Bağımlılıklar:
npm audit, Dependabot, lockfile; CI'da gizli bilgi taraması (gitleaks).
Gözlemlenebilirlik ve denetim
- Her yanıt
x-request-idtaşır; hata zarfındakirequest_idile loglar eşleşir. - Denetim kaydı (audit log): kim, ne, ne zaman, hangi kaynağa; org düzeyinde
GET /v1/organization/audit-logs, günlük NDJSON SIEM akışı veaudit.createdwebhook'u (entegrasyonlar). - Prometheus metrikleri, Loki logları, Alertmanager alarmları ve blackbox probları (status ve izleme).
Uyum
- KVKK / GDPR: veri işleyen rolü, kullanıcı ve hesap self-servis hakları, saklama süreleri, DPA ve alt işleyici listesi (KVKK/GDPR uyumu).
- Kurumsal kimlik: SAML 2.0 / OIDC SSO, "yalnızca SSO", SCIM 2.0 kullanıcı/grup provizyonu (SSO, SCIM).
- White-label ve bayi: özel alan adı, marka, bayi hesapları (white-label).
- Güvenlik açığı bildirimi:
https://pushizo.com/.well-known/security.txt.