Esporta il risk register cyber NIS2 verso AllRisk per consolidamento nel registro rischi enterprise. Importazione automatica dei rischi HIGH/CRITICAL tramite API Key.
AllRisk è il registro rischi enterprise centralizzato. NIS2 Agile gestisce i rischi cyber in ottica normativa (ISO 27005 / NIS2). L'integrazione permette di:
I rischi HIGH/CRITICAL di NIS2 vengono automaticamente importati in AllRisk come rischi di categoria "Cyber/IT" con score e deadline normalizzati.
AllRisk notifica NIS2 tramite webhook se un rischio enterprise si trasforma in minaccia cyber (es. incidente supply chain → rischio NIS2).
Report rischi enterprise unico che include dimensione NIS2 con compliance score per ogni categoria di rischio cyber (Art.21 domains).
| Campo NIS2 Agile | Campo AllRisk | Trasformazione |
|---|---|---|
risk_code | external_ref | Prefisso NIS2- + codice |
title | risk_name | Diretta |
risk_level | severity | critical→5, high→4, medium→3, low→2 |
likelihood × impact | risk_score | Scala 0–25 → 0–100 |
category | risk_category | Mappato su tassonomia AllRisk "Cyber" |
nis2_article | regulatory_ref | Prefisso "NIS2 Art." |
treatment | response_strategy | mitigate→Reduce, accept→Accept, ecc. |
review_date | next_review | Diretta (ISO 8601) |
// AllRisk — import_nis2_risks.php (cron settimanale) $apiKey = getenv('NIS2_API_KEY'); $orgId = getenv('NIS2_ORG_ID'); $baseUrl = 'https://nis2.agile.software/api'; $allriskOrgId = getenv('ALLRISK_ORG_ID'); // Fetch rischi HIGH/CRITICAL aperti da NIS2 $response = nis2Get($baseUrl . '/services/risks-feed', [ 'level' => 'high', 'status' => 'open', 'limit' => 200, ], $apiKey, $orgId); $risks = $response['data']['risks'] ?? []; $imported = 0; foreach ($risks as $risk) { $allriskPayload = [ 'external_ref' => 'NIS2-' . $risk['risk_code'], 'risk_name' => $risk['title'], 'risk_category' => 'Cyber/IT', 'severity' => mapSeverity($risk['risk_level']), 'risk_score' => round($risk['risk_score'] / 25 * 100), 'regulatory_ref' => 'NIS2 ' . ($risk['nis2_article'] ?? 'Art.21'), 'response_strategy' => mapTreatment($risk['treatment']), 'source_system' => 'NIS2 Agile', 'organization_id' => $allriskOrgId, ]; // Upsert: aggiorna se external_ref esiste, crea altrimenti AllRiskApiClient::upsertRisk($allriskPayload); $imported++; } error_log("[NIS2→AllRisk] Importati {$imported} rischi"); function mapSeverity(string $level): int { return match($level) { 'critical' => 5, 'high' => 4, 'medium' => 3, default => 2 }; } function mapTreatment(string $t): string { return match($t) { 'mitigate' => 'Reduce', 'accept' => 'Accept', 'transfer' => 'Transfer', default => 'Avoid' }; }
Configura webhook per importazione immediata dei nuovi rischi HIGH/CRITICAL:
# Settings → Webhook in NIS2 Agile
URL: https://allrisk.certisource.it/api/v1/webhooks/nis2
Events: risk.high_created, compliance.score_changed, incident.significant
// AllRisk — webhook receiver per NIS2 $payload = verifyAndDecode($_SERVER['HTTP_X_NIS2_SIGNATURE'], file_get_contents('php://input')); if ($payload['event'] === 'risk.high_created') { $risk = $payload['data']['risk']; AllRiskApiClient::upsertRisk([ 'external_ref' => 'NIS2-' . $risk['id'], 'risk_name' => $risk['title'], 'severity' => $risk['risk_level'] === 'critical' ? 5 : 4, 'source_system'=> 'NIS2 Agile', 'alert' => true, // Notifica CRO AllRisk ]); } http_response_code(200);