Konular
Hafta 9: ISO 21434 - Siber Güvenlik Yönetim Sistemi
Hafta 9: ISO 21434 Standardı
🎯 Öğrenme Hedefleri
Bu haftanın sonunda:
- ISO 21434 standardının yapısını anlayacaksınız
- CSMS (Cybersecurity Management System) gereksinimlerini öğreneceksiniz
- Security by Design prensiplerini kavrayacaksınız
- Yaşam döngüsü güvenliğini uygulayabileceksiniz
1. ISO 21434 Genel Bakış

Şekil 1: ISO 21434 siber güvenlik yaşam döngüsü - konseptten devre dışı bırakmaya kadar olan süreç.

Şekil 2: ISO 21434 V-model diyagramı. Sol taraf geliştirme fazlarını (Concept, Requirements, Design, Implementation), sağ taraf doğrulama fazlarını (Testing, Verification, Homologation) gösterir.
1.1 Standardın Amacı
┌──────────────────────────────────────────────────────────┐
│ ISO/SAE 21434:2021 │
│ "Road vehicles — Cybersecurity engineering" │
├──────────────────────────────────────────────────────────┤
│ │
│ 🎯 Hedefler: │
│ • Siber güvenliğin tüm yaşam döngüsüne entegrasyonu │
│ • Sistematik risk yönetimi │
│ • OEM ve tedarikçi işbirliği │
│ • UNECE R155 uyumluluğu │
│ │
│ 📅 Yaşam Döngüsü Fazları: │
│ 1. Concept Phase (Kavram) │
│ 2. Product Development (Geliştirme) │
│ 3. Production (Üretim) │
│ 4. Operations & Maintenance (İşletme) │
│ 5. Decommissioning (Devre Dışı Bırakma) │
│ │
└──────────────────────────────────────────────────────────┘
1.2 Standardın Bölümleri
| Bölüm | Başlık | İçerik | |--------|--------|--------| | 5 | Organizational Cybersecurity Management | CSMS, politikalar, görevler | | 6 | Project Dependent Cybersecurity Management | Proje planlama, CAL | | 7 | Distributed Cybersecurity Activities | Tedarik zinciri | | 8 | Continual Cybersecurity Activities | Monitoring, PSIRT | | 9 | Concept Phase | Öğe tanımı, TARA | | 10 | Product Development | Tasarım, implementasyon | | 11 | Cybersecurity Validation | Test ve doğrulama | | 12 | Production | Üretim güvenliği | | 13 | Operations & Maintenance | Yama, izleme | | 14 | End of Cybersecurity Support | Destek sonu | | 15 | TARA | Tehdit analizi detayları |
2. CSMS - Cybersecurity Management System
#!/usr/bin/env python3
"""
CSMS Bileşenleri ve Gereksinimler
"""
from dataclasses import dataclass, field
from typing import List, Dict
from enum import Enum
from datetime import datetime
class CSMSRole(Enum):
"""CSMS rol tanımları."""
CYBERSECURITY_MANAGER = "Siber Güvenlik Yöneticisi"
SECURITY_ARCHITECT = "Güvenlik Mimarı"
SECURITY_ANALYST = "Güvenlik Analisti"
TARA_SPECIALIST = "TARA Uzmanı"
PENETRATION_TESTER = "Penetrasyon Testçisi"
INCIDENT_RESPONDER = "Olay Yanıt Uzmanı"
AUDITOR = "Denetçi"
@dataclass
class CSMSRequirement:
"""CSMS gereksinimi."""
req_id: str
title: str
description: str
responsible_roles: List[CSMSRole]
mandatory: bool = True
evidence_type: str = "Document"
# ISO 21434 Clause 5 Gereksinimleri
CSMS_REQUIREMENTS = [
CSMSRequirement(
req_id="RQ-CSMS-01",
title="Siber Güvenlik Politikası",
description="Üst yönetim tarafından onaylanmış siber güvenlik politikası oluşturulmalı",
responsible_roles=[CSMSRole.CYBERSECURITY_MANAGER],
evidence_type="Policy Document"
),
CSMSRequirement(
req_id="RQ-CSMS-02",
title="Organizasyonel Yapı",
description="Siber güvenlik rolleri ve sorumlulukları tanımlanmalı",
responsible_roles=[CSMSRole.CYBERSECURITY_MANAGER],
evidence_type="Organization Chart"
),
CSMSRequirement(
req_id="RQ-CSMS-03",
title="Yetkinlik Yönetimi",
description="Personel yetkinlikleri tanımlanmalı ve eğitimler verilmeli",
responsible_roles=[CSMSRole.CYBERSECURITY_MANAGER],
evidence_type="Training Records"
),
CSMSRequirement(
req_id="RQ-CSMS-04",
title="Risk Yönetimi Süreci",
description="Sistematik risk değerlendirme süreci tanımlanmalı",
responsible_roles=[CSMSRole.SECURITY_ANALYST, CSMSRole.TARA_SPECIALIST],
evidence_type="Process Document"
),
CSMSRequirement(
req_id="RQ-CSMS-05",
title="Olay Yönetimi",
description="Siber güvenlik olayları için yanıt süreci oluşturulmalı",
responsible_roles=[CSMSRole.INCIDENT_RESPONDER],
evidence_type="Incident Response Plan"
),
CSMSRequirement(
req_id="RQ-CSMS-06",
title="Tedarik Zinciri Güvenliği",
description="Tedarikçi siber güvenlik gereksinimleri tanımlanmalı",
responsible_roles=[CSMSRole.CYBERSECURITY_MANAGER],
evidence_type="Supplier Requirements"
),
CSMSRequirement(
req_id="RQ-CSMS-07",
title="Sürekli İyileştirme",
description="CSMS etkinliği düzzenli olarak değerlendirilmeli",
responsible_roles=[CSMSRole.AUDITOR],
evidence_type="Audit Reports"
),
]
@dataclass
class CSMSAuditChecklist:
"""CSMS denetim kontrol listesi."""
project_name: str
audit_date: datetime = field(default_factory=datetime.now)
findings: List[Dict] = field(default_factory=list)
def check_requirement(self, req: CSMSRequirement,
status: str, evidence: str = "", notes: str = "") -> None:
"""Gereksinim kontrolü."""
self.findings.append({
"req_id": req.req_id,
"title": req.title,
"status": status, # "Compliant", "Partial", "Non-Compliant", "N/A"
"evidence": evidence,
"notes": notes
})
def generate_report(self) -> str:
"""Denetim raporu oluştur."""
report = []
report.append("=" * 60)
report.append(f"CSMS DENETİM RAPORU")
report.append(f"Proje: {self.project_name}")
report.append(f"Tarih: {self.audit_date.strftime('%Y-%m-%d')}")
report.append("=" * 60)
compliant = sum(1 for f in self.findings if f['status'] == 'Compliant')
total = len(self.findings)
report.append(f"
Uyumluluk: {compliant}/{total} ({compliant/total*100:.0f}%)")
report.append("
" + "-" * 40)
report.append("BULGULAR:")
report.append("-" * 40)
for f in self.findings:
emoji = "✅" if f['status'] == 'Compliant' else "⚠️" if f['status'] == 'Partial' else "❌"
report.append(f"
{emoji} {f['req_id']}: {f['title']}")
report.append(f" Durum: {f['status']}")
if f['notes']:
report.append(f" Not: {f['notes']}")
return "
".join(report)
# Demo
if __name__ == "__main__":
print("📋 CSMS DENETİM DEMO")
print("=" * 60)
# Denetim başlat
audit = CSMSAuditChecklist(project_name="Gateway ECU v2.0")
# Gereksinimleri kontrol et
for req in CSMS_REQUIREMENTS:
# Simülasyon
import random
status = random.choice(["Compliant", "Compliant", "Partial", "Non-Compliant"])
audit.check_requirement(req, status)
print(audit.generate_report())
3. Cybersecurity Assurance Level (CAL)
┌─────────────────────────────────────────────────────────┐
│ CYBERSECURITY ASSURANCE LEVELS (CAL) │
├─────────┬─────────────────┬───────────────────────────────┤
│ CAL │ Seviye │ Örnek Bileşenler │
├─────────┼─────────────────┼───────────────────────────────┤
│ CAL 1 │ Temel │ Infotainment, Radyo │
│ CAL 2 │ Orta │ Telematik, Klima ECU │
│ CAL 3 │ Yüksek │ Gateway, Body Control │
│ CAL 4 │ En Yüksek │ Motor ECU, ABS, ESP, Airbag │
└─────────┴─────────────────┴───────────────────────────────┘
CAL Belirleme Faktörleri:
• Safety Impact (ISO 26262 ASIL)
• Privacy Impact (GDPR)
• Financial Impact
• Operational Impact