Trust
Güvenlik
MedSelect, regulated verticals (medical/legal/financial) için inşa edildi. Güvenlik posture'u opsiyonel değil — operasyonel gereksinim. Bu sayfa, kurumsal alıcıların due-diligence sırasında sorduğu tüm soruların kamuya açık cevabıdır.
Veri konumu (data residency)
Tüm üretim verisi EU'da barınır: Hetzner Frankfurt (fsn1). Yedekleme aynı AB sınırları içinde. Veri AB dışına aktarılmaz.
Email gönderimi (transactional) AWS SES eu-west-1 (İrlanda) üzerinden — SCC + DPA imzalı.
Encryption
- In transit: TLS 1.2+ tüm public endpoint'lerde (Let's Encrypt + auto-renewal).
- At rest: MySQL data dir Hetzner-managed disk encryption (LUKS).
- Şifreler: bcrypt cost 12 (per-user salt).
- Magic-link tokens: SHA-256 hash + 15 dk TTL + single-use. Token plaintext sadece email'de.
- Secret store: API anahtarları (GSC, GA4, SES, vb.) şifreli secret row'larda. Plaintext loglanmaz.
Authentication posture
Email + password birincil. TOTP (RFC 6238) opsiyonel ek faktör.
Üçüncü taraf identity provider yok — Google/Microsoft SSO kasten reddedildi (KVKK Madde 8 cross-border veri aktarımı endişesi). TOTP standardı kendisi Google ürünü değildir (RFC 6238 açık standart).
Admin hesaplar için TOTP zorunlu. Klinik portali için opsiyonel ama önerilir.
Audit log integrity (hash chain)
Her state-changing event append-only audit_log tablosuna yazılır. Günlük cron (00:30 UTC) o günün tüm row'larını SHA-256 ile özetler ve önceki günün hash'ine zincirler.
Sonuç: geriye dönük herhangi bir satırın değiştirilmesi tüm sonraki günlerin hash'ini geçersiz kılar — tampering tespit edilir. Doğrulama her gece otomatik koşar; failure alert (Grafana → Loki → email) anında ulaşır.
Access control
- Tenant izolasyonu: Repository pattern + middleware tenant-scope context'i her sorguda enforce eder. Cross-tenant okuma denemesi RepositoryError fırlatır + audit log entry yazar.
- RBAC: 7 role × 19 permission. asclepia_admin / asclepia_editor / asclepia_seo / senior_medical_advisor / tenant_owner / tenant_reviewer / auditor_readonly.
- 2FA enforce: tenant.create + tenant.activate + secrets.rotate gibi yüksek-risk action'lar TOTP gerektirir.
Network security
- UFW firewall — sadece 22, 80, 443 dışarı açık.
- SSH: key-only (password disabled), Fail2ban + UFW limit (~6 connect/30s).
- SSH harderning per CIS Benchmark Level 1.
- Cloudflare DNS + DDoS koruması.
- Monitoring: monitoring.medselect.ai (Grafana + Loki + alert rules).
Backup + disaster recovery
- MySQL nightly logical dump (mysqldump --single-transaction). 14 gün retention.
- Off-server backup: Hetzner Storage Box (encrypted at rest, AB sınırları).
- Disaster recovery runbook: 24 saat RPO, 4 saat RTO hedefi.
- Restore-from-backup test ayda bir manuel olarak doğrulanır.
Email deliverability + abuse
- SPF + DKIM + DMARC reject policy.
- SES bounce + complaint webhook → suppression list. /admin/email/suppressions üzerinden manuel temizleme.
- Custom MAIL FROM (subdomain) — return-path izolasyonu için.
Vendor + subprocessor list
Aşağıdaki üçüncü taraf hizmetler MedSelect'in altyapısının parçasıdır. Hepsi GDPR-uyumlu, DPA imzalı ve AB veri sınırları içinde işler.
- Hetzner Online GmbH (DE) — hosting + storage + backups.
- AWS (eu-west-1, IE) — SES transactional email.
- Cloudflare — DNS + edge caching + DDoS koruması.
- Anthropic (kullanım anında, opsiyonel) — content review pass + sentiment + hallucination detection. KVKK gereği, tenant verisi pseudonymised aktarılır.
- OpenAI, Perplexity, Google Gemini — sadece public web sayfası araması yapan AIDO probe akışı. Kişisel veri içermez.
- Google Search Console + Google Analytics 4 — tenant kendi izniyle bağlar.
Full subprocessor listesi DPA içinde detaylandırılır. Bkz. /dpa.
Incident response
Güvenlik olayı tespit edildiğinde:
- Etkilenen sistemler izole edilir.
- Etki tespiti 24 saat içinde tamamlanır.
- Etkilenen tenant'lar 72 saat içinde bilgilendirilir (KVKK Madde 12).
- Yetkili Veri Koruma Otoritesi'ne bildirim 72 saat içinde gönderilir (KVKK Madde 12).
- Post-incident review + remediation plan kamuya yayınlanır.
Responsible disclosure
Bir güvenlik açığı tespit ederseniz [email protected] adresine yazın. PGP key talep edilirse temin edilir.
Geçerli rapor için takdir + (büyük etkili açıklar için) ücretlendirme. Asla yasal işlem başlatmayız — iyi niyetli güvenlik araştırması korunur (safe harbor).
Sertifikalar + audit
MedSelect henüz SOC 2 / ISO 27001 sertifikalı değildir. Ürün Phase 1 (founding tenant) aşamasındadır; sertifikasyon yol haritasında 2026 Q4.
Şu an mevcut sertifika yokluğu, security posture'un eksik olduğu anlamına gelmez. Bu sayfadaki ve DPA'daki kontroller mantıksal olarak ISO 27001 Annex A'ya hizalıdır.
Güvenlik soruları için: [email protected]