[FEAT] Modello Organizzativo SGSI (ISO 27001/27017/27018) + SoA pre-popolato da NIS2
Nuovo modulo guidato in 6 step (cl. 4-10 + Statement of Applicability): - migration 037 (isms_models/roles/soa/documents) + 038 (dataset 111 controlli: 93 Annex A:2022 + 7 CLD/27017 + 11 PII/27018) + runner scripts/migrate-isms.php - IsmsModelController (16 endpoint) registrato in index.php - SoA pre-popolato dalle risposte Gap Analysis NIS2 (mapping iso27001_control) - estensioni cloud condizionali 27017/27018 via flag uses_public_cloud/ is_cloud_provider/processes_pii_in_cloud - AIService::generateIsmsDocument + fonti ISO in nis2_sources.php - frontend isms.html/isms.js + api client + sidebar + help + i18n IT/EN - ingest KB ISO (scope SYSTEM, solo titoli/sintesi: no testo coperto da copyright) - version.json 1.14.0; doc studio + deploy handoff Strumento di supporto/pre-audit (non certificazione). Migration DA APPLICARE su host. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -187,6 +187,53 @@ PROMPT;
|
||||
return $this->parseJsonResponse($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera una bozza di documented information SGSI (ISO/IEC 27001:2022).
|
||||
* Es. doc_type: policy_sgsi, dichiarazione_applicabilita, procedura_incident,
|
||||
* politica_controllo_accessi, procedura_continuita, ecc.
|
||||
*
|
||||
* Ritorna ['title'=>, 'body_html'=>]. La bozza riporta un disclaimer e cita
|
||||
* le fonti certe (la conformita normativa primaria in Italia resta NIS2 /
|
||||
* D.Lgs. 138/2024; ISO 27001/27002/27017/27018 sono best practice).
|
||||
*/
|
||||
public function generateIsmsDocument(string $docType, array $organization, ?array $context = null): array
|
||||
{
|
||||
$sector = $organization['sector'] ?? 'n/d';
|
||||
$entityType = $organization['entity_type'] ?? 'n/d';
|
||||
$ctx = $context ? json_encode($context, JSON_UNESCAPED_UNICODE) : 'Non disponibile';
|
||||
$sourcesBlock = $this->authoritativeSourcesBlock();
|
||||
|
||||
$prompt = <<<PROMPT
|
||||
Sei un esperto consulente ISO/IEC 27001:2022 (SGSI / Information Security Management System). Redigi una bozza di documento di tipo "{$docType}" per il Sistema di Gestione della Sicurezza delle Informazioni dell'organizzazione.
|
||||
|
||||
## Organizzazione (dati anonimizzati)
|
||||
- Settore: {$sector}
|
||||
- Tipo entita NIS2: {$entityType}
|
||||
|
||||
## Contesto SGSI
|
||||
{$ctx}
|
||||
{$sourcesBlock}
|
||||
|
||||
## Istruzioni
|
||||
- Documento in italiano, professionale, coerente con ISO/IEC 27001:2022 e ISO/IEC 27002:2022. Se il contesto indica uso del cloud, considera ISO/IEC 27017:2015; se tratta dati personali in cloud, ISO/IEC 27018:2019.
|
||||
- Ricorda che gli obblighi normativi italiani derivano da NIS2 / D.Lgs. 138/2024 / Determinazioni ACN; ISO e best practice non vincolante.
|
||||
- Struttura tipica: Scopo, Ambito, Ruoli e responsabilita, Riferimenti normativi, Contenuto/Regole, Controlli ISO 27001 collegati (Annex A), Monitoraggio e riesame.
|
||||
|
||||
Rispondi SOLO con JSON:
|
||||
{
|
||||
"title": "Titolo del documento",
|
||||
"content": "Contenuto completo in HTML semplice (h2/h3/p/ul/li/strong), pronto per essere salvato e modificato"
|
||||
}
|
||||
PROMPT;
|
||||
|
||||
$response = $this->callAPI($prompt, 'Sei un redattore di documentazione SGSI ISO 27001. Rispondi solo con JSON valido.');
|
||||
$parsed = $this->parseJsonResponse($response);
|
||||
return [
|
||||
'title' => (string) ($parsed['title'] ?? $docType),
|
||||
'body_html' => (string) ($parsed['content'] ?? $parsed['body_html'] ?? ''),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Classifica un incidente e suggerisce severity
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user