Ana içeriğe geç

SOC 2 Type II — Mühendislik Hazırlığı#

"SOC 2 Type II 'sertifika asma duvarı' değil — 6 ay süreyle kontrol işliyor mu denetimi. Audit gününe sıkıştırılan hazırlık başarısız olur. Continuous compliance = yıllık stres yerine otomatik kanıt."

Bu rehber SOC 2 Type II'yi mühendislik açısından continuous compliance disiplini olarak ele alır: Trust Service Criteria, audit evidence automation, observation period, ve "audit günü" hazırlığı.

⚠️ Yasal danışmanlık değildir. SOC 2 audit firma seçimi + scope tanımlama hukuk + compliance ekipleriyle yapılır.


🎯 SOC 2 Nedir?#

SOC 2 (Service Organization Control 2): AICPA tarafından tanımlanan, hizmet sağlayıcılarının müşteri verisini nasıl koruduğunu doğrulayan denetim çerçevesi.

Tip Süre Açıklama
Type I Snapshot (1 gün) "Bu kontroller var mı?" — hızlı
Type II Observation period (3-12 ay, genelde 6) "Kontroller sürekli işliyor mu?" — gerçek değer

🔑 B2B SaaS müşterileri Type II ister. Type I sadece başlangıç.


📊 Trust Service Criteria (TSC)#

TSC Açıklama Mühendislik kapsamı
Security (zorunlu) Yetkisiz erişim engellenir RBAC, audit log, MFA, encryption
Availability Servis SLA'ya uyar Uptime, DR, monitoring
Processing Integrity İşlemler doğru, tam, zamanında Data validation, idempotency
Confidentiality Hassas data ifşa edilmez Encryption, access control
Privacy PII düzgün yönetilir KVKK/GDPR uyumu

🔑 Çoğu ekip: Security + Availability + Confidentiality. Privacy ayrıca KVKK/GDPR ile çakışır.


🪜 Olgunluk Yolu#

L0: Hiç bir şey#

  • Audit yok, müşteri talep ediyor
  • 6+ ay hazırlık gerekir

L1: Doküman var, kontrol yok#

  • Politikalar yazılı
  • Uygulama tutarsız

L2: Kontroller var, kanıt manuel#

  • "İhtiyaç olunca toplarız"
  • Audit gününde stres

L3: Continuous compliance#

  • Kontroller koda dökülmüş
  • Kanıt otomatik üretiliyor
  • Audit'e gün-bazında hazır

🎯 Hedef: L3. SOC 2 Type II + ISO 27001 + KVKK/GDPR aynı kontrol setinden besleniyor.


🛠️ Common Controls + Mühendislik Karşılığı#

CC1: Control Environment#

  • CC1.1 Etik kod, code of conduct
  • CC1.4 Yetki gözden geçirme
  • Mühendislik: Quarterly RBAC review

CC6: Logical Access#

  • CC6.1 User authentication
  • Mühendislik: OIDC + MFA enforced
  • CC6.2 User registration / authorization
  • Mühendislik: SCIM provisioning, JIRA ticket trail
  • CC6.3 User access review
  • Mühendislik: Quarterly access audit (AWS IAM, K8s RBAC, Vault)
  • CC6.6 Encryption in transit
  • Mühendislik: TLS 1.2+, mTLS service-to-service
  • CC6.7 Encryption at rest
  • Mühendislik: KMS-backed (AWS / GCP), etcd encryption

CC7: System Operations#

  • CC7.1 Threat detection
  • Mühendislik: Falco / SIEM, anomaly alert
  • CC7.2 Monitoring + incident response
  • Mühendislik: Prometheus + alerts, IR playbook
  • CC7.3 Incident management
  • Mühendislik: Postmortem, action item tracking
  • CC7.4 Disaster recovery
  • Mühendislik: Backup + restore drill, RTO/RPO yazılı

CC8: Change Management#

  • CC8.1 Change documentation
  • Mühendislik: PR + CI + ArgoCD audit trail
  • CC8.2 Change approval
  • Mühendislik: CODEOWNERS + required review

CC9: Risk Mitigation#

  • CC9.1 Risk identification
  • Mühendislik: Threat model per service
  • CC9.2 Vendor risk
  • Mühendislik: Vendor due diligence, DPA imza

🔧 Continuous Compliance — Otomatik Kanıt#

Idea: Her kontrol için automated evidence#

Kontrol: "Tüm prod erişim MFA korumalı"
Kanıt: AWS IAM API → MFA-enabled user listesi
Periyot: Her hafta otomatik scan
Storage: S3 bucket (immutable, audit-only)
Audit: Sırasında auditor S3'ten okur, dashboard görür

Otomatik kanıt toplayıcı (örnek)#

# .github/workflows/compliance-evidence.yml
name: Compliance Evidence Collection

on:
  schedule:
    - cron: '0 2 * * 1'   # Her pazartesi 02:00

jobs:
  collect:
    runs-on: ubuntu-latest
    steps:
      - name: AWS IAM users + MFA
        run: |
          aws iam list-users --query 'Users[*].[UserName, CreateDate]' \
            --output json > evidence/iam-users-$(date +%F).json
          aws iam list-mfa-devices > evidence/mfa-$(date +%F).json

      - name: K8s RBAC dump
        run: |
          kubectl auth can-i --list --as=<USER> > evidence/rbac-$(date +%F).txt
          kubectl get clusterrolebindings -o yaml > evidence/crb-$(date +%F).yaml

      - name: Backup status
        run: |
          aws backup list-backup-jobs --by-state COMPLETED \
            --output json > evidence/backups-$(date +%F).json

      - name: Upload to immutable S3
        run: |
          aws s3 cp evidence/ s3://<COMPLIANCE_BUCKET>/$(date +%Y/%m/%d)/ \
            --recursive --acl bucket-owner-full-control

