Güvenlik
Yürürlük tarihi: 1 Haziran 2026
Özet
Pilother müşterilerinin sohbet verisi, WhatsApp/Instagram bağlantıları ve sipariş bilgileri gibi kritik veriler işler. Bu nedenle güvenlik, mühendislik kararlarımızın en başta gelen kriteridir.
En önemli garantiler:
- Pilother çalışanlarının müşterilerin WhatsApp, Instagram veya Messenger hesaplarına doğrudan hiçbir erişimi yoktur. Tüm bağlantılar Meta'nın resmi OAuth akışı üzerinden kurulur; access token'lar AWS KMS ile şifreli saklanır ve sadece sizin hesabınızın mesajları için kullanılır.
- Her müşterinin verisi PostgreSQL Row Level Security ile diğer müşterilerden tamamen izole edilmiştir. Bir müşteri başka bir müşterinin verisine veritabanı seviyesinde dahi erişemez.
- Üretim ortamına erişim sadece olay müdahalesi için, audit log altında, en az iki yöneticinin onayıyla yapılır.
- Tüm trafik TLS 1.3 ile şifrelidir. Depolanan veri AES-256 şifrelidir.
Altyapı Güvenliği
Hosting ve veri merkezleri:
- Uygulama katmanı: Vercel (Frankfurt, AB bölgesi). SOC 2 Type II ve ISO 27001 sertifikalı.
- Veritabanı: Supabase (Frankfurt, AB bölgesi). SOC 2 Type II sertifikalı, AWS RDS üzerinde yönetilen Postgres.
- Dosya depolama: Supabase Storage (S3 uyumlu, AB bölgesi).
- DNS ve CDN: Vercel Edge Network + Cloudflare WAF (DDoS koruması).
Ağ güvenliği:
- Tüm HTTP istekleri HTTPS'e zorlanır (HSTS preload listesinde, 1 yıl)
- Eski TLS sürümleri (1.0, 1.1, 1.2) kabul edilmez; sadece TLS 1.3
- WAF SQL injection, XSS, command injection, path traversal saldırılarını engeller
- Rate limiting: IP başına saniyede 100 istek üst sınırı; suspect davranış otomatik blok
- Bot koruması: Cloudflare Turnstile kayıt formlarında zorunlu
Yedekleme ve felaket kurtarma:
- Otomatik günlük tam yedek + 24 saat point-in-time recovery
- Yedekler farklı AWS bölgesinde (çapraz bölge replikasyon)
- Aylık restore tatbikatı (yedeklerin gerçekten geri yüklenebildiğini doğrulamak için)
- RTO (recovery time objective): 4 saat. RPO (recovery point objective): 1 saat.
Şifreleme ve Veri Koruma
Aktarımda şifreleme (in transit):
- Tüm istemci-sunucu iletişimi TLS 1.3
- İç servisler arası iletişim (Postgres, Storage, AI sağlayıcıları) TLS
- Webhook'lar HMAC-SHA256 imzalı; sizin yapılandırdığınız secret olmadan istek kabul edilmez
Depolamada şifreleme (at rest):
- Postgres disk şifreleme: AES-256 (AWS RDS)
- Storage (S3): AES-256 server-side encryption
- Yedekler: AES-256, ayrı KMS anahtarı ile
Hassas alanlar için ek şifreleme:
- OAuth access token'ları, API anahtarları, webhook secret'ları: AWS KMS / Supabase Vault üzerinden uygulama katmanında şifreli
- Veritabanı dump'ında bile bu alanlar şifrelidir; KMS anahtarına erişim olmadan plaintext elde edilemez
- KMS anahtarı erişimi: sadece servis hesapları, IAM policy ile sınırlı, kullanım denetlenir
- Şifreler bcrypt (cost factor 12) ile hashlenir; plaintext parola hiçbir yerde saklanmaz
Tenant İzolasyonu (RLS)
Her Pilother müşterisi (tenant) için ayrı bir mantıksal alan yoktur; tüm müşteriler aynı veritabanını paylaşır. Ancak izolasyon veritabanı seviyesinde, PostgreSQL Row Level Security (RLS) ile zorlanır.
Nasıl çalışır:
- Her tablo (sohbetler, müşteri profilleri, mesajlar, OAuth token'ları, e-ticaret entegrasyonları)
tenant_idsütununa sahiptir - Her tabloda RLS politikası tanımlıdır: yalnızca oturum açmış kullanıcının
tenant_id'si ile eşleşen satırlar görünür - Bu politika veritabanı motorunda zorlanır; uygulama kodunda "tenant_id eşleşsin mi" kontrolüne ihtiyaç yoktur
- Bir SQL injection veya bir kod hatası bile (uygulama servis rolü dışında) başka tenant'ın verisini sızdıramaz
- Servis rolü ile yapılan tüm sorgular audit log'a yazılır
Test edilmesi:
- Her CI çalıştırmasında RLS testleri çalışır: farklı tenant token'larıyla karşı tarafın verisine erişim denenir, 0 satır dönmesi doğrulanır
- Aylık penetrasyon-style test: kasıtlı olarak RLS'i atlatmaya çalışan otomatik testler
WhatsApp, Instagram ve Diğer Kanallara Erişim
Bu, müşterilerimiz için en hassas konudur: WhatsApp Business, Instagram Direct, Messenger gibi kanallarını Pilother'a bağladığınızda Pilother çalışanlarının veya başka müşterilerin hesabınıza hiçbir doğrudan erişimi yoktur.
Bağlantı nasıl kurulur (teknik):
- Pilother sizi Meta'nın resmi OAuth ekranına yönlendirir (facebook.com / instagram.com)
- Meta size hangi sayfaları/numarayı bağlayacağınızı ve hangi izinleri vereceğinizi açık olarak gösterir
- İzin sonrası Meta, Pilother'a kısa ömürlü bir access token verir
- Pilother bu token'ı uzun ömürlü bir token'a çevirir ve AWS KMS şifrelemesiyle veritabanına yazar
- Token sadece sizin tenant'ınızla ilişkilidir; RLS gereği başka bir tenant bu token'a erişemez
- Pilother çalışanları üretim veritabanına doğrudan erişemediğinden token'ı görüntüleyemez
Token nasıl kullanılır:
- Sadece sizin hesabınıza ait mesajları okumak ve yazmak için kullanılır
- Mesajlaşma dışı işlemler (örneğin profil bilgilerinizi okuma, başka sayfalara yetki verme) yapılmaz
- Token kullanımı her API çağrısında loglanır (kim, ne zaman, hangi endpoint)
Bağlantıyı her an kesebilirsiniz:
- Pilother panelinden: Ayarlar > Entegrasyonlar > Bağlantıyı Kes. Token anında iptal edilir ve veritabanından silinir.
- Meta Business Manager'dan: business.facebook.com > İş Ayarları > Entegrasyonlar > Pilother > Kaldır. Token Meta tarafında geçersiz kılınır; Pilother bir sonraki API çağrısında 401 alır ve token kullanılamaz hale gelir.
Yasal çerçeve:
- Pilother, Meta'nın WhatsApp Business Solution Provider ve Instagram Platform Policy'sine uygundur
- Meta yıllık olarak Pilother'ın bu politikalara uyumunu denetler
- Kanal verisi yalnızca KVKK'da Müşteri'nin belirlediği amaçlar için işlenir; Pilother amacı genişletemez
Çalışan Erişimi ve İç Kontroller
Pilother çalışanları için zorunlu kontroller:
- Tek oturum açma (SSO) Google Workspace üzerinden
- Donanım MFA zorunlu (YubiKey). SMS veya TOTP yedek olarak bile kabul edilmez.
- Şifrelerin minimum 16 karakter olması ve şirket parola yöneticisinde tutulması zorunlu
- İşten ayrılan çalışanın erişimi 2 saat içinde tüm sistemlerde iptal edilir (otomatik IAM senkronizasyon)
Üretim ortamına erişim:
- Hiçbir çalışan üretim veritabanına rutin olarak erişemez
- Acil olay müdahalesi (örneğin canlı bir bug'ın incelenmesi) için break-glass prosedürü vardır:
- Erişim talebi yazılı olarak açıklanır (hangi sorun, hangi tablolar, ne kadar süre)
- En az 2 yönetici onaylar
- Erişim 4 saat ile sınırlıdır ve sonrasında otomatik düşer
- Yapılan her sorgu audit log'a yazılır
- Olay sonrası post-mortem hazırlanır
Kaynak koduna erişim:
- GitHub Enterprise, SSO + MFA zorunlu
- Branch protection: main'e doğrudan push yasak; en az 1 onaylı PR şart
- CODEOWNERS ile hassas alanlar (auth, ödeme, KMS) için ek code review
- Secret tarama: commit'te API anahtarı vb. tespit edilirse otomatik blok
Güvenlik Testleri
Sürekli güvenlik testleri:
- Yıllık penetrasyon testi: Bağımsız akredite firma tarafından, hem web hem API katmanı.
- Otomatik dependency scan: Snyk + GitHub Dependabot ile günlük tarama. Kritik açıklar 24 saat içinde patch edilir.
- Static Application Security Testing (SAST): Her PR'da CodeQL ile analiz.
- Container/Infra scan: Docker imajları her build sonrası Trivy ile tarama.
- Secret scanning: GitHub Advanced Security ile tüm repo geçmişi tarama.
- Otomatik regression test: Her release öncesi 1500+ test (RLS, auth, ödeme akışları).
Vulnerability yönetimi:
- Kritik (CVSS ≥ 9): 24 saat içinde patch
- Yüksek (CVSS 7-8.9): 7 gün
- Orta (CVSS 4-6.9): 30 gün
- Düşük: bir sonraki release döngüsünde
Olay Müdahalesi
7/24 izleme:
- Sentry: uygulama hataları
- Vercel Analytics + custom logging: performans ve trafik anormallikleri
- Supabase Logs: veritabanı sorguları, RLS reddetmeleri
- PagerDuty: kritik alarmlar 5 dakika içinde nöbetçi mühendise ulaşır
Veri ihlali durumunda:
- İlk 24 saat: olayın boyutu belirlenir, etkilenen tenant'lar tespit edilir, ihlal durdurulur
- 72 saat içinde: KVKK Kuruluna bildirim (KVKK madde 12/5)
- 72 saat içinde: Etkilenen tüm müşterilere e-posta ile bildirim (hangi veri, ne zaman, neler yapıldı, sizin için tavsiyeler)
- İlk 2 hafta: kamuya açık post-mortem yayınlanır (kişisel veri içermeyecek şekilde)
İhlal şüphesi varsa lütfen bizi anında bilgilendirin: guvenlik@pilother.com
Sorumlu Açıklama (Bug Bounty)
Pilother altyapısında bir güvenlik açığı tespit ettiyseniz lütfen kamuya açıklamadan önce bize bildirin.
Nasıl bildirim yapılır:
- E-posta: guvenlik@pilother.com
- Mümkünse PGP ile şifreli bildirim (anahtar talep üzerine gönderilir)
- Açığın reprodüksiyonu için adım adım açıklama
- İletişim için adınız ve e-postanız
Taahhütlerimiz:
- 24 saat içinde ilk dönüş
- 7 gün içinde teknik değerlendirme
- Kritik açıklar için maddi ödül (bug bounty programı yakında resmen başlayacak)
- Yasal işlem yapmama taahhüdü (iyi niyetli araştırma sınırları içindeyseniz)
Kapsam dışı: Sosyal mühendislik, fiziksel saldırı, üçüncü taraf servislere yönelik saldırılar (Vercel, Supabase, Meta).
Uyumluluk
Mevcut uyumluluk:
- KVKK (6698 sayılı Kanun) tam uyumlu
- GDPR (EU 2016/679) tam uyumlu
- Meta Platform Terms (WhatsApp Business, Instagram Platform Policy)
- PCI DSS SAQ-A (kart bilgisi Pilother sunucularına temas etmediği için)
Devam eden çalışmalar:
- SOC 2 Type II: 2026 Q4 hedefi
- ISO/IEC 27001: 2027 hedefi
- ISO/IEC 27701 (privacy): 2027 sonrası
Veri İşleme Sözleşmesi (DPA): Tüm Pilother müşterileri için standart DPA sunulur. Talep için: hukuk@pilother.com
Güvenlik soruları: guvenlik@pilother.com