Inhaltsverzeichnis
Hitni opoziv
SEV-1 Incident: Trenutna reakcija pri kompromitaciji CA!
RTO: 1 sat | Donositelj odluke: CISO + PKI-Lead
Postupak za masovni opoziv certifikata pri kompromitaciji CA.
Kada hitni opoziv?
| Okidač | Primjer | Akcija |
| ——– | ——— | ——– |
| Root-CA kompromitiran | Ukraden privatni ključ | Potpuna rekonstrukcija PKI |
| Intermediate kompromitiran | Procurio Signing-Key | Sub-CA + svi certifikati |
| Masovna kompromitacija | Ransomware na CA serveru | Svi pogođeni certifikati |
| Kritična ranjivost | Algoritam slomljen | Svi pogođeni certifikati |
Stablo odlučivanja
flowchart TD
A[Kompromitacija otkrivena] --> B{Koja razina?}
B -->|Root-CA| C[KRITIČNO: Cijela PKI]
B -->|Intermediate| D[VISOKO: Sub-hijerarhija]
B -->|End-Entity| E[SREDNJE: Pojedinačni certifikati]
C --> F[1. Svi CA offline]
C --> G[2. Hitni CRL]
C --> H[3. Izgradnja nove PKI]
D --> I[1. Opoziv Sub-CA]
D --> J[2. Opoziv svih certifikata Sub-CA]
D --> K[3. Novi Intermediate]
E --> L[1. Identificirati pogođene certifikate]
E --> M[2. Ažurirati CRL]
E --> N[3. Ponovno izdavanje]
style C fill:#ffebee
style D fill:#fff3e0
Faza 1: Trijaža (15 Min)
#!/bin/bash # emergency-triage.sh echo "=== HITNA TRIJAŽA ===" echo "Vrijeme: $(date -Iseconds)" # 1. Koji CA je pogođen? echo "" echo "Pogođeni CA:" read -p "Root/Intermediate/End-Entity: " CA_LEVEL # 2. Vrsta kompromitacije echo "" echo "Vrsta kompromitacije:" echo " 1. Ukraden privatni ključ" echo " 2. Neovlašteno izdavanje certifikata" echo " 3. Kompromitacija sustava" echo " 4. Ranjivost algoritma" read -p "Odabir: " COMPROMISE_TYPE # 3. Utvrđivanje opsega echo "" echo "Utvrđivanje opsega..." case "$CA_LEVEL" in root|Root|ROOT) echo "KRITIČNO: Svi certifikati cijele PKI pogođeni!" SCOPE=$(grep -c "^V" /etc/pki/CA/index.txt) ;; intermediate|Intermediate|INTERMEDIATE) read -p "Koji Intermediate-CA? " INT_CA SCOPE=$(grep -c "$INT_CA" /etc/pki/CA/index.txt) ;; *) read -p "Broj pogođenih certifikata: " SCOPE ;; esac echo "" echo "=== SAŽETAK ===" echo "CA razina: $CA_LEVEL" echo "Tip kompromitacije: $COMPROMISE_TYPE" echo "Pogođeni certifikati: $SCOPE" echo "" # Eskalacija if [ "$CA_LEVEL" = "Root" ] || [ "$CA_LEVEL" = "root" ]; then echo "ESKALACIJA: Obavijestiti CISO i upravu!" echo "Aktivirati komunikacijski plan!" fi
Faza 2: Hitne mjere (30 Min)
Isključivanje CA
#!/bin/bash # emergency-ca-offline.sh echo "=== CA OFFLINE ===" # 1. Zaustavljanje CA servisa systemctl stop pki-ca systemctl stop ocsp-responder # 2. Blokiranje mrežnog pristupa iptables -A INPUT -p tcp --dport 443 -j DROP iptables -A INPUT -p tcp --dport 80 -j DROP # 3. Blokiranje Signing ključeva (HSM) # pkcs11-tool --module <hsm> --login --deactivate-key --id <key-id> # 4. Forenzičko kopiranje echo "Stvaram forenzičku sliku..." dd if=/dev/sda of=/backup/forensic/ca-server-$(date +%Y%m%d%H%M%S).img bs=4M echo "CA offline. Novi certifikati nisu mogući."
Generiranje hitnog CRL-a
#!/bin/bash # emergency-crl.sh echo "=== HITNI CRL ===" # Opoziv svih certifikata pogođenog CA # UPOZORENJE: Ovo je destruktivno! read -p "UPOZORENJE: Opozvati sve certifikate? (OPOZOVI/prekini): " confirm [ "$confirm" != "OPOZOVI" ] && exit 1 # Backup trenutne baze podataka cp /etc/pki/CA/index.txt /etc/pki/CA/index.txt.pre-emergency-$(date +%Y%m%d%H%M%S) # Opoziv svih valjanih certifikata grep "^V" /etc/pki/CA/index.txt | while IFS=$'\t' read status expiry revoke serial unknown subject; do echo "Opozivam: $serial - $subject" openssl ca -config /etc/pki/CA/openssl.cnf \ -revoke "/etc/pki/CA/newcerts/${serial}.pem" \ -crl_reason keyCompromise \ -batch done # Generiranje novog CRL-a (kratka valjanost!) openssl ca -config /etc/pki/CA/openssl.cnf \ -gencrl \ -crlhours 1 \ -out /var/www/pki/emergency.crl # Distribucija CRL-a echo "Distribuiram hitni CRL..." scp /var/www/pki/emergency.crl crl-server:/var/www/html/crl/ scp /var/www/pki/emergency.crl cdn-origin:/var/www/crl/ echo "Hitni CRL distribuiran." echo "CRL-URL: http://crl.example.com/crl/emergency.crl"
Faza 3: Komunikacija
Interna komunikacija
HITNA OBAVIJEST: PKI kompromitacija Prima: IT-Security, IT-Operations, Uprava Od: PKI tim Vrijeme: [TIMESTAMP] STATUS: SEV-1 INCIDENT SAŽETAK: [Root/Intermediate] CA je kompromitiran. Svi izdani certifikati se opozivaju. UTJECAJ: - Pogođeni certifikati: [BROJ] - Pogođeni sustavi: [LISTA] - Procijenjeni prekid rada: [SATI] HITNE MJERE: 1. CA isključen 2. Hitni CRL generiran 3. Komunikacija prema pogođenim sustavima SLJEDEĆI KORACI: 1. Forenzička analiza 2. Izgradnja novog CA 3. Ponovno izdavanje svih certifikata KONTAKT: PKI tim: pki-emergency@example.com Security: security@example.com Hotline: +385 xxx xxxxx
Vanjska komunikacija (ako je potrebno)
SIGURNOSNA OBAVIJEST [ORGANIZACIJA] je utvrdila da [OPIS]. Pogođeni servisi su preventivno isključeni. Radimo na rješenju i obavijestit ćemo vas o ažuriranjima. Za pitanja: security@example.com
Faza 4: Oporavak
#!/bin/bash # emergency-recovery.sh echo "=== OPORAVAK ===" # 1. Novi Root-CA (ako je kompromitiran) echo "Opcija 1: Novi Root-CA" echo " -> Provesti Key Ceremony" echo " -> Vidi: key-ceremony.sh" # 2. Novi Intermediate-CA echo "" echo "Opcija 2: Novi Intermediate-CA" echo " -> Potpisati od Root-a" # 3. Ponovno izdavanje svih certifikata echo "" echo "Opcija 3: Ponovno izdavanje certifikata" SERVERS_FILE="/etc/pki/inventory/all-servers.txt" if [ -f "$SERVERS_FILE" ]; then total=$(wc -l < "$SERVERS_FILE") echo "Ponovno izdavanje za $total servera..." cat "$SERVERS_FILE" | while read server; do echo "Ponovno izdavanje: $server" # Zatražiti CSR od servera ssh "$server" "openssl req -new -key /etc/ssl/private/server.key -out /tmp/emergency.csr -subj \"/CN=$server\"" # Dohvatiti CSR scp "$server:/tmp/emergency.csr" "/tmp/reissue/${server}.csr" # Izdati novi certifikat openssl ca -config /etc/pki/CA/openssl.cnf \ -in "/tmp/reissue/${server}.csr" \ -out "/tmp/reissue/${server}.pem" \ -days 365 -batch # Deployati certifikat scp "/tmp/reissue/${server}.pem" "$server:/etc/ssl/certs/server.pem" ssh "$server" "systemctl reload nginx || systemctl reload apache2" done fi echo "Oporavak završen."
Naknadne aktivnosti
| Faza | Zadatak | Vremenski okvir |
| —— | ——— | —————– |
| Post-Incident | Forenzičko izvješće | +24h |
| Post-Incident | Root-Cause-Analysis | +48h |
| Post-Incident | Lessons Learned | +1 tjedan |
| Prevencija | Poboljšanje kontrola | +2 tjedna |
| Usklađenost | Obavještavanje vlasti (ako KRITIS) | Prema zakonu |
Kontrolna lista
| # | Točka provjere | Vrijeme | Gotovo |
| — | —————- | ——— | ——– |
| 1 | Trijaža završena | +15m | ☐ |
| 2 | CA offline | +20m | ☐ |
| 3 | Uprava obaviještena | +25m | ☐ |
| 4 | Hitni CRL generiran | +30m | ☐ |
| 5 | CRL distribuiran | +35m | ☐ |
| 6 | Interna komunikacija | +40m | ☐ |
| 7 | Vanjska komunikacija (ako potrebno) | +45m | ☐ |
| 8 | Plan oporavka aktiviran | +60m | ☐ |
Povezana dokumentacija
- CA Backup/Restore - Vraćanje sigurnosne kopije
- Key Ceremony - Stvaranje novog CA
- Opoziv certifikata - Pojedinačni opoziv
« <- Key Ceremony | -> Operatorski scenariji »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: 30.01.2026. u 01:40