Modül 3: Otomotiv Siber Güvenlik Standartları ve Tehdit Analizi

Konular

İlerleme0%

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ış

ISO 21434 Yaşam Döngüsü

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

ISO 21434 V-Model

Ş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

📚 Kaynaklar