CyberArk Audit di Sicurezza
Uno strumento completo di valutazione della sicurezza basato su PowerShell per le piattaforme CyberArk Privileged Access Management (PAM). Progettato per professionisti della sicurezza offensiva, red teamer e penetration tester.
Questo strumento è progettato per essere eseguito DA REMOTO contro server CyberArk tramite rete. NON deve essere eseguito sui server CyberArk stessi. Tutti i controlli vengono effettuati tramite rete utilizzando l'API PVWA, scansione delle porte e test web.
Questo strumento esegue controlli di sicurezza tra cui conformità CIS Benchmark, best practice del vendor, test blackbox, analisi di sicurezza di rete, controlli di vulnerabilità specifici per CVE (inclusi i CVE del 2025), sicurezza delle identità delle macchine, gestione dei segreti, valutazione dei privilegi zero standing (ZSP), governance delle identità e controlli di sicurezza avanzati.
| Funzionalità | Descrizione |
|---|
| Audit Remoto | Tutti i controlli eseguiti da remoto tramite rete - nessuna necessità di installazione sui server CyberArk |
| Modalità OPSEC | Scansione stealth con ritardi configurabili, jitter e impronta di rilevamento ridotta |
| Supporto Proxy | Instradare tutto il traffico attraverso Burp Suite, ZAP o altri proxy di intercettazione |
| Attacchi di Temporizzazione | Rilevare enumerazione utenti e injection cieca tramite analisi dei tempi di risposta |
| Sicurezza JWT | Test per bypass dell'algoritmo none, confusione di chiave, algoritmi di firma deboli |
| Test WebSocket | Scoprire endpoint in tempo reale e testare per Cross-Site WebSocket Hijacking |
| Evasione WAF | Testare bypass di codifica, HTTP Parameter Pollution, request smuggling |
| Rotazione User-Agent | Stringhe User-Agent casuali o personalizzate per eludere il fingerprinting |
| Esecuzione Parallela | Esecuzione parallela opzionale per scansioni più veloci |
| Modalità Silenziosa | Output console ridotto per automazione e scripting |
| Sicurezza delle Credenziali | Gestione sicura con pulizia della memoria dopo l'uso |
| Reportistica Completa | Dashboard HTML, 7 file CSV e JSON strutturato per uso programmatico |
| Evidenza PoC | Richiesta/Risposta proof-of-concept inclusa nel report HTML per penetration testing |
| Esecuzione Selettiva | Eseguire solo categorie di controllo specifiche (portscan, CVE, blackbox, autenticato, rete) |
| Riduzione dei Falsi Positivi | Fingerprinting di base per eliminare i falsi positivi catch-all SPA |
| Test Autenticazione Identità | Controlli di divulgazione informazioni e enumerazione su StartAuthentication/ForgotUsername |
| Requisito | Minimo | Consigliato |
|---|---|---|
| PowerShell | 7.0 | 7.x (latest) |
| .NET Framework | 4.5 | 4.8+ |
| Sistema Operativo | Windows 10/Server 2016 | Windows 11/Server 2022 |
| Memoria | 2 GB disponibili | 4 GB disponibili |
| Fase di Audit | Accesso Richiesto |
|---|---|
| Fase 1 (Non autenticata) | Accesso di rete a PVWA (HTTPS/443) |
| Fase 2 (Autenticata) | Credenziali API CyberArk con ruolo Vault Admin o Auditor |
Questo script è completamente autonomo e utilizza solo funzionalità native di PowerShell e .NET Framework. Non è necessario installare strumenti o moduli aggiuntivi.
Lo script sfrutta:
System.Net.Sockets.TcpClient, System.Net.Security.SslStream per l'analisi di rete e TLSInvoke-WebRequest, Invoke-RestMethod per test HTTP/APISystem.Security.Cryptography.X509Certificates per l'analisi dei certificatiAprire PowerShell ed eseguire:```powershell $PSVersionTable.PSVersion
Assicurati che la versione principale sia **7 o superiore**. In caso contrario, [scarica PowerShell 7.x](https://github.com/PowerShell/PowerShell/releases).
> **Nota:** Questo script richiede PowerShell 7.0 o successivo. Windows PowerShell 5.1 non è supportato.
### Passo 2: Scarica lo Script
**Opzione A: Clona il repository (consigliato)**```powershell
git clone https://github.com/Logisek/HuntCyberArk.git
cd HuntCyberArk
Opzione B: Scarica direttamente```powershell
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Logisek/HuntCyberArk/main/CyberArk-Security-Audit.ps1" -OutFile "CyberArk-Security-Audit.ps1"
### Step 3: Imposta criteri di esecuzione (se necessario)
Se riscontri errori di esecuzione dello script, consenti temporaneamente l'esecuzione dello script:```powershell
# Check current policy
Get-ExecutionPolicy
# Set for current session only (recommended)
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
# Or unblock the downloaded script
Unblock-File -Path .\CyberArk-Security-Audit.ps1
Per un corretto test TLS, assicurati che la tua sessione PowerShell supporti TLS 1.2+:```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
### Passo 5: Test di Connettività
Verifica di poter raggiungere il server PVWA:```powershell
# Test basic connectivity
Test-NetConnection -ComputerName pvwa.domain.com -Port 443
# Test HTTPS endpoint
Invoke-WebRequest -Uri "https://pvwa.domain.com/PasswordVault/" -UseBasicParsing -TimeoutSec 10
PowerShell 7 offre prestazioni migliori e un supporto TLS più avanzato:```powershell
winget install Microsoft.PowerShell
## Fasi di Audit e Requisiti di Autenticazione
L'audit si svolge in due fasi, ciascuna con requisiti di autenticazione diversi:
### Fase 1: Controlli Senza Autenticazione (Nessuna credenziale richiesta)
Test esterni/blackbox che possono essere eseguiti senza alcuna credenziale:
- Sicurezza di rete (scansione porte, esposizione delle porte del vault)
- Configurazione TLS/SSL e analisi dei certificati
- Sicurezza web blackbox (endpoint esposti, divulgazione di informazioni)
- Intestazioni di sicurezza PVWA e sicurezza dei cookie
- Test delle vulnerabilità CVE specifiche (incluse le CVE 2025)
- Test di sicurezza API (endpoint non autenticati)
- Rilevamento delle versioni dei componenti
- Rilevamento di attacchi di temporizzazione
- Test di sicurezza JWT/OAuth2
- Scoperta di endpoint WebSocket
- Test di evasione WAF
- Test degli endpoint di autenticazione CyberArk Identity/Privilege Cloud (StartAuthentication, ForgotUsername)
**Caso d'Uso**: Penetration testing, valutazioni di sicurezza esterne, ricognizione rapida
### Fase 2: Controlli Autenticati (Credenziali API CyberArk richieste)
Audit di configurazione approfonditi che richiedono l'accesso all'API REST di CyberArk:
- Configurazioni e permessi dei Safe
- Impostazioni di gestione degli account e delle credenziali
- Configurazioni delle piattaforme
- Account utente e permessi del vault
- Impostazioni dei metodi di autenticazione
- Stato di salute dei componenti
- Configurazioni di Master Policy, PSM, CPM, PTA
- Machine Identity Security (account di servizio, AppID)
- Secrets Management (configurazione CP/CCP)
- Zero Standing Privileges (valutazione accesso JIT)
- Identity Governance (identità orfane, deriva dei permessi)
- Cloud Security (integrazione AWS/Azure/GCP)
- Disaster Recovery (DR Vault, salute cluster HA)
- Mappatura Compliance (NIST, SOC 2, PCI-DSS)
- Integrazione Secrets Hub (sincronizzazione segreti nativa nel cloud)
- Remote Access / Alero sicurezza
- Sicurezza dei segreti Kubernetes
- Sicurezza della pipeline DevSecOps
- Controlli specifici per Privilege Cloud / SaaS
- Integrazione CyberArk Identity / Idaptive
- Sicurezza dei plugin personalizzati
- Sicurezza del backup
- Integrazione HSM
- Rilevamento avanzato PTA
- Integrazioni di terze parti (SIEM, ITSM, SOAR)
- Metriche di igiene operativa
- Simulazione del percorso di attacco
- Integrità della supply chain
- Segmentazione di rete
**Autorizzazioni Richieste**: Si consiglia il ruolo Vault Admin o Auditor
## Caratteristiche
### Categorie di Controllo di Sicurezza
| Categoria | Prefisso Controllo | Descrizione |
|-----------|-------------------|-------------|
| CIS Benchmark | 1.x - 8.x | Conformità CIS CyberArk PAM Benchmark v1.0 |
| Best Practice Vendor | V1.x - V8.x | Raccomandazioni di hardening di sicurezza CyberArk |
| Blackbox Testing | BB1 - BB11 | Test di sicurezza esterni senza autenticazione |
| Sicurezza di Rete | NET1 - NET7 | Scansione porte e analisi esposizione di rete |
| Sicurezza TLS | TLS1 - TLS4 | Configurazione SSL/TLS e analisi cifrari |
| Controlli CVE | CVE1 - CVE23 | Rilevamento vulnerabilità CyberArk note (2018-2025) |
| Bollettini di Sicurezza | CA25-x | Controlli bollettini di sicurezza CyberArk |
| Sicurezza API | API1 - API5 | Test di sicurezza API REST |
| Sicurezza Autenticazione | AUTH1 - AUTH2 | Test endpoint autenticazione CyberArk Identity/Privilege Cloud |
| **Sicurezza Avanzata** | | |
| Machine Identity | MID1 - MID9 | Sicurezza account di servizio, AppID e AIM Provider |
| Secrets Management | SEC1 - SEC14 | Sicurezza Credential Provider/CCP e Conjur |
| Zero Standing Privileges | ZSP1 - ZSP5 | Valutazione accesso JIT e privilegi |
| Identity Governance | IGA1 - IGA8 | Gestione del ciclo di vita e dei permessi |
| Integrazione EPM | EPM1 - EPM6 | Controlli Endpoint Privilege Manager |
| Cloud Security | CLD1 - CLD6 | Controlli Secure Cloud Access |
| Disaster Recovery | DR1 - DR5 | Configurazione HA e DR |
| Mappatura Compliance | COMP1 - COMP4 | Allineamento NIST, SOC2, PCI-DSS |
| Registrazione Audit | AUD1 - AUD4 | Validazione SIEM e logging |
| **Espansione Postura di Sicurezza** | | |
| Secrets Hub | SH1 - SH6 | Salute sincronizzazione segreti cloud, latenza, deriva versioni |
| Remote Access / Alero | RA1 - RA6 | Invito vendor, MFA, limiti sessione, binding dispositivo |
| Segreti Kubernetes | K8S1 - K8S8 | Secrets Provider, RBAC, sicurezza pod, follower Conjur |
| Pipeline DevSecOps | DSO1 - DSO6 | Recupero segreti CI/CD, rilevamento sprawl, token a breve durata |
| Privilege Cloud | PC1 - PC5 | Salute connettore, isolamento tenant, integrazione ISP |
| CyberArk Identity | IDN1 - IDN6 | Integrazione SSO, MFA adattivo, punteggio di rischio sessione |
| Plugin Personalizzati | PLG1 - PLG5 | Sicurezza plugin PSM/CPM, firme digitali, ACL |
| Sicurezza Backup | BKP1 - BKP5 | Crittografia, permessi file, test ripristino |
| Integrazione HSM | HSM1 - HSM4 | Salute HSM, key wrapping, isolamento partizione |
| Approfondimento PTA | PTAD1 - PTAD6 | Regole personalizzate, qualità ML, UEBA, affaticamento alert |
| Integrazione Terze Parti | TPI1 - TPI5 | Connettività SIEM/ITSM/SOAR, salute credenziali |
| Igiene Operativa | OPS1 - OPS8 | Coda onboarding, fallimenti CPM, metriche PSM, licenza |
| Simulazione Percorso Attacco | APS1 - APS6 | PtH, relay NTLM, Kerberoasting, escalation privilegi |
| Integrità Supply Chain | SCI1 - SCI5 | Hash file, aggiornamento patch, code signing |
| Segmentazione Rete | NSG1 - NSG5 | Isolamento vault, ACL componenti, monitoraggio Est-Ovest |
### Copertura Dettagliata dei Controlli
#### Conformità CIS Benchmark (1.x - 8.x)
- Configurazione server Vault dedicato
- Regole firewall e hardening dei servizi
- Impostazioni password Master Policy
- Complessità e scadenza password
- Accesso e permessi Safe
- Gestione automatica delle password
- Sicurezza MFA e LDAP
- Registrazione sessioni PSM
- Logging audit e integrazione SIEM
- Configurazione TLS
#### Best Practice Vendor (V1.x - V8.x)
- Impostazioni Master Policy (periodo validità, password monouso, accesso esclusivo)
- Registrazione PSM, logging battitura, restrizioni clipboard
- Regole di scoperta e onboarding account
- Rilevamento anomalie PTA
- Sicurezza componenti di connessione
- Account collegati (logon/reconcile)
- Intestazioni di sicurezza HTTP PVWA
- Configurazione servizio CPM
#### Test di Sicurezza Blackbox (BB1 - BB11)
- Endpoint sensibili esposti (Swagger, documenti API, pagine admin)
- Divulgazione informazioni (versione, stack trace)
- Test credenziali predefinite
- Metodi HTTP pericolosi (PUT, DELETE, TRACE)
- Attributi di sicurezza cookie (Secure, HttpOnly, SameSite)
- Configurazione errata CORS
- Esposizione file backup/config
- Elenco directory
- Problemi certificati SSL/TLS
- Rilevamento rate limiting
- Pattern vulnerabilità note
#### Sicurezza Autenticazione CyberArk Identity / Privilege Cloud (AUTH1 - AUTH2)
- **Divulgazione Informazioni StartAuthentication**: Rileva esposizione dati sensibili tra cui:
- Esposizione Session ID in risposte pre-autenticazione
- Enumerazione utenti tramite challenge di autenticazione (utenti validi vs non validi)
- Divulgazione meccanismi MFA (UP, SMS, EMAIL, OATH, QR, ecc.)
- Divulgazione Email/PII nelle risposte di autenticazione
- Esposizione Tenant ID
- Dettagli configurazione autenticazione
- **Enumerazione Endpoint ForgotUsername**: Testa l'enumerazione username tramite recupero password:
- Rilevamento disponibilità funzionalità
- Analisi risposta differenziale per utenti validi vs non validi
#### Sicurezza di Rete (NET1 - NET7)
- **Scansione Porte**: Scansione completa delle porte specifiche CyberArk
- PVWA (443, 80)
- Vault (1858, 1859)
- Amministrative (RDP, SSH, WinRM)
- Database (MSSQL, MySQL, PostgreSQL, Oracle)
- Protocolli (SMB, NetBIOS, LDAP, SNMP)
- Analisi sicurezza porta Vault (1858)
- Configurazione sicurezza DNS
#### Sicurezza TLS/SSL (TLS1 - TLS4)
- Rilevamento protocolli deboli (SSLv2, SSLv3, TLS 1.0, TLS 1.1)
- Analisi robustezza suite di cifrari
- Rilevamento cifrari deboli (RC4, DES, 3DES, MD5, NULL, EXPORT)
- Validazione certificati
- Verifica dimensione chiave
- Controllo algoritmo firma
#### Controlli Vulnerabilità CVE Specifici (CVE1 - CVE23)
- **CVE-2018-9842**: Divulgazione memoria Vault tramite porta 1858
- **CVE-2018-9843**: RCE deserializzazione PVWA (pre-autenticazione)
- **CVE-2019-7442**: XXE in autenticazione SAML
- **CVE-2021-31796**: Sfruttamento file credenziali remoti (sonda file .cred esposti, analizza VerificationsFlag per determinare se le password possono essere decifrate)
- **CVE-2021-37151**: Enumerazione username CyberArk Identity tramite lunghezza risposta MFA (Media) - Rilevato tramite controllo divulgazione StartAuthentication
- **CVE-2022-22700**: Enumerazione username CyberArk Identity tramite header timing X-CFY-TX-TM (Media) - Rilevato tramite controllo divulgazione StartAuthentication
- **CWE-200**: Divulgazione informazioni endpoint StartAuthentication (Session ID, meccanismi MFA, Tenant ID, configurazione Auth)
- **CWE-203**: Enumerazione username endpoint ForgotUsername tramite discrepanza osservabile
- **CVE-2024-42340**: CWE-602 Bypass dell'applicazione lato client
- **CVE-2024-42339**: IDOR / Divulgazione informazioni sensibili
- **CVE-2024-54840**: Iniezione Host Header PVWA (Media)
- **CVE-2024-57967**: Escalation privilegi mappatura LDAP PVWA (Media)
- **CVE-2025-22270**: Iniezione HTML EPM nella gestione ruoli
- **CVE-2025-22271**: Spoofing X-Forwarded-For EPM
- **CVE-2025-22272**: XSS EPM tramite modalDlgMsgInternal
- **CVE-2025-22273**: Forza bruta cambio password EPM
- **CVE-2025-22274**: Iniezione definizione applicazione EPM
- **CVE-2025-49827**: Bypass autenticatore IAM Secrets Manager (Critica)
- **CVE-2025-49828**: Esecuzione codice remoto Secrets Manager (Alta)
- **CVE-2025-49829**: Validazioni mancanti Secrets Manager (Moderata)
- **CVE-2025-49830**: Path traversal e divulgazione file Secrets Manager (Alta)
- **CVE-2025-49831**: Bypass di rete Secrets Manager (Critica)
- Bollettini di Sicurezza: CA25-25, CA25-29, CA25-32, CA25-34, CA25-35
- Controlli aggiuntivi: Path traversal, indicatori Log4Shell, versioni API legacy
- Terze parti: ag-grid prototype pollution (CVE-2024-38996), Log4Shell (CVE-2021-44228)
#### Test di Sicurezza API (API1 - API5)
- **BOLA/IDOR**: Autorizzazione a livello di oggetto non funzionante
- **Test Iniezione**: SQL injection, LDAP injection
- **Mass Assignment**: Iniezione proprietà privilegiate
- **Versionamento API**: Rilevamento endpoint API legacy
#### Controlli di Sicurezza Avanzati
- Rilevamento versioni componenti e mappatura CVE
- Sicurezza sessione (fissazione, sessioni concorrenti)
- Iniezione header (Host header, CRLF)
- Test vulnerabilità XXE su endpoint SOAP
#### Machine Identity Security (MID1 - MID9)
- Enumerazione account di servizio e analisi privilegi
- Validazione rotazione password identità macchina
- Rilevamento account di servizio con privilegi eccessivi
- Configurazione autenticazione basata su certificati
- Validazione sicurezza AppID (macchine consentite, restrizioni utente OS)
- Rilevamento identità macchina obsolete
- Verifica distribuzione AIM Provider
- Sicurezza configurazione AIM Provider
- Connettività vault AIM Provider
#### Secrets Management (SEC1 - SEC14)
- Verifica distribuzione Credential Provider (CP/CCP)
- Analisi robustezza metodo autenticazione AppID
- Validazione configurazione macchine consentite
- Impostazioni cache TTL e intervallo aggiornamento
- Configurazione TLS/mTLS CCP
- Applicazione politica rotazione segreti
- Rilevamento segreti orfani/non gestiti
- Analisi sprawl credenziali
- Salute integrazione Conjur
- Validazione policy MAML
- Configurazione autenticatore (LDAP, OIDC, IAM, K8s)
- Crittografia database Conjur
- Politica rotazione chiave API
- Logging audit Conjur
#### Zero Standing Privileges (ZSP1 - ZSP5)
- Rilevamento accesso privilegiato permanente
- Validazione flusso di lavoro dual control
- Controlli limiti sessione concorrente
- Applicazione check-in/check-out
- Raccomandazioni riduzione privilegi permanenti
- Punteggio prontezza JIT
#### Identity Governance (IGA1 - IGA8)
- Rilevamento identità orfane
- Analisi deriva permessi
- Rilevamento account utente inattivi
- Analisi appartenenza Safe eccessiva
- Stato certificazione accessi
- Sprawl appartenenza ruoli/gruppi
- Età coda account in sospeso
- Rilevamento gap proprietà account
#### Integrazione EPM (EPM1 - EPM6)
*Richiede URL EPM e autenticazione opzionale*
- Verifica stato integrazione EPM
- Valutazione sicurezza policy predefinita
- Validazione modalità controllo applicazioni
- Stato protezione furto credenziali
- Requisiti giustificazione richiesta elevazione
- Configurazione logging audit EPM
#### Cloud Security (CLD1 - CLD6)
- Stato integrazione provider cloud (AWS, Azure, GCP)
- Configurazione identità federata
- Validazione politica sincronizzazione segreti cloud
- Valutazione integrazione CIEM
- Analisi binding ruoli IAM cloud
- Coerenza policy multi-cloud
#### Disaster Recovery (DR1 - DR5)
- Stato replica DR Vault
- Verifica salute cluster HA
- Valutazione ridondanza componenti
- Validazione configurazione backup
- Disponibilità account break-glass
#### Mappatura Compliance (COMP1 - COMP4)
- Mappatura NIST Cybersecurity Framework
- Indicatori allineamento SOC 2 Type II
- Controlli PCI-DSS rilevanti
- Punteggio maturità Blueprint CyberArk
#### Registrazione Audit (AUD1 - AUD4)
- Salute integrazione SIEM
- Configurazione conservazione log audit
- Validazione alerting eventi critici
- Verifica integrità dati audit
#### Active Directory Security (AD1 - AD7) - ispirato a zBang
*Richiede connettività di dominio e parametro `-IncludeADChecks`*
- **Scoperta Shadow Admin**: Rileva account con permessi ACL diretti su oggetti privilegiati
- **Rilevamento Skeleton Key**: Verifica indicatori malware Skeleton Key sui Domain Controller
- **Analisi SID History**: Identifica account con attributi SID History privilegiati
- **Configurazione SPN Rischiose**: Trova account utente con SPN (bersagli Kerberoasting)
- **Delega Non Vincolata**: Scopre account con delega Kerberos non vincolata
- **Delega Vincolata con Transizione Protocollo**: Rileva potenziale abuso S4U2Self
- **Audit Privilegi Delega**: Riepilogo completo configurazione delega
#### Secrets Hub (SH1 - SH6)
*Richiede `-IncludeSecretsHubChecks` e opzionalmente `-SecretsHubUrl`*
- Monitoraggio salute sincronizzazione Secrets Hub
- Misurazione latenza sincronizzazione
- Rilevamento deriva versioni tra origine e destinazioni
- Analisi tasso fallimento sincronizzazione
- Validazione configurazione destinazione
- Logging audit Secrets Hub
#### Remote Access / Alero (RA1 - RA6)
*Richiede `-IncludeRemoteAccessChecks` e opzionalmente `-AleroUrl`*
- Sicurezza flusso di lavoro invito vendor
- Configurazione limiti tempo sessione
- Requisiti binding biometrico/dispositivo
- Completezza log audit accesso remoto
- Applicazione revisione periodica accessi
- Applicazione MFA per accesso remoto
#### Segreti Kubernetes (K8S1 - K8S8)
*Richiede `-IncludeK8sChecks` e opzionalmente `-K8sNamespace`, `-ConjurApplianceUrl`*
- Verifica modalità distribuzione Secrets Provider
- Validazione contesto sicurezza pod
- Autenticazione JWT Service Account
- Rotazione segreti Kubernetes
- Configurazione RBAC per segreti
- Permessi segreti montati
- Salute follower Conjur
- Logging audit Kubernetes
#### Pipeline DevSecOps (DSO1 - DSO6)
*Richiede `-IncludeDevSecOpsChecks`*
- Pattern recupero segreti CI/CD
- Rilevamento sprawl segreti pipeline
- Validazione utilizzo token a breve durata
- Logging audit pipeline
- Rilevamento segreti in artefatti build
- Binding identità pipeline
#### Privilege Cloud (PC1 - PC5)
*Richiede `-IncludePrivilegeCloudChecks` o `-PrivilegeCloudTenant` o `-IsPrivilegeCloud`*
- Salute connettore Privilege Cloud
- Integrazione Identity Security Platform
- Sicurezza API Privilege Cloud
- Validazione isolamento tenant
- Ridondanza connettore cloud
#### CyberArk Identity (IDN1 - IDN6)
*Richiede `-IncludeIdentityChecks` o `-IdentityTenantUrl`*
- Integrazione SSO con PVWA
- Configurazione policy MFA adattivo
- Sincronizzazione ciclo di vita identità
- Punteggio di rischio sessione
- Integrazione audit Identity
- Policy catalogo applicazioni privilegiate
#### Plugin Personalizzati (PLG1 - PLG5)
*Richiede `-IncludePluginChecks`*
- Sicurezza connettore PSM personalizzato
- Rischi iniezione plugin CPM personalizzato
- Rilevamento componenti non autorizzati/obsoleti
- Validazione firma digitale plugin
- Permessi file script personalizzati
#### Sicurezza Backup (BKP1 - BKP5)
*Richiede `-IncludeBackupSecurityChecks` e opzionalmente `-BackupPath`*
- Crittografia backup vault
- Permessi file backup
- Crittografia backup in transito
- Test ripristino backup
- Politica conservazione backup
#### Integrazione HSM (HSM1 - HSM4)
*Richiede `-IncludeHSMChecks` e opzionalmente `-HSMProvider`*
- Connettività e salute HSM
- Configurazione key wrapping HSM
- Isolamento partizione HSM
- Aggiornamento firmware HSM
#### Approfondimento PTA (PTAD1 - PTAD6)
*Richiede `-IncludePTADeepDive`*
- Regole di rilevamento personalizzate PTA
- Qualità modello ML PTA
- Affaticamento alert PTA (analisi falsi positivi)
- Copertura regole rilevamento PTA
- Integrazione UEBA PTA
- Azioni di risposta automatica PTA
#### Integrazione Terze Parti (TPI1 - TPI5)
*Richiede `-IncludeThirdPartyChecks` e opzionalmente `-ServiceNowUrl`, `-SIEMUrl`*
- Integrazione ITSM (ServiceNow)
- Playbook risposta automatica SOAR
- Correlazione eventi PAM SIEM
- Salute forwarder log SIEM
- Salute credenziali integrazione
#### Igiene Operativa (OPS1 - OPS8)
*Richiede `-IncludeOperationalChecks`*
- Metriche coda onboarding account
- Tassi fallimento cambio password CPM
- Rapporti successo/fallimento sessioni PSM
- Arretrato riconciliazione CPM
- Errori connessione piattaforma
- Utilizzo e capacità vault
- Conformità licenza
- Uptime componenti
#### Simulazione Percorso Attacco (APS1 - APS6)
*Richiede `-IncludeAttackPathChecks`*
- Percorsi escalation workstation a PAM
- Superficie attacco Pass-the-Hash
- Rischi relay NTLM
- Resilienza estrazione credenziali in cache
- Esposizione Kerberoasting
- Percorsi escalation privilegi
#### Integrità Supply Chain (SCI1 - SCI5)
*Richiede `-IncludeSupplyChainChecks`*
- Validazione hash file componenti
- Verifica aggiornamento patch
- Vulnerabilità librerie terze parti
- Validazione firma digitale
- Verifica origine componenti
#### Segmentazione Rete (NSG1 - NSG5)
*Richiede `-IncludeNetworkSegmentationChecks`*
- Isolamento rete vault
- Restrizioni comunicazione PSM a vault
- Segmentazione PVWA a backend
- Monitoraggio traffico Est-Ovest
- ACL di rete specifici per componente
## Requisiti
### Requisiti Software
| Componente | Versione | Note |
|-----------|---------|-------|
| PowerShell | 7.0+ | PowerShell 7.x richiesto (Windows PowerShell 5.1 non supportato) |
| .NET Framework | 4.5+ | Richiesto per operazioni TLS/SSL e di rete |
| CyberArk PVWA | v12+ | API REST v12 o successiva per piena compatibilità |
### Requisiti di Accesso per Fase
| Fase | Requisito | Scopo |
|-------|-------------|---------|
| Fase 1 | Accesso di rete a PVWA | Test blackbox, scansione porte, analisi TLS |
| Fase 2 | Credenziali API CyberArk | Audit configurazioni, controlli policy |
### Requisiti delle Credenziali per Controlli Autenticati
Per la Fase 2 (Controlli Autenticati), sono necessarie credenziali CyberArk con uno di questi ruoli:
- **Vault Admin**: Accesso completo a tutte le configurazioni e impostazioni di sicurezza
- **Auditor**: Accesso in sola lettura alle configurazioni di audit (consigliato per valutazioni di sicurezza)
- **Safe Owners**: Limitato ai safe di proprietà (copertura audit parziale)
### Funzionalità Windows Utilizzate
Lo script utilizza queste funzionalità Windows/PowerShell (nessuna installazione richiesta):
| Funzionalità | Utilizzato per |
|---------|----------|
| `System.Net.Sockets.TcpClient` | Scansione porte, sicurezza porta vault |
| `System.Net.Security.SslStream` | Enumerazione protocolli e cifrari TLS/SSL |
| `Invoke-WebRequest` / `Invoke-RestMethod` | Test HTTP, chiamate API |
## Avvio Rapido```powershell
# 1. Verify PowerShell version (need 7.0+)
$PSVersionTable.PSVersion
# 2. Enable TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# 3. Run unauthenticated scan (no credentials needed)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly
# 4. Run full scan with authentication
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
Esegui controlli di sicurezza esterni senza credenziali:```powershell
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly
### Audit completo con autenticazione```powershell
# Full audit with LDAP authentication
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
# Full audit with pre-supplied credentials
$cred = Get-Credential
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -Credential $cred
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipPortScan
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipAuthenticatedChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipCVEChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipSecretsChecks
-SkipMachineIdentity -SkipIGAChecks
-SkipCloudChecks
### Esegui SOLO Categorie di Controllo Specifiche
Usa i parametri `-Only*` per eseguire esclusivamente categorie di controllo specifiche:```powershell
# Run ONLY port scanning
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyPortScan
# Run ONLY CVE vulnerability checks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyCVEChecks
# Run ONLY network security checks (ports, TLS, DNS)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyNetworkChecks
# Run ONLY unauthenticated blackbox checks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyBlackboxChecks
# Run ONLY authenticated API checks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OnlyAuthenticatedChecks -Credential $cred
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-AuthType LDAP -OutputPath "C:\Reports"
-Credential $cred -SkipPortScan
-SkipCVEChecks -SkipAPITests
-PortScanTimeout 2000 `
-VerboseOutput
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-AuthType LDAP -OutputPath "C:\Reports"
-ComplianceMapping -IncludeEPMChecks
-EPMUrl "https://epm.domain.com"
### Scenari comuni```powershell
# External penetration test (no access, no credentials)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly
# Internal security audit (with CyberArk credentials)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
# Quick check (skip intensive scans)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipPortScan -SkipCVEChecks
# Fast parallel port scanning (4.5x faster on PowerShell 7+)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -ParallelExecution -MaxThreads 10
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OPSECMode -UnauthenticatedOnly
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -Proxy "http://127.0.0.1:8080" -IgnoreCertificateErrors
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeTimingAttacks -UnauthenticatedOnly
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeJWTTests
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeWebSocketTests
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeWAFEvasion
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -RequestDelay 3 -Jitter 30 -RandomizeUserAgent
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -QuietMode -NoLogo -UnauthenticatedOnly
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-OPSECMode -Proxy "http://127.0.0.1:8080"
-IncludeTimingAttacks -IncludeJWTTests
-IncludeWebSocketTests -IncludeWAFEvasion
-UnauthenticatedOnly
### Scenari di integrazione degli strumenti CyberArk```powershell
# AD Security Audit (zBang-inspired) - detect shadow admins, Kerberos issues
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP -IncludeADChecks
# AD Security with specific Domain Controller
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeADChecks -DomainController "dc01.domain.com"
# Conjur/Secrets Manager integration check
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -IncludeConjurChecks -ConjurUrl "https://conjur.domain.com"
# Comprehensive audit with CyberArk tools integration
.\CyberArk-Security-Audit.ps1 `
-PVWA "https://pvwa.domain.com" `
-AuthType LDAP `
-IncludeADChecks `
-IncludeConjurChecks `
-ConjurUrl "https://conjur.domain.com" `
-ComplianceMapping
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -OutputPath "C:\SecurityReports\CyberArk"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -UnauthenticatedOnly -QuietMode -NoLogo
-OutputPath "C:\Reports"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -ComplianceMapping -OutputPath "C:\ComplianceReports"
$auditResults = .\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP
$auditResults.ReportMetadata.RiskScore $auditResults.Findings | Where-Object { $_.Severity -eq "Critical" } $auditResults.Reports.HTML # Path to HTML report $auditResults.Reports.CSV # Array of CSV file paths $auditResults.Reports.JSON # Path to JSON report
**Output Files Generated:**
Dopo aver eseguito un audit, troverai questi file nella tua directory di output:```
C:\SecurityReports\CyberArk\
├── CyberArk_Security_Audit_20260116_143022.html # Interactive HTML dashboard
├── CyberArk_Security_Audit_20260116_143022.json # Comprehensive JSON data
├── CyberArk_Security_Audit_20260116_143022_Executive_Summary.csv
├── CyberArk_Security_Audit_20260116_143022_Full_Findings.csv
├── CyberArk_Security_Audit_20260116_143022_Failed_Findings.csv
├── CyberArk_Security_Audit_20260116_143022_Remediation_Tracker.csv
├── CyberArk_Security_Audit_20260116_143022_Skipped_Checks.csv
├── CyberArk_Security_Audit_20260116_143022_CIS_Compliance_Matrix.csv
└── CyberArk_Security_Audit_20260116_143022_Component_Summary.csv
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeSecretsHubChecks -SecretsHubUrl "https://secretshub.cyberark.cloud"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeRemoteAccessChecks -AleroUrl "https://alero.cyberark.cloud"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeK8sChecks -K8sNamespace "cyberark" -ConjurApplianceUrl "https://conjur.domain.com"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeDevSecOpsChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IsPrivilegeCloud -PrivilegeCloudTenant "my-tenant"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeIdentityChecks -IdentityTenantUrl "https://aab1234.id.cyberark.cloud"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeBackupSecurityChecks -BackupPath "D:\VaultBackups"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeHSMChecks -HSMProvider "Thales"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludePTADeepDive
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeThirdPartyChecks -ServiceNowUrl "https://company.servicenow.com" -SIEMUrl "https://splunk.domain.com"
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeOperationalChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeAttackPathChecks -IncludeADChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeSupplyChainChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -AuthType LDAP ` -IncludeNetworkSegmentationChecks
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com"
-AuthType LDAP -IncludeSecretsHubChecks
-IncludeRemoteAccessChecks -IncludeK8sChecks
-IncludeDevSecOpsChecks -IncludeIdentityChecks
-IncludePluginChecks -IncludeBackupSecurityChecks
-IncludeHSMChecks -IncludePTADeepDive
-IncludeThirdPartyChecks -IncludeOperationalChecks
-IncludeAttackPathChecks -IncludeSupplyChainChecks
-IncludeNetworkSegmentationChecks `
-ComplianceMapping
## Parametri
| Parametro | Obbligatorio | Predefinito | Descrizione |
|-----------|--------------|-------------|-------------|
| PVWA | Sì | - | URL del server PVWA (es. https://pvwa.dominio.com) |
| AuthType | No | CyberArk | Metodo di autenticazione: CyberArk, LDAP, RADIUS, SAML |
| OutputPath | No | Directory corrente | Directory di output del report |
| Credential | No | Prompt | PSCredential per l'autenticazione |
| **Parametri di Salto** | | | |
| SkipPortScan | No | False | Salta la scansione delle porte di rete |
| SkipCVEChecks | No | False | Salta i test di vulnerabilità specifici CVE |
| SkipAPITests | No | False | Salta i test di sicurezza delle API |
| SkipAuthenticatedChecks | No | False | Salta tutti i controlli autenticati della Fase 2 |
| SkipSecretsChecks | No | False | Salta i controlli di Secrets Management (SEC1-SEC14) |
| SkipMachineIdentity | No | False | Salta i controlli di identità macchina (MID1-MID9) |
| SkipIGAChecks | No | False | Salta i controlli di Identity Governance (IGA1-IGA8) |
| SkipCloudChecks | No | False | Salta i controlli di sicurezza cloud (CLD1-CLD6) |
| SkipDRChecks | No | False | Salta i controlli di Disaster Recovery (DR1-DR5) |
| SkipDefaultCredentialTests | No | False | Salta i test su credenziali predefinite/deboli (BB3) |
| SkipSecretsHubChecks | No | False | Salta i controlli di Secrets Hub (SH1-SH6) |
| SkipRemoteAccessChecks | No | False | Salta i controlli di Accesso Remoto/Alero (RA1-RA6) |
| SkipK8sChecks | No | False | Salta i controlli Kubernetes (K8S1-K8S8) |
| SkipDevSecOpsChecks | No | False | Salta i controlli DevSecOps (DSO1-DSO6) |
| SkipPrivilegeCloudChecks | No | False | Salta i controlli di Privilege Cloud (PC1-PC5) |
| SkipIdentityChecks | No | False | Salta i controlli di CyberArk Identity (IDN1-IDN6) |
| SkipPluginChecks | No | False | Salta i controlli dei Plugin Personalizzati (PLG1-PLG5) |
| SkipBackupSecurityChecks | No | False | Salta i controlli di sicurezza del backup (BKP1-BKP5) |
| SkipHSMChecks | No | False | Salta i controlli di integrazione HSM (HSM1-HSM4) |
| SkipPTADeepDive | No | False | Salta i controlli di approfondimento PTA (PTAD1-PTAD6) |
| SkipThirdPartyChecks | No | False | Salta i controlli di integrazione di terze parti (TPI1-TPI5) |
| SkipOperationalChecks | No | False | Salta i controlli di igiene operativa (OPS1-OPS8) |
| SkipAttackPathChecks | No | False | Salta i controlli di simulazione dei percorsi di attacco (APS1-APS6) |
| SkipSupplyChainChecks | No | False | Salta i controlli di integrità della supply chain (SCI1-SCI5) |
| SkipNetworkSegmentationChecks | No | False | Salta i controlli di segmentazione di rete (NSG1-NSG5) |
| **Parametri di Modalità** | | | |
| UnauthenticatedOnly | No | False | Esegue solo la Fase 1 (nessuna credenziale necessaria) |
| IncludeEPMChecks | No | False | Include i controlli di integrazione EPM |
| ComplianceMapping | No | False | Genera la mappatura del framework di conformità |
| **Esecuzione Selettiva** | | | |
| OnlyPortScan | No | False | Esegue SOLO controlli di scansione porte |
| OnlyCVEChecks | No | False | Esegue SOLO controlli di vulnerabilità CVE |
| OnlyAuthenticatedChecks | No | False | Esegue SOLO controlli API autenticati |
| OnlyNetworkChecks | No | False | Esegue SOLO controlli di sicurezza di rete (TLS, porte, DNS) |
| OnlyBlackboxChecks | No | False | Esegue SOLO controlli blackbox non autenticati |
| **Parametri degli Strumenti CyberArk** | | | |
| IncludeADChecks | No | False | Abilita i controlli di sicurezza Active Directory (ispirati a zBang) |
| IncludeConjurChecks | No | False | Abilita i controlli di integrazione Conjur/Secrets Manager |
| ConjurUrl | No | - | URL del server Conjur per i controlli di integrazione |
| DomainController | No | - | Controller di dominio per query di sicurezza AD |
| **Parametri Red Team** | | | |
| OPSECMode / Stealth | No | False | Abilita la modalità OPSEC/stealth con ritardi e rumore ridotto |
| Proxy | No | - | URL del proxy per il routing del traffico (es. http://127.0.0.1:8080) |
| ProxyCredential | No | - | Credenziali per il proxy autenticato |
| IgnoreCertificateErrors | No | False | Salta la validazione del certificato SSL/TLS |
| RequestDelay | No | 0 | Ritardo tra le richieste in secondi (0-60) |
| Jitter | No | 0 | Percentuale di jitter casuale (0-100) per la variazione temporale |
| UserAgent | No | - | Stringa User-Agent personalizzata |
| RandomizeUserAgent | No | False | Ruota tra stringhe User-Agent comuni |
| IncludeTimingAttacks | No | False | Abilita il rilevamento di vulnerabilità basate sui tempi |
| IncludeJWTTests | No | False | Abilita i test di sicurezza JWT/OAuth2 |
| IncludeWebSocketTests | No | False | Abilita l'individuazione di endpoint WebSocket |
| IncludeWAFEvasion | No | False | Abilita i test di bypass WAF/IDS |
| NoLogo | No | False | Sopprime la visualizzazione del banner |
| QuietMode | No | False | Riduce l'output della console (messaggi informativi soppressi) |
| EnablePasswordSpraying | No | False | Abilita lo spraying di password (richiede conferma esplicita) |
| **Parametri di Prestazione** | | | |
| ParallelExecution | No | False | Abilita l'esecuzione parallela per scansioni più rapide |
| MaxThreads | No | 5 | Numero massimo di thread concorrenti (1-20) |
| **Parametri EPM** | | | |
| EPMUrl | No | - | URL del server EPM per i controlli di integrazione EPM |
| **Parametri di Postura di Sicurezza** | | | |
| IncludeSecretsHubChecks | No | False | Abilita i controlli di sincronizzazione cloud Secrets Hub |
| SecretsHubUrl | No | - | URL di Secrets Hub per i controlli di integrazione |
| IncludeRemoteAccessChecks | No | False | Abilita i controlli di Accesso Remoto/Alero |
| AleroUrl | No | - | URL di Alero per i controlli di accesso dei fornitori |
| IncludeK8sChecks | No | False | Abilita i controlli dei segreti Kubernetes/Container |
| K8sNamespace | No | default | Namespace Kubernetes per i controlli dei segreti |
| ConjurApplianceUrl | No | - | URL dell'appliance Conjur per l'integrazione K8s |
| IncludeDevSecOpsChecks | No | False | Abilita i controlli di sicurezza della pipeline DevSecOps |
| IncludePrivilegeCloudChecks | No | False | Abilita i controlli specifici di Privilege Cloud/SaaS |
| IsPrivilegeCloud | No | False | Indica che il target è Privilege Cloud SaaS |
| PrivilegeCloudTenant | No | - | Identificativo del tenant Privilege Cloud |
| IncludeIdentityChecks | No | False | Abilita i controlli di CyberArk Identity/Idaptive |
| IdentityTenantUrl | No | - | URL del tenant CyberArk Identity |
| IncludePluginChecks | No | False | Abilita i controlli di sicurezza dei plugin personalizzati |
| IncludeBackupSecurityChecks | No | False | Abilita i controlli di sicurezza del backup |
| BackupPath | No | - | Percorso dei file di backup del Vault per l'analisi |
| IncludeHSMChecks | No | False | Abilita i controlli di integrazione HSM |
| HSMProvider | No | - | Tipo di provider HSM (Thales, nCipher, SafeNet, AWSCloudHSM, AzureHSM, Altro) |
| IncludePTADeepDive | No | False | Abilita i controlli avanzati di rilevamento PTA |
| IncludeThirdPartyChecks | No | False | Abilita i controlli di integrazione SIEM/ITSM/SOAR |
| ServiceNowUrl | No | - | URL di ServiceNow per i controlli ITSM |
| SIEMUrl | No | - | URL del SIEM per i controlli di correlazione eventi |
| IncludeOperationalChecks | No | False | Abilita le metriche di igiene operativa |
| IncludeAttackPathChecks | No | False | Abilita i controlli di simulazione dei percorsi di attacco |
| IncludeSupplyChainChecks | No | False | Abilita i controlli di integrità della supply chain |
| IncludeNetworkSegmentationChecks | No | False | Abilita i controlli di segmentazione di rete |
| **Altri Parametri** | | | |
| PortScanTimeout | No | 1000 | Timeout di connessione per la scansione porte (ms) |
| VerboseOutput | No | False | Abilita la registrazione dettagliata |
## Output
Lo script genera report completi in tre formati, progettati per supportare la stesura di rapporti dettagliati di valutazione della sicurezza:
### Formati Report
#### 1. Report HTML (Dashboard Interattivo)
Un report HTML moderno e interattivo con:
- **Indice**: Navigazione rapida verso tutte le sezioni del report
- **Sommario Esecutivo**: Valutazione del rischio complessiva, percentuale di conformità, metriche chiave
- **Sezione Rischi Principali**: Prime 10 scoperte critiche/gravi con impatto aziendale
- **Matrice di Conformità CIS Benchmark**: Stato di conformità controllo per controllo
- **Tabella Dettagliata delle Scoperte**: Righe espandibili con prove complete e passaggi di risoluzione
- Clicca su qualsiasi scoperta per rivelare: prove, dettagli tecnici, descrizione del rischio, impatto aziendale, punteggio CVSS, passaggi di risoluzione e riferimenti
- **Prova di Concetto (PoC)**: Prove richiesta/risposta per i report di penetration testing (quando disponibili)
- **Roadmap di Risoluzione**: Tempistica prioritaria (24h/1 sett/30gg/90gg)
- **Analisi dei Componenti**: Scoperte raggruppate per componente CyberArk (Vault, CPM, PSM, PVWA, PTA)
- **Controlli Saltati**: Requisiti di verifica manuale con indicazioni di follow-up
- **Adatto per la stampa**: Espande automaticamente tutte le scoperte durante la stampa
#### 2. Report CSV (7 File Separati)
Genera più file CSV per diversi destinatari:
| File | Scopo | Destinatario |
|------|-------|--------------|
| `Executive_Summary.csv` | Metriche di alto livello e panoramica del rischio | Leadership, Management |
| `Full_Findings.csv` | Scoperte complete con tutti i 20+ campi | Analisti di Sicurezza |
| `Failed_Findings.csv` | Solo controlli falliti, ordinati per gravità | Team di Risoluzione |
| `Remediation_Tracker.csv` | Tracker attuabile con AssegnatoA, Stato, DataScadenza | Operazioni IT |
| `Skipped_Checks.csv` | Controlli che richiedono verifica manuale | Revisori |
| `CIS_Compliance_Matrix.csv` | Stato di conformità controllo per controllo | Responsabili Conformità |
| `Component_Summary.csv` | Scoperte raggruppate per componente | Proprietari dei Componenti |
#### 3. Report JSON (Dati Strutturati)
Dati strutturati completi per analisi programmatica:```json
{
"reportInfo": { "title", "generatedAt", "version" },
"auditMetadata": { "target", "auditDate", "auditorInfo" },
"executiveSummary": {
"overallRiskRating": "Fair",
"riskScore": 45,
"keyMetrics": { "totalChecks", "passed", "failed", "compliance%" },
"findingsBySeverity": { "critical", "high", "medium", "low" },
"keyRisks": [ /* top 10 findings */ ],
"immediatePriorities": [ /* critical recommendations */ ]
},
"complianceAnalysis": {
"overallCompliance": 78.5,
"cisControlsCompliance": { /* per-control matrix */ }
},
"componentAnalysis": { /* findings by component */ },
"categoryAnalysis": { /* findings by category */ },
"remediationRoadmap": {
"immediate": { "timeframe": "24-48 hours", "findings": [] },
"urgent": { "timeframe": "1 week", "findings": [] },
"standard": { "timeframe": "30 days", "findings": [] },
"routine": { "timeframe": "90 days", "findings": [] }
},
"detailedFindings": { "failed", "passed", "all" },
"skippedChecks": { "summary", "requiresFollowUp", "all" },
"appendix": { "glossary", "severityDefinitions", "riskScoreExplanation" }
}
Ogni riscontro ora include informazioni complete per la stesura del report:
| Campo | Descrizione |
|---|---|
FindingID | Identificatore univoco (es. CA-20260116-A1B2C3D4) |
Category | Categoria di sicurezza (es. Configurazione Sicura, Autenticazione) |
CISControl | Riferimento al controllo CIS Benchmark |
AffectedComponent | Componente CyberArk (Vault, CPM, PSM, PVWA, PTA) |
Evidence | Prova tecnica a supporto del riscontro |
TechnicalDetails | Descrizione tecnica dettagliata |
RiskDescription | Spiegazione del motivo per cui questo è un rischio di sicurezza |
BusinessImpact | Spiegazione dell'impatto a livello aziendale |
CVSSScore | Range stimato del punteggio CVSS |
RemediationSteps | Guida alla risoluzione passo-passo |
ComplianceRefs | Riferimenti ai framework di conformità |
References | Link alla documentazione |
PoCRequest | Richiesta HTTP proof-of-concept (quando disponibile) |
PoCResponse | Risposta HTTP proof-of-concept (quando disponibile) |
I riscontri vengono valutati per gravità:
Valutazioni del rischio:
L'output è progettato per aiutarti a scrivere report professionali di valutazione della sicurezza:
⚠️ AVVERTENZA: Questo strumento esegue test di sicurezza attivi che potrebbero:
-EnablePasswordSprayingOttenere sempre l'autorizzazione appropriata prima di eseguire questo script.
Usa -OPSECMode per una minore impronta di rilevamento durante le operazioni red team.
Errore: Impossibile caricare il file perché l'esecuzione degli script è disabilitata su questo sistema
Soluzione:```powershell
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
Unblock-File -Path .\CyberArk-Security-Audit.ps1
#### Errore di versione di PowerShell
**Errore**: `This script requires PowerShell 7 or higher.`
**Soluzione**:```powershell
# Check current version
$PSVersionTable.PSVersion
# Install PowerShell 7
winget install Microsoft.PowerShell
# Or download from: https://github.com/PowerShell/PowerShell/releases
Errore: The request was aborted: Could not create SSL/TLS secure channel
Soluzione:```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13
#### Errori di convalida del certificato
**Errore**: `The underlying connection was closed: Could not establish trust relationship`
**Soluzione**: Ciò indica tipicamente un problema di certificato (ad esempio, certificato autofirmato) con il PVWA. Lo script catturerà automaticamente questo come un riscontro di sicurezza e continuerà con la valutazione per fornire una copertura completa. Lo script include l'elusione della convalida del certificato per la continuità operativa:```powershell
# The script automatically bypasses certificate validation for assessment continuity
# while capturing certificate issues as findings
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
Errore: Authentication failed: The remote server returned an error: (401) Unauthorized
Soluzioni:
-AuthType LDAP, -AuthType CyberArk, ecc.)$cred = Get-Credential $body = @{ username = $cred.UserName; password = $cred.GetNetworkCredential().Password } | ConvertTo-Json Invoke-RestMethod -Uri "https://pvwa.domain.com/PasswordVault/api/Auth/LDAP/Logon" -Method POST -Body $body -ContentType "application/json"
#### Timeout dello scan delle porte
**Errore**: Le scansioni delle porte richiedono troppo tempo o vanno in timeout
**Soluzione**:```powershell
# Increase timeout (default is 1000ms)
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -PortScanTimeout 3000
# Or skip port scanning entirely
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -SkipPortScan
Error: Impossibile scrivere i file di report
Soluzione:```powershell
.\CyberArk-Security-Audit.ps1 -PVWA "https://pvwa.domain.com" -OutputPath "C:\Reports"
New-Item -ItemType Directory -Path "C:\Reports" -Force
### Ottenere Aiuto
Se incontri problemi non coperti sopra:
1. Esegui con output verbose: `-VerboseOutput`
2. Controlla il report JSON generato per informazioni dettagliate sugli errori
3. Esamina i log degli eventi di Windows per errori correlati
4. Apri un ticket su GitHub con i dettagli dell'errore e le informazioni sull'ambiente
## Riferimenti
### Documentazione CyberArk
- [Guida all'Hardening della Sicurezza CyberArk](https://docs.cyberark.com/)
- [Documentazione API REST CyberArk](https://docs.cyberark.com/Product-Doc/OnlineHelp/PAS/Latest/en/Content/WebServices/Implementing%20Privileged%20Account%20Security%20Web%20Services%20.htm)
### Strumenti di Sicurezza Open Source CyberArk
- [zBang](https://github.com/cyberark/zBang) - Strumento di valutazione dei rischi per minacce agli account privilegiati (Shadow Admins, Kerberos, SPN)
- [Conjur](https://github.com/cyberark/conjur) - Piattaforma di gestione dei segreti
- [ACLight](https://github.com/cyberark/ACLight) - Rilevamento degli Admin Ombra (parte di zBang)
- [Ansible Security Automation Collection](https://github.com/cyberark/ansible-security-automation-collection) - Integrazione Ansible CyberArk
## Licenza.
Questo strumento è fornito così com'è per scopi di valutazione della sicurezza. Usalo in modo responsabile ed etico.