Compliance-as-Code tool'lar#

Tool Niche
Drata SaaS, otomatik kanıt collection
Vanta SaaS, hızlı SOC 2 başlangıç
Secureframe SaaS, multi-framework
Sprinto SaaS, ucuz
Strike Graph Hybrid
Trustpage TPM otomasyonu

🔑 Drata / Vanta / Sprinto — startup'ta SOC 2 Type II hazırlığı 12 ay → 4 ay'a düşer. Bütçen varsa kullan.


📋 Audit Hazırlık Roadmap (12 ay)#

Ay 1-2: Scope + Gap Analysis#

  • Hangi TSC'ler? (genelde Security + Availability + Confidentiality)
  • Mevcut kontroller hangileri?
  • Gap listesi

Ay 3-6: Kontrol Implementasyonu#

  • Eksik kontrolleri ekle (RBAC, MFA, encryption, audit log)
  • Politikaları yaz (security, IR, BCP)
  • Tooling: SIEM, MFA enforcement, backup

Ay 7: Type I Audit#

  • Snapshot audit (kontroller var mı?)
  • Daha hızlı + ucuz
  • Customer'a "süreç başladı" sinyal

Ay 7-12: Observation Period (Type II)#

  • Tüm kontroller işliyor mu?
  • Audit firma quarterly sample alır
  • Issue çıkarsa fix + dokümante

Ay 13: Type II Audit Report#

  • 6 aylık observation rapor
  • Customer'a paylaş

🔑 Drata / Vanta ile bu süreç 8 ay'a iner.


🔍 Audit Day Hazırlık#

Auditor ne ister?#

  • Population: "Tüm prod user listesi" (örn: 47 kişi)
  • Sample: %10-20 sample (örn: 10 kişi)
  • Evidence: her sample için kontrol kanıtı
  • "Kullanıcı X için MFA aktif mi?" → screenshot + IAM dump
  • "Kullanıcı X erişimi gerekli mi?" → JIRA ticket + manager onay

Hızlı evidence dosyası#

evidence/
├── 2026-Q4-soc2/
│   ├── CC6.1-mfa-screenshots/
│   ├── CC6.2-access-tickets/
│   ├── CC6.3-quarterly-review.pdf
│   ├── CC7.2-incident-log.csv
│   ├── CC7.4-backup-restore-drill.md
│   ├── CC8.1-pr-merges-sample.csv
│   └── CC9.1-threat-models/

Sample question'lara hazırlık#

  • "Bu PR'ın approver'ı kim, niye bu kişi yetkili?"
  • "Bu incident'ın postmortem'i nerede?"
  • "Bu cron job'un başarısız olursa kim haberdar olur?"

🔑 Auditor kanıt + tutarlılık ister. Ad-hoc cevap değil, dokümantasyon + log.


🚫 Anti-Pattern Tablosu#

Anti-pattern Niye kötü Doğru
Audit gününe 1 ay kala başlamak Kalitesiz kontroller 6-12 ay önceden plan
Manuel evidence toplama Audit haftası 80 saat Continuous + automated
Politika dokümanı yok Auditor "yazılı kontrol yok" Security policy / IR / BCP
Tek kişi tüm kanıtı toplar Bus factor + burnout Tool + paylaşımlı sahiplik
Tooling kurulu, kullanılmıyor "Drata var ama gerçek değil" Onboarding + adoption
Sample senin seçeceğin Cheating, audit invalid Auditor random sample seçer
Continuous compliance ihmal Yıllık reset Pipeline gate + automated
Customer'a "SOC 2'miz var" iddiası, Type I sadece Müşteri Type II bekler Type II için 6+ ay observation
Vendor management eksik Sub-processor compliance kayıp Vendor due diligence
Postmortem yok CC7.3 ihlal Blameless postmortem zorunlu

📋 SOC 2 Type II Mühendislik Checklist#

[ ] Scope: Security + Availability + Confidentiality (TSC)
[ ] Audit firma seçildi (Big 4 veya Tier 2)
[ ] Drata / Vanta / equivalent kuruldu
[ ] Politikalar yazılı (security, IR, BCP, change management)
[ ] OIDC + MFA tüm prod erişim
[ ] RBAC: per-team, quarterly review
[ ] Encryption-at-rest (KMS) + in-transit (TLS 1.2+)
[ ] Audit log: cluster + cloud + app → SIEM, 1+ yıl retention
[ ] Vulnerability mgmt: Trivy, Renovate, CVE response policy
[ ] Backup: tested restore drill (quarterly)
[ ] DR plan: RTO/RPO yazılı, tatbikat
[ ] Incident response: blameless postmortem, action tracking
[ ] Threat model: per-service (CC9)
[ ] Vendor due diligence: DPA + sub-processor list
[ ] Change management: CODEOWNERS + required PR review + ArgoCD trail
[ ] Continuous evidence collection (otomatik script)
[ ] Compliance dashboard (Drata / Vanta UI)
[ ] Yeni mühendis on-boarding: SOC 2 farkındalık
[ ] Annual: gap analysis + Type II refresh

📚 Referanslar#


"SOC 2 Type II 'sertifika' değil, continuous compliance kanıtıdır. Audit gününe sıkıştıran ekip yorulur ve bug'lar birikir; continuous yapan ekip günde 5 dakika ayırır, audit gününde ise 'rapor zaten orada' der."